New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@perp/curie-contract

Package Overview
Dependencies
Maintainers
7
Versions
68
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@perp/curie-contract - npm Package Compare versions

Comparing version 0.14.0-staging to 0.15.0-staging

artifacts/contracts/lib/SwapMath.sol/SwapMath.json

187

artifacts/contracts/AccountBalance.sol/AccountBalance.json

@@ -63,33 +63,2 @@ {

"internalType": "address",
"name": "trader",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "baseToken",
"type": "address"
},
{
"indexed": false,
"internalType": "int256",
"name": "deltaBase",
"type": "int256"
},
{
"indexed": false,
"internalType": "int256",
"name": "deltaQuote",
"type": "int256"
}
],
"name": "TakerBalancesChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "vault",

@@ -103,48 +72,2 @@ "type": "address"

{
"inputs": [
{
"internalType": "address",
"name": "trader",
"type": "address"
},
{
"internalType": "int256",
"name": "delta",
"type": "int256"
}
],
"name": "addOwedRealizedPnl",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "trader",
"type": "address"
},
{
"internalType": "address",
"name": "baseToken",
"type": "address"
},
{
"internalType": "int256",
"name": "deltaTakerBase",
"type": "int256"
},
{
"internalType": "int256",
"name": "deltaTakerQuote",
"type": "int256"
}
],
"name": "addTakerBalances",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],

@@ -199,3 +122,3 @@ "name": "candidate",

"internalType": "int256",
"name": "takerBaseBalance",
"name": "takerPositionSize",
"type": "int256"

@@ -205,3 +128,3 @@ },

"internalType": "int256",
"name": "takerQuoteBalance",
"name": "takerOpenNotional",
"type": "int256"

@@ -293,15 +216,2 @@ },

{
"inputs": [],
"name": "getExchange",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [

@@ -326,26 +236,2 @@ {

{
"inputs": [
{
"internalType": "address",
"name": "trader",
"type": "address"
}
],
"name": "getNetQuoteBalanceAndPendingFee",
"outputs": [
{
"internalType": "int256",
"name": "netQuoteBalance",
"type": "int256"
},
{
"internalType": "uint256",
"name": "pendingFee",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],

@@ -615,3 +501,3 @@ "name": "getOrderBook",

"internalType": "address",
"name": "exchangeArg",
"name": "orderBookArg",
"type": "address"

@@ -626,2 +512,59 @@ }

{
"inputs": [
{
"internalType": "address",
"name": "trader",
"type": "address"
},
{
"internalType": "int256",
"name": "amount",
"type": "int256"
}
],
"name": "modifyOwedRealizedPnl",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "trader",
"type": "address"
},
{
"internalType": "address",
"name": "baseToken",
"type": "address"
},
{
"internalType": "int256",
"name": "base",
"type": "int256"
},
{
"internalType": "int256",
"name": "quote",
"type": "int256"
}
],
"name": "modifyTakerBalance",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
},
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],

@@ -717,3 +660,3 @@ "name": "owner",

"internalType": "int256",
"name": "deltaTakerBase",
"name": "takerBase",
"type": "int256"

@@ -723,3 +666,3 @@ },

"internalType": "int256",
"name": "deltaTakerQuote",
"name": "takerQuote",
"type": "int256"

@@ -780,3 +723,3 @@ },

],
"name": "settleQuoteToPnl",
"name": "settleQuoteToOwedRealizedPnl",
"outputs": [],

@@ -817,6 +760,6 @@ "stateMutability": "nonpayable",

],
"bytecode": "0x608060405234801561001057600080fd5b50612c53806100206000396000f3fe608060405234801561001057600080fd5b50600436106101ac5760003560e01c806313af4035146101b1578063293a5077146101c65780632e4586c3146101ef57806337724702146102025780633f93510714610215578063449323d814610228578063485cc9551461023b5780634c294e5f1461024e5780636332fef61461026f5780636817031b1461028f57806368f12e12146102a25780636c8381f8146102b55780636ccdc82e146102ca578063715018a6146102dd5780637a5b45a0146102e557806389f92177146102f85780638d928af81461030b5780638da5cb5b14610313578063aa2a82941461031b578063af74e73614610323578063b248c4ef14610343578063b2e271481461034b578063b39456901461035e578063b3bd6e1214610371578063bba85bcf14610384578063bc5920ba146103a6578063c575ff79146103ae578063cb3c7b8e146103b6578063d50d01b7146103d6578063ea45a8f9146103e9578063f0c79797146103fc578063f75c266d1461040f578063f807cd2214610422578063fa8e30af1461042a578063fc7372141461043d578063fd6ceee514610450575b600080fd5b6101c46101bf366004612580565b610463565b005b6101d96101d4366004612580565b6105be565b6040516101e6919061296e565b60405180910390f35b6101c46101fd3660046125f0565b6106bf565b6101c46102103660046126cd565b610731565b6101d96102233660046125b8565b61079e565b6101c4610236366004612580565b6107e0565b6101c46102493660046125b8565b610887565b61026161025c366004612580565b610a6e565b6040516101e692919061298d565b61028261027d3660046125b8565b610bb2565b6040516101e69190612b1b565b6101c461029d366004612580565b610c09565b6101d96102b03660046125b8565b610cde565b6102bd610e6e565b6040516101e69190612868565b6101d96102d8366004612580565b610e7d565b6101c4610f46565b6101d96102f33660046125b8565b610fe7565b6101c4610306366004612675565b6110b5565b6102bd6111ec565b6102bd6111fb565b6102bd61120a565b610336610331366004612580565b611219565b6040516101e69190612916565b6102bd61128f565b6101d96103593660046125b8565b61129e565b6101d961036c3660046125b8565b6112e6565b6101d961037f3660046125b8565b611392565b610397610392366004612580565b611456565b6040516101e693929190612977565b6101c4611520565b6102bd61160c565b6103c96103c4366004612580565b61161b565b6040516101e69190612963565b6101d96103e43660046125b8565b6116af565b6101c46103f7366004612630565b6116dd565b6101c461040a3660046125f0565b61174e565b6101d961041d366004612580565b611793565b6102bd611830565b6101c46104383660046125b8565b61183f565b6101c461044b3660046125b8565b611851565b6101d961045e366004612580565b6119aa565b61046b611a07565b6001600160a01b031661047c6111fb565b6001600160a01b0316146104c0576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038116610504576040805162461bcd60e51b81526020600482015260066024820152650534f5f4e57360d41b604482015290519081900360640190fd5b6033546001600160a01b0382811691161415610550576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414f60d01b604482015290519081900360640190fd5b6034546001600160a01b038281169116141561059c576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414360d01b604482015290519081900360640190fd5b603480546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166000908152609f602052604081205481908190815b8181101561068d576001600160a01b0386166000908152609f6020526040812080548390811061060957fe5b60009182526020822001546001600160a01b031691506106298883611392565b905060008082121561065c5761065961064961064485611a0b565b611b0e565b8390670de0b6b3a7640000611b5a565b90505b6106668682611c00565b955061067c6106758a85610fe7565b8890611c00565b965050600190920191506105dd9050565b5060008084121561069e57836106a1565b60005b90506106b56106b08285611c00565b611c65565b9695505050505050565b609b546001600160a01b03166106d3611a07565b6001600160a01b0316146107025760405162461bcd60e51b81526004016106f990612a9a565b60405180910390fd5b6001600160a01b03928316600090815260a0602090815260408083209490951682529290925291902060020155565b609b546001600160a01b0316610745611a07565b6001600160a01b0316148061077457506067546001600160a01b0316610769611a07565b6001600160a01b0316145b6107905760405162461bcd60e51b81526004016106f990612a76565b61079a8282611c8e565b5050565b6000806107ab8484610cde565b9050806107bc5760009150506107da565b60006107c784611a0b565b90506107d561064982611b0e565b925050505b92915050565b6107e8611a07565b6001600160a01b03166107f96111fb565b6001600160a01b03161461083d576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b606780546001600160a01b0319166001600160a01b0383169081179091556040517fd0654f5900f9e7e4e605a19334306e6a2786bbf960ac0484a4c12feb6428fe2f90600090a250565b600054610100900460ff16806108a057506108a0611d10565b806108ae575060005460ff16155b6108e95760405162461bcd60e51b815260040180806020018281038252602e815260200180612b84602e913960400191505060405180910390fd5b600054610100900460ff16158015610914576000805460ff1961ff0019909116610100171660011790555b610926836001600160a01b0316611d21565b6109425760405162461bcd60e51b81526004016106f99061299b565b610954826001600160a01b0316611d21565b6109705760405162461bcd60e51b81526004016106f9906129de565b6000826001600160a01b031663b248c4ef6040518163ffffffff1660e01b815260040160206040518083038186803b1580156109ab57600080fd5b505afa1580156109bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e3919061259c565b90506109f7816001600160a01b0316611d21565b610a135760405162461bcd60e51b81526004016106f990612a55565b610a1b611d27565b609a80546001600160a01b038087166001600160a01b031992831617909255609b8054868416908316179055609c80549390921692169190911790558015610a69576000805461ff00191690555b505050565b6001600160a01b0381166000908152609f602052604081205481908190815b81811015610b06576001600160a01b0386166000908152609f60205260408120805483908110610ab957fe5b60009182526020808320909101546001600160a01b038a8116845260a08352604080852091909216808552925290912060010154909150610afb908590611c00565b935050600101610a8d565b50609c546001600160a01b038681166000908152609f6020526040808220905163d0581a9360e01b81529193929092169163d0581a9391610b4b918a916004016128ba565b604080518083038186803b158015610b6257600080fd5b505afa158015610b76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9a91906127c5565b94509050610ba88382611c00565b9450505050915091565b610bba61255f565b506001600160a01b03918216600090815260a060209081526040808320939094168252918252829020825160608101845281548152600182015492810192909252600201549181019190915290565b610c11611a07565b6001600160a01b0316610c226111fb565b6001600160a01b031614610c66576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b610c78816001600160a01b0316611d21565b610c945760405162461bcd60e51b81526004016106f990612ad9565b609d80546001600160a01b0319166001600160a01b0383169081179091556040517fa49691f0dd6477ccef49962612a236d252e3a31c3be8b61fa6abeff3e74a757290600090a250565b609c54604051635d8a541d60e01b815260009182916001600160a01b0390911690635d8a541d90610d189087908790600190600401612896565b604080518083038186803b158015610d2f57600080fd5b505afa158015610d43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6791906127c5565b50609c54604051637c2b7c5360e01b81529192506000916001600160a01b0390911690637c2b7c5390610da39088908890600190600401612896565b60206040518083038186803b158015610dbb57600080fd5b505afa158015610dcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df3919061280b565b90506000610e12610e0383611b0e565b610e0c85611b0e565b90611dd1565b6001600160a01b03808816600090815260a060209081526040808320938a16835292905290812054919250610e478383611c00565b9050600a610e5482611c65565b10610e5f5780610e62565b60005b98975050505050505050565b6034546001600160a01b031690565b6001600160a01b0381166000908152609f6020908152604080832080548251818502810185019093528083528493830182828015610ee457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ec6575b505050505090506000808251905060005b81811015610f3c576000848281518110610f0b57fe5b602002602001015190506000610f246106b0898461079e565b9050610f308582611e36565b94505050600101610ef5565b5090949350505050565b610f4e611a07565b6001600160a01b0316610f5f6111fb565b6001600160a01b031614610fa3576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6033546040516000916001600160a01b031690600080516020612bb2833981519152908390a3603380546001600160a01b0319908116909155603480549091169055565b609c54604051637c2b7c5360e01b815260009182916001600160a01b0390911690637c2b7c539061102090879087908690600401612896565b60206040518083038186803b15801561103857600080fd5b505afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611070919061280b565b90506110ad61107e82611b0e565b6001600160a01b03808716600090815260a0602090815260408083209389168352929052206001015490611dd1565b949350505050565b6110bd611e8e565b6110c78682611c8e565b6110d386868686611eca565b6110dd868661129e565b15801561116e5750609c546040516321b499f560e11b81526001600160a01b039091169063436933ea90611117908990899060040161287c565b60006040518083038186803b15801561112f57600080fd5b505afa158015611143573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261116b91908101906126f8565b51155b156111cf576001600160a01b03808716600090815260a060209081526040808320938916835292905220600101546111a581611c65565b6111ae84611c65565b11156111cc5760405162461bcd60e51b81526004016106f990612af9565b91505b6111da868684611f18565b6111e48686611f5b565b505050505050565b609d546001600160a01b031690565b6033546001600160a01b031690565b609a546001600160a01b031690565b6001600160a01b0381166000908152609f602090815260409182902080548351818402810184019094528084526060939283018282801561128357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611265575b50505050509050919050565b609c546001600160a01b031690565b6001600160a01b03808316600090815260a060209081526040808320938516835292905290812054600a6112d182611c65565b106112dc57806110ad565b5060009392505050565b609c54604051635d8a541d60e01b815260009182916001600160a01b0390911690635d8a541d9061131f90879087908690600401612896565b604080518083038186803b15801561133657600080fd5b505afa15801561134a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136e91906127c5565b509050600061137d8585610fe7565b90506107d58161138c84611b0e565b90611c00565b609c54604051637c2b7c5360e01b815260009182916001600160a01b0390911690637c2b7c53906113cc9087908790600190600401612896565b60206040518083038186803b1580156113e457600080fd5b505afa1580156113f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141c919061280b565b90506110ad61142a82611b0e565b6001600160a01b03808716600090815260a0602090815260408083209389168352929052205490611dd1565b6001600160a01b0381166000908152609f6020526040812054819081908190815b818110156114d9576001600160a01b0387166000908152609f602052604081208054839081106114a357fe5b6000918252602090912001546001600160a01b031690506114ce6114c7898361079e565b8590611c00565b935050600101611477565b506000806114e688610a6e565b909250905060006114f78584611c00565b6001600160a01b03999099166000908152609e6020526040902054999197509095505050505050565b6034546001600160a01b0316611565576040805162461bcd60e51b81526020600482015260056024820152640534f5f43360dc1b604482015290519081900360640190fd5b61156d611a07565b6034546001600160a01b039081169116146115b8576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4360d01b604482015290519081900360640190fd5b6034546033546040516001600160a01b039283169290911690600080516020612bb283398151915290600090a360348054603380546001600160a01b03199081166001600160a01b03841617909155169055565b6067546001600160a01b031690565b609c546001600160a01b038281166000908152609f60205260408082209051634dffaee560e01b815291939290921691634dffaee59161165f9186916004016128ba565b60206040518083038186803b15801561167757600080fd5b505afa15801561168b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107da91906127a5565b6001600160a01b03918216600090815260a06020908152604080832093909416825291909152206001015490565b609b546001600160a01b03166116f1611a07565b6001600160a01b0316148061172057506067546001600160a01b0316611715611a07565b6001600160a01b0316145b61173c5760405162461bcd60e51b81526004016106f990612a76565b61174884848484611eca565b50505050565b609b546001600160a01b0316611762611a07565b6001600160a01b0316146117885760405162461bcd60e51b81526004016106f990612a9a565b610a69838383611f18565b60006107da610644609a60009054906101000a90046001600160a01b03166001600160a01b031663a85494026040518163ffffffff1660e01b815260040160206040518083038186803b1580156117e957600080fd5b505afa1580156117fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182191906127e8565b61182a85610e7d565b90612199565b609b546001600160a01b031690565b611847611e8e565b61079a8282611f5b565b611859611e8e565b6001600160a01b0382166000908152609f6020908152604091829020805483518184028101840190945280845290926118d492909184918301828280156118c957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116118ab575b5050505050836121ae565b156118df575061079a565b8054600181018255600082815260209081902090910180546001600160a01b0319166001600160a01b0385811691909117909155609a5460408051631623e65d60e11b815290519190921692632c47ccba9260048082019391829003018186803b15801561194c57600080fd5b505afa158015611960573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119849190612847565b60ff1681805490501115610a695760405162461bcd60e51b81526004016106f9906129ff565b609d546000906001600160a01b03166119c1611a07565b6001600160a01b0316146119e75760405162461bcd60e51b81526004016106f990612aba565b506001600160a01b03166000908152609e60205260408120805491905590565b3390565b6000816001600160a01b03166312080647609a60009054906101000a90046001600160a01b03166001600160a01b0316633e742e3b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a6a57600080fd5b505afa158015611a7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa29190612823565b6040518263ffffffff1660e01b8152600401611abe9190612b3c565b60206040518083038186803b158015611ad657600080fd5b505afa158015611aea573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107da919061280b565b60006001600160ff1b03821115611b565760405162461bcd60e51b8152600401808060200182810382526028815260200180612bd26028913960400191505060405180910390fd5b5090565b60008060008512611b6b5784611b74565b611b74856121fa565b90506000808512611b855784611b8e565b611b8e856121fa565b905060008087128015611ba15750600086135b80611bb75750600087138015611bb75750600086125b611bc2576000611bc5565b60015b90506000611bd4848488612226565b905081611be957611be481611b0e565b611bf2565b611bf2816122d5565b9450505050505b9392505050565b6000828201818312801590611c155750838112155b80611c2a5750600083128015611c2a57508381125b611bf95760405162461bcd60e51b8152600401808060200182810382526021815260200180612b636021913960400191505060405180910390fd5b600080821215611c8557611c80611c7b836121fa565b6122e9565b6107da565b6107da826122e9565b801561079a576001600160a01b0382166000908152609e6020526040902054611cb79082611c00565b6001600160a01b0383166000818152609e6020526040908190209290925590517febf4e69d81451d269fc4d9551b06d58bea2ed426d2c528919ce45f6070946efb90611d0490849061296e565b60405180910390a25050565b6000611d1b30611d21565b15905090565b3b151590565b600054610100900460ff1680611d405750611d40611d10565b80611d4e575060005460ff16155b611d895760405162461bcd60e51b815260040180806020018281038252602e815260200180612b84602e913960400191505060405180910390fd5b600054610100900460ff16158015611db4576000805460ff1961ff0019909116610100171660011790555b611dbc612340565b8015611dce576000805461ff00191690555b50565b6000818303818312801590611de65750838113155b80611dfb5750600083128015611dfb57508381135b611bf95760405162461bcd60e51b8152600401808060200182810382526024815260200180612bfa6024913960400191505060405180910390fd5b600082820183811015611bf9576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b6067546001600160a01b0316611ea2611a07565b6001600160a01b031614611ec85760405162461bcd60e51b81526004016106f9906129bd565b565b6001600160a01b03808516600090815260a0602090815260408083209387168352929052208054611efb9084611c00565b81556001810154611f0c9083611c00565b60019091015550505050565b6001600160a01b03808416600090815260a0602090815260408083209386168352929052206001810154611f4c9083611dd1565b60018201556117488483611c8e565b6001600160a01b03808316600090815260a0602090815260408083209385168352928152908290208251606081018452815480825260018301549382019390935260029091015492810192909252600a90611fb590611c65565b101580611fcf5750600a611fcc8260200151611c65565b10155b15611fda575061079a565b609c546040516321b499f560e11b81526000916001600160a01b03169063436933ea9061200d908790879060040161287c565b60006040518083038186803b15801561202557600080fd5b505afa158015612039573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261206191908101906126f8565b51111561206e575061079a565b6001600160a01b03808416600081815260a060209081526040808320948716835293815283822082815560018101839055600201829055918152609f909152908120805490915b818110156111e457846001600160a01b03168382815481106120d357fe5b6000918252602090912001546001600160a01b03161415612191576001820381146121605782600183038154811061210757fe5b9060005260206000200160009054906101000a90046001600160a01b031683828154811061213157fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b8280548061216a57fe5b600082815260209020810160001990810180546001600160a01b03191690550190556111e4565b6001016120b5565b6000611bf9838362ffffff16620f4240612226565b6000805b83518110156112dc57826001600160a01b03168482815181106121d157fe5b60200260200101516001600160a01b031614156121f25760019150506107da565b6001016121b2565b6000600160ff1b821361221f5760405162461bcd60e51b81526004016106f990612a1f565b5060000390565b600080806000198587098686029250828110908390030390508061225c576000841161225157600080fd5b508290049050611bf9565b80841161226857600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b60006122e082611b0e565b60000392915050565b600080821215611b56576040805162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f736974697665604482015290519081900360640190fd5b600054610100900460ff16806123595750612359611d10565b80612367575060005460ff16155b6123a25760405162461bcd60e51b815260040180806020018281038252602e815260200180612b84602e913960400191505060405180910390fd5b600054610100900460ff161580156123cd576000805460ff1961ff0019909116610100171660011790555b6123d561242f565b60006123df611a07565b603380546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020612bb2833981519152908290a3508015611dce576000805461ff001916905550565b600054610100900460ff16806124485750612448611d10565b80612456575060005460ff16155b6124915760405162461bcd60e51b815260040180806020018281038252602e815260200180612b84602e913960400191505060405180910390fd5b600054610100900460ff161580156124bc576000805460ff1961ff0019909116610100171660011790555b611dbc600054610100900460ff16806124d857506124d8611d10565b806124e6575060005460ff16155b6125215760405162461bcd60e51b815260040180806020018281038252602e815260200180612b84602e913960400191505060405180910390fd5b600054610100900460ff16158015611dbc576000805460ff1961ff0019909116610100171660011790558015611dce576000805461ff001916905550565b60405180606001604052806000815260200160008152602001600081525090565b600060208284031215612591578081fd5b8135611bf981612b4d565b6000602082840312156125ad578081fd5b8151611bf981612b4d565b600080604083850312156125ca578081fd5b82356125d581612b4d565b915060208301356125e581612b4d565b809150509250929050565b600080600060608486031215612604578081fd5b833561260f81612b4d565b9250602084013561261f81612b4d565b929592945050506040919091013590565b60008060008060808587031215612645578081fd5b843561265081612b4d565b9350602085013561266081612b4d565b93969395505050506040820135916060013590565b60008060008060008060c0878903121561268d578182fd5b863561269881612b4d565b955060208701356126a881612b4d565b95989597505050506040840135936060810135936080820135935060a0909101359150565b600080604083850312156126df578182fd5b82356126ea81612b4d565b946020939093013593505050565b6000602080838503121561270a578182fd5b82516001600160401b0380821115612720578384fd5b818501915085601f830112612733578384fd5b81518181111561273f57fe5b8381026040518582820101818110858211171561275857fe5b604052828152858101935084860182860187018a1015612776578788fd5b8795505b8386101561279857805185526001959095019493860193860161277a565b5098975050505050505050565b6000602082840312156127b6578081fd5b81518015158114611bf9578182fd5b600080604083850312156127d7578182fd5b505080516020909101519092909150565b6000602082840312156127f9578081fd5b815162ffffff81168114611bf9578182fd5b60006020828403121561281c578081fd5b5051919050565b600060208284031215612834578081fd5b815163ffffffff81168114611bf9578182fd5b600060208284031215612858578081fd5b815160ff81168114611bf9578182fd5b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152901515604082015260600190565b60006040820160018060a01b03808616845260206040818601528286548085526060870191508786528286209450855b818110156129085785548516835260019586019592840192016128ea565b509098975050505050505050565b6020808252825182820181905260009190848201906040850190845b818110156129575783516001600160a01b031683529284019291840191600101612932565b50909695505050505050565b901515815260200190565b90815260200190565b9283526020830191909152604082015260600190565b918252602082015260400190565b60208082526008908201526741425f4348434e4360c01b604082015260600190565b6020808252600790820152660869088be9e86960cb1b604082015260600190565b60208082526007908201526641425f45584e4360c81b604082015260600190565b60208082526006908201526541425f4d4e4560d01b604082015260600190565b6020808252601c908201527b506572704d6174683a20696e76657273696f6e206f766572666c6f7760201b604082015260600190565b60208082526007908201526641425f4f424e4360c81b604082015260600190565b6020808252600a908201526908284be9ebe8ab0f886960b31b604082015260600190565b60208082526006908201526508284be9e8ab60d31b604082015260600190565b60208082526005908201526420a12fa7ab60d91b604082015260600190565b60208082526006908201526541425f564e4360d01b604082015260600190565b60208082526008908201526720a12fa4a8a120a960c11b604082015260600190565b81518152602080830151908201526040918201519181019190915260600190565b63ffffffff91909116815260200190565b6001600160a01b0381168114611dce57600080fdfe5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f77496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65648be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e053616665436173743a2076616c756520646f65736e27742066697420696e20616e20696e743235365369676e6564536166654d6174683a207375627472616374696f6e206f766572666c6f77a2646970667358221220319f543f5a72ad52a72cfbdc996de62fcd092a6573a9b704b82f76675dba471664736f6c63430007060033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101ac5760003560e01c806313af4035146101b1578063293a5077146101c65780632e4586c3146101ef57806337724702146102025780633f93510714610215578063449323d814610228578063485cc9551461023b5780634c294e5f1461024e5780636332fef61461026f5780636817031b1461028f57806368f12e12146102a25780636c8381f8146102b55780636ccdc82e146102ca578063715018a6146102dd5780637a5b45a0146102e557806389f92177146102f85780638d928af81461030b5780638da5cb5b14610313578063aa2a82941461031b578063af74e73614610323578063b248c4ef14610343578063b2e271481461034b578063b39456901461035e578063b3bd6e1214610371578063bba85bcf14610384578063bc5920ba146103a6578063c575ff79146103ae578063cb3c7b8e146103b6578063d50d01b7146103d6578063ea45a8f9146103e9578063f0c79797146103fc578063f75c266d1461040f578063f807cd2214610422578063fa8e30af1461042a578063fc7372141461043d578063fd6ceee514610450575b600080fd5b6101c46101bf366004612580565b610463565b005b6101d96101d4366004612580565b6105be565b6040516101e6919061296e565b60405180910390f35b6101c46101fd3660046125f0565b6106bf565b6101c46102103660046126cd565b610731565b6101d96102233660046125b8565b61079e565b6101c4610236366004612580565b6107e0565b6101c46102493660046125b8565b610887565b61026161025c366004612580565b610a6e565b6040516101e692919061298d565b61028261027d3660046125b8565b610bb2565b6040516101e69190612b1b565b6101c461029d366004612580565b610c09565b6101d96102b03660046125b8565b610cde565b6102bd610e6e565b6040516101e69190612868565b6101d96102d8366004612580565b610e7d565b6101c4610f46565b6101d96102f33660046125b8565b610fe7565b6101c4610306366004612675565b6110b5565b6102bd6111ec565b6102bd6111fb565b6102bd61120a565b610336610331366004612580565b611219565b6040516101e69190612916565b6102bd61128f565b6101d96103593660046125b8565b61129e565b6101d961036c3660046125b8565b6112e6565b6101d961037f3660046125b8565b611392565b610397610392366004612580565b611456565b6040516101e693929190612977565b6101c4611520565b6102bd61160c565b6103c96103c4366004612580565b61161b565b6040516101e69190612963565b6101d96103e43660046125b8565b6116af565b6101c46103f7366004612630565b6116dd565b6101c461040a3660046125f0565b61174e565b6101d961041d366004612580565b611793565b6102bd611830565b6101c46104383660046125b8565b61183f565b6101c461044b3660046125b8565b611851565b6101d961045e366004612580565b6119aa565b61046b611a07565b6001600160a01b031661047c6111fb565b6001600160a01b0316146104c0576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038116610504576040805162461bcd60e51b81526020600482015260066024820152650534f5f4e57360d41b604482015290519081900360640190fd5b6033546001600160a01b0382811691161415610550576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414f60d01b604482015290519081900360640190fd5b6034546001600160a01b038281169116141561059c576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414360d01b604482015290519081900360640190fd5b603480546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166000908152609f602052604081205481908190815b8181101561068d576001600160a01b0386166000908152609f6020526040812080548390811061060957fe5b60009182526020822001546001600160a01b031691506106298883611392565b905060008082121561065c5761065961064961064485611a0b565b611b0e565b8390670de0b6b3a7640000611b5a565b90505b6106668682611c00565b955061067c6106758a85610fe7565b8890611c00565b965050600190920191506105dd9050565b5060008084121561069e57836106a1565b60005b90506106b56106b08285611c00565b611c65565b9695505050505050565b609b546001600160a01b03166106d3611a07565b6001600160a01b0316146107025760405162461bcd60e51b81526004016106f990612a9a565b60405180910390fd5b6001600160a01b03928316600090815260a0602090815260408083209490951682529290925291902060020155565b609b546001600160a01b0316610745611a07565b6001600160a01b0316148061077457506067546001600160a01b0316610769611a07565b6001600160a01b0316145b6107905760405162461bcd60e51b81526004016106f990612a76565b61079a8282611c8e565b5050565b6000806107ab8484610cde565b9050806107bc5760009150506107da565b60006107c784611a0b565b90506107d561064982611b0e565b925050505b92915050565b6107e8611a07565b6001600160a01b03166107f96111fb565b6001600160a01b03161461083d576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b606780546001600160a01b0319166001600160a01b0383169081179091556040517fd0654f5900f9e7e4e605a19334306e6a2786bbf960ac0484a4c12feb6428fe2f90600090a250565b600054610100900460ff16806108a057506108a0611d10565b806108ae575060005460ff16155b6108e95760405162461bcd60e51b815260040180806020018281038252602e815260200180612b84602e913960400191505060405180910390fd5b600054610100900460ff16158015610914576000805460ff1961ff0019909116610100171660011790555b610926836001600160a01b0316611d21565b6109425760405162461bcd60e51b81526004016106f99061299b565b610954826001600160a01b0316611d21565b6109705760405162461bcd60e51b81526004016106f9906129de565b6000826001600160a01b031663b248c4ef6040518163ffffffff1660e01b815260040160206040518083038186803b1580156109ab57600080fd5b505afa1580156109bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e3919061259c565b90506109f7816001600160a01b0316611d21565b610a135760405162461bcd60e51b81526004016106f990612a55565b610a1b611d27565b609a80546001600160a01b038087166001600160a01b031992831617909255609b8054868416908316179055609c80549390921692169190911790558015610a69576000805461ff00191690555b505050565b6001600160a01b0381166000908152609f602052604081205481908190815b81811015610b06576001600160a01b0386166000908152609f60205260408120805483908110610ab957fe5b60009182526020808320909101546001600160a01b038a8116845260a08352604080852091909216808552925290912060010154909150610afb908590611c00565b935050600101610a8d565b50609c546001600160a01b038681166000908152609f6020526040808220905163d0581a9360e01b81529193929092169163d0581a9391610b4b918a916004016128ba565b604080518083038186803b158015610b6257600080fd5b505afa158015610b76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9a91906127c5565b94509050610ba88382611c00565b9450505050915091565b610bba61255f565b506001600160a01b03918216600090815260a060209081526040808320939094168252918252829020825160608101845281548152600182015492810192909252600201549181019190915290565b610c11611a07565b6001600160a01b0316610c226111fb565b6001600160a01b031614610c66576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b610c78816001600160a01b0316611d21565b610c945760405162461bcd60e51b81526004016106f990612ad9565b609d80546001600160a01b0319166001600160a01b0383169081179091556040517fa49691f0dd6477ccef49962612a236d252e3a31c3be8b61fa6abeff3e74a757290600090a250565b609c54604051635d8a541d60e01b815260009182916001600160a01b0390911690635d8a541d90610d189087908790600190600401612896565b604080518083038186803b158015610d2f57600080fd5b505afa158015610d43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6791906127c5565b50609c54604051637c2b7c5360e01b81529192506000916001600160a01b0390911690637c2b7c5390610da39088908890600190600401612896565b60206040518083038186803b158015610dbb57600080fd5b505afa158015610dcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df3919061280b565b90506000610e12610e0383611b0e565b610e0c85611b0e565b90611dd1565b6001600160a01b03808816600090815260a060209081526040808320938a16835292905290812054919250610e478383611c00565b9050600a610e5482611c65565b10610e5f5780610e62565b60005b98975050505050505050565b6034546001600160a01b031690565b6001600160a01b0381166000908152609f6020908152604080832080548251818502810185019093528083528493830182828015610ee457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ec6575b505050505090506000808251905060005b81811015610f3c576000848281518110610f0b57fe5b602002602001015190506000610f246106b0898461079e565b9050610f308582611e36565b94505050600101610ef5565b5090949350505050565b610f4e611a07565b6001600160a01b0316610f5f6111fb565b6001600160a01b031614610fa3576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6033546040516000916001600160a01b031690600080516020612bb2833981519152908390a3603380546001600160a01b0319908116909155603480549091169055565b609c54604051637c2b7c5360e01b815260009182916001600160a01b0390911690637c2b7c539061102090879087908690600401612896565b60206040518083038186803b15801561103857600080fd5b505afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611070919061280b565b90506110ad61107e82611b0e565b6001600160a01b03808716600090815260a0602090815260408083209389168352929052206001015490611dd1565b949350505050565b6110bd611e8e565b6110c78682611c8e565b6110d386868686611eca565b6110dd868661129e565b15801561116e5750609c546040516321b499f560e11b81526001600160a01b039091169063436933ea90611117908990899060040161287c565b60006040518083038186803b15801561112f57600080fd5b505afa158015611143573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261116b91908101906126f8565b51155b156111cf576001600160a01b03808716600090815260a060209081526040808320938916835292905220600101546111a581611c65565b6111ae84611c65565b11156111cc5760405162461bcd60e51b81526004016106f990612af9565b91505b6111da868684611f18565b6111e48686611f5b565b505050505050565b609d546001600160a01b031690565b6033546001600160a01b031690565b609a546001600160a01b031690565b6001600160a01b0381166000908152609f602090815260409182902080548351818402810184019094528084526060939283018282801561128357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611265575b50505050509050919050565b609c546001600160a01b031690565b6001600160a01b03808316600090815260a060209081526040808320938516835292905290812054600a6112d182611c65565b106112dc57806110ad565b5060009392505050565b609c54604051635d8a541d60e01b815260009182916001600160a01b0390911690635d8a541d9061131f90879087908690600401612896565b604080518083038186803b15801561133657600080fd5b505afa15801561134a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136e91906127c5565b509050600061137d8585610fe7565b90506107d58161138c84611b0e565b90611c00565b609c54604051637c2b7c5360e01b815260009182916001600160a01b0390911690637c2b7c53906113cc9087908790600190600401612896565b60206040518083038186803b1580156113e457600080fd5b505afa1580156113f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141c919061280b565b90506110ad61142a82611b0e565b6001600160a01b03808716600090815260a0602090815260408083209389168352929052205490611dd1565b6001600160a01b0381166000908152609f6020526040812054819081908190815b818110156114d9576001600160a01b0387166000908152609f602052604081208054839081106114a357fe5b6000918252602090912001546001600160a01b031690506114ce6114c7898361079e565b8590611c00565b935050600101611477565b506000806114e688610a6e565b909250905060006114f78584611c00565b6001600160a01b03999099166000908152609e6020526040902054999197509095505050505050565b6034546001600160a01b0316611565576040805162461bcd60e51b81526020600482015260056024820152640534f5f43360dc1b604482015290519081900360640190fd5b61156d611a07565b6034546001600160a01b039081169116146115b8576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4360d01b604482015290519081900360640190fd5b6034546033546040516001600160a01b039283169290911690600080516020612bb283398151915290600090a360348054603380546001600160a01b03199081166001600160a01b03841617909155169055565b6067546001600160a01b031690565b609c546001600160a01b038281166000908152609f60205260408082209051634dffaee560e01b815291939290921691634dffaee59161165f9186916004016128ba565b60206040518083038186803b15801561167757600080fd5b505afa15801561168b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107da91906127a5565b6001600160a01b03918216600090815260a06020908152604080832093909416825291909152206001015490565b609b546001600160a01b03166116f1611a07565b6001600160a01b0316148061172057506067546001600160a01b0316611715611a07565b6001600160a01b0316145b61173c5760405162461bcd60e51b81526004016106f990612a76565b61174884848484611eca565b50505050565b609b546001600160a01b0316611762611a07565b6001600160a01b0316146117885760405162461bcd60e51b81526004016106f990612a9a565b610a69838383611f18565b60006107da610644609a60009054906101000a90046001600160a01b03166001600160a01b031663a85494026040518163ffffffff1660e01b815260040160206040518083038186803b1580156117e957600080fd5b505afa1580156117fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182191906127e8565b61182a85610e7d565b90612199565b609b546001600160a01b031690565b611847611e8e565b61079a8282611f5b565b611859611e8e565b6001600160a01b0382166000908152609f6020908152604091829020805483518184028101840190945280845290926118d492909184918301828280156118c957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116118ab575b5050505050836121ae565b156118df575061079a565b8054600181018255600082815260209081902090910180546001600160a01b0319166001600160a01b0385811691909117909155609a5460408051631623e65d60e11b815290519190921692632c47ccba9260048082019391829003018186803b15801561194c57600080fd5b505afa158015611960573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119849190612847565b60ff1681805490501115610a695760405162461bcd60e51b81526004016106f9906129ff565b609d546000906001600160a01b03166119c1611a07565b6001600160a01b0316146119e75760405162461bcd60e51b81526004016106f990612aba565b506001600160a01b03166000908152609e60205260408120805491905590565b3390565b6000816001600160a01b03166312080647609a60009054906101000a90046001600160a01b03166001600160a01b0316633e742e3b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a6a57600080fd5b505afa158015611a7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa29190612823565b6040518263ffffffff1660e01b8152600401611abe9190612b3c565b60206040518083038186803b158015611ad657600080fd5b505afa158015611aea573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107da919061280b565b60006001600160ff1b03821115611b565760405162461bcd60e51b8152600401808060200182810382526028815260200180612bd26028913960400191505060405180910390fd5b5090565b60008060008512611b6b5784611b74565b611b74856121fa565b90506000808512611b855784611b8e565b611b8e856121fa565b905060008087128015611ba15750600086135b80611bb75750600087138015611bb75750600086125b611bc2576000611bc5565b60015b90506000611bd4848488612226565b905081611be957611be481611b0e565b611bf2565b611bf2816122d5565b9450505050505b9392505050565b6000828201818312801590611c155750838112155b80611c2a5750600083128015611c2a57508381125b611bf95760405162461bcd60e51b8152600401808060200182810382526021815260200180612b636021913960400191505060405180910390fd5b600080821215611c8557611c80611c7b836121fa565b6122e9565b6107da565b6107da826122e9565b801561079a576001600160a01b0382166000908152609e6020526040902054611cb79082611c00565b6001600160a01b0383166000818152609e6020526040908190209290925590517febf4e69d81451d269fc4d9551b06d58bea2ed426d2c528919ce45f6070946efb90611d0490849061296e565b60405180910390a25050565b6000611d1b30611d21565b15905090565b3b151590565b600054610100900460ff1680611d405750611d40611d10565b80611d4e575060005460ff16155b611d895760405162461bcd60e51b815260040180806020018281038252602e815260200180612b84602e913960400191505060405180910390fd5b600054610100900460ff16158015611db4576000805460ff1961ff0019909116610100171660011790555b611dbc612340565b8015611dce576000805461ff00191690555b50565b6000818303818312801590611de65750838113155b80611dfb5750600083128015611dfb57508381135b611bf95760405162461bcd60e51b8152600401808060200182810382526024815260200180612bfa6024913960400191505060405180910390fd5b600082820183811015611bf9576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b6067546001600160a01b0316611ea2611a07565b6001600160a01b031614611ec85760405162461bcd60e51b81526004016106f9906129bd565b565b6001600160a01b03808516600090815260a0602090815260408083209387168352929052208054611efb9084611c00565b81556001810154611f0c9083611c00565b60019091015550505050565b6001600160a01b03808416600090815260a0602090815260408083209386168352929052206001810154611f4c9083611dd1565b60018201556117488483611c8e565b6001600160a01b03808316600090815260a0602090815260408083209385168352928152908290208251606081018452815480825260018301549382019390935260029091015492810192909252600a90611fb590611c65565b101580611fcf5750600a611fcc8260200151611c65565b10155b15611fda575061079a565b609c546040516321b499f560e11b81526000916001600160a01b03169063436933ea9061200d908790879060040161287c565b60006040518083038186803b15801561202557600080fd5b505afa158015612039573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261206191908101906126f8565b51111561206e575061079a565b6001600160a01b03808416600081815260a060209081526040808320948716835293815283822082815560018101839055600201829055918152609f909152908120805490915b818110156111e457846001600160a01b03168382815481106120d357fe5b6000918252602090912001546001600160a01b03161415612191576001820381146121605782600183038154811061210757fe5b9060005260206000200160009054906101000a90046001600160a01b031683828154811061213157fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b8280548061216a57fe5b600082815260209020810160001990810180546001600160a01b03191690550190556111e4565b6001016120b5565b6000611bf9838362ffffff16620f4240612226565b6000805b83518110156112dc57826001600160a01b03168482815181106121d157fe5b60200260200101516001600160a01b031614156121f25760019150506107da565b6001016121b2565b6000600160ff1b821361221f5760405162461bcd60e51b81526004016106f990612a1f565b5060000390565b600080806000198587098686029250828110908390030390508061225c576000841161225157600080fd5b508290049050611bf9565b80841161226857600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b60006122e082611b0e565b60000392915050565b600080821215611b56576040805162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f736974697665604482015290519081900360640190fd5b600054610100900460ff16806123595750612359611d10565b80612367575060005460ff16155b6123a25760405162461bcd60e51b815260040180806020018281038252602e815260200180612b84602e913960400191505060405180910390fd5b600054610100900460ff161580156123cd576000805460ff1961ff0019909116610100171660011790555b6123d561242f565b60006123df611a07565b603380546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020612bb2833981519152908290a3508015611dce576000805461ff001916905550565b600054610100900460ff16806124485750612448611d10565b80612456575060005460ff16155b6124915760405162461bcd60e51b815260040180806020018281038252602e815260200180612b84602e913960400191505060405180910390fd5b600054610100900460ff161580156124bc576000805460ff1961ff0019909116610100171660011790555b611dbc600054610100900460ff16806124d857506124d8611d10565b806124e6575060005460ff16155b6125215760405162461bcd60e51b815260040180806020018281038252602e815260200180612b84602e913960400191505060405180910390fd5b600054610100900460ff16158015611dbc576000805460ff1961ff0019909116610100171660011790558015611dce576000805461ff001916905550565b60405180606001604052806000815260200160008152602001600081525090565b600060208284031215612591578081fd5b8135611bf981612b4d565b6000602082840312156125ad578081fd5b8151611bf981612b4d565b600080604083850312156125ca578081fd5b82356125d581612b4d565b915060208301356125e581612b4d565b809150509250929050565b600080600060608486031215612604578081fd5b833561260f81612b4d565b9250602084013561261f81612b4d565b929592945050506040919091013590565b60008060008060808587031215612645578081fd5b843561265081612b4d565b9350602085013561266081612b4d565b93969395505050506040820135916060013590565b60008060008060008060c0878903121561268d578182fd5b863561269881612b4d565b955060208701356126a881612b4d565b95989597505050506040840135936060810135936080820135935060a0909101359150565b600080604083850312156126df578182fd5b82356126ea81612b4d565b946020939093013593505050565b6000602080838503121561270a578182fd5b82516001600160401b0380821115612720578384fd5b818501915085601f830112612733578384fd5b81518181111561273f57fe5b8381026040518582820101818110858211171561275857fe5b604052828152858101935084860182860187018a1015612776578788fd5b8795505b8386101561279857805185526001959095019493860193860161277a565b5098975050505050505050565b6000602082840312156127b6578081fd5b81518015158114611bf9578182fd5b600080604083850312156127d7578182fd5b505080516020909101519092909150565b6000602082840312156127f9578081fd5b815162ffffff81168114611bf9578182fd5b60006020828403121561281c578081fd5b5051919050565b600060208284031215612834578081fd5b815163ffffffff81168114611bf9578182fd5b600060208284031215612858578081fd5b815160ff81168114611bf9578182fd5b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152901515604082015260600190565b60006040820160018060a01b03808616845260206040818601528286548085526060870191508786528286209450855b818110156129085785548516835260019586019592840192016128ea565b509098975050505050505050565b6020808252825182820181905260009190848201906040850190845b818110156129575783516001600160a01b031683529284019291840191600101612932565b50909695505050505050565b901515815260200190565b90815260200190565b9283526020830191909152604082015260600190565b918252602082015260400190565b60208082526008908201526741425f4348434e4360c01b604082015260600190565b6020808252600790820152660869088be9e86960cb1b604082015260600190565b60208082526007908201526641425f45584e4360c81b604082015260600190565b60208082526006908201526541425f4d4e4560d01b604082015260600190565b6020808252601c908201527b506572704d6174683a20696e76657273696f6e206f766572666c6f7760201b604082015260600190565b60208082526007908201526641425f4f424e4360c81b604082015260600190565b6020808252600a908201526908284be9ebe8ab0f886960b31b604082015260600190565b60208082526006908201526508284be9e8ab60d31b604082015260600190565b60208082526005908201526420a12fa7ab60d91b604082015260600190565b60208082526006908201526541425f564e4360d01b604082015260600190565b60208082526008908201526720a12fa4a8a120a960c11b604082015260600190565b81518152602080830151908201526040918201519181019190915260600190565b63ffffffff91909116815260200190565b6001600160a01b0381168114611dce57600080fdfe5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f77496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65648be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e053616665436173743a2076616c756520646f65736e27742066697420696e20616e20696e743235365369676e6564536166654d6174683a207375627472616374696f6e206f766572666c6f77a2646970667358221220319f543f5a72ad52a72cfbdc996de62fcd092a6573a9b704b82f76675dba471664736f6c63430007060033",
"bytecode": "0x608060405234801561001057600080fd5b506129de806100206000396000f3fe608060405234801561001057600080fd5b50600436106101965760003560e01c806313af40351461019b578063293a5077146101b05780632e4586c3146101d95780633c9b5ad1146101ec5780633f9351071461020d578063449323d814610220578063485cc955146102335780636332fef6146102465780636817031b1461026657806368f12e12146102795780636c8381f81461028c5780636ccdc82e146102a1578063715018a6146102b45780637a5b45a0146102bc578063874044f3146102cf57806389f92177146102e25780638d928af8146102f55780638da5cb5b146102fd578063aa2a829414610305578063af74e7361461030d578063b248c4ef1461032d578063b2e2714814610335578063b394569014610348578063b3bd6e121461035b578063bba85bcf1461036e578063bc5920ba14610390578063c575ff7914610398578063cb3c7b8e146103a0578063d50d01b7146103c0578063ec647a12146103d3578063f75c266d146103e6578063fa8e30af146103f9578063fc7372141461040c578063fd6ceee51461041f575b600080fd5b6101ae6101a93660046123b8565b610432565b005b6101c36101be3660046123b8565b61058d565b6040516101d09190612773565b60405180910390f35b6101ae6101e7366004612404565b610690565b6101ff6101fa36600461243f565b6106c7565b6040516101d092919061277c565b6101c361021b3660046123d2565b6106eb565b6101ae61022e3660046123b8565b61072d565b6101ae6102413660046123d2565b6107d4565b6102596102543660046123d2565b610915565b6040516101d091906128bb565b6101ae6102743660046123b8565b61096c565b6101c36102873660046123d2565b610a41565b610294610bd1565b6040516101d0919061266d565b6101c36102af3660046123b8565b610be0565b6101ae610ca9565b6101c36102ca3660046123d2565b610d4a565b6101ae6102dd3660046124d4565b610e18565b6101ae6102f0366004612480565b610e2e565b610294610f67565b610294610f76565b610294610f85565b61032061031b3660046123b8565b610f94565b6040516101d0919061271b565b61029461100a565b6101c36103433660046123d2565b611019565b6101c36103563660046123d2565b611061565b6101c36103693660046123d2565b61110d565b61038161037c3660046123b8565b6111d1565b6040516101d09392919061278a565b6101ae61129b565b610294611387565b6103b36103ae3660046123b8565b611396565b6040516101d09190612768565b6101c36103ce3660046123d2565b61142a565b6101ae6103e1366004612404565b611458565b6101c36103f43660046123b8565b61146b565b6101ae6104073660046123d2565b611508565b6101ae61041a3660046123d2565b61151a565b6101c361042d3660046123b8565b611673565b61043a6116d0565b6001600160a01b031661044b610f76565b6001600160a01b03161461048f576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b0381166104d3576040805162461bcd60e51b81526020600482015260066024820152650534f5f4e57360d41b604482015290519081900360640190fd5b6033546001600160a01b038281169116141561051f576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414f60d01b604482015290519081900360640190fd5b6034546001600160a01b038281169116141561056b576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414360d01b604482015290519081900360640190fd5b603480546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166000908152609e602052604081205481908190815b8181101561065c576001600160a01b0386166000908152609e602052604081208054839081106105d857fe5b60009182526020822001546001600160a01b031691506105f8888361110d565b905060008082121561062b57610628610618610613856116d4565b6117d7565b8390670de0b6b3a7640000611823565b90505b61063586826118c9565b955061064b6106448a85610d4a565b88906118c9565b965050600190920191506105ac9050565b5060008084121561066d5783610670565b60005b905061068461067f82856118c9565b61192e565b9450505050505b919050565b610698611957565b6001600160a01b039283166000908152609f602090815260408083209490951682529290925291902060020155565b6000806106d2611957565b6106de86868686611993565b9150915094509492505050565b6000806106f88484610a41565b905080610709576000915050610727565b6000610714846116d4565b9050610722610618826117d7565b925050505b92915050565b6107356116d0565b6001600160a01b0316610746610f76565b6001600160a01b03161461078a576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b606780546001600160a01b0319166001600160a01b0383169081179091556040517fd0654f5900f9e7e4e605a19334306e6a2786bbf960ac0484a4c12feb6428fe2f90600090a250565b600054610100900460ff16806107ed57506107ed6119ef565b806107fb575060005460ff16155b6108365760405162461bcd60e51b815260040180806020018281038252602e81526020018061290f602e913960400191505060405180910390fd5b600054610100900460ff16158015610861576000805460ff1961ff0019909116610100171660011790555b610873836001600160a01b0316611a00565b6108985760405162461bcd60e51b815260040161088f906127a0565b60405180910390fd5b6108aa826001600160a01b0316611a00565b6108c65760405162461bcd60e51b815260040161088f90612839565b6108ce611a06565b609a80546001600160a01b038086166001600160a01b031992831617909255609b8054928516929091169190911790558015610910576000805461ff00191690555b505050565b61091d612380565b506001600160a01b039182166000908152609f60209081526040808320939094168252918252829020825160608101845281548152600182015492810192909252600201549181019190915290565b6109746116d0565b6001600160a01b0316610985610f76565b6001600160a01b0316146109c9576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6109db816001600160a01b0316611a00565b6109f75760405162461bcd60e51b815260040161088f90612879565b609c80546001600160a01b0319166001600160a01b0383169081179091556040517fa49691f0dd6477ccef49962612a236d252e3a31c3be8b61fa6abeff3e74a757290600090a250565b609b54604051635d8a541d60e01b815260009182916001600160a01b0390911690635d8a541d90610a7b908790879060019060040161269b565b604080518083038186803b158015610a9257600080fd5b505afa158015610aa6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aca91906125ca565b50609b54604051637c2b7c5360e01b81529192506000916001600160a01b0390911690637c2b7c5390610b06908890889060019060040161269b565b60206040518083038186803b158015610b1e57600080fd5b505afa158015610b32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b569190612610565b90506000610b75610b66836117d7565b610b6f856117d7565b90611ab0565b6001600160a01b038088166000908152609f60209081526040808320938a16835292905290812054919250610baa83836118c9565b9050600a610bb78261192e565b10610bc25780610bc5565b60005b98975050505050505050565b6034546001600160a01b031690565b6001600160a01b0381166000908152609e6020908152604080832080548251818502810185019093528083528493830182828015610c4757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c29575b505050505090506000808251905060005b81811015610c9f576000848281518110610c6e57fe5b602002602001015190506000610c8761067f89846106eb565b9050610c938582611b15565b94505050600101610c58565b5090949350505050565b610cb16116d0565b6001600160a01b0316610cc2610f76565b6001600160a01b031614610d06576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6033546040516000916001600160a01b03169060008051602061293d833981519152908390a3603380546001600160a01b0319908116909155603480549091169055565b609b54604051637c2b7c5360e01b815260009182916001600160a01b0390911690637c2b7c5390610d839087908790869060040161269b565b60206040518083038186803b158015610d9b57600080fd5b505afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190612610565b9050610e10610de1826117d7565b6001600160a01b038087166000908152609f602090815260408083209389168352929052206001015490611ab0565b949350505050565b610e20611957565b610e2a8282611b6d565b5050565b610e36611957565b610e4286868686611993565b5050610e4e8682611b6d565b610e588686611019565b158015610ee95750609b546040516321b499f560e11b81526001600160a01b039091169063436933ea90610e929089908990600401612681565b60006040518083038186803b158015610eaa57600080fd5b505afa158015610ebe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ee691908101906124fd565b51155b15610f4a576001600160a01b038087166000908152609f6020908152604080832093891683529290522060010154610f208161192e565b610f298461192e565b1115610f475760405162461bcd60e51b815260040161088f90612899565b91505b610f55868684611bef565b610f5f8686611c38565b505050505050565b609c546001600160a01b031690565b6033546001600160a01b031690565b609a546001600160a01b031690565b6001600160a01b0381166000908152609e6020908152604091829020805483518184028101840190945280845260609392830182828015610ffe57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610fe0575b50505050509050919050565b609b546001600160a01b031690565b6001600160a01b038083166000908152609f60209081526040808320938516835292905290812054600a61104c8261192e565b106110575780610e10565b5060009392505050565b609b54604051635d8a541d60e01b815260009182916001600160a01b0390911690635d8a541d9061109a9087908790869060040161269b565b604080518083038186803b1580156110b157600080fd5b505afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e991906125ca565b50905060006110f88585610d4a565b905061072281611107846117d7565b906118c9565b609b54604051637c2b7c5360e01b815260009182916001600160a01b0390911690637c2b7c5390611147908790879060019060040161269b565b60206040518083038186803b15801561115f57600080fd5b505afa158015611173573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111979190612610565b9050610e106111a5826117d7565b6001600160a01b038087166000908152609f602090815260408083209389168352929052205490611ab0565b6001600160a01b0381166000908152609e6020526040812054819081908190815b81811015611254576001600160a01b0387166000908152609e6020526040812080548390811061121e57fe5b6000918252602090912001546001600160a01b0316905061124961124289836106eb565b85906118c9565b9350506001016111f2565b5060008061126188611e76565b9092509050600061127285846118c9565b6001600160a01b03999099166000908152609d6020526040902054999197509095505050505050565b6034546001600160a01b03166112e0576040805162461bcd60e51b81526020600482015260056024820152640534f5f43360dc1b604482015290519081900360640190fd5b6112e86116d0565b6034546001600160a01b03908116911614611333576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4360d01b604482015290519081900360640190fd5b6034546033546040516001600160a01b03928316929091169060008051602061293d83398151915290600090a360348054603380546001600160a01b03199081166001600160a01b03841617909155169055565b6067546001600160a01b031690565b609b546001600160a01b038281166000908152609e60205260408082209051634dffaee560e01b815291939290921691634dffaee5916113da9186916004016126bf565b60206040518083038186803b1580156113f257600080fd5b505afa158015611406573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072791906125aa565b6001600160a01b039182166000908152609f6020908152604080832093909416825291909152206001015490565b611460611957565b610910838383611bef565b6000610727610613609a60009054906101000a90046001600160a01b03166001600160a01b031663a85494026040518163ffffffff1660e01b815260040160206040518083038186803b1580156114c157600080fd5b505afa1580156114d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f991906125ed565b61150285610be0565b90611fba565b611510611957565b610e2a8282611c38565b611522611957565b6001600160a01b0382166000908152609e60209081526040918290208054835181840281018401909452808452909261159d929091849183018282801561159257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611574575b505050505083611fcf565b156115a85750610e2a565b8054600181018255600082815260209081902090910180546001600160a01b0319166001600160a01b0385811691909117909155609a5460408051631623e65d60e11b815290519190921692632c47ccba9260048082019391829003018186803b15801561161557600080fd5b505afa158015611629573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164d919061264c565b60ff16818054905011156109105760405162461bcd60e51b815260040161088f906127e3565b609c546000906001600160a01b031661168a6116d0565b6001600160a01b0316146116b05760405162461bcd60e51b815260040161088f9061285a565b506001600160a01b03166000908152609d60205260408120805491905590565b3390565b6000816001600160a01b03166312080647609a60009054906101000a90046001600160a01b03166001600160a01b0316633e742e3b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561173357600080fd5b505afa158015611747573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176b9190612628565b6040518263ffffffff1660e01b815260040161178791906128dc565b60206040518083038186803b15801561179f57600080fd5b505afa1580156117b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107279190612610565b60006001600160ff1b0382111561181f5760405162461bcd60e51b815260040180806020018281038252602881526020018061295d6028913960400191505060405180910390fd5b5090565b60008060008512611834578461183d565b61183d8561201b565b9050600080851261184e5784611857565b6118578561201b565b90506000808712801561186a5750600086135b8061188057506000871380156118805750600086125b61188b57600061188e565b60015b9050600061189d848488612047565b9050816118b2576118ad816117d7565b6118bb565b6118bb816120f6565b9450505050505b9392505050565b60008282018183128015906118de5750838112155b806118f357506000831280156118f357508381125b6118c25760405162461bcd60e51b81526004018080602001828103825260218152602001806128ee6021913960400191505060405180910390fd5b60008082121561194e576119496119448361201b565b61210a565b610727565b6107278261210a565b6067546001600160a01b031661196b6116d0565b6001600160a01b0316146119915760405162461bcd60e51b815260040161088f906127c2565b565b6001600160a01b038085166000908152609f60209081526040808320938716835292905290812080548291906119c990866118c9565b815560018101546119da90856118c9565b60018201819055905497909650945050505050565b60006119fa30611a00565b15905090565b3b151590565b600054610100900460ff1680611a1f5750611a1f6119ef565b80611a2d575060005460ff16155b611a685760405162461bcd60e51b815260040180806020018281038252602e81526020018061290f602e913960400191505060405180910390fd5b600054610100900460ff16158015611a93576000805460ff1961ff0019909116610100171660011790555b611a9b612161565b8015611aad576000805461ff00191690555b50565b6000818303818312801590611ac55750838113155b80611ada5750600083128015611ada57508381135b6118c25760405162461bcd60e51b81526004018080602001828103825260248152602001806129856024913960400191505060405180910390fd5b6000828201838110156118c2576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b8015610e2a576001600160a01b0382166000908152609d6020526040902054611b9690826118c9565b6001600160a01b0383166000818152609d6020526040908190209290925590517febf4e69d81451d269fc4d9551b06d58bea2ed426d2c528919ce45f6070946efb90611be3908490612773565b60405180910390a25050565b6001600160a01b038084166000908152609f602090815260408083209386168352929052206001810154611c239083611ab0565b6001820155611c328483611b6d565b50505050565b6001600160a01b038083166000908152609f602090815260408083209385168352928152908290208251606081018452815480825260018301549382019390935260029091015492810192909252600a90611c929061192e565b101580611cac5750600a611ca9826020015161192e565b10155b15611cb75750610e2a565b609b546040516321b499f560e11b81526000916001600160a01b03169063436933ea90611cea9087908790600401612681565b60006040518083038186803b158015611d0257600080fd5b505afa158015611d16573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d3e91908101906124fd565b511115611d4b5750610e2a565b6001600160a01b038084166000818152609f60209081526040808320948716835293815283822082815560018101839055600201829055918152609e909152908120805490915b81811015610f5f57846001600160a01b0316838281548110611db057fe5b6000918252602090912001546001600160a01b03161415611e6e57600182038114611e3d57826001830381548110611de457fe5b9060005260206000200160009054906101000a90046001600160a01b0316838281548110611e0e57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b82805480611e4757fe5b600082815260209020810160001990810180546001600160a01b0319169055019055610f5f565b600101611d92565b6001600160a01b0381166000908152609e602052604081205481908190815b81811015611f0e576001600160a01b0386166000908152609e60205260408120805483908110611ec157fe5b60009182526020808320909101546001600160a01b038a81168452609f8352604080852091909216808552925290912060010154909150611f039085906118c9565b935050600101611e95565b50609b546001600160a01b038681166000908152609e6020526040808220905163d0581a9360e01b81529193929092169163d0581a9391611f53918a916004016126bf565b604080518083038186803b158015611f6a57600080fd5b505afa158015611f7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa291906125ca565b94509050611fb083826118c9565b9450505050915091565b60006118c2838362ffffff16620f4240612047565b6000805b835181101561105757826001600160a01b0316848281518110611ff257fe5b60200260200101516001600160a01b03161415612013576001915050610727565b600101611fd3565b6000600160ff1b82136120405760405162461bcd60e51b815260040161088f90612803565b5060000390565b600080806000198587098686029250828110908390030390508061207d576000841161207257600080fd5b5082900490506118c2565b80841161208957600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b6000612101826117d7565b60000392915050565b60008082121561181f576040805162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f736974697665604482015290519081900360640190fd5b600054610100900460ff168061217a575061217a6119ef565b80612188575060005460ff16155b6121c35760405162461bcd60e51b815260040180806020018281038252602e81526020018061290f602e913960400191505060405180910390fd5b600054610100900460ff161580156121ee576000805460ff1961ff0019909116610100171660011790555b6121f6612250565b60006122006116d0565b603380546001600160a01b0319166001600160a01b0383169081179091556040519192509060009060008051602061293d833981519152908290a3508015611aad576000805461ff001916905550565b600054610100900460ff168061226957506122696119ef565b80612277575060005460ff16155b6122b25760405162461bcd60e51b815260040180806020018281038252602e81526020018061290f602e913960400191505060405180910390fd5b600054610100900460ff161580156122dd576000805460ff1961ff0019909116610100171660011790555b611a9b600054610100900460ff16806122f957506122f96119ef565b80612307575060005460ff16155b6123425760405162461bcd60e51b815260040180806020018281038252602e81526020018061290f602e913960400191505060405180910390fd5b600054610100900460ff16158015611a9b576000805460ff1961ff0019909116610100171660011790558015611aad576000805461ff001916905550565b60405180606001604052806000815260200160008152602001600081525090565b80356001600160a01b038116811461068b57600080fd5b6000602082840312156123c9578081fd5b6118c2826123a1565b600080604083850312156123e4578081fd5b6123ed836123a1565b91506123fb602084016123a1565b90509250929050565b600080600060608486031215612418578081fd5b612421846123a1565b925061242f602085016123a1565b9150604084013590509250925092565b60008060008060808587031215612454578081fd5b61245d856123a1565b935061246b602086016123a1565b93969395505050506040820135916060013590565b60008060008060008060c08789031215612498578182fd5b6124a1876123a1565b95506124af602088016123a1565b95989597505050506040840135936060810135936080820135935060a0909101359150565b600080604083850312156124e6578182fd5b6124ef836123a1565b946020939093013593505050565b6000602080838503121561250f578182fd5b82516001600160401b0380821115612525578384fd5b818501915085601f830112612538578384fd5b81518181111561254457fe5b8381026040518582820101818110858211171561255d57fe5b604052828152858101935084860182860187018a101561257b578788fd5b8795505b8386101561259d57805185526001959095019493860193860161257f565b5098975050505050505050565b6000602082840312156125bb578081fd5b815180151581146118c2578182fd5b600080604083850312156125dc578182fd5b505080516020909101519092909150565b6000602082840312156125fe578081fd5b815162ffffff811681146118c2578182fd5b600060208284031215612621578081fd5b5051919050565b600060208284031215612639578081fd5b815163ffffffff811681146118c2578182fd5b60006020828403121561265d578081fd5b815160ff811681146118c2578182fd5b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152901515604082015260600190565b60006040820160018060a01b03808616845260206040818601528286548085526060870191508786528286209450855b8181101561270d5785548516835260019586019592840192016126ef565b509098975050505050505050565b6020808252825182820181905260009190848201906040850190845b8181101561275c5783516001600160a01b031683529284019291840191600101612737565b50909695505050505050565b901515815260200190565b90815260200190565b918252602082015260400190565b9283526020830191909152604082015260600190565b60208082526008908201526741425f4348434e4360c01b604082015260600190565b6020808252600790820152660869088be9e86960cb1b604082015260600190565b60208082526006908201526541425f4d4e4560d01b604082015260600190565b6020808252601c908201527b506572704d6174683a20696e76657273696f6e206f766572666c6f7760201b604082015260600190565b60208082526007908201526641425f4f424e4360c81b604082015260600190565b60208082526005908201526420a12fa7ab60d91b604082015260600190565b60208082526006908201526541425f564e4360d01b604082015260600190565b60208082526008908201526720a12fa4a8a120a960c11b604082015260600190565b81518152602080830151908201526040918201519181019190915260600190565b63ffffffff9190911681526020019056fe5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f77496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65648be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e053616665436173743a2076616c756520646f65736e27742066697420696e20616e20696e743235365369676e6564536166654d6174683a207375627472616374696f6e206f766572666c6f77a2646970667358221220a7759f2a188fac9c1e2582a2517ad25f349bd3ff943f564f7e890dc621ab035564736f6c63430007060033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101965760003560e01c806313af40351461019b578063293a5077146101b05780632e4586c3146101d95780633c9b5ad1146101ec5780633f9351071461020d578063449323d814610220578063485cc955146102335780636332fef6146102465780636817031b1461026657806368f12e12146102795780636c8381f81461028c5780636ccdc82e146102a1578063715018a6146102b45780637a5b45a0146102bc578063874044f3146102cf57806389f92177146102e25780638d928af8146102f55780638da5cb5b146102fd578063aa2a829414610305578063af74e7361461030d578063b248c4ef1461032d578063b2e2714814610335578063b394569014610348578063b3bd6e121461035b578063bba85bcf1461036e578063bc5920ba14610390578063c575ff7914610398578063cb3c7b8e146103a0578063d50d01b7146103c0578063ec647a12146103d3578063f75c266d146103e6578063fa8e30af146103f9578063fc7372141461040c578063fd6ceee51461041f575b600080fd5b6101ae6101a93660046123b8565b610432565b005b6101c36101be3660046123b8565b61058d565b6040516101d09190612773565b60405180910390f35b6101ae6101e7366004612404565b610690565b6101ff6101fa36600461243f565b6106c7565b6040516101d092919061277c565b6101c361021b3660046123d2565b6106eb565b6101ae61022e3660046123b8565b61072d565b6101ae6102413660046123d2565b6107d4565b6102596102543660046123d2565b610915565b6040516101d091906128bb565b6101ae6102743660046123b8565b61096c565b6101c36102873660046123d2565b610a41565b610294610bd1565b6040516101d0919061266d565b6101c36102af3660046123b8565b610be0565b6101ae610ca9565b6101c36102ca3660046123d2565b610d4a565b6101ae6102dd3660046124d4565b610e18565b6101ae6102f0366004612480565b610e2e565b610294610f67565b610294610f76565b610294610f85565b61032061031b3660046123b8565b610f94565b6040516101d0919061271b565b61029461100a565b6101c36103433660046123d2565b611019565b6101c36103563660046123d2565b611061565b6101c36103693660046123d2565b61110d565b61038161037c3660046123b8565b6111d1565b6040516101d09392919061278a565b6101ae61129b565b610294611387565b6103b36103ae3660046123b8565b611396565b6040516101d09190612768565b6101c36103ce3660046123d2565b61142a565b6101ae6103e1366004612404565b611458565b6101c36103f43660046123b8565b61146b565b6101ae6104073660046123d2565b611508565b6101ae61041a3660046123d2565b61151a565b6101c361042d3660046123b8565b611673565b61043a6116d0565b6001600160a01b031661044b610f76565b6001600160a01b03161461048f576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b0381166104d3576040805162461bcd60e51b81526020600482015260066024820152650534f5f4e57360d41b604482015290519081900360640190fd5b6033546001600160a01b038281169116141561051f576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414f60d01b604482015290519081900360640190fd5b6034546001600160a01b038281169116141561056b576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414360d01b604482015290519081900360640190fd5b603480546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166000908152609e602052604081205481908190815b8181101561065c576001600160a01b0386166000908152609e602052604081208054839081106105d857fe5b60009182526020822001546001600160a01b031691506105f8888361110d565b905060008082121561062b57610628610618610613856116d4565b6117d7565b8390670de0b6b3a7640000611823565b90505b61063586826118c9565b955061064b6106448a85610d4a565b88906118c9565b965050600190920191506105ac9050565b5060008084121561066d5783610670565b60005b905061068461067f82856118c9565b61192e565b9450505050505b919050565b610698611957565b6001600160a01b039283166000908152609f602090815260408083209490951682529290925291902060020155565b6000806106d2611957565b6106de86868686611993565b9150915094509492505050565b6000806106f88484610a41565b905080610709576000915050610727565b6000610714846116d4565b9050610722610618826117d7565b925050505b92915050565b6107356116d0565b6001600160a01b0316610746610f76565b6001600160a01b03161461078a576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b606780546001600160a01b0319166001600160a01b0383169081179091556040517fd0654f5900f9e7e4e605a19334306e6a2786bbf960ac0484a4c12feb6428fe2f90600090a250565b600054610100900460ff16806107ed57506107ed6119ef565b806107fb575060005460ff16155b6108365760405162461bcd60e51b815260040180806020018281038252602e81526020018061290f602e913960400191505060405180910390fd5b600054610100900460ff16158015610861576000805460ff1961ff0019909116610100171660011790555b610873836001600160a01b0316611a00565b6108985760405162461bcd60e51b815260040161088f906127a0565b60405180910390fd5b6108aa826001600160a01b0316611a00565b6108c65760405162461bcd60e51b815260040161088f90612839565b6108ce611a06565b609a80546001600160a01b038086166001600160a01b031992831617909255609b8054928516929091169190911790558015610910576000805461ff00191690555b505050565b61091d612380565b506001600160a01b039182166000908152609f60209081526040808320939094168252918252829020825160608101845281548152600182015492810192909252600201549181019190915290565b6109746116d0565b6001600160a01b0316610985610f76565b6001600160a01b0316146109c9576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6109db816001600160a01b0316611a00565b6109f75760405162461bcd60e51b815260040161088f90612879565b609c80546001600160a01b0319166001600160a01b0383169081179091556040517fa49691f0dd6477ccef49962612a236d252e3a31c3be8b61fa6abeff3e74a757290600090a250565b609b54604051635d8a541d60e01b815260009182916001600160a01b0390911690635d8a541d90610a7b908790879060019060040161269b565b604080518083038186803b158015610a9257600080fd5b505afa158015610aa6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aca91906125ca565b50609b54604051637c2b7c5360e01b81529192506000916001600160a01b0390911690637c2b7c5390610b06908890889060019060040161269b565b60206040518083038186803b158015610b1e57600080fd5b505afa158015610b32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b569190612610565b90506000610b75610b66836117d7565b610b6f856117d7565b90611ab0565b6001600160a01b038088166000908152609f60209081526040808320938a16835292905290812054919250610baa83836118c9565b9050600a610bb78261192e565b10610bc25780610bc5565b60005b98975050505050505050565b6034546001600160a01b031690565b6001600160a01b0381166000908152609e6020908152604080832080548251818502810185019093528083528493830182828015610c4757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c29575b505050505090506000808251905060005b81811015610c9f576000848281518110610c6e57fe5b602002602001015190506000610c8761067f89846106eb565b9050610c938582611b15565b94505050600101610c58565b5090949350505050565b610cb16116d0565b6001600160a01b0316610cc2610f76565b6001600160a01b031614610d06576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6033546040516000916001600160a01b03169060008051602061293d833981519152908390a3603380546001600160a01b0319908116909155603480549091169055565b609b54604051637c2b7c5360e01b815260009182916001600160a01b0390911690637c2b7c5390610d839087908790869060040161269b565b60206040518083038186803b158015610d9b57600080fd5b505afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190612610565b9050610e10610de1826117d7565b6001600160a01b038087166000908152609f602090815260408083209389168352929052206001015490611ab0565b949350505050565b610e20611957565b610e2a8282611b6d565b5050565b610e36611957565b610e4286868686611993565b5050610e4e8682611b6d565b610e588686611019565b158015610ee95750609b546040516321b499f560e11b81526001600160a01b039091169063436933ea90610e929089908990600401612681565b60006040518083038186803b158015610eaa57600080fd5b505afa158015610ebe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ee691908101906124fd565b51155b15610f4a576001600160a01b038087166000908152609f6020908152604080832093891683529290522060010154610f208161192e565b610f298461192e565b1115610f475760405162461bcd60e51b815260040161088f90612899565b91505b610f55868684611bef565b610f5f8686611c38565b505050505050565b609c546001600160a01b031690565b6033546001600160a01b031690565b609a546001600160a01b031690565b6001600160a01b0381166000908152609e6020908152604091829020805483518184028101840190945280845260609392830182828015610ffe57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610fe0575b50505050509050919050565b609b546001600160a01b031690565b6001600160a01b038083166000908152609f60209081526040808320938516835292905290812054600a61104c8261192e565b106110575780610e10565b5060009392505050565b609b54604051635d8a541d60e01b815260009182916001600160a01b0390911690635d8a541d9061109a9087908790869060040161269b565b604080518083038186803b1580156110b157600080fd5b505afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e991906125ca565b50905060006110f88585610d4a565b905061072281611107846117d7565b906118c9565b609b54604051637c2b7c5360e01b815260009182916001600160a01b0390911690637c2b7c5390611147908790879060019060040161269b565b60206040518083038186803b15801561115f57600080fd5b505afa158015611173573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111979190612610565b9050610e106111a5826117d7565b6001600160a01b038087166000908152609f602090815260408083209389168352929052205490611ab0565b6001600160a01b0381166000908152609e6020526040812054819081908190815b81811015611254576001600160a01b0387166000908152609e6020526040812080548390811061121e57fe5b6000918252602090912001546001600160a01b0316905061124961124289836106eb565b85906118c9565b9350506001016111f2565b5060008061126188611e76565b9092509050600061127285846118c9565b6001600160a01b03999099166000908152609d6020526040902054999197509095505050505050565b6034546001600160a01b03166112e0576040805162461bcd60e51b81526020600482015260056024820152640534f5f43360dc1b604482015290519081900360640190fd5b6112e86116d0565b6034546001600160a01b03908116911614611333576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4360d01b604482015290519081900360640190fd5b6034546033546040516001600160a01b03928316929091169060008051602061293d83398151915290600090a360348054603380546001600160a01b03199081166001600160a01b03841617909155169055565b6067546001600160a01b031690565b609b546001600160a01b038281166000908152609e60205260408082209051634dffaee560e01b815291939290921691634dffaee5916113da9186916004016126bf565b60206040518083038186803b1580156113f257600080fd5b505afa158015611406573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072791906125aa565b6001600160a01b039182166000908152609f6020908152604080832093909416825291909152206001015490565b611460611957565b610910838383611bef565b6000610727610613609a60009054906101000a90046001600160a01b03166001600160a01b031663a85494026040518163ffffffff1660e01b815260040160206040518083038186803b1580156114c157600080fd5b505afa1580156114d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f991906125ed565b61150285610be0565b90611fba565b611510611957565b610e2a8282611c38565b611522611957565b6001600160a01b0382166000908152609e60209081526040918290208054835181840281018401909452808452909261159d929091849183018282801561159257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611574575b505050505083611fcf565b156115a85750610e2a565b8054600181018255600082815260209081902090910180546001600160a01b0319166001600160a01b0385811691909117909155609a5460408051631623e65d60e11b815290519190921692632c47ccba9260048082019391829003018186803b15801561161557600080fd5b505afa158015611629573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164d919061264c565b60ff16818054905011156109105760405162461bcd60e51b815260040161088f906127e3565b609c546000906001600160a01b031661168a6116d0565b6001600160a01b0316146116b05760405162461bcd60e51b815260040161088f9061285a565b506001600160a01b03166000908152609d60205260408120805491905590565b3390565b6000816001600160a01b03166312080647609a60009054906101000a90046001600160a01b03166001600160a01b0316633e742e3b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561173357600080fd5b505afa158015611747573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176b9190612628565b6040518263ffffffff1660e01b815260040161178791906128dc565b60206040518083038186803b15801561179f57600080fd5b505afa1580156117b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107279190612610565b60006001600160ff1b0382111561181f5760405162461bcd60e51b815260040180806020018281038252602881526020018061295d6028913960400191505060405180910390fd5b5090565b60008060008512611834578461183d565b61183d8561201b565b9050600080851261184e5784611857565b6118578561201b565b90506000808712801561186a5750600086135b8061188057506000871380156118805750600086125b61188b57600061188e565b60015b9050600061189d848488612047565b9050816118b2576118ad816117d7565b6118bb565b6118bb816120f6565b9450505050505b9392505050565b60008282018183128015906118de5750838112155b806118f357506000831280156118f357508381125b6118c25760405162461bcd60e51b81526004018080602001828103825260218152602001806128ee6021913960400191505060405180910390fd5b60008082121561194e576119496119448361201b565b61210a565b610727565b6107278261210a565b6067546001600160a01b031661196b6116d0565b6001600160a01b0316146119915760405162461bcd60e51b815260040161088f906127c2565b565b6001600160a01b038085166000908152609f60209081526040808320938716835292905290812080548291906119c990866118c9565b815560018101546119da90856118c9565b60018201819055905497909650945050505050565b60006119fa30611a00565b15905090565b3b151590565b600054610100900460ff1680611a1f5750611a1f6119ef565b80611a2d575060005460ff16155b611a685760405162461bcd60e51b815260040180806020018281038252602e81526020018061290f602e913960400191505060405180910390fd5b600054610100900460ff16158015611a93576000805460ff1961ff0019909116610100171660011790555b611a9b612161565b8015611aad576000805461ff00191690555b50565b6000818303818312801590611ac55750838113155b80611ada5750600083128015611ada57508381135b6118c25760405162461bcd60e51b81526004018080602001828103825260248152602001806129856024913960400191505060405180910390fd5b6000828201838110156118c2576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b8015610e2a576001600160a01b0382166000908152609d6020526040902054611b9690826118c9565b6001600160a01b0383166000818152609d6020526040908190209290925590517febf4e69d81451d269fc4d9551b06d58bea2ed426d2c528919ce45f6070946efb90611be3908490612773565b60405180910390a25050565b6001600160a01b038084166000908152609f602090815260408083209386168352929052206001810154611c239083611ab0565b6001820155611c328483611b6d565b50505050565b6001600160a01b038083166000908152609f602090815260408083209385168352928152908290208251606081018452815480825260018301549382019390935260029091015492810192909252600a90611c929061192e565b101580611cac5750600a611ca9826020015161192e565b10155b15611cb75750610e2a565b609b546040516321b499f560e11b81526000916001600160a01b03169063436933ea90611cea9087908790600401612681565b60006040518083038186803b158015611d0257600080fd5b505afa158015611d16573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d3e91908101906124fd565b511115611d4b5750610e2a565b6001600160a01b038084166000818152609f60209081526040808320948716835293815283822082815560018101839055600201829055918152609e909152908120805490915b81811015610f5f57846001600160a01b0316838281548110611db057fe5b6000918252602090912001546001600160a01b03161415611e6e57600182038114611e3d57826001830381548110611de457fe5b9060005260206000200160009054906101000a90046001600160a01b0316838281548110611e0e57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b82805480611e4757fe5b600082815260209020810160001990810180546001600160a01b0319169055019055610f5f565b600101611d92565b6001600160a01b0381166000908152609e602052604081205481908190815b81811015611f0e576001600160a01b0386166000908152609e60205260408120805483908110611ec157fe5b60009182526020808320909101546001600160a01b038a81168452609f8352604080852091909216808552925290912060010154909150611f039085906118c9565b935050600101611e95565b50609b546001600160a01b038681166000908152609e6020526040808220905163d0581a9360e01b81529193929092169163d0581a9391611f53918a916004016126bf565b604080518083038186803b158015611f6a57600080fd5b505afa158015611f7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa291906125ca565b94509050611fb083826118c9565b9450505050915091565b60006118c2838362ffffff16620f4240612047565b6000805b835181101561105757826001600160a01b0316848281518110611ff257fe5b60200260200101516001600160a01b03161415612013576001915050610727565b600101611fd3565b6000600160ff1b82136120405760405162461bcd60e51b815260040161088f90612803565b5060000390565b600080806000198587098686029250828110908390030390508061207d576000841161207257600080fd5b5082900490506118c2565b80841161208957600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b6000612101826117d7565b60000392915050565b60008082121561181f576040805162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f736974697665604482015290519081900360640190fd5b600054610100900460ff168061217a575061217a6119ef565b80612188575060005460ff16155b6121c35760405162461bcd60e51b815260040180806020018281038252602e81526020018061290f602e913960400191505060405180910390fd5b600054610100900460ff161580156121ee576000805460ff1961ff0019909116610100171660011790555b6121f6612250565b60006122006116d0565b603380546001600160a01b0319166001600160a01b0383169081179091556040519192509060009060008051602061293d833981519152908290a3508015611aad576000805461ff001916905550565b600054610100900460ff168061226957506122696119ef565b80612277575060005460ff16155b6122b25760405162461bcd60e51b815260040180806020018281038252602e81526020018061290f602e913960400191505060405180910390fd5b600054610100900460ff161580156122dd576000805460ff1961ff0019909116610100171660011790555b611a9b600054610100900460ff16806122f957506122f96119ef565b80612307575060005460ff16155b6123425760405162461bcd60e51b815260040180806020018281038252602e81526020018061290f602e913960400191505060405180910390fd5b600054610100900460ff16158015611a9b576000805460ff1961ff0019909116610100171660011790558015611aad576000805461ff001916905550565b60405180606001604052806000815260200160008152602001600081525090565b80356001600160a01b038116811461068b57600080fd5b6000602082840312156123c9578081fd5b6118c2826123a1565b600080604083850312156123e4578081fd5b6123ed836123a1565b91506123fb602084016123a1565b90509250929050565b600080600060608486031215612418578081fd5b612421846123a1565b925061242f602085016123a1565b9150604084013590509250925092565b60008060008060808587031215612454578081fd5b61245d856123a1565b935061246b602086016123a1565b93969395505050506040820135916060013590565b60008060008060008060c08789031215612498578182fd5b6124a1876123a1565b95506124af602088016123a1565b95989597505050506040840135936060810135936080820135935060a0909101359150565b600080604083850312156124e6578182fd5b6124ef836123a1565b946020939093013593505050565b6000602080838503121561250f578182fd5b82516001600160401b0380821115612525578384fd5b818501915085601f830112612538578384fd5b81518181111561254457fe5b8381026040518582820101818110858211171561255d57fe5b604052828152858101935084860182860187018a101561257b578788fd5b8795505b8386101561259d57805185526001959095019493860193860161257f565b5098975050505050505050565b6000602082840312156125bb578081fd5b815180151581146118c2578182fd5b600080604083850312156125dc578182fd5b505080516020909101519092909150565b6000602082840312156125fe578081fd5b815162ffffff811681146118c2578182fd5b600060208284031215612621578081fd5b5051919050565b600060208284031215612639578081fd5b815163ffffffff811681146118c2578182fd5b60006020828403121561265d578081fd5b815160ff811681146118c2578182fd5b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152901515604082015260600190565b60006040820160018060a01b03808616845260206040818601528286548085526060870191508786528286209450855b8181101561270d5785548516835260019586019592840192016126ef565b509098975050505050505050565b6020808252825182820181905260009190848201906040850190845b8181101561275c5783516001600160a01b031683529284019291840191600101612737565b50909695505050505050565b901515815260200190565b90815260200190565b918252602082015260400190565b9283526020830191909152604082015260600190565b60208082526008908201526741425f4348434e4360c01b604082015260600190565b6020808252600790820152660869088be9e86960cb1b604082015260600190565b60208082526006908201526541425f4d4e4560d01b604082015260600190565b6020808252601c908201527b506572704d6174683a20696e76657273696f6e206f766572666c6f7760201b604082015260600190565b60208082526007908201526641425f4f424e4360c81b604082015260600190565b60208082526005908201526420a12fa7ab60d91b604082015260600190565b60208082526006908201526541425f564e4360d01b604082015260600190565b60208082526008908201526720a12fa4a8a120a960c11b604082015260600190565b81518152602080830151908201526040918201519181019190915260600190565b63ffffffff9190911681526020019056fe5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f77496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65648be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e053616665436173743a2076616c756520646f65736e27742066697420696e20616e20696e743235365369676e6564536166654d6174683a207375627472616374696f6e206f766572666c6f77a2646970667358221220a7759f2a188fac9c1e2582a2517ad25f349bd3ff943f564f7e890dc621ab035564736f6c63430007060033",
"linkReferences": {},
"deployedLinkReferences": {}
}

@@ -488,6 +488,6 @@ {

],
"bytecode": "0x608060405234801561001057600080fd5b50611bf8806100206000396000f3fe608060405234801561001057600080fd5b506004361061011d5760003560e01c806306fdde0314610122578063077f224a1461019f578063095ea7b3146102d557806309fd821214610315578063120806471461033b57806313af40351461036a57806318160ddd1461039057806323b872dd14610398578063313ce567146103ce57806339509351146103ec5780636c8381f81461041857806370a082311461043c578063715018a61461046257806378c8cda71461046a5780638da5cb5b1461049057806395d89b41146104985780639e87a5cd146104a0578063a457c2d7146104a8578063a9059cbb146104d4578063bc5920ba14610500578063dd62ed3e14610508578063f52e308e14610536578063f80f5dd51461055c575b600080fd5b61012a610582565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561016457818101518382015260200161014c565b50505050905090810190601f1680156101915780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102d3600480360360608110156101b557600080fd5b810190602081018135600160201b8111156101cf57600080fd5b8201836020820111156101e157600080fd5b803590602001918460018302840111600160201b8311171561020257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561025457600080fd5b82018360208201111561026657600080fd5b803590602001918460018302840111600160201b8311171561028757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550505090356001600160a01b031691506106189050565b005b610301600480360360408110156102eb57600080fd5b506001600160a01b0381351690602001356107aa565b604080519115158252519081900360200190f35b6103016004803603602081101561032b57600080fd5b50356001600160a01b03166107c8565b6103586004803603602081101561035157600080fd5b50356107e6565b60408051918252519081900360200190f35b6102d36004803603602081101561038057600080fd5b50356001600160a01b0316610875565b6103586109d0565b610301600480360360608110156103ae57600080fd5b506001600160a01b038135811691602081013590911690604001356109d6565b6103d6610a5d565b6040805160ff9092168252519081900360200190f35b6103016004803603604081101561040257600080fd5b506001600160a01b038135169060200135610a66565b610420610ab4565b604080516001600160a01b039092168252519081900360200190f35b6103586004803603602081101561045257600080fd5b50356001600160a01b0316610ac3565b6102d3610ade565b6102d36004803603602081101561048057600080fd5b50356001600160a01b0316610b7f565b610420610c78565b61012a610c87565b610420610ce8565b610301600480360360408110156104be57600080fd5b506001600160a01b038135169060200135610cfc565b610301600480360360408110156104ea57600080fd5b506001600160a01b038135169060200135610d64565b6102d3610d78565b6103586004803603604081101561051e57600080fd5b506001600160a01b0381358116916020013516610e64565b6102d36004803603602081101561054c57600080fd5b50356001600160a01b0316610e8f565b6102d36004803603602081101561057257600080fd5b50356001600160a01b0316610efb565b606a8054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561060e5780601f106105e35761010080835404028352916020019161060e565b820191906000526020600020905b8154815290600101906020018083116105f157829003601f168201915b5050505050905090565b600054610100900460ff16806106315750610631610fb3565b8061063f575060005460ff16155b61067a5760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff161580156106a5576000805460ff1961ff0019909116610100171660011790555b6106af8484610fc4565b6000826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156106ea57600080fd5b505afa1580156106fe573d6000803e3d6000fd5b505050506040513d602081101561071457600080fd5b50519050610720610a5d565b60ff168160ff161115610764576040805162461bcd60e51b8152602060048201526007602482015266109517d254119160ca1b604482015290519081900360640190fd5b60cc8054610100600160a81b0319166101006001600160a01b038616021760ff191660ff9290921691909117905580156107a4576000805461ff00191690555b50505050565b60006107be6107b761107a565b848461107e565b5060015b92915050565b6001600160a01b031660009081526099602052604090205460ff1690565b60006107c260cc60019054906101000a90046001600160a01b03166001600160a01b031663e7572230846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561084457600080fd5b505afa158015610858573d6000803e3d6000fd5b505050506040513d602081101561086e57600080fd5b505161116a565b61087d61107a565b6001600160a01b031661088e610c78565b6001600160a01b0316146108d2576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038116610916576040805162461bcd60e51b81526020600482015260066024820152650534f5f4e57360d41b604482015290519081900360640190fd5b6033546001600160a01b0382811691161415610962576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414f60d01b604482015290519081900360640190fd5b6034546001600160a01b03828116911614156109ae576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414360d01b604482015290519081900360640190fd5b603480546001600160a01b0319166001600160a01b0392909216919091179055565b60695490565b60006109e3848484611196565b610a53846109ef61107a565b610a4e85604051806060016040528060288152602001611aed602891396001600160a01b038a16600090815260686020526040812090610a2d61107a565b6001600160a01b0316815260208101919091526040016000205491906112e1565b61107e565b5060019392505050565b606c5460ff1690565b60006107be610a7361107a565b84610a4e8560686000610a8461107a565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611378565b6034546001600160a01b031690565b6001600160a01b031660009081526067602052604090205490565b610ae661107a565b6001600160a01b0316610af7610c78565b6001600160a01b031614610b3b576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6033546040516000916001600160a01b031690600080516020611b15833981519152908390a3603380546001600160a01b0319908116909155603480549091169055565b610b8761107a565b6001600160a01b0316610b98610c78565b6001600160a01b031614610bdc576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b610be581610ac3565b15610c20576040805162461bcd60e51b81526020600482015260066024820152652b2a2fa1272d60d11b604482015290519081900360640190fd5b6001600160a01b038116600081815260996020908152604091829020805460ff19169055815192835290517fde8cf212af7ce38b2840785a2768d97ff2dbf3c21b516961cec0061e134c2a1e9281900390910190a150565b6033546001600160a01b031690565b606b8054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561060e5780601f106105e35761010080835404028352916020019161060e565b60cc5461010090046001600160a01b031690565b60006107be610d0961107a565b84610a4e85604051806060016040528060258152602001611b9e6025913960686000610d3361107a565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906112e1565b60006107be610d7161107a565b8484611196565b6034546001600160a01b0316610dbd576040805162461bcd60e51b81526020600482015260056024820152640534f5f43360dc1b604482015290519081900360640190fd5b610dc561107a565b6034546001600160a01b03908116911614610e10576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4360d01b604482015290519081900360640190fd5b6034546033546040516001600160a01b039283169290911690600080516020611b1583398151915290600090a360348054603380546001600160a01b03199081166001600160a01b03841617909155169055565b6001600160a01b03918216600090815260686020908152604080832093909416825291909152205490565b610e9761107a565b6001600160a01b0316610ea8610c78565b6001600160a01b031614610eec576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b610ef8816000196113d7565b50565b610f0361107a565b6001600160a01b0316610f14610c78565b6001600160a01b031614610f58576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038116600081815260996020908152604091829020805460ff19166001179055815192835290517f4790a4adb426ca2345bb5108f6e454eae852a7bf687544cd66a7270dff3a41d69281900390910190a150565b6000610fbe306114b7565b15905090565b600054610100900460ff1680610fdd5750610fdd610fb3565b80610feb575060005460ff16155b6110265760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff16158015611051576000805460ff1961ff0019909116610100171660011790555b6110596114bd565b61106383836115ac565b8015611075576000805461ff00191690555b505050565b3390565b6001600160a01b0383166110c35760405162461bcd60e51b8152600401808060200182810382526024815260200180611b7a6024913960400191505060405180910390fd5b6001600160a01b0382166111085760405162461bcd60e51b8152600401808060200182810382526022815260200180611a566022913960400191505060405180910390fd5b6001600160a01b03808416600081815260686020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60cc546000906107c29061118c9060ff16611183610a5d565b60ff169061164b565b8390600a0a6116a8565b6001600160a01b0383166111db5760405162461bcd60e51b8152600401808060200182810382526025815260200180611b556025913960400191505060405180910390fd5b6001600160a01b0382166112205760405162461bcd60e51b8152600401808060200182810382526023815260200180611a336023913960400191505060405180910390fd5b61122b838383611701565b61126881604051806060016040528060268152602001611a78602691396001600160a01b03861660009081526067602052604090205491906112e1565b6001600160a01b0380851660009081526067602052604080822093909355908416815220546112979082611378565b6001600160a01b038084166000818152606760209081526040918290209490945580518581529051919392871692600080516020611b3583398151915292918290030190a3505050565b600081848411156113705760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561133557818101518382015260200161131d565b50505050905090810190601f1680156113625780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156113d0576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b9392505050565b6001600160a01b038216611432576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61143e60008383611701565b60695461144b9082611378565b6069556001600160a01b0382166000908152606760205260409020546114719082611378565b6001600160a01b0383166000818152606760209081526040808320949094558351858152935192939192600080516020611b358339815191529281900390910190a35050565b3b151590565b600054610100900460ff16806114d657506114d6610fb3565b806114e4575060005460ff16155b61151f5760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff1615801561154a576000805460ff1961ff0019909116610100171660011790555b611552611770565b600061155c61107a565b603380546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020611b15833981519152908290a3508015610ef8576000805461ff001916905550565b600054610100900460ff16806115c557506115c5610fb3565b806115d3575060005460ff16155b61160e5760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff16158015611639576000805460ff1961ff0019909116610100171660011790555b611641611819565b61106383836118b9565b6000828211156116a2576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000826116b7575060006107c2565b828202828482816116c457fe5b04146113d05760405162461bcd60e51b8152600401808060200182810382526021815260200180611acc6021913960400191505060405180910390fd5b61170c838383611075565b6001600160a01b03831615611075576001600160a01b03831660009081526099602052604090205460ff16611075576040805162461bcd60e51b815260206004820152600560248201526456545f4e5760d81b604482015290519081900360640190fd5b600054610100900460ff16806117895750611789610fb3565b80611797575060005460ff16155b6117d25760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff161580156117fd576000805460ff1961ff0019909116610100171660011790555b611805611819565b8015610ef8576000805461ff001916905550565b600054610100900460ff16806118325750611832610fb3565b80611840575060005460ff16155b61187b5760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff16158015611805576000805460ff1961ff0019909116610100171660011790558015610ef8576000805461ff001916905550565b600054610100900460ff16806118d257506118d2610fb3565b806118e0575060005460ff16155b61191b5760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff16158015611946576000805460ff1961ff0019909116610100171660011790555b825161195990606a906020860190611991565b50815161196d90606b906020850190611991565b50606c805460ff191660121790558015611075576000805461ff0019169055505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826119c75760008555611a0d565b82601f106119e057805160ff1916838001178555611a0d565b82800160010185558215611a0d579182015b82811115611a0d5782518255916020019190600101906119f2565b50611a19929150611a1d565b5090565b5b80821115611a195760008155600101611a1e56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122050846ee68f18177cdbbe2ceb48d3327c3b91aca31ce10f3782f4fb5aa4ff930764736f6c63430007060033",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061011d5760003560e01c806306fdde0314610122578063077f224a1461019f578063095ea7b3146102d557806309fd821214610315578063120806471461033b57806313af40351461036a57806318160ddd1461039057806323b872dd14610398578063313ce567146103ce57806339509351146103ec5780636c8381f81461041857806370a082311461043c578063715018a61461046257806378c8cda71461046a5780638da5cb5b1461049057806395d89b41146104985780639e87a5cd146104a0578063a457c2d7146104a8578063a9059cbb146104d4578063bc5920ba14610500578063dd62ed3e14610508578063f52e308e14610536578063f80f5dd51461055c575b600080fd5b61012a610582565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561016457818101518382015260200161014c565b50505050905090810190601f1680156101915780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102d3600480360360608110156101b557600080fd5b810190602081018135600160201b8111156101cf57600080fd5b8201836020820111156101e157600080fd5b803590602001918460018302840111600160201b8311171561020257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561025457600080fd5b82018360208201111561026657600080fd5b803590602001918460018302840111600160201b8311171561028757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550505090356001600160a01b031691506106189050565b005b610301600480360360408110156102eb57600080fd5b506001600160a01b0381351690602001356107aa565b604080519115158252519081900360200190f35b6103016004803603602081101561032b57600080fd5b50356001600160a01b03166107c8565b6103586004803603602081101561035157600080fd5b50356107e6565b60408051918252519081900360200190f35b6102d36004803603602081101561038057600080fd5b50356001600160a01b0316610875565b6103586109d0565b610301600480360360608110156103ae57600080fd5b506001600160a01b038135811691602081013590911690604001356109d6565b6103d6610a5d565b6040805160ff9092168252519081900360200190f35b6103016004803603604081101561040257600080fd5b506001600160a01b038135169060200135610a66565b610420610ab4565b604080516001600160a01b039092168252519081900360200190f35b6103586004803603602081101561045257600080fd5b50356001600160a01b0316610ac3565b6102d3610ade565b6102d36004803603602081101561048057600080fd5b50356001600160a01b0316610b7f565b610420610c78565b61012a610c87565b610420610ce8565b610301600480360360408110156104be57600080fd5b506001600160a01b038135169060200135610cfc565b610301600480360360408110156104ea57600080fd5b506001600160a01b038135169060200135610d64565b6102d3610d78565b6103586004803603604081101561051e57600080fd5b506001600160a01b0381358116916020013516610e64565b6102d36004803603602081101561054c57600080fd5b50356001600160a01b0316610e8f565b6102d36004803603602081101561057257600080fd5b50356001600160a01b0316610efb565b606a8054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561060e5780601f106105e35761010080835404028352916020019161060e565b820191906000526020600020905b8154815290600101906020018083116105f157829003601f168201915b5050505050905090565b600054610100900460ff16806106315750610631610fb3565b8061063f575060005460ff16155b61067a5760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff161580156106a5576000805460ff1961ff0019909116610100171660011790555b6106af8484610fc4565b6000826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156106ea57600080fd5b505afa1580156106fe573d6000803e3d6000fd5b505050506040513d602081101561071457600080fd5b50519050610720610a5d565b60ff168160ff161115610764576040805162461bcd60e51b8152602060048201526007602482015266109517d254119160ca1b604482015290519081900360640190fd5b60cc8054610100600160a81b0319166101006001600160a01b038616021760ff191660ff9290921691909117905580156107a4576000805461ff00191690555b50505050565b60006107be6107b761107a565b848461107e565b5060015b92915050565b6001600160a01b031660009081526099602052604090205460ff1690565b60006107c260cc60019054906101000a90046001600160a01b03166001600160a01b031663e7572230846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561084457600080fd5b505afa158015610858573d6000803e3d6000fd5b505050506040513d602081101561086e57600080fd5b505161116a565b61087d61107a565b6001600160a01b031661088e610c78565b6001600160a01b0316146108d2576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038116610916576040805162461bcd60e51b81526020600482015260066024820152650534f5f4e57360d41b604482015290519081900360640190fd5b6033546001600160a01b0382811691161415610962576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414f60d01b604482015290519081900360640190fd5b6034546001600160a01b03828116911614156109ae576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414360d01b604482015290519081900360640190fd5b603480546001600160a01b0319166001600160a01b0392909216919091179055565b60695490565b60006109e3848484611196565b610a53846109ef61107a565b610a4e85604051806060016040528060288152602001611aed602891396001600160a01b038a16600090815260686020526040812090610a2d61107a565b6001600160a01b0316815260208101919091526040016000205491906112e1565b61107e565b5060019392505050565b606c5460ff1690565b60006107be610a7361107a565b84610a4e8560686000610a8461107a565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611378565b6034546001600160a01b031690565b6001600160a01b031660009081526067602052604090205490565b610ae661107a565b6001600160a01b0316610af7610c78565b6001600160a01b031614610b3b576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6033546040516000916001600160a01b031690600080516020611b15833981519152908390a3603380546001600160a01b0319908116909155603480549091169055565b610b8761107a565b6001600160a01b0316610b98610c78565b6001600160a01b031614610bdc576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b610be581610ac3565b15610c20576040805162461bcd60e51b81526020600482015260066024820152652b2a2fa1272d60d11b604482015290519081900360640190fd5b6001600160a01b038116600081815260996020908152604091829020805460ff19169055815192835290517fde8cf212af7ce38b2840785a2768d97ff2dbf3c21b516961cec0061e134c2a1e9281900390910190a150565b6033546001600160a01b031690565b606b8054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561060e5780601f106105e35761010080835404028352916020019161060e565b60cc5461010090046001600160a01b031690565b60006107be610d0961107a565b84610a4e85604051806060016040528060258152602001611b9e6025913960686000610d3361107a565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906112e1565b60006107be610d7161107a565b8484611196565b6034546001600160a01b0316610dbd576040805162461bcd60e51b81526020600482015260056024820152640534f5f43360dc1b604482015290519081900360640190fd5b610dc561107a565b6034546001600160a01b03908116911614610e10576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4360d01b604482015290519081900360640190fd5b6034546033546040516001600160a01b039283169290911690600080516020611b1583398151915290600090a360348054603380546001600160a01b03199081166001600160a01b03841617909155169055565b6001600160a01b03918216600090815260686020908152604080832093909416825291909152205490565b610e9761107a565b6001600160a01b0316610ea8610c78565b6001600160a01b031614610eec576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b610ef8816000196113d7565b50565b610f0361107a565b6001600160a01b0316610f14610c78565b6001600160a01b031614610f58576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038116600081815260996020908152604091829020805460ff19166001179055815192835290517f4790a4adb426ca2345bb5108f6e454eae852a7bf687544cd66a7270dff3a41d69281900390910190a150565b6000610fbe306114b7565b15905090565b600054610100900460ff1680610fdd5750610fdd610fb3565b80610feb575060005460ff16155b6110265760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff16158015611051576000805460ff1961ff0019909116610100171660011790555b6110596114bd565b61106383836115ac565b8015611075576000805461ff00191690555b505050565b3390565b6001600160a01b0383166110c35760405162461bcd60e51b8152600401808060200182810382526024815260200180611b7a6024913960400191505060405180910390fd5b6001600160a01b0382166111085760405162461bcd60e51b8152600401808060200182810382526022815260200180611a566022913960400191505060405180910390fd5b6001600160a01b03808416600081815260686020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60cc546000906107c29061118c9060ff16611183610a5d565b60ff169061164b565b8390600a0a6116a8565b6001600160a01b0383166111db5760405162461bcd60e51b8152600401808060200182810382526025815260200180611b556025913960400191505060405180910390fd5b6001600160a01b0382166112205760405162461bcd60e51b8152600401808060200182810382526023815260200180611a336023913960400191505060405180910390fd5b61122b838383611701565b61126881604051806060016040528060268152602001611a78602691396001600160a01b03861660009081526067602052604090205491906112e1565b6001600160a01b0380851660009081526067602052604080822093909355908416815220546112979082611378565b6001600160a01b038084166000818152606760209081526040918290209490945580518581529051919392871692600080516020611b3583398151915292918290030190a3505050565b600081848411156113705760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561133557818101518382015260200161131d565b50505050905090810190601f1680156113625780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156113d0576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b9392505050565b6001600160a01b038216611432576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61143e60008383611701565b60695461144b9082611378565b6069556001600160a01b0382166000908152606760205260409020546114719082611378565b6001600160a01b0383166000818152606760209081526040808320949094558351858152935192939192600080516020611b358339815191529281900390910190a35050565b3b151590565b600054610100900460ff16806114d657506114d6610fb3565b806114e4575060005460ff16155b61151f5760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff1615801561154a576000805460ff1961ff0019909116610100171660011790555b611552611770565b600061155c61107a565b603380546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020611b15833981519152908290a3508015610ef8576000805461ff001916905550565b600054610100900460ff16806115c557506115c5610fb3565b806115d3575060005460ff16155b61160e5760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff16158015611639576000805460ff1961ff0019909116610100171660011790555b611641611819565b61106383836118b9565b6000828211156116a2576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000826116b7575060006107c2565b828202828482816116c457fe5b04146113d05760405162461bcd60e51b8152600401808060200182810382526021815260200180611acc6021913960400191505060405180910390fd5b61170c838383611075565b6001600160a01b03831615611075576001600160a01b03831660009081526099602052604090205460ff16611075576040805162461bcd60e51b815260206004820152600560248201526456545f4e5760d81b604482015290519081900360640190fd5b600054610100900460ff16806117895750611789610fb3565b80611797575060005460ff16155b6117d25760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff161580156117fd576000805460ff1961ff0019909116610100171660011790555b611805611819565b8015610ef8576000805461ff001916905550565b600054610100900460ff16806118325750611832610fb3565b80611840575060005460ff16155b61187b5760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff16158015611805576000805460ff1961ff0019909116610100171660011790558015610ef8576000805461ff001916905550565b600054610100900460ff16806118d257506118d2610fb3565b806118e0575060005460ff16155b61191b5760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff16158015611946576000805460ff1961ff0019909116610100171660011790555b825161195990606a906020860190611991565b50815161196d90606b906020850190611991565b50606c805460ff191660121790558015611075576000805461ff0019169055505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826119c75760008555611a0d565b82601f106119e057805160ff1916838001178555611a0d565b82800160010185558215611a0d579182015b82811115611a0d5782518255916020019190600101906119f2565b50611a19929150611a1d565b5090565b5b80821115611a195760008155600101611a1e56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122050846ee68f18177cdbbe2ceb48d3327c3b91aca31ce10f3782f4fb5aa4ff930764736f6c63430007060033",
"bytecode": "0x608060405234801561001057600080fd5b50611bf8806100206000396000f3fe608060405234801561001057600080fd5b506004361061011d5760003560e01c806306fdde0314610122578063077f224a1461019f578063095ea7b3146102d557806309fd821214610315578063120806471461033b57806313af40351461036a57806318160ddd1461039057806323b872dd14610398578063313ce567146103ce57806339509351146103ec5780636c8381f81461041857806370a082311461043c578063715018a61461046257806378c8cda71461046a5780638da5cb5b1461049057806395d89b41146104985780639e87a5cd146104a0578063a457c2d7146104a8578063a9059cbb146104d4578063bc5920ba14610500578063dd62ed3e14610508578063f52e308e14610536578063f80f5dd51461055c575b600080fd5b61012a610582565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561016457818101518382015260200161014c565b50505050905090810190601f1680156101915780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102d3600480360360608110156101b557600080fd5b810190602081018135600160201b8111156101cf57600080fd5b8201836020820111156101e157600080fd5b803590602001918460018302840111600160201b8311171561020257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561025457600080fd5b82018360208201111561026657600080fd5b803590602001918460018302840111600160201b8311171561028757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550505090356001600160a01b031691506106189050565b005b610301600480360360408110156102eb57600080fd5b506001600160a01b0381351690602001356107aa565b604080519115158252519081900360200190f35b6103016004803603602081101561032b57600080fd5b50356001600160a01b03166107c8565b6103586004803603602081101561035157600080fd5b50356107e6565b60408051918252519081900360200190f35b6102d36004803603602081101561038057600080fd5b50356001600160a01b0316610875565b6103586109d0565b610301600480360360608110156103ae57600080fd5b506001600160a01b038135811691602081013590911690604001356109d6565b6103d6610a5d565b6040805160ff9092168252519081900360200190f35b6103016004803603604081101561040257600080fd5b506001600160a01b038135169060200135610a66565b610420610ab4565b604080516001600160a01b039092168252519081900360200190f35b6103586004803603602081101561045257600080fd5b50356001600160a01b0316610ac3565b6102d3610ade565b6102d36004803603602081101561048057600080fd5b50356001600160a01b0316610b7f565b610420610c78565b61012a610c87565b610420610ce8565b610301600480360360408110156104be57600080fd5b506001600160a01b038135169060200135610cfc565b610301600480360360408110156104ea57600080fd5b506001600160a01b038135169060200135610d64565b6102d3610d78565b6103586004803603604081101561051e57600080fd5b506001600160a01b0381358116916020013516610e64565b6102d36004803603602081101561054c57600080fd5b50356001600160a01b0316610e8f565b6102d36004803603602081101561057257600080fd5b50356001600160a01b0316610efb565b606a8054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561060e5780601f106105e35761010080835404028352916020019161060e565b820191906000526020600020905b8154815290600101906020018083116105f157829003601f168201915b5050505050905090565b600054610100900460ff16806106315750610631610fb3565b8061063f575060005460ff16155b61067a5760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff161580156106a5576000805460ff1961ff0019909116610100171660011790555b6106af8484610fc4565b6000826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156106ea57600080fd5b505afa1580156106fe573d6000803e3d6000fd5b505050506040513d602081101561071457600080fd5b50519050610720610a5d565b60ff168160ff161115610764576040805162461bcd60e51b8152602060048201526007602482015266109517d254119160ca1b604482015290519081900360640190fd5b60cc8054610100600160a81b0319166101006001600160a01b038616021760ff191660ff9290921691909117905580156107a4576000805461ff00191690555b50505050565b60006107be6107b761107a565b848461107e565b5060015b92915050565b6001600160a01b031660009081526099602052604090205460ff1690565b60006107c260cc60019054906101000a90046001600160a01b03166001600160a01b031663e7572230846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561084457600080fd5b505afa158015610858573d6000803e3d6000fd5b505050506040513d602081101561086e57600080fd5b505161116a565b61087d61107a565b6001600160a01b031661088e610c78565b6001600160a01b0316146108d2576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038116610916576040805162461bcd60e51b81526020600482015260066024820152650534f5f4e57360d41b604482015290519081900360640190fd5b6033546001600160a01b0382811691161415610962576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414f60d01b604482015290519081900360640190fd5b6034546001600160a01b03828116911614156109ae576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414360d01b604482015290519081900360640190fd5b603480546001600160a01b0319166001600160a01b0392909216919091179055565b60695490565b60006109e3848484611196565b610a53846109ef61107a565b610a4e85604051806060016040528060288152602001611aed602891396001600160a01b038a16600090815260686020526040812090610a2d61107a565b6001600160a01b0316815260208101919091526040016000205491906112e1565b61107e565b5060019392505050565b606c5460ff1690565b60006107be610a7361107a565b84610a4e8560686000610a8461107a565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611378565b6034546001600160a01b031690565b6001600160a01b031660009081526067602052604090205490565b610ae661107a565b6001600160a01b0316610af7610c78565b6001600160a01b031614610b3b576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6033546040516000916001600160a01b031690600080516020611b15833981519152908390a3603380546001600160a01b0319908116909155603480549091169055565b610b8761107a565b6001600160a01b0316610b98610c78565b6001600160a01b031614610bdc576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b610be581610ac3565b15610c20576040805162461bcd60e51b81526020600482015260066024820152652b2a2fa1272d60d11b604482015290519081900360640190fd5b6001600160a01b038116600081815260996020908152604091829020805460ff19169055815192835290517fde8cf212af7ce38b2840785a2768d97ff2dbf3c21b516961cec0061e134c2a1e9281900390910190a150565b6033546001600160a01b031690565b606b8054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561060e5780601f106105e35761010080835404028352916020019161060e565b60cc5461010090046001600160a01b031690565b60006107be610d0961107a565b84610a4e85604051806060016040528060258152602001611b9e6025913960686000610d3361107a565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906112e1565b60006107be610d7161107a565b8484611196565b6034546001600160a01b0316610dbd576040805162461bcd60e51b81526020600482015260056024820152640534f5f43360dc1b604482015290519081900360640190fd5b610dc561107a565b6034546001600160a01b03908116911614610e10576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4360d01b604482015290519081900360640190fd5b6034546033546040516001600160a01b039283169290911690600080516020611b1583398151915290600090a360348054603380546001600160a01b03199081166001600160a01b03841617909155169055565b6001600160a01b03918216600090815260686020908152604080832093909416825291909152205490565b610e9761107a565b6001600160a01b0316610ea8610c78565b6001600160a01b031614610eec576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b610ef8816000196113d7565b50565b610f0361107a565b6001600160a01b0316610f14610c78565b6001600160a01b031614610f58576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038116600081815260996020908152604091829020805460ff19166001179055815192835290517f4790a4adb426ca2345bb5108f6e454eae852a7bf687544cd66a7270dff3a41d69281900390910190a150565b6000610fbe306114b7565b15905090565b600054610100900460ff1680610fdd5750610fdd610fb3565b80610feb575060005460ff16155b6110265760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff16158015611051576000805460ff1961ff0019909116610100171660011790555b6110596114bd565b61106383836115ac565b8015611075576000805461ff00191690555b505050565b3390565b6001600160a01b0383166110c35760405162461bcd60e51b8152600401808060200182810382526024815260200180611b7a6024913960400191505060405180910390fd5b6001600160a01b0382166111085760405162461bcd60e51b8152600401808060200182810382526022815260200180611a566022913960400191505060405180910390fd5b6001600160a01b03808416600081815260686020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60cc546000906107c29061118c9060ff16611183610a5d565b60ff169061164b565b8390600a0a6116a8565b6001600160a01b0383166111db5760405162461bcd60e51b8152600401808060200182810382526025815260200180611b556025913960400191505060405180910390fd5b6001600160a01b0382166112205760405162461bcd60e51b8152600401808060200182810382526023815260200180611a336023913960400191505060405180910390fd5b61122b838383611701565b61126881604051806060016040528060268152602001611a78602691396001600160a01b03861660009081526067602052604090205491906112e1565b6001600160a01b0380851660009081526067602052604080822093909355908416815220546112979082611378565b6001600160a01b038084166000818152606760209081526040918290209490945580518581529051919392871692600080516020611b3583398151915292918290030190a3505050565b600081848411156113705760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561133557818101518382015260200161131d565b50505050905090810190601f1680156113625780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156113d0576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b9392505050565b6001600160a01b038216611432576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61143e60008383611701565b60695461144b9082611378565b6069556001600160a01b0382166000908152606760205260409020546114719082611378565b6001600160a01b0383166000818152606760209081526040808320949094558351858152935192939192600080516020611b358339815191529281900390910190a35050565b3b151590565b600054610100900460ff16806114d657506114d6610fb3565b806114e4575060005460ff16155b61151f5760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff1615801561154a576000805460ff1961ff0019909116610100171660011790555b611552611770565b600061155c61107a565b603380546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020611b15833981519152908290a3508015610ef8576000805461ff001916905550565b600054610100900460ff16806115c557506115c5610fb3565b806115d3575060005460ff16155b61160e5760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff16158015611639576000805460ff1961ff0019909116610100171660011790555b611641611819565b61106383836118b9565b6000828211156116a2576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000826116b7575060006107c2565b828202828482816116c457fe5b04146113d05760405162461bcd60e51b8152600401808060200182810382526021815260200180611acc6021913960400191505060405180910390fd5b61170c838383611075565b6001600160a01b03831615611075576001600160a01b03831660009081526099602052604090205460ff16611075576040805162461bcd60e51b815260206004820152600560248201526456545f4e5760d81b604482015290519081900360640190fd5b600054610100900460ff16806117895750611789610fb3565b80611797575060005460ff16155b6117d25760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff161580156117fd576000805460ff1961ff0019909116610100171660011790555b611805611819565b8015610ef8576000805461ff001916905550565b600054610100900460ff16806118325750611832610fb3565b80611840575060005460ff16155b61187b5760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff16158015611805576000805460ff1961ff0019909116610100171660011790558015610ef8576000805461ff001916905550565b600054610100900460ff16806118d257506118d2610fb3565b806118e0575060005460ff16155b61191b5760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff16158015611946576000805460ff1961ff0019909116610100171660011790555b825161195990606a906020860190611991565b50815161196d90606b906020850190611991565b50606c805460ff191660121790558015611075576000805461ff0019169055505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826119c75760008555611a0d565b82601f106119e057805160ff1916838001178555611a0d565b82800160010185558215611a0d579182015b82811115611a0d5782518255916020019190600101906119f2565b50611a19929150611a1d565b5090565b5b80821115611a195760008155600101611a1e56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204377f0fca7d5ab3bb7cb315c879d2630e303059e0d43714e4f51732e0c422f2e64736f6c63430007060033",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061011d5760003560e01c806306fdde0314610122578063077f224a1461019f578063095ea7b3146102d557806309fd821214610315578063120806471461033b57806313af40351461036a57806318160ddd1461039057806323b872dd14610398578063313ce567146103ce57806339509351146103ec5780636c8381f81461041857806370a082311461043c578063715018a61461046257806378c8cda71461046a5780638da5cb5b1461049057806395d89b41146104985780639e87a5cd146104a0578063a457c2d7146104a8578063a9059cbb146104d4578063bc5920ba14610500578063dd62ed3e14610508578063f52e308e14610536578063f80f5dd51461055c575b600080fd5b61012a610582565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561016457818101518382015260200161014c565b50505050905090810190601f1680156101915780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102d3600480360360608110156101b557600080fd5b810190602081018135600160201b8111156101cf57600080fd5b8201836020820111156101e157600080fd5b803590602001918460018302840111600160201b8311171561020257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561025457600080fd5b82018360208201111561026657600080fd5b803590602001918460018302840111600160201b8311171561028757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550505090356001600160a01b031691506106189050565b005b610301600480360360408110156102eb57600080fd5b506001600160a01b0381351690602001356107aa565b604080519115158252519081900360200190f35b6103016004803603602081101561032b57600080fd5b50356001600160a01b03166107c8565b6103586004803603602081101561035157600080fd5b50356107e6565b60408051918252519081900360200190f35b6102d36004803603602081101561038057600080fd5b50356001600160a01b0316610875565b6103586109d0565b610301600480360360608110156103ae57600080fd5b506001600160a01b038135811691602081013590911690604001356109d6565b6103d6610a5d565b6040805160ff9092168252519081900360200190f35b6103016004803603604081101561040257600080fd5b506001600160a01b038135169060200135610a66565b610420610ab4565b604080516001600160a01b039092168252519081900360200190f35b6103586004803603602081101561045257600080fd5b50356001600160a01b0316610ac3565b6102d3610ade565b6102d36004803603602081101561048057600080fd5b50356001600160a01b0316610b7f565b610420610c78565b61012a610c87565b610420610ce8565b610301600480360360408110156104be57600080fd5b506001600160a01b038135169060200135610cfc565b610301600480360360408110156104ea57600080fd5b506001600160a01b038135169060200135610d64565b6102d3610d78565b6103586004803603604081101561051e57600080fd5b506001600160a01b0381358116916020013516610e64565b6102d36004803603602081101561054c57600080fd5b50356001600160a01b0316610e8f565b6102d36004803603602081101561057257600080fd5b50356001600160a01b0316610efb565b606a8054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561060e5780601f106105e35761010080835404028352916020019161060e565b820191906000526020600020905b8154815290600101906020018083116105f157829003601f168201915b5050505050905090565b600054610100900460ff16806106315750610631610fb3565b8061063f575060005460ff16155b61067a5760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff161580156106a5576000805460ff1961ff0019909116610100171660011790555b6106af8484610fc4565b6000826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156106ea57600080fd5b505afa1580156106fe573d6000803e3d6000fd5b505050506040513d602081101561071457600080fd5b50519050610720610a5d565b60ff168160ff161115610764576040805162461bcd60e51b8152602060048201526007602482015266109517d254119160ca1b604482015290519081900360640190fd5b60cc8054610100600160a81b0319166101006001600160a01b038616021760ff191660ff9290921691909117905580156107a4576000805461ff00191690555b50505050565b60006107be6107b761107a565b848461107e565b5060015b92915050565b6001600160a01b031660009081526099602052604090205460ff1690565b60006107c260cc60019054906101000a90046001600160a01b03166001600160a01b031663e7572230846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561084457600080fd5b505afa158015610858573d6000803e3d6000fd5b505050506040513d602081101561086e57600080fd5b505161116a565b61087d61107a565b6001600160a01b031661088e610c78565b6001600160a01b0316146108d2576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038116610916576040805162461bcd60e51b81526020600482015260066024820152650534f5f4e57360d41b604482015290519081900360640190fd5b6033546001600160a01b0382811691161415610962576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414f60d01b604482015290519081900360640190fd5b6034546001600160a01b03828116911614156109ae576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414360d01b604482015290519081900360640190fd5b603480546001600160a01b0319166001600160a01b0392909216919091179055565b60695490565b60006109e3848484611196565b610a53846109ef61107a565b610a4e85604051806060016040528060288152602001611aed602891396001600160a01b038a16600090815260686020526040812090610a2d61107a565b6001600160a01b0316815260208101919091526040016000205491906112e1565b61107e565b5060019392505050565b606c5460ff1690565b60006107be610a7361107a565b84610a4e8560686000610a8461107a565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611378565b6034546001600160a01b031690565b6001600160a01b031660009081526067602052604090205490565b610ae661107a565b6001600160a01b0316610af7610c78565b6001600160a01b031614610b3b576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6033546040516000916001600160a01b031690600080516020611b15833981519152908390a3603380546001600160a01b0319908116909155603480549091169055565b610b8761107a565b6001600160a01b0316610b98610c78565b6001600160a01b031614610bdc576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b610be581610ac3565b15610c20576040805162461bcd60e51b81526020600482015260066024820152652b2a2fa1272d60d11b604482015290519081900360640190fd5b6001600160a01b038116600081815260996020908152604091829020805460ff19169055815192835290517fde8cf212af7ce38b2840785a2768d97ff2dbf3c21b516961cec0061e134c2a1e9281900390910190a150565b6033546001600160a01b031690565b606b8054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561060e5780601f106105e35761010080835404028352916020019161060e565b60cc5461010090046001600160a01b031690565b60006107be610d0961107a565b84610a4e85604051806060016040528060258152602001611b9e6025913960686000610d3361107a565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906112e1565b60006107be610d7161107a565b8484611196565b6034546001600160a01b0316610dbd576040805162461bcd60e51b81526020600482015260056024820152640534f5f43360dc1b604482015290519081900360640190fd5b610dc561107a565b6034546001600160a01b03908116911614610e10576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4360d01b604482015290519081900360640190fd5b6034546033546040516001600160a01b039283169290911690600080516020611b1583398151915290600090a360348054603380546001600160a01b03199081166001600160a01b03841617909155169055565b6001600160a01b03918216600090815260686020908152604080832093909416825291909152205490565b610e9761107a565b6001600160a01b0316610ea8610c78565b6001600160a01b031614610eec576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b610ef8816000196113d7565b50565b610f0361107a565b6001600160a01b0316610f14610c78565b6001600160a01b031614610f58576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038116600081815260996020908152604091829020805460ff19166001179055815192835290517f4790a4adb426ca2345bb5108f6e454eae852a7bf687544cd66a7270dff3a41d69281900390910190a150565b6000610fbe306114b7565b15905090565b600054610100900460ff1680610fdd5750610fdd610fb3565b80610feb575060005460ff16155b6110265760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff16158015611051576000805460ff1961ff0019909116610100171660011790555b6110596114bd565b61106383836115ac565b8015611075576000805461ff00191690555b505050565b3390565b6001600160a01b0383166110c35760405162461bcd60e51b8152600401808060200182810382526024815260200180611b7a6024913960400191505060405180910390fd5b6001600160a01b0382166111085760405162461bcd60e51b8152600401808060200182810382526022815260200180611a566022913960400191505060405180910390fd5b6001600160a01b03808416600081815260686020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60cc546000906107c29061118c9060ff16611183610a5d565b60ff169061164b565b8390600a0a6116a8565b6001600160a01b0383166111db5760405162461bcd60e51b8152600401808060200182810382526025815260200180611b556025913960400191505060405180910390fd5b6001600160a01b0382166112205760405162461bcd60e51b8152600401808060200182810382526023815260200180611a336023913960400191505060405180910390fd5b61122b838383611701565b61126881604051806060016040528060268152602001611a78602691396001600160a01b03861660009081526067602052604090205491906112e1565b6001600160a01b0380851660009081526067602052604080822093909355908416815220546112979082611378565b6001600160a01b038084166000818152606760209081526040918290209490945580518581529051919392871692600080516020611b3583398151915292918290030190a3505050565b600081848411156113705760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561133557818101518382015260200161131d565b50505050905090810190601f1680156113625780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156113d0576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b9392505050565b6001600160a01b038216611432576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61143e60008383611701565b60695461144b9082611378565b6069556001600160a01b0382166000908152606760205260409020546114719082611378565b6001600160a01b0383166000818152606760209081526040808320949094558351858152935192939192600080516020611b358339815191529281900390910190a35050565b3b151590565b600054610100900460ff16806114d657506114d6610fb3565b806114e4575060005460ff16155b61151f5760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff1615801561154a576000805460ff1961ff0019909116610100171660011790555b611552611770565b600061155c61107a565b603380546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020611b15833981519152908290a3508015610ef8576000805461ff001916905550565b600054610100900460ff16806115c557506115c5610fb3565b806115d3575060005460ff16155b61160e5760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff16158015611639576000805460ff1961ff0019909116610100171660011790555b611641611819565b61106383836118b9565b6000828211156116a2576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000826116b7575060006107c2565b828202828482816116c457fe5b04146113d05760405162461bcd60e51b8152600401808060200182810382526021815260200180611acc6021913960400191505060405180910390fd5b61170c838383611075565b6001600160a01b03831615611075576001600160a01b03831660009081526099602052604090205460ff16611075576040805162461bcd60e51b815260206004820152600560248201526456545f4e5760d81b604482015290519081900360640190fd5b600054610100900460ff16806117895750611789610fb3565b80611797575060005460ff16155b6117d25760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff161580156117fd576000805460ff1961ff0019909116610100171660011790555b611805611819565b8015610ef8576000805461ff001916905550565b600054610100900460ff16806118325750611832610fb3565b80611840575060005460ff16155b61187b5760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff16158015611805576000805460ff1961ff0019909116610100171660011790558015610ef8576000805461ff001916905550565b600054610100900460ff16806118d257506118d2610fb3565b806118e0575060005460ff16155b61191b5760405162461bcd60e51b815260040180806020018281038252602e815260200180611a9e602e913960400191505060405180910390fd5b600054610100900460ff16158015611946576000805460ff1961ff0019909116610100171660011790555b825161195990606a906020860190611991565b50815161196d90606b906020850190611991565b50606c805460ff191660121790558015611075576000805461ff0019169055505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826119c75760008555611a0d565b82601f106119e057805160ff1916838001178555611a0d565b82800160010185558215611a0d579182015b82811115611a0d5782518255916020019190600101906119f2565b50611a19929150611a1d565b5090565b5b80821115611a195760008155600101611a1e56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204377f0fca7d5ab3bb7cb315c879d2630e303059e0d43714e4f51732e0c422f2e64736f6c63430007060033",
"linkReferences": {},
"deployedLinkReferences": {}
}

@@ -346,6 +346,6 @@ {

],
"bytecode": "0x608060405234801561001057600080fd5b50610f69806100206000396000f3fe608060405234801561001057600080fd5b50600436106100fc5760003560e01c8063050a0ba31461010157806313af4035146101255780631d27050f1461014b5780632c47ccba1461016e5780633e742e3b1461018c578063543ce73a146101ad5780636c8381f8146101cd5780636e1d2dd2146101f1578063715018a6146101f957806373f625011461020157806374283336146102215780637bce35ae146102295780638129fc1c1461024b57806385eacc77146102535780638af3a60d1461026d5780638da5cb5b1461028f578063a854940214610297578063bc5920ba1461029f578063c846961e146102a7578063fedf924b146102c4575b600080fd5b6101236004803603602081101561011757600080fd5b503562ffffff166102cc565b005b6101236004803603602081101561013b57600080fd5b50356001600160a01b03166103c9565b6101236004803603602081101561016157600080fd5b503563ffffffff16610524565b61017661061d565b6040805160ff9092168252519081900360200190f35b610194610626565b6040805163ffffffff9092168252519081900360200190f35b6101b5610639565b6040805162ffffff9092168252519081900360200190f35b6101d5610649565b604080516001600160a01b039092168252519081900360200190f35b6101b5610658565b61012361066a565b6101236004803603602081101561021757600080fd5b503560ff1661070b565b6101b56107b0565b6101236004803603602081101561023f57600080fd5b503562ffffff166107c2565b610123610904565b61025b610a20565b60408051918252519081900360200190f35b6101236004803603602081101561028357600080fd5b503562ffffff16610a26565b6101d5610adb565b6101b5610aea565b610123610afc565b610123600480360360208110156102bd57600080fd5b5035610be8565b6101b5610c80565b80620f42408162ffffff161115610313576040805162461bcd60e51b81526020600482015260066024820152654348435f524f60d01b604482015290519081900360640190fd5b61031b610c92565b6001600160a01b031661032c610adb565b6001600160a01b031614610370576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6067805462ffffff8416600160381b810262ffffff60381b199092169190911790915560408051918252517ff95b3e2798060899824a0bebdd89ff5df3d51c51c5d30f5184bd30d7a6b017089181900360200190a15050565b6103d1610c92565b6001600160a01b03166103e2610adb565b6001600160a01b031614610426576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b03811661046a576040805162461bcd60e51b81526020600482015260066024820152650534f5f4e57360d41b604482015290519081900360640190fd5b6033546001600160a01b03828116911614156104b6576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414f60d01b604482015290519081900360640190fd5b6034546001600160a01b0382811691161415610502576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414360d01b604482015290519081900360640190fd5b603480546001600160a01b0319166001600160a01b0392909216919091179055565b61052c610c92565b6001600160a01b031661053d610adb565b6001600160a01b031614610581576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b63ffffffff81166105c3576040805162461bcd60e51b81526020600482015260076024820152664348435f49544960c81b604482015290519081900360640190fd5b6067805463ffffffff8316600160801b810263ffffffff60801b199092169190911790915560408051918252517f0bd5e02c0d6277fdf7c7c72fae10042c4c832b26ea94623a04b79a50a35a217e9181900360200190a150565b60675460ff1690565b606754600160801b900463ffffffff1690565b606754610100900462ffffff1690565b6034546001600160a01b031690565b606754600160681b900462ffffff1690565b610672610c92565b6001600160a01b0316610683610adb565b6001600160a01b0316146106c7576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6033546040516000916001600160a01b031690600080516020610f14833981519152908390a3603380546001600160a01b0319908116909155603480549091169055565b610713610c92565b6001600160a01b0316610724610adb565b6001600160a01b031614610768576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6067805460ff831660ff19909116811790915560408051918252517fa7b4760b38e2a630f3073fcd5119972cbf81bd50e3761f86534a69661caf81109181900360200190a150565b606754600160501b900462ffffff1690565b80620f42408162ffffff161115610809576040805162461bcd60e51b81526020600482015260066024820152654348435f524f60d01b604482015290519081900360640190fd5b610811610c92565b6001600160a01b0316610822610adb565b6001600160a01b031614610866576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b60008262ffffff16116108ab576040805162461bcd60e51b815260206004820152600860248201526721a421afa4a821a960c11b604482015290519081900360640190fd5b6067805462ffffff8416600160501b810262ffffff60501b199092169190911790915560408051918252517f4757c16c46bedf5171cc1e2c53c99225da1bff2c0a5cb51b0f852909dbae1ebd9181900360200190a15050565b600054610100900460ff168061091d575061091d610c96565b8061092b575060005460ff16155b6109665760405162461bcd60e51b815260040180806020018281038252602e815260200180610ee6602e913960400191505060405180910390fd5b600054610100900460ff16158015610991576000805460ff1961ff0019909116610100171660011790555b610999610ca7565b6067805460ff60ff199091161763ffffff001916630186a0001762ffffff60201b1916613d0960221b1762ffffff60381b1916610c35603b1b1762ffffff60501b1916613d0960541b1762ffffff60681b1916610c35606d1b1763ffffffff60801b191660e160821b1790556000196068558015610a1d576000805461ff00191690555b50565b60685490565b610a2e610c92565b6001600160a01b0316610a3f610adb565b6001600160a01b031614610a83576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6067805462ffffff8316600160681b810262ffffff60681b199092169190911790915560408051918252517f0bcb070f78e3c4fec82334dff77e5369a878886b8be26c9f98daa534a8cf67789181900360200190a150565b6033546001600160a01b031690565b606754600160201b900462ffffff1690565b6034546001600160a01b0316610b41576040805162461bcd60e51b81526020600482015260056024820152640534f5f43360dc1b604482015290519081900360640190fd5b610b49610c92565b6034546001600160a01b03908116911614610b94576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4360d01b604482015290519081900360640190fd5b6034546033546040516001600160a01b039283169290911690600080516020610f1483398151915290600090a360348054603380546001600160a01b03199081166001600160a01b03841617909155169055565b610bf0610c92565b6001600160a01b0316610c01610adb565b6001600160a01b031614610c45576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b60688190556040805182815290517fc6564be86420b541b7946583fdb54d45535a59a04e3b3525b536ccc547b4cd8f9181900360200190a150565b606754600160381b900462ffffff1690565b3390565b6000610ca130610d96565b15905090565b600054610100900460ff1680610cc05750610cc0610c96565b80610cce575060005460ff16155b610d095760405162461bcd60e51b815260040180806020018281038252602e815260200180610ee6602e913960400191505060405180910390fd5b600054610100900460ff16158015610d34576000805460ff1961ff0019909116610100171660011790555b610d3c610d9c565b6000610d46610c92565b603380546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020610f14833981519152908290a3508015610a1d576000805461ff001916905550565b3b151590565b600054610100900460ff1680610db55750610db5610c96565b80610dc3575060005460ff16155b610dfe5760405162461bcd60e51b815260040180806020018281038252602e815260200180610ee6602e913960400191505060405180910390fd5b600054610100900460ff16158015610e29576000805460ff1961ff0019909116610100171660011790555b610e31610e45565b8015610a1d576000805461ff001916905550565b600054610100900460ff1680610e5e5750610e5e610c96565b80610e6c575060005460ff16155b610ea75760405162461bcd60e51b815260040180806020018281038252602e815260200180610ee6602e913960400191505060405180910390fd5b600054610100900460ff16158015610e31576000805460ff1961ff0019909116610100171660011790558015610a1d576000805461ff00191690555056fe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65648be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a26469706673582212203926e8c9c8c6d777975834b5c4accfbbb137cb9f59ceb88ab78f7dafe81b16a064736f6c63430007060033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100fc5760003560e01c8063050a0ba31461010157806313af4035146101255780631d27050f1461014b5780632c47ccba1461016e5780633e742e3b1461018c578063543ce73a146101ad5780636c8381f8146101cd5780636e1d2dd2146101f1578063715018a6146101f957806373f625011461020157806374283336146102215780637bce35ae146102295780638129fc1c1461024b57806385eacc77146102535780638af3a60d1461026d5780638da5cb5b1461028f578063a854940214610297578063bc5920ba1461029f578063c846961e146102a7578063fedf924b146102c4575b600080fd5b6101236004803603602081101561011757600080fd5b503562ffffff166102cc565b005b6101236004803603602081101561013b57600080fd5b50356001600160a01b03166103c9565b6101236004803603602081101561016157600080fd5b503563ffffffff16610524565b61017661061d565b6040805160ff9092168252519081900360200190f35b610194610626565b6040805163ffffffff9092168252519081900360200190f35b6101b5610639565b6040805162ffffff9092168252519081900360200190f35b6101d5610649565b604080516001600160a01b039092168252519081900360200190f35b6101b5610658565b61012361066a565b6101236004803603602081101561021757600080fd5b503560ff1661070b565b6101b56107b0565b6101236004803603602081101561023f57600080fd5b503562ffffff166107c2565b610123610904565b61025b610a20565b60408051918252519081900360200190f35b6101236004803603602081101561028357600080fd5b503562ffffff16610a26565b6101d5610adb565b6101b5610aea565b610123610afc565b610123600480360360208110156102bd57600080fd5b5035610be8565b6101b5610c80565b80620f42408162ffffff161115610313576040805162461bcd60e51b81526020600482015260066024820152654348435f524f60d01b604482015290519081900360640190fd5b61031b610c92565b6001600160a01b031661032c610adb565b6001600160a01b031614610370576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6067805462ffffff8416600160381b810262ffffff60381b199092169190911790915560408051918252517ff95b3e2798060899824a0bebdd89ff5df3d51c51c5d30f5184bd30d7a6b017089181900360200190a15050565b6103d1610c92565b6001600160a01b03166103e2610adb565b6001600160a01b031614610426576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b03811661046a576040805162461bcd60e51b81526020600482015260066024820152650534f5f4e57360d41b604482015290519081900360640190fd5b6033546001600160a01b03828116911614156104b6576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414f60d01b604482015290519081900360640190fd5b6034546001600160a01b0382811691161415610502576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414360d01b604482015290519081900360640190fd5b603480546001600160a01b0319166001600160a01b0392909216919091179055565b61052c610c92565b6001600160a01b031661053d610adb565b6001600160a01b031614610581576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b63ffffffff81166105c3576040805162461bcd60e51b81526020600482015260076024820152664348435f49544960c81b604482015290519081900360640190fd5b6067805463ffffffff8316600160801b810263ffffffff60801b199092169190911790915560408051918252517f0bd5e02c0d6277fdf7c7c72fae10042c4c832b26ea94623a04b79a50a35a217e9181900360200190a150565b60675460ff1690565b606754600160801b900463ffffffff1690565b606754610100900462ffffff1690565b6034546001600160a01b031690565b606754600160681b900462ffffff1690565b610672610c92565b6001600160a01b0316610683610adb565b6001600160a01b0316146106c7576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6033546040516000916001600160a01b031690600080516020610f14833981519152908390a3603380546001600160a01b0319908116909155603480549091169055565b610713610c92565b6001600160a01b0316610724610adb565b6001600160a01b031614610768576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6067805460ff831660ff19909116811790915560408051918252517fa7b4760b38e2a630f3073fcd5119972cbf81bd50e3761f86534a69661caf81109181900360200190a150565b606754600160501b900462ffffff1690565b80620f42408162ffffff161115610809576040805162461bcd60e51b81526020600482015260066024820152654348435f524f60d01b604482015290519081900360640190fd5b610811610c92565b6001600160a01b0316610822610adb565b6001600160a01b031614610866576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b60008262ffffff16116108ab576040805162461bcd60e51b815260206004820152600860248201526721a421afa4a821a960c11b604482015290519081900360640190fd5b6067805462ffffff8416600160501b810262ffffff60501b199092169190911790915560408051918252517f4757c16c46bedf5171cc1e2c53c99225da1bff2c0a5cb51b0f852909dbae1ebd9181900360200190a15050565b600054610100900460ff168061091d575061091d610c96565b8061092b575060005460ff16155b6109665760405162461bcd60e51b815260040180806020018281038252602e815260200180610ee6602e913960400191505060405180910390fd5b600054610100900460ff16158015610991576000805460ff1961ff0019909116610100171660011790555b610999610ca7565b6067805460ff60ff199091161763ffffff001916630186a0001762ffffff60201b1916613d0960221b1762ffffff60381b1916610c35603b1b1762ffffff60501b1916613d0960541b1762ffffff60681b1916610c35606d1b1763ffffffff60801b191660e160821b1790556000196068558015610a1d576000805461ff00191690555b50565b60685490565b610a2e610c92565b6001600160a01b0316610a3f610adb565b6001600160a01b031614610a83576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6067805462ffffff8316600160681b810262ffffff60681b199092169190911790915560408051918252517f0bcb070f78e3c4fec82334dff77e5369a878886b8be26c9f98daa534a8cf67789181900360200190a150565b6033546001600160a01b031690565b606754600160201b900462ffffff1690565b6034546001600160a01b0316610b41576040805162461bcd60e51b81526020600482015260056024820152640534f5f43360dc1b604482015290519081900360640190fd5b610b49610c92565b6034546001600160a01b03908116911614610b94576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4360d01b604482015290519081900360640190fd5b6034546033546040516001600160a01b039283169290911690600080516020610f1483398151915290600090a360348054603380546001600160a01b03199081166001600160a01b03841617909155169055565b610bf0610c92565b6001600160a01b0316610c01610adb565b6001600160a01b031614610c45576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b60688190556040805182815290517fc6564be86420b541b7946583fdb54d45535a59a04e3b3525b536ccc547b4cd8f9181900360200190a150565b606754600160381b900462ffffff1690565b3390565b6000610ca130610d96565b15905090565b600054610100900460ff1680610cc05750610cc0610c96565b80610cce575060005460ff16155b610d095760405162461bcd60e51b815260040180806020018281038252602e815260200180610ee6602e913960400191505060405180910390fd5b600054610100900460ff16158015610d34576000805460ff1961ff0019909116610100171660011790555b610d3c610d9c565b6000610d46610c92565b603380546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020610f14833981519152908290a3508015610a1d576000805461ff001916905550565b3b151590565b600054610100900460ff1680610db55750610db5610c96565b80610dc3575060005460ff16155b610dfe5760405162461bcd60e51b815260040180806020018281038252602e815260200180610ee6602e913960400191505060405180910390fd5b600054610100900460ff16158015610e29576000805460ff1961ff0019909116610100171660011790555b610e31610e45565b8015610a1d576000805461ff001916905550565b600054610100900460ff1680610e5e5750610e5e610c96565b80610e6c575060005460ff16155b610ea75760405162461bcd60e51b815260040180806020018281038252602e815260200180610ee6602e913960400191505060405180910390fd5b600054610100900460ff16158015610e31576000805460ff1961ff0019909116610100171660011790558015610a1d576000805461ff00191690555056fe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65648be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a26469706673582212203926e8c9c8c6d777975834b5c4accfbbb137cb9f59ceb88ab78f7dafe81b16a064736f6c63430007060033",
"bytecode": "0x608060405234801561001057600080fd5b50610f69806100206000396000f3fe608060405234801561001057600080fd5b50600436106100fc5760003560e01c8063050a0ba31461010157806313af4035146101255780631d27050f1461014b5780632c47ccba1461016e5780633e742e3b1461018c578063543ce73a146101ad5780636c8381f8146101cd5780636e1d2dd2146101f1578063715018a6146101f957806373f625011461020157806374283336146102215780637bce35ae146102295780638129fc1c1461024b57806385eacc77146102535780638af3a60d1461026d5780638da5cb5b1461028f578063a854940214610297578063bc5920ba1461029f578063c846961e146102a7578063fedf924b146102c4575b600080fd5b6101236004803603602081101561011757600080fd5b503562ffffff166102cc565b005b6101236004803603602081101561013b57600080fd5b50356001600160a01b03166103c9565b6101236004803603602081101561016157600080fd5b503563ffffffff16610524565b61017661061d565b6040805160ff9092168252519081900360200190f35b610194610626565b6040805163ffffffff9092168252519081900360200190f35b6101b5610639565b6040805162ffffff9092168252519081900360200190f35b6101d5610649565b604080516001600160a01b039092168252519081900360200190f35b6101b5610658565b61012361066a565b6101236004803603602081101561021757600080fd5b503560ff1661070b565b6101b56107b0565b6101236004803603602081101561023f57600080fd5b503562ffffff166107c2565b610123610904565b61025b610a20565b60408051918252519081900360200190f35b6101236004803603602081101561028357600080fd5b503562ffffff16610a26565b6101d5610adb565b6101b5610aea565b610123610afc565b610123600480360360208110156102bd57600080fd5b5035610be8565b6101b5610c80565b80620f42408162ffffff161115610313576040805162461bcd60e51b81526020600482015260066024820152654348435f524f60d01b604482015290519081900360640190fd5b61031b610c92565b6001600160a01b031661032c610adb565b6001600160a01b031614610370576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6067805462ffffff8416600160381b810262ffffff60381b199092169190911790915560408051918252517ff95b3e2798060899824a0bebdd89ff5df3d51c51c5d30f5184bd30d7a6b017089181900360200190a15050565b6103d1610c92565b6001600160a01b03166103e2610adb565b6001600160a01b031614610426576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b03811661046a576040805162461bcd60e51b81526020600482015260066024820152650534f5f4e57360d41b604482015290519081900360640190fd5b6033546001600160a01b03828116911614156104b6576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414f60d01b604482015290519081900360640190fd5b6034546001600160a01b0382811691161415610502576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414360d01b604482015290519081900360640190fd5b603480546001600160a01b0319166001600160a01b0392909216919091179055565b61052c610c92565b6001600160a01b031661053d610adb565b6001600160a01b031614610581576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b63ffffffff81166105c3576040805162461bcd60e51b81526020600482015260076024820152664348435f49544960c81b604482015290519081900360640190fd5b6067805463ffffffff8316600160801b810263ffffffff60801b199092169190911790915560408051918252517f0bd5e02c0d6277fdf7c7c72fae10042c4c832b26ea94623a04b79a50a35a217e9181900360200190a150565b60675460ff1690565b606754600160801b900463ffffffff1690565b606754610100900462ffffff1690565b6034546001600160a01b031690565b606754600160681b900462ffffff1690565b610672610c92565b6001600160a01b0316610683610adb565b6001600160a01b0316146106c7576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6033546040516000916001600160a01b031690600080516020610f14833981519152908390a3603380546001600160a01b0319908116909155603480549091169055565b610713610c92565b6001600160a01b0316610724610adb565b6001600160a01b031614610768576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6067805460ff831660ff19909116811790915560408051918252517fa7b4760b38e2a630f3073fcd5119972cbf81bd50e3761f86534a69661caf81109181900360200190a150565b606754600160501b900462ffffff1690565b80620f42408162ffffff161115610809576040805162461bcd60e51b81526020600482015260066024820152654348435f524f60d01b604482015290519081900360640190fd5b610811610c92565b6001600160a01b0316610822610adb565b6001600160a01b031614610866576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b60008262ffffff16116108ab576040805162461bcd60e51b815260206004820152600860248201526721a421afa4a821a960c11b604482015290519081900360640190fd5b6067805462ffffff8416600160501b810262ffffff60501b199092169190911790915560408051918252517f4757c16c46bedf5171cc1e2c53c99225da1bff2c0a5cb51b0f852909dbae1ebd9181900360200190a15050565b600054610100900460ff168061091d575061091d610c96565b8061092b575060005460ff16155b6109665760405162461bcd60e51b815260040180806020018281038252602e815260200180610ee6602e913960400191505060405180910390fd5b600054610100900460ff16158015610991576000805460ff1961ff0019909116610100171660011790555b610999610ca7565b6067805460ff60ff199091161763ffffff001916630186a0001762ffffff60201b1916613d0960221b1762ffffff60381b1916610c35603b1b1762ffffff60501b1916613d0960541b1762ffffff60681b1916610c35606d1b1763ffffffff60801b191660e160821b1790556000196068558015610a1d576000805461ff00191690555b50565b60685490565b610a2e610c92565b6001600160a01b0316610a3f610adb565b6001600160a01b031614610a83576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6067805462ffffff8316600160681b810262ffffff60681b199092169190911790915560408051918252517f0bcb070f78e3c4fec82334dff77e5369a878886b8be26c9f98daa534a8cf67789181900360200190a150565b6033546001600160a01b031690565b606754600160201b900462ffffff1690565b6034546001600160a01b0316610b41576040805162461bcd60e51b81526020600482015260056024820152640534f5f43360dc1b604482015290519081900360640190fd5b610b49610c92565b6034546001600160a01b03908116911614610b94576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4360d01b604482015290519081900360640190fd5b6034546033546040516001600160a01b039283169290911690600080516020610f1483398151915290600090a360348054603380546001600160a01b03199081166001600160a01b03841617909155169055565b610bf0610c92565b6001600160a01b0316610c01610adb565b6001600160a01b031614610c45576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b60688190556040805182815290517fc6564be86420b541b7946583fdb54d45535a59a04e3b3525b536ccc547b4cd8f9181900360200190a150565b606754600160381b900462ffffff1690565b3390565b6000610ca130610d96565b15905090565b600054610100900460ff1680610cc05750610cc0610c96565b80610cce575060005460ff16155b610d095760405162461bcd60e51b815260040180806020018281038252602e815260200180610ee6602e913960400191505060405180910390fd5b600054610100900460ff16158015610d34576000805460ff1961ff0019909116610100171660011790555b610d3c610d9c565b6000610d46610c92565b603380546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020610f14833981519152908290a3508015610a1d576000805461ff001916905550565b3b151590565b600054610100900460ff1680610db55750610db5610c96565b80610dc3575060005460ff16155b610dfe5760405162461bcd60e51b815260040180806020018281038252602e815260200180610ee6602e913960400191505060405180910390fd5b600054610100900460ff16158015610e29576000805460ff1961ff0019909116610100171660011790555b610e31610e45565b8015610a1d576000805461ff001916905550565b600054610100900460ff1680610e5e5750610e5e610c96565b80610e6c575060005460ff16155b610ea75760405162461bcd60e51b815260040180806020018281038252602e815260200180610ee6602e913960400191505060405180910390fd5b600054610100900460ff16158015610e31576000805460ff1961ff0019909116610100171660011790558015610a1d576000805461ff00191690555056fe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65648be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220dfdefa99ede9b0f5690893596a6e5da077b7b8b62ceaf436bc57b890bb8bb4c064736f6c63430007060033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100fc5760003560e01c8063050a0ba31461010157806313af4035146101255780631d27050f1461014b5780632c47ccba1461016e5780633e742e3b1461018c578063543ce73a146101ad5780636c8381f8146101cd5780636e1d2dd2146101f1578063715018a6146101f957806373f625011461020157806374283336146102215780637bce35ae146102295780638129fc1c1461024b57806385eacc77146102535780638af3a60d1461026d5780638da5cb5b1461028f578063a854940214610297578063bc5920ba1461029f578063c846961e146102a7578063fedf924b146102c4575b600080fd5b6101236004803603602081101561011757600080fd5b503562ffffff166102cc565b005b6101236004803603602081101561013b57600080fd5b50356001600160a01b03166103c9565b6101236004803603602081101561016157600080fd5b503563ffffffff16610524565b61017661061d565b6040805160ff9092168252519081900360200190f35b610194610626565b6040805163ffffffff9092168252519081900360200190f35b6101b5610639565b6040805162ffffff9092168252519081900360200190f35b6101d5610649565b604080516001600160a01b039092168252519081900360200190f35b6101b5610658565b61012361066a565b6101236004803603602081101561021757600080fd5b503560ff1661070b565b6101b56107b0565b6101236004803603602081101561023f57600080fd5b503562ffffff166107c2565b610123610904565b61025b610a20565b60408051918252519081900360200190f35b6101236004803603602081101561028357600080fd5b503562ffffff16610a26565b6101d5610adb565b6101b5610aea565b610123610afc565b610123600480360360208110156102bd57600080fd5b5035610be8565b6101b5610c80565b80620f42408162ffffff161115610313576040805162461bcd60e51b81526020600482015260066024820152654348435f524f60d01b604482015290519081900360640190fd5b61031b610c92565b6001600160a01b031661032c610adb565b6001600160a01b031614610370576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6067805462ffffff8416600160381b810262ffffff60381b199092169190911790915560408051918252517ff95b3e2798060899824a0bebdd89ff5df3d51c51c5d30f5184bd30d7a6b017089181900360200190a15050565b6103d1610c92565b6001600160a01b03166103e2610adb565b6001600160a01b031614610426576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b03811661046a576040805162461bcd60e51b81526020600482015260066024820152650534f5f4e57360d41b604482015290519081900360640190fd5b6033546001600160a01b03828116911614156104b6576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414f60d01b604482015290519081900360640190fd5b6034546001600160a01b0382811691161415610502576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414360d01b604482015290519081900360640190fd5b603480546001600160a01b0319166001600160a01b0392909216919091179055565b61052c610c92565b6001600160a01b031661053d610adb565b6001600160a01b031614610581576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b63ffffffff81166105c3576040805162461bcd60e51b81526020600482015260076024820152664348435f49544960c81b604482015290519081900360640190fd5b6067805463ffffffff8316600160801b810263ffffffff60801b199092169190911790915560408051918252517f0bd5e02c0d6277fdf7c7c72fae10042c4c832b26ea94623a04b79a50a35a217e9181900360200190a150565b60675460ff1690565b606754600160801b900463ffffffff1690565b606754610100900462ffffff1690565b6034546001600160a01b031690565b606754600160681b900462ffffff1690565b610672610c92565b6001600160a01b0316610683610adb565b6001600160a01b0316146106c7576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6033546040516000916001600160a01b031690600080516020610f14833981519152908390a3603380546001600160a01b0319908116909155603480549091169055565b610713610c92565b6001600160a01b0316610724610adb565b6001600160a01b031614610768576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6067805460ff831660ff19909116811790915560408051918252517fa7b4760b38e2a630f3073fcd5119972cbf81bd50e3761f86534a69661caf81109181900360200190a150565b606754600160501b900462ffffff1690565b80620f42408162ffffff161115610809576040805162461bcd60e51b81526020600482015260066024820152654348435f524f60d01b604482015290519081900360640190fd5b610811610c92565b6001600160a01b0316610822610adb565b6001600160a01b031614610866576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b60008262ffffff16116108ab576040805162461bcd60e51b815260206004820152600860248201526721a421afa4a821a960c11b604482015290519081900360640190fd5b6067805462ffffff8416600160501b810262ffffff60501b199092169190911790915560408051918252517f4757c16c46bedf5171cc1e2c53c99225da1bff2c0a5cb51b0f852909dbae1ebd9181900360200190a15050565b600054610100900460ff168061091d575061091d610c96565b8061092b575060005460ff16155b6109665760405162461bcd60e51b815260040180806020018281038252602e815260200180610ee6602e913960400191505060405180910390fd5b600054610100900460ff16158015610991576000805460ff1961ff0019909116610100171660011790555b610999610ca7565b6067805460ff60ff199091161763ffffff001916630186a0001762ffffff60201b1916613d0960221b1762ffffff60381b1916610c35603b1b1762ffffff60501b1916613d0960541b1762ffffff60681b1916610c35606d1b1763ffffffff60801b191660e160821b1790556000196068558015610a1d576000805461ff00191690555b50565b60685490565b610a2e610c92565b6001600160a01b0316610a3f610adb565b6001600160a01b031614610a83576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6067805462ffffff8316600160681b810262ffffff60681b199092169190911790915560408051918252517f0bcb070f78e3c4fec82334dff77e5369a878886b8be26c9f98daa534a8cf67789181900360200190a150565b6033546001600160a01b031690565b606754600160201b900462ffffff1690565b6034546001600160a01b0316610b41576040805162461bcd60e51b81526020600482015260056024820152640534f5f43360dc1b604482015290519081900360640190fd5b610b49610c92565b6034546001600160a01b03908116911614610b94576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4360d01b604482015290519081900360640190fd5b6034546033546040516001600160a01b039283169290911690600080516020610f1483398151915290600090a360348054603380546001600160a01b03199081166001600160a01b03841617909155169055565b610bf0610c92565b6001600160a01b0316610c01610adb565b6001600160a01b031614610c45576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b60688190556040805182815290517fc6564be86420b541b7946583fdb54d45535a59a04e3b3525b536ccc547b4cd8f9181900360200190a150565b606754600160381b900462ffffff1690565b3390565b6000610ca130610d96565b15905090565b600054610100900460ff1680610cc05750610cc0610c96565b80610cce575060005460ff16155b610d095760405162461bcd60e51b815260040180806020018281038252602e815260200180610ee6602e913960400191505060405180910390fd5b600054610100900460ff16158015610d34576000805460ff1961ff0019909116610100171660011790555b610d3c610d9c565b6000610d46610c92565b603380546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020610f14833981519152908290a3508015610a1d576000805461ff001916905550565b3b151590565b600054610100900460ff1680610db55750610db5610c96565b80610dc3575060005460ff16155b610dfe5760405162461bcd60e51b815260040180806020018281038252602e815260200180610ee6602e913960400191505060405180910390fd5b600054610100900460ff16158015610e29576000805460ff1961ff0019909116610100171660011790555b610e31610e45565b8015610a1d576000805461ff001916905550565b600054610100900460ff1680610e5e5750610e5e610c96565b80610e6c575060005460ff16155b610ea75760405162461bcd60e51b815260040180806020018281038252602e815260200180610ee6602e913960400191505060405180910390fd5b600054610100900460ff16158015610e31576000805460ff1961ff0019909116610100171660011790558015610a1d576000805461ff00191690555056fe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65648be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220dfdefa99ede9b0f5690893596a6e5da077b7b8b62ceaf436bc57b890bb8bb4c064736f6c63430007060033",
"linkReferences": {},
"deployedLinkReferences": {}
}

@@ -31,33 +31,2 @@ {

"internalType": "address",
"name": "trader",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "baseToken",
"type": "address"
},
{
"indexed": false,
"internalType": "int256",
"name": "deltaBase",
"type": "int256"
},
{
"indexed": false,
"internalType": "int256",
"name": "deltaQuote",
"type": "int256"
}
],
"name": "TakerBalancesChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "vault",

@@ -78,53 +47,7 @@ "type": "address"

{
"internalType": "int256",
"name": "delta",
"type": "int256"
}
],
"name": "addOwedRealizedPnl",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "trader",
"type": "address"
},
{
"internalType": "address",
"name": "baseToken",
"type": "address"
},
{
"internalType": "int256",
"name": "deltaTakerBase",
"type": "int256"
},
{
"internalType": "int256",
"name": "deltaTakerQuote",
"type": "int256"
}
],
"name": "addTakerBalances",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "trader",
"type": "address"
},
{
"internalType": "address",
"name": "baseToken",
"type": "address"
}
],
"name": "deregisterBaseToken",

@@ -154,3 +77,3 @@ "outputs": [],

"internalType": "int256",
"name": "takerBaseBalance",
"name": "takerPositionSize",
"type": "int256"

@@ -160,3 +83,3 @@ },

"internalType": "int256",
"name": "takerQuoteBalance",
"name": "takerOpenNotional",
"type": "int256"

@@ -235,15 +158,2 @@ },

{
"inputs": [],
"name": "getExchange",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [

@@ -268,26 +178,2 @@ {

{
"inputs": [
{
"internalType": "address",
"name": "trader",
"type": "address"
}
],
"name": "getNetQuoteBalanceAndPendingFee",
"outputs": [
{
"internalType": "int256",
"name": "netQuoteBalance",
"type": "int256"
},
{
"internalType": "uint256",
"name": "pendingFee",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],

@@ -556,7 +442,64 @@ "name": "getOrderBook",

{
"internalType": "int256",
"name": "amount",
"type": "int256"
}
],
"name": "modifyOwedRealizedPnl",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "trader",
"type": "address"
},
{
"internalType": "address",
"name": "baseToken",
"type": "address"
},
{
"internalType": "int256",
"name": "base",
"type": "int256"
},
{
"internalType": "int256",
"name": "quote",
"type": "int256"
}
],
"name": "modifyTakerBalance",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
},
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "trader",
"type": "address"
},
{
"internalType": "address",
"name": "baseToken",
"type": "address"
}
],
"name": "registerBaseToken",

@@ -581,3 +524,3 @@ "outputs": [],

"internalType": "int256",
"name": "deltaTakerBase",
"name": "takerBase",
"type": "int256"

@@ -587,3 +530,3 @@ },

"internalType": "int256",
"name": "deltaTakerQuote",
"name": "takerQuote",
"type": "int256"

@@ -644,3 +587,3 @@ },

],
"name": "settleQuoteToPnl",
"name": "settleQuoteToOwedRealizedPnl",
"outputs": [],

@@ -647,0 +590,0 @@ "stateMutability": "nonpayable",

@@ -12,19 +12,19 @@ {

"internalType": "address",
"name": "baseToken",
"name": "trader",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "markTwap",
"type": "uint256"
"indexed": true,
"internalType": "address",
"name": "baseToken",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "indexTwap",
"type": "uint256"
"internalType": "int256",
"name": "fundingPayment",
"type": "int256"
}
],
"name": "FundingUpdated",
"name": "FundingPaymentSettled",
"type": "event"

@@ -141,3 +141,3 @@ },

"internalType": "uint256",
"name": "sqrtPriceAfter",
"name": "sqrtPriceAfterX96",
"type": "uint256"

@@ -386,3 +386,3 @@ }

"internalType": "uint256",
"name": "deltaBase",
"name": "base",
"type": "uint256"

@@ -392,3 +392,3 @@ },

"internalType": "uint256",
"name": "deltaQuote",
"name": "quote",
"type": "uint256"

@@ -460,2 +460,15 @@ }

"inputs": [],
"name": "getInsuranceFund",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getOrderBook",

@@ -583,3 +596,3 @@ "outputs": [

"internalType": "uint256",
"name": "deltaBase",
"name": "base",
"type": "uint256"

@@ -589,3 +602,3 @@ },

"internalType": "uint256",
"name": "deltaQuote",
"name": "quote",
"type": "uint256"

@@ -678,3 +691,3 @@ }

],
"name": "settleAllFundingAndPendingFee",
"name": "settleAllFunding",
"outputs": [],

@@ -681,0 +694,0 @@ "stateMutability": "nonpayable",

@@ -25,8 +25,2 @@ {

"internalType": "address",
"name": "trader",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "baseToken",

@@ -37,21 +31,2 @@ "type": "address"

"indexed": false,
"internalType": "int256",
"name": "fundingPayment",
"type": "int256"
}
],
"name": "FundingPaymentSettled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "baseToken",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",

@@ -143,56 +118,2 @@ "name": "markTwap",

],
"name": "getFundingGrowthGlobalAndTwaps",
"outputs": [
{
"components": [
{
"internalType": "int256",
"name": "twPremiumX96",
"type": "int256"
},
{
"internalType": "int256",
"name": "twPremiumDivBySqrtPriceX96",
"type": "int256"
}
],
"internalType": "struct Funding.Growth",
"name": "fundingGrowthGlobal",
"type": "tuple"
},
{
"internalType": "uint256",
"name": "markTwap",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "indexTwap",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getInsuranceFund",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "baseToken",
"type": "address"
}
],
"name": "getMaxTickCrossedWithinBlock",

@@ -262,3 +183,3 @@ "outputs": [

"internalType": "int256",
"name": "deltaAvailableBase",
"name": "base",
"type": "int256"

@@ -268,3 +189,3 @@ },

"internalType": "int256",
"name": "deltaAvailableQuote",
"name": "quote",
"type": "int256"

@@ -317,21 +238,2 @@ }

"internalType": "address",
"name": "baseToken",
"type": "address"
}
],
"name": "getTick",
"outputs": [
{
"internalType": "int24",
"name": "",
"type": "int24"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "trader",

@@ -349,2 +251,7 @@ "type": "address"

{
"internalType": "int256",
"name": "fundingPayment",
"type": "int256"
},
{
"components": [

@@ -421,3 +328,3 @@ {

"internalType": "uint256",
"name": "deltaAvailableBase",
"name": "base",
"type": "uint256"

@@ -427,3 +334,3 @@ },

"internalType": "uint256",
"name": "deltaAvailableQuote",
"name": "quote",
"type": "uint256"

@@ -447,9 +354,9 @@ },

{
"internalType": "int256",
"name": "openNotional",
"type": "int256"
"internalType": "uint256",
"name": "insuranceFundFee",
"type": "uint256"
},
{
"internalType": "int256",
"name": "realizedPnl",
"name": "pnlToBeRealized",
"type": "int256"

@@ -459,3 +366,3 @@ },

"internalType": "uint256",
"name": "sqrtPriceAfter",
"name": "sqrtPriceAfterX96",
"type": "uint256"

@@ -462,0 +369,0 @@ },

@@ -126,21 +126,2 @@ {

"internalType": "address",
"name": "baseToken",
"type": "address"
}
],
"name": "getFeeGrowthGlobal",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "trader",

@@ -377,3 +358,3 @@ "type": "address"

],
"name": "getOwedFee",
"name": "getPendingFee",
"outputs": [

@@ -561,3 +542,3 @@ {

"internalType": "int256",
"name": "deltaTakerBase",
"name": "takerBase",
"type": "int256"

@@ -567,3 +548,3 @@ },

"internalType": "int256",
"name": "deltaTakerQuote",
"name": "takerQuote",
"type": "int256"

@@ -619,3 +600,3 @@ }

"internalType": "int256",
"name": "deltaTakerBase",
"name": "takerBase",
"type": "int256"

@@ -625,3 +606,3 @@ },

"internalType": "int256",
"name": "deltaTakerQuote",
"name": "takerQuote",
"type": "int256"

@@ -778,3 +759,3 @@ }

"internalType": "int256",
"name": "deltaBaseDebt",
"name": "base",
"type": "int256"

@@ -784,3 +765,3 @@ },

"internalType": "int256",
"name": "deltaQuoteDebt",
"name": "quote",
"type": "int256"

@@ -787,0 +768,0 @@ }

@@ -164,2 +164,21 @@ {

"type": "address"
}
],
"name": "getFreeCollateral",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "trader",
"type": "address"
},

@@ -166,0 +185,0 @@ {

@@ -6,6 +6,6 @@ {

"abi": [],
"bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207b2e4232cdf787e949a585c4221bc3c69472e67678090d4c44936a382c60dcb564736f6c63430007060033",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207b2e4232cdf787e949a585c4221bc3c69472e67678090d4c44936a382c60dcb564736f6c63430007060033",
"bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f600105caa1a7a68238dda84cca2e79c588151ececad368a645a34875815c99464736f6c63430007060033",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f600105caa1a7a68238dda84cca2e79c588151ececad368a645a34875815c99464736f6c63430007060033",
"linkReferences": {},
"deployedLinkReferences": {}
}

@@ -6,6 +6,6 @@ {

"abi": [],
"bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f84c3f3ffbe761e099b11dde77468ceeb70fd924747511e1b19f5589ff272ea464736f6c63430007060033",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f84c3f3ffbe761e099b11dde77468ceeb70fd924747511e1b19f5589ff272ea464736f6c63430007060033",
"bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203142a0275ef500a3524a18971f600d4463e0d3e39203a6a290f98fbb0543939564736f6c63430007060033",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203142a0275ef500a3524a18971f600d4463e0d3e39203a6a290f98fbb0543939564736f6c63430007060033",
"linkReferences": {},
"deployedLinkReferences": {}
}

@@ -6,6 +6,6 @@ {

"abi": [],
"bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220efd25ae0694c2658cfad9a79e42cff5c507bc0e103bf4c06e764dd72e831231d64736f6c63430007060033",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220efd25ae0694c2658cfad9a79e42cff5c507bc0e103bf4c06e764dd72e831231d64736f6c63430007060033",
"bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122032b6aadbf34815dfffb41e3abcf996d0053a58ae71177c62dd1380e1129a66d464736f6c63430007060033",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122032b6aadbf34815dfffb41e3abcf996d0053a58ae71177c62dd1380e1129a66d464736f6c63430007060033",
"linkReferences": {},
"deployedLinkReferences": {}
}

@@ -6,6 +6,6 @@ {

"abi": [],
"bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b042d9080e13f9cbb9ef27969e3bedaf2e8ccc59ad3d0f8b8b07f27b30f609c864736f6c63430007060033",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b042d9080e13f9cbb9ef27969e3bedaf2e8ccc59ad3d0f8b8b07f27b30f609c864736f6c63430007060033",
"bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ac21e1e50b366ccd7f0beaeffa2c3bea0b6ca5738e52db27609c430fde51619e64736f6c63430007060033",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ac21e1e50b366ccd7f0beaeffa2c3bea0b6ca5738e52db27609c430fde51619e64736f6c63430007060033",
"linkReferences": {},
"deployedLinkReferences": {}
}

@@ -435,6 +435,6 @@ {

],
"bytecode": "0x608060405234801561001057600080fd5b50611c6d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100fc5760003560e01c806308ff49ad146101015780630cf85bcc1461012a5780631246dbf51461014a57806313af40351461016a5780633feb42121461017f578063449323d814610192578063485cc955146101a55780634a64d67d146101b85780636c8381f8146101cd578063715018a6146101d5578063831f72b4146101dd5780638da5cb5b146101f0578063b081983b146101f8578063bb235d1114610200578063bbe4f6db14610213578063bc5920ba14610226578063c575ff791461022e578063c7bf443414610236578063ece090c414610249578063edd0b5cb1461025e575b600080fd5b61011461010f36600461176c565b610271565b6040516101219190611ba7565b60405180910390f35b61013d61013836600461176c565b6102d7565b6040516101219190611b66565b61015d61015836600461176c565b610381565b604051610121919061196d565b61017d61017836600461176c565b6103a4565b005b61017d61018d3660046117e3565b6104ff565b61017d6101a036600461176c565b610625565b61017d6101b33660046117ab565b6106cc565b6101c0610812565b6040516101219190611913565b6101c0610821565b61017d610830565b61017d6101eb3660046118db565b6108d1565b6101c0610981565b6101c0610990565b61017d61020e3660046117e3565b61099f565b6101c061022136600461176c565b610ab9565b61017d610b14565b6101c0610c00565b6101c06102443660046117e3565b610c0f565b610251611229565b6040516101219190611bb7565b61011461026c36600461176c565b611239565b6001600160a01b038082166000908152609c602052604081205490918391166102b55760405162461bcd60e51b81526004016102ac90611b05565b60405180910390fd5b50506001600160a01b03166000908152609d602052604090205462ffffff1690565b6102df611703565b6001600160a01b038083166000908152609c60205260409020548391166103185760405162461bcd60e51b81526004016102ac90611b05565b5050604080516080810182526001600160a01b039283166000818152609c6020908152848220549095168352818152609e85528381205462ffffff90811686850152828252609f865284822054811684860152918152609d909452919092205416606082015290565b6001600160a01b038181166000908152609c60205260409020541615155b919050565b6103ac611296565b6001600160a01b03166103bd610981565b6001600160a01b031614610401576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038116610445576040805162461bcd60e51b81526020600482015260066024820152650534f5f4e57360d41b604482015290519081900360640190fd5b6033546001600160a01b0382811691161415610491576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414f60d01b604482015290519081900360640190fd5b6034546001600160a01b03828116911614156104dd576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414360d01b604482015290519081900360640190fd5b603480546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038083166000908152609c60205260409020548391166105385760405162461bcd60e51b81526004016102ac90611b05565b81620f42408162ffffff1611156105615760405162461bcd60e51b81526004016102ac90611a1e565b610569611296565b6001600160a01b031661057a610981565b6001600160a01b0316146105be576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b0384166000908152609d602052604090819020805462ffffff191662ffffff8616179055517f0b4bf524b123dd9f9252f2f17e6f842313eb705045a2259faccd2530bae3ff5c90610617908590611ba7565b60405180910390a150505050565b61062d611296565b6001600160a01b031661063e610981565b6001600160a01b031614610682576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b606780546001600160a01b0319166001600160a01b0383169081179091556040517fd0654f5900f9e7e4e605a19334306e6a2786bbf960ac0484a4c12feb6428fe2f90600090a250565b600054610100900460ff16806106e557506106e561129a565b806106f3575060005460ff16155b61072e5760405162461bcd60e51b815260040180806020018281038252602e815260200180611bea602e913960400191505060405180910390fd5b600054610100900460ff16158015610759576000805460ff1961ff0019909116610100171660011790555b6107616112ab565b610773836001600160a01b0316611355565b61078f5760405162461bcd60e51b81526004016102ac906119fd565b6107a1826001600160a01b0316611355565b6107bd5760405162461bcd60e51b81526004016102ac906119dc565b609a80546001600160a01b038086166001600160a01b031992831617909255609b805460ff60a01b199386169216919091179190911660ff60a01b179055801561080d576000805461ff00191690555b505050565b609b546001600160a01b031690565b6034546001600160a01b031690565b610838611296565b6001600160a01b0316610849610981565b6001600160a01b03161461088d576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6033546040516000916001600160a01b031690600080516020611c18833981519152908390a3603380546001600160a01b0319908116909155603480549091169055565b6108d9611296565b6001600160a01b03166108ea610981565b6001600160a01b03161461092e576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b609b805460ff60a01b1916600160a01b60ff8416021790556040517ff3d121ca0d4fa5acf57cf8a09acedf5326b6ca02f25764d2a05a4dba8e4a777e90610976908390611bb7565b60405180910390a150565b6033546001600160a01b031690565b609a546001600160a01b031690565b6001600160a01b038083166000908152609c60205260409020548391166109d85760405162461bcd60e51b81526004016102ac90611b05565b81620f42408162ffffff161115610a015760405162461bcd60e51b81526004016102ac90611a1e565b610a09611296565b6001600160a01b0316610a1a610981565b6001600160a01b031614610a5e576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b0384166000908152609e602052604090819020805462ffffff191662ffffff8616179055517f8129297a1a8d252870739804c1d9cdbc86121230ce172c23ec11a940ccab01ef90610617908690869061194f565b6001600160a01b038082166000908152609c60205260408120549091839116610af45760405162461bcd60e51b81526004016102ac90611b05565b50506001600160a01b039081166000908152609c60205260409020541690565b6034546001600160a01b0316610b59576040805162461bcd60e51b81526020600482015260056024820152640534f5f43360dc1b604482015290519081900360640190fd5b610b61611296565b6034546001600160a01b03908116911614610bac576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4360d01b604482015290519081900360640190fd5b6034546033546040516001600160a01b039283169290911690600080516020611c1883398151915290600090a360348054603380546001600160a01b03199081166001600160a01b03841617909155169055565b6067546001600160a01b031690565b6000610c19611296565b6001600160a01b0316610c2a610981565b6001600160a01b031614610c6e576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038381166000908152609c60205260409020541615610ca65760405162461bcd60e51b81526004016102ac90611a5d565b826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610cdf57600080fd5b505afa158015610cf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1791906118f7565b60ff16601214610d395760405162461bcd60e51b81526004016102ac90611b25565b6067546040516370a0823160e01b8152600019916001600160a01b03808716926370a0823192610d6d921690600401611913565b60206040518083038186803b158015610d8557600080fd5b505afa158015610d99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbd91906118c3565b14610dda5760405162461bcd60e51b81526004016102ac906119ba565b609b54604080516318160ddd60e01b81529051600019926001600160a01b0316916318160ddd916004808301926020929190829003018186803b158015610e2057600080fd5b505afa158015610e34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5891906118c3565b14610e755760405162461bcd60e51b81526004016102ac90611ac0565b609b546001600160a01b0390811690841610610ea35760405162461bcd60e51b81526004016102ac90611b47565b609a54609b54600091610ec4916001600160a01b039182169116868661135b565b90506001600160a01b038116610eec5760405162461bcd60e51b81526004016102ac9061199a565b6000610ef7826113fb565b5050505050506001600160a01b031690508060001415610f295760405162461bcd60e51b81526004016102ac90611a3d565b6067546040516304fec10960e11b81526001600160a01b03878116926309fd821292610f5b9290911690600401611913565b60206040518083038186803b158015610f7357600080fd5b505afa158015610f87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fab9190611817565b610fc75760405162461bcd60e51b81526004016102ac90611a9e565b6040516304fec10960e11b81526001600160a01b038616906309fd821290610ff3908590600401611913565b60206040518083038186803b15801561100b57600080fd5b505afa15801561101f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110439190611817565b61105f5760405162461bcd60e51b81526004016102ac90611a7c565b609b546067546040516304fec10960e11b81526001600160a01b03928316926309fd82129261109392911690600401611913565b60206040518083038186803b1580156110ab57600080fd5b505afa1580156110bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e39190611817565b6110ff5760405162461bcd60e51b81526004016102ac90611ae2565b609b546040516304fec10960e11b81526001600160a01b03909116906309fd82129061112f908590600401611913565b60206040518083038186803b15801561114757600080fd5b505afa15801561115b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117f9190611817565b61119b5760405162461bcd60e51b81526004016102ac90611978565b6001600160a01b038086166000818152609c6020908152604080832080549588166001600160a01b031990961686179055609f8252808320805462ffffff8b1662ffffff199182168117909255609e90935281842080549093168117909255519092917f8b17db32f8ec22477a8f9475d5b92052ef2ce8c6c73ad79be1eb297a8fdd2ff191a4509392505050565b609b54600160a01b900460ff1690565b6001600160a01b038082166000908152609c602052604081205490918391166112745760405162461bcd60e51b81526004016102ac90611b05565b50506001600160a01b03166000908152609e602052604090205462ffffff1690565b3390565b60006112a530611355565b15905090565b600054610100900460ff16806112c457506112c461129a565b806112d2575060005460ff16155b61130d5760405162461bcd60e51b815260040180806020018281038252602e815260200180611bea602e913960400191505060405180910390fd5b600054610100900460ff16158015611338576000805460ff1961ff0019909116610100171660011790555b61134061148e565b8015611352576000805461ff00191690555b50565b3b151590565b60008061136985858561157d565b80516020820151604051630b4c774160e11b81529293506001600160a01b03891692631698ee82926113a19290918890600401611927565b60206040518083038186803b1580156113b957600080fd5b505afa1580156113cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f1919061178f565b9695505050505050565b6000806000806000806000876001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561143f57600080fd5b505afa158015611453573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114779190611831565b959e949d50929b5090995097509550909350915050565b600054610100900460ff16806114a757506114a761129a565b806114b5575060005460ff16155b6114f05760405162461bcd60e51b815260040180806020018281038252602e815260200180611bea602e913960400191505060405180910390fd5b600054610100900460ff1615801561151b576000805460ff1961ff0019909116610100171660011790555b6115236115d3565b600061152d611296565b603380546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020611c18833981519152908290a3508015611352576000805461ff001916905550565b61158561172a565b826001600160a01b0316846001600160a01b031611156115a3579192915b50604080516060810182526001600160a01b03948516815292909316602083015262ffffff169181019190915290565b600054610100900460ff16806115ec57506115ec61129a565b806115fa575060005460ff16155b6116355760405162461bcd60e51b815260040180806020018281038252602e815260200180611bea602e913960400191505060405180910390fd5b600054610100900460ff16158015611660576000805460ff1961ff0019909116610100171660011790555b611340600054610100900460ff168061167c575061167c61129a565b8061168a575060005460ff16155b6116c55760405162461bcd60e51b815260040180806020018281038252602e815260200180611bea602e913960400191505060405180910390fd5b600054610100900460ff16158015611340576000805460ff1961ff0019909116610100171660011790558015611352576000805461ff001916905550565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604080516060810182526000808252602082018190529181019190915290565b8051801515811461039f57600080fd5b805161ffff8116811461039f57600080fd5b60006020828403121561177d578081fd5b813561178881611bc5565b9392505050565b6000602082840312156117a0578081fd5b815161178881611bc5565b600080604083850312156117bd578081fd5b82356117c881611bc5565b915060208301356117d881611bc5565b809150509250929050565b600080604083850312156117f5578182fd5b823561180081611bc5565b9150602083013562ffffff811681146117d8578182fd5b600060208284031215611828578081fd5b6117888261174a565b600080600080600080600060e0888a03121561184b578283fd5b875161185681611bc5565b8097505060208801518060020b811461186d578384fd5b955061187b6040890161175a565b94506118896060890161175a565b93506118976080890161175a565b925060a08801516118a781611bda565b91506118b560c0890161174a565b905092959891949750929550565b6000602082840312156118d4578081fd5b5051919050565b6000602082840312156118ec578081fd5b813561178881611bda565b600060208284031215611908578081fd5b815161178881611bda565b6001600160a01b0391909116815260200190565b6001600160a01b03938416815291909216602082015262ffffff909116604082015260600190565b6001600160a01b0392909216825262ffffff16602082015260400190565b901515815260200190565b602080825260089082015267135497d4139455d360c21b604082015260600190565b60208082526006908201526504d525f4e45560d41b604082015260600190565b6020808252600890820152674d525f4348424e4560c01b604082015260600190565b6020808252600790820152664d525f51544e4360c81b604082015260600190565b6020808252600790820152664d525f55464e4360c81b604082015260600190565b6020808252600590820152644d525f524f60d81b604082015260600190565b6020808252600690820152654d525f504e4960d01b604082015260600190565b60208082526005908201526404d525f45560dc1b604082015260600190565b602080825260089082015267135497d4139095d360c21b604082015260600190565b602080825260089082015267135497d0d39095d360c21b604082015260600190565b6020808252600890820152674d525f5154534e4560c01b604082015260600190565b602080825260099082015268135497d0d2139455d360ba1b604082015260600190565b6020808252600690820152654d525f504e4560d01b604082015260600190565b60208082526008908201526709aa4be84889c62760c31b604082015260600190565b60208082526005908201526426a92fa4a160d91b604082015260600190565b81516001600160a01b0316815260208083015162ffffff90811691830191909152604080840151821690830152606092830151169181019190915260800190565b62ffffff91909116815260200190565b60ff91909116815260200190565b6001600160a01b038116811461135257600080fd5b60ff8116811461135257600080fdfe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65648be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220fb99bcc0aa6a1839bcc964559341b56085374f6efce7eb081c0ea1aa18195a9664736f6c63430007060033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100fc5760003560e01c806308ff49ad146101015780630cf85bcc1461012a5780631246dbf51461014a57806313af40351461016a5780633feb42121461017f578063449323d814610192578063485cc955146101a55780634a64d67d146101b85780636c8381f8146101cd578063715018a6146101d5578063831f72b4146101dd5780638da5cb5b146101f0578063b081983b146101f8578063bb235d1114610200578063bbe4f6db14610213578063bc5920ba14610226578063c575ff791461022e578063c7bf443414610236578063ece090c414610249578063edd0b5cb1461025e575b600080fd5b61011461010f36600461176c565b610271565b6040516101219190611ba7565b60405180910390f35b61013d61013836600461176c565b6102d7565b6040516101219190611b66565b61015d61015836600461176c565b610381565b604051610121919061196d565b61017d61017836600461176c565b6103a4565b005b61017d61018d3660046117e3565b6104ff565b61017d6101a036600461176c565b610625565b61017d6101b33660046117ab565b6106cc565b6101c0610812565b6040516101219190611913565b6101c0610821565b61017d610830565b61017d6101eb3660046118db565b6108d1565b6101c0610981565b6101c0610990565b61017d61020e3660046117e3565b61099f565b6101c061022136600461176c565b610ab9565b61017d610b14565b6101c0610c00565b6101c06102443660046117e3565b610c0f565b610251611229565b6040516101219190611bb7565b61011461026c36600461176c565b611239565b6001600160a01b038082166000908152609c602052604081205490918391166102b55760405162461bcd60e51b81526004016102ac90611b05565b60405180910390fd5b50506001600160a01b03166000908152609d602052604090205462ffffff1690565b6102df611703565b6001600160a01b038083166000908152609c60205260409020548391166103185760405162461bcd60e51b81526004016102ac90611b05565b5050604080516080810182526001600160a01b039283166000818152609c6020908152848220549095168352818152609e85528381205462ffffff90811686850152828252609f865284822054811684860152918152609d909452919092205416606082015290565b6001600160a01b038181166000908152609c60205260409020541615155b919050565b6103ac611296565b6001600160a01b03166103bd610981565b6001600160a01b031614610401576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038116610445576040805162461bcd60e51b81526020600482015260066024820152650534f5f4e57360d41b604482015290519081900360640190fd5b6033546001600160a01b0382811691161415610491576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414f60d01b604482015290519081900360640190fd5b6034546001600160a01b03828116911614156104dd576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414360d01b604482015290519081900360640190fd5b603480546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038083166000908152609c60205260409020548391166105385760405162461bcd60e51b81526004016102ac90611b05565b81620f42408162ffffff1611156105615760405162461bcd60e51b81526004016102ac90611a1e565b610569611296565b6001600160a01b031661057a610981565b6001600160a01b0316146105be576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b0384166000908152609d602052604090819020805462ffffff191662ffffff8616179055517f0b4bf524b123dd9f9252f2f17e6f842313eb705045a2259faccd2530bae3ff5c90610617908590611ba7565b60405180910390a150505050565b61062d611296565b6001600160a01b031661063e610981565b6001600160a01b031614610682576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b606780546001600160a01b0319166001600160a01b0383169081179091556040517fd0654f5900f9e7e4e605a19334306e6a2786bbf960ac0484a4c12feb6428fe2f90600090a250565b600054610100900460ff16806106e557506106e561129a565b806106f3575060005460ff16155b61072e5760405162461bcd60e51b815260040180806020018281038252602e815260200180611bea602e913960400191505060405180910390fd5b600054610100900460ff16158015610759576000805460ff1961ff0019909116610100171660011790555b6107616112ab565b610773836001600160a01b0316611355565b61078f5760405162461bcd60e51b81526004016102ac906119fd565b6107a1826001600160a01b0316611355565b6107bd5760405162461bcd60e51b81526004016102ac906119dc565b609a80546001600160a01b038086166001600160a01b031992831617909255609b805460ff60a01b199386169216919091179190911660ff60a01b179055801561080d576000805461ff00191690555b505050565b609b546001600160a01b031690565b6034546001600160a01b031690565b610838611296565b6001600160a01b0316610849610981565b6001600160a01b03161461088d576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6033546040516000916001600160a01b031690600080516020611c18833981519152908390a3603380546001600160a01b0319908116909155603480549091169055565b6108d9611296565b6001600160a01b03166108ea610981565b6001600160a01b03161461092e576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b609b805460ff60a01b1916600160a01b60ff8416021790556040517ff3d121ca0d4fa5acf57cf8a09acedf5326b6ca02f25764d2a05a4dba8e4a777e90610976908390611bb7565b60405180910390a150565b6033546001600160a01b031690565b609a546001600160a01b031690565b6001600160a01b038083166000908152609c60205260409020548391166109d85760405162461bcd60e51b81526004016102ac90611b05565b81620f42408162ffffff161115610a015760405162461bcd60e51b81526004016102ac90611a1e565b610a09611296565b6001600160a01b0316610a1a610981565b6001600160a01b031614610a5e576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b0384166000908152609e602052604090819020805462ffffff191662ffffff8616179055517f8129297a1a8d252870739804c1d9cdbc86121230ce172c23ec11a940ccab01ef90610617908690869061194f565b6001600160a01b038082166000908152609c60205260408120549091839116610af45760405162461bcd60e51b81526004016102ac90611b05565b50506001600160a01b039081166000908152609c60205260409020541690565b6034546001600160a01b0316610b59576040805162461bcd60e51b81526020600482015260056024820152640534f5f43360dc1b604482015290519081900360640190fd5b610b61611296565b6034546001600160a01b03908116911614610bac576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4360d01b604482015290519081900360640190fd5b6034546033546040516001600160a01b039283169290911690600080516020611c1883398151915290600090a360348054603380546001600160a01b03199081166001600160a01b03841617909155169055565b6067546001600160a01b031690565b6000610c19611296565b6001600160a01b0316610c2a610981565b6001600160a01b031614610c6e576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038381166000908152609c60205260409020541615610ca65760405162461bcd60e51b81526004016102ac90611a5d565b826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610cdf57600080fd5b505afa158015610cf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1791906118f7565b60ff16601214610d395760405162461bcd60e51b81526004016102ac90611b25565b6067546040516370a0823160e01b8152600019916001600160a01b03808716926370a0823192610d6d921690600401611913565b60206040518083038186803b158015610d8557600080fd5b505afa158015610d99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbd91906118c3565b14610dda5760405162461bcd60e51b81526004016102ac906119ba565b609b54604080516318160ddd60e01b81529051600019926001600160a01b0316916318160ddd916004808301926020929190829003018186803b158015610e2057600080fd5b505afa158015610e34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5891906118c3565b14610e755760405162461bcd60e51b81526004016102ac90611ac0565b609b546001600160a01b0390811690841610610ea35760405162461bcd60e51b81526004016102ac90611b47565b609a54609b54600091610ec4916001600160a01b039182169116868661135b565b90506001600160a01b038116610eec5760405162461bcd60e51b81526004016102ac9061199a565b6000610ef7826113fb565b5050505050506001600160a01b031690508060001415610f295760405162461bcd60e51b81526004016102ac90611a3d565b6067546040516304fec10960e11b81526001600160a01b03878116926309fd821292610f5b9290911690600401611913565b60206040518083038186803b158015610f7357600080fd5b505afa158015610f87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fab9190611817565b610fc75760405162461bcd60e51b81526004016102ac90611a9e565b6040516304fec10960e11b81526001600160a01b038616906309fd821290610ff3908590600401611913565b60206040518083038186803b15801561100b57600080fd5b505afa15801561101f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110439190611817565b61105f5760405162461bcd60e51b81526004016102ac90611a7c565b609b546067546040516304fec10960e11b81526001600160a01b03928316926309fd82129261109392911690600401611913565b60206040518083038186803b1580156110ab57600080fd5b505afa1580156110bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e39190611817565b6110ff5760405162461bcd60e51b81526004016102ac90611ae2565b609b546040516304fec10960e11b81526001600160a01b03909116906309fd82129061112f908590600401611913565b60206040518083038186803b15801561114757600080fd5b505afa15801561115b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117f9190611817565b61119b5760405162461bcd60e51b81526004016102ac90611978565b6001600160a01b038086166000818152609c6020908152604080832080549588166001600160a01b031990961686179055609f8252808320805462ffffff8b1662ffffff199182168117909255609e90935281842080549093168117909255519092917f8b17db32f8ec22477a8f9475d5b92052ef2ce8c6c73ad79be1eb297a8fdd2ff191a4509392505050565b609b54600160a01b900460ff1690565b6001600160a01b038082166000908152609c602052604081205490918391166112745760405162461bcd60e51b81526004016102ac90611b05565b50506001600160a01b03166000908152609e602052604090205462ffffff1690565b3390565b60006112a530611355565b15905090565b600054610100900460ff16806112c457506112c461129a565b806112d2575060005460ff16155b61130d5760405162461bcd60e51b815260040180806020018281038252602e815260200180611bea602e913960400191505060405180910390fd5b600054610100900460ff16158015611338576000805460ff1961ff0019909116610100171660011790555b61134061148e565b8015611352576000805461ff00191690555b50565b3b151590565b60008061136985858561157d565b80516020820151604051630b4c774160e11b81529293506001600160a01b03891692631698ee82926113a19290918890600401611927565b60206040518083038186803b1580156113b957600080fd5b505afa1580156113cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f1919061178f565b9695505050505050565b6000806000806000806000876001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561143f57600080fd5b505afa158015611453573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114779190611831565b959e949d50929b5090995097509550909350915050565b600054610100900460ff16806114a757506114a761129a565b806114b5575060005460ff16155b6114f05760405162461bcd60e51b815260040180806020018281038252602e815260200180611bea602e913960400191505060405180910390fd5b600054610100900460ff1615801561151b576000805460ff1961ff0019909116610100171660011790555b6115236115d3565b600061152d611296565b603380546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020611c18833981519152908290a3508015611352576000805461ff001916905550565b61158561172a565b826001600160a01b0316846001600160a01b031611156115a3579192915b50604080516060810182526001600160a01b03948516815292909316602083015262ffffff169181019190915290565b600054610100900460ff16806115ec57506115ec61129a565b806115fa575060005460ff16155b6116355760405162461bcd60e51b815260040180806020018281038252602e815260200180611bea602e913960400191505060405180910390fd5b600054610100900460ff16158015611660576000805460ff1961ff0019909116610100171660011790555b611340600054610100900460ff168061167c575061167c61129a565b8061168a575060005460ff16155b6116c55760405162461bcd60e51b815260040180806020018281038252602e815260200180611bea602e913960400191505060405180910390fd5b600054610100900460ff16158015611340576000805460ff1961ff0019909116610100171660011790558015611352576000805461ff001916905550565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604080516060810182526000808252602082018190529181019190915290565b8051801515811461039f57600080fd5b805161ffff8116811461039f57600080fd5b60006020828403121561177d578081fd5b813561178881611bc5565b9392505050565b6000602082840312156117a0578081fd5b815161178881611bc5565b600080604083850312156117bd578081fd5b82356117c881611bc5565b915060208301356117d881611bc5565b809150509250929050565b600080604083850312156117f5578182fd5b823561180081611bc5565b9150602083013562ffffff811681146117d8578182fd5b600060208284031215611828578081fd5b6117888261174a565b600080600080600080600060e0888a03121561184b578283fd5b875161185681611bc5565b8097505060208801518060020b811461186d578384fd5b955061187b6040890161175a565b94506118896060890161175a565b93506118976080890161175a565b925060a08801516118a781611bda565b91506118b560c0890161174a565b905092959891949750929550565b6000602082840312156118d4578081fd5b5051919050565b6000602082840312156118ec578081fd5b813561178881611bda565b600060208284031215611908578081fd5b815161178881611bda565b6001600160a01b0391909116815260200190565b6001600160a01b03938416815291909216602082015262ffffff909116604082015260600190565b6001600160a01b0392909216825262ffffff16602082015260400190565b901515815260200190565b602080825260089082015267135497d4139455d360c21b604082015260600190565b60208082526006908201526504d525f4e45560d41b604082015260600190565b6020808252600890820152674d525f4348424e4560c01b604082015260600190565b6020808252600790820152664d525f51544e4360c81b604082015260600190565b6020808252600790820152664d525f55464e4360c81b604082015260600190565b6020808252600590820152644d525f524f60d81b604082015260600190565b6020808252600690820152654d525f504e4960d01b604082015260600190565b60208082526005908201526404d525f45560dc1b604082015260600190565b602080825260089082015267135497d4139095d360c21b604082015260600190565b602080825260089082015267135497d0d39095d360c21b604082015260600190565b6020808252600890820152674d525f5154534e4560c01b604082015260600190565b602080825260099082015268135497d0d2139455d360ba1b604082015260600190565b6020808252600690820152654d525f504e4560d01b604082015260600190565b60208082526008908201526709aa4be84889c62760c31b604082015260600190565b60208082526005908201526426a92fa4a160d91b604082015260600190565b81516001600160a01b0316815260208083015162ffffff90811691830191909152604080840151821690830152606092830151169181019190915260800190565b62ffffff91909116815260200190565b60ff91909116815260200190565b6001600160a01b038116811461135257600080fd5b60ff8116811461135257600080fdfe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65648be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220fb99bcc0aa6a1839bcc964559341b56085374f6efce7eb081c0ea1aa18195a9664736f6c63430007060033",
"bytecode": "0x608060405234801561001057600080fd5b50611c6d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100fc5760003560e01c806308ff49ad146101015780630cf85bcc1461012a5780631246dbf51461014a57806313af40351461016a5780633feb42121461017f578063449323d814610192578063485cc955146101a55780634a64d67d146101b85780636c8381f8146101cd578063715018a6146101d5578063831f72b4146101dd5780638da5cb5b146101f0578063b081983b146101f8578063bb235d1114610200578063bbe4f6db14610213578063bc5920ba14610226578063c575ff791461022e578063c7bf443414610236578063ece090c414610249578063edd0b5cb1461025e575b600080fd5b61011461010f36600461176c565b610271565b6040516101219190611ba7565b60405180910390f35b61013d61013836600461176c565b6102d7565b6040516101219190611b66565b61015d61015836600461176c565b610381565b604051610121919061196d565b61017d61017836600461176c565b6103a4565b005b61017d61018d3660046117e3565b6104ff565b61017d6101a036600461176c565b610625565b61017d6101b33660046117ab565b6106cc565b6101c0610812565b6040516101219190611913565b6101c0610821565b61017d610830565b61017d6101eb3660046118db565b6108d1565b6101c0610981565b6101c0610990565b61017d61020e3660046117e3565b61099f565b6101c061022136600461176c565b610ab9565b61017d610b14565b6101c0610c00565b6101c06102443660046117e3565b610c0f565b610251611229565b6040516101219190611bb7565b61011461026c36600461176c565b611239565b6001600160a01b038082166000908152609c602052604081205490918391166102b55760405162461bcd60e51b81526004016102ac90611b05565b60405180910390fd5b50506001600160a01b03166000908152609d602052604090205462ffffff1690565b6102df611703565b6001600160a01b038083166000908152609c60205260409020548391166103185760405162461bcd60e51b81526004016102ac90611b05565b5050604080516080810182526001600160a01b039283166000818152609c6020908152848220549095168352818152609e85528381205462ffffff90811686850152828252609f865284822054811684860152918152609d909452919092205416606082015290565b6001600160a01b038181166000908152609c60205260409020541615155b919050565b6103ac611296565b6001600160a01b03166103bd610981565b6001600160a01b031614610401576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038116610445576040805162461bcd60e51b81526020600482015260066024820152650534f5f4e57360d41b604482015290519081900360640190fd5b6033546001600160a01b0382811691161415610491576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414f60d01b604482015290519081900360640190fd5b6034546001600160a01b03828116911614156104dd576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414360d01b604482015290519081900360640190fd5b603480546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038083166000908152609c60205260409020548391166105385760405162461bcd60e51b81526004016102ac90611b05565b81620f42408162ffffff1611156105615760405162461bcd60e51b81526004016102ac90611a1e565b610569611296565b6001600160a01b031661057a610981565b6001600160a01b0316146105be576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b0384166000908152609d602052604090819020805462ffffff191662ffffff8616179055517f0b4bf524b123dd9f9252f2f17e6f842313eb705045a2259faccd2530bae3ff5c90610617908590611ba7565b60405180910390a150505050565b61062d611296565b6001600160a01b031661063e610981565b6001600160a01b031614610682576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b606780546001600160a01b0319166001600160a01b0383169081179091556040517fd0654f5900f9e7e4e605a19334306e6a2786bbf960ac0484a4c12feb6428fe2f90600090a250565b600054610100900460ff16806106e557506106e561129a565b806106f3575060005460ff16155b61072e5760405162461bcd60e51b815260040180806020018281038252602e815260200180611bea602e913960400191505060405180910390fd5b600054610100900460ff16158015610759576000805460ff1961ff0019909116610100171660011790555b6107616112ab565b610773836001600160a01b0316611355565b61078f5760405162461bcd60e51b81526004016102ac906119fd565b6107a1826001600160a01b0316611355565b6107bd5760405162461bcd60e51b81526004016102ac906119dc565b609a80546001600160a01b038086166001600160a01b031992831617909255609b805460ff60a01b199386169216919091179190911660ff60a01b179055801561080d576000805461ff00191690555b505050565b609b546001600160a01b031690565b6034546001600160a01b031690565b610838611296565b6001600160a01b0316610849610981565b6001600160a01b03161461088d576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6033546040516000916001600160a01b031690600080516020611c18833981519152908390a3603380546001600160a01b0319908116909155603480549091169055565b6108d9611296565b6001600160a01b03166108ea610981565b6001600160a01b03161461092e576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b609b805460ff60a01b1916600160a01b60ff8416021790556040517ff3d121ca0d4fa5acf57cf8a09acedf5326b6ca02f25764d2a05a4dba8e4a777e90610976908390611bb7565b60405180910390a150565b6033546001600160a01b031690565b609a546001600160a01b031690565b6001600160a01b038083166000908152609c60205260409020548391166109d85760405162461bcd60e51b81526004016102ac90611b05565b81620f42408162ffffff161115610a015760405162461bcd60e51b81526004016102ac90611a1e565b610a09611296565b6001600160a01b0316610a1a610981565b6001600160a01b031614610a5e576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b0384166000908152609e602052604090819020805462ffffff191662ffffff8616179055517f8129297a1a8d252870739804c1d9cdbc86121230ce172c23ec11a940ccab01ef90610617908690869061194f565b6001600160a01b038082166000908152609c60205260408120549091839116610af45760405162461bcd60e51b81526004016102ac90611b05565b50506001600160a01b039081166000908152609c60205260409020541690565b6034546001600160a01b0316610b59576040805162461bcd60e51b81526020600482015260056024820152640534f5f43360dc1b604482015290519081900360640190fd5b610b61611296565b6034546001600160a01b03908116911614610bac576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4360d01b604482015290519081900360640190fd5b6034546033546040516001600160a01b039283169290911690600080516020611c1883398151915290600090a360348054603380546001600160a01b03199081166001600160a01b03841617909155169055565b6067546001600160a01b031690565b6000610c19611296565b6001600160a01b0316610c2a610981565b6001600160a01b031614610c6e576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038381166000908152609c60205260409020541615610ca65760405162461bcd60e51b81526004016102ac90611a5d565b826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610cdf57600080fd5b505afa158015610cf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1791906118f7565b60ff16601214610d395760405162461bcd60e51b81526004016102ac90611b25565b6067546040516370a0823160e01b8152600019916001600160a01b03808716926370a0823192610d6d921690600401611913565b60206040518083038186803b158015610d8557600080fd5b505afa158015610d99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbd91906118c3565b14610dda5760405162461bcd60e51b81526004016102ac906119ba565b609b54604080516318160ddd60e01b81529051600019926001600160a01b0316916318160ddd916004808301926020929190829003018186803b158015610e2057600080fd5b505afa158015610e34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5891906118c3565b14610e755760405162461bcd60e51b81526004016102ac90611ac0565b609b546001600160a01b0390811690841610610ea35760405162461bcd60e51b81526004016102ac90611b47565b609a54609b54600091610ec4916001600160a01b039182169116868661135b565b90506001600160a01b038116610eec5760405162461bcd60e51b81526004016102ac9061199a565b6000610ef7826113fb565b5050505050506001600160a01b031690508060001415610f295760405162461bcd60e51b81526004016102ac90611a3d565b6067546040516304fec10960e11b81526001600160a01b03878116926309fd821292610f5b9290911690600401611913565b60206040518083038186803b158015610f7357600080fd5b505afa158015610f87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fab9190611817565b610fc75760405162461bcd60e51b81526004016102ac90611a9e565b6040516304fec10960e11b81526001600160a01b038616906309fd821290610ff3908590600401611913565b60206040518083038186803b15801561100b57600080fd5b505afa15801561101f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110439190611817565b61105f5760405162461bcd60e51b81526004016102ac90611a7c565b609b546067546040516304fec10960e11b81526001600160a01b03928316926309fd82129261109392911690600401611913565b60206040518083038186803b1580156110ab57600080fd5b505afa1580156110bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e39190611817565b6110ff5760405162461bcd60e51b81526004016102ac90611ae2565b609b546040516304fec10960e11b81526001600160a01b03909116906309fd82129061112f908590600401611913565b60206040518083038186803b15801561114757600080fd5b505afa15801561115b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117f9190611817565b61119b5760405162461bcd60e51b81526004016102ac90611978565b6001600160a01b038086166000818152609c6020908152604080832080549588166001600160a01b031990961686179055609f8252808320805462ffffff8b1662ffffff199182168117909255609e90935281842080549093168117909255519092917f8b17db32f8ec22477a8f9475d5b92052ef2ce8c6c73ad79be1eb297a8fdd2ff191a4509392505050565b609b54600160a01b900460ff1690565b6001600160a01b038082166000908152609c602052604081205490918391166112745760405162461bcd60e51b81526004016102ac90611b05565b50506001600160a01b03166000908152609e602052604090205462ffffff1690565b3390565b60006112a530611355565b15905090565b600054610100900460ff16806112c457506112c461129a565b806112d2575060005460ff16155b61130d5760405162461bcd60e51b815260040180806020018281038252602e815260200180611bea602e913960400191505060405180910390fd5b600054610100900460ff16158015611338576000805460ff1961ff0019909116610100171660011790555b61134061148e565b8015611352576000805461ff00191690555b50565b3b151590565b60008061136985858561157d565b80516020820151604051630b4c774160e11b81529293506001600160a01b03891692631698ee82926113a19290918890600401611927565b60206040518083038186803b1580156113b957600080fd5b505afa1580156113cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f1919061178f565b9695505050505050565b6000806000806000806000876001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561143f57600080fd5b505afa158015611453573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114779190611831565b959e949d50929b5090995097509550909350915050565b600054610100900460ff16806114a757506114a761129a565b806114b5575060005460ff16155b6114f05760405162461bcd60e51b815260040180806020018281038252602e815260200180611bea602e913960400191505060405180910390fd5b600054610100900460ff1615801561151b576000805460ff1961ff0019909116610100171660011790555b6115236115d3565b600061152d611296565b603380546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020611c18833981519152908290a3508015611352576000805461ff001916905550565b61158561172a565b826001600160a01b0316846001600160a01b031611156115a3579192915b50604080516060810182526001600160a01b03948516815292909316602083015262ffffff169181019190915290565b600054610100900460ff16806115ec57506115ec61129a565b806115fa575060005460ff16155b6116355760405162461bcd60e51b815260040180806020018281038252602e815260200180611bea602e913960400191505060405180910390fd5b600054610100900460ff16158015611660576000805460ff1961ff0019909116610100171660011790555b611340600054610100900460ff168061167c575061167c61129a565b8061168a575060005460ff16155b6116c55760405162461bcd60e51b815260040180806020018281038252602e815260200180611bea602e913960400191505060405180910390fd5b600054610100900460ff16158015611340576000805460ff1961ff0019909116610100171660011790558015611352576000805461ff001916905550565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604080516060810182526000808252602082018190529181019190915290565b8051801515811461039f57600080fd5b805161ffff8116811461039f57600080fd5b60006020828403121561177d578081fd5b813561178881611bc5565b9392505050565b6000602082840312156117a0578081fd5b815161178881611bc5565b600080604083850312156117bd578081fd5b82356117c881611bc5565b915060208301356117d881611bc5565b809150509250929050565b600080604083850312156117f5578182fd5b823561180081611bc5565b9150602083013562ffffff811681146117d8578182fd5b600060208284031215611828578081fd5b6117888261174a565b600080600080600080600060e0888a03121561184b578283fd5b875161185681611bc5565b8097505060208801518060020b811461186d578384fd5b955061187b6040890161175a565b94506118896060890161175a565b93506118976080890161175a565b925060a08801516118a781611bda565b91506118b560c0890161174a565b905092959891949750929550565b6000602082840312156118d4578081fd5b5051919050565b6000602082840312156118ec578081fd5b813561178881611bda565b600060208284031215611908578081fd5b815161178881611bda565b6001600160a01b0391909116815260200190565b6001600160a01b03938416815291909216602082015262ffffff909116604082015260600190565b6001600160a01b0392909216825262ffffff16602082015260400190565b901515815260200190565b602080825260089082015267135497d4139455d360c21b604082015260600190565b60208082526006908201526504d525f4e45560d41b604082015260600190565b6020808252600890820152674d525f4348424e4560c01b604082015260600190565b6020808252600790820152664d525f51544e4360c81b604082015260600190565b6020808252600790820152664d525f55464e4360c81b604082015260600190565b6020808252600590820152644d525f524f60d81b604082015260600190565b6020808252600690820152654d525f504e4960d01b604082015260600190565b60208082526005908201526404d525f45560dc1b604082015260600190565b602080825260089082015267135497d4139095d360c21b604082015260600190565b602080825260089082015267135497d0d39095d360c21b604082015260600190565b6020808252600890820152674d525f5154534e4560c01b604082015260600190565b602080825260099082015268135497d0d2139455d360ba1b604082015260600190565b6020808252600690820152654d525f504e4560d01b604082015260600190565b60208082526008908201526709aa4be84889c62760c31b604082015260600190565b60208082526005908201526426a92fa4a160d91b604082015260600190565b81516001600160a01b0316815260208083015162ffffff90811691830191909152604080840151821690830152606092830151169181019190915260800190565b62ffffff91909116815260200190565b60ff91909116815260200190565b6001600160a01b038116811461135257600080fd5b60ff8116811461135257600080fdfe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65648be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a264697066735822122062c578951b00f154e24734a4ec399fb73f1e0e683b7633cea7d9f9bccde6cf0b64736f6c63430007060033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100fc5760003560e01c806308ff49ad146101015780630cf85bcc1461012a5780631246dbf51461014a57806313af40351461016a5780633feb42121461017f578063449323d814610192578063485cc955146101a55780634a64d67d146101b85780636c8381f8146101cd578063715018a6146101d5578063831f72b4146101dd5780638da5cb5b146101f0578063b081983b146101f8578063bb235d1114610200578063bbe4f6db14610213578063bc5920ba14610226578063c575ff791461022e578063c7bf443414610236578063ece090c414610249578063edd0b5cb1461025e575b600080fd5b61011461010f36600461176c565b610271565b6040516101219190611ba7565b60405180910390f35b61013d61013836600461176c565b6102d7565b6040516101219190611b66565b61015d61015836600461176c565b610381565b604051610121919061196d565b61017d61017836600461176c565b6103a4565b005b61017d61018d3660046117e3565b6104ff565b61017d6101a036600461176c565b610625565b61017d6101b33660046117ab565b6106cc565b6101c0610812565b6040516101219190611913565b6101c0610821565b61017d610830565b61017d6101eb3660046118db565b6108d1565b6101c0610981565b6101c0610990565b61017d61020e3660046117e3565b61099f565b6101c061022136600461176c565b610ab9565b61017d610b14565b6101c0610c00565b6101c06102443660046117e3565b610c0f565b610251611229565b6040516101219190611bb7565b61011461026c36600461176c565b611239565b6001600160a01b038082166000908152609c602052604081205490918391166102b55760405162461bcd60e51b81526004016102ac90611b05565b60405180910390fd5b50506001600160a01b03166000908152609d602052604090205462ffffff1690565b6102df611703565b6001600160a01b038083166000908152609c60205260409020548391166103185760405162461bcd60e51b81526004016102ac90611b05565b5050604080516080810182526001600160a01b039283166000818152609c6020908152848220549095168352818152609e85528381205462ffffff90811686850152828252609f865284822054811684860152918152609d909452919092205416606082015290565b6001600160a01b038181166000908152609c60205260409020541615155b919050565b6103ac611296565b6001600160a01b03166103bd610981565b6001600160a01b031614610401576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038116610445576040805162461bcd60e51b81526020600482015260066024820152650534f5f4e57360d41b604482015290519081900360640190fd5b6033546001600160a01b0382811691161415610491576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414f60d01b604482015290519081900360640190fd5b6034546001600160a01b03828116911614156104dd576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414360d01b604482015290519081900360640190fd5b603480546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038083166000908152609c60205260409020548391166105385760405162461bcd60e51b81526004016102ac90611b05565b81620f42408162ffffff1611156105615760405162461bcd60e51b81526004016102ac90611a1e565b610569611296565b6001600160a01b031661057a610981565b6001600160a01b0316146105be576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b0384166000908152609d602052604090819020805462ffffff191662ffffff8616179055517f0b4bf524b123dd9f9252f2f17e6f842313eb705045a2259faccd2530bae3ff5c90610617908590611ba7565b60405180910390a150505050565b61062d611296565b6001600160a01b031661063e610981565b6001600160a01b031614610682576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b606780546001600160a01b0319166001600160a01b0383169081179091556040517fd0654f5900f9e7e4e605a19334306e6a2786bbf960ac0484a4c12feb6428fe2f90600090a250565b600054610100900460ff16806106e557506106e561129a565b806106f3575060005460ff16155b61072e5760405162461bcd60e51b815260040180806020018281038252602e815260200180611bea602e913960400191505060405180910390fd5b600054610100900460ff16158015610759576000805460ff1961ff0019909116610100171660011790555b6107616112ab565b610773836001600160a01b0316611355565b61078f5760405162461bcd60e51b81526004016102ac906119fd565b6107a1826001600160a01b0316611355565b6107bd5760405162461bcd60e51b81526004016102ac906119dc565b609a80546001600160a01b038086166001600160a01b031992831617909255609b805460ff60a01b199386169216919091179190911660ff60a01b179055801561080d576000805461ff00191690555b505050565b609b546001600160a01b031690565b6034546001600160a01b031690565b610838611296565b6001600160a01b0316610849610981565b6001600160a01b03161461088d576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6033546040516000916001600160a01b031690600080516020611c18833981519152908390a3603380546001600160a01b0319908116909155603480549091169055565b6108d9611296565b6001600160a01b03166108ea610981565b6001600160a01b03161461092e576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b609b805460ff60a01b1916600160a01b60ff8416021790556040517ff3d121ca0d4fa5acf57cf8a09acedf5326b6ca02f25764d2a05a4dba8e4a777e90610976908390611bb7565b60405180910390a150565b6033546001600160a01b031690565b609a546001600160a01b031690565b6001600160a01b038083166000908152609c60205260409020548391166109d85760405162461bcd60e51b81526004016102ac90611b05565b81620f42408162ffffff161115610a015760405162461bcd60e51b81526004016102ac90611a1e565b610a09611296565b6001600160a01b0316610a1a610981565b6001600160a01b031614610a5e576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b0384166000908152609e602052604090819020805462ffffff191662ffffff8616179055517f8129297a1a8d252870739804c1d9cdbc86121230ce172c23ec11a940ccab01ef90610617908690869061194f565b6001600160a01b038082166000908152609c60205260408120549091839116610af45760405162461bcd60e51b81526004016102ac90611b05565b50506001600160a01b039081166000908152609c60205260409020541690565b6034546001600160a01b0316610b59576040805162461bcd60e51b81526020600482015260056024820152640534f5f43360dc1b604482015290519081900360640190fd5b610b61611296565b6034546001600160a01b03908116911614610bac576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4360d01b604482015290519081900360640190fd5b6034546033546040516001600160a01b039283169290911690600080516020611c1883398151915290600090a360348054603380546001600160a01b03199081166001600160a01b03841617909155169055565b6067546001600160a01b031690565b6000610c19611296565b6001600160a01b0316610c2a610981565b6001600160a01b031614610c6e576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038381166000908152609c60205260409020541615610ca65760405162461bcd60e51b81526004016102ac90611a5d565b826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610cdf57600080fd5b505afa158015610cf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1791906118f7565b60ff16601214610d395760405162461bcd60e51b81526004016102ac90611b25565b6067546040516370a0823160e01b8152600019916001600160a01b03808716926370a0823192610d6d921690600401611913565b60206040518083038186803b158015610d8557600080fd5b505afa158015610d99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbd91906118c3565b14610dda5760405162461bcd60e51b81526004016102ac906119ba565b609b54604080516318160ddd60e01b81529051600019926001600160a01b0316916318160ddd916004808301926020929190829003018186803b158015610e2057600080fd5b505afa158015610e34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5891906118c3565b14610e755760405162461bcd60e51b81526004016102ac90611ac0565b609b546001600160a01b0390811690841610610ea35760405162461bcd60e51b81526004016102ac90611b47565b609a54609b54600091610ec4916001600160a01b039182169116868661135b565b90506001600160a01b038116610eec5760405162461bcd60e51b81526004016102ac9061199a565b6000610ef7826113fb565b5050505050506001600160a01b031690508060001415610f295760405162461bcd60e51b81526004016102ac90611a3d565b6067546040516304fec10960e11b81526001600160a01b03878116926309fd821292610f5b9290911690600401611913565b60206040518083038186803b158015610f7357600080fd5b505afa158015610f87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fab9190611817565b610fc75760405162461bcd60e51b81526004016102ac90611a9e565b6040516304fec10960e11b81526001600160a01b038616906309fd821290610ff3908590600401611913565b60206040518083038186803b15801561100b57600080fd5b505afa15801561101f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110439190611817565b61105f5760405162461bcd60e51b81526004016102ac90611a7c565b609b546067546040516304fec10960e11b81526001600160a01b03928316926309fd82129261109392911690600401611913565b60206040518083038186803b1580156110ab57600080fd5b505afa1580156110bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e39190611817565b6110ff5760405162461bcd60e51b81526004016102ac90611ae2565b609b546040516304fec10960e11b81526001600160a01b03909116906309fd82129061112f908590600401611913565b60206040518083038186803b15801561114757600080fd5b505afa15801561115b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117f9190611817565b61119b5760405162461bcd60e51b81526004016102ac90611978565b6001600160a01b038086166000818152609c6020908152604080832080549588166001600160a01b031990961686179055609f8252808320805462ffffff8b1662ffffff199182168117909255609e90935281842080549093168117909255519092917f8b17db32f8ec22477a8f9475d5b92052ef2ce8c6c73ad79be1eb297a8fdd2ff191a4509392505050565b609b54600160a01b900460ff1690565b6001600160a01b038082166000908152609c602052604081205490918391166112745760405162461bcd60e51b81526004016102ac90611b05565b50506001600160a01b03166000908152609e602052604090205462ffffff1690565b3390565b60006112a530611355565b15905090565b600054610100900460ff16806112c457506112c461129a565b806112d2575060005460ff16155b61130d5760405162461bcd60e51b815260040180806020018281038252602e815260200180611bea602e913960400191505060405180910390fd5b600054610100900460ff16158015611338576000805460ff1961ff0019909116610100171660011790555b61134061148e565b8015611352576000805461ff00191690555b50565b3b151590565b60008061136985858561157d565b80516020820151604051630b4c774160e11b81529293506001600160a01b03891692631698ee82926113a19290918890600401611927565b60206040518083038186803b1580156113b957600080fd5b505afa1580156113cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f1919061178f565b9695505050505050565b6000806000806000806000876001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561143f57600080fd5b505afa158015611453573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114779190611831565b959e949d50929b5090995097509550909350915050565b600054610100900460ff16806114a757506114a761129a565b806114b5575060005460ff16155b6114f05760405162461bcd60e51b815260040180806020018281038252602e815260200180611bea602e913960400191505060405180910390fd5b600054610100900460ff1615801561151b576000805460ff1961ff0019909116610100171660011790555b6115236115d3565b600061152d611296565b603380546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020611c18833981519152908290a3508015611352576000805461ff001916905550565b61158561172a565b826001600160a01b0316846001600160a01b031611156115a3579192915b50604080516060810182526001600160a01b03948516815292909316602083015262ffffff169181019190915290565b600054610100900460ff16806115ec57506115ec61129a565b806115fa575060005460ff16155b6116355760405162461bcd60e51b815260040180806020018281038252602e815260200180611bea602e913960400191505060405180910390fd5b600054610100900460ff16158015611660576000805460ff1961ff0019909116610100171660011790555b611340600054610100900460ff168061167c575061167c61129a565b8061168a575060005460ff16155b6116c55760405162461bcd60e51b815260040180806020018281038252602e815260200180611bea602e913960400191505060405180910390fd5b600054610100900460ff16158015611340576000805460ff1961ff0019909116610100171660011790558015611352576000805461ff001916905550565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604080516060810182526000808252602082018190529181019190915290565b8051801515811461039f57600080fd5b805161ffff8116811461039f57600080fd5b60006020828403121561177d578081fd5b813561178881611bc5565b9392505050565b6000602082840312156117a0578081fd5b815161178881611bc5565b600080604083850312156117bd578081fd5b82356117c881611bc5565b915060208301356117d881611bc5565b809150509250929050565b600080604083850312156117f5578182fd5b823561180081611bc5565b9150602083013562ffffff811681146117d8578182fd5b600060208284031215611828578081fd5b6117888261174a565b600080600080600080600060e0888a03121561184b578283fd5b875161185681611bc5565b8097505060208801518060020b811461186d578384fd5b955061187b6040890161175a565b94506118896060890161175a565b93506118976080890161175a565b925060a08801516118a781611bda565b91506118b560c0890161174a565b905092959891949750929550565b6000602082840312156118d4578081fd5b5051919050565b6000602082840312156118ec578081fd5b813561178881611bda565b600060208284031215611908578081fd5b815161178881611bda565b6001600160a01b0391909116815260200190565b6001600160a01b03938416815291909216602082015262ffffff909116604082015260600190565b6001600160a01b0392909216825262ffffff16602082015260400190565b901515815260200190565b602080825260089082015267135497d4139455d360c21b604082015260600190565b60208082526006908201526504d525f4e45560d41b604082015260600190565b6020808252600890820152674d525f4348424e4560c01b604082015260600190565b6020808252600790820152664d525f51544e4360c81b604082015260600190565b6020808252600790820152664d525f55464e4360c81b604082015260600190565b6020808252600590820152644d525f524f60d81b604082015260600190565b6020808252600690820152654d525f504e4960d01b604082015260600190565b60208082526005908201526404d525f45560dc1b604082015260600190565b602080825260089082015267135497d4139095d360c21b604082015260600190565b602080825260089082015267135497d0d39095d360c21b604082015260600190565b6020808252600890820152674d525f5154534e4560c01b604082015260600190565b602080825260099082015268135497d0d2139455d360ba1b604082015260600190565b6020808252600690820152654d525f504e4560d01b604082015260600190565b60208082526008908201526709aa4be84889c62760c31b604082015260600190565b60208082526005908201526426a92fa4a160d91b604082015260600190565b81516001600160a01b0316815260208083015162ffffff90811691830191909152604080840151821690830152606092830151169181019190915260800190565b62ffffff91909116815260200190565b60ff91909116815260200190565b6001600160a01b038116811461135257600080fd5b60ff8116811461135257600080fdfe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65648be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a264697066735822122062c578951b00f154e24734a4ec399fb73f1e0e683b7633cea7d9f9bccde6cf0b64736f6c63430007060033",
"linkReferences": {},
"deployedLinkReferences": {}
}

@@ -496,6 +496,6 @@ {

],
"bytecode": "0x608060405234801561001057600080fd5b506128fc806100206000396000f3fe608060405234801561001057600080fd5b50600436106101495760003560e01c806312803c7d1461014e57806313af403514610172578063158626f71461019a578063313ce567146101a257806334ce998a146101c05780633f4ba83a146101da5780633ffd1303146101e2578063449323d81461021357806347e7ef2414610239578063486ff0cd14610265578063572b6c05146102e25780635c975abb1461031c5780636896fabf146103245780636c8381f81461032c578063715018a6146103345780638456cb591461033c5780638da5cb5b14610344578063aa2a82941461034c578063bc5920ba14610354578063c39994441461035c578063c575ff7914610382578063ce1b815f1461038a578063da74222814610392578063f3fef3a3146103b8578063f807cd22146103e4578063f8b2cb4f146103ec578063f8c8765e14610412575b600080fd5b610156610450565b604080516001600160a01b039092168252519081900360200190f35b6101986004803603602081101561018857600080fd5b50356001600160a01b0316610466565b005b6101566105c1565b6101aa6105d1565b6040805160ff9092168252519081900360200190f35b6101c86105db565b60408051918252519081900360200190f35b6101986105e2565b6101c8600480360360408110156101f857600080fd5b5080356001600160a01b0316906020013562ffffff16610649565b6101986004803603602081101561022957600080fd5b50356001600160a01b0316610802565b6101986004803603604081101561024f57600080fd5b506001600160a01b0381351690602001356108cd565b61026d610c9b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102a757818101518382015260200161028f565b50505050905090810190601f1680156102d45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610308600480360360208110156102f857600080fd5b50356001600160a01b0316610cba565b604080519115158252519081900360200190f35b610308610cce565b610156610cd7565b610156610ce7565b610198610cf6565b610198610d97565b610156610dfc565b610156610e0b565b610198610e1b565b6101c86004803603602081101561037257600080fd5b50356001600160a01b0316610f07565b610156610fa5565b610156610fb5565b610198600480360360208110156103a857600080fd5b50356001600160a01b0316610fc4565b610198600480360360408110156103ce57600080fd5b506001600160a01b038135169060200135611078565b610156611490565b6101c86004803603602081101561040257600080fd5b50356001600160a01b03166114a0565b6101986004803603608081101561042857600080fd5b506001600160a01b0381358116916020810135821691604082013581169160600135166114d3565b6101305461010090046001600160a01b03165b90565b61046e6117fd565b6001600160a01b031661047f610dfc565b6001600160a01b0316146104c3576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038116610507576040805162461bcd60e51b81526020600482015260066024820152650534f5f4e57360d41b604482015290519081900360640190fd5b6065546001600160a01b0382811691161415610553576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414f60d01b604482015290519081900360640190fd5b6066546001600160a01b038281169116141561059f576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414360d01b604482015290519081900360640190fd5b606680546001600160a01b0319166001600160a01b0392909216919091179055565b610133546001600160a01b031690565b6101305460ff1690565b6101365490565b6105ea6117fd565b6001600160a01b03166105fb610dfc565b6001600160a01b03161461063f576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b61064761180c565b565b61013454604080516380f57f1160e01b81526001600160a01b0385811660048301529151600093849316916380f57f11916024808301926020929190829003018186803b15801561069957600080fd5b505afa1580156106ad573d6000803e3d6000fd5b505050506040513d60208110156106c357600080fd5b5051610132546040805163bba85bcf60e01b81526001600160a01b038881166004830152915193945060009384938493169163bba85bcf916024808301926060929190829003018186803b15801561071a57600080fd5b505afa15801561072e573d6000803e3d6000fd5b505050506040513d606081101561074457600080fd5b5080516020820151604090920151610130549195509193509091506000906107989061078f9060ff16610789610779866118ac565b610783898b6118f8565b90611964565b906119c9565b6107838a6114a0565b610130549091506000906107bb906107b490869060ff166119c9565b8390611964565b905060006107c98a8a6119df565b610130549091506107f4906107e49060ff16610789846118ac565b6107ee8585611a6f565b906118f8565b9a9950505050505050505050565b61080a6117fd565b6001600160a01b031661081b610dfc565b6001600160a01b03161461085f576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b610871816001600160a01b0316611a85565b6108aa576040805162461bcd60e51b8152602060048201526005602482015264565f414e4360d81b604482015290519081900360640190fd5b61013580546001600160a01b0319166001600160a01b0392909216919091179055565b6108d5610cce565b1561091a576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b60026001541415610960576040805162461bcd60e51b815260206004820152601f602482015260008051602061277b833981519152604482015290519081900360640190fd5b60026001556101305482906001600160a01b0380831661010090920416146109b7576040805162461bcd60e51b81526020600482015260056024820152641597d3d4d560da1b604482015290519081900360640190fd5b60006109c16117fd565b90506109d681856109d1866118ac565b611a8b565b6000846001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610a2557600080fd5b505afa158015610a39573d6000803e3d6000fd5b505050506040513d6020811015610a4f57600080fd5b50519050610a5f85833087611aee565b83610ae382876001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610ab157600080fd5b505afa158015610ac5573d6000803e3d6000fd5b505050506040513d6020811015610adb57600080fd5b505190611b4e565b14610b1d576040805162461bcd60e51b8152602060048201526005602482015264565f49424160d81b604482015290519081900360640190fd5b61013154604080516385eacc7760e01b815290516000926001600160a01b0316916385eacc77916004808301926020929190829003018186803b158015610b6357600080fd5b505afa158015610b77573d6000803e3d6000fd5b505050506040513d6020811015610b8d57600080fd5b5051604080516370a0823160e01b8152306004820152905191925082916001600160a01b038916916370a08231916024808301926020929190829003018186803b158015610bda57600080fd5b505afa158015610bee573d6000803e3d6000fd5b505050506040513d6020811015610c0457600080fd5b50511115610c44576040805162461bcd60e51b8152602060048201526008602482015267565f47545354424360c01b604482015290519081900360640190fd5b826001600160a01b0316866001600160a01b03167f8752a472e571a816aea92eec8dae9baf628e840f4929fbcc2d155e6233ff68a7876040518082815260200191505060405180910390a350506001805550505050565b6040805180820190915260058152640322e302e360dc1b602082015290565b60fd546001600160a01b0390811691161490565b60995460ff1690565b610132546001600160a01b031690565b6066546001600160a01b031690565b610cfe6117fd565b6001600160a01b0316610d0f610dfc565b6001600160a01b031614610d53576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6065546040516000916001600160a01b031690600080516020612831833981519152908390a3606580546001600160a01b0319908116909155606680549091169055565b610d9f6117fd565b6001600160a01b0316610db0610dfc565b6001600160a01b031614610df4576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b610647611bab565b6065546001600160a01b031690565b610131546001600160a01b031690565b6066546001600160a01b0316610e60576040805162461bcd60e51b81526020600482015260056024820152640534f5f43360dc1b604482015290519081900360640190fd5b610e686117fd565b6066546001600160a01b03908116911614610eb3576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4360d01b604482015290519081900360640190fd5b6066546065546040516001600160a01b03928316929091169060008051602061283183398151915290600090a360668054606580546001600160a01b03199081166001600160a01b03841617909155169055565b6000610f9f610f9a610f938461013160009054906101000a90046001600160a01b03166001600160a01b031663543ce73a6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f6257600080fd5b505afa158015610f76573d6000803e3d6000fd5b505050506040513d6020811015610f8c57600080fd5b5051610649565b6000611c2e565b611c3e565b92915050565b610135546001600160a01b031690565b60fd546001600160a01b031690565b610fcc6117fd565b6001600160a01b0316610fdd610dfc565b6001600160a01b031614611021576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b611033816001600160a01b0316611a85565b61106c576040805162461bcd60e51b8152602060048201526005602482015264565f414e4360d81b604482015290519081900360640190fd5b61107581611c95565b50565b611080610cce565b156110c5576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6002600154141561110b576040805162461bcd60e51b815260206004820152601f602482015260008051602061277b833981519152604482015290519081900360640190fd5b60026001556101305482906001600160a01b038083166101009092041614611162576040805162461bcd60e51b81526020600482015260056024820152641597d3d4d560da1b604482015290519081900360640190fd5b600061116c6117fd565b610135546040805163fbfbd16960e01b81526001600160a01b038085166004830152915193945091169163fbfbd1699160248082019260009290919082900301818387803b1580156111bd57600080fd5b505af11580156111d1573d6000803e3d6000fd5b5050610132546040805163fd6ceee560e01b81526001600160a01b03868116600483015291516000955091909216925063fd6ceee59160248082019260209290919082900301818787803b15801561122857600080fd5b505af115801561123c573d6000803e3d6000fd5b505050506040513d602081101561125257600080fd5b50516101315460408051632a1e739d60e11b815290519293506000926112a69286926001600160a01b039091169163543ce73a91600480820192602092909190829003018186803b158015610f6257600080fd5b90506112b1856118ac565b610130546112c7906107b490859060ff166119c9565b1215611303576040805162461bcd60e51b8152602060048201526006602482015265565f4e45464360d01b604482015290519081900360640190fd5b6000866001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561135257600080fd5b505afa158015611366573d6000803e3d6000fd5b505050506040513d602081101561137c57600080fd5b50519050858110156113fd57610133546040805163317afabb60e21b815283890360048201819052915191926001600160a01b03169163c5ebeaec9160248082019260009290919082900301818387803b1580156113d957600080fd5b505af11580156113ed573d6000803e3d6000fd5b5050610136805490930190925550505b6101305461142d90859089906109d1906114289061141f90899060ff166119c9565b6107ee8c6118ac565b611ce9565b611438878588611d1e565b836001600160a01b0316876001600160a01b03167fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb886040518082815260200191505060405180910390a35050600180555050505050565b610134546001600160a01b031690565b6001600160a01b039081166000908152610137602090815260408083206101305461010090049094168352929052205490565b600054610100900460ff16806114ec57506114ec611d75565b806114fa575060005460ff16155b6115355760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e2602e913960400191505060405180910390fd5b600054610100900460ff16158015611560576000805460ff1961ff0019909116610100171660011790555b6000856001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b15801561159b57600080fd5b505afa1580156115af573d6000803e3d6000fd5b505050506040513d60208110156115c557600080fd5b50516040805163313ce56760e01b815290519192506000916001600160a01b0384169163313ce567916004808301926020929190829003018186803b15801561160d57600080fd5b505afa158015611621573d6000803e3d6000fd5b505050506040513d602081101561163757600080fd5b50519050601260ff8216111561167d576040805162461bcd60e51b81526020600482015260066024820152651597d254d51160d21b604482015290519081900360640190fd5b61168f866001600160a01b0316611a85565b6116ca576040805162461bcd60e51b8152602060048201526007602482015266565f4348434e4360c81b604482015290519081900360640190fd5b6116dc856001600160a01b0316611a85565b611716576040805162461bcd60e51b8152602060048201526006602482015265565f41424e4360d01b604482015290519081900360640190fd5b611728846001600160a01b0316611a85565b611761576040805162461bcd60e51b8152602060048201526005602482015264565f454e4360d81b604482015290519081900360640190fd5b611769611d86565b611771611e2f565b610130805460ff191660ff9290921691909117610100600160a81b0319166101006001600160a01b039384160217905561013380546001600160a01b0319908116888416179091556101318054821687841617905561013280548216868416179055610134805490911691841691909117905580156117f6576000805461ff00191690555b5050505050565b6000611807611ecc565b905090565b611814610cce565b61185c576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6099805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61188f6117fd565b604080516001600160a01b039092168252519081900360200190a1565b60006001600160ff1b038211156118f45760405162461bcd60e51b81526004018080602001828103825260288152602001806128516028913960400191505060405180910390fd5b5090565b600081830381831280159061190d5750838113155b80611922575060008312801561192257508381135b61195d5760405162461bcd60e51b81526004018080602001828103825260248152602001806128796024913960400191505060405180910390fd5b9392505050565b60008282018183128015906119795750838112155b8061198e575060008312801561198e57508381125b61195d5760405162461bcd60e51b815260040180806020018281038252602181526020018061279b6021913960400191505060405180910390fd5b600061195d8360ff601285900316600a0a611efc565b610132546040805163293a507760e01b81526001600160a01b03858116600483015291516000938493169163293a5077916024808301926020929190829003018186803b158015611a2f57600080fd5b505afa158015611a43573d6000803e3d6000fd5b505050506040513d6020811015611a5957600080fd5b50519050611a678184611fb4565b949350505050565b6000818312611a7e578161195d565b5090919050565b3b151590565b6001600160a01b0380841660009081526101376020908152604080832093861683529290522054611abc9082611964565b6001600160a01b0393841660009081526101376020908152604080832095909616825293909352929091209190915550565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611b48908590611fc9565b50505050565b600082821115611ba5576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b611bb3610cce565b15611bf8576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6099805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861188f6117fd565b600081831215611a7e578161195d565b6000808212156118f4576040805162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f736974697665604482015290519081900360640190fd5b60fd80546001600160a01b0383166001600160a01b0319909116811790915560408051918252517fa4388ecc389b1390354ae0c65a856c0d7dd4fb648419f5d3ac0b99e38f46fd119181900360200190a150565b6000600160ff1b8213611d175760405162461bcd60e51b8152600401611d0e90612744565b60405180910390fd5b5060000390565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611d70908490611fc9565b505050565b6000611d8030611a85565b15905090565b600054610100900460ff1680611d9f5750611d9f611d75565b80611dad575060005460ff16155b611de85760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e2602e913960400191505060405180910390fd5b600054610100900460ff16158015611e13576000805460ff1961ff0019909116610100171660011790555b611e1b61207a565b8015611075576000805461ff001916905550565b600054610100900460ff1680611e485750611e48611d75565b80611e56575060005460ff16155b611e915760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e2602e913960400191505060405180910390fd5b600054610100900460ff16158015611ebc576000805460ff1961ff0019909116610100171660011790555b611ec461211f565b611e1b61220e565b600060143610801590611ee35750611ee333610cba565b15611ef7575060131936013560601c610463565b503390565b600081611f50576040805162461bcd60e51b815260206004820181905260248201527f5369676e6564536166654d6174683a206469766973696f6e206279207a65726f604482015290519081900360640190fd5b81600019148015611f645750600160ff1b83145b15611fa05760405162461bcd60e51b81526004018080602001828103825260218152602001806128106021913960400191505060405180910390fd5b6000828481611fab57fe5b05949350505050565b600061195d838362ffffff16620f42406122ab565b600061201e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661235a9092919063ffffffff16565b805190915015611d705780806020019051602081101561203d57600080fd5b5051611d705760405162461bcd60e51b815260040180806020018281038252602a81526020018061289d602a913960400191505060405180910390fd5b600054610100900460ff16806120935750612093611d75565b806120a1575060005460ff16155b6120dc5760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e2602e913960400191505060405180910390fd5b600054610100900460ff16158015612107576000805460ff1961ff0019909116610100171660011790555b600180558015611075576000805461ff001916905550565b600054610100900460ff16806121385750612138611d75565b80612146575060005460ff16155b6121815760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e2602e913960400191505060405180910390fd5b600054610100900460ff161580156121ac576000805460ff1961ff0019909116610100171660011790555b6121b4612369565b60006121be6117fd565b606580546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020612831833981519152908290a3508015611075576000805461ff001916905550565b600054610100900460ff16806122275750612227611d75565b80612235575060005460ff16155b6122705760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e2602e913960400191505060405180910390fd5b600054610100900460ff1615801561229b576000805460ff1961ff0019909116610100171660011790555b6122a36123fa565b611e1b61249a565b60008080600019858709868602925082811090839003039050806122e157600084116122d657600080fd5b50829004905061195d565b8084116122ed57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b6060611a678484600085612545565b600054610100900460ff16806123825750612382611d75565b80612390575060005460ff16155b6123cb5760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e2602e913960400191505060405180910390fd5b600054610100900460ff161580156123f6576000805460ff1961ff0019909116610100171660011790555b611e1b5b600054610100900460ff16806124135750612413611d75565b80612421575060005460ff16155b61245c5760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e2602e913960400191505060405180910390fd5b600054610100900460ff16158015611e1b576000805460ff1961ff0019909116610100171660011790558015611075576000805461ff001916905550565b600054610100900460ff16806124b357506124b3611d75565b806124c1575060005460ff16155b6124fc5760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e2602e913960400191505060405180910390fd5b600054610100900460ff16158015612527576000805460ff1961ff0019909116610100171660011790555b6099805460ff191690558015611075576000805461ff001916905550565b6060824710156125865760405162461bcd60e51b81526004018080602001828103825260268152602001806127bc6026913960400191505060405180910390fd5b61258f85611a85565b6125e0576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b6020831061261e5780518252601f1990920191602091820191016125ff565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612680576040519150601f19603f3d011682016040523d82523d6000602084013e612685565b606091505b50915091506126958282866126a0565b979650505050505050565b606083156126af57508161195d565b8251156126bf5782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156127095781810151838201526020016126f1565b50505050905090810190601f1680156127365780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6020808252601c908201527b506572704d6174683a20696e76657273696f6e206f766572666c6f7760201b60408201526060019056fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c005369676e6564536166654d6174683a206164646974696f6e206f766572666c6f77416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65645369676e6564536166654d6174683a206469766973696f6e206f766572666c6f778be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e053616665436173743a2076616c756520646f65736e27742066697420696e20616e20696e743235365369676e6564536166654d6174683a207375627472616374696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220951959ac6b4d6446714f822e0f832144fdfc99b9a9d632412e44cae62ec474bf64736f6c63430007060033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101495760003560e01c806312803c7d1461014e57806313af403514610172578063158626f71461019a578063313ce567146101a257806334ce998a146101c05780633f4ba83a146101da5780633ffd1303146101e2578063449323d81461021357806347e7ef2414610239578063486ff0cd14610265578063572b6c05146102e25780635c975abb1461031c5780636896fabf146103245780636c8381f81461032c578063715018a6146103345780638456cb591461033c5780638da5cb5b14610344578063aa2a82941461034c578063bc5920ba14610354578063c39994441461035c578063c575ff7914610382578063ce1b815f1461038a578063da74222814610392578063f3fef3a3146103b8578063f807cd22146103e4578063f8b2cb4f146103ec578063f8c8765e14610412575b600080fd5b610156610450565b604080516001600160a01b039092168252519081900360200190f35b6101986004803603602081101561018857600080fd5b50356001600160a01b0316610466565b005b6101566105c1565b6101aa6105d1565b6040805160ff9092168252519081900360200190f35b6101c86105db565b60408051918252519081900360200190f35b6101986105e2565b6101c8600480360360408110156101f857600080fd5b5080356001600160a01b0316906020013562ffffff16610649565b6101986004803603602081101561022957600080fd5b50356001600160a01b0316610802565b6101986004803603604081101561024f57600080fd5b506001600160a01b0381351690602001356108cd565b61026d610c9b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102a757818101518382015260200161028f565b50505050905090810190601f1680156102d45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610308600480360360208110156102f857600080fd5b50356001600160a01b0316610cba565b604080519115158252519081900360200190f35b610308610cce565b610156610cd7565b610156610ce7565b610198610cf6565b610198610d97565b610156610dfc565b610156610e0b565b610198610e1b565b6101c86004803603602081101561037257600080fd5b50356001600160a01b0316610f07565b610156610fa5565b610156610fb5565b610198600480360360208110156103a857600080fd5b50356001600160a01b0316610fc4565b610198600480360360408110156103ce57600080fd5b506001600160a01b038135169060200135611078565b610156611490565b6101c86004803603602081101561040257600080fd5b50356001600160a01b03166114a0565b6101986004803603608081101561042857600080fd5b506001600160a01b0381358116916020810135821691604082013581169160600135166114d3565b6101305461010090046001600160a01b03165b90565b61046e6117fd565b6001600160a01b031661047f610dfc565b6001600160a01b0316146104c3576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038116610507576040805162461bcd60e51b81526020600482015260066024820152650534f5f4e57360d41b604482015290519081900360640190fd5b6065546001600160a01b0382811691161415610553576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414f60d01b604482015290519081900360640190fd5b6066546001600160a01b038281169116141561059f576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414360d01b604482015290519081900360640190fd5b606680546001600160a01b0319166001600160a01b0392909216919091179055565b610133546001600160a01b031690565b6101305460ff1690565b6101365490565b6105ea6117fd565b6001600160a01b03166105fb610dfc565b6001600160a01b03161461063f576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b61064761180c565b565b61013454604080516380f57f1160e01b81526001600160a01b0385811660048301529151600093849316916380f57f11916024808301926020929190829003018186803b15801561069957600080fd5b505afa1580156106ad573d6000803e3d6000fd5b505050506040513d60208110156106c357600080fd5b5051610132546040805163bba85bcf60e01b81526001600160a01b038881166004830152915193945060009384938493169163bba85bcf916024808301926060929190829003018186803b15801561071a57600080fd5b505afa15801561072e573d6000803e3d6000fd5b505050506040513d606081101561074457600080fd5b5080516020820151604090920151610130549195509193509091506000906107989061078f9060ff16610789610779866118ac565b610783898b6118f8565b90611964565b906119c9565b6107838a6114a0565b610130549091506000906107bb906107b490869060ff166119c9565b8390611964565b905060006107c98a8a6119df565b610130549091506107f4906107e49060ff16610789846118ac565b6107ee8585611a6f565b906118f8565b9a9950505050505050505050565b61080a6117fd565b6001600160a01b031661081b610dfc565b6001600160a01b03161461085f576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b610871816001600160a01b0316611a85565b6108aa576040805162461bcd60e51b8152602060048201526005602482015264565f414e4360d81b604482015290519081900360640190fd5b61013580546001600160a01b0319166001600160a01b0392909216919091179055565b6108d5610cce565b1561091a576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b60026001541415610960576040805162461bcd60e51b815260206004820152601f602482015260008051602061277b833981519152604482015290519081900360640190fd5b60026001556101305482906001600160a01b0380831661010090920416146109b7576040805162461bcd60e51b81526020600482015260056024820152641597d3d4d560da1b604482015290519081900360640190fd5b60006109c16117fd565b90506109d681856109d1866118ac565b611a8b565b6000846001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610a2557600080fd5b505afa158015610a39573d6000803e3d6000fd5b505050506040513d6020811015610a4f57600080fd5b50519050610a5f85833087611aee565b83610ae382876001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610ab157600080fd5b505afa158015610ac5573d6000803e3d6000fd5b505050506040513d6020811015610adb57600080fd5b505190611b4e565b14610b1d576040805162461bcd60e51b8152602060048201526005602482015264565f49424160d81b604482015290519081900360640190fd5b61013154604080516385eacc7760e01b815290516000926001600160a01b0316916385eacc77916004808301926020929190829003018186803b158015610b6357600080fd5b505afa158015610b77573d6000803e3d6000fd5b505050506040513d6020811015610b8d57600080fd5b5051604080516370a0823160e01b8152306004820152905191925082916001600160a01b038916916370a08231916024808301926020929190829003018186803b158015610bda57600080fd5b505afa158015610bee573d6000803e3d6000fd5b505050506040513d6020811015610c0457600080fd5b50511115610c44576040805162461bcd60e51b8152602060048201526008602482015267565f47545354424360c01b604482015290519081900360640190fd5b826001600160a01b0316866001600160a01b03167f8752a472e571a816aea92eec8dae9baf628e840f4929fbcc2d155e6233ff68a7876040518082815260200191505060405180910390a350506001805550505050565b6040805180820190915260058152640322e302e360dc1b602082015290565b60fd546001600160a01b0390811691161490565b60995460ff1690565b610132546001600160a01b031690565b6066546001600160a01b031690565b610cfe6117fd565b6001600160a01b0316610d0f610dfc565b6001600160a01b031614610d53576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6065546040516000916001600160a01b031690600080516020612831833981519152908390a3606580546001600160a01b0319908116909155606680549091169055565b610d9f6117fd565b6001600160a01b0316610db0610dfc565b6001600160a01b031614610df4576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b610647611bab565b6065546001600160a01b031690565b610131546001600160a01b031690565b6066546001600160a01b0316610e60576040805162461bcd60e51b81526020600482015260056024820152640534f5f43360dc1b604482015290519081900360640190fd5b610e686117fd565b6066546001600160a01b03908116911614610eb3576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4360d01b604482015290519081900360640190fd5b6066546065546040516001600160a01b03928316929091169060008051602061283183398151915290600090a360668054606580546001600160a01b03199081166001600160a01b03841617909155169055565b6000610f9f610f9a610f938461013160009054906101000a90046001600160a01b03166001600160a01b031663543ce73a6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f6257600080fd5b505afa158015610f76573d6000803e3d6000fd5b505050506040513d6020811015610f8c57600080fd5b5051610649565b6000611c2e565b611c3e565b92915050565b610135546001600160a01b031690565b60fd546001600160a01b031690565b610fcc6117fd565b6001600160a01b0316610fdd610dfc565b6001600160a01b031614611021576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b611033816001600160a01b0316611a85565b61106c576040805162461bcd60e51b8152602060048201526005602482015264565f414e4360d81b604482015290519081900360640190fd5b61107581611c95565b50565b611080610cce565b156110c5576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6002600154141561110b576040805162461bcd60e51b815260206004820152601f602482015260008051602061277b833981519152604482015290519081900360640190fd5b60026001556101305482906001600160a01b038083166101009092041614611162576040805162461bcd60e51b81526020600482015260056024820152641597d3d4d560da1b604482015290519081900360640190fd5b600061116c6117fd565b610135546040805163fbfbd16960e01b81526001600160a01b038085166004830152915193945091169163fbfbd1699160248082019260009290919082900301818387803b1580156111bd57600080fd5b505af11580156111d1573d6000803e3d6000fd5b5050610132546040805163fd6ceee560e01b81526001600160a01b03868116600483015291516000955091909216925063fd6ceee59160248082019260209290919082900301818787803b15801561122857600080fd5b505af115801561123c573d6000803e3d6000fd5b505050506040513d602081101561125257600080fd5b50516101315460408051632a1e739d60e11b815290519293506000926112a69286926001600160a01b039091169163543ce73a91600480820192602092909190829003018186803b158015610f6257600080fd5b90506112b1856118ac565b610130546112c7906107b490859060ff166119c9565b1215611303576040805162461bcd60e51b8152602060048201526006602482015265565f4e45464360d01b604482015290519081900360640190fd5b6000866001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561135257600080fd5b505afa158015611366573d6000803e3d6000fd5b505050506040513d602081101561137c57600080fd5b50519050858110156113fd57610133546040805163317afabb60e21b815283890360048201819052915191926001600160a01b03169163c5ebeaec9160248082019260009290919082900301818387803b1580156113d957600080fd5b505af11580156113ed573d6000803e3d6000fd5b5050610136805490930190925550505b6101305461142d90859089906109d1906114289061141f90899060ff166119c9565b6107ee8c6118ac565b611ce9565b611438878588611d1e565b836001600160a01b0316876001600160a01b03167fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb886040518082815260200191505060405180910390a35050600180555050505050565b610134546001600160a01b031690565b6001600160a01b039081166000908152610137602090815260408083206101305461010090049094168352929052205490565b600054610100900460ff16806114ec57506114ec611d75565b806114fa575060005460ff16155b6115355760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e2602e913960400191505060405180910390fd5b600054610100900460ff16158015611560576000805460ff1961ff0019909116610100171660011790555b6000856001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b15801561159b57600080fd5b505afa1580156115af573d6000803e3d6000fd5b505050506040513d60208110156115c557600080fd5b50516040805163313ce56760e01b815290519192506000916001600160a01b0384169163313ce567916004808301926020929190829003018186803b15801561160d57600080fd5b505afa158015611621573d6000803e3d6000fd5b505050506040513d602081101561163757600080fd5b50519050601260ff8216111561167d576040805162461bcd60e51b81526020600482015260066024820152651597d254d51160d21b604482015290519081900360640190fd5b61168f866001600160a01b0316611a85565b6116ca576040805162461bcd60e51b8152602060048201526007602482015266565f4348434e4360c81b604482015290519081900360640190fd5b6116dc856001600160a01b0316611a85565b611716576040805162461bcd60e51b8152602060048201526006602482015265565f41424e4360d01b604482015290519081900360640190fd5b611728846001600160a01b0316611a85565b611761576040805162461bcd60e51b8152602060048201526005602482015264565f454e4360d81b604482015290519081900360640190fd5b611769611d86565b611771611e2f565b610130805460ff191660ff9290921691909117610100600160a81b0319166101006001600160a01b039384160217905561013380546001600160a01b0319908116888416179091556101318054821687841617905561013280548216868416179055610134805490911691841691909117905580156117f6576000805461ff00191690555b5050505050565b6000611807611ecc565b905090565b611814610cce565b61185c576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6099805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61188f6117fd565b604080516001600160a01b039092168252519081900360200190a1565b60006001600160ff1b038211156118f45760405162461bcd60e51b81526004018080602001828103825260288152602001806128516028913960400191505060405180910390fd5b5090565b600081830381831280159061190d5750838113155b80611922575060008312801561192257508381135b61195d5760405162461bcd60e51b81526004018080602001828103825260248152602001806128796024913960400191505060405180910390fd5b9392505050565b60008282018183128015906119795750838112155b8061198e575060008312801561198e57508381125b61195d5760405162461bcd60e51b815260040180806020018281038252602181526020018061279b6021913960400191505060405180910390fd5b600061195d8360ff601285900316600a0a611efc565b610132546040805163293a507760e01b81526001600160a01b03858116600483015291516000938493169163293a5077916024808301926020929190829003018186803b158015611a2f57600080fd5b505afa158015611a43573d6000803e3d6000fd5b505050506040513d6020811015611a5957600080fd5b50519050611a678184611fb4565b949350505050565b6000818312611a7e578161195d565b5090919050565b3b151590565b6001600160a01b0380841660009081526101376020908152604080832093861683529290522054611abc9082611964565b6001600160a01b0393841660009081526101376020908152604080832095909616825293909352929091209190915550565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611b48908590611fc9565b50505050565b600082821115611ba5576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b611bb3610cce565b15611bf8576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6099805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861188f6117fd565b600081831215611a7e578161195d565b6000808212156118f4576040805162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f736974697665604482015290519081900360640190fd5b60fd80546001600160a01b0383166001600160a01b0319909116811790915560408051918252517fa4388ecc389b1390354ae0c65a856c0d7dd4fb648419f5d3ac0b99e38f46fd119181900360200190a150565b6000600160ff1b8213611d175760405162461bcd60e51b8152600401611d0e90612744565b60405180910390fd5b5060000390565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611d70908490611fc9565b505050565b6000611d8030611a85565b15905090565b600054610100900460ff1680611d9f5750611d9f611d75565b80611dad575060005460ff16155b611de85760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e2602e913960400191505060405180910390fd5b600054610100900460ff16158015611e13576000805460ff1961ff0019909116610100171660011790555b611e1b61207a565b8015611075576000805461ff001916905550565b600054610100900460ff1680611e485750611e48611d75565b80611e56575060005460ff16155b611e915760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e2602e913960400191505060405180910390fd5b600054610100900460ff16158015611ebc576000805460ff1961ff0019909116610100171660011790555b611ec461211f565b611e1b61220e565b600060143610801590611ee35750611ee333610cba565b15611ef7575060131936013560601c610463565b503390565b600081611f50576040805162461bcd60e51b815260206004820181905260248201527f5369676e6564536166654d6174683a206469766973696f6e206279207a65726f604482015290519081900360640190fd5b81600019148015611f645750600160ff1b83145b15611fa05760405162461bcd60e51b81526004018080602001828103825260218152602001806128106021913960400191505060405180910390fd5b6000828481611fab57fe5b05949350505050565b600061195d838362ffffff16620f42406122ab565b600061201e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661235a9092919063ffffffff16565b805190915015611d705780806020019051602081101561203d57600080fd5b5051611d705760405162461bcd60e51b815260040180806020018281038252602a81526020018061289d602a913960400191505060405180910390fd5b600054610100900460ff16806120935750612093611d75565b806120a1575060005460ff16155b6120dc5760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e2602e913960400191505060405180910390fd5b600054610100900460ff16158015612107576000805460ff1961ff0019909116610100171660011790555b600180558015611075576000805461ff001916905550565b600054610100900460ff16806121385750612138611d75565b80612146575060005460ff16155b6121815760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e2602e913960400191505060405180910390fd5b600054610100900460ff161580156121ac576000805460ff1961ff0019909116610100171660011790555b6121b4612369565b60006121be6117fd565b606580546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020612831833981519152908290a3508015611075576000805461ff001916905550565b600054610100900460ff16806122275750612227611d75565b80612235575060005460ff16155b6122705760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e2602e913960400191505060405180910390fd5b600054610100900460ff1615801561229b576000805460ff1961ff0019909116610100171660011790555b6122a36123fa565b611e1b61249a565b60008080600019858709868602925082811090839003039050806122e157600084116122d657600080fd5b50829004905061195d565b8084116122ed57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b6060611a678484600085612545565b600054610100900460ff16806123825750612382611d75565b80612390575060005460ff16155b6123cb5760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e2602e913960400191505060405180910390fd5b600054610100900460ff161580156123f6576000805460ff1961ff0019909116610100171660011790555b611e1b5b600054610100900460ff16806124135750612413611d75565b80612421575060005460ff16155b61245c5760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e2602e913960400191505060405180910390fd5b600054610100900460ff16158015611e1b576000805460ff1961ff0019909116610100171660011790558015611075576000805461ff001916905550565b600054610100900460ff16806124b357506124b3611d75565b806124c1575060005460ff16155b6124fc5760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e2602e913960400191505060405180910390fd5b600054610100900460ff16158015612527576000805460ff1961ff0019909116610100171660011790555b6099805460ff191690558015611075576000805461ff001916905550565b6060824710156125865760405162461bcd60e51b81526004018080602001828103825260268152602001806127bc6026913960400191505060405180910390fd5b61258f85611a85565b6125e0576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b6020831061261e5780518252601f1990920191602091820191016125ff565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612680576040519150601f19603f3d011682016040523d82523d6000602084013e612685565b606091505b50915091506126958282866126a0565b979650505050505050565b606083156126af57508161195d565b8251156126bf5782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156127095781810151838201526020016126f1565b50505050905090810190601f1680156127365780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6020808252601c908201527b506572704d6174683a20696e76657273696f6e206f766572666c6f7760201b60408201526060019056fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c005369676e6564536166654d6174683a206164646974696f6e206f766572666c6f77416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65645369676e6564536166654d6174683a206469766973696f6e206f766572666c6f778be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e053616665436173743a2076616c756520646f65736e27742066697420696e20616e20696e743235365369676e6564536166654d6174683a207375627472616374696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220951959ac6b4d6446714f822e0f832144fdfc99b9a9d632412e44cae62ec474bf64736f6c63430007060033",
"bytecode": "0x608060405234801561001057600080fd5b506128fe806100206000396000f3fe608060405234801561001057600080fd5b50600436106101495760003560e01c806312803c7d1461014e57806313af403514610172578063158626f71461019a578063313ce567146101a257806334ce998a146101c05780633f4ba83a146101da5780633ffd1303146101e2578063449323d81461021357806347e7ef2414610239578063486ff0cd14610265578063572b6c05146102e25780635c975abb1461031c5780636896fabf146103245780636c8381f81461032c578063715018a6146103345780638456cb591461033c5780638da5cb5b14610344578063aa2a82941461034c578063bc5920ba14610354578063c39994441461035c578063c575ff7914610382578063ce1b815f1461038a578063da74222814610392578063f3fef3a3146103b8578063f807cd22146103e4578063f8b2cb4f146103ec578063f8c8765e14610412575b600080fd5b610156610450565b604080516001600160a01b039092168252519081900360200190f35b6101986004803603602081101561018857600080fd5b50356001600160a01b0316610466565b005b6101566105c1565b6101aa6105d1565b6040805160ff9092168252519081900360200190f35b6101c86105db565b60408051918252519081900360200190f35b6101986105e2565b6101c8600480360360408110156101f857600080fd5b5080356001600160a01b0316906020013562ffffff16610649565b6101986004803603602081101561022957600080fd5b50356001600160a01b0316610802565b6101986004803603604081101561024f57600080fd5b506001600160a01b0381351690602001356108ce565b61026d610c9c565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102a757818101518382015260200161028f565b50505050905090810190601f1680156102d45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610308600480360360208110156102f857600080fd5b50356001600160a01b0316610cbb565b604080519115158252519081900360200190f35b610308610ccf565b610156610cd8565b610156610ce8565b610198610cf7565b610198610d98565b610156610dfd565b610156610e0c565b610198610e1c565b6101c86004803603602081101561037257600080fd5b50356001600160a01b0316610f08565b610156610fa6565b610156610fb6565b610198600480360360208110156103a857600080fd5b50356001600160a01b0316610fc5565b610198600480360360408110156103ce57600080fd5b506001600160a01b03813516906020013561107a565b610156611492565b6101c86004803603602081101561040257600080fd5b50356001600160a01b03166114a2565b6101986004803603608081101561042857600080fd5b506001600160a01b0381358116916020810135821691604082013581169160600135166114d5565b6101305461010090046001600160a01b03165b90565b61046e6117ff565b6001600160a01b031661047f610dfd565b6001600160a01b0316146104c3576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038116610507576040805162461bcd60e51b81526020600482015260066024820152650534f5f4e57360d41b604482015290519081900360640190fd5b6065546001600160a01b0382811691161415610553576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414f60d01b604482015290519081900360640190fd5b6066546001600160a01b038281169116141561059f576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414360d01b604482015290519081900360640190fd5b606680546001600160a01b0319166001600160a01b0392909216919091179055565b610133546001600160a01b031690565b6101305460ff1690565b6101365490565b6105ea6117ff565b6001600160a01b03166105fb610dfd565b6001600160a01b03161461063f576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b61064761180e565b565b61013454604080516380f57f1160e01b81526001600160a01b0385811660048301529151600093849316916380f57f11916024808301926020929190829003018186803b15801561069957600080fd5b505afa1580156106ad573d6000803e3d6000fd5b505050506040513d60208110156106c357600080fd5b5051610132546040805163bba85bcf60e01b81526001600160a01b038881166004830152915193945060009384938493169163bba85bcf916024808301926060929190829003018186803b15801561071a57600080fd5b505afa15801561072e573d6000803e3d6000fd5b505050506040513d606081101561074457600080fd5b5080516020820151604090920151610130549195509193509091506000906107989061078f9060ff16610789610779866118ae565b610783898b6118fa565b90611966565b906119cb565b6107838a6114a2565b610130549091506000906107bb906107b490869060ff166119cb565b8390611966565b905060006107c98a8a6119e1565b610130549091506107f4906107e49060ff16610789846118ae565b6107ee8585611a71565b906118fa565b9a9950505050505050505050565b61080a6117ff565b6001600160a01b031661081b610dfd565b6001600160a01b03161461085f576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b610871816001600160a01b0316611a87565b6108ab576040805162461bcd60e51b8152602060048201526006602482015265565f43484e4360d01b604482015290519081900360640190fd5b61013580546001600160a01b0319166001600160a01b0392909216919091179055565b6108d6610ccf565b1561091b576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b60026001541415610961576040805162461bcd60e51b815260206004820152601f602482015260008051602061277d833981519152604482015290519081900360640190fd5b60026001556101305482906001600160a01b0380831661010090920416146109b8576040805162461bcd60e51b81526020600482015260056024820152641597d3d4d560da1b604482015290519081900360640190fd5b60006109c26117ff565b90506109d781856109d2866118ae565b611a8d565b6000846001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610a2657600080fd5b505afa158015610a3a573d6000803e3d6000fd5b505050506040513d6020811015610a5057600080fd5b50519050610a6085833087611af0565b83610ae482876001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610ab257600080fd5b505afa158015610ac6573d6000803e3d6000fd5b505050506040513d6020811015610adc57600080fd5b505190611b50565b14610b1e576040805162461bcd60e51b8152602060048201526005602482015264565f49424160d81b604482015290519081900360640190fd5b61013154604080516385eacc7760e01b815290516000926001600160a01b0316916385eacc77916004808301926020929190829003018186803b158015610b6457600080fd5b505afa158015610b78573d6000803e3d6000fd5b505050506040513d6020811015610b8e57600080fd5b5051604080516370a0823160e01b8152306004820152905191925082916001600160a01b038916916370a08231916024808301926020929190829003018186803b158015610bdb57600080fd5b505afa158015610bef573d6000803e3d6000fd5b505050506040513d6020811015610c0557600080fd5b50511115610c45576040805162461bcd60e51b8152602060048201526008602482015267565f47545354424360c01b604482015290519081900360640190fd5b826001600160a01b0316866001600160a01b03167f8752a472e571a816aea92eec8dae9baf628e840f4929fbcc2d155e6233ff68a7876040518082815260200191505060405180910390a350506001805550505050565b6040805180820190915260058152640322e302e360dc1b602082015290565b60fd546001600160a01b0390811691161490565b60995460ff1690565b610132546001600160a01b031690565b6066546001600160a01b031690565b610cff6117ff565b6001600160a01b0316610d10610dfd565b6001600160a01b031614610d54576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6065546040516000916001600160a01b031690600080516020612833833981519152908390a3606580546001600160a01b0319908116909155606680549091169055565b610da06117ff565b6001600160a01b0316610db1610dfd565b6001600160a01b031614610df5576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b610647611bad565b6065546001600160a01b031690565b610131546001600160a01b031690565b6066546001600160a01b0316610e61576040805162461bcd60e51b81526020600482015260056024820152640534f5f43360dc1b604482015290519081900360640190fd5b610e696117ff565b6066546001600160a01b03908116911614610eb4576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4360d01b604482015290519081900360640190fd5b6066546065546040516001600160a01b03928316929091169060008051602061283383398151915290600090a360668054606580546001600160a01b03199081166001600160a01b03841617909155169055565b6000610fa0610f9b610f948461013160009054906101000a90046001600160a01b03166001600160a01b031663543ce73a6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f6357600080fd5b505afa158015610f77573d6000803e3d6000fd5b505050506040513d6020811015610f8d57600080fd5b5051610649565b6000611c30565b611c40565b92915050565b610135546001600160a01b031690565b60fd546001600160a01b031690565b610fcd6117ff565b6001600160a01b0316610fde610dfd565b6001600160a01b031614611022576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b611034816001600160a01b0316611a87565b61106e576040805162461bcd60e51b8152602060048201526006602482015265565f54464e4360d01b604482015290519081900360640190fd5b61107781611c97565b50565b611082610ccf565b156110c7576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6002600154141561110d576040805162461bcd60e51b815260206004820152601f602482015260008051602061277d833981519152604482015290519081900360640190fd5b60026001556101305482906001600160a01b038083166101009092041614611164576040805162461bcd60e51b81526020600482015260056024820152641597d3d4d560da1b604482015290519081900360640190fd5b600061116e6117ff565b61013554604080516375cdc89760e11b81526001600160a01b038085166004830152915193945091169163eb9b912e9160248082019260009290919082900301818387803b1580156111bf57600080fd5b505af11580156111d3573d6000803e3d6000fd5b5050610132546040805163fd6ceee560e01b81526001600160a01b03868116600483015291516000955091909216925063fd6ceee59160248082019260209290919082900301818787803b15801561122a57600080fd5b505af115801561123e573d6000803e3d6000fd5b505050506040513d602081101561125457600080fd5b50516101315460408051632a1e739d60e11b815290519293506000926112a89286926001600160a01b039091169163543ce73a91600480820192602092909190829003018186803b158015610f6357600080fd5b90506112b3856118ae565b610130546112c9906107b490859060ff166119cb565b1215611305576040805162461bcd60e51b8152602060048201526006602482015265565f4e45464360d01b604482015290519081900360640190fd5b6000866001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561135457600080fd5b505afa158015611368573d6000803e3d6000fd5b505050506040513d602081101561137e57600080fd5b50519050858110156113ff57610133546040805163317afabb60e21b815283890360048201819052915191926001600160a01b03169163c5ebeaec9160248082019260009290919082900301818387803b1580156113db57600080fd5b505af11580156113ef573d6000803e3d6000fd5b5050610136805490930190925550505b6101305461142f90859089906109d29061142a9061142190899060ff166119cb565b6107ee8c6118ae565b611ceb565b61143a878588611d20565b836001600160a01b0316876001600160a01b03167fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb886040518082815260200191505060405180910390a35050600180555050505050565b610134546001600160a01b031690565b6001600160a01b039081166000908152610137602090815260408083206101305461010090049094168352929052205490565b600054610100900460ff16806114ee57506114ee611d77565b806114fc575060005460ff16155b6115375760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e4602e913960400191505060405180910390fd5b600054610100900460ff16158015611562576000805460ff1961ff0019909116610100171660011790555b6000856001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b15801561159d57600080fd5b505afa1580156115b1573d6000803e3d6000fd5b505050506040513d60208110156115c757600080fd5b50516040805163313ce56760e01b815290519192506000916001600160a01b0384169163313ce567916004808301926020929190829003018186803b15801561160f57600080fd5b505afa158015611623573d6000803e3d6000fd5b505050506040513d602081101561163957600080fd5b50519050601260ff8216111561167f576040805162461bcd60e51b81526020600482015260066024820152651597d254d51160d21b604482015290519081900360640190fd5b611691866001600160a01b0316611a87565b6116cc576040805162461bcd60e51b8152602060048201526007602482015266565f4348434e4360c81b604482015290519081900360640190fd5b6116de856001600160a01b0316611a87565b611718576040805162461bcd60e51b8152602060048201526006602482015265565f41424e4360d01b604482015290519081900360640190fd5b61172a846001600160a01b0316611a87565b611763576040805162461bcd60e51b8152602060048201526005602482015264565f454e4360d81b604482015290519081900360640190fd5b61176b611d88565b611773611e31565b610130805460ff191660ff9290921691909117610100600160a81b0319166101006001600160a01b039384160217905561013380546001600160a01b0319908116888416179091556101318054821687841617905561013280548216868416179055610134805490911691841691909117905580156117f8576000805461ff00191690555b5050505050565b6000611809611ece565b905090565b611816610ccf565b61185e576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6099805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6118916117ff565b604080516001600160a01b039092168252519081900360200190a1565b60006001600160ff1b038211156118f65760405162461bcd60e51b81526004018080602001828103825260288152602001806128536028913960400191505060405180910390fd5b5090565b600081830381831280159061190f5750838113155b80611924575060008312801561192457508381135b61195f5760405162461bcd60e51b815260040180806020018281038252602481526020018061287b6024913960400191505060405180910390fd5b9392505050565b600082820181831280159061197b5750838112155b80611990575060008312801561199057508381125b61195f5760405162461bcd60e51b815260040180806020018281038252602181526020018061279d6021913960400191505060405180910390fd5b600061195f8360ff601285900316600a0a611efe565b610132546040805163293a507760e01b81526001600160a01b03858116600483015291516000938493169163293a5077916024808301926020929190829003018186803b158015611a3157600080fd5b505afa158015611a45573d6000803e3d6000fd5b505050506040513d6020811015611a5b57600080fd5b50519050611a698184611fb6565b949350505050565b6000818312611a80578161195f565b5090919050565b3b151590565b6001600160a01b0380841660009081526101376020908152604080832093861683529290522054611abe9082611966565b6001600160a01b0393841660009081526101376020908152604080832095909616825293909352929091209190915550565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611b4a908590611fcb565b50505050565b600082821115611ba7576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b611bb5610ccf565b15611bfa576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6099805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586118916117ff565b600081831215611a80578161195f565b6000808212156118f6576040805162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f736974697665604482015290519081900360640190fd5b60fd80546001600160a01b0383166001600160a01b0319909116811790915560408051918252517fa4388ecc389b1390354ae0c65a856c0d7dd4fb648419f5d3ac0b99e38f46fd119181900360200190a150565b6000600160ff1b8213611d195760405162461bcd60e51b8152600401611d1090612746565b60405180910390fd5b5060000390565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611d72908490611fcb565b505050565b6000611d8230611a87565b15905090565b600054610100900460ff1680611da15750611da1611d77565b80611daf575060005460ff16155b611dea5760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e4602e913960400191505060405180910390fd5b600054610100900460ff16158015611e15576000805460ff1961ff0019909116610100171660011790555b611e1d61207c565b8015611077576000805461ff001916905550565b600054610100900460ff1680611e4a5750611e4a611d77565b80611e58575060005460ff16155b611e935760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e4602e913960400191505060405180910390fd5b600054610100900460ff16158015611ebe576000805460ff1961ff0019909116610100171660011790555b611ec6612121565b611e1d612210565b600060143610801590611ee55750611ee533610cbb565b15611ef9575060131936013560601c610463565b503390565b600081611f52576040805162461bcd60e51b815260206004820181905260248201527f5369676e6564536166654d6174683a206469766973696f6e206279207a65726f604482015290519081900360640190fd5b81600019148015611f665750600160ff1b83145b15611fa25760405162461bcd60e51b81526004018080602001828103825260218152602001806128126021913960400191505060405180910390fd5b6000828481611fad57fe5b05949350505050565b600061195f838362ffffff16620f42406122ad565b6000612020826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661235c9092919063ffffffff16565b805190915015611d725780806020019051602081101561203f57600080fd5b5051611d725760405162461bcd60e51b815260040180806020018281038252602a81526020018061289f602a913960400191505060405180910390fd5b600054610100900460ff16806120955750612095611d77565b806120a3575060005460ff16155b6120de5760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e4602e913960400191505060405180910390fd5b600054610100900460ff16158015612109576000805460ff1961ff0019909116610100171660011790555b600180558015611077576000805461ff001916905550565b600054610100900460ff168061213a575061213a611d77565b80612148575060005460ff16155b6121835760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e4602e913960400191505060405180910390fd5b600054610100900460ff161580156121ae576000805460ff1961ff0019909116610100171660011790555b6121b661236b565b60006121c06117ff565b606580546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020612833833981519152908290a3508015611077576000805461ff001916905550565b600054610100900460ff16806122295750612229611d77565b80612237575060005460ff16155b6122725760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e4602e913960400191505060405180910390fd5b600054610100900460ff1615801561229d576000805460ff1961ff0019909116610100171660011790555b6122a56123fc565b611e1d61249c565b60008080600019858709868602925082811090839003039050806122e357600084116122d857600080fd5b50829004905061195f565b8084116122ef57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b6060611a698484600085612547565b600054610100900460ff16806123845750612384611d77565b80612392575060005460ff16155b6123cd5760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e4602e913960400191505060405180910390fd5b600054610100900460ff161580156123f8576000805460ff1961ff0019909116610100171660011790555b611e1d5b600054610100900460ff16806124155750612415611d77565b80612423575060005460ff16155b61245e5760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e4602e913960400191505060405180910390fd5b600054610100900460ff16158015611e1d576000805460ff1961ff0019909116610100171660011790558015611077576000805461ff001916905550565b600054610100900460ff16806124b557506124b5611d77565b806124c3575060005460ff16155b6124fe5760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e4602e913960400191505060405180910390fd5b600054610100900460ff16158015612529576000805460ff1961ff0019909116610100171660011790555b6099805460ff191690558015611077576000805461ff001916905550565b6060824710156125885760405162461bcd60e51b81526004018080602001828103825260268152602001806127be6026913960400191505060405180910390fd5b61259185611a87565b6125e2576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b602083106126205780518252601f199092019160209182019101612601565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612682576040519150601f19603f3d011682016040523d82523d6000602084013e612687565b606091505b50915091506126978282866126a2565b979650505050505050565b606083156126b157508161195f565b8251156126c15782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561270b5781810151838201526020016126f3565b50505050905090810190601f1680156127385780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6020808252601c908201527b506572704d6174683a20696e76657273696f6e206f766572666c6f7760201b60408201526060019056fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c005369676e6564536166654d6174683a206164646974696f6e206f766572666c6f77416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65645369676e6564536166654d6174683a206469766973696f6e206f766572666c6f778be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e053616665436173743a2076616c756520646f65736e27742066697420696e20616e20696e743235365369676e6564536166654d6174683a207375627472616374696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220ce83c8bf331aea886ebd4d4580fb742b8df7d49186e57f2855d9f4f331fbbc9064736f6c63430007060033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101495760003560e01c806312803c7d1461014e57806313af403514610172578063158626f71461019a578063313ce567146101a257806334ce998a146101c05780633f4ba83a146101da5780633ffd1303146101e2578063449323d81461021357806347e7ef2414610239578063486ff0cd14610265578063572b6c05146102e25780635c975abb1461031c5780636896fabf146103245780636c8381f81461032c578063715018a6146103345780638456cb591461033c5780638da5cb5b14610344578063aa2a82941461034c578063bc5920ba14610354578063c39994441461035c578063c575ff7914610382578063ce1b815f1461038a578063da74222814610392578063f3fef3a3146103b8578063f807cd22146103e4578063f8b2cb4f146103ec578063f8c8765e14610412575b600080fd5b610156610450565b604080516001600160a01b039092168252519081900360200190f35b6101986004803603602081101561018857600080fd5b50356001600160a01b0316610466565b005b6101566105c1565b6101aa6105d1565b6040805160ff9092168252519081900360200190f35b6101c86105db565b60408051918252519081900360200190f35b6101986105e2565b6101c8600480360360408110156101f857600080fd5b5080356001600160a01b0316906020013562ffffff16610649565b6101986004803603602081101561022957600080fd5b50356001600160a01b0316610802565b6101986004803603604081101561024f57600080fd5b506001600160a01b0381351690602001356108ce565b61026d610c9c565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102a757818101518382015260200161028f565b50505050905090810190601f1680156102d45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610308600480360360208110156102f857600080fd5b50356001600160a01b0316610cbb565b604080519115158252519081900360200190f35b610308610ccf565b610156610cd8565b610156610ce8565b610198610cf7565b610198610d98565b610156610dfd565b610156610e0c565b610198610e1c565b6101c86004803603602081101561037257600080fd5b50356001600160a01b0316610f08565b610156610fa6565b610156610fb6565b610198600480360360208110156103a857600080fd5b50356001600160a01b0316610fc5565b610198600480360360408110156103ce57600080fd5b506001600160a01b03813516906020013561107a565b610156611492565b6101c86004803603602081101561040257600080fd5b50356001600160a01b03166114a2565b6101986004803603608081101561042857600080fd5b506001600160a01b0381358116916020810135821691604082013581169160600135166114d5565b6101305461010090046001600160a01b03165b90565b61046e6117ff565b6001600160a01b031661047f610dfd565b6001600160a01b0316146104c3576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038116610507576040805162461bcd60e51b81526020600482015260066024820152650534f5f4e57360d41b604482015290519081900360640190fd5b6065546001600160a01b0382811691161415610553576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414f60d01b604482015290519081900360640190fd5b6066546001600160a01b038281169116141561059f576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414360d01b604482015290519081900360640190fd5b606680546001600160a01b0319166001600160a01b0392909216919091179055565b610133546001600160a01b031690565b6101305460ff1690565b6101365490565b6105ea6117ff565b6001600160a01b03166105fb610dfd565b6001600160a01b03161461063f576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b61064761180e565b565b61013454604080516380f57f1160e01b81526001600160a01b0385811660048301529151600093849316916380f57f11916024808301926020929190829003018186803b15801561069957600080fd5b505afa1580156106ad573d6000803e3d6000fd5b505050506040513d60208110156106c357600080fd5b5051610132546040805163bba85bcf60e01b81526001600160a01b038881166004830152915193945060009384938493169163bba85bcf916024808301926060929190829003018186803b15801561071a57600080fd5b505afa15801561072e573d6000803e3d6000fd5b505050506040513d606081101561074457600080fd5b5080516020820151604090920151610130549195509193509091506000906107989061078f9060ff16610789610779866118ae565b610783898b6118fa565b90611966565b906119cb565b6107838a6114a2565b610130549091506000906107bb906107b490869060ff166119cb565b8390611966565b905060006107c98a8a6119e1565b610130549091506107f4906107e49060ff16610789846118ae565b6107ee8585611a71565b906118fa565b9a9950505050505050505050565b61080a6117ff565b6001600160a01b031661081b610dfd565b6001600160a01b03161461085f576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b610871816001600160a01b0316611a87565b6108ab576040805162461bcd60e51b8152602060048201526006602482015265565f43484e4360d01b604482015290519081900360640190fd5b61013580546001600160a01b0319166001600160a01b0392909216919091179055565b6108d6610ccf565b1561091b576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b60026001541415610961576040805162461bcd60e51b815260206004820152601f602482015260008051602061277d833981519152604482015290519081900360640190fd5b60026001556101305482906001600160a01b0380831661010090920416146109b8576040805162461bcd60e51b81526020600482015260056024820152641597d3d4d560da1b604482015290519081900360640190fd5b60006109c26117ff565b90506109d781856109d2866118ae565b611a8d565b6000846001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610a2657600080fd5b505afa158015610a3a573d6000803e3d6000fd5b505050506040513d6020811015610a5057600080fd5b50519050610a6085833087611af0565b83610ae482876001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610ab257600080fd5b505afa158015610ac6573d6000803e3d6000fd5b505050506040513d6020811015610adc57600080fd5b505190611b50565b14610b1e576040805162461bcd60e51b8152602060048201526005602482015264565f49424160d81b604482015290519081900360640190fd5b61013154604080516385eacc7760e01b815290516000926001600160a01b0316916385eacc77916004808301926020929190829003018186803b158015610b6457600080fd5b505afa158015610b78573d6000803e3d6000fd5b505050506040513d6020811015610b8e57600080fd5b5051604080516370a0823160e01b8152306004820152905191925082916001600160a01b038916916370a08231916024808301926020929190829003018186803b158015610bdb57600080fd5b505afa158015610bef573d6000803e3d6000fd5b505050506040513d6020811015610c0557600080fd5b50511115610c45576040805162461bcd60e51b8152602060048201526008602482015267565f47545354424360c01b604482015290519081900360640190fd5b826001600160a01b0316866001600160a01b03167f8752a472e571a816aea92eec8dae9baf628e840f4929fbcc2d155e6233ff68a7876040518082815260200191505060405180910390a350506001805550505050565b6040805180820190915260058152640322e302e360dc1b602082015290565b60fd546001600160a01b0390811691161490565b60995460ff1690565b610132546001600160a01b031690565b6066546001600160a01b031690565b610cff6117ff565b6001600160a01b0316610d10610dfd565b6001600160a01b031614610d54576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6065546040516000916001600160a01b031690600080516020612833833981519152908390a3606580546001600160a01b0319908116909155606680549091169055565b610da06117ff565b6001600160a01b0316610db1610dfd565b6001600160a01b031614610df5576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b610647611bad565b6065546001600160a01b031690565b610131546001600160a01b031690565b6066546001600160a01b0316610e61576040805162461bcd60e51b81526020600482015260056024820152640534f5f43360dc1b604482015290519081900360640190fd5b610e696117ff565b6066546001600160a01b03908116911614610eb4576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4360d01b604482015290519081900360640190fd5b6066546065546040516001600160a01b03928316929091169060008051602061283383398151915290600090a360668054606580546001600160a01b03199081166001600160a01b03841617909155169055565b6000610fa0610f9b610f948461013160009054906101000a90046001600160a01b03166001600160a01b031663543ce73a6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f6357600080fd5b505afa158015610f77573d6000803e3d6000fd5b505050506040513d6020811015610f8d57600080fd5b5051610649565b6000611c30565b611c40565b92915050565b610135546001600160a01b031690565b60fd546001600160a01b031690565b610fcd6117ff565b6001600160a01b0316610fde610dfd565b6001600160a01b031614611022576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b611034816001600160a01b0316611a87565b61106e576040805162461bcd60e51b8152602060048201526006602482015265565f54464e4360d01b604482015290519081900360640190fd5b61107781611c97565b50565b611082610ccf565b156110c7576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6002600154141561110d576040805162461bcd60e51b815260206004820152601f602482015260008051602061277d833981519152604482015290519081900360640190fd5b60026001556101305482906001600160a01b038083166101009092041614611164576040805162461bcd60e51b81526020600482015260056024820152641597d3d4d560da1b604482015290519081900360640190fd5b600061116e6117ff565b61013554604080516375cdc89760e11b81526001600160a01b038085166004830152915193945091169163eb9b912e9160248082019260009290919082900301818387803b1580156111bf57600080fd5b505af11580156111d3573d6000803e3d6000fd5b5050610132546040805163fd6ceee560e01b81526001600160a01b03868116600483015291516000955091909216925063fd6ceee59160248082019260209290919082900301818787803b15801561122a57600080fd5b505af115801561123e573d6000803e3d6000fd5b505050506040513d602081101561125457600080fd5b50516101315460408051632a1e739d60e11b815290519293506000926112a89286926001600160a01b039091169163543ce73a91600480820192602092909190829003018186803b158015610f6357600080fd5b90506112b3856118ae565b610130546112c9906107b490859060ff166119cb565b1215611305576040805162461bcd60e51b8152602060048201526006602482015265565f4e45464360d01b604482015290519081900360640190fd5b6000866001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561135457600080fd5b505afa158015611368573d6000803e3d6000fd5b505050506040513d602081101561137e57600080fd5b50519050858110156113ff57610133546040805163317afabb60e21b815283890360048201819052915191926001600160a01b03169163c5ebeaec9160248082019260009290919082900301818387803b1580156113db57600080fd5b505af11580156113ef573d6000803e3d6000fd5b5050610136805490930190925550505b6101305461142f90859089906109d29061142a9061142190899060ff166119cb565b6107ee8c6118ae565b611ceb565b61143a878588611d20565b836001600160a01b0316876001600160a01b03167fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb886040518082815260200191505060405180910390a35050600180555050505050565b610134546001600160a01b031690565b6001600160a01b039081166000908152610137602090815260408083206101305461010090049094168352929052205490565b600054610100900460ff16806114ee57506114ee611d77565b806114fc575060005460ff16155b6115375760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e4602e913960400191505060405180910390fd5b600054610100900460ff16158015611562576000805460ff1961ff0019909116610100171660011790555b6000856001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b15801561159d57600080fd5b505afa1580156115b1573d6000803e3d6000fd5b505050506040513d60208110156115c757600080fd5b50516040805163313ce56760e01b815290519192506000916001600160a01b0384169163313ce567916004808301926020929190829003018186803b15801561160f57600080fd5b505afa158015611623573d6000803e3d6000fd5b505050506040513d602081101561163957600080fd5b50519050601260ff8216111561167f576040805162461bcd60e51b81526020600482015260066024820152651597d254d51160d21b604482015290519081900360640190fd5b611691866001600160a01b0316611a87565b6116cc576040805162461bcd60e51b8152602060048201526007602482015266565f4348434e4360c81b604482015290519081900360640190fd5b6116de856001600160a01b0316611a87565b611718576040805162461bcd60e51b8152602060048201526006602482015265565f41424e4360d01b604482015290519081900360640190fd5b61172a846001600160a01b0316611a87565b611763576040805162461bcd60e51b8152602060048201526005602482015264565f454e4360d81b604482015290519081900360640190fd5b61176b611d88565b611773611e31565b610130805460ff191660ff9290921691909117610100600160a81b0319166101006001600160a01b039384160217905561013380546001600160a01b0319908116888416179091556101318054821687841617905561013280548216868416179055610134805490911691841691909117905580156117f8576000805461ff00191690555b5050505050565b6000611809611ece565b905090565b611816610ccf565b61185e576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6099805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6118916117ff565b604080516001600160a01b039092168252519081900360200190a1565b60006001600160ff1b038211156118f65760405162461bcd60e51b81526004018080602001828103825260288152602001806128536028913960400191505060405180910390fd5b5090565b600081830381831280159061190f5750838113155b80611924575060008312801561192457508381135b61195f5760405162461bcd60e51b815260040180806020018281038252602481526020018061287b6024913960400191505060405180910390fd5b9392505050565b600082820181831280159061197b5750838112155b80611990575060008312801561199057508381125b61195f5760405162461bcd60e51b815260040180806020018281038252602181526020018061279d6021913960400191505060405180910390fd5b600061195f8360ff601285900316600a0a611efe565b610132546040805163293a507760e01b81526001600160a01b03858116600483015291516000938493169163293a5077916024808301926020929190829003018186803b158015611a3157600080fd5b505afa158015611a45573d6000803e3d6000fd5b505050506040513d6020811015611a5b57600080fd5b50519050611a698184611fb6565b949350505050565b6000818312611a80578161195f565b5090919050565b3b151590565b6001600160a01b0380841660009081526101376020908152604080832093861683529290522054611abe9082611966565b6001600160a01b0393841660009081526101376020908152604080832095909616825293909352929091209190915550565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611b4a908590611fcb565b50505050565b600082821115611ba7576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b611bb5610ccf565b15611bfa576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6099805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586118916117ff565b600081831215611a80578161195f565b6000808212156118f6576040805162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f736974697665604482015290519081900360640190fd5b60fd80546001600160a01b0383166001600160a01b0319909116811790915560408051918252517fa4388ecc389b1390354ae0c65a856c0d7dd4fb648419f5d3ac0b99e38f46fd119181900360200190a150565b6000600160ff1b8213611d195760405162461bcd60e51b8152600401611d1090612746565b60405180910390fd5b5060000390565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611d72908490611fcb565b505050565b6000611d8230611a87565b15905090565b600054610100900460ff1680611da15750611da1611d77565b80611daf575060005460ff16155b611dea5760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e4602e913960400191505060405180910390fd5b600054610100900460ff16158015611e15576000805460ff1961ff0019909116610100171660011790555b611e1d61207c565b8015611077576000805461ff001916905550565b600054610100900460ff1680611e4a5750611e4a611d77565b80611e58575060005460ff16155b611e935760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e4602e913960400191505060405180910390fd5b600054610100900460ff16158015611ebe576000805460ff1961ff0019909116610100171660011790555b611ec6612121565b611e1d612210565b600060143610801590611ee55750611ee533610cbb565b15611ef9575060131936013560601c610463565b503390565b600081611f52576040805162461bcd60e51b815260206004820181905260248201527f5369676e6564536166654d6174683a206469766973696f6e206279207a65726f604482015290519081900360640190fd5b81600019148015611f665750600160ff1b83145b15611fa25760405162461bcd60e51b81526004018080602001828103825260218152602001806128126021913960400191505060405180910390fd5b6000828481611fad57fe5b05949350505050565b600061195f838362ffffff16620f42406122ad565b6000612020826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661235c9092919063ffffffff16565b805190915015611d725780806020019051602081101561203f57600080fd5b5051611d725760405162461bcd60e51b815260040180806020018281038252602a81526020018061289f602a913960400191505060405180910390fd5b600054610100900460ff16806120955750612095611d77565b806120a3575060005460ff16155b6120de5760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e4602e913960400191505060405180910390fd5b600054610100900460ff16158015612109576000805460ff1961ff0019909116610100171660011790555b600180558015611077576000805461ff001916905550565b600054610100900460ff168061213a575061213a611d77565b80612148575060005460ff16155b6121835760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e4602e913960400191505060405180910390fd5b600054610100900460ff161580156121ae576000805460ff1961ff0019909116610100171660011790555b6121b661236b565b60006121c06117ff565b606580546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020612833833981519152908290a3508015611077576000805461ff001916905550565b600054610100900460ff16806122295750612229611d77565b80612237575060005460ff16155b6122725760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e4602e913960400191505060405180910390fd5b600054610100900460ff1615801561229d576000805460ff1961ff0019909116610100171660011790555b6122a56123fc565b611e1d61249c565b60008080600019858709868602925082811090839003039050806122e357600084116122d857600080fd5b50829004905061195f565b8084116122ef57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b6060611a698484600085612547565b600054610100900460ff16806123845750612384611d77565b80612392575060005460ff16155b6123cd5760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e4602e913960400191505060405180910390fd5b600054610100900460ff161580156123f8576000805460ff1961ff0019909116610100171660011790555b611e1d5b600054610100900460ff16806124155750612415611d77565b80612423575060005460ff16155b61245e5760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e4602e913960400191505060405180910390fd5b600054610100900460ff16158015611e1d576000805460ff1961ff0019909116610100171660011790558015611077576000805461ff001916905550565b600054610100900460ff16806124b557506124b5611d77565b806124c3575060005460ff16155b6124fe5760405162461bcd60e51b815260040180806020018281038252602e8152602001806127e4602e913960400191505060405180910390fd5b600054610100900460ff16158015612529576000805460ff1961ff0019909116610100171660011790555b6099805460ff191690558015611077576000805461ff001916905550565b6060824710156125885760405162461bcd60e51b81526004018080602001828103825260268152602001806127be6026913960400191505060405180910390fd5b61259185611a87565b6125e2576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b602083106126205780518252601f199092019160209182019101612601565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612682576040519150601f19603f3d011682016040523d82523d6000602084013e612687565b606091505b50915091506126978282866126a2565b979650505050505050565b606083156126b157508161195f565b8251156126c15782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561270b5781810151838201526020016126f3565b50505050905090810190601f1680156127385780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6020808252601c908201527b506572704d6174683a20696e76657273696f6e206f766572666c6f7760201b60408201526060019056fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c005369676e6564536166654d6174683a206164646974696f6e206f766572666c6f77416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65645369676e6564536166654d6174683a206469766973696f6e206f766572666c6f778be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e053616665436173743a2076616c756520646f65736e27742066697420696e20616e20696e743235365369676e6564536166654d6174683a207375627472616374696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220ce83c8bf331aea886ebd4d4580fb742b8df7d49186e57f2855d9f4f331fbbc9064736f6c63430007060033",
"linkReferences": {},
"deployedLinkReferences": {}
}

@@ -9,2 +9,63 @@ # Changelog

## [0.15.0-staging] - 2021-11-22
### Changed
- rename `ClearingHouse.settleAllFundingAndPendingFee` to `ClearingHouse.settleAllFunding`
- rename `AccountBalance.addTakerBalances` to `AccountBalance.modifyTakerBalance`
- rename params of `AccountBalance.modifyTakerBalance`
1. `deltaTakerBase` to `base`
2. `deltaTakerQuote` to `quote`
- rename params of `AccountBalance.settleBalanceAndDeregister`
1. `deltaTakerBase` to `takerBase`
2. `deltaTakerQuote` to `takerQuote`
- rename `AccountBalance.addOwedRealizedPnl` to `AccountBalance.modifyOwedRealizedPnl`
- rename param `delta` of `AccountBalance.modifyOwedRealizedPnl` as `amount`
- rename the param `sqrtPriceAfter` in the `ClearingHouse.PositionChanged` event to `sqrtPriceAfterX96`
- rename error codes in `ClearingHouse`
1. `CH_NEO` to `CH_CLWTISO`
2. `CH_PSC` to `CH_PSCF`
3. `CH_ANC` to `CH_ENC`
4. `CH_ANC` to `CH_TFNC`
- rename params of `ClearingHouse.openPosition`
1. `deltaBase` to `base`
2. `deltaQuote` to `quote`
- rename params of `ClearingHouse.closePosition`
1. `deltaBase` to `base`
2. `deltaQuote` to `quote`
- rename error code in `Exchange`: `EX_ANC` to `EX_BNC`
- rename params in struct `Exchange.SwapResponse`
1. `deltaAvailableBase` to `base`
2. `deltaAvailableQuote` to `quote`
- rename params in struct `Exchange.RealizePnlParams`
1. `deltaAvailableBase` to `base`
2. `deltaAvailableQuote` to `quote`
- rename `OrderBook.getOwedFee` as `OrderBook.getPendingFee`
- rename params in struct `OrderBook.RemoveLiquidityResponse`
1. `deltaTakerBase` to `takerBase`
2. `deltaTakerQuote` to `takerQuote`
- rename params of `OrderBook.updateOrderDebt`
1. `deltaBaseDebt` to `base`
2. `deltaQuoteDebt` to `quote`
- rename params in struct `AccountMarket.Info`
1. `takerBaseBalance` to `takerPositionSize`
2. `takerQuoteBalance` to `takerOpenNotional`
- rename error codes in `Vault`
1. `V_ANC` to `V_CHNC`
2. `V_ANC` to `V_TFNC`
- move event `FundingPaymentSettled` to ClearingHouse
### Added
- add a new parameter `insuranceFundArg` to `initialize` of ClearingHouse
- add a new parameter `orderBookArg` to `initialize` of AccountBalance
### Removed
- remove `AccountBalance.getNetQuoteBalanceAndPendingFee`
- remove parameter `exchangeArg` from `initialize` of AccountBalance
- remove parameter `insuranceFundArg` from `initialize` of Exchange
- remove `Exchange.getTick`
- remove `Exchange.getFundingGrowthGlobalAndTwaps`
- remove `OrderBook.getFeeGrowthGlobal`
## [0.14.0-staging] - 2021-11-17

@@ -27,2 +88,3 @@

- rename `AccountBalance.getNetQuoteBalance` to `AccountBalance.getNetQuoteBalanceAndPendingFee`
- rename `AccountBalance.settleQuoteToPnl` to `AccountBalance.settleQuoteToOwedRealizedPnl`

@@ -29,0 +91,0 @@ - add new second return value `pendingFee` of `AccountBalance.getOwedAndUnrealizedPnl`

@@ -5,64 +5,64 @@ {

"AccountBalance": {
"address": "0xB06A830E383169543E372a642F684C666ebc1485",
"createdBlockNumber": 81293,
"address": "0x77267279484501c518a338840cFbAB76482CB72E",
"createdBlockNumber": 122068,
"name": "contracts/AccountBalance.sol:AccountBalance"
},
"BTCUSDChainlinkPriceFeed": {
"address": "0x3005469060781996Df4eF94398A219C8cB4b8d2b",
"createdBlockNumber": 82299,
"address": "0xD2Fe8fa36cDc2A041dDA2080B8BB2a98a3b00E27",
"createdBlockNumber": 122128,
"name": "contracts/ChainlinkPriceFeed.sol:ChainlinkPriceFeed"
},
"ClearingHouse": {
"address": "0xd0592c99d86b13d0B379611935e51985B87A32F7",
"createdBlockNumber": 81336,
"address": "0x759e4F06176dd6498143a5CaE9A2cC23A9c9b7fc",
"createdBlockNumber": 122081,
"name": "contracts/ClearingHouse.sol:ClearingHouse"
},
"ClearingHouseConfig": {
"address": "0xF06bD8AD1fB84E1F0afCA2C784968a2CaD6dbA74",
"createdBlockNumber": 81190,
"address": "0xC25A0733D89858E2491aD6171f7869B01fa1A73C",
"createdBlockNumber": 122041,
"name": "contracts/ClearingHouseConfig.sol:ClearingHouseConfig"
},
"ETHUSDChainlinkPriceFeed": {
"address": "0x128281c587f31d47C16Fee2a8A75EbBeb020aa88",
"createdBlockNumber": 81402,
"address": "0x1D73BE1d3CD1ca8AF240e2F01a0B5cad2F4dC79c",
"createdBlockNumber": 122099,
"name": "contracts/ChainlinkPriceFeed.sol:ChainlinkPriceFeed"
},
"Exchange": {
"address": "0x07a441f21B3326ea3315e2076ce413f8416e6f0f",
"createdBlockNumber": 81267,
"address": "0x2ef2988Af4E3918c66eb708755d73Bdf1F9f0044",
"createdBlockNumber": 122062,
"name": "contracts/Exchange.sol:Exchange"
},
"InsuranceFund": {
"address": "0xEAFd0Dde784fb27Bcd0B87d2Ef17E5551Ca2FBF0",
"createdBlockNumber": 81217,
"address": "0x24B3d65e365A1d2452D962A236eB9Bdc1a4204aF",
"createdBlockNumber": 122051,
"name": "contracts/InsuranceFund.sol:InsuranceFund"
},
"MarketRegistry": {
"address": "0xD2f007C5d3a7e3Dfbc51B1d053b943463B377AD1",
"createdBlockNumber": 81207,
"address": "0xB289383bac00b77F30adDd973ebac19a8976Cfa8",
"createdBlockNumber": 122046,
"name": "contracts/MarketRegistry.sol:MarketRegistry"
},
"OrderBook": {
"address": "0x97b3030F426937A1521Bc03799575fcfa7B01060",
"createdBlockNumber": 81240,
"address": "0x76c7fC4824209ECEb13F9932e67e5Fa76bfEaaF4",
"createdBlockNumber": 122056,
"name": "contracts/OrderBook.sol:OrderBook"
},
"QuoteToken": {
"address": "0xF02E22DaB456DA50D9824165bBAC5aE1738dCae3",
"createdBlockNumber": 81180,
"address": "0xbC322106F270CdBA413dbAad02B9F15Be9c5080B",
"createdBlockNumber": 122036,
"name": "contracts/QuoteToken.sol:QuoteToken"
},
"Vault": {
"address": "0x64CafA193765AB28Ddd41DDD8Bcf6a7e29d63520",
"createdBlockNumber": 81316,
"address": "0x54F3f105Bd300F2F88779A3e5994128C7a6A119b",
"createdBlockNumber": 122075,
"name": "contracts/Vault.sol:Vault"
},
"vBTC": {
"address": "0x1F03979c17c628960c13D8010A2F52B7B4f72Cb9",
"createdBlockNumber": 82302,
"address": "0x7A841bB2B77d6477C167791BEDB1A1f8f05d7B55",
"createdBlockNumber": 122132,
"name": "contracts/BaseToken.sol:BaseToken"
},
"vETH": {
"address": "0x519A942Ad942cBB8362a96A7d7D8FB84FDe499a5",
"createdBlockNumber": 81427,
"address": "0x8528285667bE7F27A5959796a2bA06eFa14A4E53",
"createdBlockNumber": 122105,
"name": "contracts/BaseToken.sol:BaseToken"

@@ -72,4 +72,4 @@ }

"externalContracts": {
"DefaultProxyAdmin": "0xf6Ce1137E57Cd2E85B6f8DBDde5fba988356EAd9",
"USDC": "0x61063dF0363121f841290056DE83D665e4D0F11E",
"DefaultProxyAdmin": "0x819bD1DF8DCEb3F31Ae783AA146a8eb91BB944d2",
"USDC": "0x92211CE2A1e7460655002864C80Fe13Cef810d08",
"UniswapV3Factory": "0x1F98431c8aD98523631AE4a59f267346ea31F984"

@@ -80,13 +80,13 @@ },

{
"address": "0x074Fc202a74a2374D2A6677241bD7D5f06a4979A",
"baseAddress": "0x519A942Ad942cBB8362a96A7d7D8FB84FDe499a5",
"address": "0x96cc53693Bf99B23ae8C64946F3BAE6AF5722Aeb",
"baseAddress": "0x8528285667bE7F27A5959796a2bA06eFa14A4E53",
"baseSymbol": "vETH",
"quoteAddress": "0xF02E22DaB456DA50D9824165bBAC5aE1738dCae3",
"quoteAddress": "0xbC322106F270CdBA413dbAad02B9F15Be9c5080B",
"quoteSymbol": "vUSD"
},
{
"address": "0xfbcB88c58733874E5C5aE8E9a78034AD5065a6Cb",
"baseAddress": "0x1F03979c17c628960c13D8010A2F52B7B4f72Cb9",
"address": "0x4B9F89C1a35EfC1Bd2F1b1A1f763D6752b9B3963",
"baseAddress": "0x7A841bB2B77d6477C167791BEDB1A1f8f05d7B55",
"baseSymbol": "vBTC",
"quoteAddress": "0xF02E22DaB456DA50D9824165bBAC5aE1738dCae3",
"quoteAddress": "0xbC322106F270CdBA413dbAad02B9F15Be9c5080B",
"quoteSymbol": "vUSD"

@@ -93,0 +93,0 @@ }

{
"name": "@perp/curie-contract",
"version": "0.14.0-staging",
"version": "0.15.0-staging",
"description": "",

@@ -5,0 +5,0 @@ "main": "hardhat.config.js",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc