Testnet
Contract 0.0.3993048
Overview
Contract ID
0.0.3993048
Associated Account
Auto Renew Account
None
Proxy Account
None
Created at
Apr 8, 2024, 8:35:54 PM UTC
Expired at
Jul 7, 2024, 8:35:54 PM UTC
File ID
0.0.3993017
Obtainer ID
None
Memo
0.0.3993047
Admin Key
None
EVM Address
0000 0000 0000 0000 0000 0000 0000 0000 003c edd8
(0x00000000000000000000000000000000003cedd8)
Byte Code
Payload
{
"admin_key":
NULL
"auto_renew_account":
NULL
"auto_renew_period":
int7776000
"contract_id":
string"0.0.3993048"
"created_timestamp":
string"1712608554.061867003"
"deleted":
boolfalse
"evm_address":
string"0x00000000000000000000000000000000003cedd8"
"expiration_timestamp":
string"1720384554.061867003"
"file_id":
string"0.0.3993017"
"max_automatic_token_associations":
int0
"memo":
string"0.0.3993047"
"nonce":
int3
"obtainer_id":
NULL
"permanent_removal":
NULL
"proxy_account_id":
NULL
"timestamp":{
...
}"bytecode":
string"0x60806040523480156200001157600080fd5b5062000044337f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b6200025460201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c33360405162000075919062000321565b60405180910390a1620000af307f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b6200025460201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c330604051620000e0919062000321565b60405180910390a16200011a337fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec426200025460201b60201c565b6200014c307fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec426200025460201b60201c565b6040516200015a90620002c0565b604051809103906000f08015801562000177573d6000803e3d6000fd5b5060016000600160ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051620001db90620002ce565b604051809103906000f080158015620001f8573d6000803e3d6000fd5b5060016000600260ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200033e565b600160008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b618464806200408983390190565b619c1b806200c4ed83390190565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200030982620002dc565b9050919050565b6200031b81620002fc565b82525050565b600060208201905062000338600083018462000310565b92915050565b613d3b806200034e6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806370480275116100c3578063c48d8e021161007c578063c48d8e0214610382578063c873032b146103b2578063d8fd814f146103ce578063ddedfcf3146103fe578063ec0071051461041a578063f0fbda2d1461044b5761014d565b806370480275146102c257806397b2544f146102de578063a50b33e01461030e578063a8068d181461032a578063ab8c71c014610346578063b6db75a0146103645761014d565b806324758dcb1161011557806324758dcb146101f25780632e2244021461020e57806332ac91a51461023e57806345583b7a1461025a5780635786e9321461027657806366f03d9a146102925761014d565b80630842bf821461015257806311480d591461016e578063118fee951461018a5780631785f53c146101a65780631820b3bf146101c2575b600080fd5b61016c600480360381019061016791906125d8565b61047b565b005b6101886004803603810190610183919061266d565b6106c6565b005b6101a4600480360381019061019f919061266d565b610862565b005b6101c060048036038101906101bb919061269a565b6109fe565b005b6101dc60048036038101906101d7919061278a565b610b20565b6040516101e991906127e2565b60405180910390f35b61020c60048036038101906102079190612858565b610bee565b005b610228600480360381019061022391906128fb565b610f6d565b6040516102359190612b3a565b60405180910390f35b610258600480360381019061025391906128fb565b611037565b005b610274600480360381019061026f9190612b5c565b611260565b005b610290600480360381019061028b919061278a565b61137a565b005b6102ac60048036038101906102a79190612858565b611517565b6040516102b991906127e2565b60405180910390f35b6102dc60048036038101906102d7919061269a565b6115db565b005b6102f860048036038101906102f3919061269a565b6116fd565b60405161030591906127e2565b60405180910390f35b61032860048036038101906103239190612b9c565b61177d565b005b610344600480360381019061033f9190612be9565b6117f0565b005b61034e611992565b60405161035b9190612c54565b60405180910390f35b61036c6119ea565b60405161037991906127e2565b60405180910390f35b61039c6004803603810190610397919061266d565b611a1b565b6040516103a99190612cf7565b60405180910390f35b6103cc60048036038101906103c79190612b9c565b611adc565b005b6103e860048036038101906103e3919061266d565b611bc6565b6040516103f591906127e2565b60405180910390f35b61041860048036038101906104139190612d19565b611c38565b005b610434600480360381019061042f919061278a565b611de1565b604051610442929190612e57565b60405180910390f35b6104656004803603810190610460919061266d565b611ea7565b6040516104729190612cf7565b60405180910390f35b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052f90612ee4565b60405180910390fd5b60005b83518110156105e05761056b84828151811061055a57610559612f04565b5b602002602001015160000151611f68565b73ffffffffffffffffffffffffffffffffffffffff16632459ca666040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156105b257600080fd5b505af19250505080156105c3575060015b6105cc576105cd565b5b80806105d890612f6c565b91505061053b565b5060016000845160ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630842bf8284846040518363ffffffff1660e01b8152600401610656929190612e57565b600060405180830381600087803b15801561067057600080fd5b505af1158015610684573d6000803e3d6000fd5b505050507f14810161b0c93c5c7dfa3bf8a1a5d02c721f4a32b0c9ea33b511e5c0789ac2b283836040516106b9929190612e57565b60405180910390a1505050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077a90612ee4565b60405180910390fd5b600160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166311480d59836040518263ffffffff1660e01b81526004016107f59190612c54565b600060405180830381600087803b15801561080f57600080fd5b505af1158015610823573d6000803e3d6000fd5b505050507fa5010e135493057a9f5399a895ad226a54cf65d6918d7ddc9c406cdac5a75ae8826040516108569190612c54565b60405180910390a15050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661091f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091690612ee4565b60405180910390fd5b600160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663118fee95836040518263ffffffff1660e01b81526004016109919190612c54565b600060405180830381600087803b1580156109ab57600080fd5b505af11580156109bf573d6000803e3d6000fd5b505050507f196ca0e3fd19725314e00d7778ebab832867aa26efc88e069cfd5f80185523df826040516109f29190612c54565b60405180910390a15050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab290612ee4565b60405180910390fd5b610ae5827fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42612008565b7fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f82604051610b149190612fc4565b60405180910390a15050565b600080600090505b8251811015610be357610b54838281518110610b4757610b46612f04565b5b6020026020010151611f68565b73ffffffffffffffffffffffffffffffffffffffff16631a10f76c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc29190612ff4565b610bd0576000915050610be9565b8080610bdb90612f6c565b915050610b28565b50600190505b919050565b60005b82829050811015610e3f57610c3b838383818110610c1257610c11612f04565b5b9050602002810190610c249190613030565b6000016020810190610c36919061269a565b6116fd565b610c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c71906130a4565b60405180910390fd5b60005b838383818110610c9057610c8f612f04565b5b9050602002810190610ca29190613030565b8060400190610cb191906130c4565b9050811015610e2b576000600182610cc99190613127565b90505b848484818110610cdf57610cde612f04565b5b9050602002810190610cf19190613030565b8060400190610d0091906130c4565b9050811015610e1757848484818110610d1c57610d1b612f04565b5b9050602002810190610d2e9190613030565b8060400190610d3d91906130c4565b82818110610d4e57610d4d612f04565b5b9050602002016020810190610d63919061317d565b60070b858585818110610d7957610d78612f04565b5b9050602002810190610d8b9190613030565b8060400190610d9a91906130c4565b84818110610dab57610daa612f04565b5b9050602002016020810190610dc0919061317d565b60070b1415610e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfb906131f6565b60405180910390fd5b8080610e0f90612f6c565b915050610ccc565b508080610e2390612f6c565b915050610c7d565b508080610e3790612f6c565b915050610bf1565b506000600160008484905060ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324758dcb60e01b8484604051602401610eb092919061345b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610f1a91906134bb565b600060405180830381855af49150503d8060008114610f55576040519150601f19603f3d011682016040523d82523d6000602084013e610f5a565b606091505b5050905080610f6857600080fd5b505050565b6060600160008484905060ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e2244028585856040518463ffffffff1660e01b8152600401610fe89392919061356f565b600060405180830381865afa158015611005573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061102e91906137ef565b90509392505050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166110f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110eb90612ee4565b60405180910390fd5b6000600160008585905060ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166332ac91a560e01b8686866040516024016111669392919061356f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516111d091906134bb565b600060405180830381855af49150503d806000811461120b576040519150601f19603f3d011682016040523d82523d6000602084013e611210565b606091505b505090508061121e57600080fd5b7fead06a119bf9374925260679eee8bb050c060c7cff525b986aa7978faa23aeb88585856040516112519392919061356f565b60405180910390a15050505050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490612ee4565b60405180910390fd5b81600160008560ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e90612ee4565b60405180910390fd5b60016000835160ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635786e932836040518263ffffffff1660e01b81526004016114aa91906138be565b600060405180830381600087803b1580156114c457600080fd5b505af11580156114d8573d6000803e3d6000fd5b505050507f5cfc35115fc8e9e720735c4e73900d28a033c3dac8efb748752f64b98bbf8d568260405161150b91906138be565b60405180910390a15050565b6000600160008484905060ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166366f03d9a84846040518363ffffffff1660e01b815260040161159092919061345b565b6020604051808303816000875af11580156115af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d39190612ff4565b905092915050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168f90612ee4565b60405180910390fd5b6116c2827fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec426120ad565b7f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e339826040516116f19190612fc4565b60405180910390a15050565b600061170882611f68565b73ffffffffffffffffffffffffffffffffffffffff16631a10f76c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611752573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117769190612ff4565b9050919050565b3073ffffffffffffffffffffffffffffffffffffffff1663a8068d183384846040518463ffffffff1660e01b81526004016117ba9392919061356f565b600060405180830381600087803b1580156117d457600080fd5b505af11580156117e8573d6000803e3d6000fd5b505050505050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166118ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a490612ee4565b60405180910390fd5b60016000835160ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a8068d1884846040518363ffffffff1660e01b81526004016119229291906138e0565b600060405180830381600087803b15801561193c57600080fd5b505af1158015611950573d6000803e3d6000fd5b505050507fead06a119bf9374925260679eee8bb050c060c7cff525b986aa7978faa23aeb883836040516119859291906138e0565b60405180910390a1505050565b600080600090506119c3337f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b612119565b156119cf576001811790505b6119d76119ea565b156119e3576002811790505b8091505090565b6000611a16337fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42612119565b905090565b6060600160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c48d8e02836040518263ffffffff1660e01b8152600401611a8f9190612c54565b600060405180830381865afa158015611aac573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611ad591906139b6565b9050919050565b600160008383905060ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a8068d183384846040518463ffffffff1660e01b8152600401611b559392919061356f565b600060405180830381600087803b158015611b6f57600080fd5b505af1158015611b83573d6000803e3d6000fd5b505050507fead06a119bf9374925260679eee8bb050c060c7cff525b986aa7978faa23aeb8338383604051611bba9392919061356f565b60405180910390a15050565b60008073ffffffffffffffffffffffffffffffffffffffff16600160008460ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cec90612ee4565b60405180910390fd5b600160008484905060ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ddedfcf38585856040518463ffffffff1660e01b8152600401611d6e939291906139ff565b600060405180830381600087803b158015611d8857600080fd5b505af1158015611d9c573d6000803e3d6000fd5b505050507f811dad75e5e67db969d68b96a86f7b9f7ac4cf22738745f1a5dd0d4d97d7fd26848484604051611dd3939291906139ff565b60405180910390a150505050565b6060600060016000845160ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ec007105846040518263ffffffff1660e01b8152600401611e5891906138be565b600060405180830381865afa158015611e75573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611e9e9190613b18565b91509150915091565b6060600160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0fbda2d836040518263ffffffff1660e01b8152600401611f1b9190612c54565b600060405180830381865afa158015611f38573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611f6191906139b6565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fa75760009050612003565b6000611fb4836008612180565b9050600073ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff161415611ff9578060800151611fff565b80602001515b9150505b919050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561204157600080fd5b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600160008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6121886122e5565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16633c4dd32e60e01b87876040516024016121c1929190613b83565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161222b91906134bb565b6000604051808303816000865af19150503d8060008114612268576040519150601f19603f3d011682016040523d82523d6000602084013e61226d565b606091505b50915091508161227f57601584612294565b808060200190518101906122939190613ca9565b5b8095508194505050601660030b8360030b146122dc576040517f664cb42300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505092915050565b6040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6123a48261235b565b810181811067ffffffffffffffff821117156123c3576123c261236c565b5b80604052505050565b60006123d6612342565b90506123e2828261239b565b919050565b600067ffffffffffffffff8211156124025761240161236c565b5b602082029050602081019050919050565b600080fd5b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061244d82612422565b9050919050565b61245d81612442565b811461246857600080fd5b50565b60008135905061247a81612454565b92915050565b60008160070b9050919050565b61249681612480565b81146124a157600080fd5b50565b6000813590506124b38161248d565b92915050565b6000604082840312156124cf576124ce612418565b5b6124d960406123cc565b905060006124e98482850161246b565b60008301525060206124fd848285016124a4565b60208301525092915050565b600061251c612517846123e7565b6123cc565b9050808382526020820190506040840283018581111561253f5761253e612413565b5b835b81811015612568578061255488826124b9565b845260208401935050604081019050612541565b5050509392505050565b600082601f83011261258757612586612356565b5b8135612597848260208601612509565b91505092915050565b60008115159050919050565b6125b5816125a0565b81146125c057600080fd5b50565b6000813590506125d2816125ac565b92915050565b600080604083850312156125ef576125ee61234c565b5b600083013567ffffffffffffffff81111561260d5761260c612351565b5b61261985828601612572565b925050602061262a858286016125c3565b9150509250929050565b600060ff82169050919050565b61264a81612634565b811461265557600080fd5b50565b60008135905061266781612641565b92915050565b6000602082840312156126835761268261234c565b5b600061269184828501612658565b91505092915050565b6000602082840312156126b0576126af61234c565b5b60006126be8482850161246b565b91505092915050565b600067ffffffffffffffff8211156126e2576126e161236c565b5b602082029050602081019050919050565b6000612706612701846126c7565b6123cc565b9050808382526020820190506020840283018581111561272957612728612413565b5b835b81811015612752578061273e888261246b565b84526020840193505060208101905061272b565b5050509392505050565b600082601f83011261277157612770612356565b5b81356127818482602086016126f3565b91505092915050565b6000602082840312156127a05761279f61234c565b5b600082013567ffffffffffffffff8111156127be576127bd612351565b5b6127ca8482850161275c565b91505092915050565b6127dc816125a0565b82525050565b60006020820190506127f760008301846127d3565b92915050565b600080fd5b60008083601f84011261281857612817612356565b5b8235905067ffffffffffffffff811115612835576128346127fd565b5b60208301915083602082028301111561285157612850612413565b5b9250929050565b6000806020838503121561286f5761286e61234c565b5b600083013567ffffffffffffffff81111561288d5761288c612351565b5b61289985828601612802565b92509250509250929050565b60008083601f8401126128bb576128ba612356565b5b8235905067ffffffffffffffff8111156128d8576128d76127fd565b5b6020830191508360208202830111156128f4576128f3612413565b5b9250929050565b6000806000604084860312156129145761291361234c565b5b60006129228682870161246b565b935050602084013567ffffffffffffffff81111561294357612942612351565b5b61294f868287016128a5565b92509250509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61299081612442565b82525050565b61299f81612480565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60006129dd8383612996565b60208301905092915050565b6000602082019050919050565b6000612a01826129a5565b612a0b81856129b0565b9350612a16836129c1565b8060005b83811015612a47578151612a2e88826129d1565b9750612a39836129e9565b925050600181019050612a1a565b5085935050505092915050565b6000606083016000830151612a6c6000860182612987565b506020830151612a7f6020860182612996565b5060408301518482036040860152612a9782826129f6565b9150508091505092915050565b6000612ab08383612a54565b905092915050565b6000602082019050919050565b6000612ad08261295b565b612ada8185612966565b935083602082028501612aec85612977565b8060005b85811015612b285784840389528151612b098582612aa4565b9450612b1483612ab8565b925060208a01995050600181019050612af0565b50829750879550505050505092915050565b60006020820190508181036000830152612b548184612ac5565b905092915050565b60008060408385031215612b7357612b7261234c565b5b6000612b8185828601612658565b9250506020612b928582860161246b565b9150509250929050565b60008060208385031215612bb357612bb261234c565b5b600083013567ffffffffffffffff811115612bd157612bd0612351565b5b612bdd858286016128a5565b92509250509250929050565b60008060408385031215612c0057612bff61234c565b5b6000612c0e8582860161246b565b925050602083013567ffffffffffffffff811115612c2f57612c2e612351565b5b612c3b8582860161275c565b9150509250929050565b612c4e81612634565b82525050565b6000602082019050612c696000830184612c45565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ca9578082015181840152602081019050612c8e565b83811115612cb8576000848401525b50505050565b6000612cc982612c6f565b612cd38185612c7a565b9350612ce3818560208601612c8b565b612cec8161235b565b840191505092915050565b60006020820190508181036000830152612d118184612cbe565b905092915050565b600080600060408486031215612d3257612d3161234c565b5b6000612d408682870161246b565b935050602084013567ffffffffffffffff811115612d6157612d60612351565b5b612d6d86828701612802565b92509250509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b604082016000820151612dbb6000850182612987565b506020820151612dce6020850182612996565b50505050565b6000612de08383612da5565b60408301905092915050565b6000602082019050919050565b6000612e0482612d79565b612e0e8185612d84565b9350612e1983612d95565b8060005b83811015612e4a578151612e318882612dd4565b9750612e3c83612dec565b925050600181019050612e1d565b5085935050505092915050565b60006040820190508181036000830152612e718185612df9565b9050612e8060208301846127d3565b9392505050565b600082825260208201905092915050565b7f4e4f5f5045524d495353494f4e53000000000000000000000000000000000000600082015250565b6000612ece600e83612e87565b9150612ed982612e98565b602082019050919050565b60006020820190508181036000830152612efd81612ec1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000612f7782612f62565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612faa57612fa9612f33565b5b600182019050919050565b612fbe81612442565b82525050565b6000602082019050612fd96000830184612fb5565b92915050565b600081519050612fee816125ac565b92915050565b60006020828403121561300a5761300961234c565b5b600061301884828501612fdf565b91505092915050565b600080fd5b600080fd5b600080fd5b60008235600160600383360303811261304c5761304b613021565b5b80830191505092915050565b7f504149525f4e4f545f415641494c41424c450000000000000000000000000000600082015250565b600061308e601283612e87565b915061309982613058565b602082019050919050565b600060208201905081810360008301526130bd81613081565b9050919050565b600080833560016020038436030381126130e1576130e0613021565b5b80840192508235915067ffffffffffffffff82111561310357613102613026565b5b60208301925060208202360383131561311f5761311e61302b565b5b509250929050565b600061313282612f62565b915061313d83612f62565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561317257613171612f33565b5b828201905092915050565b6000602082840312156131935761319261234c565b5b60006131a1848285016124a4565b91505092915050565b7f4e4f545f554e495155455f53455249414c530000000000000000000000000000600082015250565b60006131e0601283612e87565b91506131eb826131aa565b602082019050919050565b6000602082019050818103600083015261320f816131d3565b9050919050565b6000819050919050565b600061322f602084018461246b565b905092915050565b600061324660208401846124a4565b905092915050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261327a57613279613258565b5b83810192508235915060208301925067ffffffffffffffff8211156132a2576132a161324e565b5b6020820236038413156132b8576132b7613253565b5b509250929050565b6000819050919050565b6000602082019050919050565b60006132e383856129b0565b93506132ee826132c0565b8060005b85811015613327576133048284613237565b61330e88826129d1565b9750613319836132ca565b9250506001810190506132f2565b5085925050509392505050565b6000606083016133476000840184613220565b6133546000860182612987565b506133626020840184613237565b61336f6020860182612996565b5061337d604084018461325d565b85830360408701526133908382846132d7565b925050508091505092915050565b60006133aa8383613334565b905092915050565b6000823560016060038336030381126133ce576133cd613258565b5b82810191505092915050565b6000602082019050919050565b60006133f38385612966565b93508360208402850161340584613216565b8060005b8781101561344957848403895261342082846133b2565b61342a858261339e565b9450613435836133da565b925060208a01995050600181019050613409565b50829750879450505050509392505050565b600060208201905081810360008301526134768184866133e7565b90509392505050565b600081905092915050565b600061349582612c6f565b61349f818561347f565b93506134af818560208601612c8b565b80840191505092915050565b60006134c7828461348a565b915081905092915050565b600082825260208201905092915050565b6000819050919050565b60006134f98383612987565b60208301905092915050565b6000602082019050919050565b600061351e83856134d2565b9350613529826134e3565b8060005b858110156135625761353f8284613220565b61354988826134ed565b975061355483613505565b92505060018101905061352d565b5085925050509392505050565b60006040820190506135846000830186612fb5565b8181036020830152613597818486613512565b9050949350505050565b600067ffffffffffffffff8211156135bc576135bb61236c565b5b602082029050602081019050919050565b6000815190506135dc81612454565b92915050565b6000815190506135f18161248d565b92915050565b600067ffffffffffffffff8211156136125761361161236c565b5b602082029050602081019050919050565b6000613636613631846135f7565b6123cc565b9050808382526020820190506020840283018581111561365957613658612413565b5b835b81811015613682578061366e88826135e2565b84526020840193505060208101905061365b565b5050509392505050565b600082601f8301126136a1576136a0612356565b5b81516136b1848260208601613623565b91505092915050565b6000606082840312156136d0576136cf612418565b5b6136da60606123cc565b905060006136ea848285016135cd565b60008301525060206136fe848285016135e2565b602083015250604082015167ffffffffffffffff8111156137225761372161241d565b5b61372e8482850161368c565b60408301525092915050565b600061374d613748846135a1565b6123cc565b905080838252602082019050602084028301858111156137705761376f612413565b5b835b818110156137b757805167ffffffffffffffff81111561379557613794612356565b5b8086016137a289826136ba565b85526020850194505050602081019050613772565b5050509392505050565b600082601f8301126137d6576137d5612356565b5b81516137e684826020860161373a565b91505092915050565b6000602082840312156138055761380461234c565b5b600082015167ffffffffffffffff81111561382357613822612351565b5b61382f848285016137c1565b91505092915050565b600081519050919050565b6000819050602082019050919050565b6000602082019050919050565b600061386b82613838565b61387581856134d2565b935061388083613843565b8060005b838110156138b157815161389888826134ed565b97506138a383613853565b925050600181019050613884565b5085935050505092915050565b600060208201905081810360008301526138d88184613860565b905092915050565b60006040820190506138f56000830185612fb5565b81810360208301526139078184613860565b90509392505050565b600080fd5b600067ffffffffffffffff8211156139305761392f61236c565b5b6139398261235b565b9050602081019050919050565b600061395961395484613915565b6123cc565b90508281526020810184848401111561397557613974613910565b5b613980848285612c8b565b509392505050565b600082601f83011261399d5761399c612356565b5b81516139ad848260208601613946565b91505092915050565b6000602082840312156139cc576139cb61234c565b5b600082015167ffffffffffffffff8111156139ea576139e9612351565b5b6139f684828501613988565b91505092915050565b6000604082019050613a146000830186612fb5565b8181036020830152613a278184866133e7565b9050949350505050565b600060408284031215613a4757613a46612418565b5b613a5160406123cc565b90506000613a61848285016135cd565b6000830152506020613a75848285016135e2565b60208301525092915050565b6000613a94613a8f846123e7565b6123cc565b90508083825260208201905060408402830185811115613ab757613ab6612413565b5b835b81811015613ae05780613acc8882613a31565b845260208401935050604081019050613ab9565b5050509392505050565b600082601f830112613aff57613afe612356565b5b8151613b0f848260208601613a81565b91505092915050565b60008060408385031215613b2f57613b2e61234c565b5b600083015167ffffffffffffffff811115613b4d57613b4c612351565b5b613b5985828601613aea565b9250506020613b6a85828601612fdf565b9150509250929050565b613b7d81612f62565b82525050565b6000604082019050613b986000830185612fb5565b613ba56020830184613b74565b9392505050565b60008160030b9050919050565b613bc281613bac565b8114613bcd57600080fd5b50565b600081519050613bdf81613bb9565b92915050565b600060a08284031215613bfb57613bfa612418565b5b613c0560a06123cc565b90506000613c1584828501612fdf565b6000830152506020613c29848285016135cd565b602083015250604082015167ffffffffffffffff811115613c4d57613c4c61241d565b5b613c5984828501613988565b604083015250606082015167ffffffffffffffff811115613c7d57613c7c61241d565b5b613c8984828501613988565b6060830152506080613c9d848285016135cd565b60808301525092915050565b60008060408385031215613cc057613cbf61234c565b5b6000613cce85828601613bd0565b925050602083015167ffffffffffffffff811115613cef57613cee612351565b5b613cfb85828601613be5565b915050925092905056fea2646970667358221220ce0ec385e026178fde265e0461bd6d13026d919075c5668a1465753b88f3761864736f6c634300080b003360806040523480156200001157600080fd5b50604051620000209062000437565b604051809103906000f0801580156200003d573d6000803e3d6000fd5b5062000070337f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b620001e060201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c333604051620000a191906200048a565b60405180910390a1620000db307f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b620001e060201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3306040516200010c91906200048a565b60405180910390a162000146337fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42620001e060201b60201c565b62000178307fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42620001e060201b60201c565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001c96200024c60201b60201c565b620001d9620002bb60201b60201c565b5062000636565b600160008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b620002646389db5a0560e01b6200032a60201b60201c565b806020019051810190620002799190620004f1565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b620002d3632b057dae60e01b6200032a60201b60201c565b806020019051810190620002e8919062000568565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051602401604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051620003db91906200061d565b600060405180830381855af49150503d806000811462000418576040519150601f19603f3d011682016040523d82523d6000602084013e6200041d565b606091505b5091509150816200042d57600080fd5b8092505050919050565b613d48806200471c83390190565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004728262000445565b9050919050565b620004848162000465565b82525050565b6000602082019050620004a1600083018462000479565b92915050565b600080fd5b6000620004b98262000465565b9050919050565b620004cb81620004ac565b8114620004d757600080fd5b50565b600081519050620004eb81620004c0565b92915050565b6000602082840312156200050a5762000509620004a7565b5b60006200051a84828501620004da565b91505092915050565b6000620005308262000465565b9050919050565b620005428162000523565b81146200054e57600080fd5b50565b600081519050620005628162000537565b92915050565b600060208284031215620005815762000580620004a7565b5b6000620005918482850162000551565b91505092915050565b600081519050919050565b600081905092915050565b60005b83811015620005d0578082015181840152602081019050620005b3565b83811115620005e0576000848401525b50505050565b6000620005f3826200059a565b620005ff8185620005a5565b935062000611818560208601620005b0565b80840191505092915050565b60006200062b8284620005e6565b915081905092915050565b6140d680620006466000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806366f03d9a116100ad578063b6db75a011610071578063b6db75a0146102ec578063c48d8e021461030a578063ddedfcf31461033a578063ec00710514610356578063f0fbda2d1461038757610121565b806366f03d9a1461024a578063704802751461027a578063a50b33e014610296578063a8068d18146102b2578063ab8c71c0146102ce57610121565b80631820b3bf116100f45780631820b3bf1461019657806324758dcb146101c65780632e224402146101e257806332ac91a5146102125780635786e9321461022e57610121565b80630842bf821461012657806311480d5914610142578063118fee951461015e5780631785f53c1461017a575b600080fd5b610140600480360381019061013b9190612551565b6103b7565b005b61015c600480360381019061015791906125e6565b61051b565b005b610178600480360381019061017391906125e6565b6105e4565b005b610194600480360381019061018f9190612613565b6106ad565b005b6101b060048036038101906101ab9190612703565b6107cf565b6040516101bd919061275b565b60405180910390f35b6101e060048036038101906101db91906127d1565b61089d565b005b6101fc60048036038101906101f79190612874565b610b80565b6040516102099190612ab3565b60405180910390f35b61022c60048036038101906102279190612874565b610c30565b005b61024860048036038101906102439190612703565b610e09565b005b610264600480360381019061025f91906127d1565b610f6a565b604051610271919061275b565b60405180910390f35b610294600480360381019061028f9190612613565b611131565b005b6102b060048036038101906102ab9190612ad5565b611253565b005b6102cc60048036038101906102c79190612b22565b6112c6565b005b6102d661142a565b6040516102e39190612b8d565b60405180910390f35b6102f4611482565b604051610301919061275b565b60405180910390f35b610324600480360381019061031f91906125e6565b6114b3565b6040516103319190612c30565b60405180910390f35b610354600480360381019061034f9190612c52565b61155d565b005b610370600480360381019061036b9190612703565b6116c6565b60405161037e929190612d90565b60405180910390f35b6103a1600480360381019061039c91906125e6565b611787565b6040516103ae9190612c30565b60405180910390f35b815160018160ff16146103c957600080fd5b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047d90612e1d565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630842bf8285856040518363ffffffff1660e01b81526004016104e3929190612d90565b600060405180830381600087803b1580156104fd57600080fd5b505af1158015610511573d6000803e3d6000fd5b5050505050505050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166105d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cf90612e1d565b60405180910390fd5b6105e0611831565b5050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166106a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069890612e1d565b60405180910390fd5b6106a9611896565b5050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661076a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076190612e1d565b60405180910390fd5b610794827fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec426118fb565b7fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f826040516107c39190612e4c565b60405180910390a15050565b600080600090505b8251811015610892576108038382815181106107f6576107f5612e67565b5b60200260200101516119a0565b73ffffffffffffffffffffffffffffffffffffffff16631a10f76c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108719190612eab565b61087f576000915050610898565b808061088a90612f11565b9150506107d7565b50600190505b919050565b8181905060018160ff16146108b157600080fd5b3073ffffffffffffffffffffffffffffffffffffffff166366f03d9a84846040518363ffffffff1660e01b81526004016108ec92919061319f565b6020604051808303816000875af115801561090b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092f9190612eab565b61096e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109659061320f565b60405180910390fd5b60008383905067ffffffffffffffff81111561098d5761098c6122e5565b5b6040519080825280602002602001820160405280156109bb5781602001602082028036833780820191505090505b50905060005b84849050811015610a63578484828181106109df576109de612e67565b5b90506020028101906109f1919061323e565b6000016020810190610a039190612613565b828281518110610a1657610a15612e67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080610a5b90612f11565b9150506109c1565b5060003073ffffffffffffffffffffffffffffffffffffffff1663ec007105836040518263ffffffff1660e01b8152600401610a9f9190613315565b600060405180830381865afa158015610abc573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610ae59190613448565b9150508015610b0957610b0433868690610aff919061369a565b611a40565b610b79565b3073ffffffffffffffffffffffffffffffffffffffff1663ddedfcf33387876040518463ffffffff1660e01b8152600401610b46939291906136af565b600060405180830381600087803b158015610b6057600080fd5b505af1158015610b74573d6000803e3d6000fd5b505050505b5050505050565b6060600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e2244028585856040518463ffffffff1660e01b8152600401610be193929190613755565b600060405180830381865afa158015610bfe573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610c279190613953565b90509392505050565b8181905060018160ff1614610c4457600080fd5b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610d01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf890612e1d565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff16632e2244028787876040518463ffffffff1660e01b8152600401610d4093929190613755565b600060405180830381865afa158015610d5d573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610d869190613953565b9050610d928682611a40565b3073ffffffffffffffffffffffffffffffffffffffff1663a8068d188787876040518463ffffffff1660e01b8152600401610dcf93929190613755565b600060405180830381600087803b158015610de957600080fd5b505af1158015610dfd573d6000803e3d6000fd5b50505050505050505050565b805160018160ff1614610e1b57600080fd5b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecf90612e1d565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635786e932846040518263ffffffff1660e01b8152600401610f339190613315565b600060405180830381600087803b158015610f4d57600080fd5b505af1158015610f61573d6000803e3d6000fd5b50505050505050565b60008282905060018160ff1614610f8057600080fd5b6000600167ffffffffffffffff811115610f9d57610f9c6122e5565b5b604051908082528060200260200182016040528015610fcb5781602001602082028036833780820191505090505b50905084846000818110610fe257610fe1612e67565b5b9050602002810190610ff4919061323e565b60000160208101906110069190612613565b8160008151811061101a57611019612e67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600061105f826116c6565b50905060008160008151811061107857611077612e67565b5b60200260200101516020015160070b1361109157600080fd5b60006110c1878760008181106110aa576110a9612e67565b5b90506020028101906110bc919061323e565b611cc9565b9050816000815181106110d7576110d6612e67565b5b60200260200101516020015160070b8160070b12158015611125575060008260008151811061110957611108612e67565b5b6020026020010151602001518261112091906139cb565b60070b145b94505050505092915050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166111ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e590612e1d565b60405180910390fd5b611218827fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42611dc2565b7f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e339826040516112479190612e4c565b60405180910390a15050565b3073ffffffffffffffffffffffffffffffffffffffff1663a8068d183384846040518463ffffffff1660e01b815260040161129093929190613755565b600060405180830381600087803b1580156112aa57600080fd5b505af11580156112be573d6000803e3d6000fd5b505050505050565b805160018160ff16146112d857600080fd5b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138c90612e1d565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a8068d1885856040518363ffffffff1660e01b81526004016113f29291906139fc565b600060405180830381600087803b15801561140c57600080fd5b505af1158015611420573d6000803e3d6000fd5b5050505050505050565b6000806000905061145b337f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b611e2e565b15611467576001811790505b61146f611482565b1561147b576002811790505b8091505090565b60006114ae337fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42611e2e565b905090565b6060600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c48d8e02836040518263ffffffff1660e01b81526004016115109190612b8d565b600060405180830381865afa15801561152d573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906115569190613ad2565b9050919050565b8181905060018160ff161461157157600080fd5b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661162e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162590612e1d565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ddedfcf38686866040518463ffffffff1660e01b815260040161168d939291906136af565b600060405180830381600087803b1580156116a757600080fd5b505af11580156116bb573d6000803e3d6000fd5b505050505050505050565b60606000825160018160ff16146116dc57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ec007105856040518263ffffffff1660e01b81526004016117379190613315565b600060405180830381865afa158015611754573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061177d9190613448565b9250925050915091565b6060600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0fbda2d836040518263ffffffff1660e01b81526004016117e49190612b8d565b600060405180830381865afa158015611801573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061182a9190613ad2565b9050919050565b611841632b057dae60e01b611e95565b8060200190518101906118549190613b59565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6118a66389db5a0560e01b611e95565b8060200190518101906118b99190613bc4565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561193457600080fd5b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119df5760009050611a3b565b60006119ec836008611f9d565b9050600073ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff161415611a31578060800151611a37565b80602001515b9150505b919050565b60005b8151811015611c8b576000611a75838381518110611a6457611a63612e67565b5b602002602001015160000151612102565b905060008160030b1415611b5957611aaa838381518110611a9957611a98612e67565b5b6020026020010151600001516119a0565b73ffffffffffffffffffffffffffffffffffffffff1663575a61c8848481518110611ad857611ad7612e67565b5b60200260200101516000015186868681518110611af857611af7612e67565b5b6020026020010151602001516040518463ffffffff1660e01b8152600401611b2293929190613c00565b600060405180830381600087803b158015611b3c57600080fd5b505af1158015611b50573d6000803e3d6000fd5b50505050611c77565b60018160030b1415611c3b57611b8c838381518110611b7b57611b7a612e67565b5b6020026020010151600001516119a0565b73ffffffffffffffffffffffffffffffffffffffff166389b9c45c848481518110611bba57611bb9612e67565b5b60200260200101516000015186868681518110611bda57611bd9612e67565b5b6020026020010151604001516040518463ffffffff1660e01b8152600401611c0493929190613ca6565b600060405180830381600087803b158015611c1e57600080fd5b505af1158015611c32573d6000803e3d6000fd5b50505050611c76565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6d90613d30565b60405180910390fd5b5b508080611c8390612f11565b915050611a43565b507f760b5d447de9a6afab4457b996807616ccd3b048f15f77e82cc55fdb70962f4e8282604051611cbd929190613d50565b60405180910390a15050565b600080611ce7836000016020810190611ce29190612613565b612102565b90506000808260030b1415611d1057836020016020810190611d099190613d80565b9050611db8565b60018260030b1415611d7c57838060400190611d2c9190613dad565b90509050600a8160070b1315611d77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6e90613e5c565b60405180910390fd5b611db7565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dae90613d30565b60405180910390fd5b5b8092505050919050565b600160008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6060600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051602401604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611f449190613eb8565b600060405180830381855af49150503d8060008114611f7f576040519150601f19603f3d011682016040523d82523d6000602084013e611f84565b606091505b509150915081611f9357600080fd5b8092505050919050565b611fa561225e565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16633c4dd32e60e01b8787604051602401611fde929190613ede565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516120489190613eb8565b6000604051808303816000865af19150503d8060008114612085576040519150601f19603f3d011682016040523d82523d6000602084013e61208a565b606091505b50915091508161209c576015846120b1565b808060200190518101906120b09190614004565b5b8095508194505050601660030b8360030b146120f9576040517f664cb42300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505092915050565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff166393272baf60e01b8660405160240161213a9190612e4c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516121a49190613eb8565b6000604051808303816000865af19150503d80600081146121e1576040519150601f19603f3d011682016040523d82523d6000602084013e6121e6565b606091505b5091509150816121f9576015600061220e565b8080602001905181019061220d9190614060565b5b8095508194505050601660030b8360030b14612256576040517fba96339e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050919050565b6040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61231d826122d4565b810181811067ffffffffffffffff8211171561233c5761233b6122e5565b5b80604052505050565b600061234f6122bb565b905061235b8282612314565b919050565b600067ffffffffffffffff82111561237b5761237a6122e5565b5b602082029050602081019050919050565b600080fd5b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123c68261239b565b9050919050565b6123d6816123bb565b81146123e157600080fd5b50565b6000813590506123f3816123cd565b92915050565b60008160070b9050919050565b61240f816123f9565b811461241a57600080fd5b50565b60008135905061242c81612406565b92915050565b60006040828403121561244857612447612391565b5b6124526040612345565b90506000612462848285016123e4565b60008301525060206124768482850161241d565b60208301525092915050565b600061249561249084612360565b612345565b905080838252602082019050604084028301858111156124b8576124b761238c565b5b835b818110156124e157806124cd8882612432565b8452602084019350506040810190506124ba565b5050509392505050565b600082601f830112612500576124ff6122cf565b5b8135612510848260208601612482565b91505092915050565b60008115159050919050565b61252e81612519565b811461253957600080fd5b50565b60008135905061254b81612525565b92915050565b60008060408385031215612568576125676122c5565b5b600083013567ffffffffffffffff811115612586576125856122ca565b5b612592858286016124eb565b92505060206125a38582860161253c565b9150509250929050565b600060ff82169050919050565b6125c3816125ad565b81146125ce57600080fd5b50565b6000813590506125e0816125ba565b92915050565b6000602082840312156125fc576125fb6122c5565b5b600061260a848285016125d1565b91505092915050565b600060208284031215612629576126286122c5565b5b6000612637848285016123e4565b91505092915050565b600067ffffffffffffffff82111561265b5761265a6122e5565b5b602082029050602081019050919050565b600061267f61267a84612640565b612345565b905080838252602082019050602084028301858111156126a2576126a161238c565b5b835b818110156126cb57806126b788826123e4565b8452602084019350506020810190506126a4565b5050509392505050565b600082601f8301126126ea576126e96122cf565b5b81356126fa84826020860161266c565b91505092915050565b600060208284031215612719576127186122c5565b5b600082013567ffffffffffffffff811115612737576127366122ca565b5b612743848285016126d5565b91505092915050565b61275581612519565b82525050565b6000602082019050612770600083018461274c565b92915050565b600080fd5b60008083601f840112612791576127906122cf565b5b8235905067ffffffffffffffff8111156127ae576127ad612776565b5b6020830191508360208202830111156127ca576127c961238c565b5b9250929050565b600080602083850312156127e8576127e76122c5565b5b600083013567ffffffffffffffff811115612806576128056122ca565b5b6128128582860161277b565b92509250509250929050565b60008083601f840112612834576128336122cf565b5b8235905067ffffffffffffffff81111561285157612850612776565b5b60208301915083602082028301111561286d5761286c61238c565b5b9250929050565b60008060006040848603121561288d5761288c6122c5565b5b600061289b868287016123e4565b935050602084013567ffffffffffffffff8111156128bc576128bb6122ca565b5b6128c88682870161281e565b92509250509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612909816123bb565b82525050565b612918816123f9565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000612956838361290f565b60208301905092915050565b6000602082019050919050565b600061297a8261291e565b6129848185612929565b935061298f8361293a565b8060005b838110156129c05781516129a7888261294a565b97506129b283612962565b925050600181019050612993565b5085935050505092915050565b60006060830160008301516129e56000860182612900565b5060208301516129f8602086018261290f565b5060408301518482036040860152612a10828261296f565b9150508091505092915050565b6000612a2983836129cd565b905092915050565b6000602082019050919050565b6000612a49826128d4565b612a5381856128df565b935083602082028501612a65856128f0565b8060005b85811015612aa15784840389528151612a828582612a1d565b9450612a8d83612a31565b925060208a01995050600181019050612a69565b50829750879550505050505092915050565b60006020820190508181036000830152612acd8184612a3e565b905092915050565b60008060208385031215612aec57612aeb6122c5565b5b600083013567ffffffffffffffff811115612b0a57612b096122ca565b5b612b168582860161281e565b92509250509250929050565b60008060408385031215612b3957612b386122c5565b5b6000612b47858286016123e4565b925050602083013567ffffffffffffffff811115612b6857612b676122ca565b5b612b74858286016126d5565b9150509250929050565b612b87816125ad565b82525050565b6000602082019050612ba26000830184612b7e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612be2578082015181840152602081019050612bc7565b83811115612bf1576000848401525b50505050565b6000612c0282612ba8565b612c0c8185612bb3565b9350612c1c818560208601612bc4565b612c25816122d4565b840191505092915050565b60006020820190508181036000830152612c4a8184612bf7565b905092915050565b600080600060408486031215612c6b57612c6a6122c5565b5b6000612c79868287016123e4565b935050602084013567ffffffffffffffff811115612c9a57612c996122ca565b5b612ca68682870161277b565b92509250509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b604082016000820151612cf46000850182612900565b506020820151612d07602085018261290f565b50505050565b6000612d198383612cde565b60408301905092915050565b6000602082019050919050565b6000612d3d82612cb2565b612d478185612cbd565b9350612d5283612cce565b8060005b83811015612d83578151612d6a8882612d0d565b9750612d7583612d25565b925050600181019050612d56565b5085935050505092915050565b60006040820190508181036000830152612daa8185612d32565b9050612db9602083018461274c565b9392505050565b600082825260208201905092915050565b7f4e4f5f5045524d495353494f4e53000000000000000000000000000000000000600082015250565b6000612e07600e83612dc0565b9150612e1282612dd1565b602082019050919050565b60006020820190508181036000830152612e3681612dfa565b9050919050565b612e46816123bb565b82525050565b6000602082019050612e616000830184612e3d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612ea581612525565b92915050565b600060208284031215612ec157612ec06122c5565b5b6000612ecf84828501612e96565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000612f1c82612f07565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612f4f57612f4e612ed8565b5b600182019050919050565b6000819050919050565b6000612f7360208401846123e4565b905092915050565b6000612f8a602084018461241d565b905092915050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112612fbe57612fbd612f9c565b5b83810192508235915060208301925067ffffffffffffffff821115612fe657612fe5612f92565b5b602082023603841315612ffc57612ffb612f97565b5b509250929050565b6000819050919050565b6000602082019050919050565b60006130278385612929565b935061303282613004565b8060005b8581101561306b576130488284612f7b565b613052888261294a565b975061305d8361300e565b925050600181019050613036565b5085925050509392505050565b60006060830161308b6000840184612f64565b6130986000860182612900565b506130a66020840184612f7b565b6130b3602086018261290f565b506130c16040840184612fa1565b85830360408701526130d483828461301b565b925050508091505092915050565b60006130ee8383613078565b905092915050565b60008235600160600383360303811261311257613111612f9c565b5b82810191505092915050565b6000602082019050919050565b600061313783856128df565b93508360208402850161314984612f5a565b8060005b8781101561318d57848403895261316482846130f6565b61316e85826130e2565b94506131798361311e565b925060208a0199505060018101905061314d565b50829750879450505050509392505050565b600060208201905081810360008301526131ba81848661312b565b90509392505050565b7f5245544952455f434845434b0000000000000000000000000000000000000000600082015250565b60006131f9600c83612dc0565b9150613204826131c3565b602082019050919050565b60006020820190508181036000830152613228816131ec565b9050919050565b600080fd5b600080fd5b600080fd5b60008235600160600383360303811261325a5761325961322f565b5b80830191505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600061329e8383612900565b60208301905092915050565b6000602082019050919050565b60006132c282613266565b6132cc8185613271565b93506132d783613282565b8060005b838110156133085781516132ef8882613292565b97506132fa836132aa565b9250506001810190506132db565b5085935050505092915050565b6000602082019050818103600083015261332f81846132b7565b905092915050565b600081519050613346816123cd565b92915050565b60008151905061335b81612406565b92915050565b60006040828403121561337757613376612391565b5b6133816040612345565b9050600061339184828501613337565b60008301525060206133a58482850161334c565b60208301525092915050565b60006133c46133bf84612360565b612345565b905080838252602082019050604084028301858111156133e7576133e661238c565b5b835b8181101561341057806133fc8882613361565b8452602084019350506040810190506133e9565b5050509392505050565b600082601f83011261342f5761342e6122cf565b5b815161343f8482602086016133b1565b91505092915050565b6000806040838503121561345f5761345e6122c5565b5b600083015167ffffffffffffffff81111561347d5761347c6122ca565b5b6134898582860161341a565b925050602061349a85828601612e96565b9150509250929050565b600067ffffffffffffffff8211156134bf576134be6122e5565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156134eb576134ea6122e5565b5b602082029050602081019050919050565b600061350f61350a846134d0565b612345565b905080838252602082019050602084028301858111156135325761353161238c565b5b835b8181101561355b5780613547888261241d565b845260208401935050602081019050613534565b5050509392505050565b600082601f83011261357a576135796122cf565b5b813561358a8482602086016134fc565b91505092915050565b6000606082840312156135a9576135a8612391565b5b6135b36060612345565b905060006135c3848285016123e4565b60008301525060206135d78482850161241d565b602083015250604082013567ffffffffffffffff8111156135fb576135fa612396565b5b61360784828501613565565b60408301525092915050565b6000613626613621846134a4565b612345565b905080838252602082019050602084028301858111156136495761364861238c565b5b835b8181101561369057803567ffffffffffffffff81111561366e5761366d6122cf565b5b80860161367b8982613593565b8552602085019450505060208101905061364b565b5050509392505050565b60006136a7368484613613565b905092915050565b60006040820190506136c46000830186612e3d565b81810360208301526136d781848661312b565b9050949350505050565b6000819050919050565b6000602082019050919050565b60006137048385613271565b935061370f826136e1565b8060005b85811015613748576137258284612f64565b61372f8882613292565b975061373a836136eb565b925050600181019050613713565b5085925050509392505050565b600060408201905061376a6000830186612e3d565b818103602083015261377d8184866136f8565b9050949350505050565b600061379a613795846134d0565b612345565b905080838252602082019050602084028301858111156137bd576137bc61238c565b5b835b818110156137e657806137d2888261334c565b8452602084019350506020810190506137bf565b5050509392505050565b600082601f830112613805576138046122cf565b5b8151613815848260208601613787565b91505092915050565b60006060828403121561383457613833612391565b5b61383e6060612345565b9050600061384e84828501613337565b60008301525060206138628482850161334c565b602083015250604082015167ffffffffffffffff81111561388657613885612396565b5b613892848285016137f0565b60408301525092915050565b60006138b16138ac846134a4565b612345565b905080838252602082019050602084028301858111156138d4576138d361238c565b5b835b8181101561391b57805167ffffffffffffffff8111156138f9576138f86122cf565b5b808601613906898261381e565b855260208501945050506020810190506138d6565b5050509392505050565b600082601f83011261393a576139396122cf565b5b815161394a84826020860161389e565b91505092915050565b600060208284031215613969576139686122c5565b5b600082015167ffffffffffffffff811115613987576139866122ca565b5b61399384828501613925565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006139d6826123f9565b91506139e1836123f9565b9250826139f1576139f061399c565b5b828207905092915050565b6000604082019050613a116000830185612e3d565b8181036020830152613a2381846132b7565b90509392505050565b600080fd5b600067ffffffffffffffff821115613a4c57613a4b6122e5565b5b613a55826122d4565b9050602081019050919050565b6000613a75613a7084613a31565b612345565b905082815260208101848484011115613a9157613a90613a2c565b5b613a9c848285612bc4565b509392505050565b600082601f830112613ab957613ab86122cf565b5b8151613ac9848260208601613a62565b91505092915050565b600060208284031215613ae857613ae76122c5565b5b600082015167ffffffffffffffff811115613b0657613b056122ca565b5b613b1284828501613aa4565b91505092915050565b6000613b26826123bb565b9050919050565b613b3681613b1b565b8114613b4157600080fd5b50565b600081519050613b5381613b2d565b92915050565b600060208284031215613b6f57613b6e6122c5565b5b6000613b7d84828501613b44565b91505092915050565b6000613b91826123bb565b9050919050565b613ba181613b86565b8114613bac57600080fd5b50565b600081519050613bbe81613b98565b92915050565b600060208284031215613bda57613bd96122c5565b5b6000613be884828501613baf565b91505092915050565b613bfa816123f9565b82525050565b6000606082019050613c156000830186612e3d565b613c226020830185612e3d565b613c2f6040830184613bf1565b949350505050565b600082825260208201905092915050565b6000613c538261291e565b613c5d8185613c37565b9350613c688361293a565b8060005b83811015613c99578151613c80888261294a565b9750613c8b83612962565b925050600181019050613c6c565b5085935050505092915050565b6000606082019050613cbb6000830186612e3d565b613cc86020830185612e3d565b8181036040830152613cda8184613c48565b9050949350505050565b7f554e535550504f525445445f544f4b454e5f5459504500000000000000000000600082015250565b6000613d1a601683612dc0565b9150613d2582613ce4565b602082019050919050565b60006020820190508181036000830152613d4981613d0d565b9050919050565b6000604082019050613d656000830185612e3d565b8181036020830152613d778184612a3e565b90509392505050565b600060208284031215613d9657613d956122c5565b5b6000613da48482850161241d565b91505092915050565b60008083356001602003843603038112613dca57613dc961322f565b5b80840192508235915067ffffffffffffffff821115613dec57613deb613234565b5b602083019250602082023603831315613e0857613e07613239565b5b509250929050565b7f4e4654535f4c494d495400000000000000000000000000000000000000000000600082015250565b6000613e46600a83612dc0565b9150613e5182613e10565b602082019050919050565b60006020820190508181036000830152613e7581613e39565b9050919050565b600081905092915050565b6000613e9282612ba8565b613e9c8185613e7c565b9350613eac818560208601612bc4565b80840191505092915050565b6000613ec48284613e87565b915081905092915050565b613ed881612f07565b82525050565b6000604082019050613ef36000830185612e3d565b613f006020830184613ecf565b9392505050565b60008160030b9050919050565b613f1d81613f07565b8114613f2857600080fd5b50565b600081519050613f3a81613f14565b92915050565b600060a08284031215613f5657613f55612391565b5b613f6060a0612345565b90506000613f7084828501612e96565b6000830152506020613f8484828501613337565b602083015250604082015167ffffffffffffffff811115613fa857613fa7612396565b5b613fb484828501613aa4565b604083015250606082015167ffffffffffffffff811115613fd857613fd7612396565b5b613fe484828501613aa4565b6060830152506080613ff884828501613337565b60808301525092915050565b6000806040838503121561401b5761401a6122c5565b5b600061402985828601613f2b565b925050602083015167ffffffffffffffff81111561404a576140496122ca565b5b61405685828601613f40565b9150509250929050565b60008060408385031215614077576140766122c5565b5b600061408585828601613f2b565b925050602061409685828601613f2b565b915050925092905056fea2646970667358221220f4349a86a5abece3c9c2391fc3d7adb37a8acd3c40835eaca0fdf2d7db89c58b64736f6c634300080b0033608060405234801561001057600080fd5b50613d28806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632b057dae1461003b57806389db5a0514610059575b600080fd5b610043610077565b6040516100509190610170565b60405180910390f35b6100616100a7565b60405161006e91906101ac565b60405180910390f35b6000604051610085906100d7565b604051809103906000f0801580156100a1573d6000803e3d6000fd5b50905090565b60006040516100b5906100e4565b604051809103906000f0801580156100d1573d6000803e3d6000fd5b50905090565b611f8a806101c883390190565b611ba18061215283390190565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061013661013161012c846100f1565b610111565b6100f1565b9050919050565b60006101488261011b565b9050919050565b600061015a8261013d565b9050919050565b61016a8161014f565b82525050565b60006020820190506101856000830184610161565b92915050565b60006101968261013d565b9050919050565b6101a68161018b565b82525050565b60006020820190506101c1600083018461019d565b9291505056fe60806040523480156200001157600080fd5b5062000044337f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b620000ee60201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3336040516200007591906200019f565b60405180910390a1620000af307f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b620000ee60201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c330604051620000e091906200019f565b60405180910390a1620001bc565b600160008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000187826200015a565b9050919050565b62000199816200017a565b82525050565b6000602082019050620001b660008301846200018e565b92915050565b611dbe80620001cc6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80632e22440214610051578063a8068d1814610081578063ddedfcf31461009d578063f0fbda2d146100b9575b600080fd5b61006b600480360381019061006691906110e3565b6100e9565b604051610078919061132f565b60405180910390f35b61009b600480360381019061009691906114a0565b610331565b005b6100b760048036038101906100b29190611552565b610979565b005b6100d360048036038101906100ce91906115eb565b610e44565b6040516100e091906116a0565b60405180910390f35b60606000849050600084846000818110610106576101056116c2565b5b905060200201602081019061011b91906116f1565b90506000600180600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546101a99190611757565b815481106101ba576101b96116c2565b5b906000526020600020906003020190506000600167ffffffffffffffff8111156101e7576101e6611362565b5b60405190808252806020026020018201604052801561022057816020015b61020d610e6e565b8152602001906001900390816102055790505b50905060405180606001604052808360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018360010160149054906101000a900460070b60070b8152602001836002018054806020026020016040519081016040528092919081815260200182805480156102fc57602002820191906000526020600020906000905b82829054906101000a900460070b60070b815260200190600801906020826007010492830192600103820291508084116102c55790505b505050505081525081600081518110610318576103176116c2565b5b6020026020010181905250809450505050509392505050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166103ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e5906117e8565b60405180910390fd5b6000839050600083600081518110610409576104086116c2565b5b602002602001015190506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116104d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c990611854565b60405180910390fd5b600060018080805490506104e69190611757565b815481106104f7576104f66116c2565b5b90600052602060002090600302019050600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600180808054905061065e9190611757565b8154811061066f5761066e6116c2565b5b9060005260206000209060030201600180600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107079190611757565b81548110610718576107176116c2565b5b90600052602060002090600302016000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001820160149054906101000a900460070b8160010160146101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff1602179055506002820181600201908054610849929190610ea8565b50905050600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000905560018054806108df576108de611874565b5b6001900381819060005260206000209060030201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160146101000a81549067ffffffffffffffff021916905560028201600061096d9190610f08565b50509055505050505050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2d906117e8565b60405180910390fd5b6000849050600084846000818110610a5157610a506116c2565b5b9050602002810190610a6391906118b2565b6000016020810190610a7591906116f1565b9050600085856000818110610a8d57610a8c6116c2565b5b9050602002810190610a9f91906118b2565b6020016020810190610ab19190611906565b9050600086866000818110610ac957610ac86116c2565b5b9050602002810190610adb91906118b2565b8060400190610aea9190611933565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505090506000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115610c5a576000600167ffffffffffffffff811115610bce57610bcd611362565b5b604051908082528060200260200182016040528015610bfc5781602001602082028036833780820191505090505b5090508381600081518110610c1457610c136116c2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610c588582610331565b505b600160405180608001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018460070b815260200183815250908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff1602179055506060820151816002019080519060200190610db1929190610f30565b505050600180549050600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050505050565b60606001604051602001610e589190611d66565b6040516020818303038152906040529050919050565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600060070b8152602001606081525090565b82805482825590600052602060002090600301600490048101928215610ef7576000526020600020916003016004900482015b82811115610ef6578254825591600101919060010190610edb565b5b509050610f049190610fef565b5090565b508054600082556003016004900490600052602060002090810190610f2d9190610fef565b50565b82805482825590600052602060002090600301600490048101928215610fde5791602002820160005b83821115610fa857835183826101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff1602179055509260200192600801602081600701049283019260010302610f59565b8015610fdc5782816101000a81549067ffffffffffffffff0219169055600801602081600701049283019260010302610fa8565b505b509050610feb9190610fef565b5090565b5b80821115611008576000816000905550600101610ff0565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061104b82611020565b9050919050565b61105b81611040565b811461106657600080fd5b50565b60008135905061107881611052565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126110a3576110a261107e565b5b8235905067ffffffffffffffff8111156110c0576110bf611083565b5b6020830191508360208202830111156110dc576110db611088565b5b9250929050565b6000806000604084860312156110fc576110fb611016565b5b600061110a86828701611069565b935050602084013567ffffffffffffffff81111561112b5761112a61101b565b5b6111378682870161108d565b92509250509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61117881611040565b82525050565b60008160070b9050919050565b6111948161117e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60006111d2838361118b565b60208301905092915050565b6000602082019050919050565b60006111f68261119a565b61120081856111a5565b935061120b836111b6565b8060005b8381101561123c57815161122388826111c6565b975061122e836111de565b92505060018101905061120f565b5085935050505092915050565b6000606083016000830151611261600086018261116f565b506020830151611274602086018261118b565b506040830151848203604086015261128c82826111eb565b9150508091505092915050565b60006112a58383611249565b905092915050565b6000602082019050919050565b60006112c582611143565b6112cf818561114e565b9350836020820285016112e18561115f565b8060005b8581101561131d57848403895281516112fe8582611299565b9450611309836112ad565b925060208a019950506001810190506112e5565b50829750879550505050505092915050565b6000602082019050818103600083015261134981846112ba565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61139a82611351565b810181811067ffffffffffffffff821117156113b9576113b8611362565b5b80604052505050565b60006113cc61100c565b90506113d88282611391565b919050565b600067ffffffffffffffff8211156113f8576113f7611362565b5b602082029050602081019050919050565b600061141c611417846113dd565b6113c2565b9050808382526020820190506020840283018581111561143f5761143e611088565b5b835b8181101561146857806114548882611069565b845260208401935050602081019050611441565b5050509392505050565b600082601f8301126114875761148661107e565b5b8135611497848260208601611409565b91505092915050565b600080604083850312156114b7576114b6611016565b5b60006114c585828601611069565b925050602083013567ffffffffffffffff8111156114e6576114e561101b565b5b6114f285828601611472565b9150509250929050565b60008083601f8401126115125761151161107e565b5b8235905067ffffffffffffffff81111561152f5761152e611083565b5b60208301915083602082028301111561154b5761154a611088565b5b9250929050565b60008060006040848603121561156b5761156a611016565b5b600061157986828701611069565b935050602084013567ffffffffffffffff81111561159a5761159961101b565b5b6115a6868287016114fc565b92509250509250925092565b600060ff82169050919050565b6115c8816115b2565b81146115d357600080fd5b50565b6000813590506115e5816115bf565b92915050565b60006020828403121561160157611600611016565b5b600061160f848285016115d6565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611652578082015181840152602081019050611637565b83811115611661576000848401525b50505050565b600061167282611618565b61167c8185611623565b935061168c818560208601611634565b61169581611351565b840191505092915050565b600060208201905081810360008301526116ba8184611667565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561170757611706611016565b5b600061171584828501611069565b91505092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006117628261171e565b915061176d8361171e565b9250828210156117805761177f611728565b5b828203905092915050565b600082825260208201905092915050565b7f4e4f5f5045524d495353494f4e53000000000000000000000000000000000000600082015250565b60006117d2600e8361178b565b91506117dd8261179c565b602082019050919050565b60006020820190508181036000830152611801816117c5565b9050919050565b7f4e4f5f5245515545535400000000000000000000000000000000000000000000600082015250565b600061183e600a8361178b565b915061184982611808565b602082019050919050565b6000602082019050818103600083015261186d81611831565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600080fd5b600080fd5b600080fd5b6000823560016060038336030381126118ce576118cd6118a3565b5b80830191505092915050565b6118e38161117e565b81146118ee57600080fd5b50565b600081359050611900816118da565b92915050565b60006020828403121561191c5761191b611016565b5b600061192a848285016118f1565b91505092915050565b600080833560016020038436030381126119505761194f6118a3565b5b80840192508235915067ffffffffffffffff821115611972576119716118a8565b5b60208301925060208202360383131561198e5761198d6118ad565b5b509250929050565b600081549050919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b60008160001c9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611a07611a02836119c7565b6119d4565b9050919050565b60008160a01c9050919050565b60008160070b9050919050565b6000611a3b611a3683611a0e565b611a1b565b9050919050565b600081549050919050565b60008190508160005260206000209050919050565b6000611a75611a70836119c7565b611a1b565b9050919050565b60008160401c9050919050565b6000611a9c611a9783611a7c565b611a1b565b9050919050565b60008160801c9050919050565b6000611ac3611abe83611aa3565b611a1b565b9050919050565b60008160c01c9050919050565b6000611aea611ae583611aca565b611a1b565b9050919050565b6000611afc82611a42565b611b0681856111a5565b935083611b1284611a4d565b6000600115611b9f575b83600160040382011015611b9e578154611b3e88611b3983611a62565b61118b565b602088019750611b5688611b5183611a89565b61118b565b602088019750611b6e88611b6983611ab0565b61118b565b602088019750611b8688611b8183611ad7565b61118b565b60208801975060018301925050600481019050611b1c565b5b600115611c4657815484821015611bcf57611bc288611bbd83611a62565b61118b565b6020880197506001820191505b84821015611bf657611be988611be483611a89565b61118b565b6020880197506001820191505b84821015611c1d57611c1088611c0b83611ab0565b61118b565b6020880197506001820191505b84821015611c4457611c3788611c3283611ad7565b61118b565b6020880197506001820191505b505b8694505050505092915050565b6000608083016000808401549050611c6a816119f4565b611c77600087018261116f565b5060018401549050611c88816119f4565b611c95602087018261116f565b50611c9f81611a28565b611cac604087018261118b565b50600284018583036060870152611cc38382611af1565b925050819250505092915050565b6000611cdd8383611c53565b905092915050565b6000600382019050919050565b6000611cfd82611996565b611d0781856119a1565b935083602082028501611d19856119b2565b8060005b85811015611d5457848403895281611d358582611cd1565b9450611d4083611ce5565b925060208a01995050600181019050611d1d565b50829750879550505050505092915050565b60006020820190508181036000830152611d808184611cf2565b90509291505056fea2646970667358221220905f6defba5171e9c932e2b8f48ea81b6e7b88e733a5bfb62401142fb5d5876c64736f6c634300080b003360806040523480156200001157600080fd5b5062000044337f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b620000ee60201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3336040516200007591906200019f565b60405180910390a1620000af307f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b620000ee60201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c330604051620000e091906200019f565b60405180910390a1620001bc565b600160008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000187826200015a565b9050919050565b62000199816200017a565b82525050565b6000602082019050620001b660008301846200018e565b92915050565b6119d580620001cc6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630842bf82146100515780635786e9321461006d578063c48d8e0214610089578063ec007105146100b9575b600080fd5b61006b60048036038101906100669190611037565b6100ea565b005b61008760048036038101906100829190611156565b610431565b005b6100a3600480360381019061009e91906111d8565b610899565b6040516100b0919061128d565b60405180910390f35b6100d360048036038101906100ce9190611156565b6108c3565b6040516100e19291906113ba565b60405180910390f35b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166101a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019e90611447565b60405180910390fd5b6101b18383610a4c565b6000836000815181106101c7576101c6611467565b5b60200260200101516000015190506000846000815181106101eb576101ea611467565b5b60200260200101516020015190506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156102e9576000600167ffffffffffffffff81111561025e5761025d610dd0565b5b60405190808252806020026020018201604052801561028c5781602001602082028036833780820191505090505b50905082816000815181106102a4576102a3611467565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506102e781610431565b505b600160405180606001604052808473ffffffffffffffffffffffffffffffffffffffff1681526020018360070b81526020018615158152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff160217905550604082015181600001601c6101000a81548160ff0219169083151502179055505050600180549050600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166104ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e590611447565b60405180910390fd5b60008260008151811061050457610503611467565b5b602002602001015190506000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610590576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610587906114e2565b60405180910390fd5b600060018080805490506105a4919061153b565b815481106105b5576105b4611467565b5b906000526020600020019050600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600180808054905061067a919061153b565b8154811061068b5761068a611467565b5b90600052602060002001600180600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106e2919061153b565b815481106106f3576106f2611467565b5b906000526020600020016000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000820160149054906101000a900460070b8160000160146101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff16021790555060008201601c9054906101000a900460ff1681600001601c6101000a81548160ff021916908315150217905550905050600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000905560018054806108285761082761156f565b5b60019003818190600052602060002001600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a81549067ffffffffffffffff021916905560008201601c6101000a81549060ff02191690555050905550505050565b606060016040516020016108ad9190611766565b6040516020818303038152906040529050919050565b6060600080836000815181106108dc576108db611467565b5b602002602001015190506000600180600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610935919061153b565b8154811061094657610945611467565b5b9060005260206000200190506000600167ffffffffffffffff81111561096f5761096e610dd0565b5b6040519080825280602002602001820160405280156109a857816020015b610995610d73565b81526020019060019003908161098d5790505b50905060405180604001604052808360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018360000160149054906101000a900460070b60070b81525081600081518110610a2257610a21611467565b5b60200260200101819052508082600001601c9054906101000a900460ff1694509450505050915091565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0090611447565b60405180910390fd5b60005b8351811015610c11576000610b3e858381518110610b2d57610b2c611467565b5b602002602001015160000151610c17565b905060018160030b1415610bb657600a858381518110610b6157610b60611467565b5b60200260200101516020015160070b1315610bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba8906117d4565b60405180910390fd5b610bfd565b60008160030b14610bfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf390611840565b60405180910390fd5b5b508080610c0990611860565b915050610b0c565b50505050565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff166393272baf60e01b86604051602401610c4f91906118b8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610cb9919061190f565b6000604051808303816000865af19150503d8060008114610cf6576040519150601f19603f3d011682016040523d82523d6000602084013e610cfb565b606091505b509150915081610d0e5760156000610d23565b80806020019051810190610d22919061195f565b5b8095508194505050601660030b8360030b14610d6b576040517fba96339e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050919050565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600060070b81525090565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610e0882610dbf565b810181811067ffffffffffffffff82111715610e2757610e26610dd0565b5b80604052505050565b6000610e3a610da6565b9050610e468282610dff565b919050565b600067ffffffffffffffff821115610e6657610e65610dd0565b5b602082029050602081019050919050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610eac82610e81565b9050919050565b610ebc81610ea1565b8114610ec757600080fd5b50565b600081359050610ed981610eb3565b92915050565b60008160070b9050919050565b610ef581610edf565b8114610f0057600080fd5b50565b600081359050610f1281610eec565b92915050565b600060408284031215610f2e57610f2d610e7c565b5b610f386040610e30565b90506000610f4884828501610eca565b6000830152506020610f5c84828501610f03565b60208301525092915050565b6000610f7b610f7684610e4b565b610e30565b90508083825260208201905060408402830185811115610f9e57610f9d610e77565b5b835b81811015610fc75780610fb38882610f18565b845260208401935050604081019050610fa0565b5050509392505050565b600082601f830112610fe657610fe5610dba565b5b8135610ff6848260208601610f68565b91505092915050565b60008115159050919050565b61101481610fff565b811461101f57600080fd5b50565b6000813590506110318161100b565b92915050565b6000806040838503121561104e5761104d610db0565b5b600083013567ffffffffffffffff81111561106c5761106b610db5565b5b61107885828601610fd1565b925050602061108985828601611022565b9150509250929050565b600067ffffffffffffffff8211156110ae576110ad610dd0565b5b602082029050602081019050919050565b60006110d26110cd84611093565b610e30565b905080838252602082019050602084028301858111156110f5576110f4610e77565b5b835b8181101561111e578061110a8882610eca565b8452602084019350506020810190506110f7565b5050509392505050565b600082601f83011261113d5761113c610dba565b5b813561114d8482602086016110bf565b91505092915050565b60006020828403121561116c5761116b610db0565b5b600082013567ffffffffffffffff81111561118a57611189610db5565b5b61119684828501611128565b91505092915050565b600060ff82169050919050565b6111b58161119f565b81146111c057600080fd5b50565b6000813590506111d2816111ac565b92915050565b6000602082840312156111ee576111ed610db0565b5b60006111fc848285016111c3565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561123f578082015181840152602081019050611224565b8381111561124e576000848401525b50505050565b600061125f82611205565b6112698185611210565b9350611279818560208601611221565b61128281610dbf565b840191505092915050565b600060208201905081810360008301526112a78184611254565b905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6112e481610ea1565b82525050565b6112f381610edf565b82525050565b60408201600082015161130f60008501826112db565b50602082015161132260208501826112ea565b50505050565b600061133483836112f9565b60408301905092915050565b6000602082019050919050565b6000611358826112af565b61136281856112ba565b935061136d836112cb565b8060005b8381101561139e5781516113858882611328565b975061139083611340565b925050600181019050611371565b5085935050505092915050565b6113b481610fff565b82525050565b600060408201905081810360008301526113d4818561134d565b90506113e360208301846113ab565b9392505050565b600082825260208201905092915050565b7f4e4f5f5045524d495353494f4e53000000000000000000000000000000000000600082015250565b6000611431600e836113ea565b915061143c826113fb565b602082019050919050565b6000602082019050818103600083015261146081611424565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e4f5f504f4f4c00000000000000000000000000000000000000000000000000600082015250565b60006114cc6007836113ea565b91506114d782611496565b602082019050919050565b600060208201905081810360008301526114fb816114bf565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061154682611502565b915061155183611502565b9250828210156115645761156361150c565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600081549050919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b60008160001c9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061160f61160a836115cf565b6115dc565b9050919050565b60008160a01c9050919050565b60008160070b9050919050565b600061164361163e83611616565b611623565b9050919050565b60008160e01c9050919050565b600060ff82169050919050565b60006116776116728361164a565b611657565b9050919050565b61168781610fff565b82525050565b6060820160008083015490506116a2816115fc565b6116af60008601826112db565b506116b981611630565b6116c660208601826112ea565b506116d081611664565b6116dd604086018261167e565b5050505050565b60006116f0838361168d565b60608301905092915050565b6000600182019050919050565b60006117148261159e565b61171e81856115a9565b9350611729836115ba565b8060005b83811015611759578161174088826116e4565b975061174b836116fc565b92505060018101905061172d565b5085935050505092915050565b600060208201905081810360008301526117808184611709565b905092915050565b7f4e4654535f4c494d495400000000000000000000000000000000000000000000600082015250565b60006117be600a836113ea565b91506117c982611788565b602082019050919050565b600060208201905081810360008301526117ed816117b1565b9050919050565b7f554e535550504f525445445f544f4b454e5f5459504500000000000000000000600082015250565b600061182a6016836113ea565b9150611835826117f4565b602082019050919050565b600060208201905081810360008301526118598161181d565b9050919050565b600061186b82611502565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561189e5761189d61150c565b5b600182019050919050565b6118b281610ea1565b82525050565b60006020820190506118cd60008301846118a9565b92915050565b600081905092915050565b60006118e982611205565b6118f381856118d3565b9350611903818560208601611221565b80840191505092915050565b600061191b82846118de565b915081905092915050565b60008160030b9050919050565b61193c81611926565b811461194757600080fd5b50565b60008151905061195981611933565b92915050565b6000806040838503121561197657611975610db0565b5b60006119848582860161194a565b92505060206119958582860161194a565b915050925092905056fea2646970667358221220731c392c5a105dad9f78eefc781225f4d4111e88fd89a967626e9be1d0374c8d64736f6c634300080b0033a2646970667358221220f3ec4b2f7b27948beb2b413670fe1fc223544256cce3e71c0119fec03285abb664736f6c634300080b003360806040523480156200001157600080fd5b50604051620000209062000437565b604051809103906000f0801580156200003d573d6000803e3d6000fd5b5062000070337f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b620001e060201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c333604051620000a191906200048a565b60405180910390a1620000db307f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b620001e060201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3306040516200010c91906200048a565b60405180910390a162000146337fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42620001e060201b60201c565b62000178307fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42620001e060201b60201c565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001c96200024c60201b60201c565b620001d9620002bb60201b60201c565b5062000636565b600160008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b620002646389db5a0560e01b6200032a60201b60201c565b806020019051810190620002799190620004f1565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b620002d3632b057dae60e01b6200032a60201b60201c565b806020019051810190620002e8919062000568565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051602401604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051620003db91906200061d565b600060405180830381855af49150503d806000811462000418576040519150601f19603f3d011682016040523d82523d6000602084013e6200041d565b606091505b5091509150816200042d57600080fd5b8092505050919050565b6152f4806200492783390190565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004728262000445565b9050919050565b620004848162000465565b82525050565b6000602082019050620004a1600083018462000479565b92915050565b600080fd5b6000620004b98262000465565b9050919050565b620004cb81620004ac565b8114620004d757600080fd5b50565b600081519050620004eb81620004c0565b92915050565b6000602082840312156200050a5762000509620004a7565b5b60006200051a84828501620004da565b91505092915050565b6000620005308262000465565b9050919050565b620005428162000523565b81146200054e57600080fd5b50565b600081519050620005628162000537565b92915050565b600060208284031215620005815762000580620004a7565b5b6000620005918482850162000551565b91505092915050565b600081519050919050565b600081905092915050565b60005b83811015620005d0578082015181840152602081019050620005b3565b83811115620005e0576000848401525b50505050565b6000620005f3826200059a565b620005ff8185620005a5565b935062000611818560208601620005b0565b80840191505092915050565b60006200062b8284620005e6565b915081905092915050565b6142e180620006466000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806366f03d9a116100ad578063b6db75a011610071578063b6db75a0146102ec578063c48d8e021461030a578063ddedfcf31461033a578063ec00710514610356578063f0fbda2d1461038757610121565b806366f03d9a1461024a578063704802751461027a578063a50b33e014610296578063a8068d18146102b2578063ab8c71c0146102ce57610121565b80631820b3bf116100f45780631820b3bf1461019657806324758dcb146101c65780632e224402146101e257806332ac91a5146102125780635786e9321461022e57610121565b80630842bf821461012657806311480d5914610142578063118fee951461015e5780631785f53c1461017a575b600080fd5b610140600480360381019061013b919061269b565b6103b7565b005b61015c60048036038101906101579190612730565b61051b565b005b61017860048036038101906101739190612730565b6105e4565b005b610194600480360381019061018f919061275d565b6106ad565b005b6101b060048036038101906101ab919061284d565b6107cf565b6040516101bd91906128a5565b60405180910390f35b6101e060048036038101906101db919061291b565b61089d565b005b6101fc60048036038101906101f791906129be565b610b80565b6040516102099190612bfd565b60405180910390f35b61022c600480360381019061022791906129be565b610c30565b005b6102486004803603810190610243919061284d565b610e09565b005b610264600480360381019061025f919061291b565b610f6a565b60405161027191906128a5565b60405180910390f35b610294600480360381019061028f919061275d565b61127b565b005b6102b060048036038101906102ab9190612c1f565b61139d565b005b6102cc60048036038101906102c79190612c6c565b611410565b005b6102d6611574565b6040516102e39190612cd7565b60405180910390f35b6102f46115cc565b60405161030191906128a5565b60405180910390f35b610324600480360381019061031f9190612730565b6115fd565b6040516103319190612d7a565b60405180910390f35b610354600480360381019061034f9190612d9c565b6116a7565b005b610370600480360381019061036b919061284d565b611810565b60405161037e929190612eda565b60405180910390f35b6103a1600480360381019061039c9190612730565b6118d1565b6040516103ae9190612d7a565b60405180910390f35b815160028160ff16146103c957600080fd5b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047d90612f67565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630842bf8285856040518363ffffffff1660e01b81526004016104e3929190612eda565b600060405180830381600087803b1580156104fd57600080fd5b505af1158015610511573d6000803e3d6000fd5b5050505050505050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166105d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cf90612f67565b60405180910390fd5b6105e061197b565b5050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166106a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069890612f67565b60405180910390fd5b6106a96119e0565b5050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661076a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076190612f67565b60405180910390fd5b610794827fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42611a45565b7fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f826040516107c39190612f96565b60405180910390a15050565b600080600090505b8251811015610892576108038382815181106107f6576107f5612fb1565b5b6020026020010151611aea565b73ffffffffffffffffffffffffffffffffffffffff16631a10f76c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108719190612ff5565b61087f576000915050610898565b808061088a9061305b565b9150506107d7565b50600190505b919050565b8181905060028160ff16146108b157600080fd5b3073ffffffffffffffffffffffffffffffffffffffff166366f03d9a84846040518363ffffffff1660e01b81526004016108ec9291906132e9565b6020604051808303816000875af115801561090b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092f9190612ff5565b61096e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096590613359565b60405180910390fd5b60008383905067ffffffffffffffff81111561098d5761098c61242f565b5b6040519080825280602002602001820160405280156109bb5781602001602082028036833780820191505090505b50905060005b84849050811015610a63578484828181106109df576109de612fb1565b5b90506020028101906109f19190613388565b6000016020810190610a03919061275d565b828281518110610a1657610a15612fb1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080610a5b9061305b565b9150506109c1565b5060003073ffffffffffffffffffffffffffffffffffffffff1663ec007105836040518263ffffffff1660e01b8152600401610a9f919061345f565b600060405180830381865afa158015610abc573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610ae59190613592565b9150508015610b0957610b0433868690610aff91906137e4565b611b8a565b610b79565b3073ffffffffffffffffffffffffffffffffffffffff1663ddedfcf33387876040518463ffffffff1660e01b8152600401610b46939291906137f9565b600060405180830381600087803b158015610b6057600080fd5b505af1158015610b74573d6000803e3d6000fd5b505050505b5050505050565b6060600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e2244028585856040518463ffffffff1660e01b8152600401610be19392919061389f565b600060405180830381865afa158015610bfe573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610c279190613a9d565b90509392505050565b8181905060028160ff1614610c4457600080fd5b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610d01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf890612f67565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff16632e2244028787876040518463ffffffff1660e01b8152600401610d409392919061389f565b600060405180830381865afa158015610d5d573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610d869190613a9d565b9050610d928682611b8a565b3073ffffffffffffffffffffffffffffffffffffffff1663a8068d188787876040518463ffffffff1660e01b8152600401610dcf9392919061389f565b600060405180830381600087803b158015610de957600080fd5b505af1158015610dfd573d6000803e3d6000fd5b50505050505050505050565b805160028160ff1614610e1b57600080fd5b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecf90612f67565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635786e932846040518263ffffffff1660e01b8152600401610f33919061345f565b600060405180830381600087803b158015610f4d57600080fd5b505af1158015610f61573d6000803e3d6000fd5b50505050505050565b60008282905060028160ff1614610f8057600080fd5b6000600267ffffffffffffffff811115610f9d57610f9c61242f565b5b604051908082528060200260200182016040528015610fcb5781602001602082028036833780820191505090505b50905084846000818110610fe257610fe1612fb1565b5b9050602002810190610ff49190613388565b6000016020810190611006919061275d565b8160008151811061101a57611019612fb1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508484600181811061106857611067612fb1565b5b905060200281019061107a9190613388565b600001602081019061108c919061275d565b816001815181106110a05761109f612fb1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060006110e582611810565b5090506000816000815181106110fe576110fd612fb1565b5b60200260200101516020015160070b13801561113c575060008160018151811061112b5761112a612fb1565b5b60200260200101516020015160070b135b61114557600080fd5b60006111758787600081811061115e5761115d612fb1565b5b90506020028101906111709190613388565b611e13565b905060006111a7888860018181106111905761118f612fb1565b5b90506020028101906111a29190613388565b611e13565b9050826000815181106111bd576111bc612fb1565b5b60200260200101516020015160070b8260070b121580156112035750826001815181106111ed576111ec612fb1565b5b60200260200101516020015160070b8160070b12155b801561126e57508260008151811061121e5761121d612fb1565b5b60200260200101516020015160070b8160070b61123b9190613af0565b8360018151811061124f5761124e612fb1565b5b60200260200101516020015160070b8360070b61126c9190613af0565b145b9550505050505092915050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611338576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132f90612f67565b60405180910390fd5b611362827fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42611f0c565b7f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e339826040516113919190612f96565b60405180910390a15050565b3073ffffffffffffffffffffffffffffffffffffffff1663a8068d183384846040518463ffffffff1660e01b81526004016113da9392919061389f565b600060405180830381600087803b1580156113f457600080fd5b505af1158015611408573d6000803e3d6000fd5b505050505050565b805160028160ff161461142257600080fd5b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166114df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d690612f67565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a8068d1885856040518363ffffffff1660e01b815260040161153c929190613c07565b600060405180830381600087803b15801561155657600080fd5b505af115801561156a573d6000803e3d6000fd5b5050505050505050565b600080600090506115a5337f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b611f78565b156115b1576001811790505b6115b96115cc565b156115c5576002811790505b8091505090565b60006115f8337fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42611f78565b905090565b6060600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c48d8e02836040518263ffffffff1660e01b815260040161165a9190612cd7565b600060405180830381865afa158015611677573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906116a09190613cdd565b9050919050565b8181905060028160ff16146116bb57600080fd5b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611778576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176f90612f67565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ddedfcf38686866040518463ffffffff1660e01b81526004016117d7939291906137f9565b600060405180830381600087803b1580156117f157600080fd5b505af1158015611805573d6000803e3d6000fd5b505050505050505050565b60606000825160028160ff161461182657600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ec007105856040518263ffffffff1660e01b8152600401611881919061345f565b600060405180830381865afa15801561189e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906118c79190613592565b9250925050915091565b6060600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0fbda2d836040518263ffffffff1660e01b815260040161192e9190612cd7565b600060405180830381865afa15801561194b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906119749190613cdd565b9050919050565b61198b632b057dae60e01b611fdf565b80602001905181019061199e9190613d64565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6119f06389db5a0560e01b611fdf565b806020019051810190611a039190613dcf565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a7e57600080fd5b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b295760009050611b85565b6000611b368360086120e7565b9050600073ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff161415611b7b578060800151611b81565b80602001515b9150505b919050565b60005b8151811015611dd5576000611bbf838381518110611bae57611bad612fb1565b5b60200260200101516000015161224c565b905060008160030b1415611ca357611bf4838381518110611be357611be2612fb1565b5b602002602001015160000151611aea565b73ffffffffffffffffffffffffffffffffffffffff1663575a61c8848481518110611c2257611c21612fb1565b5b60200260200101516000015186868681518110611c4257611c41612fb1565b5b6020026020010151602001516040518463ffffffff1660e01b8152600401611c6c93929190613e0b565b600060405180830381600087803b158015611c8657600080fd5b505af1158015611c9a573d6000803e3d6000fd5b50505050611dc1565b60018160030b1415611d8557611cd6838381518110611cc557611cc4612fb1565b5b602002602001015160000151611aea565b73ffffffffffffffffffffffffffffffffffffffff166389b9c45c848481518110611d0457611d03612fb1565b5b60200260200101516000015186868681518110611d2457611d23612fb1565b5b6020026020010151604001516040518463ffffffff1660e01b8152600401611d4e93929190613eb1565b600060405180830381600087803b158015611d6857600080fd5b505af1158015611d7c573d6000803e3d6000fd5b50505050611dc0565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db790613f3b565b60405180910390fd5b5b508080611dcd9061305b565b915050611b8d565b507f760b5d447de9a6afab4457b996807616ccd3b048f15f77e82cc55fdb70962f4e8282604051611e07929190613f5b565b60405180910390a15050565b600080611e31836000016020810190611e2c919061275d565b61224c565b90506000808260030b1415611e5a57836020016020810190611e539190613f8b565b9050611f02565b60018260030b1415611ec657838060400190611e769190613fb8565b90509050600a8160070b1315611ec1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb890614067565b60405180910390fd5b611f01565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef890613f3b565b60405180910390fd5b5b8092505050919050565b600160008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6060600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051602401604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161208e91906140c3565b600060405180830381855af49150503d80600081146120c9576040519150601f19603f3d011682016040523d82523d6000602084013e6120ce565b606091505b5091509150816120dd57600080fd5b8092505050919050565b6120ef6123a8565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16633c4dd32e60e01b87876040516024016121289291906140e9565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161219291906140c3565b6000604051808303816000865af19150503d80600081146121cf576040519150601f19603f3d011682016040523d82523d6000602084013e6121d4565b606091505b5091509150816121e6576015846121fb565b808060200190518101906121fa919061420f565b5b8095508194505050601660030b8360030b14612243576040517f664cb42300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505092915050565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff166393272baf60e01b866040516024016122849190612f96565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516122ee91906140c3565b6000604051808303816000865af19150503d806000811461232b576040519150601f19603f3d011682016040523d82523d6000602084013e612330565b606091505b5091509150816123435760156000612358565b80806020019051810190612357919061426b565b5b8095508194505050601660030b8360030b146123a0576040517fba96339e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050919050565b6040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6124678261241e565b810181811067ffffffffffffffff821117156124865761248561242f565b5b80604052505050565b6000612499612405565b90506124a5828261245e565b919050565b600067ffffffffffffffff8211156124c5576124c461242f565b5b602082029050602081019050919050565b600080fd5b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612510826124e5565b9050919050565b61252081612505565b811461252b57600080fd5b50565b60008135905061253d81612517565b92915050565b60008160070b9050919050565b61255981612543565b811461256457600080fd5b50565b60008135905061257681612550565b92915050565b600060408284031215612592576125916124db565b5b61259c604061248f565b905060006125ac8482850161252e565b60008301525060206125c084828501612567565b60208301525092915050565b60006125df6125da846124aa565b61248f565b90508083825260208201905060408402830185811115612602576126016124d6565b5b835b8181101561262b5780612617888261257c565b845260208401935050604081019050612604565b5050509392505050565b600082601f83011261264a57612649612419565b5b813561265a8482602086016125cc565b91505092915050565b60008115159050919050565b61267881612663565b811461268357600080fd5b50565b6000813590506126958161266f565b92915050565b600080604083850312156126b2576126b161240f565b5b600083013567ffffffffffffffff8111156126d0576126cf612414565b5b6126dc85828601612635565b92505060206126ed85828601612686565b9150509250929050565b600060ff82169050919050565b61270d816126f7565b811461271857600080fd5b50565b60008135905061272a81612704565b92915050565b6000602082840312156127465761274561240f565b5b60006127548482850161271b565b91505092915050565b6000602082840312156127735761277261240f565b5b60006127818482850161252e565b91505092915050565b600067ffffffffffffffff8211156127a5576127a461242f565b5b602082029050602081019050919050565b60006127c96127c48461278a565b61248f565b905080838252602082019050602084028301858111156127ec576127eb6124d6565b5b835b818110156128155780612801888261252e565b8452602084019350506020810190506127ee565b5050509392505050565b600082601f83011261283457612833612419565b5b81356128448482602086016127b6565b91505092915050565b6000602082840312156128635761286261240f565b5b600082013567ffffffffffffffff81111561288157612880612414565b5b61288d8482850161281f565b91505092915050565b61289f81612663565b82525050565b60006020820190506128ba6000830184612896565b92915050565b600080fd5b60008083601f8401126128db576128da612419565b5b8235905067ffffffffffffffff8111156128f8576128f76128c0565b5b602083019150836020820283011115612914576129136124d6565b5b9250929050565b600080602083850312156129325761293161240f565b5b600083013567ffffffffffffffff8111156129505761294f612414565b5b61295c858286016128c5565b92509250509250929050565b60008083601f84011261297e5761297d612419565b5b8235905067ffffffffffffffff81111561299b5761299a6128c0565b5b6020830191508360208202830111156129b7576129b66124d6565b5b9250929050565b6000806000604084860312156129d7576129d661240f565b5b60006129e58682870161252e565b935050602084013567ffffffffffffffff811115612a0657612a05612414565b5b612a1286828701612968565b92509250509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612a5381612505565b82525050565b612a6281612543565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000612aa08383612a59565b60208301905092915050565b6000602082019050919050565b6000612ac482612a68565b612ace8185612a73565b9350612ad983612a84565b8060005b83811015612b0a578151612af18882612a94565b9750612afc83612aac565b925050600181019050612add565b5085935050505092915050565b6000606083016000830151612b2f6000860182612a4a565b506020830151612b426020860182612a59565b5060408301518482036040860152612b5a8282612ab9565b9150508091505092915050565b6000612b738383612b17565b905092915050565b6000602082019050919050565b6000612b9382612a1e565b612b9d8185612a29565b935083602082028501612baf85612a3a565b8060005b85811015612beb5784840389528151612bcc8582612b67565b9450612bd783612b7b565b925060208a01995050600181019050612bb3565b50829750879550505050505092915050565b60006020820190508181036000830152612c178184612b88565b905092915050565b60008060208385031215612c3657612c3561240f565b5b600083013567ffffffffffffffff811115612c5457612c53612414565b5b612c6085828601612968565b92509250509250929050565b60008060408385031215612c8357612c8261240f565b5b6000612c918582860161252e565b925050602083013567ffffffffffffffff811115612cb257612cb1612414565b5b612cbe8582860161281f565b9150509250929050565b612cd1816126f7565b82525050565b6000602082019050612cec6000830184612cc8565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d2c578082015181840152602081019050612d11565b83811115612d3b576000848401525b50505050565b6000612d4c82612cf2565b612d568185612cfd565b9350612d66818560208601612d0e565b612d6f8161241e565b840191505092915050565b60006020820190508181036000830152612d948184612d41565b905092915050565b600080600060408486031215612db557612db461240f565b5b6000612dc38682870161252e565b935050602084013567ffffffffffffffff811115612de457612de3612414565b5b612df0868287016128c5565b92509250509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b604082016000820151612e3e6000850182612a4a565b506020820151612e516020850182612a59565b50505050565b6000612e638383612e28565b60408301905092915050565b6000602082019050919050565b6000612e8782612dfc565b612e918185612e07565b9350612e9c83612e18565b8060005b83811015612ecd578151612eb48882612e57565b9750612ebf83612e6f565b925050600181019050612ea0565b5085935050505092915050565b60006040820190508181036000830152612ef48185612e7c565b9050612f036020830184612896565b9392505050565b600082825260208201905092915050565b7f4e4f5f5045524d495353494f4e53000000000000000000000000000000000000600082015250565b6000612f51600e83612f0a565b9150612f5c82612f1b565b602082019050919050565b60006020820190508181036000830152612f8081612f44565b9050919050565b612f9081612505565b82525050565b6000602082019050612fab6000830184612f87565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612fef8161266f565b92915050565b60006020828403121561300b5761300a61240f565b5b600061301984828501612fe0565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b600061306682613051565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561309957613098613022565b5b600182019050919050565b6000819050919050565b60006130bd602084018461252e565b905092915050565b60006130d46020840184612567565b905092915050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112613108576131076130e6565b5b83810192508235915060208301925067ffffffffffffffff8211156131305761312f6130dc565b5b602082023603841315613146576131456130e1565b5b509250929050565b6000819050919050565b6000602082019050919050565b60006131718385612a73565b935061317c8261314e565b8060005b858110156131b55761319282846130c5565b61319c8882612a94565b97506131a783613158565b925050600181019050613180565b5085925050509392505050565b6000606083016131d560008401846130ae565b6131e26000860182612a4a565b506131f060208401846130c5565b6131fd6020860182612a59565b5061320b60408401846130eb565b858303604087015261321e838284613165565b925050508091505092915050565b600061323883836131c2565b905092915050565b60008235600160600383360303811261325c5761325b6130e6565b5b82810191505092915050565b6000602082019050919050565b60006132818385612a29565b935083602084028501613293846130a4565b8060005b878110156132d75784840389526132ae8284613240565b6132b8858261322c565b94506132c383613268565b925060208a01995050600181019050613297565b50829750879450505050509392505050565b60006020820190508181036000830152613304818486613275565b90509392505050565b7f5245544952455f434845434b0000000000000000000000000000000000000000600082015250565b6000613343600c83612f0a565b915061334e8261330d565b602082019050919050565b6000602082019050818103600083015261337281613336565b9050919050565b600080fd5b600080fd5b600080fd5b6000823560016060038336030381126133a4576133a3613379565b5b80830191505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60006133e88383612a4a565b60208301905092915050565b6000602082019050919050565b600061340c826133b0565b61341681856133bb565b9350613421836133cc565b8060005b8381101561345257815161343988826133dc565b9750613444836133f4565b925050600181019050613425565b5085935050505092915050565b600060208201905081810360008301526134798184613401565b905092915050565b60008151905061349081612517565b92915050565b6000815190506134a581612550565b92915050565b6000604082840312156134c1576134c06124db565b5b6134cb604061248f565b905060006134db84828501613481565b60008301525060206134ef84828501613496565b60208301525092915050565b600061350e613509846124aa565b61248f565b90508083825260208201905060408402830185811115613531576135306124d6565b5b835b8181101561355a578061354688826134ab565b845260208401935050604081019050613533565b5050509392505050565b600082601f83011261357957613578612419565b5b81516135898482602086016134fb565b91505092915050565b600080604083850312156135a9576135a861240f565b5b600083015167ffffffffffffffff8111156135c7576135c6612414565b5b6135d385828601613564565b92505060206135e485828601612fe0565b9150509250929050565b600067ffffffffffffffff8211156136095761360861242f565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156136355761363461242f565b5b602082029050602081019050919050565b60006136596136548461361a565b61248f565b9050808382526020820190506020840283018581111561367c5761367b6124d6565b5b835b818110156136a557806136918882612567565b84526020840193505060208101905061367e565b5050509392505050565b600082601f8301126136c4576136c3612419565b5b81356136d4848260208601613646565b91505092915050565b6000606082840312156136f3576136f26124db565b5b6136fd606061248f565b9050600061370d8482850161252e565b600083015250602061372184828501612567565b602083015250604082013567ffffffffffffffff811115613745576137446124e0565b5b613751848285016136af565b60408301525092915050565b600061377061376b846135ee565b61248f565b90508083825260208201905060208402830185811115613793576137926124d6565b5b835b818110156137da57803567ffffffffffffffff8111156137b8576137b7612419565b5b8086016137c589826136dd565b85526020850194505050602081019050613795565b5050509392505050565b60006137f136848461375d565b905092915050565b600060408201905061380e6000830186612f87565b8181036020830152613821818486613275565b9050949350505050565b6000819050919050565b6000602082019050919050565b600061384e83856133bb565b93506138598261382b565b8060005b858110156138925761386f82846130ae565b61387988826133dc565b975061388483613835565b92505060018101905061385d565b5085925050509392505050565b60006040820190506138b46000830186612f87565b81810360208301526138c7818486613842565b9050949350505050565b60006138e46138df8461361a565b61248f565b90508083825260208201905060208402830185811115613907576139066124d6565b5b835b81811015613930578061391c8882613496565b845260208401935050602081019050613909565b5050509392505050565b600082601f83011261394f5761394e612419565b5b815161395f8482602086016138d1565b91505092915050565b60006060828403121561397e5761397d6124db565b5b613988606061248f565b9050600061399884828501613481565b60008301525060206139ac84828501613496565b602083015250604082015167ffffffffffffffff8111156139d0576139cf6124e0565b5b6139dc8482850161393a565b60408301525092915050565b60006139fb6139f6846135ee565b61248f565b90508083825260208201905060208402830185811115613a1e57613a1d6124d6565b5b835b81811015613a6557805167ffffffffffffffff811115613a4357613a42612419565b5b808601613a508982613968565b85526020850194505050602081019050613a20565b5050509392505050565b600082601f830112613a8457613a83612419565b5b8151613a948482602086016139e8565b91505092915050565b600060208284031215613ab357613ab261240f565b5b600082015167ffffffffffffffff811115613ad157613ad0612414565b5b613add84828501613a6f565b91505092915050565b6000819050919050565b6000613afb82613ae6565b9150613b0683613ae6565b9250827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482116000841360008413161615613b4557613b44613022565b5b817f80000000000000000000000000000000000000000000000000000000000000000583126000841260008413161615613b8257613b81613022565b5b827f80000000000000000000000000000000000000000000000000000000000000000582126000841360008412161615613bbf57613bbe613022565b5b827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0582126000841260008412161615613bfc57613bfb613022565b5b828202905092915050565b6000604082019050613c1c6000830185612f87565b8181036020830152613c2e8184613401565b90509392505050565b600080fd5b600067ffffffffffffffff821115613c5757613c5661242f565b5b613c608261241e565b9050602081019050919050565b6000613c80613c7b84613c3c565b61248f565b905082815260208101848484011115613c9c57613c9b613c37565b5b613ca7848285612d0e565b509392505050565b600082601f830112613cc457613cc3612419565b5b8151613cd4848260208601613c6d565b91505092915050565b600060208284031215613cf357613cf261240f565b5b600082015167ffffffffffffffff811115613d1157613d10612414565b5b613d1d84828501613caf565b91505092915050565b6000613d3182612505565b9050919050565b613d4181613d26565b8114613d4c57600080fd5b50565b600081519050613d5e81613d38565b92915050565b600060208284031215613d7a57613d7961240f565b5b6000613d8884828501613d4f565b91505092915050565b6000613d9c82612505565b9050919050565b613dac81613d91565b8114613db757600080fd5b50565b600081519050613dc981613da3565b92915050565b600060208284031215613de557613de461240f565b5b6000613df384828501613dba565b91505092915050565b613e0581612543565b82525050565b6000606082019050613e206000830186612f87565b613e2d6020830185612f87565b613e3a6040830184613dfc565b949350505050565b600082825260208201905092915050565b6000613e5e82612a68565b613e688185613e42565b9350613e7383612a84565b8060005b83811015613ea4578151613e8b8882612a94565b9750613e9683612aac565b925050600181019050613e77565b5085935050505092915050565b6000606082019050613ec66000830186612f87565b613ed36020830185612f87565b8181036040830152613ee58184613e53565b9050949350505050565b7f554e535550504f525445445f544f4b454e5f5459504500000000000000000000600082015250565b6000613f25601683612f0a565b9150613f3082613eef565b602082019050919050565b60006020820190508181036000830152613f5481613f18565b9050919050565b6000604082019050613f706000830185612f87565b8181036020830152613f828184612b88565b90509392505050565b600060208284031215613fa157613fa061240f565b5b6000613faf84828501612567565b91505092915050565b60008083356001602003843603038112613fd557613fd4613379565b5b80840192508235915067ffffffffffffffff821115613ff757613ff661337e565b5b60208301925060208202360383131561401357614012613383565b5b509250929050565b7f4e4654535f4c494d495400000000000000000000000000000000000000000000600082015250565b6000614051600a83612f0a565b915061405c8261401b565b602082019050919050565b6000602082019050818103600083015261408081614044565b9050919050565b600081905092915050565b600061409d82612cf2565b6140a78185614087565b93506140b7818560208601612d0e565b80840191505092915050565b60006140cf8284614092565b915081905092915050565b6140e381613051565b82525050565b60006040820190506140fe6000830185612f87565b61410b60208301846140da565b9392505050565b60008160030b9050919050565b61412881614112565b811461413357600080fd5b50565b6000815190506141458161411f565b92915050565b600060a08284031215614161576141606124db565b5b61416b60a061248f565b9050600061417b84828501612fe0565b600083015250602061418f84828501613481565b602083015250604082015167ffffffffffffffff8111156141b3576141b26124e0565b5b6141bf84828501613caf565b604083015250606082015167ffffffffffffffff8111156141e3576141e26124e0565b5b6141ef84828501613caf565b606083015250608061420384828501613481565b60808301525092915050565b600080604083850312156142265761422561240f565b5b600061423485828601614136565b925050602083015167ffffffffffffffff81111561425557614254612414565b5b6142618582860161414b565b9150509250929050565b600080604083850312156142825761428161240f565b5b600061429085828601614136565b92505060206142a185828601614136565b915050925092905056fea26469706673582212202017ecafac5e3dbfd2bbda1da6d6b1b2e720909738da480e93df4991abac6d0764736f6c634300080b0033608060405234801561001057600080fd5b506152d4806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632b057dae1461003b57806389db5a0514610059575b600080fd5b610043610077565b6040516100509190610170565b60405180910390f35b6100616100a7565b60405161006e91906101ac565b60405180910390f35b6000604051610085906100d7565b604051809103906000f0801580156100a1573d6000803e3d6000fd5b50905090565b60006040516100b5906100e4565b604051809103906000f0801580156100d1573d6000803e3d6000fd5b50905090565b612be0806101c883390190565b6124f780612da883390190565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061013661013161012c846100f1565b610111565b6100f1565b9050919050565b60006101488261011b565b9050919050565b600061015a8261013d565b9050919050565b61016a8161014f565b82525050565b60006020820190506101856000830184610161565b92915050565b60006101968261013d565b9050919050565b6101a68161018b565b82525050565b60006020820190506101c1600083018461019d565b9291505056fe60806040523480156200001157600080fd5b5062000044337f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b620000ee60201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3336040516200007591906200019f565b60405180910390a1620000af307f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b620000ee60201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c330604051620000e091906200019f565b60405180910390a1620001bc565b600160008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000187826200015a565b9050919050565b62000199816200017a565b82525050565b6000602082019050620001b660008301846200018e565b92915050565b612a1480620001cc6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80632e22440214610051578063a8068d1814610081578063ddedfcf31461009d578063f0fbda2d146100b9575b600080fd5b61006b60048036038101906100669190611ce4565b6100e9565b6040516100789190611f30565b60405180910390f35b61009b600480360381019061009691906120a1565b6106cc565b005b6100b760048036038101906100b29190612153565b611239565b005b6100d360048036038101906100ce91906121ec565b611a45565b6040516100e091906122a1565b60405180910390f35b60606000849050600084846000818110610106576101056122c3565b5b905060200201602081019061011b91906122f2565b9050600085856001818110610133576101326122c3565b5b905060200201602081019061014891906122f2565b90506000600180600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546102139190612358565b81548110610224576102236122c3565b5b9060005260206000209060060201905060008160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490506000600267ffffffffffffffff8111156102a8576102a7611f63565b5b6040519080825280602002602001820160405280156102e157816020015b6102ce611a6f565b8152602001906001900390816102c65790505b509050816103cf5760405180606001604052808460010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460020160149054906101000a900460070b60070b8152602001846004018054806020026020016040519081016040528092919081815260200182805480156103c257602002820191906000526020600020906000905b82829054906101000a900460070b60070b8152602001906008019060208260070104928301926001038202915080841161038b5790505b50505050508152506104b1565b60405180606001604052808460020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460030160009054906101000a900460070b60070b8152602001846005018054806020026020016040519081016040528092919081815260200182805480156104a857602002820191906000526020600020906000905b82829054906101000a900460070b60070b815260200190600801906020826007010492830192600103820291508084116104715790505b50505050508152505b816000815181106104c5576104c46122c3565b5b6020026020010181905250816105bb5760405180606001604052808460020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460030160009054906101000a900460070b60070b8152602001846005018054806020026020016040519081016040528092919081815260200182805480156105ae57602002820191906000526020600020906000905b82829054906101000a900460070b60070b815260200190600801906020826007010492830192600103820291508084116105775790505b505050505081525061069d565b60405180606001604052808460010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460020160149054906101000a900460070b60070b81526020018460040180548060200260200160405190810160405280929190818152602001828054801561069457602002820191906000526020600020906000905b82829054906101000a900460070b60070b8152602001906008019060208260070104928301926001038202915080841161065d5790505b50505050508152505b816001815181106106b1576106b06122c3565b5b60200260200101819052508096505050505050509392505050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610789576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610780906123e9565b60405180910390fd5b60008390506000836000815181106107a4576107a36122c3565b5b602002602001015190506000846001815181106107c4576107c36122c3565b5b602002602001015190506000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116108ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c190612455565b60405180910390fd5b600060018080805490506108de9190612358565b815481106108ef576108ee6122c3565b5b90600052602060002090600602019050600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001808080549050610cd79190612358565b81548110610ce857610ce76122c3565b5b9060005260206000209060060201600180600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dbd9190612358565b81548110610dce57610dcd6122c3565b5b90600052602060002090600602016000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002820160149054906101000a900460070b8160020160146101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff1602179055506003820160009054906101000a900460070b8160030160006101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff1602179055506004820181600401908054610fa5929190611aa9565b506005820181600501908054610fbc929190611aa9565b50905050600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009055600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009055600180548061114c5761114b612475565b5b6001900381819060005260206000209060060201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556002820160146101000a81549067ffffffffffffffff02191690556003820160006101000a81549067ffffffffffffffff021916905560048201600061121c9190611b09565b60058201600061122c9190611b09565b5050905550505050505050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ed906123e9565b60405180910390fd5b6000849050600084846000818110611311576113106122c3565b5b905060200281019061132391906124b3565b600001602081019061133591906122f2565b905060008585600181811061134d5761134c6122c3565b5b905060200281019061135f91906124b3565b600001602081019061137191906122f2565b9050600086866000818110611389576113886122c3565b5b905060200281019061139b91906124b3565b60200160208101906113ad9190612507565b90506000878760018181106113c5576113c46122c3565b5b90506020028101906113d791906124b3565b60200160208101906113e99190612507565b9050600088886000818110611401576114006122c3565b5b905060200281019061141391906124b3565b80604001906114229190612534565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050905060008989600181811061147a576114796122c3565b5b905060200281019061148c91906124b3565b806040019061149b9190612534565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505090506000600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611697576000600267ffffffffffffffff8111156115bc576115bb611f63565b5b6040519080825280602002602001820160405280156115ea5781602001602082028036833780820191505090505b5090508681600081518110611602576116016122c3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508581600181518110611651576116506122c3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061169588826106cc565b505b60016040518060e001604052808973ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1681526020018660070b81526020018560070b815260200184815260200183815250908060018154018082558091505060019003906000526020600020906006020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160146101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff16021790555060808201518160030160006101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff16021790555060a0820151816004019080519060200190611892929190611b31565b5060c08201518160050190805190602001906118af929190611b31565b505050600180549050600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600180549050600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050505050505050565b60606001604051602001611a5991906129bc565b6040516020818303038152906040529050919050565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600060070b8152602001606081525090565b82805482825590600052602060002090600301600490048101928215611af8576000526020600020916003016004900482015b82811115611af7578254825591600101919060010190611adc565b5b509050611b059190611bf0565b5090565b508054600082556003016004900490600052602060002090810190611b2e9190611bf0565b50565b82805482825590600052602060002090600301600490048101928215611bdf5791602002820160005b83821115611ba957835183826101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff1602179055509260200192600801602081600701049283019260010302611b5a565b8015611bdd5782816101000a81549067ffffffffffffffff0219169055600801602081600701049283019260010302611ba9565b505b509050611bec9190611bf0565b5090565b5b80821115611c09576000816000905550600101611bf1565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611c4c82611c21565b9050919050565b611c5c81611c41565b8114611c6757600080fd5b50565b600081359050611c7981611c53565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611ca457611ca3611c7f565b5b8235905067ffffffffffffffff811115611cc157611cc0611c84565b5b602083019150836020820283011115611cdd57611cdc611c89565b5b9250929050565b600080600060408486031215611cfd57611cfc611c17565b5b6000611d0b86828701611c6a565b935050602084013567ffffffffffffffff811115611d2c57611d2b611c1c565b5b611d3886828701611c8e565b92509250509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611d7981611c41565b82525050565b60008160070b9050919050565b611d9581611d7f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000611dd38383611d8c565b60208301905092915050565b6000602082019050919050565b6000611df782611d9b565b611e018185611da6565b9350611e0c83611db7565b8060005b83811015611e3d578151611e248882611dc7565b9750611e2f83611ddf565b925050600181019050611e10565b5085935050505092915050565b6000606083016000830151611e626000860182611d70565b506020830151611e756020860182611d8c565b5060408301518482036040860152611e8d8282611dec565b9150508091505092915050565b6000611ea68383611e4a565b905092915050565b6000602082019050919050565b6000611ec682611d44565b611ed08185611d4f565b935083602082028501611ee285611d60565b8060005b85811015611f1e5784840389528151611eff8582611e9a565b9450611f0a83611eae565b925060208a01995050600181019050611ee6565b50829750879550505050505092915050565b60006020820190508181036000830152611f4a8184611ebb565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611f9b82611f52565b810181811067ffffffffffffffff82111715611fba57611fb9611f63565b5b80604052505050565b6000611fcd611c0d565b9050611fd98282611f92565b919050565b600067ffffffffffffffff821115611ff957611ff8611f63565b5b602082029050602081019050919050565b600061201d61201884611fde565b611fc3565b905080838252602082019050602084028301858111156120405761203f611c89565b5b835b8181101561206957806120558882611c6a565b845260208401935050602081019050612042565b5050509392505050565b600082601f83011261208857612087611c7f565b5b813561209884826020860161200a565b91505092915050565b600080604083850312156120b8576120b7611c17565b5b60006120c685828601611c6a565b925050602083013567ffffffffffffffff8111156120e7576120e6611c1c565b5b6120f385828601612073565b9150509250929050565b60008083601f84011261211357612112611c7f565b5b8235905067ffffffffffffffff8111156121305761212f611c84565b5b60208301915083602082028301111561214c5761214b611c89565b5b9250929050565b60008060006040848603121561216c5761216b611c17565b5b600061217a86828701611c6a565b935050602084013567ffffffffffffffff81111561219b5761219a611c1c565b5b6121a7868287016120fd565b92509250509250925092565b600060ff82169050919050565b6121c9816121b3565b81146121d457600080fd5b50565b6000813590506121e6816121c0565b92915050565b60006020828403121561220257612201611c17565b5b6000612210848285016121d7565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612253578082015181840152602081019050612238565b83811115612262576000848401525b50505050565b600061227382612219565b61227d8185612224565b935061228d818560208601612235565b61229681611f52565b840191505092915050565b600060208201905081810360008301526122bb8184612268565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561230857612307611c17565b5b600061231684828501611c6a565b91505092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006123638261231f565b915061236e8361231f565b92508282101561238157612380612329565b5b828203905092915050565b600082825260208201905092915050565b7f4e4f5f5045524d495353494f4e53000000000000000000000000000000000000600082015250565b60006123d3600e8361238c565b91506123de8261239d565b602082019050919050565b60006020820190508181036000830152612402816123c6565b9050919050565b7f4e4f5f5245515545535400000000000000000000000000000000000000000000600082015250565b600061243f600a8361238c565b915061244a82612409565b602082019050919050565b6000602082019050818103600083015261246e81612432565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600080fd5b600080fd5b600080fd5b6000823560016060038336030381126124cf576124ce6124a4565b5b80830191505092915050565b6124e481611d7f565b81146124ef57600080fd5b50565b600081359050612501816124db565b92915050565b60006020828403121561251d5761251c611c17565b5b600061252b848285016124f2565b91505092915050565b60008083356001602003843603038112612551576125506124a4565b5b80840192508235915067ffffffffffffffff821115612573576125726124a9565b5b60208301925060208202360383131561258f5761258e6124ae565b5b509250929050565b600081549050919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b60008160001c9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612608612603836125c8565b6125d5565b9050919050565b60008160a01c9050919050565b60008160070b9050919050565b600061263c6126378361260f565b61261c565b9050919050565b6000612656612651836125c8565b61261c565b9050919050565b600081549050919050565b60008190508160005260206000209050919050565b60008160401c9050919050565b600061269d6126988361267d565b61261c565b9050919050565b60008160801c9050919050565b60006126c46126bf836126a4565b61261c565b9050919050565b60008160c01c9050919050565b60006126eb6126e6836126cb565b61261c565b9050919050565b60006126fd8261265d565b6127078185611da6565b93508361271384612668565b60006001156127a0575b8360016004038201101561279f57815461273f8861273a83612643565b611d8c565b602088019750612757886127528361268a565b611d8c565b60208801975061276f8861276a836126b1565b611d8c565b60208801975061278788612782836126d8565b611d8c565b6020880197506001830192505060048101905061271d565b5b600115612847578154848210156127d0576127c3886127be83612643565b611d8c565b6020880197506001820191505b848210156127f7576127ea886127e58361268a565b611d8c565b6020880197506001820191505b8482101561281e576128118861280c836126b1565b611d8c565b6020880197506001820191505b848210156128455761283888612833836126d8565b611d8c565b6020880197506001820191505b505b8694505050505092915050565b600060e08301600080840154905061286b816125f5565b6128786000870182611d70565b5060018401549050612889816125f5565b6128966020870182611d70565b50600284015490506128a7816125f5565b6128b46040870182611d70565b506128be81612629565b6128cb6060870182611d8c565b50600384015490506128dc81612643565b6128e96080870182611d8c565b506004840185830360a087015261290083826126f2565b9250506005840185830360c087015261291983826126f2565b925050819250505092915050565b60006129338383612854565b905092915050565b6000600682019050919050565b600061295382612597565b61295d81856125a2565b93508360208202850161296f856125b3565b8060005b858110156129aa5784840389528161298b8582612927565b94506129968361293b565b925060208a01995050600181019050612973565b50829750879550505050505092915050565b600060208201905081810360008301526129d68184612948565b90509291505056fea2646970667358221220b9138709c160564e69098e82eb0a6b7c96c5418629fc772d519033352ed7f31064736f6c634300080b003360806040523480156200001157600080fd5b5062000044337f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b620000ee60201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3336040516200007591906200019f565b60405180910390a1620000af307f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b620000ee60201b60201c565b7f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c330604051620000e091906200019f565b60405180910390a1620001bc565b600160008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000187826200015a565b9050919050565b62000199816200017a565b82525050565b6000602082019050620001b660008301846200018e565b92915050565b61232b80620001cc6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630842bf82146100515780635786e9321461006d578063c48d8e0214610089578063ec007105146100b9575b600080fd5b61006b60048036038101906100669190611937565b6100ea565b005b61008760048036038101906100829190611a56565b6106e6565b005b6100a3600480360381019061009e9190611ad8565b610f81565b6040516100b09190611b8d565b60405180910390f35b6100d360048036038101906100ce9190611a56565b610fab565b6040516100e1929190611cba565b60405180910390f35b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166101a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019e90611d47565b60405180910390fd5b6101b1838361134c565b6000836000815181106101c7576101c6611d67565b5b60200260200101516000015190506000846001815181106101eb576101ea611d67565b5b602002602001015160000151905060008560008151811061020f5761020e611d67565b5b602002602001015160200151905060008660018151811061023357610232611d67565b5b60200260200101516020015190506000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156103bd576000600267ffffffffffffffff8111156102e3576102e26116d0565b5b6040519080825280602002602001820160405280156103115781602001602082028036833780820191505090505b509050848160008151811061032957610328611d67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050838160018151811061037857610377611d67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506103bb816106e6565b505b60016040518060a001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141561043e576000610440565b845b60070b8152602001600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415610484576000610486565b835b60070b8152602001881515815250908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff16021790555060608201518160020160006101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff16021790555060808201518160020160086101000a81548160ff0219169083151502179055505050600180549050600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600180549050600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050505050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166107a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079a90611d47565b60405180910390fd5b6000826000815181106107b9576107b8611d67565b5b602002602001015190506000836001815181106107d9576107d8611d67565b5b602002602001015190506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116108a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089990611de2565b60405180910390fd5b600060018080805490506108b69190611e3b565b815481106108c7576108c6611d67565b5b90600052602060002090600302019050600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001808080549050610b739190611e3b565b81548110610b8457610b83611d67565b5b9060005260206000209060030201600180600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c1c9190611e3b565b81548110610c2d57610c2c611d67565b5b90600052602060002090600302016000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001820160149054906101000a900460070b8160010160146101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff1602179055506002820160009054906101000a900460070b8160020160006101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff1602179055506002820160089054906101000a900460ff168160020160086101000a81548160ff021916908315150217905550905050600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009055600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600090556001805480610ec957610ec8611e6f565b5b6001900381819060005260206000209060030201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160146101000a81549067ffffffffffffffff02191690556002820160006101000a81549067ffffffffffffffff02191690556002820160086101000a81549060ff0219169055505090555050505050565b60606001604051602001610f9591906120bc565b6040516020818303038152906040529050919050565b606060008083600081518110610fc457610fc3611d67565b5b60200260200101519050600084600181518110610fe457610fe3611d67565b5b602002602001015190506000600180600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461107a9190611e3b565b8154811061108b5761108a611d67565b5b906000526020600020906003020190506000600267ffffffffffffffff8111156110b8576110b76116d0565b5b6040519080825280602002602001820160405280156110f157816020015b6110de611673565b8152602001906001900390816110d65790505b50905060008260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16149050806111b85760405180604001604052808460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460010160149054906101000a900460070b60070b81525061121c565b60405180604001604052808460010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460020160009054906101000a900460070b60070b8152505b826000815181106112305761122f611d67565b5b6020026020010181905250806112a85760405180604001604052808460010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460020160009054906101000a900460070b60070b81525061130c565b60405180604001604052808460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460010160149054906101000a900460070b60070b8152505b826001815181106113205761131f611d67565b5b6020026020010181905250818360020160089054906101000a900460ff16965096505050505050915091565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140090611d47565b60405180910390fd5b60005b835181101561151157600061143e85838151811061142d5761142c611d67565b5b602002602001015160000151611517565b905060018160030b14156114b657600a85838151811061146157611460611d67565b5b60200260200101516020015160070b13156114b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a89061212a565b60405180910390fd5b6114fd565b60008160030b146114fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f390612196565b60405180910390fd5b5b508080611509906121b6565b91505061140c565b50505050565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff166393272baf60e01b8660405160240161154f919061220e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516115b99190612265565b6000604051808303816000865af19150503d80600081146115f6576040519150601f19603f3d011682016040523d82523d6000602084013e6115fb565b606091505b50915091508161160e5760156000611623565b8080602001905181019061162291906122b5565b5b8095508194505050601660030b8360030b1461166b576040517fba96339e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050919050565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600060070b81525090565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611708826116bf565b810181811067ffffffffffffffff82111715611727576117266116d0565b5b80604052505050565b600061173a6116a6565b905061174682826116ff565b919050565b600067ffffffffffffffff821115611766576117656116d0565b5b602082029050602081019050919050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006117ac82611781565b9050919050565b6117bc816117a1565b81146117c757600080fd5b50565b6000813590506117d9816117b3565b92915050565b60008160070b9050919050565b6117f5816117df565b811461180057600080fd5b50565b600081359050611812816117ec565b92915050565b60006040828403121561182e5761182d61177c565b5b6118386040611730565b90506000611848848285016117ca565b600083015250602061185c84828501611803565b60208301525092915050565b600061187b6118768461174b565b611730565b9050808382526020820190506040840283018581111561189e5761189d611777565b5b835b818110156118c757806118b38882611818565b8452602084019350506040810190506118a0565b5050509392505050565b600082601f8301126118e6576118e56116ba565b5b81356118f6848260208601611868565b91505092915050565b60008115159050919050565b611914816118ff565b811461191f57600080fd5b50565b6000813590506119318161190b565b92915050565b6000806040838503121561194e5761194d6116b0565b5b600083013567ffffffffffffffff81111561196c5761196b6116b5565b5b611978858286016118d1565b925050602061198985828601611922565b9150509250929050565b600067ffffffffffffffff8211156119ae576119ad6116d0565b5b602082029050602081019050919050565b60006119d26119cd84611993565b611730565b905080838252602082019050602084028301858111156119f5576119f4611777565b5b835b81811015611a1e5780611a0a88826117ca565b8452602084019350506020810190506119f7565b5050509392505050565b600082601f830112611a3d57611a3c6116ba565b5b8135611a4d8482602086016119bf565b91505092915050565b600060208284031215611a6c57611a6b6116b0565b5b600082013567ffffffffffffffff811115611a8a57611a896116b5565b5b611a9684828501611a28565b91505092915050565b600060ff82169050919050565b611ab581611a9f565b8114611ac057600080fd5b50565b600081359050611ad281611aac565b92915050565b600060208284031215611aee57611aed6116b0565b5b6000611afc84828501611ac3565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b3f578082015181840152602081019050611b24565b83811115611b4e576000848401525b50505050565b6000611b5f82611b05565b611b698185611b10565b9350611b79818560208601611b21565b611b82816116bf565b840191505092915050565b60006020820190508181036000830152611ba78184611b54565b905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611be4816117a1565b82525050565b611bf3816117df565b82525050565b604082016000820151611c0f6000850182611bdb565b506020820151611c226020850182611bea565b50505050565b6000611c348383611bf9565b60408301905092915050565b6000602082019050919050565b6000611c5882611baf565b611c628185611bba565b9350611c6d83611bcb565b8060005b83811015611c9e578151611c858882611c28565b9750611c9083611c40565b925050600181019050611c71565b5085935050505092915050565b611cb4816118ff565b82525050565b60006040820190508181036000830152611cd48185611c4d565b9050611ce36020830184611cab565b9392505050565b600082825260208201905092915050565b7f4e4f5f5045524d495353494f4e53000000000000000000000000000000000000600082015250565b6000611d31600e83611cea565b9150611d3c82611cfb565b602082019050919050565b60006020820190508181036000830152611d6081611d24565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e4f5f504f4f4c00000000000000000000000000000000000000000000000000600082015250565b6000611dcc600783611cea565b9150611dd782611d96565b602082019050919050565b60006020820190508181036000830152611dfb81611dbf565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611e4682611e02565b9150611e5183611e02565b925082821015611e6457611e63611e0c565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600081549050919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b60008160001c9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f0f611f0a83611ecf565b611edc565b9050919050565b60008160a01c9050919050565b60008160070b9050919050565b6000611f43611f3e83611f16565b611f23565b9050919050565b6000611f5d611f5883611ecf565b611f23565b9050919050565b60008160401c9050919050565b600060ff82169050919050565b6000611f91611f8c83611f64565b611f71565b9050919050565b611fa1816118ff565b82525050565b60a082016000808301549050611fbc81611efc565b611fc96000860182611bdb565b5060018301549050611fda81611efc565b611fe76020860182611bdb565b50611ff181611f30565b611ffe6040860182611bea565b506002830154905061200f81611f4a565b61201c6060860182611bea565b5061202681611f7e565b6120336080860182611f98565b5050505050565b60006120468383611fa7565b60a08301905092915050565b6000600382019050919050565b600061206a82611e9e565b6120748185611ea9565b935061207f83611eba565b8060005b838110156120af5781612096888261203a565b97506120a183612052565b925050600181019050612083565b5085935050505092915050565b600060208201905081810360008301526120d6818461205f565b905092915050565b7f4e4654535f4c494d495400000000000000000000000000000000000000000000600082015250565b6000612114600a83611cea565b915061211f826120de565b602082019050919050565b6000602082019050818103600083015261214381612107565b9050919050565b7f554e535550504f525445445f544f4b454e5f5459504500000000000000000000600082015250565b6000612180601683611cea565b915061218b8261214a565b602082019050919050565b600060208201905081810360008301526121af81612173565b9050919050565b60006121c182611e02565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156121f4576121f3611e0c565b5b600182019050919050565b612208816117a1565b82525050565b600060208201905061222360008301846121ff565b92915050565b600081905092915050565b600061223f82611b05565b6122498185612229565b9350612259818560208601611b21565b80840191505092915050565b60006122718284612234565b915081905092915050565b60008160030b9050919050565b6122928161227c565b811461229d57600080fd5b50565b6000815190506122af81612289565b92915050565b600080604083850312156122cc576122cb6116b0565b5b60006122da858286016122a0565b92505060206122eb858286016122a0565b915050925092905056fea2646970667358221220e28e467737398e3d29e0ca7633ba25988606850c82ba1633f3fc85a5810728b964736f6c634300080b0033a2646970667358221220ccc591516cb18cf95dd69f72448b7de35a5718df83b2abbbcfb25a68034634f664736f6c634300080b0033"
"runtime_bytecode":
string"0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806370480275116100c3578063c48d8e021161007c578063c48d8e0214610382578063c873032b146103b2578063d8fd814f146103ce578063ddedfcf3146103fe578063ec0071051461041a578063f0fbda2d1461044b5761014d565b806370480275146102c257806397b2544f146102de578063a50b33e01461030e578063a8068d181461032a578063ab8c71c014610346578063b6db75a0146103645761014d565b806324758dcb1161011557806324758dcb146101f25780632e2244021461020e57806332ac91a51461023e57806345583b7a1461025a5780635786e9321461027657806366f03d9a146102925761014d565b80630842bf821461015257806311480d591461016e578063118fee951461018a5780631785f53c146101a65780631820b3bf146101c2575b600080fd5b61016c600480360381019061016791906125d8565b61047b565b005b6101886004803603810190610183919061266d565b6106c6565b005b6101a4600480360381019061019f919061266d565b610862565b005b6101c060048036038101906101bb919061269a565b6109fe565b005b6101dc60048036038101906101d7919061278a565b610b20565b6040516101e991906127e2565b60405180910390f35b61020c60048036038101906102079190612858565b610bee565b005b610228600480360381019061022391906128fb565b610f6d565b6040516102359190612b3a565b60405180910390f35b610258600480360381019061025391906128fb565b611037565b005b610274600480360381019061026f9190612b5c565b611260565b005b610290600480360381019061028b919061278a565b61137a565b005b6102ac60048036038101906102a79190612858565b611517565b6040516102b991906127e2565b60405180910390f35b6102dc60048036038101906102d7919061269a565b6115db565b005b6102f860048036038101906102f3919061269a565b6116fd565b60405161030591906127e2565b60405180910390f35b61032860048036038101906103239190612b9c565b61177d565b005b610344600480360381019061033f9190612be9565b6117f0565b005b61034e611992565b60405161035b9190612c54565b60405180910390f35b61036c6119ea565b60405161037991906127e2565b60405180910390f35b61039c6004803603810190610397919061266d565b611a1b565b6040516103a99190612cf7565b60405180910390f35b6103cc60048036038101906103c79190612b9c565b611adc565b005b6103e860048036038101906103e3919061266d565b611bc6565b6040516103f591906127e2565b60405180910390f35b61041860048036038101906104139190612d19565b611c38565b005b610434600480360381019061042f919061278a565b611de1565b604051610442929190612e57565b60405180910390f35b6104656004803603810190610460919061266d565b611ea7565b6040516104729190612cf7565b60405180910390f35b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052f90612ee4565b60405180910390fd5b60005b83518110156105e05761056b84828151811061055a57610559612f04565b5b602002602001015160000151611f68565b73ffffffffffffffffffffffffffffffffffffffff16632459ca666040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156105b257600080fd5b505af19250505080156105c3575060015b6105cc576105cd565b5b80806105d890612f6c565b91505061053b565b5060016000845160ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630842bf8284846040518363ffffffff1660e01b8152600401610656929190612e57565b600060405180830381600087803b15801561067057600080fd5b505af1158015610684573d6000803e3d6000fd5b505050507f14810161b0c93c5c7dfa3bf8a1a5d02c721f4a32b0c9ea33b511e5c0789ac2b283836040516106b9929190612e57565b60405180910390a1505050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077a90612ee4565b60405180910390fd5b600160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166311480d59836040518263ffffffff1660e01b81526004016107f59190612c54565b600060405180830381600087803b15801561080f57600080fd5b505af1158015610823573d6000803e3d6000fd5b505050507fa5010e135493057a9f5399a895ad226a54cf65d6918d7ddc9c406cdac5a75ae8826040516108569190612c54565b60405180910390a15050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661091f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091690612ee4565b60405180910390fd5b600160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663118fee95836040518263ffffffff1660e01b81526004016109919190612c54565b600060405180830381600087803b1580156109ab57600080fd5b505af11580156109bf573d6000803e3d6000fd5b505050507f196ca0e3fd19725314e00d7778ebab832867aa26efc88e069cfd5f80185523df826040516109f29190612c54565b60405180910390a15050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab290612ee4565b60405180910390fd5b610ae5827fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42612008565b7fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f82604051610b149190612fc4565b60405180910390a15050565b600080600090505b8251811015610be357610b54838281518110610b4757610b46612f04565b5b6020026020010151611f68565b73ffffffffffffffffffffffffffffffffffffffff16631a10f76c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc29190612ff4565b610bd0576000915050610be9565b8080610bdb90612f6c565b915050610b28565b50600190505b919050565b60005b82829050811015610e3f57610c3b838383818110610c1257610c11612f04565b5b9050602002810190610c249190613030565b6000016020810190610c36919061269a565b6116fd565b610c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c71906130a4565b60405180910390fd5b60005b838383818110610c9057610c8f612f04565b5b9050602002810190610ca29190613030565b8060400190610cb191906130c4565b9050811015610e2b576000600182610cc99190613127565b90505b848484818110610cdf57610cde612f04565b5b9050602002810190610cf19190613030565b8060400190610d0091906130c4565b9050811015610e1757848484818110610d1c57610d1b612f04565b5b9050602002810190610d2e9190613030565b8060400190610d3d91906130c4565b82818110610d4e57610d4d612f04565b5b9050602002016020810190610d63919061317d565b60070b858585818110610d7957610d78612f04565b5b9050602002810190610d8b9190613030565b8060400190610d9a91906130c4565b84818110610dab57610daa612f04565b5b9050602002016020810190610dc0919061317d565b60070b1415610e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfb906131f6565b60405180910390fd5b8080610e0f90612f6c565b915050610ccc565b508080610e2390612f6c565b915050610c7d565b508080610e3790612f6c565b915050610bf1565b506000600160008484905060ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324758dcb60e01b8484604051602401610eb092919061345b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610f1a91906134bb565b600060405180830381855af49150503d8060008114610f55576040519150601f19603f3d011682016040523d82523d6000602084013e610f5a565b606091505b5050905080610f6857600080fd5b505050565b6060600160008484905060ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e2244028585856040518463ffffffff1660e01b8152600401610fe89392919061356f565b600060405180830381865afa158015611005573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061102e91906137ef565b90509392505050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166110f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110eb90612ee4565b60405180910390fd5b6000600160008585905060ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166332ac91a560e01b8686866040516024016111669392919061356f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516111d091906134bb565b600060405180830381855af49150503d806000811461120b576040519150601f19603f3d011682016040523d82523d6000602084013e611210565b606091505b505090508061121e57600080fd5b7fead06a119bf9374925260679eee8bb050c060c7cff525b986aa7978faa23aeb88585856040516112519392919061356f565b60405180910390a15050505050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490612ee4565b60405180910390fd5b81600160008560ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e90612ee4565b60405180910390fd5b60016000835160ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635786e932836040518263ffffffff1660e01b81526004016114aa91906138be565b600060405180830381600087803b1580156114c457600080fd5b505af11580156114d8573d6000803e3d6000fd5b505050507f5cfc35115fc8e9e720735c4e73900d28a033c3dac8efb748752f64b98bbf8d568260405161150b91906138be565b60405180910390a15050565b6000600160008484905060ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166366f03d9a84846040518363ffffffff1660e01b815260040161159092919061345b565b6020604051808303816000875af11580156115af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d39190612ff4565b905092915050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168f90612ee4565b60405180910390fd5b6116c2827fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec426120ad565b7f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e339826040516116f19190612fc4565b60405180910390a15050565b600061170882611f68565b73ffffffffffffffffffffffffffffffffffffffff16631a10f76c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611752573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117769190612ff4565b9050919050565b3073ffffffffffffffffffffffffffffffffffffffff1663a8068d183384846040518463ffffffff1660e01b81526004016117ba9392919061356f565b600060405180830381600087803b1580156117d457600080fd5b505af11580156117e8573d6000803e3d6000fd5b505050505050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4260008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166118ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a490612ee4565b60405180910390fd5b60016000835160ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a8068d1884846040518363ffffffff1660e01b81526004016119229291906138e0565b600060405180830381600087803b15801561193c57600080fd5b505af1158015611950573d6000803e3d6000fd5b505050507fead06a119bf9374925260679eee8bb050c060c7cff525b986aa7978faa23aeb883836040516119859291906138e0565b60405180910390a1505050565b600080600090506119c3337f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b612119565b156119cf576001811790505b6119d76119ea565b156119e3576002811790505b8091505090565b6000611a16337fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42612119565b905090565b6060600160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c48d8e02836040518263ffffffff1660e01b8152600401611a8f9190612c54565b600060405180830381865afa158015611aac573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611ad591906139b6565b9050919050565b600160008383905060ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a8068d183384846040518463ffffffff1660e01b8152600401611b559392919061356f565b600060405180830381600087803b158015611b6f57600080fd5b505af1158015611b83573d6000803e3d6000fd5b505050507fead06a119bf9374925260679eee8bb050c060c7cff525b986aa7978faa23aeb8338383604051611bba9392919061356f565b60405180910390a15050565b60008073ffffffffffffffffffffffffffffffffffffffff16600160008460ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b60008082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cec90612ee4565b60405180910390fd5b600160008484905060ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ddedfcf38585856040518463ffffffff1660e01b8152600401611d6e939291906139ff565b600060405180830381600087803b158015611d8857600080fd5b505af1158015611d9c573d6000803e3d6000fd5b505050507f811dad75e5e67db969d68b96a86f7b9f7ac4cf22738745f1a5dd0d4d97d7fd26848484604051611dd3939291906139ff565b60405180910390a150505050565b6060600060016000845160ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ec007105846040518263ffffffff1660e01b8152600401611e5891906138be565b600060405180830381865afa158015611e75573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611e9e9190613b18565b91509150915091565b6060600160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0fbda2d836040518263ffffffff1660e01b8152600401611f1b9190612c54565b600060405180830381865afa158015611f38573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611f6191906139b6565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fa75760009050612003565b6000611fb4836008612180565b9050600073ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff161415611ff9578060800151611fff565b80602001515b9150505b919050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561204157600080fd5b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600160008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6121886122e5565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16633c4dd32e60e01b87876040516024016121c1929190613b83565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161222b91906134bb565b6000604051808303816000865af19150503d8060008114612268576040519150601f19603f3d011682016040523d82523d6000602084013e61226d565b606091505b50915091508161227f57601584612294565b808060200190518101906122939190613ca9565b5b8095508194505050601660030b8360030b146122dc576040517f664cb42300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505092915050565b6040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6123a48261235b565b810181811067ffffffffffffffff821117156123c3576123c261236c565b5b80604052505050565b60006123d6612342565b90506123e2828261239b565b919050565b600067ffffffffffffffff8211156124025761240161236c565b5b602082029050602081019050919050565b600080fd5b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061244d82612422565b9050919050565b61245d81612442565b811461246857600080fd5b50565b60008135905061247a81612454565b92915050565b60008160070b9050919050565b61249681612480565b81146124a157600080fd5b50565b6000813590506124b38161248d565b92915050565b6000604082840312156124cf576124ce612418565b5b6124d960406123cc565b905060006124e98482850161246b565b60008301525060206124fd848285016124a4565b60208301525092915050565b600061251c612517846123e7565b6123cc565b9050808382526020820190506040840283018581111561253f5761253e612413565b5b835b81811015612568578061255488826124b9565b845260208401935050604081019050612541565b5050509392505050565b600082601f83011261258757612586612356565b5b8135612597848260208601612509565b91505092915050565b60008115159050919050565b6125b5816125a0565b81146125c057600080fd5b50565b6000813590506125d2816125ac565b92915050565b600080604083850312156125ef576125ee61234c565b5b600083013567ffffffffffffffff81111561260d5761260c612351565b5b61261985828601612572565b925050602061262a858286016125c3565b9150509250929050565b600060ff82169050919050565b61264a81612634565b811461265557600080fd5b50565b60008135905061266781612641565b92915050565b6000602082840312156126835761268261234c565b5b600061269184828501612658565b91505092915050565b6000602082840312156126b0576126af61234c565b5b60006126be8482850161246b565b91505092915050565b600067ffffffffffffffff8211156126e2576126e161236c565b5b602082029050602081019050919050565b6000612706612701846126c7565b6123cc565b9050808382526020820190506020840283018581111561272957612728612413565b5b835b81811015612752578061273e888261246b565b84526020840193505060208101905061272b565b5050509392505050565b600082601f83011261277157612770612356565b5b81356127818482602086016126f3565b91505092915050565b6000602082840312156127a05761279f61234c565b5b600082013567ffffffffffffffff8111156127be576127bd612351565b5b6127ca8482850161275c565b91505092915050565b6127dc816125a0565b82525050565b60006020820190506127f760008301846127d3565b92915050565b600080fd5b60008083601f84011261281857612817612356565b5b8235905067ffffffffffffffff811115612835576128346127fd565b5b60208301915083602082028301111561285157612850612413565b5b9250929050565b6000806020838503121561286f5761286e61234c565b5b600083013567ffffffffffffffff81111561288d5761288c612351565b5b61289985828601612802565b92509250509250929050565b60008083601f8401126128bb576128ba612356565b5b8235905067ffffffffffffffff8111156128d8576128d76127fd565b5b6020830191508360208202830111156128f4576128f3612413565b5b9250929050565b6000806000604084860312156129145761291361234c565b5b60006129228682870161246b565b935050602084013567ffffffffffffffff81111561294357612942612351565b5b61294f868287016128a5565b92509250509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61299081612442565b82525050565b61299f81612480565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60006129dd8383612996565b60208301905092915050565b6000602082019050919050565b6000612a01826129a5565b612a0b81856129b0565b9350612a16836129c1565b8060005b83811015612a47578151612a2e88826129d1565b9750612a39836129e9565b925050600181019050612a1a565b5085935050505092915050565b6000606083016000830151612a6c6000860182612987565b506020830151612a7f6020860182612996565b5060408301518482036040860152612a9782826129f6565b9150508091505092915050565b6000612ab08383612a54565b905092915050565b6000602082019050919050565b6000612ad08261295b565b612ada8185612966565b935083602082028501612aec85612977565b8060005b85811015612b285784840389528151612b098582612aa4565b9450612b1483612ab8565b925060208a01995050600181019050612af0565b50829750879550505050505092915050565b60006020820190508181036000830152612b548184612ac5565b905092915050565b60008060408385031215612b7357612b7261234c565b5b6000612b8185828601612658565b9250506020612b928582860161246b565b9150509250929050565b60008060208385031215612bb357612bb261234c565b5b600083013567ffffffffffffffff811115612bd157612bd0612351565b5b612bdd858286016128a5565b92509250509250929050565b60008060408385031215612c0057612bff61234c565b5b6000612c0e8582860161246b565b925050602083013567ffffffffffffffff811115612c2f57612c2e612351565b5b612c3b8582860161275c565b9150509250929050565b612c4e81612634565b82525050565b6000602082019050612c696000830184612c45565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ca9578082015181840152602081019050612c8e565b83811115612cb8576000848401525b50505050565b6000612cc982612c6f565b612cd38185612c7a565b9350612ce3818560208601612c8b565b612cec8161235b565b840191505092915050565b60006020820190508181036000830152612d118184612cbe565b905092915050565b600080600060408486031215612d3257612d3161234c565b5b6000612d408682870161246b565b935050602084013567ffffffffffffffff811115612d6157612d60612351565b5b612d6d86828701612802565b92509250509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b604082016000820151612dbb6000850182612987565b506020820151612dce6020850182612996565b50505050565b6000612de08383612da5565b60408301905092915050565b6000602082019050919050565b6000612e0482612d79565b612e0e8185612d84565b9350612e1983612d95565b8060005b83811015612e4a578151612e318882612dd4565b9750612e3c83612dec565b925050600181019050612e1d565b5085935050505092915050565b60006040820190508181036000830152612e718185612df9565b9050612e8060208301846127d3565b9392505050565b600082825260208201905092915050565b7f4e4f5f5045524d495353494f4e53000000000000000000000000000000000000600082015250565b6000612ece600e83612e87565b9150612ed982612e98565b602082019050919050565b60006020820190508181036000830152612efd81612ec1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000612f7782612f62565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612faa57612fa9612f33565b5b600182019050919050565b612fbe81612442565b82525050565b6000602082019050612fd96000830184612fb5565b92915050565b600081519050612fee816125ac565b92915050565b60006020828403121561300a5761300961234c565b5b600061301884828501612fdf565b91505092915050565b600080fd5b600080fd5b600080fd5b60008235600160600383360303811261304c5761304b613021565b5b80830191505092915050565b7f504149525f4e4f545f415641494c41424c450000000000000000000000000000600082015250565b600061308e601283612e87565b915061309982613058565b602082019050919050565b600060208201905081810360008301526130bd81613081565b9050919050565b600080833560016020038436030381126130e1576130e0613021565b5b80840192508235915067ffffffffffffffff82111561310357613102613026565b5b60208301925060208202360383131561311f5761311e61302b565b5b509250929050565b600061313282612f62565b915061313d83612f62565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561317257613171612f33565b5b828201905092915050565b6000602082840312156131935761319261234c565b5b60006131a1848285016124a4565b91505092915050565b7f4e4f545f554e495155455f53455249414c530000000000000000000000000000600082015250565b60006131e0601283612e87565b91506131eb826131aa565b602082019050919050565b6000602082019050818103600083015261320f816131d3565b9050919050565b6000819050919050565b600061322f602084018461246b565b905092915050565b600061324660208401846124a4565b905092915050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261327a57613279613258565b5b83810192508235915060208301925067ffffffffffffffff8211156132a2576132a161324e565b5b6020820236038413156132b8576132b7613253565b5b509250929050565b6000819050919050565b6000602082019050919050565b60006132e383856129b0565b93506132ee826132c0565b8060005b85811015613327576133048284613237565b61330e88826129d1565b9750613319836132ca565b9250506001810190506132f2565b5085925050509392505050565b6000606083016133476000840184613220565b6133546000860182612987565b506133626020840184613237565b61336f6020860182612996565b5061337d604084018461325d565b85830360408701526133908382846132d7565b925050508091505092915050565b60006133aa8383613334565b905092915050565b6000823560016060038336030381126133ce576133cd613258565b5b82810191505092915050565b6000602082019050919050565b60006133f38385612966565b93508360208402850161340584613216565b8060005b8781101561344957848403895261342082846133b2565b61342a858261339e565b9450613435836133da565b925060208a01995050600181019050613409565b50829750879450505050509392505050565b600060208201905081810360008301526134768184866133e7565b90509392505050565b600081905092915050565b600061349582612c6f565b61349f818561347f565b93506134af818560208601612c8b565b80840191505092915050565b60006134c7828461348a565b915081905092915050565b600082825260208201905092915050565b6000819050919050565b60006134f98383612987565b60208301905092915050565b6000602082019050919050565b600061351e83856134d2565b9350613529826134e3565b8060005b858110156135625761353f8284613220565b61354988826134ed565b975061355483613505565b92505060018101905061352d565b5085925050509392505050565b60006040820190506135846000830186612fb5565b8181036020830152613597818486613512565b9050949350505050565b600067ffffffffffffffff8211156135bc576135bb61236c565b5b602082029050602081019050919050565b6000815190506135dc81612454565b92915050565b6000815190506135f18161248d565b92915050565b600067ffffffffffffffff8211156136125761361161236c565b5b602082029050602081019050919050565b6000613636613631846135f7565b6123cc565b9050808382526020820190506020840283018581111561365957613658612413565b5b835b81811015613682578061366e88826135e2565b84526020840193505060208101905061365b565b5050509392505050565b600082601f8301126136a1576136a0612356565b5b81516136b1848260208601613623565b91505092915050565b6000606082840312156136d0576136cf612418565b5b6136da60606123cc565b905060006136ea848285016135cd565b60008301525060206136fe848285016135e2565b602083015250604082015167ffffffffffffffff8111156137225761372161241d565b5b61372e8482850161368c565b60408301525092915050565b600061374d613748846135a1565b6123cc565b905080838252602082019050602084028301858111156137705761376f612413565b5b835b818110156137b757805167ffffffffffffffff81111561379557613794612356565b5b8086016137a289826136ba565b85526020850194505050602081019050613772565b5050509392505050565b600082601f8301126137d6576137d5612356565b5b81516137e684826020860161373a565b91505092915050565b6000602082840312156138055761380461234c565b5b600082015167ffffffffffffffff81111561382357613822612351565b5b61382f848285016137c1565b91505092915050565b600081519050919050565b6000819050602082019050919050565b6000602082019050919050565b600061386b82613838565b61387581856134d2565b935061388083613843565b8060005b838110156138b157815161389888826134ed565b97506138a383613853565b925050600181019050613884565b5085935050505092915050565b600060208201905081810360008301526138d88184613860565b905092915050565b60006040820190506138f56000830185612fb5565b81810360208301526139078184613860565b90509392505050565b600080fd5b600067ffffffffffffffff8211156139305761392f61236c565b5b6139398261235b565b9050602081019050919050565b600061395961395484613915565b6123cc565b90508281526020810184848401111561397557613974613910565b5b613980848285612c8b565b509392505050565b600082601f83011261399d5761399c612356565b5b81516139ad848260208601613946565b91505092915050565b6000602082840312156139cc576139cb61234c565b5b600082015167ffffffffffffffff8111156139ea576139e9612351565b5b6139f684828501613988565b91505092915050565b6000604082019050613a146000830186612fb5565b8181036020830152613a278184866133e7565b9050949350505050565b600060408284031215613a4757613a46612418565b5b613a5160406123cc565b90506000613a61848285016135cd565b6000830152506020613a75848285016135e2565b60208301525092915050565b6000613a94613a8f846123e7565b6123cc565b90508083825260208201905060408402830185811115613ab757613ab6612413565b5b835b81811015613ae05780613acc8882613a31565b845260208401935050604081019050613ab9565b5050509392505050565b600082601f830112613aff57613afe612356565b5b8151613b0f848260208601613a81565b91505092915050565b60008060408385031215613b2f57613b2e61234c565b5b600083015167ffffffffffffffff811115613b4d57613b4c612351565b5b613b5985828601613aea565b9250506020613b6a85828601612fdf565b9150509250929050565b613b7d81612f62565b82525050565b6000604082019050613b986000830185612fb5565b613ba56020830184613b74565b9392505050565b60008160030b9050919050565b613bc281613bac565b8114613bcd57600080fd5b50565b600081519050613bdf81613bb9565b92915050565b600060a08284031215613bfb57613bfa612418565b5b613c0560a06123cc565b90506000613c1584828501612fdf565b6000830152506020613c29848285016135cd565b602083015250604082015167ffffffffffffffff811115613c4d57613c4c61241d565b5b613c5984828501613988565b604083015250606082015167ffffffffffffffff811115613c7d57613c7c61241d565b5b613c8984828501613988565b6060830152506080613c9d848285016135cd565b60808301525092915050565b60008060408385031215613cc057613cbf61234c565b5b6000613cce85828601613bd0565b925050602083015167ffffffffffffffff811115613cef57613cee612351565b5b613cfb85828601613be5565b915050925092905056fea2646970667358221220ce0ec385e026178fde265e0461bd6d13026d919075c5668a1465753b88f3761864736f6c634300080b0033"