0x608060405234801561001057600080fd5b506004361061012c5760003560e01c806349d1124a116100ad578063b09f126611610071578063b09f126614610335578063b105ee4e14610353578063c587396b14610383578063d28d88521461038d578063dd62ed3e146103ab5761012c565b806349d1124a1461027d57806370a082311461029957806395d89b41146102c95780639c679017146102e7578063a9059cbb146103055761012c565b8063313ce567116100f4578063313ce567146101e9578063319a661c1461020757806332424aa3146102235780633eaaf86b14610241578063442890d51461025f5761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f5780631fc824dd1461019d57806323b872dd146101b9575b600080fd5b6101396103db565b604051610146919061125e565b60405180910390f35b61016960048036038101906101649190611328565b610418565b6040516101769190611383565b60405180910390f35b610187610518565b60405161019491906113ad565b60405180910390f35b6101b760048036038101906101b291906113c8565b61053b565b005b6101d360048036038101906101ce91906113f5565b6105fb565b6040516101e09190611383565b60405180910390f35b6101f16108d3565b6040516101fe9190611464565b60405180910390f35b610221600480360381019061021c91906114e4565b6108dc565b005b61022b6109ea565b6040516102389190611464565b60405180910390f35b6102496109ef565b60405161025691906113ad565b60405180910390f35b610267610a0e565b6040516102749190611553565b60405180910390f35b610297600480360381019061029291906116ac565b610a37565b005b6102b360048036038101906102ae91906113c8565b610c83565b6040516102c091906113ad565b60405180910390f35b6102d1610ccc565b6040516102de919061125e565b60405180910390f35b6102ef610d09565b6040516102fc9190611553565b60405180910390f35b61031f600480360381019061031a9190611328565b610d33565b60405161032c9190611383565b60405180910390f35b61033d610f48565b60405161034a919061125e565b60405180910390f35b61036d600480360381019061036891906113c8565b610f81565b60405161037a91906113ad565b60405180910390f35b61038b610fca565b005b610395611106565b6040516103a2919061125e565b60405180910390f35b6103c560048036038101906103c09190611708565b61113f565b6040516103d291906113ad565b60405180910390f35b60606040518060400160405280600681526020017f4249474d454d0000000000000000000000000000000000000000000000000000815250905090565b600081600160006104276111c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff166104c16111c6565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161050691906113ad565b60405180910390a36001905092915050565b60006012600a61052891906118aa565b620f424061053691906118f5565b905090565b6105436111c6565b73ffffffffffffffffffffffffffffffffffffffff16610561610a0e565b73ffffffffffffffffffffffffffffffffffffffff16146105b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ae906119a9565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106476111c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156106c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ba90611a3b565b60405180910390fd5b60006106ce85610f81565b9050600081111561071c5780831461071b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071290611acd565b60405180910390fd5b5b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461076b9190611aed565b9250508190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107c19190611b21565b9250508190555082600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108126111c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461085b9190611aed565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516108bf91906113ad565b60405180910390a360019150509392505050565b60006012905090565b6108e46111c6565b73ffffffffffffffffffffffffffffffffffffffff16610902610d09565b73ffffffffffffffffffffffffffffffffffffffff1614610958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094f90611bc7565b60405180910390fd5b60005b838390508110156109e457816003600086868581811061097e5761097d611be7565b5b905060200201602081019061099391906113c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806109dc90611c16565b91505061095b565b50505050565b601281565b6012600a6109fd91906118aa565b620f4240610a0b91906118f5565b81565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a3f6111c6565b73ffffffffffffffffffffffffffffffffffffffff16610a5d610d09565b73ffffffffffffffffffffffffffffffffffffffff1614610ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aaa90611bc7565b60405180910390fd5b6000811015610af7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aee90611cd0565b60405180910390fd5b60005b8251811015610c7e576000838281518110610b1857610b17611be7565b5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8890611d62565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f442151da4f589f7e51fac5b4f285a5e8fc8e105067689027ef065e1e922e19358286604051610c61929190611d82565b60405180910390a250508080610c7690611c16565b915050610afa565b505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606040518060400160405280600681526020017f4249474d454d0000000000000000000000000000000000000000000000000000815250905090565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008160026000610d426111c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db590611e1d565b60405180910390fd5b6000610dd0610dcb6111c6565b610f81565b90506000811115610e1e57808314610e1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1490611acd565b60405180910390fd5b5b8260026000610e2b6111c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e749190611aed565b9250508190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610eca9190611b21565b925050819055508373ffffffffffffffffffffffffffffffffffffffff16610ef06111c6565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610f3591906113ad565b60405180910390a3600191505092915050565b6040518060400160405280600681526020017f4249474d454d000000000000000000000000000000000000000000000000000081525081565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fd26111c6565b73ffffffffffffffffffffffffffffffffffffffff16610ff0610a0e565b73ffffffffffffffffffffffffffffffffffffffff1614611046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103d906119a9565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4c19d31874b3f8325813d90efdd10758f703ab99b84367f07276ecd2cd69c95d60405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6040518060400160405280600681526020017f4249474d454d000000000000000000000000000000000000000000000000000081525081565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600081519050919050565b600082825260208201905092915050565b60005b838110156112085780820151818401526020810190506111ed565b60008484015250505050565b6000601f19601f8301169050919050565b6000611230826111ce565b61123a81856111d9565b935061124a8185602086016111ea565b61125381611214565b840191505092915050565b600060208201905081810360008301526112788184611225565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006112bf82611294565b9050919050565b6112cf816112b4565b81146112da57600080fd5b50565b6000813590506112ec816112c6565b92915050565b6000819050919050565b611305816112f2565b811461131057600080fd5b50565b600081359050611322816112fc565b92915050565b6000806040838503121561133f5761133e61128a565b5b600061134d858286016112dd565b925050602061135e85828601611313565b9150509250929050565b60008115159050919050565b61137d81611368565b82525050565b60006020820190506113986000830184611374565b92915050565b6113a7816112f2565b82525050565b60006020820190506113c2600083018461139e565b92915050565b6000602082840312156113de576113dd61128a565b5b60006113ec848285016112dd565b91505092915050565b60008060006060848603121561140e5761140d61128a565b5b600061141c868287016112dd565b935050602061142d868287016112dd565b925050604061143e86828701611313565b9150509250925092565b600060ff82169050919050565b61145e81611448565b82525050565b60006020820190506114796000830184611455565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126114a4576114a361147f565b5b8235905067ffffffffffffffff8111156114c1576114c0611484565b5b6020830191508360208202830111156114dd576114dc611489565b5b9250929050565b6000806000604084860312156114fd576114fc61128a565b5b600084013567ffffffffffffffff81111561151b5761151a61128f565b5b6115278682870161148e565b9350935050602061153a86828701611313565b9150509250925092565b61154d816112b4565b82525050565b60006020820190506115686000830184611544565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6115a682611214565b810181811067ffffffffffffffff821117156115c5576115c461156e565b5b80604052505050565b60006115d8611280565b90506115e4828261159d565b919050565b600067ffffffffffffffff8211156116045761160361156e565b5b602082029050602081019050919050565b6000611628611623846115e9565b6115ce565b9050808382526020820190506020840283018581111561164b5761164a611489565b5b835b81811015611674578061166088826112dd565b84526020840193505060208101905061164d565b5050509392505050565b600082601f8301126116935761169261147f565b5b81356116a3848260208601611615565b91505092915050565b600080604083850312156116c3576116c261128a565b5b600083013567ffffffffffffffff8111156116e1576116e061128f565b5b6116ed8582860161167e565b92505060206116fe85828601611313565b9150509250929050565b6000806040838503121561171f5761171e61128a565b5b600061172d858286016112dd565b925050602061173e858286016112dd565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156117ce578086048111156117aa576117a9611748565b5b60018516156117b95780820291505b80810290506117c785611777565b945061178e565b94509492505050565b6000826117e757600190506118a3565b816117f557600090506118a3565b816001811461180b576002811461181557611844565b60019150506118a3565b60ff84111561182757611826611748565b5b8360020a91508482111561183e5761183d611748565b5b506118a3565b5060208310610133831016604e8410600b84101617156118795782820a90508381111561187457611873611748565b5b6118a3565b6118868484846001611784565b9250905081840481111561189d5761189c611748565b5b81810290505b9392505050565b60006118b5826112f2565b91506118c083611448565b92506118ed7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846117d7565b905092915050565b6000611900826112f2565b915061190b836112f2565b9250828202611919816112f2565b915082820484148315176119305761192f611748565b5b5092915050565b7f53696e676c654f776e65723a20416374696f6e206d757374206265207065726660008201527f6f726d656420627920746865206f776e65720000000000000000000000000000602082015250565b60006119936032836111d9565b915061199e82611937565b604082019050919050565b600060208201905081810360008301526119c281611986565b9050919050565b7f54543a207472616e7366657220616d6f756e74206578636565647320616c6c6f60008201527f77616e6365000000000000000000000000000000000000000000000000000000602082015250565b6000611a256025836111d9565b9150611a30826119c9565b604082019050919050565b60006020820190508181036000830152611a5481611a18565b9050919050565b7f54543a207472616e7366657220616d6f756e7420646f6573206e6f742065717560008201527f616c20746865206578616374207472616e7366657220616d6f756e7400000000602082015250565b6000611ab7603c836111d9565b9150611ac282611a5b565b604082019050919050565b60006020820190508181036000830152611ae681611aaa565b9050919050565b6000611af8826112f2565b9150611b03836112f2565b9250828203905081811115611b1b57611b1a611748565b5b92915050565b6000611b2c826112f2565b9150611b37836112f2565b9250828201905080821115611b4f57611b4e611748565b5b92915050565b7f475245593a20416374696f6e206d75737420626520706572666f726d6564206260008201527f792074686520746f6b656e2063726561746f7200000000000000000000000000602082015250565b6000611bb16033836111d9565b9150611bbc82611b55565b604082019050919050565b60006020820190508181036000830152611be081611ba4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611c21826112f2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611c5357611c52611748565b5b600182019050919050565b7f475245593a204e657720616d6f756e74206d757374206265206e6f6e2d6e656760008201527f6174697665000000000000000000000000000000000000000000000000000000602082015250565b6000611cba6025836111d9565b9150611cc582611c5e565b604082019050919050565b60006020820190508181036000830152611ce981611cad565b9050919050565b7f475245593a20557365722061646472657373206d757374206e6f74206265207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b6000611d4c602b836111d9565b9150611d5782611cf0565b604082019050919050565b60006020820190508181036000830152611d7b81611d3f565b9050919050565b6000604082019050611d97600083018561139e565b611da4602083018461139e565b9392505050565b7f54543a207472616e7366657220616d6f756e7420657863656564732062616c6160008201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b6000611e076023836111d9565b9150611e1282611dab565b604082019050919050565b60006020820190508181036000830152611e3681611dfa565b905091905056fea26469706673582212200dcc1d0063cc668ba6930f0b714a39f6687b0acae262eb18f905b95bbfdc3cb564736f6c63430008110033
0x60806040523480156200001157600080fd5b50600062000024620001d060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f4c19d31874b3f8325813d90efdd10758f703ab99b84367f07276ecd2cd69c95d60405160405180910390a3506012600a620000d2919062000372565b620f4240620000e29190620003c3565b60026000620000f6620001d060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000144620001d060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620001a3919062000372565b620f4240620001b39190620003c3565b604051620001c291906200041f565b60405180910390a36200043c565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000266578086048111156200023e576200023d620001d8565b5b60018516156200024e5780820291505b80810290506200025e8562000207565b94506200021e565b94509492505050565b60008262000281576001905062000354565b8162000291576000905062000354565b8160018114620002aa5760028114620002b557620002eb565b600191505062000354565b60ff841115620002ca57620002c9620001d8565b5b8360020a915084821115620002e457620002e3620001d8565b5b5062000354565b5060208310610133831016604e8410600b8410161715620003255782820a9050838111156200031f576200031e620001d8565b5b62000354565b62000334848484600162000214565b925090508184048111156200034e576200034d620001d8565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200037f826200035b565b91506200038c8362000365565b9250620003bb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200026f565b905092915050565b6000620003d0826200035b565b9150620003dd836200035b565b9250828202620003ed816200035b565b91508282048414831517620004075762000406620001d8565b5b5092915050565b62000419816200035b565b82525050565b60006020820190506200043660008301846200040e565b92915050565b611e73806200044c6000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806349d1124a116100ad578063b09f126611610071578063b09f126614610335578063b105ee4e14610353578063c587396b14610383578063d28d88521461038d578063dd62ed3e146103ab5761012c565b806349d1124a1461027d57806370a082311461029957806395d89b41146102c95780639c679017146102e7578063a9059cbb146103055761012c565b8063313ce567116100f4578063313ce567146101e9578063319a661c1461020757806332424aa3146102235780633eaaf86b14610241578063442890d51461025f5761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f5780631fc824dd1461019d57806323b872dd146101b9575b600080fd5b6101396103db565b604051610146919061125e565b60405180910390f35b61016960048036038101906101649190611328565b610418565b6040516101769190611383565b60405180910390f35b610187610518565b60405161019491906113ad565b60405180910390f35b6101b760048036038101906101b291906113c8565b61053b565b005b6101d360048036038101906101ce91906113f5565b6105fb565b6040516101e09190611383565b60405180910390f35b6101f16108d3565b6040516101fe9190611464565b60405180910390f35b610221600480360381019061021c91906114e4565b6108dc565b005b61022b6109ea565b6040516102389190611464565b60405180910390f35b6102496109ef565b60405161025691906113ad565b60405180910390f35b610267610a0e565b6040516102749190611553565b60405180910390f35b610297600480360381019061029291906116ac565b610a37565b005b6102b360048036038101906102ae91906113c8565b610c83565b6040516102c091906113ad565b60405180910390f35b6102d1610ccc565b6040516102de919061125e565b60405180910390f35b6102ef610d09565b6040516102fc9190611553565b60405180910390f35b61031f600480360381019061031a9190611328565b610d33565b60405161032c9190611383565b60405180910390f35b61033d610f48565b60405161034a919061125e565b60405180910390f35b61036d600480360381019061036891906113c8565b610f81565b60405161037a91906113ad565b60405180910390f35b61038b610fca565b005b610395611106565b6040516103a2919061125e565b60405180910390f35b6103c560048036038101906103c09190611708565b61113f565b6040516103d291906113ad565b60405180910390f35b60606040518060400160405280600681526020017f4249474d454d0000000000000000000000000000000000000000000000000000815250905090565b600081600160006104276111c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff166104c16111c6565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161050691906113ad565b60405180910390a36001905092915050565b60006012600a61052891906118aa565b620f424061053691906118f5565b905090565b6105436111c6565b73ffffffffffffffffffffffffffffffffffffffff16610561610a0e565b73ffffffffffffffffffffffffffffffffffffffff16146105b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ae906119a9565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106476111c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156106c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ba90611a3b565b60405180910390fd5b60006106ce85610f81565b9050600081111561071c5780831461071b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071290611acd565b60405180910390fd5b5b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461076b9190611aed565b9250508190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107c19190611b21565b9250508190555082600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108126111c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461085b9190611aed565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516108bf91906113ad565b60405180910390a360019150509392505050565b60006012905090565b6108e46111c6565b73ffffffffffffffffffffffffffffffffffffffff16610902610d09565b73ffffffffffffffffffffffffffffffffffffffff1614610958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094f90611bc7565b60405180910390fd5b60005b838390508110156109e457816003600086868581811061097e5761097d611be7565b5b905060200201602081019061099391906113c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806109dc90611c16565b91505061095b565b50505050565b601281565b6012600a6109fd91906118aa565b620f4240610a0b91906118f5565b81565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a3f6111c6565b73ffffffffffffffffffffffffffffffffffffffff16610a5d610d09565b73ffffffffffffffffffffffffffffffffffffffff1614610ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aaa90611bc7565b60405180910390fd5b6000811015610af7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aee90611cd0565b60405180910390fd5b60005b8251811015610c7e576000838281518110610b1857610b17611be7565b5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8890611d62565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f442151da4f589f7e51fac5b4f285a5e8fc8e105067689027ef065e1e922e19358286604051610c61929190611d82565b60405180910390a250508080610c7690611c16565b915050610afa565b505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606040518060400160405280600681526020017f4249474d454d0000000000000000000000000000000000000000000000000000815250905090565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008160026000610d426111c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db590611e1d565b60405180910390fd5b6000610dd0610dcb6111c6565b610f81565b90506000811115610e1e57808314610e1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1490611acd565b60405180910390fd5b5b8260026000610e2b6111c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e749190611aed565b9250508190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610eca9190611b21565b925050819055508373ffffffffffffffffffffffffffffffffffffffff16610ef06111c6565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610f3591906113ad565b60405180910390a3600191505092915050565b6040518060400160405280600681526020017f4249474d454d000000000000000000000000000000000000000000000000000081525081565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fd26111c6565b73ffffffffffffffffffffffffffffffffffffffff16610ff0610a0e565b73ffffffffffffffffffffffffffffffffffffffff1614611046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103d906119a9565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4c19d31874b3f8325813d90efdd10758f703ab99b84367f07276ecd2cd69c95d60405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6040518060400160405280600681526020017f4249474d454d000000000000000000000000000000000000000000000000000081525081565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600081519050919050565b600082825260208201905092915050565b60005b838110156112085780820151818401526020810190506111ed565b60008484015250505050565b6000601f19601f8301169050919050565b6000611230826111ce565b61123a81856111d9565b935061124a8185602086016111ea565b61125381611214565b840191505092915050565b600060208201905081810360008301526112788184611225565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006112bf82611294565b9050919050565b6112cf816112b4565b81146112da57600080fd5b50565b6000813590506112ec816112c6565b92915050565b6000819050919050565b611305816112f2565b811461131057600080fd5b50565b600081359050611322816112fc565b92915050565b6000806040838503121561133f5761133e61128a565b5b600061134d858286016112dd565b925050602061135e85828601611313565b9150509250929050565b60008115159050919050565b61137d81611368565b82525050565b60006020820190506113986000830184611374565b92915050565b6113a7816112f2565b82525050565b60006020820190506113c2600083018461139e565b92915050565b6000602082840312156113de576113dd61128a565b5b60006113ec848285016112dd565b91505092915050565b60008060006060848603121561140e5761140d61128a565b5b600061141c868287016112dd565b935050602061142d868287016112dd565b925050604061143e86828701611313565b9150509250925092565b600060ff82169050919050565b61145e81611448565b82525050565b60006020820190506114796000830184611455565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126114a4576114a361147f565b5b8235905067ffffffffffffffff8111156114c1576114c0611484565b5b6020830191508360208202830111156114dd576114dc611489565b5b9250929050565b6000806000604084860312156114fd576114fc61128a565b5b600084013567ffffffffffffffff81111561151b5761151a61128f565b5b6115278682870161148e565b9350935050602061153a86828701611313565b9150509250925092565b61154d816112b4565b82525050565b60006020820190506115686000830184611544565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6115a682611214565b810181811067ffffffffffffffff821117156115c5576115c461156e565b5b80604052505050565b60006115d8611280565b90506115e4828261159d565b919050565b600067ffffffffffffffff8211156116045761160361156e565b5b602082029050602081019050919050565b6000611628611623846115e9565b6115ce565b9050808382526020820190506020840283018581111561164b5761164a611489565b5b835b81811015611674578061166088826112dd565b84526020840193505060208101905061164d565b5050509392505050565b600082601f8301126116935761169261147f565b5b81356116a3848260208601611615565b91505092915050565b600080604083850312156116c3576116c261128a565b5b600083013567ffffffffffffffff8111156116e1576116e061128f565b5b6116ed8582860161167e565b92505060206116fe85828601611313565b9150509250929050565b6000806040838503121561171f5761171e61128a565b5b600061172d858286016112dd565b925050602061173e858286016112dd565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156117ce578086048111156117aa576117a9611748565b5b60018516156117b95780820291505b80810290506117c785611777565b945061178e565b94509492505050565b6000826117e757600190506118a3565b816117f557600090506118a3565b816001811461180b576002811461181557611844565b60019150506118a3565b60ff84111561182757611826611748565b5b8360020a91508482111561183e5761183d611748565b5b506118a3565b5060208310610133831016604e8410600b84101617156118795782820a90508381111561187457611873611748565b5b6118a3565b6118868484846001611784565b9250905081840481111561189d5761189c611748565b5b81810290505b9392505050565b60006118b5826112f2565b91506118c083611448565b92506118ed7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846117d7565b905092915050565b6000611900826112f2565b915061190b836112f2565b9250828202611919816112f2565b915082820484148315176119305761192f611748565b5b5092915050565b7f53696e676c654f776e65723a20416374696f6e206d757374206265207065726660008201527f6f726d656420627920746865206f776e65720000000000000000000000000000602082015250565b60006119936032836111d9565b915061199e82611937565b604082019050919050565b600060208201905081810360008301526119c281611986565b9050919050565b7f54543a207472616e7366657220616d6f756e74206578636565647320616c6c6f60008201527f77616e6365000000000000000000000000000000000000000000000000000000602082015250565b6000611a256025836111d9565b9150611a30826119c9565b604082019050919050565b60006020820190508181036000830152611a5481611a18565b9050919050565b7f54543a207472616e7366657220616d6f756e7420646f6573206e6f742065717560008201527f616c20746865206578616374207472616e7366657220616d6f756e7400000000602082015250565b6000611ab7603c836111d9565b9150611ac282611a5b565b604082019050919050565b60006020820190508181036000830152611ae681611aaa565b9050919050565b6000611af8826112f2565b9150611b03836112f2565b9250828203905081811115611b1b57611b1a611748565b5b92915050565b6000611b2c826112f2565b9150611b37836112f2565b9250828201905080821115611b4f57611b4e611748565b5b92915050565b7f475245593a20416374696f6e206d75737420626520706572666f726d6564206260008201527f792074686520746f6b656e2063726561746f7200000000000000000000000000602082015250565b6000611bb16033836111d9565b9150611bbc82611b55565b604082019050919050565b60006020820190508181036000830152611be081611ba4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611c21826112f2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611c5357611c52611748565b5b600182019050919050565b7f475245593a204e657720616d6f756e74206d757374206265206e6f6e2d6e656760008201527f6174697665000000000000000000000000000000000000000000000000000000602082015250565b6000611cba6025836111d9565b9150611cc582611c5e565b604082019050919050565b60006020820190508181036000830152611ce981611cad565b9050919050565b7f475245593a20557365722061646472657373206d757374206e6f74206265207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b6000611d4c602b836111d9565b9150611d5782611cf0565b604082019050919050565b60006020820190508181036000830152611d7b81611d3f565b9050919050565b6000604082019050611d97600083018561139e565b611da4602083018461139e565b9392505050565b7f54543a207472616e7366657220616d6f756e7420657863656564732062616c6160008201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b6000611e076023836111d9565b9150611e1282611dab565b604082019050919050565b60006020820190508181036000830152611e3681611dfa565b905091905056fea26469706673582212200dcc1d0063cc668ba6930f0b714a39f6687b0acae262eb18f905b95bbfdc3cb564736f6c63430008110033