60c0604052601260ff16600a62000017919062000bbd565b64e8d4a5100062000029919062000c0e565b6001556001600860006101000a81548160ff0219169083151502179055506001600860016101000a81548160ff021916908315150217905550614e20600f55614e20601055614e20601155614e20601255614e20601355601260ff16600a62000093919062000bbd565b631dcd6500620000a4919062000c0e565b6014556001601560016101000a81548160ff021916908315150217905550348015620000cf57600080fd5b50604051620055d5380380620055d58339818101604052810190620000f5919062000cc3565b62000115620001096200073860201b60201c565b6200074060201b60201c565b600154600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006038460362000183577310ed43c718714eb63d5aa57b78b54704e256024e905062000282565b60614603620001a95773d99d1c33f9fc3444f8101754abc46c52416550d1905062000281565b6001461480620001b95750600446145b80620001c55750600346145b80620001d15750600546145b15620001f457737a250d5630b4cf539739df2c5dacb4c659f2488d905062000280565b61a86a46036200021b577360ae616a2155ee3d9a68541ba4544862310933d490506200027f565b60fa4603620002415773f491e7b69e4244ad4002bc14e878a34207e38c2990506200027e565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002759062000dac565b60405180910390fd5b5b5b5b5b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000302573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000328919062000dce565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000390573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b6919062000dce565b6040518363ffffffff1660e01b8152600401620003d592919062000e11565b6020604051808303816000875af1158015620003f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041b919062000dce565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505062000483336080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200080460201b60201c565b620004b8306080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200080460201b60201c565b620004cd60a0516001620009d560201b60201c565b85600860026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60015460405162000724919062000e4f565b60405180910390a350505050505062000f9c565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000876576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200086d9062000ee2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008e8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008df9062000f7a565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051620009c8919062000e4f565b60405180910390a3505050565b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000abe5780860481111562000a965762000a9562000a30565b5b600185161562000aa65780820291505b808102905062000ab68562000a5f565b945062000a76565b94509492505050565b60008262000ad9576001905062000bac565b8162000ae9576000905062000bac565b816001811462000b02576002811462000b0d5762000b43565b600191505062000bac565b60ff84111562000b225762000b2162000a30565b5b8360020a91508482111562000b3c5762000b3b62000a30565b5b5062000bac565b5060208310610133831016604e8410600b841016171562000b7d5782820a90508381111562000b775762000b7662000a30565b5b62000bac565b62000b8c848484600162000a6c565b9250905081840481111562000ba65762000ba562000a30565b5b81810290505b9392505050565b6000819050919050565b600062000bca8262000bb3565b915062000bd78362000bb3565b925062000c067fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ac7565b905092915050565b600062000c1b8262000bb3565b915062000c288362000bb3565b925082820262000c388162000bb3565b9150828204841483151762000c525762000c5162000a30565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c8b8262000c5e565b9050919050565b62000c9d8162000c7e565b811462000ca957600080fd5b50565b60008151905062000cbd8162000c92565b92915050565b600080600080600060a0868803121562000ce25762000ce162000c59565b5b600062000cf28882890162000cac565b955050602062000d058882890162000cac565b945050604062000d188882890162000cac565b935050606062000d2b8882890162000cac565b925050608062000d3e8882890162000cac565b9150509295509295909350565b600082825260208201905092915050565b7f436861696e206e6f742076616c69640000000000000000000000000000000000600082015250565b600062000d94600f8362000d4b565b915062000da18262000d5c565b602082019050919050565b6000602082019050818103600083015262000dc78162000d85565b9050919050565b60006020828403121562000de75762000de662000c59565b5b600062000df78482850162000cac565b91505092915050565b62000e0b8162000c7e565b82525050565b600060408201905062000e28600083018562000e00565b62000e37602083018462000e00565b9392505050565b62000e498162000bb3565b82525050565b600060208201905062000e66600083018462000e3e565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062000eca60248362000d4b565b915062000ed78262000e6c565b604082019050919050565b6000602082019050818103600083015262000efd8162000ebb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600062000f6260228362000d4b565b915062000f6f8262000f04565b604082019050919050565b6000602082019050818103600083015262000f958162000f53565b9050919050565b60805160a0516145e262000ff360003960008181611086015281816113cc01528181611f0001528181611f8f0152611fe2015260008181610cb501528181612f7e0152818161305f015261308601526145e26000f3fe6080604052600436106102b25760003560e01c80636ddd171311610175578063a9059cbb116100dc578063d8020a1811610095578063f2fde38b1161006f578063f2fde38b14610a82578063f8b45b0514610aab578063fc3c28af14610ad6578063fdc8b64714610b01576102b9565b8063d8020a18146109f1578063dd62ed3e14610a1c578063e6be4a7214610a59576102b9565b8063a9059cbb146108e3578063b3ea787a14610920578063b62496f51461094b578063ba414b1014610988578063c3f0d327146109b1578063ce831ed5146109da576102b9565b80638da5cb5b1161012e5780638da5cb5b146107e55780638ea5220f1461081057806395d89b411461083b5780639a7a23d6146108665780639c3529301461088f578063a364b077146108b8576102b9565b80636ddd1713146106d357806370a08231146106fe578063715018a61461073b57806375f0a87414610752578063768dc7101461077d5780637b208769146107ba576102b9565b80632b14ca56116102195780634a8cbae1116101d25780634a8cbae1146105d75780634bf28fd0146106025780635d098b381461062d5780635e6e47aa146106565780636612e66f1461067f57806367b34e01146106a8576102b9565b80632b14ca56146104db5780632d4ed650146105065780632f4a7e511461052f57806330563bd714610558578063313ce5671461058157806347062402146105ac576102b9565b80631694505e1161026b5780631694505e146103cb57806318160ddd146103f65780631c4ba3ed146104215780631f53ac021461044a57806323b872dd14610473578063249715a6146104b0576102b9565b806303807ee5146102bb57806306228749146102e657806306fdde031461031157806307a212be1461033c578063095ea7b3146103655780630ef887e7146103a2576102b9565b366102b957005b005b3480156102c757600080fd5b506102d0610b2c565b6040516102dd9190613135565b60405180910390f35b3480156102f257600080fd5b506102fb610b32565b6040516103089190613191565b60405180910390f35b34801561031d57600080fd5b50610326610b58565b604051610333919061323c565b60405180910390f35b34801561034857600080fd5b50610363600480360381019061035e9190613294565b610b95565b005b34801561037157600080fd5b5061038c600480360381019061038791906132ed565b610c0e565b6040516103999190613348565b60405180910390f35b3480156103ae57600080fd5b506103c960048036038101906103c49190613294565b610c25565b005b3480156103d757600080fd5b506103e0610cb3565b6040516103ed91906133c2565b60405180910390f35b34801561040257600080fd5b5061040b610cd7565b6040516104189190613135565b60405180910390f35b34801561042d57600080fd5b50610448600480360381019061044391906133dd565b610ce1565b005b34801561045657600080fd5b50610471600480360381019061046c91906133dd565b610d9c565b005b34801561047f57600080fd5b5061049a6004803603810190610495919061340a565b610e57565b6040516104a79190613348565b60405180910390f35b3480156104bc57600080fd5b506104c5610e7f565b6040516104d29190613348565b60405180910390f35b3480156104e757600080fd5b506104f0610e92565b6040516104fd9190613135565b60405180910390f35b34801561051257600080fd5b5061052d60048036038101906105289190613294565b610e98565b005b34801561053b57600080fd5b5061055660048036038101906105519190613294565b610f26565b005b34801561056457600080fd5b5061057f600480360381019061057a91906133dd565b610fb4565b005b34801561058d57600080fd5b5061059661106f565b6040516105a39190613479565b60405180910390f35b3480156105b857600080fd5b506105c1611078565b6040516105ce9190613135565b60405180910390f35b3480156105e357600080fd5b506105ec61107e565b6040516105f99190613135565b60405180910390f35b34801561060e57600080fd5b50610617611084565b6040516106249190613191565b60405180910390f35b34801561063957600080fd5b50610654600480360381019061064f91906133dd565b6110a8565b005b34801561066257600080fd5b5061067d60048036038101906106789190613294565b611163565b005b34801561068b57600080fd5b506106a660048036038101906106a191906134c0565b6111f1565b005b3480156106b457600080fd5b506106bd611254565b6040516106ca9190613135565b60405180910390f35b3480156106df57600080fd5b506106e861125a565b6040516106f59190613348565b60405180910390f35b34801561070a57600080fd5b50610725600480360381019061072091906133dd565b61126d565b6040516107329190613135565b60405180910390f35b34801561074757600080fd5b506107506112b6565b005b34801561075e57600080fd5b506107676112ca565b6040516107749190613191565b60405180910390f35b34801561078957600080fd5b506107a4600480360381019061079f91906133dd565b6112f0565b6040516107b19190613348565b60405180910390f35b3480156107c657600080fd5b506107cf611310565b6040516107dc9190613191565b60405180910390f35b3480156107f157600080fd5b506107fa611336565b6040516108079190613191565b60405180910390f35b34801561081c57600080fd5b5061082561135f565b6040516108329190613191565b60405180910390f35b34801561084757600080fd5b50610850611385565b60405161085d919061323c565b60405180910390f35b34801561087257600080fd5b5061088d600480360381019061088891906134c0565b6113c2565b005b34801561089b57600080fd5b506108b660048036038101906108b191906133dd565b611466565b005b3480156108c457600080fd5b506108cd611521565b6040516108da9190613191565b60405180910390f35b3480156108ef57600080fd5b5061090a600480360381019061090591906132ed565b611547565b6040516109179190613348565b60405180910390f35b34801561092c57600080fd5b50610935611563565b6040516109429190613348565b60405180910390f35b34801561095757600080fd5b50610972600480360381019061096d91906133dd565b611576565b60405161097f9190613348565b60405180910390f35b34801561099457600080fd5b506109af60048036038101906109aa9190613565565b611596565b005b3480156109bd57600080fd5b506109d860048036038101906109d39190613294565b611673565b005b3480156109e657600080fd5b506109ef611701565b005b3480156109fd57600080fd5b50610a06611752565b604051610a139190613135565b60405180910390f35b348015610a2857600080fd5b50610a436004803603810190610a3e91906135c5565b611758565b604051610a509190613135565b60405180910390f35b348015610a6557600080fd5b50610a806004803603810190610a7b91906132ed565b6117df565b005b348015610a8e57600080fd5b50610aa96004803603810190610aa491906133dd565b6119ba565b005b348015610ab757600080fd5b50610ac0611a3d565b604051610acd9190613135565b60405180910390f35b348015610ae257600080fd5b50610aeb611a43565b604051610af89190613135565b60405180910390f35b348015610b0d57600080fd5b50610b16611a49565b604051610b239190613135565b60405180910390f35b60135481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280601881526020017f476f4675636b596f757273656c665a75636b6572626572670000000000000000815250905090565b610b9d611a4f565b620186a06103e8610bac610cd7565b610bb69190613634565b610bc091906136a5565b6014541115610c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfb90613748565b60405180910390fd5b8060148190555050565b6000610c1b338484611acd565b6001905092915050565b610c2d611a4f565b620186a0601354601254601154601054600f54610c4a9190613768565b610c549190613768565b610c5e9190613768565b610c689190613768565b1115610ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca09061380e565b60405180910390fd5b8060128190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600154905090565b610ce9611a4f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4f906138a0565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610da4611a4f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0a90613932565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080339050610e68858285611c96565b610e73858585611d22565b60019150509392505050565b600860009054906101000a900460ff1681565b600e5481565b610ea0611a4f565b620186a0601354601254601154601054600f54610ebd9190613768565b610ec79190613768565b610ed19190613768565b610edb9190613768565b1115610f1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f139061380e565b60405180910390fd5b80600f8190555050565b610f2e611a4f565b620186a0601354601254601154601054600f54610f4b9190613768565b610f559190613768565b610f5f9190613768565b610f699190613768565b1115610faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa19061380e565b60405180910390fd5b8060108190555050565b610fbc611a4f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361102b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611022906139c4565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006012905090565b600d5481565b60115481565b7f000000000000000000000000000000000000000000000000000000000000000081565b6110b0611a4f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361111f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111690613a56565b60405180910390fd5b80600860026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61116b611a4f565b620186a0601354601254601154601054600f546111889190613768565b6111929190613768565b61119c9190613768565b6111a69190613768565b11156111e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111de9061380e565b60405180910390fd5b8060118190555050565b6111f9611a4f565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60145481565b601560019054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112be611a4f565b6112c860006124e9565b565b600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60066020528060005260406000206000915054906101000a900460ff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600481526020017f4746595a00000000000000000000000000000000000000000000000000000000815250905090565b6113ca611a4f565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144f90613ae8565b60405180910390fd5b61146282826125ad565b5050565b61146e611a4f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d490613b7a565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080339050611558818585611d22565b600191505092915050565b600860019054906101000a900460ff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b61159e611a4f565b60006115a8611336565b905060005b8484905081101561166c5760008585838181106115cd576115cc613b9a565b5b90506020020160208101906115e291906133dd565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164a90613c3b565b60405180910390fd5b61165e838286612608565b5080806001019150506115ad565b5050505050565b61167b611a4f565b620186a0601354601254601154601054600f546116989190613768565b6116a29190613768565b6116ac9190613768565b6116b69190613768565b11156116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee9061380e565b60405180910390fd5b8060138190555050565b611709611a4f565b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561174f573d6000803e3d6000fd5b50565b600f5481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6117e7611a4f565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184c90613ccd565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118909190613191565b602060405180830381865afa1580156118ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d19190613d02565b90506000620186a083836118e59190613634565b6118ef91906136a5565b905060008473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b815260040161192e929190613d2f565b6020604051808303816000875af115801561194d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119719190613d6d565b9050806119b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119aa90613de6565b60405180910390fd5b5050505050565b6119c2611a4f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2890613e78565b60405180910390fd5b611a3a816124e9565b50565b60025481565b60105481565b60125481565b611a5761278d565b73ffffffffffffffffffffffffffffffffffffffff16611a75611336565b73ffffffffffffffffffffffffffffffffffffffff1614611acb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac290613ee4565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3390613f76565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba290614008565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c899190613135565b60405180910390a3505050565b6000611ca28484611758565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611d1c5781811015611d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0590614074565b60405180910390fd5b611d1b8484848403611acd565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8890614106565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df790613c3b565b60405180910390fd5b60008111611e43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3a90614198565b60405180910390fd5b611e4b611336565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611eb65750611e87611336565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80611eec57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611f7b576000600754148015611f4e57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611f6b5742600781905550611f62612795565b611f6a612972565b5b611f76838383612608565b6124e4565b611f83612795565b611f8b612972565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16149050600080600061203f3061126d565b9050600060145482101590508080156120645750601560019054906101000a900460ff165b801561207d5750601560009054906101000a900460ff16155b80156120d35750600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121295750600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561217f5750600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121c3576001601560006101000a81548160ff0219169083151502179055506121a7612afa565b6000601560006101000a81548160ff0219169083151502179055505b6000601560009054906101000a900460ff16159050600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122795750600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561228357600090505b600081156124d057600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156122e15750875b156123b157600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166123a957600254896123448c61126d565b61234e9190613768565b111561238f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123869061422a565b60405180910390fd5b61239b89600d54612ebb565b95506123a88b3088612608565b5b8590506124c1565b600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124075750865b156124c057600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166124bc576002548911156124a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612499906142bc565b60405180910390fd5b6124ae89600e54612ebb565b94506124bb8b3087612608565b5b8490505b5b80896124cd91906142dc565b98505b6124db8b8b8b612608565b50505050505050505b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561268f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268690614382565b60405180910390fd5b818103600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161277f9190613135565b60405180910390a350505050565b600033905090565b600860009054906101000a900460ff1680156127c15750620151806007546127bd9190613768565b4211155b1561291d5761012c6007546127d69190613768565b42116127f357611b58600d81905550612328600e81905550612918565b61012c6007546128039190613768565b42118015612820575061038460075461281c9190613768565b4211155b1561283c57611770600d81905550611f40600e81905550612917565b61038460075461284c9190613768565b4211801561286957506107086007546128659190613768565b4211155b1561288557611388600d81905550611b58600e81905550612916565b6107086007546128959190613768565b421180156128b25750611c206007546128ae9190613768565b4211155b156128ce57610fa0600d81905550611770600e81905550612915565b611c206007546128de9190613768565b421180156128fc5750620151806007546128f89190613768565b4211155b1561291457610bb8600d81905550611388600e819055505b5b5b5b5b612970565b600860009054906101000a900460ff16801561293c5750600060075414155b1561296f576107d0600d81905550610bb8600e819055506000600860006101000a81548160ff0219169083151502179055505b5b565b600860019054906101000a900460ff16801561299d57506107086007546129999190613768565b4211155b15612aa9576102586007546129b29190613768565b42116129e657620186a06101186129c7610cd7565b6129d19190613634565b6129db91906136a5565b600281905550612aa4565b6102586007546129f69190613768565b42118015612a1357506104b0600754612a0f9190613768565b4211155b15612a4657620186a0610226612a27610cd7565b612a319190613634565b612a3b91906136a5565b600281905550612aa3565b6104b0600754612a569190613768565b42118015612a735750610708600754612a6f9190613768565b4211155b15612aa257620186a0610456612a87610cd7565b612a919190613634565b612a9b91906136a5565b6002819055505b5b5b612af8565b600860019054906101000a900460ff168015612ac85750600060075414155b15612af757612ad5610cd7565b6002819055506000600860016101000a81548160ff0219169083151502179055505b5b565b6000612b053061126d565b90506000479050612b1582612edf565b60008147612b2391906142dc565b90506000620186a0600f5483612b399190613634565b612b4391906136a5565b90506000620186a060105484612b599190613634565b612b6391906136a5565b90506000620186a060115485612b799190613634565b612b8391906136a5565b90506000620186a060125486612b999190613634565b612ba391906136a5565b90506000620186a060135487612bb99190613634565b612bc391906136a5565b90506000806000806000600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168a6188b890604051612c17906143d3565b600060405180830381858888f193505050503d8060008114612c55576040519150601f19603f3d011682016040523d82523d6000602084013e612c5a565b606091505b505080955050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16896188b890604051612caa906143d3565b600060405180830381858888f193505050503d8060008114612ce8576040519150601f19603f3d011682016040523d82523d6000602084013e612ced565b606091505b505080945050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16886188b890604051612d3d906143d3565b600060405180830381858888f193505050503d8060008114612d7b576040519150601f19603f3d011682016040523d82523d6000602084013e612d80565b606091505b505080935050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16876188b890604051612dd0906143d3565b600060405180830381858888f193505050503d8060008114612e0e576040519150601f19603f3d011682016040523d82523d6000602084013e612e13565b606091505b505080925050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16866188b890604051612e63906143d3565b600060405180830381858888f193505050503d8060008114612ea1576040519150601f19603f3d011682016040523d82523d6000602084013e612ea6565b606091505b50508091505050505050505050505050505050565b6000620186a08284612ecd9190613634565b612ed791906136a5565b905092915050565b6000600267ffffffffffffffff811115612efc57612efb6143e8565b5b604051908082528060200260200182016040528015612f2a5781602001602082028036833780820191505090505b5090503081600081518110612f4257612f41613b9a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fe7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061300b919061442c565b8160018151811061301f5761301e613b9a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613084307f000000000000000000000000000000000000000000000000000000000000000084611acd565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016130e6959493929190614552565b600060405180830381600087803b15801561310057600080fd5b505af1158015613114573d6000803e3d6000fd5b505050505050565b6000819050919050565b61312f8161311c565b82525050565b600060208201905061314a6000830184613126565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061317b82613150565b9050919050565b61318b81613170565b82525050565b60006020820190506131a66000830184613182565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156131e65780820151818401526020810190506131cb565b60008484015250505050565b6000601f19601f8301169050919050565b600061320e826131ac565b61321881856131b7565b93506132288185602086016131c8565b613231816131f2565b840191505092915050565b600060208201905081810360008301526132568184613203565b905092915050565b600080fd5b600080fd5b6132718161311c565b811461327c57600080fd5b50565b60008135905061328e81613268565b92915050565b6000602082840312156132aa576132a961325e565b5b60006132b88482850161327f565b91505092915050565b6132ca81613170565b81146132d557600080fd5b50565b6000813590506132e7816132c1565b92915050565b600080604083850312156133045761330361325e565b5b6000613312858286016132d8565b92505060206133238582860161327f565b9150509250929050565b60008115159050919050565b6133428161332d565b82525050565b600060208201905061335d6000830184613339565b92915050565b6000819050919050565b600061338861338361337e84613150565b613363565b613150565b9050919050565b600061339a8261336d565b9050919050565b60006133ac8261338f565b9050919050565b6133bc816133a1565b82525050565b60006020820190506133d760008301846133b3565b92915050565b6000602082840312156133f3576133f261325e565b5b6000613401848285016132d8565b91505092915050565b6000806000606084860312156134235761342261325e565b5b6000613431868287016132d8565b9350506020613442868287016132d8565b92505060406134538682870161327f565b9150509250925092565b600060ff82169050919050565b6134738161345d565b82525050565b600060208201905061348e600083018461346a565b92915050565b61349d8161332d565b81146134a857600080fd5b50565b6000813590506134ba81613494565b92915050565b600080604083850312156134d7576134d661325e565b5b60006134e5858286016132d8565b92505060206134f6858286016134ab565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f84011261352557613524613500565b5b8235905067ffffffffffffffff81111561354257613541613505565b5b60208301915083602082028301111561355e5761355d61350a565b5b9250929050565b60008060006040848603121561357e5761357d61325e565b5b600084013567ffffffffffffffff81111561359c5761359b613263565b5b6135a88682870161350f565b935093505060206135bb8682870161327f565b9150509250925092565b600080604083850312156135dc576135db61325e565b5b60006135ea858286016132d8565b92505060206135fb858286016132d8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061363f8261311c565b915061364a8361311c565b92508282026136588161311c565b9150828204841483151761366f5761366e613605565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136b08261311c565b91506136bb8361311c565b9250826136cb576136ca613676565b5b828204905092915050565b7f546178207468726573686f6c642063616e6e6f74206265206d6f72652074686160008201527f6e203125206f6620746f74616c20737570706c79000000000000000000000000602082015250565b60006137326034836131b7565b915061373d826136d6565b604082019050919050565b6000602082019050818103600083015261376181613725565b9050919050565b60006137738261311c565b915061377e8361311c565b925082820190508082111561379657613795613605565b5b92915050565b7f5461782070657263656e746167652063616e6e6f74206578636565642031303060008201527f2500000000000000000000000000000000000000000000000000000000000000602082015250565b60006137f86021836131b7565b91506138038261379c565b604082019050919050565b60006020820190508181036000830152613827816137eb565b9050919050565b7f4275726e2077616c6c65742063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061388a6022836131b7565b91506138958261382e565b604082019050919050565b600060208201905081810360008301526138b98161387d565b9050919050565b7f4465762077616c6c65742063616e6e6f74206265207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061391c6021836131b7565b9150613927826138c0565b604082019050919050565b6000602082019050818103600083015261394b8161390f565b9050919050565b7f436861726974792077616c6c65742063616e6e6f74206265207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006139ae6025836131b7565b91506139b982613952565b604082019050919050565b600060208201905081810360008301526139dd816139a1565b9050919050565b7f4d61726b6574696e672077616c6c65742063616e6e6f74206265207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b6000613a406027836131b7565b9150613a4b826139e4565b604082019050919050565b60006020820190508181036000830152613a6f81613a33565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613ad26039836131b7565b9150613add82613a76565b604082019050919050565b60006020820190508181036000830152613b0181613ac5565b9050919050565b7f4c6f74746572792077616c6c65742063616e6e6f74206265207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613b646025836131b7565b9150613b6f82613b08565b604082019050919050565b60006020820190508181036000830152613b9381613b57565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c256023836131b7565b9150613c3082613bc9565b604082019050919050565b60006020820190508181036000830152613c5481613c18565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b6000613cb76036836131b7565b9150613cc282613c5b565b604082019050919050565b60006020820190508181036000830152613ce681613caa565b9050919050565b600081519050613cfc81613268565b92915050565b600060208284031215613d1857613d1761325e565b5b6000613d2684828501613ced565b91505092915050565b6000604082019050613d446000830185613182565b613d516020830184613126565b9392505050565b600081519050613d6781613494565b92915050565b600060208284031215613d8357613d8261325e565b5b6000613d9184828501613d58565b91505092915050565b7f5472616e73666572206661696c65640000000000000000000000000000000000600082015250565b6000613dd0600f836131b7565b9150613ddb82613d9a565b602082019050919050565b60006020820190508181036000830152613dff81613dc3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613e626026836131b7565b9150613e6d82613e06565b604082019050919050565b60006020820190508181036000830152613e9181613e55565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613ece6020836131b7565b9150613ed982613e98565b602082019050919050565b60006020820190508181036000830152613efd81613ec1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613f606024836131b7565b9150613f6b82613f04565b604082019050919050565b60006020820190508181036000830152613f8f81613f53565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ff26022836131b7565b9150613ffd82613f96565b604082019050919050565b6000602082019050818103600083015261402181613fe5565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061405e601d836131b7565b915061406982614028565b602082019050919050565b6000602082019050818103600083015261408d81614051565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006140f06025836131b7565b91506140fb82614094565b604082019050919050565b6000602082019050818103600083015261411f816140e3565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006141826029836131b7565b915061418d82614126565b604082019050919050565b600060208201905081810360008301526141b181614175565b9050919050565b7f43616e6e6f7420686f6c64206d6f726520746f6b656e73207468616e206c696d60008201527f6974000000000000000000000000000000000000000000000000000000000000602082015250565b60006142146022836131b7565b915061421f826141b8565b604082019050919050565b6000602082019050818103600083015261424381614207565b9050919050565b7f43616e6e6f742073656c6c206d6f726520746f6b656e73207468616e206c696d60008201527f697420696e203174780000000000000000000000000000000000000000000000602082015250565b60006142a66029836131b7565b91506142b18261424a565b604082019050919050565b600060208201905081810360008301526142d581614299565b9050919050565b60006142e78261311c565b91506142f28361311c565b925082820390508181111561430a57614309613605565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061436c6026836131b7565b915061437782614310565b604082019050919050565b6000602082019050818103600083015261439b8161435f565b9050919050565b600081905092915050565b50565b60006143bd6000836143a2565b91506143c8826143ad565b600082019050919050565b60006143de826143b0565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050614426816132c1565b92915050565b6000602082840312156144425761444161325e565b5b600061445084828501614417565b91505092915050565b6000819050919050565b600061447e61447961447484614459565b613363565b61311c565b9050919050565b61448e81614463565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6144c981613170565b82525050565b60006144db83836144c0565b60208301905092915050565b6000602082019050919050565b60006144ff82614494565b614509818561449f565b9350614514836144b0565b8060005b8381101561454557815161452c88826144cf565b9750614537836144e7565b925050600181019050614518565b5085935050505092915050565b600060a0820190506145676000830188613126565b6145746020830187614485565b818103604083015261458681866144f4565b90506145956060830185613182565b6145a26080830184613126565b969550505050505056fea264697066735822122077fd976aa2b52f2dd5bee44155e1c20673266eef6c545aa65b7a3e92a084741364736f6c63430008130033000000000000000000000000602b763b1a9d5910f392a3f65bc8b2cce994f83d00000000000000000000000052c12ae645be9adabf0286009164820c1e36651f000000000000000000000000f8d0cfc67ef3cc959411a70a4eae81da69c0beca0000000000000000000000008db76235c7923d6e071644f68fda33a61384ffa20000000000000000000000000280bf311ed856fd369cf5ca48f5b459f8319b4e