[{"data":1,"prerenderedAt":54},["ShallowReactive",2],{"publications-sem86-qrs26":3,"papers-sem86-qrs26-06-bibliography":40},{"id":4,"title":5,"authors":6,"awards":7,"bibtex":11,"body":12,"date":27,"description":28,"extension":29,"link":30,"meta":31,"navigation":32,"path":33,"pdf":34,"seo":35,"slug":36,"stem":37,"venue":38,"__hash__":39},"publications\u002Fpublications\u002Fsem86-qrs26.md","Sem86: A Full-System Emulator Without Hard-Coded Semantics","Jos Craaijo, Freek Verbeek, Binoy Ravindran",[8],{"name":9,"url":10},"Best Presentation Award","https:\u002F\u002Fqrs26.techconf.org\u002Ftrack\u002Faward_presentation","",{"type":13,"value":14,"toc":24},"minimark",[15],[16,17,18,19,23],"p",{},"Emulation can be used to run legacy software, analyze malware in a sandboxed environment, or run software compiled for different architectures.\nAn emulator is based on instruction semantics.\nThere is, however, not a single instruction semantics to be followed, as x86 allows undefined behavior.\nIn order to make accurate CPU-specific emulators,\nwe argue the need for an emulator that can easily switch between different semantics.\nHowever, all existing emulators contain hard-coded semantics.\nWe present Sem86, an x86 emulator that loads semantics at runtime from data in an input file.\nWe implement all necessary hardware needed to emulate typical x86 operating systems such as Windows 98, Windows XP and Windows 7.\nAdditionally, we implement a sound card, network card and support for high-resolution display output.\nSem86 can automatically ",[20,21,22],"em",{},"bisect"," instruction execution to determine at which point different semantics would diverge.\nWe demonstrate this by constructing a toy malware example that exploits undefined instruction behavior to detect whether it is running in an emulator,\nand show that Sem86 can pinpoint the exact instruction that is used.",{"title":11,"searchDepth":25,"depth":25,"links":26},2,[],"2026-07-22","Emulation can be used to run legacy software, analyze malware in a sandboxed environment, or run software compiled for different architectures.\nAn emulator is based on instruction semantics.\nThere is, however, not a single instruction semantics to be followed, as x86 allows undefined behavior.\nIn order to make accurate CPU-specific emulators,\nwe argue the need for an emulator that can easily switch between different semantics.\nHowever, all existing emulators contain hard-coded semantics.\nWe present Sem86, an x86 emulator that loads semantics at runtime from data in an input file.\nWe implement all necessary hardware needed to emulate typical x86 operating systems such as Windows 98, Windows XP and Windows 7.\nAdditionally, we implement a sound card, network card and support for high-resolution display output.\nSem86 can automatically bisect instruction execution to determine at which point different semantics would diverge.\nWe demonstrate this by constructing a toy malware example that exploits undefined instruction behavior to detect whether it is running in an emulator,\nand show that Sem86 can pinpoint the exact instruction that is used.","md","https:\u002F\u002Fqrs26.techconf.org\u002F",{},true,"\u002Fpublications\u002Fsem86-qrs26","\u002Ffiles\u002Fsem86.pdf",{"title":5,"description":28},"sem86-qrs26","publications\u002Fsem86-qrs26","QRS'26","2isYelaLp7jOW_ygpxJBHzUdEprIalEWZTRkgsYVd-U",{"id":41,"title":42,"body":43,"date":43,"description":43,"extension":44,"html":45,"meta":46,"navigation":32,"next":43,"path":47,"previous":48,"seo":51,"slug":43,"stem":52,"__hash__":53},"papers\u002Fpublications\u002Fsem86-qrs26\u002F06-bibliography.html","Acknowledgements, Data-availabilty and References",null,"html","\u003Cstyle>\u002F* Alignment *\u002F\nmtable.right-align mtd,\nmtable mtd.right-align,\nmtable.left-align mtd.right-align,\nmtable.aligned mtd:nth-child(odd) {\n  justify-items: end;\n  text-align: right;\n}\nmtable.cases mtd,\nmtable.left-align mtd,\nmtable mtd.left-align,\nmtable.aligned mtd:nth-child(even),\nmath:is(:not([display])) > mtable.multiline-equation mtd {\n  justify-items: start;\n  text-align: left;\n}\nmtable.cases mtd,\nmtable.aligned mtd,\nmtable mtd.flushed,\nmtable mtd.left-flush {\n  padding-left: 0;\n}\nmtable.cases mtd,\nmtable.aligned mtd,\nmtable mtd.flushed,\nmtable mtd.right-flush {\n  padding-right: 0;\n}\n\n\u002F* Tables *\u002F\nmtable {\n  math-style: inherit;\n}\nmtd {\n  math-depth: auto-add;\n  math-style: compact;\n  math-shift: compact;\n}\n\n\u002F* Equations *\u002F\nmtable.multiline-equation mtd {\n  math-depth: inherit;\n  math-style: inherit;\n  math-shift: inherit;\n  padding: 0;\n}\nmath > mtable.multiline-equation mtr:not(:last-child) mtd {\n  padding-bottom: 0.5em;\n}\n\n\u002F* Fractions *\u002F\nmfrac {\n  padding-inline: 0;\n  margin-inline: 0.1em;\n}\n\n\u002F* Accents *\u002F\nmover[accent=\"true\" i] > :first-child {\n  font-feature-settings: \"dtls\";\n}\nmover.dotted[accent=\"true\" i] > :first-child {\n  font-feature-settings: \"dtls\" 0;\n}\n\n\u002F* Other rules for scriptlevel, displaystyle and math-shift *\u002F\nmunder > :nth-child(2),\nmunderover > :nth-child(2) {\n  math-shift: compact\n}\nmunder[accentunder=\"true\" i] > :not(:first-child),\nmover[accent=\"true\" i] > :not(:first-child) {\n  math-depth: inherit;\n  math-style: inherit;\n  math-shift: inherit;\n}\u003C\u002Fstyle>\u003Cdiv id=\"previous-page\" style=\"display: none\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F05-discussion#loc-1\">Discussion and Conclusion\u003C\u002Fa>\u003C\u002Fdiv>\u003Cdiv id=\"next-page\" style=\"display: none\">\u003C\u002Fdiv>\u003Ch2 id=\"loc-1\">6 Acknowledgements, Data-availabilty and References\u003C\u002Fh2>\u003Ch3>6.1 Acknowledgements\u003C\u002Fh3>\u003Cp>This paper is based upon work supported by the Defense Advanced Research Projects Agency (DARPA) and Naval Information Warfare Center Pacific (NIWC Pacific) under Prime Contract No. N66001-21-C-4028, and by DARPA under Prime Contract No. HR001124C0492. Any views, opinions, findings, and conclusions or recommendations expressed in this paper are those of the authors and should not be interpreted as presenting the official policies or position, either expressed or implied, of DARPA or the U.S. Government. The U.S. Government is authorized to reproduce and distribute reprints of publications for Government purposes notwithstanding any copyright notation hereon.\u003C\u002Fp>\u003Ch3>6.2 Data-availability statement\u003C\u002Fh3>\u003Cp>All source code is available on \u003Ca href=\"https:\u002F\u002Fliblisa.nl\u002Fsem86\">https:\u002F\u002Fliblisa.nl\u002Fsem86\u003C\u002Fa> under the AGPLv3 open source license.\u003C\u002Fp>\u003Ch3>6.3 References\u003C\u002Fh3>\u003Csection role=\"doc-bibliography\">\u003Cul style=\"list-style-type: none\">\u003Cli id=\"loc-2\">\u003Cspan class=\"prefix\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F01-introduction#loc-2\" role=\"doc-backlink\">[1]\u003C\u002Fa>\u003C\u002Fspan> O. Sahin, A. K. Coskun, and M. Egele, “Proteus: Detecting android emulators from instruction-level profiles,” in \u003Cem>International Symposium on Research in Attacks, Intrusions, and Defenses\u003C\u002Fem>,\u003Cspan style=\"white-space: pre-wrap\">  \u003C\u002Fspan>2018, pp. 3–24.\u003C\u002Fli>\u003Cli>\u003Cspan class=\"prefix\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F01-introduction#loc-2\" role=\"doc-backlink\">[2]\u003C\u002Fa>\u003C\u002Fspan> T. Raffetseder, C. Kruegel, and E. Kirda, “Detecting system emulators,” in \u003Cem>International Conference on Information Security\u003C\u002Fem>,\u003Cspan style=\"white-space: pre-wrap\">  \u003C\u002Fspan>2007, pp. 1–18.\u003C\u002Fli>\u003Cli>\u003Cspan class=\"prefix\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F01-introduction#loc-2\" role=\"doc-backlink\">[3]\u003C\u002Fa>\u003C\u002Fspan> Y. Choi, Y. Jeong, D. Jang, B. B. Kang, and H. Lee, “EmuID: Detecting presence of emulation through microarchitectural characteristic on ARM,” \u003Cem>Computers &#x26; Security\u003C\u002Fem>, vol. 113, p. 102569, 2022.\u003C\u002Fli>\u003Cli>\u003Cspan class=\"prefix\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F01-introduction#loc-2\" role=\"doc-backlink\">[4]\u003C\u002Fa>\u003C\u002Fspan> X. Chen, J. Andersen, Z. M. Mao, M. Bailey, and J. Nazario, “Towards an understanding of anti-virtualization and anti-debugging behavior in modern malware,” in \u003Cem>2008 IEEE international conference on dependable systems and networks with FTCS and DCC (DSN)\u003C\u002Fem>,\u003Cspan style=\"white-space: pre-wrap\">  \u003C\u002Fspan>2008, pp. 177–186.\u003C\u002Fli>\u003Cli id=\"loc-3\">\u003Cspan class=\"prefix\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F01-introduction#loc-2\" role=\"doc-backlink\">[5]\u003C\u002Fa>\u003C\u002Fspan> SonicWall, “New Anti-VM technique observed in the wild,” 2017. [Online].\u003Cspan style=\"white-space: pre-wrap\">  \u003C\u002Fspan>Available: \u003Ca href=\"http:\u002F\u002Fweb.archive.org\u002Fweb\u002F20201026062235\u002Fhttps:\u002F\u002Fwww.mysonicwall.com\u002Fsonicalert\u002Fsearchresults.aspx?ev=article&#x26;id=1085\">http:\u002F\u002Fweb.archive.org\u002Fweb\u002F20201026062235\u002Fhttps:\u002F\u002Fwww.mysonicwall.com\u002Fsonicalert\u002Fsearchresults.aspx?ev=article&#x26;id=1085\u003C\u002Fa>\u003C\u002Fli>\u003Cli id=\"loc-4\">\u003Cspan class=\"prefix\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F01-introduction#loc-3\" role=\"doc-backlink\">[6]\u003C\u002Fa>\u003C\u002Fspan> F. Bellard, “QEMU, a fast and portable dynamic translator.,” in \u003Cem>USENIX annual technical conference, FREENIX Track\u003C\u002Fem>,\u003Cspan style=\"white-space: pre-wrap\">  \u003C\u002Fspan>2005, pp. 10–55.\u003C\u002Fli>\u003Cli id=\"loc-5\">\u003Cspan class=\"prefix\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F01-introduction#loc-3\" role=\"doc-backlink\">[7]\u003C\u002Fa>\u003C\u002Fspan> K. P. Lawton, “Bochs: A portable pc emulator for unix\u002Fx,” \u003Cem>Linux Journal\u003C\u002Fem>, vol. 1996, no. 29es, p. 7–es, 1996.\u003C\u002Fli>\u003Cli id=\"loc-6\">\u003Cspan class=\"prefix\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F01-introduction#loc-3\" role=\"doc-backlink\">[8]\u003C\u002Fa>\u003C\u002Fspan> N. Binkert \u003Cem>et al.\u003C\u002Fem>, “The gem5 simulator,” \u003Cem>ACM SIGARCH computer architecture news\u003C\u002Fem>, vol. 39, no. 2, pp. 1–7, 2011.\u003C\u002Fli>\u003Cli id=\"loc-7\">\u003Cspan class=\"prefix\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F01-introduction#loc-4\" role=\"doc-backlink\">[9]\u003C\u002Fa>\u003C\u002Fspan> W. Ma, J.-C. Liu, and A. Forin, “Design and Testing of a CPU Emulator,” \u003Cem>Texas A&#x26;M University, Microsoft Research Technical Report, United States of America\u003C\u002Fem>, vol. 1, p. 12, 2009.\u003C\u002Fli>\u003Cli id=\"loc-8\">\u003Cspan class=\"prefix\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F01-introduction#loc-4\" role=\"doc-backlink\">[10]\u003C\u002Fa>\u003C\u002Fspan> L. Martignoni, R. Paleari, G. F. Roglia, and D. Bruschi, “Testing CPU emulators,” in \u003Cem>Proceedings of the eighteenth international symposium on Software testing and analysis\u003C\u002Fem>,\u003Cspan style=\"white-space: pre-wrap\">  \u003C\u002Fspan>2009, pp. 261–272.\u003C\u002Fli>\u003Cli id=\"loc-9\">\u003Cspan class=\"prefix\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F01-introduction#loc-5\" role=\"doc-backlink\">[11]\u003C\u002Fa>\u003C\u002Fspan> A. Coglio and S. Goel, “Adding 32-bit Mode to the ACL2 Model of the x86 ISA,” \u003Cem>arXiv preprint arXiv:1810.04313\u003C\u002Fem>, 2018.\u003C\u002Fli>\u003Cli id=\"loc-10\">\u003Cspan class=\"prefix\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F01-introduction#loc-5\" role=\"doc-backlink\">[12]\u003C\u002Fa>\u003C\u002Fspan> A. Armstrong \u003Cem>et al.\u003C\u002Fem>, “ISA semantics for ARMv8-a, RISC-v, and CHERI-MIPS,” \u003Cem>Proc. ACM Program. Lang.\u003C\u002Fem>, vol. 3, no. POPL, Jan. 2019, doi: \u003Ca href=\"https:\u002F\u002Fdoi.org\u002F10.1145\u002F3290384\">10.1145\u002F3290384\u003C\u002Fa>.\u003C\u002Fli>\u003Cli id=\"loc-11\">\u003Cspan class=\"prefix\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F01-introduction#loc-5\" role=\"doc-backlink\">[13]\u003C\u002Fa>\u003C\u002Fspan> S. Heule, E. Schkufza, R. Sharma, and A. Aiken, “Stratified synthesis: automatically learning the x86-64 instruction set,” in \u003Cem>Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation\u003C\u002Fem>, in PLDI '16. Santa Barbara, CA, USA: Association for Computing Machinery,\u003Cspan style=\"white-space: pre-wrap\">  \u003C\u002Fspan>2016, pp. 237–250. doi: \u003Ca href=\"https:\u002F\u002Fdoi.org\u002F10.1145\u002F2908080.2908121\">10.1145\u002F2908080.2908121\u003C\u002Fa>.\u003C\u002Fli>\u003Cli id=\"loc-12\">\u003Cspan class=\"prefix\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F01-introduction#loc-5\" role=\"doc-backlink\">[14]\u003C\u002Fa>\u003C\u002Fspan> S. Dasgupta, D. Park, T. Kasampalis, V. S. Adve, and G. Roşu, “A complete formal semantics of x86-64 user-level instruction set architecture,” in \u003Cem>Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation\u003C\u002Fem>,\u003Cspan style=\"white-space: pre-wrap\">  \u003C\u002Fspan>2019, pp. 1133–1148.\u003C\u002Fli>\u003Cli id=\"loc-13\">\u003Cspan class=\"prefix\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F01-introduction#loc-6\" role=\"doc-backlink\">[15]\u003C\u002Fa>\u003C\u002Fspan> C. Barrett, A. Stump, C. Tinelli, and others, “The SMT-LIB Standard: Version 2.0,” in \u003Cem>Proceedings of the 8th international workshop on satisfiability modulo theories (Edinburgh, UK)\u003C\u002Fem>,\u003Cspan style=\"white-space: pre-wrap\">  \u003C\u002Fspan>2010, p. 14.\u003C\u002Fli>\u003Cli id=\"loc-14\">\u003Cspan class=\"prefix\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F01-introduction#loc-7\" role=\"doc-backlink\">[16]\u003C\u002Fa>\u003C\u002Fspan> J. Craaijo, F. Verbeek, and B. Ravindran, “libLISA: instruction discovery and analysis on x86-64,” \u003Cem>Proceedings of the ACM on Programming Languages\u003C\u002Fem>, vol. 8, no. OOPSLA2, pp. 333–361, 2024.\u003C\u002Fli>\u003Cli id=\"loc-15\">\u003Cspan class=\"prefix\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F02-related-work#loc-2\" role=\"doc-backlink\">[17]\u003C\u002Fa>\u003C\u002Fspan> D. Balsom, “MartyPC,” 2023. [Online].\u003Cspan style=\"white-space: pre-wrap\">  \u003C\u002Fspan>Available: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdbalsom\u002Fmartypc\">https:\u002F\u002Fgithub.com\u002Fdbalsom\u002Fmartypc\u003C\u002Fa>\u003C\u002Fli>\u003Cli id=\"loc-16\">\u003Cspan class=\"prefix\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F02-related-work#loc-3\" role=\"doc-backlink\">[18]\u003C\u002Fa>\u003C\u002Fspan> C. Bolz-Tereick, L. Panayi, F. McKeogh, T. Spink, and M. Berger, “Pydrofoil: Accelerating Sail-Based Instruction Set Simulators,” in \u003Cem>39th European Conference on Object-Oriented Programming (ECOOP 2025)\u003C\u002Fem>, J. Aldrich and A. Silva, Eds., in Leibniz International Proceedings in Informatics (LIPIcs), vol. 333. Dagstuhl, Germany: Schloss Dagstuhl – Leibniz-Zentrum für Informatik,\u003Cspan style=\"white-space: pre-wrap\">  \u003C\u002Fspan>2025, p. 3:1–3:31. doi: \u003Ca href=\"https:\u002F\u002Fdoi.org\u002F10.4230\u002FLIPIcs.ECOOP.2025.3\">10.4230\u002FLIPIcs.ECOOP.2025.3\u003C\u002Fa>.\u003C\u002Fli>\u003Cli id=\"loc-17\">\u003Cspan class=\"prefix\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F02-related-work#loc-4\" role=\"doc-backlink\">[19]\u003C\u002Fa>\u003C\u002Fspan> T. Spink, H. Wagstaff, and B. Franke, “A retargetable system-level DBT hypervisor,” \u003Cem>ACM Transactions on Computer Systems (TOCS)\u003C\u002Fem>, vol. 36, no. 4, pp. 1–24, 2020.\u003C\u002Fli>\u003Cli id=\"loc-18\">\u003Cspan class=\"prefix\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F02-related-work#loc-5\" role=\"doc-backlink\">[20]\u003C\u002Fa>\u003C\u002Fspan> G. Morrisett, G. Tan, J. Tassarotti, J.-B. Tristan, and E. Gan, “RockSalt: better, faster, stronger SFI for the x86,” in \u003Cem>Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation\u003C\u002Fem>, in PLDI '12. Beijing, China: Association for Computing Machinery,\u003Cspan style=\"white-space: pre-wrap\">  \u003C\u002Fspan>2012, pp. 395–404. doi: \u003Ca href=\"https:\u002F\u002Fdoi.org\u002F10.1145\u002F2254064.2254111\">10.1145\u002F2254064.2254111\u003C\u002Fa>.\u003C\u002Fli>\u003Cli id=\"loc-19\">\u003Cspan class=\"prefix\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F02-related-work#loc-5\" role=\"doc-backlink\">[21]\u003C\u002Fa>\u003C\u002Fspan> X. Leroy, “Formal verification of a realistic compiler,” \u003Cem>Commun. ACM\u003C\u002Fem>, vol. 52, no. 7, pp. 107–115, Jul. 2009, doi: \u003Ca href=\"https:\u002F\u002Fdoi.org\u002F10.1145\u002F1538788.1538814\">10.1145\u002F1538788.1538814\u003C\u002Fa>.\u003C\u002Fli>\u003Cli id=\"loc-20\">\u003Cspan class=\"prefix\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F02-related-work#loc-5\" role=\"doc-backlink\">[22]\u003C\u002Fa>\u003C\u002Fspan> P. Godefroid and A. Taly, “Automated synthesis of symbolic instruction encodings from I\u002FO samples,” in \u003Cem>Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation\u003C\u002Fem>, in PLDI '12. Beijing, China: Association for Computing Machinery,\u003Cspan style=\"white-space: pre-wrap\">  \u003C\u002Fspan>2012, pp. 441–452. doi: \u003Ca href=\"https:\u002F\u002Fdoi.org\u002F10.1145\u002F2254064.2254116\">10.1145\u002F2254064.2254116\u003C\u002Fa>.\u003C\u002Fli>\u003Cli id=\"loc-21\">\u003Cspan class=\"prefix\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F03-implementation#loc-2\" role=\"doc-backlink\">[23]\u003C\u002Fa>\u003C\u002Fspan> C. Domas, “Breaking the x86 ISA.” [Online]. Available: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fxoreaxeaxeax\u002Fsandsifter\">https:\u002F\u002Fgithub.com\u002Fxoreaxeaxeax\u002Fsandsifter\u003C\u002Fa>\u003C\u002Fli>\u003Cli id=\"loc-22\">\u003Cspan class=\"prefix\">\u003Ca href=\"\u002Fpublications\u002Fsem86-qrs26\u002F03-implementation#loc-7\" role=\"doc-backlink\">[24]\u003C\u002Fa>\u003C\u002Fspan> B. Ness and V. Ngo, “Regression containment through source change isolation,” in \u003Cem>Proceedings Twenty-First Annual International Computer Software and Applications Conference (COMPSAC'97)\u003C\u002Fem>,\u003Cspan style=\"white-space: pre-wrap\">  \u003C\u002Fspan>1997, pp. 616–621. doi: \u003Ca href=\"https:\u002F\u002Fdoi.org\u002F10.1109\u002FCMPSAC.1997.625082\">10.1109\u002FCMPSAC.1997.625082\u003C\u002Fa>.\u003C\u002Fli>\u003C\u002Ful>\u003C\u002Fsection>",{},"\u002Fpublications\u002Fsem86-qrs26\u002F06-bibliography",{"url":49,"title":50},"\u002Fpublications\u002Fsem86-qrs26\u002F05-discussion","Discussion and Conclusion",{"title":42},"publications\u002Fsem86-qrs26\u002F06-bibliography","6_pO-iPaha8HZJtPphTsV_-DuvCGihWmxdNvM1edrgw",1787086053581]