0x000000000000000000000000000000000000000000000000000000000000000060808060405234601557615c5f908161001b8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80630a6de2c9146128935780636fbbf6a314612290578063902648451461226557806391062e7f1461209857806393c0ffc21461206c578063a45b3ef814611fb9578063c81c23eb14611319578063d00bbce414610def578063d2ffb82314610da7578063e8fd7f321461098f578063ec1eef21146100d45763fbc0020e146100a057600080fd5b346100cf5760206003193601126100cf5760406100c36100be6128ba565b6136cb565b82519182526020820152f35b600080fd5b346100cf5760606003193601126100cf576100ed6128ba565b60243563ffffffff811681036100cf5763ffffffff60443516604435036100cf576040519161011b836128e4565b6060835260606020840152606060408401526101356134a3565b60608401526040516101468161291c565b600081526000602082015260808401526040517f1865c57d000000000000000000000000000000000000000000000000000000008152610120816004816001600160a01b0386165afa9081156105d25763ffffffff9160e09160009161095e575b5080606087015201511663ffffffff604435168110600014610955575b63ffffffff8084169116039163ffffffff83116104ae5763ffffffff600181851601116104ae576101ff63ffffffff600181861601166129a2565b61020c6040519182612971565b63ffffffff84811660010116808252601f1990610228906129a2565b0160005b818110610914575050602085015261024e63ffffffff60018186160116613520565b845261026463ffffffff600181861601166129a2565b6102716040519182612971565b63ffffffff84811660010116808252601f199061028d906129a2565b0160005b81811061089c57505060408501526040517fb9480d4a0000000000000000000000000000000000000000000000000000000081526020816004816001600160a01b0387165afa9081156105d257600091610862575b506040517f9026b8bc0000000000000000000000000000000000000000000000000000000081526020816004816001600160a01b0388165afa80156105d257600090610822575b6001600160801b03809250604051936103458561291c565b168352166020820152608085015260005b63ffffffff6001818616011663ffffffff8216101561063c5763ffffffff821663ffffffff82160163ffffffff81116104ae5763ffffffff604051917f22cd85a800000000000000000000000000000000000000000000000000000000835216600482015260c0816024816001600160a01b0388165afa80156105d2576104049160009161060d575b506020870151906103f663ffffffff8516836130d4565b5263ffffffff8316906130d4565b50608061041b63ffffffff831660208801516130d4565b510151604051907f3256cfa900000000000000000000000000000000000000000000000000000000825260030b600482015260e0816024816001600160a01b0388165afa80156105d257610485916000916105de575b508651906103f663ffffffff8516836130d4565b5060005b600460ff8216106104dd575063ffffffff1663ffffffff81146104ae57600101610356565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b61054260208260806104f863ffffffff8716848c01516130d4565b5101516040517f9329340d00000000000000000000000000000000000000000000000000000000815260039190910b600482015260ff909116602482015291829081906044820190565b03816001600160a01b0389165afa9081156105d257600091610591575b5060ff9160019163ffffffff61057b81871660408c01516130d4565b5151911690611fe08360051b1601520116610489565b90506020813d6020116105ca575b816105ac60209383612971565b810103126100cf5760ff916105c2600192612f11565b91509161055f565b3d915061059f565b6040513d6000823e3d90fd5b610600915060e03d60e011610606575b6105f88183612971565b810190613162565b87610471565b503d6105ee565b61062f915060c03d60c011610635575b6106278183612971565b8101906130e8565b876103df565b503d61061d565b8460405180916020825261065e81516101c060208501526101e0840190612e1c565b90602081015191601f198482030160408501526020808451928381520193019060005b8181106107aa57505050604081015191601f198482030160608501526020808451928381520193019060005b81811061075a5750505060808161074460606020940151838701906001600160801b038082511683526020820151166020830152604081015160070b6040830152606081015160070b606083015264ffffffffff608082015116608083015260a081015160030b60a083015260c0810151151560c083015263ffffffff60e08201511660e083015260ff6101008092015116910152565b015180516101a085015201516101c08301520390f35b9180955093909293515181906000915b6004831061078b5750505060206080600192019501910191859493926106ad565b6020806001926001600160801b0385511681520192019201919061076a565b9194509192602060c060019287516001600160801b0381511682526001600160801b038482015116848301526001600160801b03604082015116604083015260ff6060820151166060830152608081015160030b608083015263ffffffff60a080920151169082015201950191019185949392610681565b506020813d60201161085a575b8161083c60209383612971565b810103126100cf576108556001600160801b0391612ee1565b61032d565b3d915061082f565b90506020813d602011610894575b8161087d60209383612971565b810103126100cf5761088e90612ee1565b856102e6565b3d9150610870565b6040519081602081011067ffffffffffffffff6020840111176108e5578160208093016040526108cd838201612900565b60803684830137828101815282828601015201610291565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60209060405161092381612938565b60008152600083820152600060408201526000606082015260006080820152600060a08201528282860101520161022c565b506044356101c4565b61098291506101203d61012011610988575b61097a8183612971565b810190612f30565b866101a7565b503d610970565b346100cf5760a06003193601126100cf576004356001600160a01b03908181168091036100cf576109bf36612abd565b91604051906109cd82612900565b60008252602092838301606081526040840190606082526060850193600085526040517f16f0115b0000000000000000000000000000000000000000000000000000000081528781600481885afa9081156105d257600091610d71575b50168552604051907fd79924f4000000000000000000000000000000000000000000000000000000008252600082600481875afa9182156105d257600092610cd5575b5052604051907fb13c86a3000000000000000000000000000000000000000000000000000000008252600082600481865afa9182156105d257600092610c39575b50526040517f04baa00b0000000000000000000000000000000000000000000000000000000081528481600481855afa9081156105d257600091610bf8575b509060049260ff600093169052604051928380927f3d1c387b0000000000000000000000000000000000000000000000000000000082525afa9283156105d257600093610b57575b610b53610b43868686613937565b9160409593955195869586612c95565b0390f35b909192503d806000843e610b6b8184612971565b82019181818403126100cf5780519067ffffffffffffffff82116100cf57019180601f840112156100cf578251610ba1816129a2565b93610baf6040519586612971565b818552838086019260051b8201019283116100cf578301905b828210610be1575092939250829150610b439050610b35565b838091610bed84612f03565b815201910190610bc8565b9190508482813d8311610c32575b610c108183612971565b810103126100cf5760049260ff610c28600094612f22565b9293505092610aed565b503d610c06565b9091503d806000833e610c4c8183612971565b81019086818303126100cf5780519067ffffffffffffffff82116100cf57019080601f830112156100cf578151610c82816129a2565b92610c906040519485612971565b818452888085019260051b8201019283116100cf5788809101915b838310610cbd57505050509087610aae565b8190610cc884612ee1565b8152019101908890610cab565b9091503d806000833e610ce88183612971565b81019087818303126100cf5780519067ffffffffffffffff82116100cf57019080601f830112156100cf578151610d1e816129a2565b92610d2c6040519485612971565b818452898085019260051b8201019283116100cf5789809101915b838310610d5957505050509088610a6d565b8190610d6484612f11565b8152019101908990610d47565b90508781813d8311610da0575b610d888183612971565b810103126100cf575181811681036100cf5789610a2a565b503d610d7e565b346100cf5760606003193601126100cf57610dc06128ba565b610dc86129ba565b604435908160030b82036100cf57610ddf92613592565b90610b5360405192839283612eb2565b346100cf5760406003193601126100cf57610e086128ba565b610e106129ba565b90610e196134a3565b50604051917f1865c57d0000000000000000000000000000000000000000000000000000000083526101209283816004816001600160a01b0387165afa9384156105d2576000946112fa575b505060a0830190610e97610e7d835160030b856131fd565b5091610e8d81855160030b61332d565b935160030b6133a0565b9263ffffffff610eaf610eaa858761332d565b613368565b1692610eba84613520565b95610ec485613067565b90610ece86613067565b93610ee1610edb88613067565b97613067565b91600096604051957fd0c93a7c0000000000000000000000000000000000000000000000000000000087526020876004816001600160a01b0388165afa9687156105d2576000976112c6575b50610f366134e8565b50975b8a60030b8960030b136110ba576040517f3256cfa90000000000000000000000000000000000000000000000000000000081528960030b600482015260e0816024816001600160a01b0389165afa9081156105d2578d918c9160009161109b575b506001600160801b038151161580611086575b61107957828c6110188680958c8f8f9a61100c611012926110739d61105d9b610fda61106d9f86906130d4565b52610fe5848c6130d4565b50610ff4848b60030b926130d4565b5260016110018a83614886565b990160030b90614886565b926130d4565b526130d4565b528d61104a846001600160801b0360206110408383611037828a6130d4565b515116976130d4565b51015116926130d4565b5190611056858c6130d4565b5192614cb0565b611067828c6130d4565b52613583565b9861356f565b97610f39565b505050976110739061356f565b506001600160801b0360208201511615610fad565b6110b4915060e03d60e011610606576105f88183612971565b8f610f9a565b8b9493918a8988938089528085528083528088528152604051937f2d9d1ca600000000000000000000000000000000000000000000000000000000808652600160048701526020866024816001600160a01b038b165afa9586156105d25760009661128b575b506001600160a01b03966024602092604051998a938492835260006004840152165afa9586156105d25760009661124f575b50966111a96112399361119b6111b79461118d61117f9c6040519e8f9e8f92610220808552840190612bc1565b916020818403910152612e1c565b8c810360408e015290612c61565b908a820360608c0152612c61565b9088820360808a0152612c61565b9460a08701906001600160801b038082511683526020820151166020830152604081015160070b6040830152606081015160070b606083015264ffffffffff608082015116608083015260a081015160030b60a083015260c0810151151560c083015263ffffffff60e08201511660e083015260ff6101008092015116910152565b6101c08501526101e08401526102008301520390f35b91979095506020823d602011611283575b8161126d60209383612971565b810103126100cf579051909690946111a9611152565b3d9150611260565b9095506020813d6020116112be575b816112a760209383612971565b810103126100cf5751946001600160a01b03611120565b3d915061129a565b9096506020813d6020116112f2575b816112e260209383612971565b810103126100cf5751958c610f2d565b3d91506112d5565b611311929450803d106109885761097a8183612971565b918380610e65565b346100cf576003196040813601126100cf5767ffffffffffffffff600435116100cf576101e090600435360301126100cf576040516101e0810181811067ffffffffffffffff8211176108e557604052611377600435600401612ecc565b8152611387602460043501612ecc565b60208201526044600435013561ffff811681036100cf5760408201526113b1606460043501612e0b565b60608201526113c46084600435016128d0565b60808201526113d760a4600435016128d0565b60a08201526113ea60c4600435016129ca565b60c08201526113fd60e460043501612994565b60e082015260043561010481013561010083015261012481013561012083015261142a9061014401612994565b61014082015267ffffffffffffffff6101646004350135116100cf5761145b366004803561016481013501016129d8565b61016082015267ffffffffffffffff6101846004350135116100cf5761148c36600480356101848101350101612a40565b6101808201526101a460043501356101a08201526114af6101c460043501612ab0565b6101c08201526001600160a01b0360243516602435036100cf576114d161340c565b506040517f1de283a60000000000000000000000000000000000000000000000000000000081526020816004816001600160a01b03602435165afa9081156105d257600091611f7f575b5061152461340c565b9061ffff6040840151169061155560c08501519260016115478560030b83614886565b9460030b0160030b90614886565b9061155e6137b2565b926040519261156c84612900565b6000845260006020850152600060408501526000606085015261ffff6040880151168552600460206001600160a01b0360808a015116604051928380927f313ce5670000000000000000000000000000000000000000000000000000000082525afa80156105d257600090611f44575b6115e69150614d7d565b6020860152600460206001600160a01b0360a08a015116604051928380927f313ce5670000000000000000000000000000000000000000000000000000000082525afa80156105d257600090611f09575b6116419150614d7d565b6040860152610160870151606086015261018087015160808601526101a087015160a08601526101c0870151151560c086015260c087015160030b606085015260405161168d8161291c565b60018152602036818301376020610100880151015260c087015160030b6116bc60206101008901510151613098565b526040516116c98161291c565b6001815260203681830137610100870151604001526101208701518214611efd5761ffff60408801511660c088015160030b8867ffffffffffffffff815116916001600160a01b0360a0830151166004602061012061010086015195015192604051928380927f313ce5670000000000000000000000000000000000000000000000000000000082525afa9081156105d257600091611eb8575b5061177a61177361179292614d7d565b8095614d9a565b9560016117878583614886565b940160030b90614886565b916117b083826117aa6117a5838b613fb1565b61510e565b98614c0d565b92818311801590611eae575b611e725750611803611825946117fe61180f95856117f8866117f26117ed611809996001600160801b039e9b61392a565b613803565b9261381b565b916151bb565b615a0b565b91613914565b9061519d565b60406101008b01510151906101208b0152613098565b911690526305f5e1006001600160801b0361184860406101008a01510151613098565b511610611e12576305f5e1006001600160801b0361186e60406101008a01510151613098565b5116016001600160801b0381116104ae576001600160801b031660408501526118b06118a56101008901516101208901519061392a565b604087015190614d9a565b60208501526118c9610120870151604087015190614d9a565b926118de610100890151604088015190614d9a565b906118f6838567ffffffffffffffff8c511694614c0d565b8015611de8578415611db95761194561193487876117f861191d61194c9661198d9c61515a565b826ec097ce7bc90715b34b9f10000000000461392a565b9361193e81613914565b90856151bb565b8093613843565b9160ff821615611db15760ff61196392169061519d565b9081811015611dab57505060005b915b828552602085015161198783838387614cb0565b93614d13565b60e08301525b61199c82614db0565b15611d815760ff61014086015116946119b36133db565b956060850151602088015286526119ce606085015151613067565b604087015260005b60608501518051821015611b595790611acd6001926119fd83606089015160030b926130d4565b5160030b14611a108360608a01516130d4565b5160030b90611a32611a268560408a01516130d4565b5160208b015190614d9a565b89611a50611a448760608c01516130d4565b51604083015190614d9a565b918315611b51578a51905b8415611b47578b886020820151965b15611b385760606040611a82930151955b01516130d4565b5160030b60608d015160030b1385159687801590611b2f575b15611b1e575050828215600014611b0557505050600019935b15611aed575050506000195b818110908218021861510e565b6001600160801b03611ae38360408c01516130d4565b91169052016119d6565b8287611b009411908818028718916140db565b611ac0565b828a611b189411908b18028a18916140db565b93611ab4565b9250945091506117a594508b615be9565b50831515611a9b565b611a8291506060600095611a7b565b8b88600096611a6a565b600090611a5b565b505092508461014085015260405194611b718661291c565b6001865260005b60208110611d7057506020929186611b90859361522a565b611b9982613098565b52611ba381613098565b50610160870152805161018087015201516101a085015280516101c085015201516101e083015267ffffffffffffffff8151169067ffffffffffffffff6020820151169061ffff6040820151169063ffffffff606082015116906001600160a01b03608082015116906001600160a01b0360a0820151169060ff60e060c083015160030b9201511660e089015260c088015260a08701526080860152606085015260408401526020830152815260405180916020825267ffffffffffffffff815116602083015267ffffffffffffffff602082015116604083015261ffff604082015116606083015263ffffffff60608201511660808301526001600160a01b0360808201511660a08301526001600160a01b0360a08201511660c083015260c081015160030b60e083015260ff60e0820151166101008301526101008101516101e0611d43611d026102009384610120880152610220870190612bf8565b610120850151610140870152611d2c61014086015191601f199283898303016101608a0152612bf8565b906101608601519087830301610180880152612b64565b926101808101516101a08601526101a08101516101c08601526101c0810151828601520151908301520390f35b806060602080938a01015201611b78565b60046040517f119372dd000000000000000000000000000000000000000000000000000000008152fd5b03611971565b505091611973565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60046040517f4a13f114000000000000000000000000000000000000000000000000000000008152fd5b6064866001600160801b03611e336040610100808d01519401510151613098565b5116604051917f548d796f000000000000000000000000000000000000000000000000000000008352600483015260248201526305f5e1006044820152fd5b60649291604051927f5c1dad8c000000000000000000000000000000000000000000000000000000008452600484015260248301526044820152fd5b50808310156117bc565b90506020813d602011611ef5575b81611ed360209383612971565b810103126100cf5761177a611773611eed61179293612f22565b925050611763565b3d9150611ec6565b5060e084015250611993565b506020813d602011611f3c575b81611f2360209383612971565b810103126100cf57611f3761164191612f22565b611637565b3d9150611f16565b506020813d602011611f77575b81611f5e60209383612971565b810103126100cf57611f726115e691612f22565b6115dc565b3d9150611f51565b90506020813d602011611fb1575b81611f9a60209383612971565b810103126100cf57611fab90612f22565b8261151b565b3d9150611f8d565b346100cf5760406003193601126100cf57611fd26128ba565b611fda6129ba565b90604051917f1865c57d0000000000000000000000000000000000000000000000000000000083526101209283816004816001600160a01b0387165afa9384156105d257610ddf946120499260a09260009261204f575b5050015160030b91612043818461332d565b926133a0565b91613592565b6120659250803d106109885761097a8183612971565b8680612031565b346100cf5760406003193601126100cf5760406100c361208a6128ba565b6120926129ba565b906131fd565b346100cf5760031960a0813601126100cf5760043567ffffffffffffffff8082116100cf576080809383360301126100cf57604051926120d784612900565b6120e3836004016128d0565b84526024808401358381116100cf57840192366023850112156100cf57600484013561210e816129a2565b9461211c6040519687612971565b8186526020916024602088019160051b830101913683116100cf57602401905b82821061224e57505050506020860193845260448501359081116100cf57606461216f61217d9260043691890101612a40565b956040880196875201612994565b606086015261218b36612abd565b9351519061219882613067565b9360005b8381106121b157610b53610b4388888b613937565b6001600160a01b038851169063ffffffff6121cd8285516130d4565b51166040519283917f22cd85a80000000000000000000000000000000000000000000000000000000083526004830152818660c09384935afa80156105d2576001938892600092612231575b5050015160030b61222a82896130d4565b520161219c565b6122479250803d10610635576106278183612971565b8b80612219565b83809161225a84612e0b565b81520191019061213c565b346100cf5760206003193601126100cf5760206122886122836128ba565b612fe9565b604051908152f35b346100cf576003196020813601126100cf5760043567ffffffffffffffff918282116100cf57610100823603918201126100cf57604051916122d1836128e4565b6122dd816004016128d0565b83526122eb60248201612994565b602084015260448101358481116100cf5761230c90600436918401016129d8565b936040840194855260648201359081116100cf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c61235360809260043691860101612a40565b936060860194855201126100cf5761239460e46040519261237384612900565b6084810135845260a4810135602085015260c4810135604085015201612ab0565b606082015260808301526123a66137b2565b92600460206001600160a01b03855116604051928380927fd0c93a7c0000000000000000000000000000000000000000000000000000000082525afa9081156105d257600091612861575b5084526124076001600160a01b038451166136cb565b60408601526020850152516060840152516080830152602060808201510151908160011b91808304600214901517156104ae576001820182116104ae5761245060018301613850565b61245c600184016138c5565b60808301805160600151151560c0870152516040015160a0860152825161248b906001600160a01b0316614151565b938460e08701526124cf6124b26001600160a01b0386511660ff60208801511690896142fb565b9290602060808901510151906124c882886130d4565b52866130d4565b5215611d815760016124e19101613067565b926124ef60e087015161468f565b6affffffffffffffffffffff61250d602060808501510151876130d4565b9116905260005b60206080830151015181101561261c57600190600060c089015260206125418160808601510151866130d4565b51015160a089015261259261258d612587612582608087015161256a866020835193015161392a565b602060808a01510151888111908918028818916140db565b61382e565b8961515a565b61468f565b6affffffffffffffffffffff6125a883896130d4565b911690526affffffffffffffffffffff6125c282886130d4565b511660e08901526125e66001600160a01b0384511660ff602086015116908a6142fb565b91906125f284886130d4565b526125fd83886130d4565b521561260a575b01612514565b600061261682886130d4565b52612604565b509092949360005b60206080840151015180821015612855578161263f91613843565b6001810181116104ae57600160c0880152612662602060808601510151876130d4565b515160a08801526080840151516001830183116104ae5761258d6126a66125826126ac93602060808a015101516001811190600118026001189060018801906140db565b8561519d565b6affffffffffffffffffffff6126c5600184018b6130d4565b911690526affffffffffffffffffffff6126e2600183018a6130d4565b511660e08801526127066001600160a01b0385511660ff60208701511690896142fb565b9190612715600185018a6130d4565b5261272360018401886130d4565b52156127325750600101612624565b9150506affffffffffffffffffffff929394506127509150856130d4565b525b61275b816146df565b9183519160ff831161281d57600b9460ff8416868102948115828704891417156104ae57600186018096116104ae577fff000000000000000000000000000000000000000000000000000000000000006127cd6127b78861548c565b976127c5604051998a612971565b80895261548c565b91601f1960208901930136843760f81b169052602185016020830160005b8381106128045760405180610b538989898e8e86612c95565b602060018b92845160a81b8652019201920191906127eb565b604483604051907f6dfcc650000000000000000000000000000000000000000000000000000000008252600860048301526024820152fd5b50505050909150612752565b90506020813d60201161288b575b8161287c60209383612971565b810103126100cf5751856123f1565b3d915061286f565b346100cf5760206003193601126100cf5760206122886128b46122836128ba565b80613fb1565b600435906001600160a01b03821682036100cf57565b35906001600160a01b03821682036100cf57565b60a0810190811067ffffffffffffffff8211176108e557604052565b6080810190811067ffffffffffffffff8211176108e557604052565b6040810190811067ffffffffffffffff8211176108e557604052565b60c0810190811067ffffffffffffffff8211176108e557604052565b610120810190811067ffffffffffffffff8211176108e557604052565b90601f601f19910116810190811067ffffffffffffffff8211176108e557604052565b359060ff821682036100cf57565b67ffffffffffffffff81116108e55760051b60200190565b602435908160030b82036100cf57565b35908160030b82036100cf57565b9080601f830112156100cf5760209082356129f2816129a2565b93612a006040519586612971565b81855260208086019260051b8201019283116100cf57602001905b828210612a29575050505090565b838091612a35846129ca565b815201910190612a1b565b9080601f830112156100cf576020908235612a5a816129a2565b93612a686040519586612971565b81855260208086019260051b8201019283116100cf57602001905b828210612a91575050505090565b81356001600160801b03811681036100cf578152908301908301612a83565b359081151582036100cf57565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc60809101126100cf5760405190612af482612900565b6024358252604435602083015260643560408301526084358281151582036100cf5760600152565b60005b838110612b2f5750506000910152565b8181015183820152602001612b1f565b90601f19601f602093612b5d81518092818752878088019101612b1c565b0116010190565b90808251908181526020809101926020808460051b8301019501936000915b848310612b935750505050505090565b9091929394958480612bb183601f1986600196030187528a51612b3f565b9801930193019194939290612b83565b90815180825260208080930193019160005b828110612be1575050505090565b835160030b85529381019392810192600101612bd3565b60ff81511682526020906040612c1b838301516060858701526060860190612bc1565b91015192604081830391015281808451928381520193019160005b828110612c44575050505090565b83516001600160801b031685529381019392810192600101612c36565b90815180825260208080930193019160005b828110612c81575050505090565b835185529381019392810192600101612c73565b9190612cac612cbb9160a0855260a0850190612b3f565b60209284820384860152612b64565b93604094838103604085015282808651928381520195019060005b818110612dea57505050606093838103606085015281518082528382019184808360051b8301019401926000915b838310612dae57505050505060809260808183039101528551928382528282019083808660051b8501019801956000935b868510612d485750505050505050505090565b909192939495969799988680612d998d8487612d898f601f198a60019a03018d5251938451845286850151878501528b81860151918501528b840190612c61565b9201519088818403910152612c61565b9b9c9a01989796919091019401929190612d35565b90919293948680612dd3839c9e9d9c601f19866001969e9c9d9e030187528951612bf8565b970193019301919392909a98999a97969597612d04565b82516affffffffffffffffffffff1687529584019591840191600101612cd6565b359063ffffffff821682036100cf57565b9081518082526020808093019301916000805b838210612e3e57505050505090565b90919293948386516001600160801b03808251168452808383015116838501526040908183015116908401526060809101519083019084915b60048310612e965750505060e060019201960192019093929193612e2f565b815163ffffffff16815287936001909301929182019101612e77565b909161117f612ec993604084526040840190612bc1565b90565b359067ffffffffffffffff821682036100cf57565b51906001600160801b03821682036100cf57565b51908160070b82036100cf57565b51908160030b82036100cf57565b519063ffffffff821682036100cf57565b519060ff821682036100cf57565b90816101209103126100cf5760405190612f4982612954565b612f5281612ee1565b8252612f6060208201612ee1565b6020830152612f7160408201612ef5565b6040830152612f8260608201612ef5565b6060830152608081015164ffffffffff811681036100cf576080830152612fab60a08201612f03565b60a083015260c081015180151581036100cf5760c0830152612fcf60e08201612f11565b60e0830152612fe2610100809201612f22565b9082015290565b604051907f1865c57d00000000000000000000000000000000000000000000000000000000825261012080836004816001600160a01b0386165afa80156105d2576130469360a09260009261304a575b5050015160030b906131fd565b5090565b6130609250803d106109885761097a8183612971565b3880613039565b90613071826129a2565b61307e6040519182612971565b828152601f1961308e82946129a2565b0190602036910137565b8051156130a55760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80518210156130a55760209160051b010190565b908160c09103126100cf5761315a60a06040519261310584612938565b61310e81612ee1565b845261311c60208201612ee1565b602085015261312d60408201612ee1565b604085015261313e60608201612f22565b606085015261314f60808201612f03565b608085015201612f11565b60a082015290565b60e0818303126100cf576040519161317983612900565b61318282612ee1565b835260209061319360208401612ee1565b60208501526131a460408401612ee1565b604085015280607f840112156100cf57604051926131c184612900565b839060e081019283116100cf57606001905b8282106131e65750505050606082015290565b8380916131f284612f11565b8152019101906131d3565b6001600160a01b0316604051917fd0c93a7c000000000000000000000000000000000000000000000000000000008352602083600481855afa9283156105d2576000936132f9575b5060e06132636132558386614886565b946001840160030b90614886565b916024604051809581937f3256cfa900000000000000000000000000000000000000000000000000000000835260030b60048301525afa9081156105d2576132d5926000926132d8575b506001600160801b0360208184511693015116936132cd82828786614cb0565b948593614d13565b91565b6132f291925060e03d60e011610606576105f88183612971565b90386132ad565b9092506020813d602011613325575b8161331560209383612971565b810103126100cf57519138613245565b3d9150613308565b9060030b9060030b0390637fffffff82137fffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000008312176104ae57565b60030b60010190637fffffff82137fffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000008312176104ae57565b9060030b9060030b01907fffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000008212637fffffff8313176104ae57565b604051906060820182811067ffffffffffffffff8211176108e5576040526060604083600081528260208201520152565b60405190610200820182811067ffffffffffffffff8211176108e557604052816101e06000918281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201526134676133db565b6101008201528261012082015261347c6133db565b610140820152606061016082015282610180820152826101a0820152826101c08201520152565b604051906134b082612954565b816101006000918281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b604051906134f582612900565b8160008152600060208201526000604082015260606040519161351783612900565b60803684370152565b9061352a826129a2565b6135376040519182612971565b828152601f1961354782946129a2565b019060005b82811061355857505050565b6020906135636134e8565b8282850101520161354c565b60030b637fffffff81146104ae5760010190565b60001981146104ae5760010190565b92919063ffffffff6135a7610eaa838561332d565b16916135bb6135b584613520565b93613067565b926000956000936135ca6134e8565b50935b60038486820b910b81136136bb57604080517f3256cfa900000000000000000000000000000000000000000000000000000000815282600482015260e080826024816001600160a01b038a165afa9283156136b257508b92613695575b50506001600160801b0380825116159081613686575b5061367a579161366e916136749361365883886130d4565b5261366382876130d4565b50611067828a6130d4565b9461356f565b936135cd565b5050936136749061356f565b90506020820151161538613640565b6136ab9250803d10610606576105f88183612971565b388061362a565b513d8d823e3d90fd5b5093505093929450508083528352565b6001600160a01b0316906040517f3ab72c100000000000000000000000000000000000000000000000000000000081526020908181600481875afa80156105d2578290600090613784575b6004925094604051928380927f21272d4c0000000000000000000000000000000000000000000000000000000082525afa9182156105d25760009261375a57505090565b90809250813d831161377d575b6137718183612971565b810103126100cf575190565b503d613767565b5081813d83116137ab575b6137998183612971565b810103126100cf578160049151613716565b503d61378f565b60405190610100820182811067ffffffffffffffff8211176108e5576040528160e0600091828152826020820152826040820152606080820152606060808201528260a08201528260c08201520152565b90670de0b6b3a764000091808302928304036104ae57565b818102929181159184041417156104ae57565b90670de0b6b3a764000082018092116104ae57565b919082018092116104ae57565b9061385a826129a2565b6138676040519182612971565b828152601f1961387782946129a2565b019060005b82811061388857505050565b6020906138936133db565b8282850101520161387c565b604051906138ac82612900565b6060808360008152600060208201528160408201520152565b906138cf826129a2565b6138dc6040519182612971565b828152601f196138ec82946129a2565b019060005b8281106138fd57505050565b60209061390861389f565b828285010152016138f1565b90670de0b6b3a76400009182039182116104ae57565b919082039182116104ae57565b909291926020840151918260011b92808404600214901517156104ae57600183018093116104ae5761396883613850565b90613a1f613975856138c5565b946139896001600160a01b03845116614151565b946020613999818b0151876130d4565b510152604083015160406139b160208b0151876130d4565b51015260ff6060840151166139ca60208a0151866130d4565b5152613a19613a066001600160a01b038551168a886139ed60208301518a6130d4565b516040890151906060604085015194015115159461476b565b60208b9392930151906124c8828b6130d4565b52613067565b92613a298161468f565b6affffffffffffffffffffff613a4360208a0151876130d4565b9116905260005b602088015180821015613b435790613a786020613a70600194600060608e01528a6130d4565b5101516158b1565b8060408b015215613b3e57613ab961258d613ab36125828c518d6020613aa1888284015161392a565b910151888111908918028818916140db565b8561515a565b6affffffffffffffffffffff613acf83896130d4565b91169052613b216001600160a01b038551168a613af06020820151896130d4565b5160408801516affffffffffffffffffffff613b0c878d6130d4565b5116916060604085015194015115159461476b565b613b2b838a6130d4565b52613b3682876130d4565b525b01613a4a565b613b38565b50509495929560005b602085015180821015613f995781613b6391613843565b906001820182116104ae5760016060870152613b8d613b866020880151896130d4565b51516158b1565b80604088015215613c4b578551916001820182116104ae57613c446001613c2e888a898f8f61258d613bd9916118096125828d8b9f8c60208b01518181119082180281189201906140db565b6affffffffffffffffffffff613bf1888b01846130d4565b911690526affffffffffffffffffffff613b0c6040613c206001600160a01b03865116976020880151906130d4565b5194015192888b01906130d4565b613c3c83869396018d6130d4565b5201876130d4565b5201613b4c565b50909550866affffffffffffffffffffff9397959450613c6b92506130d4565b525b8351916020613c7b86613098565b51015151936000915b856000198101116104ae576000198601831015613e9b5760005b613ca8848861392a565b60001981019081116104ae57811015613e9057613cd2816020613cca8b613098565b5101516130d4565b516020613cde8a613098565b5101519060018301831191826104ae57613cfc9060018501906130d4565b5160030b9060030b13613d13575b50600101613c9e565b6000905b878210613d245750613d0a565b6020613d30838c6130d4565b510151906104ae57613d469060018401906130d4565b5160030b613d86838b613d5f826020613cca88856130d4565b5160030b6110126020613d7288856130d4565b510151926020613cca8960018801936130d4565b526001600160801b03613de0838b83613da8600184016040613cca89866130d4565b511693613dbb836040613cca89866130d4565b51166110126040613dcc88856130d4565b510151926040613cca8960018801936130d4565b52613df4600183016040613cca848a6130d4565b51613e2d83613e09816040613cca878d6130d4565b516040613e16868c6130d4565b51015190611012600184016040613cca898f6130d4565b526001613e428184016060613cca858b6130d4565b5191613e54846060613cca848c6130d4565b5192613e88858a6060613e758682613e6c82866130d4565b510151936130d4565b51015196611012600098888501906130d4565b520190613d17565b509160010191613c84565b93509491935050613eab816146df565b92825160ff8111613f6157600b60ff8216818102928115828504841417156104ae57600184018094116104ae577fff00000000000000000000000000000000000000000000000000000000000000613f1b613f058661548c565b95613f136040519788612971565b80875261548c565b91601f1960208701930136843760f81b169052602183016020870160005b838110613f4857505050505094565b602060018692845160a81b865201920192019190613f39565b604490604051907f6dfcc650000000000000000000000000000000000000000000000000000000008252600860048301526024820152fd5b505094505093919050613c6d565b8115611db9570490565b90808202906000198184099082808310920391808303921461403f57670de0b6b3a76400009082821115614015577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac10669940990828211900360ee1b910360121c170290565b60046040517f227bc153000000000000000000000000000000000000000000000000000000008152fd5b5050670de0b6b3a764000091500490565b670de0b6b3a76400009182820291600019848209938380861095039480860395146140ce57848311156140155782910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b505090612ec99250613fa7565b909182820291600019848209938380861095039480860395146140ce57848311156140155782910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b6001600160a01b031660409081517f1865c57d000000000000000000000000000000000000000000000000000000008152610120908181600481865afa9182156142d3579060a092916000926142de575b5050015160030b8251917f3256cfa900000000000000000000000000000000000000000000000000000000835281600484015260e083602481845afa9283156142d3576000936142ac575b5060206004918551928380927fd0c93a7c0000000000000000000000000000000000000000000000000000000082525afa9384156142a2575060009361426c575b5061424d83600161424284612ec997614886565b930160030b90614886565b906001600160801b036020818551169401511661198783838387614cb0565b92506020833d60201161429a575b8161428760209383612971565b810103126100cf5791519161424d61422e565b3d915061427a565b513d6000823e3d90fd5b60049193506142cb60209160e03d60e011610606576105f88183612971565b9391506141ed565b84513d6000823e3d90fd5b6142f49250803d106109885761097a8183612971565b38806141a2565b92916143056133db565b9161430e61389f565b5061431885614db0565b91909194826060880151602087015260ff8516865261433b606089015151613067565b604087015260005b60608901518051821015614683579061435d8188936130d4565b518a600391820b6143816143758560408c01516130d4565b51602084015190614d9a565b9061439f6143938660608d01516130d4565b51604085015190614d9a565b936143af60e0850151838c615a34565b506001600160801b03602083979301511615801590614670575b1561465957509161441561445d98926143f6602095516143e98582614886565b9260018601900b90614886565b906001600160801b038851166001600160801b03878a01511690614cb0565b5060405197889283927f9329340d0000000000000000000000000000000000000000000000000000000084526004840190929160ff602091604084019560030b845216910152565b03816001600160a01b038c165afa9485156105d25760009561461a575b5063ffffffff604051957f22cd85a800000000000000000000000000000000000000000000000000000000875216600486015260c09283866024816001600160a01b038d165afa9182156105d25760019661457a956000946145fb575b50506145106001600160801b036040860151166001600160801b03604086015116898111908a1802891890898111908a1802891861381b565b90816001600160801b038651168015156000146145e5576001600160801b039260209261454e6145659386868b0151168e8111908f18028e1861381b565b8c8111908d18028c1891808d118d821802186140db565b955b015116928361459a575b5050505061510e565b6001600160801b036145908360408c01516130d4565b9116905201614343565b6145d4936001600160801b0360206145bd93015116898111908a1802891861381b565b8781119088180287189180881188821802186140db565b818110908218021838808080614571565b5050506001600160801b03602060001995614567565b614612929450803d10610635576106278183612971565b9138806144d7565b90946020823d602011614651575b8161463560209383612971565b8101031261464e575061464790612f11565b933861447a565b80fd5b3d9150614628565b939150600197506117a594509161457a9592615be9565b506001600160801b0386511615156143c9565b50509594965092505050565b6affffffffffffffffffffff908181116146a7571690565b604490604051907f6dfcc650000000000000000000000000000000000000000000000000000000008252605860048301526024820152fd5b90815191601f196147086146f2856129a2565b946147006040519687612971565b8086526129a2565b0160005b81811061475a5750508260005b82518110156147545780614738614732600193866130d4565b5161522a565b61474282886130d4565b5261474d81876130d4565b5001614719565b50925050565b80606060208093880101520161470c565b9594939091929361477a6133db565b5061478361389f565b5061478f8584896154a8565b90801561487c5781515b15611d8157156148725751915b60406147b06133db565b946148096117a560208501519586519660208a015260ff86511689526147d587613067565b95858a019687526147f16001600160801b039687920151613098565b511690600198600181119060011802600118916140db565b826148148551613098565b9116905260015b848110614834575050505050509081612ec992946154a8565b859061485c6117a5856148478851613098565b51168661485485886130d4565b51169061519d565b846148688388516130d4565b911690520161481b565b60200151916147a6565b6020820151614799565b908060030b9060008212600014614c085760000360030b5b63ffffffff808094169116029182168281036104ae576204eb4a10614bd7576001821615614bae5770ffffffffffffffffffffffffffffffffff6ffffcb933bd6fad9d3af5f0b9f25db4d65b169060028316614b92575b60048316614b76575b60088316614b5a575b60108316614b3e575b60208316614b22575b60408316614b06575b608092838116614aeb575b6101008116614ad0575b6102008116614ab5575b6104008116614a9a575b6108008116614a7f575b6110008116614a64575b6120008116614a49575b6140008116614a2e575b6180008116614a13575b6201000081166149f8575b6202000081166149dd575b62040000166149c3575b6000126149b4575b670de0b6b3a764000002901c90565b8015611db957600019046149a5565b6d2216e584f630389b2052b8db590e909102821c9061499d565b6e5d6af8dedbcb3a6ccb7ce618d14225909202831c91614993565b916f09aa508b5b7e5a9780b0cc4e25d61a5602831c91614988565b916f31be135f97da6e09a19dc367e3b6da4002831c9161497d565b916f70d869a156ddd32a39e257bc3f50aa9b02831c91614973565b916fa9f746462d8f7dd10e744d913d03333302831c91614969565b916fd097f3bdfd254ee83bdd3f248e7e785e02831c9161495f565b916fe7159475a2c578ef4f1d17b2b235d48002831c91614955565b916ff3392b0822b88206f8abe8a3b44dd9be02831c9161494b565b916ff987a7253ac4d9194200696907cf2e3702831c91614941565b916ffcbe86c7900aecf64236ab31f1f9dcb502831c91614937565b916ffe5dee046a99d51e2cc356c2f617dbe002831c9161492d565b906fff2ea16466c9838804e327cb417cafcb0260801c90614922565b906fff973b41fa98cd2e57b660be99eb2c4a0260801c90614919565b906fffcb9843d60f67b19e8887e0bd251eb70260801c90614910565b906fffe5caca7e10e81259b3cddc7a0649410260801c90614907565b906ffff2e50f5f656ac9229c67059486f3890260801c906148fe565b906ffff97272373d41fd789c8cb37ffcaa1c0260801c906148f5565b70ffffffffffffffffffffffffffffffffff7001000000000000000000000000000000006148ea565b602490604051907f20ab18100000000000000000000000000000000000000000000000000000000082526004820152fd5b61489e565b909160009083810391809484604e1c15614ca3575b8415614c96578115614c8357614c77614c7e95614c718587614c6c633b9aca0096614c57614c50858b6158d9565b9187615907565b0160011c97614c668980613fb1565b95613fb1565b6140db565b0161593f565b02016140db565b901c90565b614c919150614c7e94615907565b615925565b509050614c7e92506158d9565b6039955093851b93614c22565b9091928381039160009481604e1c1580614d08575b614cf7578415614c96578115614c8357614c77614c7e95614c718587614c6c633b9aca0096614c57614c50858b6158d9565b6039955093851b9390851b90614c22565b5084604e1c15614cc5565b919293908215614d75579081859215614d6d57614d42614d4993614d5895614d3b8886615907565b01936158d9565b01906158d9565b670de0b6b3a76400000261593f565b90818111908218021890818110908218021890565b505050505090565b505050905090565b60ff8116601203614d8e5750600190565b60120360ff16600a0a90565b9060018103614da7575090565b612ec99161381b565b614db861389f565b600191805160208201519060408301519060608401518660808601519260e087015195600096600096855193614ded85613067565b97614df786613067565b978a975b878910614fb1575050505050505050506060860152604085015260c08301511580159182600014614faa57835b83614fa1575b508215614f87575b5050614f7d5760005b606083015151811015614f77576040840181614e5c8183516130d4565b516001811015614f6b5750806000925b60a0870193614ed16117a586519260018a118a6001180260011890614e9e6117a5836001600160801b039788946140db565b16614eaa8787516130d4565b5260608c0197614ebb878a516130d4565b516001811015614f6157506000905b51906140db565b16614edd8386516130d4565b52614eec6064938492516130d4565b51109283614f4b575b505050614f405780614f18614f1060019360408801516130d4565b518651613843565b8552614f288160608701516130d4565b51614f3860208701918251613843565b905201614e3f565b505050905090600090565b614f57929350516130d4565b5110388281614ef5565b6000190190614eca565b60001982910192614e6c565b50505091565b5050905090600090565b90915081614f98575b503880614e36565b90501538614f90565b15925038614e2e565b8093614e28565b90919293949596979a9b615079615084916150728e8e8b8f838f8e908e8e8d8f614fde87615011926130d4565b51936001600160801b03614ff789600397880b966130d4565b5116946000936150078684614886565b9501900b90614886565b90615040898418848b11028418808410156151005761503961503284613803565b918561381b565b90866151bb565b9883811015615093575050505050615067929161506161100c926000615a0b565b95615a0b565b5261101283836130d4565b5190613843565b9c6150728d8c6130d4565b9a01969594939291908e614dfb565b949893949293919283811090816150ca57505050506150c161100c936118096150679796946150619461392a565b96600097615a0b565b916150679897958561100c98936117fe95615061989e979e1802188181106000146150f75750509061519d565b0391905061519d565b615039615032828603613803565b6001600160801b0390818111615122571690565b604490604051907f6dfcc650000000000000000000000000000000000000000000000000000000008252608060048301526024820152fd5b91906001811190600118029182600118906151758282614050565b93600114611db957670de0b6b3a7640000900961518e57565b90600181018091116104ae5790565b9190670de0b6b3a7640000906151b38185613fb1565b930961518e57565b9092916001811190600118029283600118916151d88383836140db565b94600114611db9570961518e57565b60206152289193929360405194816152088793518092868087019101612b1c565b820161521c82518093868085019101612b1c565b01038085520183612971565b565b9081519160409081519360207fff00000000000000000000000000000000000000000000000000000000000000809260f81b1681870152600195600181526152718161291c565b818401519687519160ff83116154555760ff8316906103fc8460021b169160049a8184048c148215171561542757600184018094116154275792909189926152d06152bb8461548c565b936152c886519586612971565b80855261548c565b968989850191601f19809a0136843760f81b1690528c886000960160218501915b8a89858a1061540e5750505050505061530b9293506151e7565b9501519182519460ff86116153d85760ff861695610ff0818c1b1660109b888204601014891517156153aa57600182018092116153aa57508061535c6153536153649361548c565b9b519b8c612971565b808b5261548c565b898701930136843760f81b1690526021860191830160005b85811061539457505050505050612ec99293506151e7565b815160801b84529289019290840190820161537c565b6011907f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b60448a8760088b51927f6dfcc6500000000000000000000000000000000000000000000000000000000084528301526024820152fd5b835160e01b855298909801978e9750920191018e6152f1565b60118c7f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b6044838851907f6dfcc650000000000000000000000000000000000000000000000000000000008252600860048301526024820152fd5b67ffffffffffffffff81116108e557601f01601f191660200190565b909291926154b461389f565b93602082015151916154c583613067565b60408701526154d383613067565b606087015260005b8381106154e9575050505050565b6154f78160208401516130d4565b516155916001600160801b036155118460408701516130d4565b511660ff85511692602060405194615528866128e4565b60008652600082870152600060408701526000606087015260006080870152604051809581927f9329340d0000000000000000000000000000000000000000000000000000000083528560030b6004840190929160ff602091604084019560030b845216910152565b03816001600160a01b038d165afa9283156105d257600093615875575b5063ffffffff604051937f22cd85a800000000000000000000000000000000000000000000000000000000855216600484015260c0836024816001600160a01b038d165afa9283156105d25760009361584b575b506040517fd0c93a7c000000000000000000000000000000000000000000000000000000008152906020826004816001600160a01b038e165afa80156105d2578892600091615812575b5091615679918695949360606001999801528060030b608087015261566f6134e8565b5060030b8b615a34565b50919091151560408501526001600160801b03604081818160208801511696015116938281511615801590615803575b156157a0576156f5898581891189831802821802908585850151169080891189821802811891818111908218021802906156e78282888751166151bb565b8a52856020850151166151bb565b60208801525b015116615783575b505050615740828a61572d615725602061571c8d6136cb565b92908851615a0b565b960151615a0b565b61101283606060408501519401516130d4565b5261575a6157528260408b01516130d4565b518951613843565b885261577861576d8260608b01516130d4565b5160208a0151613843565b6020890152016154db565b615797928690818111908218021890615925565b50388080615703565b60608701516157bc608089015160030b918b6142428483614886565b888401519091600091156157fd576157d591508661519d565b885282880151156157ee575060005b60208801526156fb565b6157f8908561515a565b6157e4565b506157d5565b508260208201511615156156a9565b9192506020823d602011615843575b8161582e60209383612971565b8101031261464e57505187919061567961564c565b3d9150615821565b6001600160a01b0391935061586e9060c03d60c011610635576106278183612971565b9290615602565b90926020823d6020116158a9575b8161589060209383612971565b8101031261464e57506158a290612f11565b91386155ae565b3d9150615883565b670de0ad9b58f16000908181029181830414901517156100cf57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029183156158fe575b81830414901517156100cf570490565b600193506158ee565b8181029181830414901517156100cf57670de0b6b3a7640000900490565b8181029183156158fe5781830414901517156100cf570490565b60b581710100000000000000000000000000000000008110156159f4575b806901000000000000000000620100009210156159e7575b650100000000008110156159da575b63010000008110156159cd575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b91615991565b60201c9160101b91615984565b60401c9160201b91615975565b5068b500000000000000009050608082901c61595d565b90600181148015615a2c575b15615a20575090565b60001960019201040190565b508115615a17565b6001600160a01b0390929192615a486134e8565b501692604051927f3256cfa90000000000000000000000000000000000000000000000000000000084528060030b600485015260e084602481885afa9384156105d257600094615bc8575b50600460208596604051928380927fd0c93a7c0000000000000000000000000000000000000000000000000000000082525afa80156105d257600090615b94575b615ae5915060016142428483614886565b93818410938581108015966001600160801b03928385511695615b1283826020890199888b511690614cb0565b9384615b2657505050505050600080925252565b918596615b7696836117a59796956117f8958511858318028218948718028618818110600014615b86575050615b616117a560005b8861519d565b16905280831015615b7b576117f26000613803565b169052565b6117f2818403613803565b615b61916117a59103615b5b565b506020813d602011615bc0575b81615bae60209383612971565b810103126100cf57615ae59051615ad4565b3d9150615ba1565b615be291945060e03d60e011610606576105f88183612971565b9238615a93565b615bff9094919293945160016117878583614886565b9015615c1d5750612ec9925060018111906001180260011890614050565b915050612ec991613fb156fea2646970667358221220cf6b0235f31269066d2032e018c31a56cf73cb1d7cff0887013b8e2f095f973964736f6c63430008190033