[ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "minter", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "mintAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "mintTokens", "type": "uint256" } ], "name": "Mint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "redeemer", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "redeemAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "redeemTokens", "type": "uint256" } ], "name": "Redeem", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "reward", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "bounty", "type": "uint256" } ], "name": "Reinvest", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "totalBalance", "type": "uint256" } ], "name": "Sync", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "constant": true, "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "MINIMUM_LIQUIDITY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "PERMIT_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "REINVEST_BOUNTY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "_underlying", "type": "address" }, { "internalType": "address", "name": "_token0", "type": "address" }, { "internalType": "address", "name": "_token1", "type": "address" }, { "internalType": "address", "name": "_router", "type": "address" }, { "internalType": "address", "name": "_voter", "type": "address" }, { "internalType": "address", "name": "_rewardsToken", "type": "address" }, { "internalType": "address[]", "name": "_bridgeTokens", "type": "address[]" } ], "name": "_initialize", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "_setFactory", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "bridgeTokens", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "currentCumulativePrices", "outputs": [ { "internalType": "uint256", "name": "reserve0Cumulative", "type": "uint256" }, { "internalType": "uint256", "name": "reserve1Cumulative", "type": "uint256" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "exchangeRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "factory", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "gauge", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "getReserves", "outputs": [ { "internalType": "uint112", "name": "reserve0", "type": "uint112" }, { "internalType": "uint112", "name": "reserve1", "type": "uint112" }, { "internalType": "uint32", "name": "blockTimestampLast", "type": "uint32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "getReward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "isStakedLPToken", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "minter", "type": "address" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "mintTokens", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "observationLength", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "observations", "outputs": [ { "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "internalType": "uint256", "name": "reserve0Cumulative", "type": "uint256" }, { "internalType": "uint256", "name": "reserve1Cumulative", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "redeemer", "type": "address" } ], "name": "redeem", "outputs": [ { "internalType": "uint256", "name": "redeemAmount", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "reinvest", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "rewardsToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "router", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "skim", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "stable", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "stakedLPTokenType", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "sync", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "token0", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "token1", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "totalBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "underlying", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" } ]
60806040526002805460ff19908116601217909155600b805490911660011790556149528061002f6000396000f3fe608060405234801561001057600080fd5b50600436106102c85760003560e01c806370a082311161017b578063c45a0155116100d8578063e8bea1671161008c578063f887ea4011610071578063f887ea40146104ee578063fdb5a03e146104f6578063fff6cae9146104fe576102c8565b8063e8bea167146104de578063ebeb31db146104e6576102c8565b8063d21220a7116100bd578063d21220a7146104b0578063d505accf146104b8578063dd62ed3e146104cb576102c8565b8063c45a0155146104a0578063d1af0c7d146104a8576102c8565b8063a6f19c841161012f578063ad7a672f11610114578063ad7a672f1461047d578063ba9a7a5614610485578063bc25cf771461048d576102c8565b8063a6f19c8414610462578063a9059cbb1461046a576102c8565b80637ecebe00116101605780637ecebe001461043457806395a2251f1461044757806395d89b411461045a576102c8565b806370a082311461040e57806370e5a89814610421576102c8565b806330adf81f1161022957806348286f6f116101dd5780636a627842116101c25780636a627842146103eb5780636c2a3bc5146103fe5780636f307dc314610406576102c8565b806348286f6f146103ce5780634a5d316c146103e3576102c8565b80633644e5151161020e5780633644e515146103b65780633ba0b9a9146103be5780633d18b912146103c6576102c8565b806330adf81f14610399578063313ce567146103a1576102c8565b806318160ddd1161028057806322be3de11161026557806322be3de11461036b57806323b872dd14610373578063252c09d714610386576102c8565b806318160ddd1461033f5780631df8c71714610354576102c8565b8063095ea7b3116102b1578063095ea7b3146103025780630a641063146103225780630dfe16811461032a576102c8565b806306fdde03146102cd5780630902f1ac146102eb575b600080fd5b6102d5610506565b6040516102e291906145e7565b60405180910390f35b6102f36105b2565b6040516102e2939291906146f8565b610315610310366004613cda565b610840565b6040516102e291906144fc565b610315610857565b61033261085c565b6040516102e2919061440a565b61034761087d565b6040516102e2919061450a565b61035c610883565b6040516102e293929190614796565b610315610933565b610315610381366004613bf1565b610938565b61035c610394366004613da0565b610a4d565b610347610b05565b6103a9610b29565b6040516102e291906147be565b610347610b32565b610347610b38565b610347610b88565b6103e16103dc366004613b39565b610c33565b005b6103e161101e565b6103476103f9366004613abb565b61109a565b61034761144d565b610332611458565b61034761041c366004613abb565b611474565b61033261042f366004613da0565b611486565b610347610442366004613abb565b6114ba565b610347610455366004613abb565b6114cc565b6102d56116eb565b610332611763565b610315610478366004613cda565b61177f565b61034761178c565b610347611792565b6103e161049b366004613abb565b611798565b6103326118ee565b61033261190a565b610332611926565b6103e16104c6366004613c3e565b611942565b6103476104d9366004613aff565b611986565b6102d56119a3565b6103476119dc565b610332611a84565b6103e1611aa0565b6103e16120be565b6000805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156105aa5780601f1061057f576101008083540402835291602001916105aa565b820191906000526020600020905b81548152906001019060200180831161058d57829003601f168201915b505050505081565b600080600080600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561062357600080fd5b505afa158015610637573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061065b9190810190613d5d565b63ffffffff1692506dffffffffffffffffffffffffffff1692506dffffffffffffffffffffffffffff1692506106908361212a565b955061069b8261212a565b945064010000000081069350600354600014156106bb575061083b915050565b600a54600854604080517f18160ddd000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916318160ddd916004808301926020929190829003018186803b15801561072957600080fd5b505afa15801561073d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107619190810190613dbe565b905061079b6107968261078a856dffffffffffffffffffffffffffff8d1663ffffffff61217c16565b9063ffffffff6121d016565b61212a565b97506107c46107968261078a856dffffffffffffffffffffffffffff8c1663ffffffff61217c16565b96506064886dffffffffffffffffffffffffffff161180156107f657506064876dffffffffffffffffffffffffffff16115b610835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614638565b60405180910390fd5b50505050505b909192565b600061084d338484612212565b5060015b92915050565b600181565b600b54610100900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b6000806000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631df8c7176040518163ffffffff1660e01b815260040160606040518083038186803b1580156108f057600080fd5b505afa158015610904573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109289190810190613ddc565b925092509250909192565b600081565b73ffffffffffffffffffffffffffffffffffffffff831660009081526005602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610a3757604080518082018252601e81527f496d7065726d61783a205452414e534645525f4e4f545f414c4c4f574544000060208083019190915273ffffffffffffffffffffffffffffffffffffffff87166000908152600582528381203382529091529190912054610a0591849063ffffffff61228716565b73ffffffffffffffffffffffffffffffffffffffff851660009081526005602090815260408083203384529091529020555b610a428484846122cd565b5060015b9392505050565b6008546040517f252c09d70000000000000000000000000000000000000000000000000000000081526000918291829173ffffffffffffffffffffffffffffffffffffffff169063252c09d790610aa890879060040161450a565b60606040518083038186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610af89190810190613ddc565b9250925092509193909250565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60025460ff1681565b60065481565b600354600a5460009190811580610b4d575080155b15610b6457670de0b6b3a764000092505050610b85565b610b808261078a83670de0b6b3a764000063ffffffff61217c16565b925050505b90565b600b5460009060ff16610bc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c906146e8565b600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055333214610bfb57600080fd5b610c036123dc565b9050600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905590565b60095473ffffffffffffffffffffffffffffffffffffffff1615610c83576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c906146b8565b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055604080518082018252601181527f5374616b656420556e69737761702056320000000000000000000000000000006020808301919091528251808401909352600b83527f53544b442d554e492d563200000000000000000000000000000000000000000090830152610d1e91612482565b600880547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff8b811691909117909255600b80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101008b851602179055600c80548216898416179055600d80549091168783161790556040517faa3f22b80000000000000000000000000000000000000000000000000000000081529085169063aa3f22b890610dec908b9060040161440a565b60206040518083038186803b158015610e0457600080fd5b505afa158015610e18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e3c9190810190613ae1565b600e80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff928316179081905516610eb6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c906146d8565b600f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8516179055610f0260108383613825565b50610f4a73ffffffffffffffffffffffffffffffffffffffff8416867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff63ffffffff61257016565b600e54610f979073ffffffffffffffffffffffffffffffffffffffff8a811691167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff63ffffffff61257016565b60005b818110156110135761100b867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff858585818110610fd357fe5b9050602002016020610fe89190810190613abb565b73ffffffffffffffffffffffffffffffffffffffff16919063ffffffff61257016565b600101610f9a565b505050505050505050565b60095473ffffffffffffffffffffffffffffffffffffffff161561106e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614608565b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055565b600b5460009060ff166110d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c906146e8565b600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556008546000906111269073ffffffffffffffffffffffffffffffffffffffff1661269a565b600e546040517f70a0823100000000000000000000000000000000000000000000000000000000815291925060009173ffffffffffffffffffffffffffffffffffffffff909116906370a082319061118290309060040161440a565b60206040518083038186803b15801561119a57600080fd5b505afa1580156111ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111d29190810190613dbe565b600e546040517fb6b55f2500000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063b6b55f259061122990859060040161450a565b600060405180830381600087803b15801561124357600080fd5b505af1158015611257573d6000803e3d6000fd5b5050600e546040517f70a082310000000000000000000000000000000000000000000000000000000081526000935073ffffffffffffffffffffffffffffffffffffffff90911691506370a08231906112b490309060040161440a565b60206040518083038186803b1580156112cc57600080fd5b505afa1580156112e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113049190810190613dbe565b9050611339611311610b38565b61078a670de0b6b3a764000061132d858763ffffffff61273f16565b9063ffffffff61217c16565b93506003546000141561136757611358846103e863ffffffff61273f16565b935061136760006103e8612781565b600084116113a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614618565b6113ab8585612781565b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2f00e3cdd69a77be7ed215ec7b2a36784dd158f921fca79ac29deffa353fe6ee858760405161140a929190614788565b60405180910390a350505061141d612835565b600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055919050565b66470de4df82000081565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b60046020526000908152604090205481565b6010818154811061149357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60076020526000908152604090205481565b600b5460009060ff1661150b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c906146e8565b600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905530600090815260046020526040902054611567670de0b6b3a764000061078a61155a610b38565b849063ffffffff61217c16565b9150600082116115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614658565b600a548211156115df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c906146a8565b6115e9308261291f565b600e546040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690632e1a7d4d9061163f90859060040161450a565b600060405180830381600087803b15801561165957600080fd5b505af115801561166d573d6000803e3d6000fd5b5050505061167b83836129dc565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f3f693fff038bb8a046aa76d9516190ac7444f7d69cf952c4cbdc086fdef2d6fc84846040516116da929190614788565b60405180910390a35061141d612835565b60018054604080516020600284861615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156105aa5780601f1061057f576101008083540402835291602001916105aa565b600e5473ffffffffffffffffffffffffffffffffffffffff1681565b600061084d3384846122cd565b600a5481565b6103e881565b600b5460ff166117d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c906146e8565b600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600a546008546040517f70a082310000000000000000000000000000000000000000000000000000000081526118c09284926118bb9273ffffffffffffffffffffffffffffffffffffffff909116906370a082319061185f90309060040161440a565b60206040518083038186803b15801561187757600080fd5b505afa15801561188b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118af9190810190613dbe565b9063ffffffff61273f16565b6129dc565b50600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b60095473ffffffffffffffffffffffffffffffffffffffff1681565b600f5473ffffffffffffffffffffffffffffffffffffffff1681565b600c5473ffffffffffffffffffffffffffffffffffffffff1681565b611972878787878787877f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9612b96565b61197d878787612212565b50505050505050565b600560209081526000928352604080842090915290825290205481565b6040518060400160405280600c81526020017f536f6c69646c794261736536000000000000000000000000000000000000000081525081565b600854604080517febeb31db000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163ebeb31db916004808301926020929190829003018186803b158015611a4757600080fd5b505afa158015611a5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a7f9190810190613dbe565b905090565b600d5473ffffffffffffffffffffffffffffffffffffffff1681565b600b5460ff16611adc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c906146e8565b600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055333214611b1057600080fd5b6000611b1a6123dc565b905080611b275750612089565b6000670de0b6b3a7640000611b498366470de4df82000063ffffffff61217c16565b81611b5057fe5b600f549190049150611b7f9073ffffffffffffffffffffffffffffffffffffffff16338363ffffffff612d6116565b600f54600b546000918291610100900473ffffffffffffffffffffffffffffffffffffffff90811691161480611bd25750600f54600c5473ffffffffffffffffffffffffffffffffffffffff9081169116145b15611c5c57600f54600b54610100900473ffffffffffffffffffffffffffffffffffffffff908116911614611c2c57600c54600b5473ffffffffffffffffffffffffffffffffffffffff9182169161010090910416611c52565b600b54600c5473ffffffffffffffffffffffffffffffffffffffff610100909204821691165b9092509050611e34565b600080611c67612e84565b600f549193509150611c9f9073ffffffffffffffffffffffffffffffffffffffff1683611c9a898963ffffffff61273f16565b61335d565b600b5473ffffffffffffffffffffffffffffffffffffffff838116610100909204161480611ce75750600c5473ffffffffffffffffffffffffffffffffffffffff8381169116145b15611d6e57600b5473ffffffffffffffffffffffffffffffffffffffff8381166101009092041614611d3e57600c54600b5473ffffffffffffffffffffffffffffffffffffffff9182169161010090910416611d64565b600b54600c5473ffffffffffffffffffffffffffffffffffffffff610100909204821691165b9094509250611e31565b611dd4828215611d9657600c5473ffffffffffffffffffffffffffffffffffffffff16611db5565b600b54610100900473ffffffffffffffffffffffffffffffffffffffff165b611c9a8573ffffffffffffffffffffffffffffffffffffffff1661269a565b8015611e0557600c54600b5473ffffffffffffffffffffffffffffffffffffffff9182169161010090910416611e2b565b600b54600c5473ffffffffffffffffffffffffffffffffffffffff610100909204821691165b90945092505b50505b6000611e558373ffffffffffffffffffffffffffffffffffffffff1661269a565b905060008111611e6157fe5b600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611ecc57600080fd5b505afa158015611ee0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f049190810190613d5d565b50600b546dffffffffffffffffffffffffffff92831694509116915060009073ffffffffffffffffffffffffffffffffffffffff8781166101009092041614611f4d5781611f4f565b825b90506000611f5d858361343e565b9050611f6a87878361335d565b6000611fa58888611f81898663ffffffff61273f16565b611fa08b73ffffffffffffffffffffffffffffffffffffffff1661269a565b6134bf565b600e546040517fb6b55f2500000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063b6b55f2590611ffc90849060040161450a565b600060405180830381600087803b15801561201657600080fd5b505af115801561202a573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff167fc003f45bc224d116b6d079100d4ab57a5b9633244c47a5a92a176c5b79a85f288b8b604051612076929190614788565b60405180910390a2505050505050505050505b612091612835565b600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b600b5460ff166120fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c906146e8565b600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055612091612835565b60006e0100000000000000000000000000008210612174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614678565b50805b919050565b60008261218b57506000610851565b8282028284828161219857fe5b0414610a46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614688565b6000610a4683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613599565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526005602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061227a90859061450a565b60405180910390a3505050565b600081848411156122c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c91906145e7565b505050900390565b604080518082018252601b81527f496d7065726d61783a205452414e534645525f544f4f5f48494748000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff861660009081526004909152919091205461233b91839063ffffffff61228716565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260046020526040808220939093559084168152205461237d908263ffffffff6135ea16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526004602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061227a90859061450a565b600e54604080517f3d18b912000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691633d18b912916004808301928692919082900301818387803b15801561244757600080fd5b505af115801561245b573d6000803e3d6000fd5b5050600f54611a7f925073ffffffffffffffffffffffffffffffffffffffff16905061269a565b81516124959060009060208501906138ad565b5080516124a99060019060208401906138ad565b5060405146906124b8906143ff565b6040805191829003822085516020808801919091208484018452600185527f31000000000000000000000000000000000000000000000000000000000000009482019490945291516125329391927fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6918691309101614567565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120600655505050565b600060608473ffffffffffffffffffffffffffffffffffffffff1663095ea7b385856040516024016125a39291906144e1565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516125f191906143c2565b6000604051808303816000865af19150503d806000811461262e576040519150601f19603f3d011682016040523d82523d6000602084013e612633565b606091505b509150915081801561265d57508051158061265d57508080602001905161265d9190810190613d3f565b612693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614628565b5050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8316906370a08231906126ef90309060040161440a565b60206040518083038186803b15801561270757600080fd5b505afa15801561271b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108519190810190613dbe565b6000610a4683836040518060400160405280601f81526020017f536166654d6174683a207375627472616374696f6e20756e646572666c6f7700815250612287565b600354612794908263ffffffff6135ea16565b60035573ffffffffffffffffffffffffffffffffffffffff82166000908152600460205260409020546127cd908263ffffffff6135ea16565b73ffffffffffffffffffffffffffffffffffffffff83166000818152600460205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061282990859061450a565b60405180910390a35050565b600e546040517f70a0823100000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906370a082319061288c90309060040161440a565b60206040518083038186803b1580156128a457600080fd5b505afa1580156128b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128dc9190810190613dbe565b905080600a819055507f8a0df8ef054fae2c3d2d19a7b322e864870cc9fd3cb07fb9526309c596244bf481604051612914919061450a565b60405180910390a150565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040902054612955908263ffffffff61273f16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602052604090205560035461298e908263ffffffff61273f16565b60035560405160009073ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061282990859061450a565b600854604080518082018252601981527f7472616e7366657228616464726573732c75696e7432353629000000000000006020909101525160009160609173ffffffffffffffffffffffffffffffffffffffff909116907fa9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b90612a6590879087906024016144e1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051612aee91906143c2565b6000604051808303816000865af19150503d8060008114612b2b576040519150601f19603f3d011682016040523d82523d6000602084013e612b30565b606091505b5091509150818015612b5a575080511580612b5a575080806020019051612b5a9190810190613d3f565b612b90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c906146c8565b50505050565b42851015612bd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c906145f8565b60065473ffffffffffffffffffffffffffffffffffffffff891660009081526007602090815260408083208054600181019091559051929392612c1e9286928e928e928e92918e9101614518565b60405160208183030381529060405280519060200120604051602001612c459291906143ce565b604051602081830303815290604052805190602001209050600060018287878760405160008152602001604052604051612c8294939291906145a9565b6020604051602081039080840390855afa158015612ca4573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590612d1f57508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b612d55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614668565b50505050505050505050565b600060608473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401612d949291906144e1565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051612de291906143c2565b6000604051808303816000865af19150503d8060008114612e1f576040519150601f19603f3d011682016040523d82523d6000602084013e612e24565b606091505b5091509150818015612e4e575080511580612e4e575080806020019051612e4e9190810190613d3f565b612693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614698565b600080805b601054811015612f8d5760108181548110612ea057fe5b600091825260209091200154600b54610100900473ffffffffffffffffffffffffffffffffffffffff90811691161415612f0d5760108181548110612ee157fe5b600091825260208220015473ffffffffffffffffffffffffffffffffffffffff16935091506133599050565b60108181548110612f1a57fe5b600091825260209091200154600c5473ffffffffffffffffffffffffffffffffffffffff90811691161415612f855760108181548110612f5657fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff169250600191506133599050565b600101612e89565b50600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015612ff957600080fd5b505afa15801561300d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506130319190810190613d5d565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff16915061305e613927565b5060408051808201909152600b5473ffffffffffffffffffffffffffffffffffffffff61010090910481168252600c5416602082015261309c613927565b604051806040016040528085815260200184815250905060106000815481106130c157fe5b600091825260208083209190910154600d54604080517fc45a0155000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169b5094995089948594939092169263c45a015592600480840193829003018186803b15801561314257600080fd5b505afa158015613156573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061317a9190810190613ae1565b905060005b6010548110156133515760005b60028110156133485760008373ffffffffffffffffffffffffffffffffffffffff16636801cc308884600281106131bf57fe5b6020020151601086815481106131d157fe5b60009182526020822001546040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815261322f939273ffffffffffffffffffffffffffffffffffffffff9092169190600401614433565b60206040518083038186803b15801561324757600080fd5b505afa15801561325b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061327f9190810190613ae1565b905073ffffffffffffffffffffffffffffffffffffffff81166132a25750613340565b60006132fb8784600281106132b357fe5b602002015161078a670de0b6b3a764000061132d868d89600281106132d457fe5b602002015173ffffffffffffffffffffffffffffffffffffffff169063ffffffff61362916565b90508581111561333d57809550829a506010848154811061331857fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff169b505b50505b60010161318c565b5060010161317f565b505050505050505b9091565b61336783826136ce565b600d546040517f13dcfc5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906313dcfc59906133ca90849060009088908890839030904290600401614720565b600060405180830381600087803b1580156133e457600080fd5b505af11580156133f8573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612b909190810190613d0a565b6000806134536107cd8463ffffffff61217c16565b90506000613471610f9461132d8681896103e863ffffffff61217c16565b9050600061349d6134988361348c868063ffffffff61217c16565b9063ffffffff6135ea16565b6137d4565b90506134b56107ca61078a838663ffffffff61273f16565b9695505050505050565b60006134cb85846136ce565b6134d584836136ce565b600d546040517f5a47ddc300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690635a47ddc39061353c908890889060009089908990839081903090429060040161445b565b606060405180830381600087803b15801561355657600080fd5b505af115801561356a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061358e9190810190613ddc565b979650505050505050565b600081836135d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c91906145e7565b5060008385816135e057fe5b0495945050505050565b600082820183811015610a46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90614648565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8416906370a082319061367e90859060040161440a565b60206040518083038186803b15801561369657600080fd5b505afa1580156136aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a469190810190613dbe565b600d546040517fdd62ed3e000000000000000000000000000000000000000000000000000000008152829173ffffffffffffffffffffffffffffffffffffffff8086169263dd62ed3e92613729923092911690600401614418565b60206040518083038186803b15801561374157600080fd5b505afa158015613755573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506137799190810190613dbe565b10613783576137d0565b600d546137d09073ffffffffffffffffffffffffffffffffffffffff84811691167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff63ffffffff61257016565b5050565b60006003821115613817575080600160028204015b818110156138115780915060028182858161380057fe5b04018161380957fe5b0490506137e9565b50612177565b811561217757506001919050565b82805482825590600052602060002090810192821561389d579160200282015b8281111561389d5781547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff843516178255602090920191600190910190613845565b506138a9929150613945565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106138ee57805160ff191683800117855561391b565b8280016001018555821561391b579182015b8281111561391b578251825591602001919060010190613900565b506138a9929150613981565b60405180604001604052806002906020820280388339509192915050565b610b8591905b808211156138a95780547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560010161394b565b610b8591905b808211156138a95760008155600101613987565b8035610851816148cb565b8051610851816148cb565b60008083601f8401126139c357600080fd5b50813567ffffffffffffffff8111156139db57600080fd5b6020830191508360208202830111156139f357600080fd5b9250929050565b600082601f830112613a0b57600080fd5b8151613a1e613a19826147f3565b6147cc565b91508181835260208401935060208101905083856020840282011115613a4357600080fd5b60005b83811015613a6f5781613a598882613a9a565b8452506020928301929190910190600101613a46565b5050505092915050565b8051610851816148e2565b8035610851816148eb565b8051610851816148f4565b8051610851816148eb565b8051610851816148fd565b803561085181614906565b600060208284031215613acd57600080fd5b6000613ad9848461399b565b949350505050565b600060208284031215613af357600080fd5b6000613ad984846139a6565b60008060408385031215613b1257600080fd5b6000613b1e858561399b565b9250506020613b2f8582860161399b565b9150509250929050565b60008060008060008060008060e0898b031215613b5557600080fd5b6000613b618b8b61399b565b9850506020613b728b828c0161399b565b9750506040613b838b828c0161399b565b9650506060613b948b828c0161399b565b9550506080613ba58b828c0161399b565b94505060a0613bb68b828c0161399b565b93505060c089013567ffffffffffffffff811115613bd357600080fd5b613bdf8b828c016139b1565b92509250509295985092959890939650565b600080600060608486031215613c0657600080fd5b6000613c12868661399b565b9350506020613c238682870161399b565b9250506040613c3486828701613a84565b9150509250925092565b600080600080600080600060e0888a031215613c5957600080fd5b6000613c658a8a61399b565b9750506020613c768a828b0161399b565b9650506040613c878a828b01613a84565b9550506060613c988a828b01613a84565b9450506080613ca98a828b01613ab0565b93505060a0613cba8a828b01613a84565b92505060c0613ccb8a828b01613a84565b91505092959891949750929550565b60008060408385031215613ced57600080fd5b6000613cf9858561399b565b9250506020613b2f85828601613a84565b600060208284031215613d1c57600080fd5b815167ffffffffffffffff811115613d3357600080fd5b613ad9848285016139fa565b600060208284031215613d5157600080fd5b6000613ad98484613a79565b600080600060608486031215613d7257600080fd5b6000613d7e8686613a8f565b9350506020613d8f86828701613a8f565b9250506040613c3486828701613aa5565b600060208284031215613db257600080fd5b6000613ad98484613a84565b600060208284031215613dd057600080fd5b6000613ad98484613a9a565b600080600060608486031215613df157600080fd5b6000613dfd8686613a9a565b9350506020613e0e86828701613a9a565b9250506040613c3486828701613a9a565b613e2881614821565b82525050565b613e288161482c565b613e2881610b85565b613e28613e4c82610b85565b610b85565b6000613e5c82614814565b613e668185612177565b9350613e76818560208601614877565b9290920192915050565b613e288161486c565b6000613e9482614814565b613e9e8185614818565b9350613eae818560208601614877565b613eb7816148a3565b9093019392505050565b6000613ece601183614818565b7f496d7065726d61783a2045585049524544000000000000000000000000000000815260200192915050565b6000613f07601d83614818565b7f496d7065726d61783a20464143544f52595f414c52454144595f534554000000815260200192915050565b6000613f40601f83614818565b7f5374616b65644c50546f6b656e3a204d494e545f414d4f554e545f5a45524f00815260200192915050565b6000613f79600c83614818565b7f2173616665417070726f76650000000000000000000000000000000000000000815260200192915050565b6000613fb2602483614818565b7f5374616b65644c50546f6b656e3a20494e53554646494349454e545f5245534581527f5256455300000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000614011600283612177565b7f1901000000000000000000000000000000000000000000000000000000000000815260020192915050565b600061404a601b83614818565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000614083602183614818565b7f5374616b65644c50546f6b656e3a2052454445454d5f414d4f554e545f5a455281527f4f00000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b60006140e2601b83614818565b7f496d7065726d61783a20494e56414c49445f5349474e41545552450000000000815260200192915050565b600061411b601683614818565b7f5374616b65644c50546f6b656e3a205341464531313200000000000000000000815260200192915050565b6000614154605283612177565b7f454950373132446f6d61696e28737472696e67206e616d652c737472696e672081527f76657273696f6e2c75696e7432353620636861696e49642c616464726573732060208201527f766572696679696e67436f6e7472616374290000000000000000000000000000604082015260520192915050565b60006141d9602183614818565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000614238600d83614818565b7f21736166655472616e7366657200000000000000000000000000000000000000815260200192915050565b6000614271602083614818565b7f5374616b65644c50546f6b656e3a20494e53554646494349454e545f43415348815260200192915050565b60006142aa602283614818565b7f5374616b65644c50546f6b656e3a20464143544f52595f414c52454144595f5381527f4554000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000614309601983614818565b7f496d7065726d61783a205452414e534645525f4641494c454400000000000000815260200192915050565b6000614342601783614818565b7f5374616b65644c50546f6b656e3a204e4f5f4741554745000000000000000000815260200192915050565b600061437b601383614818565b7f496d7065726d61783a205245454e544552454400000000000000000000000000815260200192915050565b613e2881614831565b613e288161485d565b613e2881614866565b6000610a468284613e51565b60006143d982614004565b91506143e58285613e40565b6020820191506143f58284613e40565b5060200192915050565b600061085182614147565b602081016108518284613e1f565b604081016144268285613e1f565b610a466020830184613e1f565b606081016144418286613e1f565b61444e6020830185613e1f565b613ad96040830184613e2e565b610120810161446a828c613e1f565b614477602083018b613e1f565b614484604083018a613e2e565b6144916060830189613e37565b61449e6080830188613e37565b6144ab60a0830187613e80565b6144b860c0830186613e80565b6144c560e0830185613e1f565b6144d3610100830184613e37565b9a9950505050505050505050565b604081016144ef8285613e1f565b610a466020830184613e37565b602081016108518284613e2e565b602081016108518284613e37565b60c081016145268289613e37565b6145336020830188613e1f565b6145406040830187613e1f565b61454d6060830186613e37565b61455a6080830185613e37565b61358e60a0830184613e37565b60a081016145758288613e37565b6145826020830187613e37565b61458f6040830186613e37565b61459c6060830185613e37565b6134b56080830184613e1f565b608081016145b78287613e37565b6145c460208301866143b9565b6145d16040830185613e37565b6145de6060830184613e37565b95945050505050565b60208082528101610a468184613e89565b6020808252810161085181613ec1565b6020808252810161085181613efa565b6020808252810161085181613f33565b6020808252810161085181613f6c565b6020808252810161085181613fa5565b602080825281016108518161403d565b6020808252810161085181614076565b60208082528101610851816140d5565b602080825281016108518161410e565b60208082528101610851816141cc565b602080825281016108518161422b565b6020808252810161085181614264565b602080825281016108518161429d565b60208082528101610851816142fc565b6020808252810161085181614335565b602080825281016108518161436e565b6060810161470682866143a7565b61471360208301856143a7565b613ad960408301846143b0565b60e0810161472e828a613e37565b61473b6020830189613e80565b6147486040830188613e1f565b6147556060830187613e1f565b6147626080830186613e2e565b61476f60a0830185613e1f565b61477c60c0830184613e37565b98975050505050505050565b604081016144ef8285613e37565b606081016147a48286613e37565b6147b16020830185613e37565b613ad96040830184613e37565b6020810161085182846143b9565b60405181810167ffffffffffffffff811182821017156147eb57600080fd5b604052919050565b600067ffffffffffffffff82111561480a57600080fd5b5060209081020190565b5190565b90815260200190565b600061085182614844565b151590565b6dffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b63ffffffff1690565b60ff1690565b600061085182610b85565b60005b8381101561489257818101518382015260200161487a565b83811115612b905750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b6148d481614821565b81146148df57600080fd5b50565b6148d48161482c565b6148d481610b85565b6148d481614831565b6148d48161485d565b6148d48161486656fea365627a7a723158201090f23c7495fa04861edeb1b2ca9a99fb735094374cb5b9acd3092078c3d4576c6578706572696d656e74616cf564736f6c63430005100040