YARA RULE: ----------- rule like_hancitor_packer { strings: //Search for all encoded variants of below bytes //XOR key length = 1 byte //50 push eax //E8 00 00 00 00 call $+5 //58 pop eax //EB 09 jmp short loc_stringEnd // ; ----------------------- //5F 73 74 72 69 63 6D 70 00 aStricmp db '_stricmp',0 // ; ----------------------- // loc_stringEnd: //83 C0 03 add eax, 3 //Quick and dirty way to generate this list in Python: //from itertools import cycle, izip //byte_pattern = "50E80000000058EB095F73747269636D700083C003" //byte_pattern = byte_pattern.decode("hex") //key_range = range(256) //for xor_key in key_range: // byte_xor_key = chr(xor_key) // encrypted_byte_pattern = ''.join(chr(ord(p)^ord(k)) for p,k in izip(byte_pattern, cycle(byte_xor_key))) // print str(xor_key)+": "+ encrypted_byte_pattern.encode("hex") $0={50e80000000058eb095f73747269636d700083c003} $1={51e90101010159ea085e72757368626c710182c102} $2={52ea020202025ae90b5d7176706b616f720281c201} $3={53eb030303035be80a5c7077716a606e730380c300} $4={54ec040404045cef0d5b7770766d6769740487c407} $5={55ed050505055dee0c5a7671776c6668750586c506} $6={56ee060606065eed0f597572746f656b760685c605} $7={57ef070707075fec0e587473756e646a770784c704} $8={58e00808080850e301577b7c7a616b6578088bc80b} $9={59e10909090951e200567a7d7b606a6479098ac90a} $10={5ae20a0a0a0a52e10355797e786369677a0a89ca09} $11={5be30b0b0b0b53e00254787f796268667b0b88cb08} $12={5ce40c0c0c0c54e705537f787e656f617c0c8fcc0f} $13={5de50d0d0d0d55e604527e797f646e607d0d8ecd0e} $14={5ee60e0e0e0e56e507517d7a7c676d637e0e8dce0d} $15={5fe70f0f0f0f57e406507c7b7d666c627f0f8ccf0c} $16={40f81010101048fb194f63646279737d601093d013} $17={41f91111111149fa184e62656378727c611192d112} $18={42fa121212124af91b4d6166607b717f621291d211} $19={43fb131313134bf81a4c6067617a707e631390d310} $20={44fc141414144cff1d4b6760667d7779641497d417} $21={45fd151515154dfe1c4a6661677c7678651596d516} $22={46fe161616164efd1f496562647f757b661695d615} $23={47ff171717174ffc1e486463657e747a671794d714} $24={48f01818181840f311476b6c6a717b7568189bd81b} $25={49f11919191941f210466a6d6b707a7469199ad91a} $26={4af21a1a1a1a42f11345696e687379776a1a99da19} $27={4bf31b1b1b1b43f01244686f697278766b1b98db18} $28={4cf41c1c1c1c44f715436f686e757f716c1c9fdc1f} $29={4df51d1d1d1d45f614426e696f747e706d1d9edd1e} $30={4ef61e1e1e1e46f517416d6a6c777d736e1e9dde1d} $31={4ff71f1f1f1f47f416406c6b6d767c726f1f9cdf1c} $32={70c82020202078cb297f53545249434d5020a3e023} $33={71c92121212179ca287e52555348424c5121a2e122} $34={72ca222222227ac92b7d5156504b414f5222a1e221} $35={73cb232323237bc82a7c5057514a404e5323a0e320} $36={74cc242424247ccf2d7b5750564d47495424a7e427} $37={75cd252525257dce2c7a5651574c46485525a6e526} $38={76ce262626267ecd2f795552544f454b5626a5e625} $39={77cf272727277fcc2e785453554e444a5727a4e724} $40={78c02828282870c321775b5c5a414b455828abe82b} $41={79c12929292971c220765a5d5b404a445929aae92a} $42={7ac22a2a2a2a72c12375595e584349475a2aa9ea29} $43={7bc32b2b2b2b73c02274585f594248465b2ba8eb28} $44={7cc42c2c2c2c74c725735f585e454f415c2cafec2f} $45={7dc52d2d2d2d75c624725e595f444e405d2daeed2e} $46={7ec62e2e2e2e76c527715d5a5c474d435e2eadee2d} $47={7fc72f2f2f2f77c426705c5b5d464c425f2facef2c} $48={60d83030303068db396f43444259535d4030b3f033} $49={61d93131313169da386e42454358525c4131b2f132} $50={62da323232326ad93b6d4146405b515f4232b1f231} $51={63db333333336bd83a6c4047415a505e4333b0f330} $52={64dc343434346cdf3d6b4740465d57594434b7f437} $53={65dd353535356dde3c6a4641475c56584535b6f536} $54={66de363636366edd3f694542445f555b4636b5f635} $55={67df373737376fdc3e684443455e545a4737b4f734} $56={68d03838383860d331674b4c4a515b554838bbf83b} $57={69d13939393961d230664a4d4b505a544939baf93a} $58={6ad23a3a3a3a62d13365494e485359574a3ab9fa39} $59={6bd33b3b3b3b63d03264484f495258564b3bb8fb38} $60={6cd43c3c3c3c64d735634f484e555f514c3cbffc3f} $61={6dd53d3d3d3d65d634624e494f545e504d3dbefd3e} $62={6ed63e3e3e3e66d537614d4a4c575d534e3ebdfe3d} $63={6fd73f3f3f3f67d436604c4b4d565c524f3fbcff3c} $64={10a84040404018ab491f33343229232d3040c38043} $65={11a94141414119aa481e32353328222c3141c28142} $66={12aa424242421aa94b1d3136302b212f3242c18241} $67={13ab434343431ba84a1c3037312a202e3343c08340} $68={14ac444444441caf4d1b3730362d27293444c78447} $69={15ad454545451dae4c1a3631372c26283545c68546} $70={16ae464646461ead4f193532342f252b3646c58645} $71={17af474747471fac4e183433352e242a3747c48744} $72={18a04848484810a341173b3c3a212b253848cb884b} $73={19a14949494911a240163a3d3b202a243949ca894a} $74={1aa24a4a4a4a12a14315393e382329273a4ac98a49} $75={1ba34b4b4b4b13a04214383f392228263b4bc88b48} $76={1ca44c4c4c4c14a745133f383e252f213c4ccf8c4f} $77={1da54d4d4d4d15a644123e393f242e203d4dce8d4e} $78={1ea64e4e4e4e16a547113d3a3c272d233e4ecd8e4d} $79={1fa74f4f4f4f17a446103c3b3d262c223f4fcc8f4c} $80={00b85050505008bb590f23242239333d2050d39053} $81={01b95151515109ba580e22252338323c2151d29152} $82={02ba525252520ab95b0d2126203b313f2252d19251} $83={03bb535353530bb85a0c2027213a303e2353d09350} $84={04bc545454540cbf5d0b2720263d37392454d79457} $85={05bd555555550dbe5c0a2621273c36382555d69556} $86={06be565656560ebd5f092522243f353b2656d59655} $87={07bf575757570fbc5e082423253e343a2757d49754} $88={08b05858585800b351072b2c2a313b352858db985b} $89={09b15959595901b250062a2d2b303a342959da995a} $90={0ab25a5a5a5a02b15305292e283339372a5ad99a59} $91={0bb35b5b5b5b03b05204282f293238362b5bd89b58} $92={0cb45c5c5c5c04b755032f282e353f312c5cdf9c5f} $93={0db55d5d5d5d05b654022e292f343e302d5dde9d5e} $94={0eb65e5e5e5e06b557012d2a2c373d332e5edd9e5d} $95={0fb75f5f5f5f07b456002c2b2d363c322f5fdc9f5c} $96={308860606060388b693f13141209030d1060e3a063} $97={318961616161398a683e12151308020c1161e2a162} $98={328a626262623a896b3d1116100b010f1262e1a261} $99={338b636363633b886a3c1017110a000e1363e0a360} $100={348c646464643c8f6d3b1710160d07091464e7a467} $101={358d656565653d8e6c3a1611170c06081565e6a566} $102={368e666666663e8d6f391512140f050b1666e5a665} $103={378f676767673f8c6e381413150e040a1767e4a764} $104={388068686868308361371b1c1a010b051868eba86b} $105={398169696969318260361a1d1b000a041969eaa96a} $106={3a826a6a6a6a32816335191e180309071a6ae9aa69} $107={3b836b6b6b6b33806234181f190208061b6be8ab68} $108={3c846c6c6c6c348765331f181e050f011c6cefac6f} $109={3d856d6d6d6d358664321e191f040e001d6deead6e} $110={3e866e6e6e6e368567311d1a1c070d031e6eedae6d} $111={3f876f6f6f6f378466301c1b1d060c021f6fecaf6c} $112={209870707070289b792f03040219131d0070f3b073} $113={219971717171299a782e02050318121c0171f2b172} $114={229a727272722a997b2d0106001b111f0272f1b271} $115={239b737373732b987a2c0007011a101e0373f0b370} $116={249c747474742c9f7d2b0700061d17190474f7b477} $117={259d757575752d9e7c2a0601071c16180575f6b576} $118={269e767676762e9d7f290502041f151b0676f5b675} $119={279f777777772f9c7e280403051e141a0777f4b774} $120={289078787878209371270b0c0a111b150878fbb87b} $121={299179797979219270260a0d0b101a140979fab97a} $122={2a927a7a7a7a22917325090e081319170a7af9ba79} $123={2b937b7b7b7b23907224080f091218160b7bf8bb78} $124={2c947c7c7c7c249775230f080e151f110c7cffbc7f} $125={2d957d7d7d7d259674220e090f141e100d7dfebd7e} $126={2e967e7e7e7e269577210d0a0c171d130e7efdbe7d} $127={2f977f7f7f7f279476200c0b0d161c120f7ffcbf7c} $128={d06880808080d86b89dff3f4f2e9e3edf080034083} $129={d16981818181d96a88def2f5f3e8e2ecf181024182} $130={d26a82828282da698bddf1f6f0ebe1eff282014281} $131={d36b83838383db688adcf0f7f1eae0eef383004380} $132={d46c84848484dc6f8ddbf7f0f6ede7e9f484074487} $133={d56d85858585dd6e8cdaf6f1f7ece6e8f585064586} $134={d66e86868686de6d8fd9f5f2f4efe5ebf686054685} $135={d76f87878787df6c8ed8f4f3f5eee4eaf787044784} $136={d86088888888d06381d7fbfcfae1ebe5f8880b488b} $137={d96189898989d16280d6fafdfbe0eae4f9890a498a} $138={da628a8a8a8ad26183d5f9fef8e3e9e7fa8a094a89} $139={db638b8b8b8bd36082d4f8fff9e2e8e6fb8b084b88} $140={dc648c8c8c8cd46785d3fff8fee5efe1fc8c0f4c8f} $141={dd658d8d8d8dd56684d2fef9ffe4eee0fd8d0e4d8e} $142={de668e8e8e8ed66587d1fdfafce7ede3fe8e0d4e8d} $143={df678f8f8f8fd76486d0fcfbfde6ece2ff8f0c4f8c} $144={c07890909090c87b99cfe3e4e2f9f3fde090135093} $145={c17991919191c97a98cee2e5e3f8f2fce191125192} $146={c27a92929292ca799bcde1e6e0fbf1ffe292115291} $147={c37b93939393cb789acce0e7e1faf0fee393105390} $148={c47c94949494cc7f9dcbe7e0e6fdf7f9e494175497} $149={c57d95959595cd7e9ccae6e1e7fcf6f8e595165596} $150={c67e96969696ce7d9fc9e5e2e4fff5fbe696155695} $151={c77f97979797cf7c9ec8e4e3e5fef4fae797145794} $152={c87098989898c07391c7ebeceaf1fbf5e8981b589b} $153={c97199999999c17290c6eaedebf0faf4e9991a599a} $154={ca729a9a9a9ac27193c5e9eee8f3f9f7ea9a195a99} $155={cb739b9b9b9bc37092c4e8efe9f2f8f6eb9b185b98} $156={cc749c9c9c9cc47795c3efe8eef5fff1ec9c1f5c9f} $157={cd759d9d9d9dc57694c2eee9eff4fef0ed9d1e5d9e} $158={ce769e9e9e9ec67597c1edeaecf7fdf3ee9e1d5e9d} $159={cf779f9f9f9fc77496c0ecebedf6fcf2ef9f1c5f9c} $160={f048a0a0a0a0f84ba9ffd3d4d2c9c3cdd0a02360a3} $161={f149a1a1a1a1f94aa8fed2d5d3c8c2ccd1a12261a2} $162={f24aa2a2a2a2fa49abfdd1d6d0cbc1cfd2a22162a1} $163={f34ba3a3a3a3fb48aafcd0d7d1cac0ced3a32063a0} $164={f44ca4a4a4a4fc4fadfbd7d0d6cdc7c9d4a42764a7} $165={f54da5a5a5a5fd4eacfad6d1d7ccc6c8d5a52665a6} $166={f64ea6a6a6a6fe4daff9d5d2d4cfc5cbd6a62566a5} $167={f74fa7a7a7a7ff4caef8d4d3d5cec4cad7a72467a4} $168={f840a8a8a8a8f043a1f7dbdcdac1cbc5d8a82b68ab} $169={f941a9a9a9a9f142a0f6dadddbc0cac4d9a92a69aa} $170={fa42aaaaaaaaf241a3f5d9ded8c3c9c7daaa296aa9} $171={fb43ababababf340a2f4d8dfd9c2c8c6dbab286ba8} $172={fc44acacacacf447a5f3dfd8dec5cfc1dcac2f6caf} $173={fd45adadadadf546a4f2ded9dfc4cec0ddad2e6dae} $174={fe46aeaeaeaef645a7f1dddadcc7cdc3deae2d6ead} $175={ff47afafafaff744a6f0dcdbddc6ccc2dfaf2c6fac} $176={e058b0b0b0b0e85bb9efc3c4c2d9d3ddc0b03370b3} $177={e159b1b1b1b1e95ab8eec2c5c3d8d2dcc1b13271b2} $178={e25ab2b2b2b2ea59bbedc1c6c0dbd1dfc2b23172b1} $179={e35bb3b3b3b3eb58baecc0c7c1dad0dec3b33073b0} $180={e45cb4b4b4b4ec5fbdebc7c0c6ddd7d9c4b43774b7} $181={e55db5b5b5b5ed5ebceac6c1c7dcd6d8c5b53675b6} $182={e65eb6b6b6b6ee5dbfe9c5c2c4dfd5dbc6b63576b5} $183={e75fb7b7b7b7ef5cbee8c4c3c5ded4dac7b73477b4} $184={e850b8b8b8b8e053b1e7cbcccad1dbd5c8b83b78bb} $185={e951b9b9b9b9e152b0e6cacdcbd0dad4c9b93a79ba} $186={ea52babababae251b3e5c9cec8d3d9d7caba397ab9} $187={eb53bbbbbbbbe350b2e4c8cfc9d2d8d6cbbb387bb8} $188={ec54bcbcbcbce457b5e3cfc8ced5dfd1ccbc3f7cbf} $189={ed55bdbdbdbde556b4e2cec9cfd4ded0cdbd3e7dbe} $190={ee56bebebebee655b7e1cdcaccd7ddd3cebe3d7ebd} $191={ef57bfbfbfbfe754b6e0cccbcdd6dcd2cfbf3c7fbc} $192={9028c0c0c0c0982bc99fb3b4b2a9a3adb0c04300c3} $193={9129c1c1c1c1992ac89eb2b5b3a8a2acb1c14201c2} $194={922ac2c2c2c29a29cb9db1b6b0aba1afb2c24102c1} $195={932bc3c3c3c39b28ca9cb0b7b1aaa0aeb3c34003c0} $196={942cc4c4c4c49c2fcd9bb7b0b6ada7a9b4c44704c7} $197={952dc5c5c5c59d2ecc9ab6b1b7aca6a8b5c54605c6} $198={962ec6c6c6c69e2dcf99b5b2b4afa5abb6c64506c5} $199={972fc7c7c7c79f2cce98b4b3b5aea4aab7c74407c4} $200={9820c8c8c8c89023c197bbbcbaa1aba5b8c84b08cb} $201={9921c9c9c9c99122c096babdbba0aaa4b9c94a09ca} $202={9a22cacacaca9221c395b9beb8a3a9a7baca490ac9} $203={9b23cbcbcbcb9320c294b8bfb9a2a8a6bbcb480bc8} $204={9c24cccccccc9427c593bfb8bea5afa1bccc4f0ccf} $205={9d25cdcdcdcd9526c492beb9bfa4aea0bdcd4e0dce} $206={9e26cececece9625c791bdbabca7ada3bece4d0ecd} $207={9f27cfcfcfcf9724c690bcbbbda6aca2bfcf4c0fcc} $208={8038d0d0d0d0883bd98fa3a4a2b9b3bda0d05310d3} $209={8139d1d1d1d1893ad88ea2a5a3b8b2bca1d15211d2} $210={823ad2d2d2d28a39db8da1a6a0bbb1bfa2d25112d1} $211={833bd3d3d3d38b38da8ca0a7a1bab0bea3d35013d0} $212={843cd4d4d4d48c3fdd8ba7a0a6bdb7b9a4d45714d7} $213={853dd5d5d5d58d3edc8aa6a1a7bcb6b8a5d55615d6} $214={863ed6d6d6d68e3ddf89a5a2a4bfb5bba6d65516d5} $215={873fd7d7d7d78f3cde88a4a3a5beb4baa7d75417d4} $216={8830d8d8d8d88033d187abacaab1bbb5a8d85b18db} $217={8931d9d9d9d98132d086aaadabb0bab4a9d95a19da} $218={8a32dadadada8231d385a9aea8b3b9b7aada591ad9} $219={8b33dbdbdbdb8330d284a8afa9b2b8b6abdb581bd8} $220={8c34dcdcdcdc8437d583afa8aeb5bfb1acdc5f1cdf} $221={8d35dddddddd8536d482aea9afb4beb0addd5e1dde} $222={8e36dededede8635d781adaaacb7bdb3aede5d1edd} $223={8f37dfdfdfdf8734d680acabadb6bcb2afdf5c1fdc} $224={b008e0e0e0e0b80be9bf93949289838d90e06320e3} $225={b109e1e1e1e1b90ae8be92959388828c91e16221e2} $226={b20ae2e2e2e2ba09ebbd9196908b818f92e26122e1} $227={b30be3e3e3e3bb08eabc9097918a808e93e36023e0} $228={b40ce4e4e4e4bc0fedbb9790968d878994e46724e7} $229={b50de5e5e5e5bd0eecba9691978c868895e56625e6} $230={b60ee6e6e6e6be0defb99592948f858b96e66526e5} $231={b70fe7e7e7e7bf0ceeb89493958e848a97e76427e4} $232={b800e8e8e8e8b003e1b79b9c9a818b8598e86b28eb} $233={b901e9e9e9e9b102e0b69a9d9b808a8499e96a29ea} $234={ba02eaeaeaeab201e3b5999e988389879aea692ae9} $235={bb03ebebebebb300e2b4989f998288869beb682be8} $236={bc04ececececb407e5b39f989e858f819cec6f2cef} $237={bd05ededededb506e4b29e999f848e809ded6e2dee} $238={be06eeeeeeeeb605e7b19d9a9c878d839eee6d2eed} $239={bf07efefefefb704e6b09c9b9d868c829fef6c2fec} $240={a018f0f0f0f0a81bf9af83848299939d80f07330f3} $241={a119f1f1f1f1a91af8ae82858398929c81f17231f2} $242={a21af2f2f2f2aa19fbad8186809b919f82f27132f1} $243={a31bf3f3f3f3ab18faac8087819a909e83f37033f0} $244={a41cf4f4f4f4ac1ffdab8780869d979984f47734f7} $245={a51df5f5f5f5ad1efcaa8681879c969885f57635f6} $246={a61ef6f6f6f6ae1dffa98582849f959b86f67536f5} $247={a71ff7f7f7f7af1cfea88483859e949a87f77437f4} $248={a810f8f8f8f8a013f1a78b8c8a919b9588f87b38fb} $249={a911f9f9f9f9a112f0a68a8d8b909a9489f97a39fa} $250={aa12fafafafaa211f3a5898e889399978afa793af9} $251={ab13fbfbfbfba310f2a4888f899298968bfb783bf8} $252={ac14fcfcfcfca417f5a38f888e959f918cfc7f3cff} $253={ad15fdfdfdfda516f4a28e898f949e908dfd7e3dfe} $254={ae16fefefefea615f7a18d8a8c979d938efe7d3efd} $255={af17ffffffffa714f6a08c8b8d969c928fff7c3ffc} condition: any of them } Example hashes: ---------------- b0a203627762353a2ed3f502de5110af6f08f86b31e0b2aa4a631393442756ec 8dffad64ec21a91a985becafd0610b33a661f97945d7dc70dd712abd5cb0d0de 8d8694c3207f90963a4f8202bb79ff7e27e22abaeab9485ccaad5427028c8697 70d16fb632ff6b12eb08d873bee35d27a82df9f76ec4a21a1c09df7befa6ca8c 4fc205955c7c12fce971e664cbad64b674b6d2e815ba0eca6d26b450b391212e cbdb9a0b9167b52c75d644d22be6a3979dc654751ef175f2ef3703e1b0b5d774 c839f4cca442547096bad395e58eee579f6d73e31d6549ee0859ff2a64a1304e 77c930bfbf405087f59a279927f32450362a47269237525318dc5d22094a331b b8ce490bc146c058abad4b6593d9e08adcf0b9d374616bca25df78e92ae7d753 7b8a18a87717b4a20d0a8aecd283ae6b200119fa5ebc7400c46265bac3a8dff6 573f32694f2b857825dba548e6b734842af68e51bfdd1949f00eade24813e789 12b9abed5ace32db2bb02e110bea02a0d2846c9017243d011644f81fbca7945c 4064ac41dbf2e965456b48d605e61387fbe7ba624b6dec7d8755d8040c17f171 8d121d78e4eb4b8b645c3e653d15fef253fd4df4d72d3a372ad8fad5606da90a d3fad6911b80be1d64eb88ba23fecbcddc2faa73017b6dbcf78578eff47552ed af254a043469d5775b3c4a314859df5b2c3cce620722124eeb8cecada503a61d 5e42ff5404aa8632852afeab9a95187be2bc8a44c37766efa2643b8f3a0bf929 468200d4d207a7cc1df245b9670fcf9e3c491dd344643cd7edcf8a82f2cde214 3cfe55860d036dc02a378f8a33b410b49a8e262129629595578b753b3f8267bb c71f32daa979011f7f036d931fe130bd54415eea8dff11d59064182768995f2d 9ae180f601623ac87f012649a6f4fd3ca5bdb4c37a46b7238c7eec78224b8527 8113cd9f625c79503f25399060f53362dcae5f5511d5254408bcc468b28ea76e 7ad81de63326dd196208d57c364530e3d990564cb9b2b3b10c7c9fa0f1c342f1 d8deebe02f669d352ff887a87825c0e80fc365548143387aacb4109c99dfee13 922e3bccd3eb151ee46afb203f9618ae007b99a758ca95caf5324d650a496426 af17a3b5bf4c78283b2ee338ac6d457b9f3e7b7187c7e9d8651452b78574b3d3 2a918030be965cd5f365eb28cd5a0bebec32d05c6a27333ade3beaf3c54d242c 39ac90410bd78f541eb42b1108d2264c7bd7a5feafe102cd7ac8f517c1bd3754 766067271ad941fdc3646a5fe154b2d25b215cb20373b89a8af6ca78dce1ed49 bbaedf6e01541f83e3068f044335d4474358b005f742868b0c25c3ac5d971b36 065b11de3d264ef73d7b9b7829da0a8b3f4142c26e6387b5e14d73e18389a2f7 ee5f1747380f9179a4dfdade2416acfe2d78dc7cab5537d3407ad8ba7e4bc3db f86dde1fad519c8aa0c9eca625adaf1e65ba311f916637c94b331b3bb905a1ca 864abeb3c608a4f069de9a80afe3119603b4e941fe950e03b3ccbd565f0ec086 cd3cff88a9be3624de40018397b4844d7da3be67f959de2d271bde98b5674ce8 5ec9911d977bca780d283a43b41f0eea842c62cb641b8b92700a317db3050cec 6618a1777c32d391bf6c628a571c8413bb253a176de486c049d3e6f4d02e061c bf352825a70685039401abde5daf1712fd968d6eee233ea72393cbc6faffe5a2 38d6b27c477d491e3b0fb3880d35523ac6391d1788f68ef8a14d8e105d043d35 84761ec1b92e41b0e171d9381f10007bdfeb244b04f3ecc34e30c5352465511f b0cd85282631cfd34f60080c16216e049c142ca7ceff2f22bc71878d61822530 06d5bedf5ed8fac87faed9f9042ffebbbc26dc794a2a2930419ea5677a46b521 e76e418014eab4e7c98136fe9cf81ceed1442a1d360554edbab9163df9cdc444 c43044a85b639c1bab4ded644aba8540651c2648fa99618c2fbd2ab157c2eee7 79022db1fe5f0100c71e86c7c3f18077cabc7de28202c004b11e313df0dad074 59d8c711ee792a185bd708fffa8771392dae70e460a91e012bd80bccf352fa3b d9e9bcc01d4742ebf4294ff580422e01b841741404968ba9fd4bb2d6396d8148 2f8c4d5233fb3db08f8b7132855dd632482f635c587bb303516905ac7bb007e6 d2d1a19fd2cf2093defe42ddbaaa2b01535313848a888d4f20c40eb8c4a518ba ba7e548ebb8078e5969a00d75e5a7b4fc86ed5ffa5de5fb487e56495296b6d93 ea50a1ce78c91aabfb56b4ddbdb26612dfe4ebeb907bb7d3755ba77faa167a35 3db7364b4797a840e35d808b9f65c9dd30e4d0d73988d76ba419706108ae7a21 56704b464ca5701ca969bac734a5ea1215d4a912c7a46f5895a60d974e8f71f8 73542285e1a49f86c5b9da8edfe86d54c5ac59569373f8b3cb9df5bdbdd01b64 6f1fdca97982d547dd976bca985e117bb47ddbacf487f3ddddc61a65872cbff6 d03a2446ef01702daa8461b20203f8c7bce6a1ce1a912ceea05f1d51edca95a1 9ea79e7036b293d6a0023270957729dd21eaf73b738332f2ef73cd41d679f676 0765ebc7da9ba74385f433792f5d1111da043a1cc6ed0d3a6f7c14c59ef16842 e64ffc50c920105c03a1f0cf40dc015bdba23db13021bf12321b5145fc21485c 490f6ee013a56c01dc57fa2e9f5bc7634d5a0800f07c3a820f8eac92efcbacef 9c30a99f77d54d755f228c3c4e0cb8ed429ff1223351888d9d1227b16a8cc1a9 c3ef3b464e07b853980a3eb0c30cbcad5810f6b59aea0aa79cd514e3726ecd7d eea0083ac04f8bfb3042acd615cabd7be77dee410c8db229b5980379b224e93f 1ee295cefee9365d65233b4ed8b4942e624b69b617b5eb66b68623f874708319 81ebc53905826f9edb4960d3a678196038f5be2f0c145468f8391232ed6793c6 f640e2c47aa9216c19ce9396b0055497786df7aa90178f2d082ec336edf3d68f e80cbf7eae501cc06734092af6643613d6b3e7df46793300ac9da66f12739729 c7b50a001220ed2eb9b2a720e232a141fe3c2580f2554223502bc5d6611a5a80 2e351e1c8e5f164d5f5cc62d92587d72f3afdfda8c3eca4544eff96f8329e75f 05c8cd67d88eb5249c360a92e0416efb07fdfc8d57659a7237120f3c9a12bb2c a8b92e9f0e2762b424f1616fdf03a31276987b3c8c31c3d46065cf6dc5c18c68 3463dcd5e03a38995764c2851ca93f457350a7d41d4ba18b40b4f788aca8c87d 83baef2481d651c97f8e583681a3a2b36be54b9876c845c24bb434cf0fc8a01e 50524041df82a17a0e28d1e6ed7cb205e4c427e552c25cb36cc4dfab13c121df 14fc615f6b3e9b0ca7c4ce7a112e5a414ac4844319e898fc016b5684e5125da3 b5bb41069de17381f4b1ae9404e1ce48c6a0ac9c2f37f17ec1e513426cd10ff0 5d4ec098fe42d4c3256f38c38dc5ea1d2b93c5c72c6eb1ebf83c4f3c97ececea 122efc82727855e1fdad81492fefe518149875155ce5595a34b3c29c2a220e17 644893b64aa53d51fc51fd67a0dfb1093e4c4a4e58554ed543217e171ab20108 b85c700fd6799eeaf6b9f313b7c4d55562d41f65833eb936ff10e9a931e11a0c a85e1202b6e7d27275c3ae38bc54bbc298988a8187ad6fe638b914f16dcb2745 a96180fd4401b1d517cb13e54be6e3fa59b236fe48c5bd61c4e954e53074c642 70bd94c2751f07ef23535e52791713992691cc518d03b36f8b20a80301b3ee83 1199b24d407ccdddf83fafaf8d63e971edaafded99214bee6b2ad4906729e4d7 9a3ded2474e6de973fcd4d6980edd90b584dcf496c4d90c66dcbf3ac62d75023 84fd04ec0579e97076330cebfaaa7fd508f495fd201c88fecd70f11559d49f19 0fba62627f5d769c3d75fad5f3a3544132a5a714d3dc16b6bfc8e39b7a9e0776 573032a583013a819dc46f1040e37506f700ddec7ac92f4292ce79a83d48c92f d16f1d82ace24ed81113f0ef315e96a2e4d8a28f848e33f59907078b9dd670a9 69ff8ee2ebb09a253b217b622c601c5ba181f7fd86af9f546f5b7c9c6f28eb14 5a3dbf702dc48f8fcd6b24d58d83a2dca875dc6215a7ecca805f6266c8d2f39f ff6400aba0910903c2c36f780b45482a707aade0a442669e9e801f2212076537 32fbde0579db35da3d10f776a6e4b95c5f65774e1241336c220b8fae34e81d68 439822fd5fc46d3d00e19085d52a6ccb1e4f0a0f96af99101f279dce8f9d478e d63b932fcdc8f217809347d0f5b1bd95ffebb5441645c344c476c74ebced9d45 e2f9f48c245176b8e0bee177684242270573a731137a2efcca3d347975e0bf67 4ebef466c8d0577926d9fbc8dd55986dd87ca20198d3773ec2866489d5176815 8fd6217d2b05911c1346ca1e0ca645c6106d0451026384347931748d8971a81c 3a73bb154506d8a9a3f4f658bac9a8b38d7590d296496e843503323d5f9b7801 0e16fc5f33559c64ecff53a2aadbf9ee5ad94379eb28df4a61913789de2cef64 6b217a9d1a1bc1974b00a35bcce8b4bd282daf2053f819fff8fa048eaf7f6853 24c59fd1e9738667f1d647bd15d48bf8d6fec69c24337e3bd02dd9fa646556fa e12405096f83b30b712d200b2fc42ce595e1d1254a631d989714b4fa423ef4c4 51b70fa3c50e7eeb800b8a32cec9e299fe133fb2e995515f17a79ec4553c5bbb 4e75f0c1bccfd8cd1a9d6a69a49529d358ad4b0fb71c9a1cb795e3a829841c38 d5888e2fbe3aa366cca12e754c50df8aa3b985dfb8d2dc21989dc40a0ae1daef 658dd1329e474ca08f2640bc977cf2a8d46610fa983d94ece2cd652534075354 70baae3ae48aa13a7e764c2608ab14edb89ede0765f8d1cbefd301b7c04eff34 0f36be97b91cf46578c1322fbdabb564527cfa9d09eef0ec0f28c43132ef0a51