0x608060405234801561001057600080fd5b50600436106101215760003560e01c80636c02a931116100ad57806395d89b411161007157806395d89b41146102fa578063a9059cbb14610318578063bb06119214610348578063d5abeb0114610364578063dd62ed3e1461038257610121565b80636c02a9311461025457806370a08231146102725780637574ea6f146102a25780637b61c320146102d25780638bad0c0a146102f057610121565b806323b872dd116100f457806323b872dd146101b057806325e0b16d146101e0578063313ce567146101fc5780633b97e8561461021a5780634706bdff1461023857610121565b806306fdde0314610126578063095ea7b314610144578063169674071461017457806318160ddd14610192575b600080fd5b61012e6103b2565b60405161013b9190611208565b60405180910390f35b61015e600480360381019061015991906112d2565b6103ef565b60405161016b919061132d565b60405180910390f35b61017c6104ef565b6040516101899190611357565b60405180910390f35b61019a610518565b6040516101a79190611381565b60405180910390f35b6101ca60048036038101906101c5919061139c565b61053b565b6040516101d7919061132d565b60405180910390f35b6101fa60048036038101906101f591906113ef565b610813565b005b6102046108d2565b6040516102119190611438565b60405180910390f35b6102226108db565b60405161022f9190611438565b60405180910390f35b610252600480360381019061024d91906114b8565b6108e0565b005b61025c6109ee565b6040516102699190611208565b60405180910390f35b61028c600480360381019061028791906113ef565b610a27565b6040516102999190611381565b60405180910390f35b6102bc60048036038101906102b791906113ef565b610a70565b6040516102c99190611381565b60405180910390f35b6102da610ab9565b6040516102e79190611208565b60405180910390f35b6102f8610af2565b005b610302610c2c565b60405161030f9190611208565b60405180910390f35b610332600480360381019061032d91906112d2565b610c69565b60405161033f919061132d565b60405180910390f35b610362600480360381019061035d9190611656565b610e7e565b005b61036c6110ca565b6040516103799190611381565b60405180910390f35b61039c600480360381019061039791906116b2565b6110e9565b6040516103a99190611381565b60405180910390f35b60606040518060400160405280601281526020017f4578636c75736976654d656d65546f6b656e0000000000000000000000000000815250905090565b600081600160006103fe611170565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16610498611170565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104dd9190611381565b60405180910390a36001905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006012600a6105289190611854565b6201d4c0610536919061189f565b905090565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610587611170565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610603576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105fa90611953565b60405180910390fd5b600061060e85610a70565b9050600081111561065c5780831461065b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610652906119e5565b60405180910390fd5b5b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106ab9190611a05565b9250508190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107019190611a39565b9250508190555082600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610752611170565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461079b9190611a05565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516107ff9190611381565b60405180910390a360019150509392505050565b61081b611170565b73ffffffffffffffffffffffffffffffffffffffff166108396104ef565b73ffffffffffffffffffffffffffffffffffffffff161461088f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088690611adf565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006012905090565b601281565b6108e8611170565b73ffffffffffffffffffffffffffffffffffffffff166109066104ef565b73ffffffffffffffffffffffffffffffffffffffff161461095c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095390611b71565b60405180910390fd5b60005b838390508110156109e857816003600086868581811061098257610981611b91565b5b905060200201602081019061099791906113ef565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806109e090611bc0565b91505061095f565b50505050565b6040518060400160405280601281526020017f4578636c75736976654d656d65546f6b656e000000000000000000000000000081525081565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040518060400160405280600581526020017f45584d454d00000000000000000000000000000000000000000000000000000081525081565b610afa611170565b73ffffffffffffffffffffffffffffffffffffffff16610b186104ef565b73ffffffffffffffffffffffffffffffffffffffff1614610b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6590611adf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b60405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60606040518060400160405280600581526020017f45584d454d000000000000000000000000000000000000000000000000000000815250905090565b60008160026000610c78611170565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ceb90611c7a565b60405180910390fd5b6000610d06610d01611170565b610a70565b90506000811115610d5457808314610d53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4a906119e5565b60405180910390fd5b5b8260026000610d61611170565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610daa9190611a05565b9250508190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e009190611a39565b925050819055508373ffffffffffffffffffffffffffffffffffffffff16610e26611170565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610e6b9190611381565b60405180910390a3600191505092915050565b610e86611170565b73ffffffffffffffffffffffffffffffffffffffff16610ea46104ef565b73ffffffffffffffffffffffffffffffffffffffff1614610efa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef190611b71565b60405180910390fd5b6000811015610f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3590611d0c565b60405180910390fd5b60005b82518110156110c5576000838281518110610f5f57610f5e611b91565b5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcf90611d9e565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f5ee81488a8c866569c02800403bbf9145d931cf759737ed853eedb84dbb5a9e382866040516110a8929190611dbe565b60405180910390a2505080806110bd90611bc0565b915050610f41565b505050565b6012600a6110d89190611854565b6201d4c06110e6919061189f565b81565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600081519050919050565b600082825260208201905092915050565b60005b838110156111b2578082015181840152602081019050611197565b60008484015250505050565b6000601f19601f8301169050919050565b60006111da82611178565b6111e48185611183565b93506111f4818560208601611194565b6111fd816111be565b840191505092915050565b6000602082019050818103600083015261122281846111cf565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006112698261123e565b9050919050565b6112798161125e565b811461128457600080fd5b50565b60008135905061129681611270565b92915050565b6000819050919050565b6112af8161129c565b81146112ba57600080fd5b50565b6000813590506112cc816112a6565b92915050565b600080604083850312156112e9576112e8611234565b5b60006112f785828601611287565b9250506020611308858286016112bd565b9150509250929050565b60008115159050919050565b61132781611312565b82525050565b6000602082019050611342600083018461131e565b92915050565b6113518161125e565b82525050565b600060208201905061136c6000830184611348565b92915050565b61137b8161129c565b82525050565b60006020820190506113966000830184611372565b92915050565b6000806000606084860312156113b5576113b4611234565b5b60006113c386828701611287565b93505060206113d486828701611287565b92505060406113e5868287016112bd565b9150509250925092565b60006020828403121561140557611404611234565b5b600061141384828501611287565b91505092915050565b600060ff82169050919050565b6114328161141c565b82525050565b600060208201905061144d6000830184611429565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261147857611477611453565b5b8235905067ffffffffffffffff81111561149557611494611458565b5b6020830191508360208202830111156114b1576114b061145d565b5b9250929050565b6000806000604084860312156114d1576114d0611234565b5b600084013567ffffffffffffffff8111156114ef576114ee611239565b5b6114fb86828701611462565b9350935050602061150e868287016112bd565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611550826111be565b810181811067ffffffffffffffff8211171561156f5761156e611518565b5b80604052505050565b600061158261122a565b905061158e8282611547565b919050565b600067ffffffffffffffff8211156115ae576115ad611518565b5b602082029050602081019050919050565b60006115d26115cd84611593565b611578565b905080838252602082019050602084028301858111156115f5576115f461145d565b5b835b8181101561161e578061160a8882611287565b8452602084019350506020810190506115f7565b5050509392505050565b600082601f83011261163d5761163c611453565b5b813561164d8482602086016115bf565b91505092915050565b6000806040838503121561166d5761166c611234565b5b600083013567ffffffffffffffff81111561168b5761168a611239565b5b61169785828601611628565b92505060206116a8858286016112bd565b9150509250929050565b600080604083850312156116c9576116c8611234565b5b60006116d785828601611287565b92505060206116e885828601611287565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561177857808604811115611754576117536116f2565b5b60018516156117635780820291505b808102905061177185611721565b9450611738565b94509492505050565b600082611791576001905061184d565b8161179f576000905061184d565b81600181146117b557600281146117bf576117ee565b600191505061184d565b60ff8411156117d1576117d06116f2565b5b8360020a9150848211156117e8576117e76116f2565b5b5061184d565b5060208310610133831016604e8410600b84101617156118235782820a90508381111561181e5761181d6116f2565b5b61184d565b611830848484600161172e565b92509050818404811115611847576118466116f2565b5b81810290505b9392505050565b600061185f8261129c565b915061186a8361141c565b92506118977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611781565b905092915050565b60006118aa8261129c565b91506118b58361129c565b92508282026118c38161129c565b915082820484148315176118da576118d96116f2565b5b5092915050565b7f54543a207472616e7366657220616d6f756e74206578636565647320616c6c6f60008201527f77616e6365000000000000000000000000000000000000000000000000000000602082015250565b600061193d602583611183565b9150611948826118e1565b604082019050919050565b6000602082019050818103600083015261196c81611930565b9050919050565b7f54543a207472616e7366657220616d6f756e7420646f6573206e6f742065717560008201527f616c20746865206578616374207472616e7366657220616d6f756e7400000000602082015250565b60006119cf603c83611183565b91506119da82611973565b604082019050919050565b600060208201905081810360008301526119fe816119c2565b9050919050565b6000611a108261129c565b9150611a1b8361129c565b9250828203905081811115611a3357611a326116f2565b5b92915050565b6000611a448261129c565b9150611a4f8361129c565b9250828201905080821115611a6757611a666116f2565b5b92915050565b7f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960008201527f6f6e000000000000000000000000000000000000000000000000000000000000602082015250565b6000611ac9602283611183565b9150611ad482611a6d565b604082019050919050565b60006020820190508181036000830152611af881611abc565b9050919050565b7f596f75206d757374206265207468652061646d696e20746f20706572666f726d60008201527f207468697320616374696f6e0000000000000000000000000000000000000000602082015250565b6000611b5b602c83611183565b9150611b6682611aff565b604082019050919050565b60006020820190508181036000830152611b8a81611b4e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611bcb8261129c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611bfd57611bfc6116f2565b5b600182019050919050565b7f54543a207472616e7366657220616d6f756e7420657863656564732062616c6160008201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b6000611c64602383611183565b9150611c6f82611c08565b604082019050919050565b60006020820190508181036000830152611c9381611c57565b9050919050565b7f5570646174656420616d6f756e74206d757374206265206e6f6e2d6e6567617460008201527f6976650000000000000000000000000000000000000000000000000000000000602082015250565b6000611cf6602383611183565b9150611d0182611c9a565b604082019050919050565b60006020820190508181036000830152611d2581611ce9565b9050919050565b7f557365722061646472657373206d757374206e6f7420626520746865207a657260008201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b6000611d88602983611183565b9150611d9382611d2c565b604082019050919050565b60006020820190508181036000830152611db781611d7b565b9050919050565b6000604082019050611dd36000830185611372565b611de06020830184611372565b939250505056fea2646970667358221220da85659a7c6d1a89e0647b9ef2be056e1af00791d4cbcd9049cd45f9887f6a2164736f6c63430008110033
0x60806040523480156200001157600080fd5b50600062000024620001d060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b60405160405180910390a3506012600a620000d2919062000372565b6201d4c0620000e29190620003c3565b60026000620000f6620001d060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000144620001d060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620001a3919062000372565b6201d4c0620001b39190620003c3565b604051620001c291906200041f565b60405180910390a36200043c565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000266578086048111156200023e576200023d620001d8565b5b60018516156200024e5780820291505b80810290506200025e8562000207565b94506200021e565b94509492505050565b60008262000281576001905062000354565b8162000291576000905062000354565b8160018114620002aa5760028114620002b557620002eb565b600191505062000354565b60ff841115620002ca57620002c9620001d8565b5b8360020a915084821115620002e457620002e3620001d8565b5b5062000354565b5060208310610133831016604e8410600b8410161715620003255782820a9050838111156200031f576200031e620001d8565b5b62000354565b62000334848484600162000214565b925090508184048111156200034e576200034d620001d8565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200037f826200035b565b91506200038c8362000365565b9250620003bb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200026f565b905092915050565b6000620003d0826200035b565b9150620003dd836200035b565b9250828202620003ed816200035b565b91508282048414831517620004075762000406620001d8565b5b5092915050565b62000419816200035b565b82525050565b60006020820190506200043660008301846200040e565b92915050565b611e1d806200044c6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80636c02a931116100ad57806395d89b411161007157806395d89b41146102fa578063a9059cbb14610318578063bb06119214610348578063d5abeb0114610364578063dd62ed3e1461038257610121565b80636c02a9311461025457806370a08231146102725780637574ea6f146102a25780637b61c320146102d25780638bad0c0a146102f057610121565b806323b872dd116100f457806323b872dd146101b057806325e0b16d146101e0578063313ce567146101fc5780633b97e8561461021a5780634706bdff1461023857610121565b806306fdde0314610126578063095ea7b314610144578063169674071461017457806318160ddd14610192575b600080fd5b61012e6103b2565b60405161013b9190611208565b60405180910390f35b61015e600480360381019061015991906112d2565b6103ef565b60405161016b919061132d565b60405180910390f35b61017c6104ef565b6040516101899190611357565b60405180910390f35b61019a610518565b6040516101a79190611381565b60405180910390f35b6101ca60048036038101906101c5919061139c565b61053b565b6040516101d7919061132d565b60405180910390f35b6101fa60048036038101906101f591906113ef565b610813565b005b6102046108d2565b6040516102119190611438565b60405180910390f35b6102226108db565b60405161022f9190611438565b60405180910390f35b610252600480360381019061024d91906114b8565b6108e0565b005b61025c6109ee565b6040516102699190611208565b60405180910390f35b61028c600480360381019061028791906113ef565b610a27565b6040516102999190611381565b60405180910390f35b6102bc60048036038101906102b791906113ef565b610a70565b6040516102c99190611381565b60405180910390f35b6102da610ab9565b6040516102e79190611208565b60405180910390f35b6102f8610af2565b005b610302610c2c565b60405161030f9190611208565b60405180910390f35b610332600480360381019061032d91906112d2565b610c69565b60405161033f919061132d565b60405180910390f35b610362600480360381019061035d9190611656565b610e7e565b005b61036c6110ca565b6040516103799190611381565b60405180910390f35b61039c600480360381019061039791906116b2565b6110e9565b6040516103a99190611381565b60405180910390f35b60606040518060400160405280601281526020017f4578636c75736976654d656d65546f6b656e0000000000000000000000000000815250905090565b600081600160006103fe611170565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16610498611170565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104dd9190611381565b60405180910390a36001905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006012600a6105289190611854565b6201d4c0610536919061189f565b905090565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610587611170565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610603576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105fa90611953565b60405180910390fd5b600061060e85610a70565b9050600081111561065c5780831461065b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610652906119e5565b60405180910390fd5b5b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106ab9190611a05565b9250508190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107019190611a39565b9250508190555082600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610752611170565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461079b9190611a05565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516107ff9190611381565b60405180910390a360019150509392505050565b61081b611170565b73ffffffffffffffffffffffffffffffffffffffff166108396104ef565b73ffffffffffffffffffffffffffffffffffffffff161461088f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088690611adf565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006012905090565b601281565b6108e8611170565b73ffffffffffffffffffffffffffffffffffffffff166109066104ef565b73ffffffffffffffffffffffffffffffffffffffff161461095c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095390611b71565b60405180910390fd5b60005b838390508110156109e857816003600086868581811061098257610981611b91565b5b905060200201602081019061099791906113ef565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806109e090611bc0565b91505061095f565b50505050565b6040518060400160405280601281526020017f4578636c75736976654d656d65546f6b656e000000000000000000000000000081525081565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040518060400160405280600581526020017f45584d454d00000000000000000000000000000000000000000000000000000081525081565b610afa611170565b73ffffffffffffffffffffffffffffffffffffffff16610b186104ef565b73ffffffffffffffffffffffffffffffffffffffff1614610b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6590611adf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b60405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60606040518060400160405280600581526020017f45584d454d000000000000000000000000000000000000000000000000000000815250905090565b60008160026000610c78611170565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ceb90611c7a565b60405180910390fd5b6000610d06610d01611170565b610a70565b90506000811115610d5457808314610d53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4a906119e5565b60405180910390fd5b5b8260026000610d61611170565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610daa9190611a05565b9250508190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e009190611a39565b925050819055508373ffffffffffffffffffffffffffffffffffffffff16610e26611170565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610e6b9190611381565b60405180910390a3600191505092915050565b610e86611170565b73ffffffffffffffffffffffffffffffffffffffff16610ea46104ef565b73ffffffffffffffffffffffffffffffffffffffff1614610efa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef190611b71565b60405180910390fd5b6000811015610f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3590611d0c565b60405180910390fd5b60005b82518110156110c5576000838281518110610f5f57610f5e611b91565b5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcf90611d9e565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f5ee81488a8c866569c02800403bbf9145d931cf759737ed853eedb84dbb5a9e382866040516110a8929190611dbe565b60405180910390a2505080806110bd90611bc0565b915050610f41565b505050565b6012600a6110d89190611854565b6201d4c06110e6919061189f565b81565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600081519050919050565b600082825260208201905092915050565b60005b838110156111b2578082015181840152602081019050611197565b60008484015250505050565b6000601f19601f8301169050919050565b60006111da82611178565b6111e48185611183565b93506111f4818560208601611194565b6111fd816111be565b840191505092915050565b6000602082019050818103600083015261122281846111cf565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006112698261123e565b9050919050565b6112798161125e565b811461128457600080fd5b50565b60008135905061129681611270565b92915050565b6000819050919050565b6112af8161129c565b81146112ba57600080fd5b50565b6000813590506112cc816112a6565b92915050565b600080604083850312156112e9576112e8611234565b5b60006112f785828601611287565b9250506020611308858286016112bd565b9150509250929050565b60008115159050919050565b61132781611312565b82525050565b6000602082019050611342600083018461131e565b92915050565b6113518161125e565b82525050565b600060208201905061136c6000830184611348565b92915050565b61137b8161129c565b82525050565b60006020820190506113966000830184611372565b92915050565b6000806000606084860312156113b5576113b4611234565b5b60006113c386828701611287565b93505060206113d486828701611287565b92505060406113e5868287016112bd565b9150509250925092565b60006020828403121561140557611404611234565b5b600061141384828501611287565b91505092915050565b600060ff82169050919050565b6114328161141c565b82525050565b600060208201905061144d6000830184611429565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261147857611477611453565b5b8235905067ffffffffffffffff81111561149557611494611458565b5b6020830191508360208202830111156114b1576114b061145d565b5b9250929050565b6000806000604084860312156114d1576114d0611234565b5b600084013567ffffffffffffffff8111156114ef576114ee611239565b5b6114fb86828701611462565b9350935050602061150e868287016112bd565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611550826111be565b810181811067ffffffffffffffff8211171561156f5761156e611518565b5b80604052505050565b600061158261122a565b905061158e8282611547565b919050565b600067ffffffffffffffff8211156115ae576115ad611518565b5b602082029050602081019050919050565b60006115d26115cd84611593565b611578565b905080838252602082019050602084028301858111156115f5576115f461145d565b5b835b8181101561161e578061160a8882611287565b8452602084019350506020810190506115f7565b5050509392505050565b600082601f83011261163d5761163c611453565b5b813561164d8482602086016115bf565b91505092915050565b6000806040838503121561166d5761166c611234565b5b600083013567ffffffffffffffff81111561168b5761168a611239565b5b61169785828601611628565b92505060206116a8858286016112bd565b9150509250929050565b600080604083850312156116c9576116c8611234565b5b60006116d785828601611287565b92505060206116e885828601611287565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561177857808604811115611754576117536116f2565b5b60018516156117635780820291505b808102905061177185611721565b9450611738565b94509492505050565b600082611791576001905061184d565b8161179f576000905061184d565b81600181146117b557600281146117bf576117ee565b600191505061184d565b60ff8411156117d1576117d06116f2565b5b8360020a9150848211156117e8576117e76116f2565b5b5061184d565b5060208310610133831016604e8410600b84101617156118235782820a90508381111561181e5761181d6116f2565b5b61184d565b611830848484600161172e565b92509050818404811115611847576118466116f2565b5b81810290505b9392505050565b600061185f8261129c565b915061186a8361141c565b92506118977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611781565b905092915050565b60006118aa8261129c565b91506118b58361129c565b92508282026118c38161129c565b915082820484148315176118da576118d96116f2565b5b5092915050565b7f54543a207472616e7366657220616d6f756e74206578636565647320616c6c6f60008201527f77616e6365000000000000000000000000000000000000000000000000000000602082015250565b600061193d602583611183565b9150611948826118e1565b604082019050919050565b6000602082019050818103600083015261196c81611930565b9050919050565b7f54543a207472616e7366657220616d6f756e7420646f6573206e6f742065717560008201527f616c20746865206578616374207472616e7366657220616d6f756e7400000000602082015250565b60006119cf603c83611183565b91506119da82611973565b604082019050919050565b600060208201905081810360008301526119fe816119c2565b9050919050565b6000611a108261129c565b9150611a1b8361129c565b9250828203905081811115611a3357611a326116f2565b5b92915050565b6000611a448261129c565b9150611a4f8361129c565b9250828201905080821115611a6757611a666116f2565b5b92915050565b7f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960008201527f6f6e000000000000000000000000000000000000000000000000000000000000602082015250565b6000611ac9602283611183565b9150611ad482611a6d565b604082019050919050565b60006020820190508181036000830152611af881611abc565b9050919050565b7f596f75206d757374206265207468652061646d696e20746f20706572666f726d60008201527f207468697320616374696f6e0000000000000000000000000000000000000000602082015250565b6000611b5b602c83611183565b9150611b6682611aff565b604082019050919050565b60006020820190508181036000830152611b8a81611b4e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611bcb8261129c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611bfd57611bfc6116f2565b5b600182019050919050565b7f54543a207472616e7366657220616d6f756e7420657863656564732062616c6160008201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b6000611c64602383611183565b9150611c6f82611c08565b604082019050919050565b60006020820190508181036000830152611c9381611c57565b9050919050565b7f5570646174656420616d6f756e74206d757374206265206e6f6e2d6e6567617460008201527f6976650000000000000000000000000000000000000000000000000000000000602082015250565b6000611cf6602383611183565b9150611d0182611c9a565b604082019050919050565b60006020820190508181036000830152611d2581611ce9565b9050919050565b7f557365722061646472657373206d757374206e6f7420626520746865207a657260008201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b6000611d88602983611183565b9150611d9382611d2c565b604082019050919050565b60006020820190508181036000830152611db781611d7b565b9050919050565b6000604082019050611dd36000830185611372565b611de06020830184611372565b939250505056fea2646970667358221220da85659a7c6d1a89e0647b9ef2be056e1af00791d4cbcd9049cd45f9887f6a2164736f6c63430008110033