stacks-network / clarity-wasm

`clar2wasm` is a compiler for generating WebAssembly from Clarity.
GNU General Public License v3.0
14 stars 16 forks source link

Out of bounds memory access from `from-consensus-buff?` #560

Open Acaccia opened 1 week ago

Acaccia commented 1 week ago

This test fails due to a out of bounds memory access:

#[test]
fn from_consensus_buff_oob() {
    let snippet = "(from-consensus-buff? {cf: (optional bool),j: (response int int),pc: (list 31 (list 22 (string-utf8 29))),} 0x0c0000000602636609016a08003e01ae8f0e85a32d1ba3d7e196a88e51037062780c00000006074f61634b6a6259070501bf988c8a42f29aa033691dc586a2fd196a2d331204524a686f0b0000000200b4be16025473accd2131f13c15ce931200490f82aa76295f12d6de89677b0ee2620c535963625952736f7457776b0200000060ac539a866d8dfe46c08eef42c45eacc7f291e3fd347cbfba38af4de02c54e1b197906e4fce14e9dad7dd7a8cd94cb312ee5dd39be7266b8eaab354295733771fc555eb170391ae943601f5171ef154dd6f68ace4581741d890acc4e69ae74a670b54434b6f686254457672650b000000000172030f7964447a70785a674c6968787867730b0000000504040304030270630b0000001d0b000000150e0000003b1bc2be7b75f3ab82a7c3887bf0b2a2aa27f2bf8184efbbbff1849f95efbbbfefbfbdc2a4607f6f2e4c2e45d1a8577aefbbbff181a0a03ff0bdaf8d0e000000355a2f7b35f0aabb98f0afbe972ef48f98b9770a3fefbbbf60f1a9af830a0d270d2a092473f28494a1c2bc2f6dc38cf299a9adefbbbf0e00000032d1a824f2af90b83f243af39792b27ff392be87d1a8c2a5c3ac3f4b5425277c3a2cf3bc88962a22d1a84ac3a372f282b1960d0e000000322777c3805c68245ef09eba8c37efbbbf0b247f282ef2808f991bf188bbb559f09f95b42ad1a80defbfbd2252f481aa83004b0e0000003d3cefbfbd5c25e280ae0bc28df380bfb33f6cf398b7acf28dab8025f2bf88886c3c7cf3a6a09df3a18799d1a852efbfbd3ff09a95bff0b2919d66383f540e0000003cefbbbf3d3d2ef3b3a5bf2e2f605f6cf48f85995cf1b890abf28788a871f3a1b8a729261bf0ab91b8413f60efbfbdf1968bb626f0bc989d4ff39cb1980e0000003534f0a8b0ba3cc2a5f28890af224cf0abb58b262a582ae280ae54590021f1878cbcf1b1a89d245cf39e9c962b223df2a4a2890062090e00000041090bf2baa3b31bf1ac94b8f2be8ebaf3aea091f3beb5bd6ae280aed1a82522e6b5b5c3942a3f2c3fe280ae7ff09f95b4f1a8a98542f1a3bcbbf2bf84895cc8ba240e0000003e1b7bf3ad8cbe75d1a8f29d8090e280ae27f09f95b4efbfbdf19695a23f237f7fefbfbde280aef398bc87e280ae602f2652f0afa9a44348f48d898b5cc8ba0e0000003b77f282b5bff2a0a0bb2f0d0924f0b78fb43ff48aab93c2a56043f3a7b2bf5cefbbbf615e6d7025f0b5bab02af09f95b42be6a8b83ff39ca3b5c2a20e00000037c8baf3bb81a83f24f3b4a9a6c8ba0bf3beb2a13d607f222bf09f95b448713ff3808bbc2ec2a8003cf28182b16bd1a8c293f29ca78624630e000000383c3c30f28db9a90d504c20f29fba902fefbbbf09f4809e970af2949087f4868684c3b50a4222f2aeaaadf181b4af2af394aa8a7f09007f260e0000004068efbfbdf0a9a3bac2a5256032f0bda899f1a091a4f09f95b4f1b686b8f18a9eb7f2a28b857560efbbbff3be83bb4df18b98a7563d1b0bf39e99a25a4a2426250e0000003cc8ba5800223ff381b3a5f19590ad605c2af09190a4601bf1848f95243ff28bb0bf25f09f95b44b22f38ba8a03af3a2b68b26f2bda3a9f38483a92e090e000000393c3d26f1ab80bcf0b384a209c2a53d460df0a2b5baf09fbb99efbfbd732a2f263dec92bf6860e280ae51f18e9894f3bfa38bf28ea1aa2543620e0000003cf3a0a1ad635609c8baf399a48009090d55f09a968209d1a87c6c2ac29e2e2e0df09f95b4f0a38497f288a4a5f3a3ba9befbbbfe280ae2426f09f95b40e0000003b7b0a202529e5a9b7d1a8efbfbd2e2ee280ae2f47f09f95b47befbfbd7cefbbbf2ef0b390b0f09f95b4c3bf68f1a39fb83a40f1858dba2af2859d850e000000352f543cc8ba4ff1a9a1bf0bf198a1863d5c0b2ef0a6a79974e280ae3df48eba933c600b2f3defbfbd2b64c38bf0bf8b82f2949b81270e0000002e6f22efbbbf2af09794ad0a5f4e5024651b5e00097b0defbbbfefbbbfe280ae6ef2a88bb06360772a3cf2b3b7b92e0e000000352a002f69efbfbd0d2ff3a3a793f1878685f0a78caff2a5a7902a313f3c3c4022f09d9ab4f09f95b4c8ba20f381968d223a2a242e540e0000004825f3958cabf2beb789f0a6b297f1a0b0b5f28897a92958e19d985cf097859300f28685982ff38684b4f1a7918eefbbbf26242e3df3acb4ba2ae9a3a5f38ea2a9efbfbdefbbbf2f7e0b000000050e0000003bc3a40d2f6f2ff188a8bcefbfbdf09f95b4c287e280aec2be3b1bc8ba363c22c38d3af3ada9b4f2b9a595f0b6bfa3702e1b7ff1998fbbf3bcbb837a0e000000391bf193889d2e502e6df099bab37b3c3a6022f3839d82f09f95b4c8ba0bf39e95b5c8ba4f7f2ef195bc93f2a79c9de280ae5d352af09f95b47a0e0000003c3c2a3a25f09f95b4f393ac8ee19f80460b7c48f0aba8ae68f3b6959b3d3a56f0be9ea2f283a49cf09db08a3f2724f0b68da0e280ae2e2f0af0a888ac0e0000002ec2a549262e3dc3a459c2a5f281aaa07b7b621bf293bd8d3d7b255c7bc38f095c3c3f3df287bb840dc2acf1828f9f0e0000003b5c3cefbfbdf48cb1877bf2b7a2bd274c24f19e91a027c2be262509f098b5b8efbfbd24f189bf820a0b25f3b68abac8baf097a28c27f0a398b33d3d0b0000000a0e0000002854c8ba606ad1a826251b3a202674f0abaa8100e19cb65e262aefbfbd0d58efbfbd725b23097b263f0e0000002eefbfbdf1938da23a2cf291a88b51efbfbdf3b8b7a3722d7f3a7b3a46706641c3ac0b730df387b6a826340924345b0e00000039f2b4968b2e2733263df09e9e9ff0998c873c37f18f9a93efbbbf2fc2a5f19fbc9cf39398ba1b52093a3cf09bbd8b233d0d5ef0b7a5a8c8ba780e0000003a273af391be873f0b7bf0ba87b0f1b89da1700b7b5bf1a18e82f1b1ad912f2f2aefbfbde280ae2979f38980b458d1a87df398aea12ef0b39b9c7f0e0000003976c2a5e293bfefbbbf3af3988e8feb99a93c0a37f3a59fa4c29a587b250df2b6b98f7f3f497f223feaaf8844f2bb86a327f09f95b4f3a789b40e00000046f2b9be88f2b1a39d2fefbbbf3cf0b182b95325f282a8afd1a854352ef09f95b4f1879597d1a824f38594ac7bc2a54af281909547f1a794866cf2a49293e5adacd1a8f399aaa80e000000413f64efbfbd60f38e90aff188b4ba25f3a88f93f09f95b42ff1a1ad867bc28c24f18eb59f3ef3a4b4a6f09f95b42e25f38c9d922bf3a1b8af2022f38a9784243d0b0e00000035e280ae79530057f48e8a83efbfbdefbfbd3f6cf2a59aa37ff285ad8e3dc2a50de280ae7f22f09f95b45f3f3af283ada82a5c282e2a0e000000337927c38d3d7c44f18eb1a83df2a08ab7f0b8ac9f23f298b3904d4e7b5c6728f2a792a40dc381f3b8ba903c1b243f0ae293ab3e0e000000360bf48a9e8ff09f95b4211bc29724f38e92855c38c8ba60272409f2b79883f191bf8872f3a99a962ad1a85f4d2ef2ada59f002ec28f2f0b000000130e0000003324273af3bebcbc3d222709263ef28ebcaef39b9b9c295bf09f95b42ec2a53c63421bf1bcb7aff48eaf992e0d2620f09f95b46d0e000000370a580dc3b8efbbbf3a57473c265326f09f95b4f485aaae7f5befbbbfe280ae7c00f29496ba0df28199922f7b09f3848ea1cdbdf39dadb30e0000003a76f280a38800f483b59b6bf2b19aa62e552df383a1a43f7b67f38fa89459002760f0a2be9bc3a727efbfbdf0b8a9abc3bf633bf39b84aec2aa2d0e0000003df09f95b425d1a824265c3cf284a5a57bf093bcbc3df3aa91bdc38aefbbbf2f00f29f929b6cf389bbbfeea4960af1b282be4609efbfbde280aed1a82e540e0000004ac2a5f29d87aff290a998f38787acf28f898a005bf2aaa29df095b79bf19c82907fc8ba093a22f2abaea409f09f95b47049f3918eaff2979faef28d95a9f189a9a46af2b083870b5cc8ba0e0000003f241b0df391b0b3f2ba96a6d1a80b36d1a8c2a5f389aab34026f1abb59ef2b0a78656e1a990f09f968426272c35efbfbd2f0bc2a5ee94a7f28f8fb0f294a3a50e00000040f3b3b5a123f3989bb9f09f95b40bf2858abb09f38b82883d00d1a8e881a2f1a788ac2f7ff1a6949026d1a8f2918eb10df18cbaad3c410dc2a57558f0a29fb5770e00000048f0b4a7ba5cf0ad918df2aaa2bd26f3a394ae3c6f0951f3989aac3ff390a4b727f1baa5ae0b45efbbbff3bf969ef0a4a9a875f1bd8a82f2a6bd8d6009e280aef3ada3a354f48bb2a40e000000395cc3b1c8ba7f0b3cf0aeb2afe4ac9a222ef09f95b409f38ea3913af0ab9da8673c0d26f39a849df09bbc81607060f1b59fac0a00c8baefbfbd0e000000313827f196a8977df382aa8f7fd1a83f3c60f0afbeaa3a224f510befbfbdc2a5efbbbf5cefbfbd0d272e0de3b583c2a54c5c0e00000048f0bdbfadf09283bb60f48fafa33df3aeb68b09f1979ea73cf48c9ca13c2af398a895f394848c587bf09b9faff0a98985f0b89bb30bf0aab3983cc38363f0b0a09b00533cf1aeb39b0e000000300060e280ae5f7b2b2c4026f28caa9b53f2969a9cf3a8b0a722f09f95b40bc29e240b4a0b3a201bc8ba2af3a091b90d0b0e00000040efbbbf3dc38ef3bf929c25f09f95b4f1b48c96f09b9db7091bf395a2bf5c71263ae280ae603ff1aa8482f09f95b40a5fd1a874e280ae60f09991abf1a7ac97430e0000003ac2a53df19aa4aaf2b586933f5c7ee280aeefbbbff3b8b58e3932f3a182a93c3c00f2abb6983a47d1a82fefbbbf7f0a4ef0ba8abc0bf389b4b86b0e00000037efbfbd7ef2b1adb500f0a6a0a947f28586a979efbbbf5f7c3af2b4aaaf7a601bc2a55cf29f879a5c7bd1a809d1a83f5d3fc289f18da4850e0000002f1bf38e80b42e2e24f2a08f803a3b70227b3a2ff2b984a72509432af098b2b93d2ef0b78bb227f38cb7871b0a735c2d0e00000030393624516025efbfbd7b0022252459f09196aa00247f27d1a80d2759f1a7a0aef0bda79f3ff19ca884efbfbde280ae7b0e0000003845c8baf09f85805af48bb290612700f1bf88b42ff09f95b4c3b2252e2df1989a9c6d4538f0a2a0ae3ce89ba53cefbfbd2c7b60f3aeb9b5250e00000047f2a890a3efbbbff2be9ebff29381870a28efbbbf745cc28b672f3cf18aa7b4f48db2a3f2b6a2a6c28f46d1a83ff096b8a025f39e9d9ff18688b800e280aef095b683f1b99494090b000000110e000000390d3cf09f95b42c60f280a39cf094aca2243d77f289a29124c2a8f0a29d967ff188a78f6c0b2fe280aef3a89fa47a3ef3888f8d220d6c47c2a50e0000003d0ac2923ac2880a093d257f00f0b99098f09d9681c3adf1b7a58cf48787aef2a287bff3aab1a7f3adbe842a500d3a2638f09f95b4382fefbfbdf385998b0e000000360d7624efbfbd3fe280aec38059f2878f8827f380a999590b39e280ae4bf1a399a3f29abf95282af286bc8c7f2526efbfbd6d3b1bc2a50e0000003409f3b0b58b6ef39ab0bf27273c4a0b602fc2a2f3bc8fbf3df486b28df3bb9488f09c8d80d1a8254f712a25f48fb88f7b5b096f240e00000036c2a1f1ad9e8c2267f2a699ac3ae280aef2b0ab843a27f2b78188e7bca81b285aefbbbf1bc2a57c43d1a83f4c6ef39baa88c2a55c6d410e0000003df29695aaefbbbf00c8baf09f95b4f281ba86223a2ef1a199b04d0d2ff0b9a09d1bc394c2ae3f7b70277b26f48c818e25f3859b827bf3889f98f293a1a80e00000044f28487a1f2bf8294efbfbd6b3d09f39c978bc3a049f48999bac8ba22f09f95b4f39e83ba7aee91b6f2b38c9121f1b1b2b5253ff28eb789204e09f3a984a13f60f3a7a7b30e00000047f191bd954b24f1b887bc370d25f1b79399f28f8b80c2a5efbfbdf280aa91f38c87b07ef0b99293f2a086a433ec90816cf2bdb0a6f29db6b8f09f95b47725f1be9a873c3f00c3b20e0000003a6020f39eaba53af196a7a55d26f38297bef3928d8cd1a8c388602ff097b0be34d1a827c2a546f2a886b352f39392bc222e423cc2a5f3b89a8e260e0000003b57f2bfaebcf2bfa0b72ac8ba7f24f09f95b42422f391bbb37809f3ba97a6c8ba092e2ed1a8f383ad92efbbbf3d5c25efbfbd4f55f3a9bfb0efbfbd0e0000003c7be280ae27247a3c2a3ee28fb5f48f8d97213ac391f19495b8f09f95b4f09f95b4f3b8b887d1a850f38eb796f38f8b92c8baefbbbf6f47c3b843257b0e000000363cf2b9b0b000741b3fed9886f3b09e80c8ba22f482ab9a242650ebaf974e3dc8baf3a89c8148f2a284bf257e2e5300efbbbfc2a5c2a50e00000030c3982ed1a8000b2ef3a681902a271b244e4f510047f0989d963defbbbff19baba95c2bf3ac8ea452efbfbd3d3a0ac28d0e000000383f5cefbbbf7bf486b2b4c8baf3bcb592d1a82a3f373c3cf1b4ad8a37353ce2aaa80a24e280ae25efbfbdefbfbd7ff3a381a87bf1bfa4bc260e00000036e280ae24f0b99f842f60e280aef287a8ae2ae89fb3502f222a6d3d2ff48db8bf5c00f392b49f5c3d39222a25d1a8f29caf9df28fa8970e0000003a607ef192b0ba3de280ae3df192a0bef0b9809b5cf0ad98940026773df096919defbfbd3f1b0a495de280ae60331bf389839424f3929cb9e198a20e0000003ec2a5f09db2a6f39f9683684ff1b985b0f39682a3f48697a03c430a252839f3999fa72fc8ba24f0b5ada0f4888bac39efbbbf0befbfbd09473dc286e280ae0b000000140e0000002befbbbf250929f299908d6c443f2e7d60f1908c8242635c26f484aa871bf3889b88326d7f2a262d0b58383a0e00000035f1a5b4912ef3939facefbbbf0b3a3de0b0a0674f3ff2bb8b897a7f3d3c0d7b60f09f95b4efbbbff2b0b898c2a5e280ae242749242a0e00000039d1a8f1a6adbe2af3acadb6f3a8b08d22383cf3ba9d82efbfbd0dc8ba263d2509252a0af3aba0880d0df0ac80862a2fefbfbd74f3b28b86c38a0e0000003636f3beb48bf1b4aa852c250a25f3888d890b7f1b242ff0b4a09cf192aeaa7270f0aab48f3f5d3ff38dae922672f39e9d993dd1a822730e0000003227223a46f1a39491efbfbd51efbfbdefbbbf3c240de280ae535af09f95b4efbfbd26223824253b792f5ce280aef1aeb7ba7a0e0000004a4af092a0acf3af8db4eea8bb7fc2a52628f0b1a9acf09f839dc2a50a62f094b5927be280ae33f09f95b449f3a58a98f1b2baac40f38d9da0f3a38ea9f09f95b4c2a5efbbbff19784bd000e0000002a3d0df48196b076225c2409257bf1bc99b5f48ebc8c242d250a0d3d0a423ec281c8bad1a80a0ac8ba53000e0000002fc8ba0df39db7b22fd1a8c2ac2ef09f95b455d1a83c67f2b4b6866d4d6c0b7b73263ae280aec8bae5b08d7b000b22220e000000380af38b9e8ef0b1baae0af48c98ad565dd1a8e280aef1b789883ff09f95b4094260600d0bf284929072f38da0b3420b2af38790b97822260a0e00000038312df192b29fe280ae2b6561efbfbd57273d743a3d220af09698af3d74f1b28381f295a0b525f09fb5af3cf2a18b86f2bca7be35efbfbd2f0e0000003a2b3e60f09f95b4f29fa59677f09598a0f19c899200215cf2a0a3895cf1aba999f2ae9b93242e3dc8bad1a8c3826460f09f95b4efbbbf2b27203d0e0000003570f388879cc8ba643a0d1bc3924f6c507b006d7f3cf1a58cb5275df09f95b4c8ba67f097af88f09f95b4002f7bf48fbfb5f297b7890e0000003370e280aec3943a3cf1b0b3a30b7b3337261b0ac2a5efbbbf42c8ba2426223a63f0aaa6bb09c8ba5cf3bfafb2efbbbff19f91950e00000040f28ea49defbbbf0df290a6a1f2baaba16d2a0d2ed1a8e280ae5cefbfbdf2a0abb562f2958db6e3afb9242e2c22f0a597b2efbfbd240bf29b82a6f09ca88c39280e00000039f09f95b4f2a6848825f190bbba7d25f18fadb624f487b2b3f48aa98e2f2a253af38b9eb5272ec2bb2f3cefbbbf1bf2a795a6604360272ec3b50e0000003af0978589f393adbaf18c8b9d3ac2a52e0d352535702af481a7bf6027c2a5c283f1b7b09ef0bd898cf3b199b9c2a52a26672ef3a1ac82262ec2a50e0000003cc3bdf2bf84b2257f293c00f3ba958ff1b49ab4f48b8cab565c5224c8ba3af2959bad0043f28ead9eefbfbd67f1b1a197c8ba73ec9484f1b6b392093e0e0000003befbbbf782f6df1b5878171f28aa4bc7f093cf095869d3c363038f1a9a2bb1b336964f09f95b4f0a0ac813cf28dbfacee8f9cefbfbd3df0a3ab911b0e0000003900266dc2a50bf09bbda9f18ba7aef1a2ba973f3cf0958daaf0b5bd8a7f25f2aebeac491bf3a995a23d65f1a889ae006b7f64f3b08dbc27600a0e00000030e280ae1b0d60efbbbf1b25c2a52e455c3a74c2bb27255ce9ab91f1b6b9a1c8ba3c662fc8ba424cf2b0aa8c3df28a8f8b0b0000000a0e0000004026f38e9ba100240af3a7b2b9f0919f80646660f0a1a59b5cf2ad99aa36f0b9bea1f0b39f98290bf1afb2af7f3b5cf288b885efbbbf57f19caeabf3b086b61b5f0e00000042f199afa7f29eaba725d1a8efbbbf7e3defbfbdf0b0a8b3c284efbbbf002a3c2749f4819992f486b4912270f2819c9cf0a991b85562efbbbff3a193b269f197b4ae7e0e000000360a2f3af09f95b43d7b27f196949ff48e898462f1a2ab87792af38c81b2c38378256009373cf090af9b240922f19484a52f2af0beb7a10e0000003a7f5af29facbff2b581bfc38af28ebabf4cc2a523f09fa092f3a78a846022c8ba7b2e602ff1a4b79e2a22f2b8a49b1b3d22f29c9a87d1a8d1a83a0e0000003bf09bbbb4f3a397a73a73f09f95b4f1ba96b64af3af85a5260a2a3aea8999343c0a370af0919f9756332eeab0a63a2defbbbfefbbbfe280aee280ae0e00000035f09da49009265dd1a81bf09f95b4eaa8b2f09f95b4330ac8ba52c2817f6a0b3d00d1a8427cf18f8c902e45f38490a73ff2a89b8e3c0e00000041f0a3b28a0026f1938ab9f0b9a7993d7b7b3d257bf0b19fbf1b25f2a9a8b4f09f95b42f5b3ff09081ba2cf2aca294f3a29b982663f3a98187f1af9bbdf29aa2ab0a0e000000360d2222f3bcaa9770002b26e6ba923cf2bda88fefbfbd77f2adb3813a0b7f252af185b8aa2f5cf09f95b4f1ab98b6f38da2be3d763d3a0e0000003dd1a8206ee280ae7ff3968db009efbfbd0bc8baf18386be2ef1878595f3aeaeb42df2baa4944b0022f0a0819945efbbbfc2a52e5e69f2878b92e998b3240e000000392724efbbbfc8ba0a3826c28af188b78577f3be8f860bc8ba4e0d000b2ff0afa4bb3f7b22c2a9f190939cc2b35cf0a5be8af2b7b997f18fa6a00b000000060e00000039f09f95b460652060f2a39587f2a481af0b2e27f2af88a1f391818c2860e280ae253f25f2ba93987befbbbf70f09fbd9d24270a73f0b0a9b92f0e0000002be280ae3dc397660ac8ba2624264e3d263fc2a5c2a52f7b4ff0baa9b8092a6741efbbbf3c2cf3be92b75c670e0000003d1bf09f95b43a234267d1a860f386a089c28befbbbf00f1bcb6b8c3b9f096bbad25260af4889db4f18a9f857b3df195868ff396899c474f0a68f18d8dae0e0000003f0a2e3cf39ab18fc2a5f0baaebc5c0af28e9e84f29680bf00f09f95b42e5b2524f2bdb192f3b98ea543f48fbab6e989b4272653263af18693a5c8baf28aa2ba0e00000036336df1b5b0bde182b7f3ac8cbb6c6ef0ada383263e3aefbbbf0d7b273a4df3b59da02e5c272f213df18e8694f38d9a802231f0a6ba810e00000038f19797ae3df290b2a360413fefbfbd0900f1858d953c7b3ff1a6ac967ff3beb8b4603b2ff1a78b98f28daca83724efbbbf38264fc294c8ba0b000000160e00000041f09ba9bef0acab977f274df0a89181f3a6bc813d3df28b828ed1a80a2e0d1bf09cbbafe280ae49f1a58ebb2421783cf09f95b4f0bf9b8af09f95b427f386a38b5c0e0000003bf29d899234f2ac8eb55c0af19c818cefbbbff18880a2f09f95b43c093344f0bbaca27cc3b3c2b2d1a8600b652f66f399aab6c2bf0d3a09f1808e8b0e00000041f1a8ac9b70f480acab7bf3b5a2a9c2a9f380a087f0be93a43dd1a8222f252df383baa42e7ff295808727efbfbdf1bc95ae24f384b2b4f281a491c2b578093cd1a80e0000002f782ef298bc8ef2aab5b63f1b1b5927f09f95b4773a0b260a0df2bf809a642e462a3a692e2df3a4b49447f3a9baba7b0e00000041f29b9e94f29fa095f09ab689c396f48a9d87737ff387959ff288ad8209f48a9b9f3d51c2a2f4858ab4f480a8a9f2b589a9223d26d1a825612f2af3afbbb36e782e0e00000034efbbbfc29a522224f09ea5bf533c3fefbfbd002c672200f28982b9f3abb7bc2a2f3df2baa8ab0af3b483815934f3a79297277f230e0000003c3aefbfbdf3b798bd6f7f25f19885a4263c362e0922f2b8889cf09f95b438f090bebd4e3defbbbfefbfbd3ff18b80b3f180849b30efbbbf7f0aefbbbf0e000000346c21220948095ce7a0b1775b3e2a7e5cf1b9bf962541252478f3bd83a01bf1a795bdf3a4a2b9f39d8eaf39f48f9985f39b95b03c0e0000003e000d7bf0b48db7f3a4b98a21c2a522f482898422cc947f7f22f1a7838c223d625bf19a9e96d1a8f38f8996f3a9ba8149f1a392bf6cf191a1b6f1bc9d82090e0000003622267b26453cefbfbd58efbbbf25603b2e27e280aef48287b10a0960f1a2bf96f3b9b4a3f299af89c2a522f29583b73d250af289af810e000000403df1b5b0b5386af382b1adf2bb8ca8092425f1a084bbf18f8db3c3aa44f2a0bc9dc2a52af3a8b39c5c326626f29798802e3c09f3b2b9a8f2b0bbb044f1b894b70e00000043f19f9c9df3b4bdadefbfbd0b3ae280ae002ae280ae1bf0a2818df1bab4b75227f1879c99f29ea2b7f1af8f9a3df48db6b32a257b2af19993bbf191a484c8bac8ba2f0a0e00000033c2a3c2a5f2bf90ba3a6af0b6b1adf38082891b1b3ff0bdbfb24a7b442f2d26c284f189aabe3cf2a9ad9f6a3cc2a51b3a1b22630e000000396f3360f298abb60a7bf3a5aab53ce280aef1a69e99260a220d2e2f68f0b7a5b7f3af95803fc2a42a3f4ef48ab8a426d1a8f39c97adf48195970e00000045c3a4f280a1b8efbfbdc2a5413fefbbbf7befbbbff39e9eb1f09192aef2889387f09c859c7f4af09f95b45cf38d8a8cefbfbdefbbbff3afb4a734604675efa2b826efbbbf460e00000046f19682890df48998ae5038f1a691b3f3b595b1efbfbd092ec2b5f0af848d4ff3b8848b49f286a2bcf3aaaca1f1bd978d1b3f7ff3928ea8f28e96bfc3acd1a83d2ef39cb69b1b0e0000003b5cf282a095e280ae25f1b4bbb959f48aa1b97b7b220b003d68f0a785a7f3aa89912a263d251befbbbf2af39bb48948f29baabdf0a7828cc2a5c3a10e00000036f29394a3e280aed1a83f2c3a5c600a2af2b0a0a545f09f95b47526f3bb9ca451d1a8f2bd81ac5cc8ba72262fc2a5c3ae39f09f95b40a0e000000350d61c2bb0d3b386022f09f95b433efbbbf1b3f1bc2bdc286e280ae3ad1a87bf09f95b4f182af9df1a08faa09f3b3afb0261b7fc8ba0e0000002e7f380950f297a5856d0941c3a0091b5c0075c2ba51f1bfaf95357d2ef2b7a18a0b3cf1968da4f092a99c60262f790e000000323dc29fc28b27244f303a7ff48b8682f0b1888de280ae1b090a2fe280aef3b294bb1befbbbf2569603f69c8ba0a7bf099afaa0e0000002f7e227c7dc8ba262f3e0d3dc8ba1b5cf19b859a245b22c8baf3b8beb6f2bd84bd603c6a46f09f95b43d6ef09f95b44c0b000000130e0000003befac94f3ab9a9e552645c8ba7d3c3c3cf2adac8b2f2eefbbbff2bda98dc2a5d1a87ee280ae3a277ff1aaa3995df2a289abc8ba7befbfbdf2a7bab70e00000030f1ad9494481b0bf18aa7b77f213f3332f3a8888ff2a4aca226270d2e0defbfbd3a3a54f48c8ea4091b0d35e2aead3a1b0e0000003ef38e849cf29bb9a126f3a2b5aaf0a894bdd1a8c2a55109f09f95b45125f39297abeca1b3f09bbf9c3a4c3fefbbbff38b9c8e0de280ae65d1a81b5d24093f0e000000325a73604227efbbbff189a5ab260a3d0bc2a50970f382bfb8f293ada22f29f28f8b86f382b3bff18c8f97003f27390a1b791b0e00000042f09d82922a2af09ba297f2bbac891b37f3829d9bf281beb3f19d9f997b66f489b9aef1b697a1f29ca6b8095cf2b694a1c2a53bd1a8243c51e280ae1b0af18d858f550e000000393f2670093024f4818b8b5ef2a7a3a5f2a185b42e7df1acbc984d09f0a58bb70bf396ba9d0af0b6b8a5f1a0a08b6bd1a8c387273fefbfbd24220e00000036f3a79b933f5b26f389b5963d3638efbbbf0d0bc8ba276624f29f89bcc8ba6cf38989923c3a260aefbfbdf09f95b4f1b5b8a33c3ec8ba0e0000003c2af280979cc2a9f3a1bfbcf0a78789f3bf8caef382a7961b320bf2b4a294c2a554f488909f4a0df0b79caa292509e280ae4e3d32542a0b6ff382bea00e000000453d0a270924f48186b9f3bbad9e2af2af8ca6f09f95b4f2b9878022efbfbdf39fa38f2ef290a6bcf180b79b32f3b89cb56befbbbf28f198ba8244f1af82a227f1b0af997f390e0000003e1b57f3869e9af0b783bb446d2ff18d818a0af38bb8baf1a8ad9b003c60e280ae607b3ef28aa4b421f48ca4abf2bdbd82607aefbbbfefbbbf5c0df09ab8af0e00000035f18081b060f2969fbbc2be3a1bef98a43c223df39dae8a367b00c2a5ebb2837b2526224d353df0a2a0a93cd1a8f1babbad70efbbbf0e0000003043c389f3b6869664663d3c7bf1b89a864e2327f18badbb00f29bad8c273627f2a48d87c3843fd1a86056c2a5001b422a0e0000002d2a0d2747f09f95b4261b7be280ae4cc8ba0b78f3b080acc8ba3c265b797827c3853cc8ba3f7bc2bef0a59cb23e0e000000436609f282b69bf2bfae9b3df28c8ea17bf3bd84a9f2a6a9aa3d2e3c263df1899097e280ae5fefbfbdf296b5b322f3a0b281f09f95b4c3b57b7cc8bae280aef2958a987f0e0000003df384bea6f3b4b49df1b2b1a8606af383a381f099ac86efbfbd000a2e27c8ba0971f2a68cb60aefbfbd26c291544366f287999d5cf2aa9ca5e289aa0a2e0e000000472668d1a8e280aef0baa5be7bd1a8f3a8b5bde280aec29cc2a522c386f283a7bb512d5c0af2bfac82f489b5bcefbbbff484b0b7c2a500f295baaed1a8f1a4b082e280aef488a7830e000000337bc3b33df09592b7d1a8f1b8839af1a8b5bc22f0a89585421b7b48223c3c7960e6acaa2624635cc2a57befbfbd3c27f0a7b2860e00000034c3933a00efbfbde6a0bc5447636c266c4b7c3c1bf295a08de280ae5cf1998cb2d1a83f6ec8ba46f3b1878ed1a8f1a9849545c2b20e000000361bf3b192a2f4879f8a6060f2a6abb5650d503dea9d84c2a5276027f3be8494277b253f7bc2a50929f0acb595c8ba48efbbbff0b5b6ab0b000000120e000000302a2ef1b9ac9df0938bbdf1af94ae25e68ca3670bc8ba5cd1a809552a7f2a3033262f22690a22f284828e1b09f186a7aa0e0000003c00f2aa94a625d1a824c3b2f1b0b0ae0a1bc8baf090a4bc00e28d867fc3b12ae280aeefbbbfc8baf3b8b3ae0aeeb9a83d7bf3ac9bb00d2e2ff09f95b40e0000003752272f097bf183b48e3ff193a3a9f298aa98e288be34f19fb5ac4b38f0af989e4660f2b7b4b33cf0bd8f990b0aeeba977f3a2e3f2ec8ba0e0000003220c8ba0bf297a8a32ff482ba973cd1a82326f1bb8cb23d1b7c2ff09f95b43d277bd1a8c2a55027602ef0b299bd26e280ae5c0e0000003d0926f1ab92b4f2ae8f8a3c7b5c7bf2bd8189f2bfaea227332aefbbbfc2a43e2e2525f3b5b8833e40f0a09180efbbbff2a0b798f189b18460f2bbac9f0b0e000000452ef1a4aa943c097ff1b6bf84f0aba0b37c0b003360e18ca9f0a9a687f0a9bdb827f38b919af19da9a3f0a78babe280ae79f199aaa800f3b7beacc286f0bbb6a4782ee280ae0e0000003e3f2e3fc2a5f190b2b8f2af98a72f62efbbbff3b88b92c8ba69f28d9fb22e3af19ea28cf38bb48bf29babbec2b35cc2a53df39581b53c517e0bf29ca3a53d0e00000039f3b4959a2a7af09f95b442393ff1aa8ca4f0af90b7c8ba09f1a5889a1b224425685cf29fb2b70064f181bda1f189a5a0f3a9a3b20d53002a3a0e0000003df09f95b4330df3848d9c3c7fe280ae540d3a5bf2bfa3aa4bf09f95b43dd1a8f09f95b4f0b7babd5522f09d89b7486aefbbbff2ad8cabf1b18c892f2f550e0000004160f3999382f2a3a7aef481adac562f25f09f95b43defbbbf3f252a2af293aaa73af3849ea9243d33f2b2a69af0b290b5f18ebb8bc8ba5cf0ad80bdd1a8efbbbf7f0e0000003cf2afb49ef092b08e60f2aeb688efbbbff295a0966fc3870922f385b9b72562607f3f3df3828db15d2f73efbbbfe280ae6b2af0a9948a2ff3b3b4a55f0e0000002fc8ba27532563f39c9cb67fc293000b00f1bba993522a6b683cf29597ac25f2b59b942422245c0bd1a8f1968c99003c0e00000033f0b18dac5cc39a2d4df0afa6913f22363a2af48e92a2d1a8f2a29b8b253d0b0b5ec2ba252e692a3dc8ba0df3a88599f3bda9950e0000003fc8ba00efbfbd3fc38a264bf29cb496f3828fa9205cc2a5c38cf395b8bdefbfbdf09f95b40bf09f95b43af1bb87b5f48080912400e280ae2f2ef1a9a0861b3d0e0000003cc29c2af2b7b089253f2e7ff1bcb2a85df2aaa288f48b988f254b5cf1a38eaa2f3c68f3ba94a1f2859b91f09ea4ba253a55f09f95b40a240bf3b1a4b30e0000004bf380b98658f39abb9152f2a5bebee280aee29188f292bea579f387b29ae4ab943af3b1ac83761bf393ad98223cc2a5efbbbf25f3bbb193f0ad9885c391f1a2b1997f3ff095ae9af3a9ac820e00000038f2aabda5f09f95b4712e223a79c29d7f5043f09f95b4d1a87a0af2babea0227c7ff38cbb96f09b88911b4a5cf09f95b4c2a126f0bcbe92260e0000003930c2a0f3b58a981befbbbfc2a5f1aabbb9f3aa9bbcf2958d996f5200c286240a7f33243df296949c6a2eefbbbf34f3a783992ff28f8cb9602e0b000000140e00000040c8baf18e8dadf28fb3bc5e2ac2b90a26f38b87bb1b622f2ef0b68fb6c2a5f2ab9c8867e280aef0b18a8e7f64f09ba78755f28b90902af2818695f29cafa3435c0e00000036c8ba00c2a5efbbbf1b7bf19a889befbfbd60f3a7aeace9b3983c5b20c39025f2969a9c7f2f317a2627f2b8aeacf1ada1b6c2a5243a210e0000003c26f1a0b8b8e280aee280aef18db19df19ea0b65c265cefbfbdf384ab9ec2ac2f2e4e60f487b1a0c2935c6c2f2ff2879ea9567ff196b0a72b5ce280ae0e00000035687f67773c66f3afb0b4f484a3bb372f280af38dadadf09f95b4f2a5ada33ff39ca38c24efbfbd7f60f09f95b4466a0060c2a5453a0e00000039f189aeaff3beac90253240f4899e8ff298ad84f29eaf812f447c6a260bd1a8277ff2bd8c8dc8baefbbbf7ff1aba18127327b62f481a7a72a4c0e00000045efbbbff1a5a382e280ae3df0ba9191f09395a7261bf196ae9c732268f184a4bf79c8baf1888abbc2880d7cf487a2a2f0a1808bc2a5f1a6b39c221bf1b2a4893ff2baa8b8270e00000038f288a9a6222f4c0df18680afe1bd9a3df18dad87616200f0bea6a41b27d1a8f3a39d8ef28cbbb65cf388aba01b692e460b0bf2858fa8730b0e0000004025782b3fc2a5f2bc84b03aefbfbdf09e848cc8ba46f183869e27f28e928ff1a297a472e280ae602c2473223cee8e8df3b0bba22df09f95b4f0b7b493f0bf92840e0000003cc8baf29daba2c2a1f09b829ef29d8d8af09f95b426603ced91a62e3fefbbbfd1a83af2b1908f3a22f181be893ec8ba7f3c6ac2a5c2a5f1b39fa422240e0000003bc2973dc2a5c3871bf1ba879cf0bbbc91f09f95b47b2ff3858094f29a9fa00d004bf28497a6247f7b6d4c7bf39d8db30b3ff0a7bba53c72f182bd840e000000293a5861242f242a476c245c5af3b591bc570dc3a359efbfbd74242e295c0b5c3ff28aa2a01bf3969fba0e00000036ea989ef09f95b427f18399ae09c3920b00efbfbde8acabf1bda5aac2a57524f39cb9aa600bc38360c3a0472f2e1b3c275cf39abe8c240e000000313bf0b8a6bdefbfbd2f3cc3aeefbbbf255c3cd1a851c8ba005b5c7fc2a500efbbbf0d7b221bf2be81b17ff2a2a99f09c3b20e0000003f660a7bf288b0963ff29f98be7f48c2981b3af190a1931bc29d27f2b08f93f2a59a84f39cbea32df3aca78cf28f8a9fe280ae365cf3bc8ea5f39d9fa23f7b600e000000365cf18897aa3defbbbff39b8e9dc3b941efbbbf0923f1938f84007ff2939f900af1839dbc251b4c2fd1a800273dc3ba09f1a2b4b2243b0e00000041c2a5ed84a96af0978e91090b7af1b381a7220a60f0b8a18befbfbdf29f8f8ef39e9d88f097beb4e280ae0defbbbf0d1bf394a290f09e81b624f18e899c0069094f0e00000031f3abae8a36093f3a7b1befbbbf3befbfbd0befbbbff09f95b4f09f95b42a4d3f2609247b2a60402a2960efbbbff48aaba90e000000407f2724efbfbd7f60f3a1ae9f3cf39e978ef385859defbfbd66c394c2a23df387bda5553af2b29897f0b08e86f394b4ae7a263f3aefbfbdf09ca3925bf0b4a2a10e0000003a222d5cf0bd93add1a8ed869b25665df1bba48b2ef3a6968a35f09f95b425760b513d38c3a6c2a51b5df181b6ab5cf3929988f1a6869df1858cb20e0000003af3a7a28ed1a82e3f27f1afbf933d2d7ff2a3a588c8baf1bfbaac555df1809bbe252ff19f83af3d2f27c2835c43f1a4a5b33c47f181a7b2efbbbf0b000000000b000000010e000000393f3a3fefbfbd3d3d2f60efbfbd0d2ff2b6b3993a56f3b694abf0be93a52df1859687f2868d8635c2904c2ff285a79defbfbd70f0acab9e22260b0000000d0e000000355ac2b82ee280ae60f0bca6882ef1ac978b277b26252f0a3f1b6befbbbf4dc8baf293b3a3f2b7bba93f5cf1a9a698c2a53f1be280ae0e0000003000660d1bf3978e94efbfbd27c8ba4d22efbbbfecb4922a0b7b2f27f3ac89b00d4af0a1a1853a264e425cf0ab8dbf6b1b0e00000032f2abb6bbf285818927f2a09ead0d253c2e57f3bb85a5d1a82524323fe39f9160c3a7005c74246ef29ba69f60efbbbf0a435e0e0000003e2e603f0a51f38781b8f2bc92a2f0a5b587f1a89bac0dc2a5f091b186f386afb03dc8ba3f55f294a9a22e3d60e280ae24f1b995abefbfbd2574f0abb3ad090e0000003165f28894a6f0baa0b84e7860efbfbd0be280ae7b3f2a7e487df489aa912e7ff282959567f1ac879c7f5e2f423cd1a8240d0e0000003de280ae60f48ebb95571bf39bac8cecad9af2bba5bcf3af9681d1a84c26efbfbd2af2b389a40a227b2571f482938a7b7cf3b6ac8bc2a560e280ae27d1a80e000000351b3a53c8ba36efbbbf45f2b88193f09a81a3d1a82ac2a1f1bdae9827f3859bb522c3863a22660b240b2ff2878e87f2b3809b00766e0e0000003ff1b8a0aa0dc8bae280ae5cf1a88b83f09f95b427efbfbdf0aeb3baf09f95b432f2a7b09c69e280ae27eb91b71b2a3a1b1bf192b78cc8ba0df4829d873a2e300e00000038d1a8f487a0b22fc288445e7b6af283b9afc3895d41f18db78ff1b28593f0b2878d5a7bf284a6932a260b1b6f2e53f09f95b42ff18c8dbb000e0000002f2ad1a8d1a8f29aaf8b482e7f25efbfbd27f0be95bb09262f26f3b3979ec2b11b005a2439c2993f5d43f389ac926e730e000000467bf282a89525efbbbfd1a82241f3b88f80f3888b9af09f95b4efbbbf560df1b89385f0a59cba0a4c3a5ce280aef2a6a58e3ff2b98083f287b38f49f18995860ac3a2f09f95b40e000000387be280ae28f1938cb7f0aeb487f48e8a827f3f4d3cf1a6a28d5cf0a7899600f1b59f91650d0a3fc2a524c2a55d1be280aef18482ad430b090e0000003af0b09a8d3ae280ae4c7b25e280aec8ba3524d1a8e280aef09184ba7bf28a8fa0f19dbaa87bf38d8e9cf2b0939f243b58f0a3bca9421b093a0b7f0b000000080e000000383f0df0bc8e93f3be898b006e6cf3ab88be7f62f2ad8e9e22f389a399f287abaa7becbab3d1a8f298829c2ae280ae7f3f703ad1a8380b2a2f0e0000003cf18d92803f227b27f18897a12a75f0929aa824f1a6bcbdf2b5b383f0b8b6a2f1a2a48d3ae9ae9c6e24efbbbf2f3c0a7626f1bc94a728f3a5acaa1b670e0000003b6bf38c99bdf095bc9641093d3ff2b9a9890b60efbbbf7846f1b1ba84c3baf2809aa04b3d2422f299929033f0a0b996f18fabaa75f3bc8f942151270e000000353d3af3b591be5a1bf0a2a7bf242526c2a5f29f989d2a62c8ba60f2b193a1efbbbf50260a7ff19ab1b1252ec28af0959da109d1a83e0e0000003c2e29f1838ba35fd1a824efbfbdf3bcbe943af1bd9fb37b222472f1808bb925f280bf8625f0a7888af0a4bb99c38cf39c81b7651b582ff09f95b40d490e0000003be280aeefbfbd44e280ae602bf3ba8caaf0bebda1efbbbff1a28da1f19db28fc2a553e7b1957bf3a39a8fc2832f7b7e682f37502727275cf48692bc0e0000002f50f18582a3227f0d2e2ff1a0bfbbd1a8260a59542f0b7658f1988fb8e18ab5c292f29e8b8f7ac8bac8ba252a7b2f320e0000003f61f0a2ac88f2b197a53ac8baf09f95b4f39cbfa7d1a8f09abfb42744efbbbf7ff1bdac882af38092be3d0b5cf189aab4700a0bf18cb59a262a3af39f8f8d3f0b000000020e0000003a39c2a56a5c264925e6b58df2ab8a95f382b1b7f2b8b6b377efbbbf4fc8ba2af192a785000a56f48cb3a4f2aba097c2a5673af28c8b8bd1a861570e0000002959604c2f3d006c585000f386bcb13d4f733d2fefbfbd342709f3bb978527633fc8ba5ec8bae280ae0d0b000000040e0000002e7bc8ba0d7b2f0d28f1a381aa5c53255cf2ab959e7ef1a29d896ee280aeefb5b9243f4a0d3a6026623af1a98cb13a0e00000032c8ba7fc8ba25f0a19aae0a2a7d7b5a262478355c6cefbfbd0d002af290aeb4f2be8cba2fc8bac2a5f29788bc0a2af382aebb0e000000373c6b3c0a2a60c2a52ff29f93b41b0b262f3c24f48d8f81e280aef399a09cc3ace280aef282848c64247727e7819074f0b286a2f1baa1940e0000003d62005b254df197a6ace280ae52c3b3efbfbd7f3622f3a898a022f3b7bf9ef28eb18ee8a8a4f293bea226725b260df2bd98967bf09f95b4d1a8f0bdb8910b0000000f0e0000003425c2a5f09f9e9d5c2460f3a9a7873c243f6ed1a83a7b56273cc8baf1a497a5f1b2bd8b4ef184a89e2b2ef2b78fbe3c4256efbbbf0e000000373ff2959991220d000af1b9bba9c2a53a5cf19091aaf09d9ca52400273ff1929e9bc283c2a5f2b394ba7e537b2531f2be9ca84222efba8b0e0000003b2535005b0df3b9beb2eaa1a346523ef29b91960a00605cc2a56d7cd1a8f280a2bcf2a0ada5efbfbdf0aa9d962226f393938ff189b28258f1aaa38b0e0000003a0a4e2ed1a86125c2a5e2aa9ed1a8e280aec8ba38220d635c3d0a3df09f9e98e280aef0baa78af0b2ad9bf3ab9b9d3c2af485baa9d1a8f1a3b8ab0e00000036c8ba2f7b3af09780820953f1b4b3b0c3875d6061f1b5a9a227401bf1928f8861f0b099a0efbbbf00566cf281929b603c61f1a79b926d0e00000042efbbbf4ff0b78bb0f18d8da3efbfbd2ff2809fb574f09a90a63d0af29f80800a7b3f0dc2a538f09f95b4efbfbdc8baf09a9c87f0b1af8cefbbbf3df1b5afab270b3a0e0000003aefbfbd2f5cf2958391240d2ceca4a2c2a5f180979bf19e82923ff197baba0d26efbbbf0d642229f281b4a2c2bc442e0af0b5b49e6a3af09f95b40e000000352732d1a80af092a99bf2be99860d091b696c7f0af18b988f4b266d006d21f1a1a78ce280aeefbfbd54f1b08e9a1bd1a800f198bebf0e0000003b7a5ce8a989f187a28a09f1988cb9f2aaa9a13d7bf39084a8c2ba2f7ce280ae3a6b282df0b9ada2f297b89566f480a997003c00c39c0b45f1bfaa940e0000003af3a9bfa7f3ba81bd2ef1af929f0bf29ca09ed1a874c2a50b7f6338f1869594267f2a263cf385ad9bf18e8bb6c2a5f286a8bd5860efbfbd3009510e00000036c8baf0afb58a29c8ba0a3af2ac9e847ac8ba537ff19e9d9f2461f09f95b4f2b0a2a226f181aabdefbbbfe285a45b3c7b7b500956300d0e000000352c617f29f0b1babe783c222ff09f95b4f0bdbe8cf1b2b9951b263df3af84bc1bc2b10af0a4a7ac3fee9f884d48f482979456603c2f0e00000037f38ea68722505c3a0a0d697028f2b39b8b0b0a2e0bf48daabcf48a959a7b433a55f393909c2ff09f95b4f1a8b58cf29cb2b9c288d1a8480e0000002b3a33efbfbd6e0b24d1a8463f000909f3b48093e280aef2b192a5247b7f2f54f0aea6b30a00240a7f0a1b360e0000003a4d484400f192968befbbbf2722efbbbfe7ad90f29c938244672a00f3acb9a12e2770c8baf2a98db6f3bca0b91b265426f3a88bb2f389b7b2c3a90b0000000c0e00000033f28183852609c3b058f3b395923aefbbbf763df398afb0c8ba2e3df0a29ca5f29980a9270d40735c09590a3fe280ae480dc8ba0e0000003df0b5b3aaf38d9fac270d7bd1a82ac3b0270df2afb8a13a49f1be96bff3b7b2a53c2fc8bac2a5efbbbf1b3fe280ae5cf1bd9fabf0a6858f3af1a9be9d2e0e0000003ff3ac8b912e3cf18f93a4f1bfb9bb2c0d60f2a9808e66c2a5f38991aa590a492fc2a5f38a84b6c2932740f483b588efbfbd27f489949d26efbbbff29d9296440e000000360079c2b126e280aeeebbb6732400efbbbfc38b00247f490a3df184b1b062f39888b7c3b9efbbbff184a5bff384b18825543ae5a8b53f0e00000036f3929ab30b602ec2a5392500253d27f1a3bdbcc8ba472c3f46764bf2ba98bb6f70f19198aaf2a0ad98f09f95b4f485a38f6b2fefbbbf0e0000003f2bf1b98cbcefbbbf003ff3a397960d2263ec9bbcf0bba4b5f1b288ac715cf3b9ac813f607ff28a9e845b3cf3b6bcb326f2b9be8227f2a89289f19b81963c090e000000435cf2b4839af29e9e9ef2a1bca4f2998980f09f95b40926f3a9aa977b275cd1a8c287f1bdbbb52af2bb939bf1acac9d0b5c6b2c30f28389b8f09f95b424f39b8d9d277c0e000000415bf29fafb960d1a87f7be1aeac220a0be280aef393a8b5d1a8f487b8a83979f283ad91f098838cf09f95b47b1bf3ac858af388b1a63df3b19d9d7b22f0b19cbd550e0000003a7009f286abaa00353d2f2f26f0978fb966f39cb6870b603d0d40f09f95b47df2af92bae6b4883af0aa95a3670af0a289940bf3b6a183f09c85830e0000003d2a094853f396a7825cc29060702ff289b8a6f19eacba5ce280aef29fb3af0a2fc8ba47c282f48babbb5cf3b08da7f0a0b69b3f2ef288aea3f390a6964b0e0000003df09f95b4f3899e9defbbbf2422f19cb58f6af18d96b92e09f291b7953f0a0a0d4a631b0935f3b0b59ff3b5a4897a0bf3b48e9727f1a8b9bef1848bb62b0e00000041f1a280b6552ee5acb50be280ae3ff294abbff18eb68cf3aeba9f454c50f1889eb9f0bcb6b46af1818781ed84baf386b69a717bf1b1879b26d1a809e3a8a66f5c7f0b000000130e00000038f18cbb902e76f395b68226f48b8e8df3819ab2247ff2b5a69bf39289b25b3d1bf4829198377b24797b3d7f4c2e5df09592bbc39befbbbf3c0e0000003a7b2922260af190a7acf2aa8eb03fd1a8e1a180f09f95b4f2b1b9a4662a3b3cd1a8f1bd94807f7c673fe280ae740df3ab8d84f380888d1befbfbd0e0000003dc2a52264f1bf9caff39381b6f3a28d88f0928cb7efbfbdc2a5f29a8b89efbfbd3c7ff1aabeb8e280aec2b47b60f1849aaee3ae967d2e3d5c5626381b3c0e0000003feba59af1968fad3ac393f18090832af3bcaa93460df39aa4adf1b19a94225cf2b9919cf2b9b88df382949bc2be26f48f96944900580df28fa9a64a4b5d3a240e0000004026c2a5262d00f48fbb817bf09f95b4590d0af0b9b094f1879d85efbbbff1aeb5b2f09997a1203a0b091bef91b33defbbbff1a0a982f3aba58860d1a8f3b5bd8f0e00000034efbfbd27266ef293af9cc384000d27d1a85cefbfbdf3a580827e270d1b4ef3819daa0a1b3df094aea823f1b3bfadefbfbd7f3c410e000000363d2646323cd1a8c380f18d94b4303a3d7befbbbff39a85ba27f481b6b51befbbbf21f4848488470b2e75f098b99ff09f95b42d0dd1a80e0000003df3bbb992c8bae0a1972f2f7d44f291b59bf48889817f5ff095bf9cf183b5af603af3a4ab9e3d5cf09f95b43c2f7bf0999a8a60f09f95b46cd1a8c8ba2f0e00000035e7a99b78240b3ff381b08f0a310a2af29784bc532f2f35e280ae28496d60f1a495b46ff099aeb1c8baf191b7b7ed9a85efbfbd27720e0000003bf09ea587264cf3829eb30d0af38687bef289bc8e7b3df09e9d8f2660efbbbf5d42f090b09af285a5877b0d257cf194a0973fc8baf28b96b20a6a3a0e0000003bf385af96f39f85a0f2bb99a976f2a2889ef2bea08a00efbbbf75f48f968400f094a1b37cf3a1b1a0256dc8ba3f0df2b095905c3a682b1b6e2b235d0e00000032f2af8c907bf188adb5562e2a252f7bf09f95b45c2a263e3c222ae39082253f3a79f09f92a024d1a8f29bbd85f19f9db85c260e000000383fe280aef3bd94855c21f38f829aefbfbd3c602e28c8bac2a5f096b3ab7672f0b3aca74143600de191b367f2bab0b84b2f3aefbbbfefbfbd0e00000040f280a2b346f299bf97f1b2b1aa5c2a3e37243df3b582b3f29c8880f19d919f7ef1aa9b97c29b2709d1a87b0a097ff0b79e9bf09f95b4450df3b78292f0b0a0940e00000033f1a9b78800600af29b8ca100d1a8271b27602e6cefbbbff386a3b2f09380bf3d573c683a27f3b09e98f392aa8c09262ec2a5270e00000033f3a59ea3330b362e797cc3b4f195a1a72a543d6df192a2b2c38ae280ae201befbfbd2ef3858782f0998795c3b3532a2f3f6c560e00000036efbbbf41f2b8a2b54a3cf3a38bb672263df0928a8dc2a5f29e8b935c59422e606eefbfbde280ae57d1a8c2b8efbbbf235b2a0befbfbd0e0000003929f0908380c295f2a19a85f2858fb3f1abb4ac2548367b6a0af1a6aa8e6624f09f95b43f21f0baaf892335272e25f1a0b0890b2ef09d9aaa0d0e00000033f183b78b0bc8baefbbbf2f3f667a6025693aefbfbdf2a88aa554c8ba1b7b6bc2a5276c3d3cefbfbd27f28aa291f183b0b2c3a30b000000030e000000393d3a222a7b5cefbbbf3d24f19f9bbc7ff0a78485601bf09f95b45cf1bbbeb2683de280aef48c839274f2aba4a3f3b0929d6a2e2626f09cb5a70e000000427c41c29df0bf89be601b27f293b7a15560f1a594a3775df0ab94bf24603ff38f8aa4f0bdadbff3be99a47fc8baf2bca6aff1a18ca7f1a8aebcd1a84af3bb8188d1a80e00000034c28941c8ba0b1b3e22002ff2af879d093c0bf2abb197257c1befbfbdf09f95b4c2a53a0b7f3a6af2ae938a3ff1918f90f2b6a29e0b000000150e000000392ee280ae2ef48fb695c2a5606646f29dbfab5a3cf398b2aff18a9c9138f09f95b47a22efbbbf4dc2b934f0a68d942f1bf0b486ad3272c8ba250e0000003009efbbbfc2a5f394b1912e002e0bc3b3d1a809efbfbdc38762d1a8252ff0a7aaac22600bd1a825247f6f2bf38cbc9f270e000000370b53c8bad1a82f27f28eb08ef285b8aed1a8f09b9080c2a52e2700c8ba6109f28db0a0286709f485949ff1bbacb625f1a48a905c0979250e00000035f3a6a5ae7fc2a6f181a2a1222a0b3c0bf2b294bf59c8ba793df484a988e89b95705c090b2e3df0afbe8a24716eefbbbf33f098aab20e0000002d000d46f290bcb1360be280aec8ba3d0a0b095c092ef2abbb94f3b88282c3bf253f326060262af0b6a08a250b5c0e00000043f096adbdf1ae87baf3b89a8cc39158f1b0aab6f2a480b32e22f19fb6b83ac2a5c2a500703defbfbd3d0df1a6b5952f27703af09f95b4f3b5b39ef09ca0b0f2938388550e000000413d1bc8baf1a6a486f2ba84b0f0a8bb9f490bf2a1afb2e58ab63a601bc2a52a26f1b1a1b4ecb8ac6122e280aef2ac889956efbbbff190ad9c72f392a1ade280ae330e000000437a5a7f1bf28d93a525f390b297ed889c4e2ff09986a5f3b9a3a7f1a694832ff1be88a1ec96b1f2b2829c5b22f3a2a18cc8ba3df3a591b96e3f413ff293af91f1ae98a90e00000035c8bac2aa2ef3b4a6bef187918169c2a5e280ae606f00456076d1a85fe280ae482a5cf397ad8e2727d1a824f380818360f1b990b07a0e0000003a60f09f95b43d3a3de1a0993cf1879aa9efbbbf0b3cf1868db4734a3dc2a5f09e99abf0b09bad5cc39822f48ea68d43607af1a6a182efbfbd7f250e000000347f7f7df29e94a0f38b84980bf1ab86b9c2a5efbbbf5c0a3df19483bd090d5ff196aeba27242653c2a56ec2a0f3b1b48f2478263f0e0000002e3c774a7f622e560b7f3cc29fefbfbd7f222af0a49eb72e32c3977b69f1bf8980f09f95b4d1a80defbfbd53c28b260e000000412ff0a6a38b0b603f2ef1bba0ad3ff1aa87aaf1aba5a7f09f95b4f09f95b43c7f27f1a39db50af0b3b6bcf28894940022e280ae7bd1a8f0b882a2267c09f18984a90e00000043f3b4828cf3bbb8820ad1a8f19389bd405e5c68f0a1be947ce89893f2b9be802e66efbbbff3a8a1a9252e00f1b8bea9efbfbdf1a882b95c7af3b2b4af76c2a5f1ac8cae0e000000426022f1aeb3ad6b0df1b8bc89f2bc93b53c5fefbbbf2e2600f19bbd90f1989883f19eb7a1f28393ba093d2531f484bb8c25f191868df19c9ea3ef90b33c1bf2bbad9e0e0000003af2a2a8a574f09085a47b30f28db8b724f387ab937ff38796a03ac2a53d3b400df19689a94e63efbbbf5849d1a80df09f95b428c2a500f3b9b28d0e000000382dc2a5eaa78878f0b69d87f0908b93272e0b7f0a667f00c2a5e280ae716f27f281b5b1f2a29e9c223af39dacb0f0b39c855c22f394a6844c0e0000003ff48bb6bb5cefbbbf60f3a7b08e0d527ef299a2812bf1b7b59725777b6b3f3af2bd86b2f3a7afa9f09d9e8d602ff38987b1f195bb97f296aeab0aefbbbf3e650e000000306042efbfbdf1bd8c86f09f95b4641b3c3c67602a60f180b2b6f3a585bc3f097b257b3e38321bf09f95b4335c2ee280ae0e00000031f199b8943348d1a83a79f1b6b6a6f298ba874f34e280ae2f67d1a8613a600927593a3c22e1b3a225f487a2972c60efbfbd0e00000033efbbbf222625092aefbbbf2a3c25d1a8f394aa89500b3af2b88f8126560de180a4f09f95b43ef09f95b4f3bd82a3095f0b3f280b000000050e00000039f38598ac09000b0027efbbbff39a95b23c0bf2829db609f2a3908c60582470f094be903d5c1bf09f95b42ff3b993a26925e8bcbff38084837f0e0000004b2ff18fa6bbc3943af2b89ca1f3818794f183bb855c3d28d1a8ea83883df3869d82c39360f180929befbbbff399b2a2f0ae9f8b3c6ff09f95b4f0adb1b2f0a581b1d1a82ff3bc96b3ef8aa80e0000003736c38bf0a0b2aa7bf2afbb885cefbbbff2a3ab937f5c3c0b78f4859ea758263d4ac28442245c43c38a3af2959ab0f38bb38425f1be8aa30e0000002e3ad1a8e280ae2428604ef4899a98223d24ee838cd1a83c5cc8baf1af97a7272f447f1bf09e8cb870267f6f0ac3b50e000000322a002ef285ab82625c3a09f1a5b68cf38998bc4a6c276a6f60d1a85309f09f95b45b7726f2858ba0efbbbf722af1aba09f240b000000130e00000032c39d0ac8ba00f291a5837ff3b396b3c2ac7d262a7f67c8ba73f2b39996f187808e0bf1b29fb7343c5c6dc3a47f253dc8ba250e00000035f38db9972a3e5be280aec2a5f3bfb2a653f3ba809945f386b79bf0bdbdb5245b0a0a4338602225260d56f3b1979ff0949aaa243a500e0000002f25514e3267f19f96a12a4b273cc8bae280aee280aed1a84a7a603cefbfbd2fc8ba2560f2b0aebb5022f38a8b935a560e0000003d7bf393b18a2a240af38ea7abc3806befbfbd3af1a9a2b92a62f39893963d2ec299f48880bf2a2f5c637af18ca8b6f3bfa9a6c28ef29696a80af2b9bd940e000000403d6df48d94adefbfbdf1809eb7587c3d5c1bc2a52a3d1b27f19baf86f1af9cbaf0969fb423660bf193958ac28fefbbbfe280aef18fa783f09f95b47bf09f95b40e00000042f39093a2f1939da9c2a5efbfbd7dc3a0f09f95b41b26f1a989a0e280ae3059c2a5efbbbf0a2cc8baf39eb193f0a18fb5f1a1a5aa2ef3aeb78d60517425f18d88a5270e0000004be4858a66f3bf9cacefbfbd253f37c8baf390aaa22f2c75f1858085f09f95b47f0bf09f95b4f2a688a1f1a292b5f1ba9ebbf3baa0b2f4868795c2a5c3b9efbfbdf09f88b1d1a8f4829ea0770e0000003cefbfbd0b3ae280aef09db1801bf29f82bff3958a83f38bbaa448f489adbc3d2527efbfbd5a09f485b393253a093cc8ba3ff09f95b41b2575f09f95b40e0000003ff3b9a6bf74f382bbb4f2bfa9acefbfbd5c0d1b2f632e3c0000f3b3a99d61e280ae33e280aef3819d99f38aad922ef29d88a03ef09c9da4e280ae2ac28ec2960e0000003d227f224bf2a8a2a30bf19f8a8a6f0af0be9086f0a9a28e3100f2b8ba84f1828199c2a5223fc8ba372f477f1bf3a69daf2af2a2a39af296adb8f09f95b40e00000034efbfbdf198a19f6b322226652e2f2550f197bf9af09f95b4603df0aba9b1600d22f3868ab4265b0df2a4b585f2b9bbb60b3a096d0e000000340d3cefbfbdf395a2b20bf0938dab652a59f29dad907f093af091b6b70b2e25e280ae2f09c8baf399aaa36122f3bd81bd24253c2e0e00000032262a2371705e2756220befbfbd6dc2b13aee85ad51f18f8ab02a75d1a835f38bac93f3beb29a6ff1b6929cf1a489be250b410e0000003a0a0b2f6f09f1869da13a2af28682b3c8baf2b0b5842922f1a2bda0c291c3be60ee8e8c31f28bbb832e7f3ff1968b9cf485bb962ec2a5e280ae3d0e0000004146f098ad94e280aef18f83a9587f3df092a4bf7ff1ac89adc8ba712727f284b9802af28bb987f48b878af396ac9c3a7f7f3defbbbf09f0baa4a11bc29df3a099a20e0000003a09f3abbe83f29c89b8f3aa99b7efbbbf27f386929f607bf1bf9295f09a82b4f398848d5c5100f1a2ac8b1b0966c3a63c6fefbbbf3f3c632855390e0000003951283df2b0adb3f281aa8a5bc8ba6038f0a289b8f0a5ad93336677f2a4a890f181aa803c67223f3af0b0b18a3c217df29096a4285bf0a28abb0e00000035f2a9ba9b25f18285ba7f6d0df383b6b84f2f2e36f18e89901b60f28597abe280ae4f3cc8ba262670f3b7b7930a545cf4858db92b1b0e00000031522e2e3af48c94a248c2a5245cf3a6a7a3f28f968f740a3d1b3a65f2ac8e81c2a960222f27f28d80b77b0bf09fb89c5e3d0b0000000b0e0000003f32f19199bd223c5cf09f95b44a2431f2b5adbf0d78242a7b30f2bc98af29f39abb81262aefbfbd7aefbbbff3b699a3f0a19bbbf0bdb090f0b6a3a3f48781b10e000000363c7b59583f2a7af3b78189f0bbac83efbfbdf398848509f3bd8e8c7b2f663cf386918af2a48aa53a2f36200a7bf399a5a3efbfbd4b240e0000003a60f1bfb1911b2a3cefbbbfe280ae7b222a00f1beb9a8f3998bb727f2aa9182f1bc8a86000be280aec2a5f2999f9a0a2af3a2a38dd1a8723a7b250e0000004353efbfbde2849d4d2f37f0a6a192c28af1abafa225f29689bb222ef48cbd9bf399b6ac44f18f9c88f18a92bef391a99d4670f1b997ad5bf3baaeb721002a5cf291bda10e00000035c3820af1929681732ff4809f992a33f3a79daf286735693cc3ba0df1bb96a9f289958f272af38b8d87202f270029f3a09cbf7cd1a80e0000003ff3a6a388f1a28ebf7ff3bbb380567b3af0bdbfabe28d8cf286bf87652ff0b4a3872af093b3acf387bcb47f5cf2a2949e1b7ff2988aa0260de280ae0b5c0a270e00000029f2b493aa26607f3f6021d1a8532e60703d0ae1a8933d5cf298b19e5d7b260a350b3b336df185aaae5c0e00000041f0b0b5adf392b5b1c2a52a735c545ce280ae4df1a7a189f0bda9aef1b0b0a727f09d8095efbfbdf1b595bbc2a5efbfbd2f37f1b499a9603df1a4b19c22767bc3af0e0000003c226c5cf0bd9688722f332a0b240bf3a78ab13a24f2a39291f489bcb4690bf2aba3967f25f2a48ca4e280aef3a981a5e18ba8f2beb9b83af187bb9a600e00000044c2a5f2899dbb46f28db2bdf282b9a7f283ab86f2ad8d81f291a98af390a88c2f2509f3b28b8df1bb8b993cf28d919c7fefbfbd38f3b5af86efbfbdd1a87b46224357257b0e000000363d0d0d27600af29b85b9f489a6a92d5c2e2524005ce280aeefbfbd497dc2a5c8bae280ae3af28e8587f1a985bd7bf487ad9e26efb6a20b0000000c0e0000003e1be280aef3afb194efbbbf7f2e282fefbfbd5d3cc387f1b2bb8af1b39eb5f19886a0e280ae7ff485ab8d3a3c333cf09e9d843af3b3bdb9f09f95b47c39520e000000337d3b1bf4839285223f3a7f3d22771b7ff2a097ab3a22f2b38191f297b49f3cc291c2a5efbbbf5cf2b5b88e355cf282bdb2430a0e00000033603ff3aeae8cf4858795243defbbbff384a38c377b0dd1a809f09f95b4f1a0b2a0c8ba282d262642260df2b683802e2e0a7f7b0e0000003bf2aeb4b5f19b828b27f3bdbdbef28484bc34c399efbbbff09f95b47f5c3ac2a5f2938cb61b6a2b2ad1a82e4bf0a183ac26d1a83cf0b5a799003f560e0000003a2e5c3c565c3860f2b1a5b02af29ea094c3a2efbbbf5f1b7bf28fa3a57bf09f95b409f3b5baa57be1a19ac2a5c2a50af29dada43df0948e8ed1a80e0000003bf09f95b409c2a5c2a5f3a792b1297b7f5c243aefbbbf3c2fefbbbfefbfbdf1ba86a0537b6ef0a3b5b57be280ae220bf0b9a191f182b780efbfbd4d0e0000003ef3a7bcbcc2bff2be8b9b3cc2a5f48f8eba5c2a752cf3859b9955e280ae2c3af2bf8f9ff486a1995c2ac296f287829c380d2ff182a1ac2ef1a994923ad1a80e0000002b003f25c2a522227760c2a53a2460f0909b940d0b7f257b3fefbbbf2ef0a9898b2a7ec8ba1bf294b79e241b0e0000003ff1b7bb85efbbbfe280aef2afa190f1bba7aa7b3600f398b292f285afae0d6e55f38d8faff1a9a882f3b78b82efbfbd3d3df2b8ac873dc3850036250a55003e0e0000003a7a00f2a9bcbf3cd1a8f489acb5f3b6a0876df0b9ae973c44f09f95b42a3c3ff28699865ff3a7bc9dc3aa7f2ec3bbf0b1aa9f1b0a00efbfbd3f2d0e00000039f095a2a0f09ab88eefbfbdf1a685a3740df4809c84542f3a25e797a37b63246127f1b085a1e280ae7b3df2bba09ff090889f0d343f3dc8ba7b0e00000036552a5e5f2a3a00702ff481bfb71b0925f094a391f28d94b7274df2b99fbaf3b48bb148c3baf1968bba710bf28d9496f09e99b55924240b0000000c0e0000003fc2a5f1bb96bcf396aaaf3d2e35d1a8f398a8b1000b23f38189aa6cf290839af2b49985f29ea4802f2ff1be9b970059f3bf85932a3e3df2b6aea23f26e5bc870e000000442a55f3be8591c385f096b89c2c2ff2b087b450f3929a8509f093a89e003ac28a7fc3b4f2b498a1f3848e8df196b8b0efbfbd61262a2ef1aaa59bf09f95b4f09f95b4c2a50e00000039270d5cf0b5b7a23aefbbbfd1a82a2fc8ba003cefbbbf3f3d3ec2a5f39199adf1bea595304cf1bfab8df19aaea126f28c82ad5c7b2ff486ac900e0000003b2ff1ba85aa7bf28d8faaf18e86b75ae2a7be60602ef2949db60af0bca1b03dc2a52f622ff3bf80afeea8a34d2f3cd1a8c8ba4de280ae69f0b99e850e000000350a0b3cf3b881aa0b39efbbbf22c2a5efbfbd7b2f6227270a62e280aeefbfbd2ef28e9b96ec9a97efbfbdf380a2bae8878b2f0a5c0b0e000000377c42f1bca1b220d1a8c29e6ac2a5252f31f1bfb69d2a3c2a5c530af0a9b786f1a3aa9bf2b99481f1bb9d902f3522d1a8f2afbc88d1a85c0e0000003fe8bcb13a0b0b26f0ae84b25fc385f396889f45f18e8aa34e5c0defbbbff09f95b4520d256ec3bc60f382b6bff1a3ada009f38196a4c2b6f28b98a7f0bc8bae0e0000003ac2a5f0b89cbef1959b987b27f2a186b4c2a5f298bc932a0a33c3b8efbfbdf0a8899e2a6df0958bbf3c68f3b0b48e0b7f7f0b0af396a1a82e7b000e0000003926354f0be280aef3aebab9f28ea88625c2a500f0a79884f2a0a68e5af3b59b9324f192abb0f18fa3bc7f2a0b3f604ff483ba967b49c2a52f5c0e00000035f196b9b2f383acba2e3f2a603528f3a8b3bb722ef0b8afad7bf3bc94ab62e280ae35690df48b9c817bf38fab8075283d3d2fd1a87b0e000000436f0a5ad1a8f38098944f44f0b19894f2acaa8bf098b1a75cf09db281e39b956ff3878380f1b6a5a44b60efbfbd322b44f3a2a89ef3aebfa6f2829db7f3b8a2a963411b0e000000342e5c0a7bc2b9f3b496b76a2e24f2808d9c3cf1ae87957b4477f09f95b43a2e3fc8ba277e0af3b88685e280ae0dc8baf0bf8bab0b0b000000140e00000041202ff186b39df38aad9327e695a83c3b092ef181938ff197ba80f48bacbdefbfbdc2a5f09c968200f0bfb0b93df09f95b40020efbbbfefbfbd25f1b884900d572f0e00000032c38ff38f92a9c8ba593ff48a86b325f1bf84a3670b2054265848c2a527f091bab03b250bf3988cbd243d1b2427efbfbdc8ba0e00000047f48fb38d002fe280ae007bf09f95b4f1a9958ef09ca9982b1bf3ba809fe5ba8a3a3327f0afac8ae5b2977ff0a4928926c8baefbbbff28aa8bb55f298bebd09f2aa8eadf18696b30e00000039616d3a4b0d281b27ed87a4f3a7989a5cf0a18db1f3b49ea83ff0a4aea6c8ba3d245929f1ba97830d0af288b49e60f3b2989dc39736f09e87800e0000003ff19a8586d1a8f0ad8b8bf2b8af9851f1a48b8122f4808c99c2a5f483a8b60defbfbdf0a9bf92c2b179510beeaf9bf4808eaff1819d89612a562a265c3d0a3f0e0000003835f09f95b40b51002222e280ae7bd1a8f2b2a1b7c2bb624b0924273ff3a08bb920f09f95b4f288aca2f393a4950deeb7a2f28b9ab56a32000e00000039efbbbf5f55efbbbff1959ab63225f2a99488f09f95b4f18eb5b6f19f89a6263a6f7ff3af8d8d604a0bf380998f606e7af39ba996243d6c2a600e00000033f2bdb5be1bf0b683bf2a5cf0be91a9efbbbf5e0d72c3bd5af19ea5b4c3aa7f440aefbfbd5cd1a8f0bc81907d3a3c3f607f24220e0000003aef919df1a0a48926206825d1a8c295c2a5782a6a3df1a9a7b4f183bcb04220f38fbf880bc3887fefbfbdf29bbaa5f18db19f795c2400f3b1a5870e000000447befbbbf3c5bf292acb32ef09b8c873d37f1a8b9814c3f2ff3b5a5a865f3a3a5a92f3af483bc8ff0a2bb9df288b293efbbbfc3aaf0bf978ff2aebab70ac2a532f18391a20e000000410a3d7b7c3ac8baf0b5bba6e280ae3ce280aec2a522f2a8b2a3c2a5f293b9bdf2a59c88f2b2929ff294af92efbfbd0df0b5a5bef2b8b091247c263cf1838c9860390e00000037e39aa2f2bb82ac607befbbbf77782bf394afa0d1a83cf3bb9a96221befbbbf2c2641225c1bf0b3bca76325f0beb884f28783a9783ad1a80e0000003c2cf0acb0bbf0b8b9937b7ff09f95b4f395b1bf417231e280ae7ff19ea0b13c5a72f381bda9e280ae68f28eaa88f184a19769474653612ff1ba8bb45a0e00000047f09aaeabf2a284af57e280aeefbbbfc2ac0974f09f95b42a7ff28a97b0f19faeb23c3df485acbff09f95b4f0bc859863efbfbdf29d98a2612b09c2b32fc8baf48da098f28da1bc0e0000002df098a3b02a266a3f6b50f09f95b43e22242ff1a38990003a42e5878b0922f399aaae22e280ae313a5c5c272e240e00000041c2b228f281a9adf2b5bfaaefb6a97bc2a43df19caeafd1a87b567bc8baf09f95b42e0bf3a28382f185a8922ef1be95a2f28d9d93f1a284b5f2a38d8b1b5d22007f0e0000003f0d33e280aee280aef2ac9c9a233ff288829df098aea873f39895b13ac2a5f0b099aed1a8f1abb68b0b7b2c3af0a0aa8a092f3ac29763f191aba3f2ab969e350e0000003df286999509f38591b6223ff1a5a39e3d26f18da3955cf489a8b13a3cf3b6b1a425e4bdadf1b2908d0a5524f3af8abe300bf2a3b4bb0af3af9fbc0a272b0e0000003272c3aa69002227f480b2ba09f3908c81e280ae1bf2b589a30b7f75e280ae3a2a7027f18fb4ab6044225bf48ea5b12745c3830e0000003ee280aef284878b70f2b8a390f39eadb97322553c0af3a1b5aa2654f0ab91adefbbbf3df1b1af83c38b52c397f0a4829c3ae280ae2e2e47c8baf09f95b46f0370786c090578687775680b000000050c000000070a485368617a4b526e6a720042b44bd24788d200c47843f7f2a13eeb0161020000004616277346dac6ce11f26400e3a969b46e08a93642d6b60afb0d0084598fbed6cd6d69ceeeff916fd29d1cc7f367f19870fff79a686e51de53ce0f25d2e0531179a8a0d0136953026342060626bd4d867b993fb88af78a182a93ba345641f740244244545578495177506a624743676670627a697066556153436c5855746a4b6e4d4552470d6379746b42624e4d58516b4f620d00000075494e2e3b674b71377a516f3833204d227654254828342c6563665e556f25593f4429593037212533673d215f5b636777262d6c533451464d73202e7d3553404c3227422c594b4e23706225453a212b3e354d2e674a384e544a56482d2d5a57712f53585662562a4a61506a39302f4b7b472b36267a0e7044716b41575a5343584951556f0e0000001c002622c2a52af396a4ae1bf0abbf8c24f3acb9a35c30f392aca23f2e1071554a535848547a754f4c524a5479550d000000434e6067795371565b264b3f5f4b4026496042594043682e424677774938762867524342513f714e6f2a3c26567b2d422a456c7b212325344a4d385a5f5a4f236a4b7a6f10724471524b5159454547776148495a500d0000000c726953625c693f627c7766550c000000070a485368617a4b526e6a720091450b005eebcdc4ecd16eaa5ba25dcd01610200000046060139bf80d878012f85f393cc59e9876c0427459801e682fefbe1525cc0c4d4587a7eb90022fac3967291eec1702b74ceba1aa2173be7275e7399a028260838602ced94ad6e026342050048c885cf346eb2e12ab7227471b05f6c9d7659160d6379746b42624e4d58516b4f620d00000075303b46673a226531382f6e412e70795039492a5a35267a70436c7c3a4f5c39482e5525327856695e7d377b3f3b723257693c42262c6550433b7d3f4c6e515b53675e30647d527937413a462758264f30615f4e41732b3e6f7c4c6f2d2b457467597d2d79724c5473427d796a2b7d2d525565662d2b0e7044716b41575a5343584951556f0e0000001f2af29b84a0277b0d3c5163eab884e280aee280aef2b086baf485b2bac8ba7f1071554a535848547a754f4c524a5479550d0000004372412c7a282627353a3f553b6e7d763a604e556d3a51316e6d3d476a5728765e2d3e5f633966547a42477861714b342f7b3f4732314b446c492b674f324a592379364c10724471524b5159454547776148495a500d0000000c6727274077252b6640234b430c000000070a485368617a4b526e6a7200800f105f86ae380b00a7535b560468580161020000004619a0762de0902e689bd770a97b6da9e0383b9bc1d207316535c6d5d7ee890097edfe56e071340ccaf8d32cf6513dee4d102997cd244db6820a18ae924f91146260e097fedf4e0263420611c1a8bd7e7109f9ed9aa3e37b6c0d6ef07f4e2c0c2547586343746d7453796a614d54576b4271486f536976734b4d68765968484d6b4349444d480d6379746b42624e4d58516b4f620d0000007562222975653871785b7a69765f4a3b7d67673a7925532b343e2f5254516e6a4d244935434163685d5d56557c33512437395d6972606966303a4762694d3a4a782744584c76785121382978764b222f46472745435679307234693842373a472130222e56653b512d5b413b6c306270206c53773d390e7044716b41575a5343584951556f0e00000019d1a82af1aabdaa2e2550d1a85c00646578e280aef28580bf391071554a535848547a754f4c524a5479550d000000433f3b62315c3a4e694b4f444e7a5149402d6648335b2c64797963775e2731473f6a634069743a6e7647324c6a486e3a63756b606f626a5f5a24597a27792d372925272810724471524b5159454547776148495a500d0000000c663a4345212c3229594163670c000000070a485368617a4b526e6a7200749f9816c9b7635603f7c6d7eb456161016102000000464a71e30982041a926054b7a6e4f229ae21033704338f7e03881c7b6a7b098d95db6230f79ef3da569c60fa8486f8556c830c991b884766cff5e93dd894dbab7fddeb2d36c0fc0263420516c1243c74ecff59147ee2b0f375c5be9a6a943b420d6379746b42624e4d58516b4f620d00000075306f5e6f623251556b502174507a3d742e68404e4a576e49215c5d4a327b64427156574c687676693b323b2d6d5f5d7d7c5a2049463c2568577163306d767b745344414a75225b275c45657b5428433f35774a716a742f7764285b51256e2c496f245621662a373b266e395d276d2f4f603e583d320e7044716b41575a5343584951556f0e0000001555f1aa899c0a3a006e0b6064427bf39890835c7d5e1071554a535848547a754f4c524a5479550d0000004321332e6246473f276c72536427356d5b7c24394a54503c6131793c393d792f2b31327b53536b2b466e744f59385a676b455e664a2166537b7a394939452d5a5d2a634c10724471524b5159454547776148495a500d0000000c495539704b673b5e687457270c000000070a485368617a4b526e6a720027f34ee5a41140733fe1720d2c20ee6d01610200000046e2aa5226250587779a4eb58c4c57b71a4e92027376381b41bb193308a8ea90e0de246a014f726e22f02c991584a5b9103f87be6ae72fd58677222d01325c5f9af86af24fb0ee026342060e381a4e6db27c9b035aa5a0a5f619edf101a3ad111763674f41694c77556468735672616255684346464a42410d6379746b42624e4d58516b4f620d000000753670493c552c5d3c7463722d492630555e77364373342a3f245a3a314c5e414b346c4b396067437233273d56533e3e6c255f317b53303628526a5170503e43653073352d5042234533305374533631756b3c433e77763b485a7147306f2679435b226524257432226946216b497834545c2c706b3e0e7044716b41575a5343584951556f0e00000019f094bc8921f2b09aa8602a003defbbbf7b5e60c2b8c3bb1b3f1071554a535848547a754f4c524a5479550d000000435c316b452a563f31497c21617825572824562e3c5e20317b4f23295038425e67474c7c423c397c406b512c2035656c2a3942264259324d585a51644c2831725063793910724471524b5159454547776148495a500d0000000c304d55374d487d6b582b6c56)";

    assert!(evaluate(snippet).is_ok());
}

Found here