0 txs
1.4k calls
constructor
No constructor.
functions
No functions.
events
ConvertDownPenalty
event ConvertDownPenalty(address account, uint256 grownStalkLost, uint256 grownStalkKept)
ConvertUpBonus
event ConvertUpBonus(address account, uint256 grownStalkGained, uint256 newGrownStalk, uint256 bdvCapacityUsed, uint256 bdvConverted)
FarmerGerminatingStalkBalanceChanged
event FarmerGerminatingStalkBalanceChanged(address indexed account, int256 delta, uint8 germ)
StalkBalanceChanged
event StalkBalanceChanged(address indexed account, int256 delta, int256 deltaRoots)
TotalGerminatingBalanceChanged
event TotalGerminatingBalanceChanged(uint256 germinationSeason, address indexed token, int256 deltaAmount, int256 deltaBdv)
TotalGerminatingStalkChanged
event TotalGerminatingStalkChanged(uint256 germinationSeason, int256 deltaGerminatingStalk)
UpdatedGaugeData
event UpdatedGaugeData(uint8 gaugeId, bytes data)
errors
SafeCastOverflowedIntDowncast
error SafeCastOverflowedIntDowncast(uint8 bits, int256 value)
SafeCastOverflowedUintDowncast
error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value)
SafeCastOverflowedUintToInt
error SafeCastOverflowedUintToInt(uint256 value)
T
error T()
creation bytecode
0x615510610039600b82828239805160001a607314602c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c806395d3b4de14610045578063f6dfcf12146100d3575b600080fd5b81801561005157600080fd5b5061006561006036600461433b565b61010b565b6040516100ca919081516001600160a01b03908116825260208084015182169083015260408084015190830152606080840151908301526080808401519091169082015260a08281015115159082015260c09182015115159181019190915260e00190565b60405180910390f35b8180156100df57600080fd5b506100f36100ee366004614490565b6103b8565b60408051928352600b9190910b6020830152016100ca565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810191909152600061018584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061040d92505050565b9050600181600381111561019b5761019b61455b565b03610208576101df84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061042992505050565b604086015260608501526001600160a01b039081166020850152168252600160c08301526103b1565b600281600381111561021c5761021c61455b565b03610260576101df84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061049792505050565b60008160038111156102745761027461455b565b036102da576102b884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104f492505050565b604086015260608501526001600160a01b0390811660208501521682526103b1565b60038160038111156102ee576102ee61455b565b036103695761033284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061051292505050565b151560a08801526001600160a01b0390811660808801526040870191909152606086019190915290811660208501521682526103b1565b60405162461bcd60e51b815260206004820152601860248201527710dbdb9d995c9d0e88125b9d985b1a59081c185e5b1bd85960421b60448201526064015b60405180910390fd5b5092915050565b6000806103d9886020015189600001518a608001518a898d60400151610538565b91506103e68287866106a7565b610400886000015189606001518985878d6080015161077f565b9050965096945050505050565b6000818060200190518101906104239190614580565b92915050565b600080808080600080600061043d896108fd565b92509250925061044c81610924565b6104685760405162461bcd60e51b81526004016103a89061459b565b60018401549097506001600160a01b0316955086610487838383610955565b989a979950979695505050505050565b60008080808060008060006104ab896108fd565b9250925092506104ba81610aba565b6104d65760405162461bcd60e51b81526004016103a89061459b565b60018401546001600160a01b03169750955085610487838383610b00565b60008060008061050385610bba565b96879650909450849350915050565b60008060008060008061052487610bdc565b919a8b9a5092985088975095509350915050565b60015460009081906001600160a01b03898116911614801561055e575061055e87610924565b156105ce57600061057188878787610c08565b909350905080156105c757604080516001600160a01b0389168152602081018390529081018490527ff34508b67b67a25d12587dc11db6c27136db71fe3659d4edad5de0e726dbf2589060600160405180910390a15b505061069d565b6105d788610924565b80156105f2575060018101546001600160a01b038881169116145b15610698576000806106048787610f8b565b9092509050811561069557610618826111b1565b80156106955761062881876145e0565b61063290856145e0565b604080516001600160a01b038b1681526020810184905290810182905260608101849052608081018990529094507f468578cfa9843b664ae1265796a4aa5658e5e712cf4746f7344058a3895032fa9060a00160405180910390a150505061069d565b50505b839150505b9695505050505050565b6000808213156106f457670de0b6b3a764000082106106c65750505050565b670de0b6b3a76400006106d983826145f3565b6106e39085614606565b6106ed9190614633565b905061072f565b670de0b6b3a764000061070683614647565b61071890670de0b6b3a76400006145e0565b6107229085614606565b61072c9190614633565b90505b808410156107795760405162461bcd60e51b8152602060048201526017602482015276436f6e766572743a205374616c6b20736c69707061676560481b60448201526064016103a8565b50505050565b600080851180156107905750600086115b6107dc5760405162461bcd60e51b815260206004820152601c60248201527f436f6e766572743a20424456206f7220616d6f756e7420697320302e0000000060448201526064016103a8565b60006107e9888688611326565b909250905060028160028111156108025761080261455b565b0361084d57610812888888611378565b610838836108338761082d6108268d611461565b8b9061148b565b9061149e565b6114aa565b83156108485761084883856115d9565b610880565b61085988888884611636565b610876836108706108698b611461565b899061148b565b83611892565b61088083866114aa565b60405163720d6a9760e11b815273e97ee5afcb656126c6a89b72d8617061213f9f4d9063e41ad52e906108c29086908c9087908d908d90600090600401614663565b60006040518083038186803b1580156108da57600080fd5b505af41580156108ee573d6000803e3d6000fd5b50505050509695505050505050565b60008060008380602001905181019061091691906146b4565b919790965090945092505050565b6001600160a01b0316600090815260c8602052604090205460e01b6001600160e01b03191663c84c772760e01b1490565b60008080600061096485611a7e565b9050600081116109b15760405162461bcd60e51b815260206004820152601860248201527721b7b73b32b93a1d10281036bab9ba103132901f1e90189760411b60448201526064016103a8565b8087116109be57866109c0565b805b600183015460405163a9059cbb60e01b81526001600160a01b0388811660048301526024820184905292955091169063a9059cbb906044016020604051808303816000875af1158015610a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3b91906146fc565b506040516377a7e57d60e11b8152306004820152602481018790526001600160a01b0386169063ef4fcafa906044015b6020604051808303816000875af1158015610a8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aae9190614719565b93505050935093915050565b6000806000610ac884611a8d565b60c9830180549192509082908110610ae257610ae2614732565b600091825260209091200154600160b81b900460ff16949350505050565b600080806000610b0f85611b4a565b905060008111610b5b5760405162461bcd60e51b815260206004820152601760248201527621b7b73b32b93a1d10281036bab9ba103132901e10189760491b60448201526064016103a8565b808711610b685786610b6a565b805b6001830154604051632ff0c96360e11b8152600481018390526001600160a01b03918216602482015260448101899052306064820152426084820152919450861690635fe192c69060a401610a6b565b60008082806020019051810190610bd19190614748565b909590945092505050565b60008060008084806020019051810190610bf69190614788565b91989097509095506001945092505050565b60008080600086118015610c1c5750600084115b610c685760405162461bcd60e51b815260206004820152601f60248201527f436f6e766572743a20626476206f722066726f6d416d6f756e7420697320300060448201526064016103a8565b6000610c748888611e8a565b905080861015610c8c57856000935093505050610f82565b600160009081526101488301602052604081206002018054610cad906147cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610cd9906147cf565b8015610d265780601f10610cfb57610100808354040283529160200191610d26565b820191906000526020600020905b815481529060010190602001808311610d0957829003601f168201915b5050505050806020019051810190610d3e9190614803565b9050600080610d528b8460c001518a611ea3565b915091508115610d6d57886000965096505050505050610f82565b600160009081526101488601602052604081208054610d8b906147cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610db7906147cf565b8015610e045780601f10610dd957610100808354040283529160200191610e04565b820191906000526020600020905b815481529060010190602001808311610de757829003601f168201915b5050505050806020019051810190610e1c919061489c565b509050670de0b6b3a7640000811115610e8a5760405162461bcd60e51b815260206004820152602a60248201527f436f6e766572743a2070656e616c7479526174696f2069732067726561746572604482015269207468616e203130302560b01b60648201526084016103a8565b8015610f735788821115610efc5760405162461bcd60e51b815260206004820152603360248201527f436f6e766572743a2070656e616c697a6564416d6f756e7420697320677265616044820152721d195c881d1a185b88199c9bdb505b5bdd5b9d606a1b60648201526084016103a8565b600089610f09848e614606565b610f139190614633565b905060008c610f22838e614606565b610f2c9190614633565b9050610f5e670de0b6b3a7640000610f448584614606565b610f4e9190614633565b610f58908e6145f3565b886121b5565b9950610f6a8a8d6145f3565b98505050610f7b565b899750600096505b5050505050505b94509492505050565b600260009081526101486020527ffbd4856b8a5b39e470d00061cc9a598e1f6db2a87dd7654b4e1093884884c4cb805482918291829190610fcb906147cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610ff7906147cf565b80156110445780601f1061101957610100808354040283529160200191611044565b820191906000526020600020905b81548152906001019060200180831161102757829003601f168201915b505050505080602001905181019061105c91906148c0565b90506000610148830181600281526020019081526020016000206002018054611084906147cf565b80601f01602080910402602001604051908101604052809291908181526020018280546110b0906147cf565b80156110fd5780601f106110d2576101008083540402835291602001916110fd565b820191906000526020600020905b8154815290600101906020018083116110e057829003601f168201915b5050505050806020019051810190611115919061491b565b825190915060000361113057600080945094505050506111aa565b600061113f83602001516121cb565b9050808260a001511061115c5760008095509550505050506111aa565b6000611177898460a001518461117291906145f3565b612242565b8451909150611187908290614606565b9550858810156111a35783518896506111a09087614633565b90505b9550505050505b9250929050565b600260009081526101486020527ffbd4856b8a5b39e470d00061cc9a598e1f6db2a87dd7654b4e1093884884c4cd80548291906111ed906147cf565b80601f0160208091040260200160405190810160405280929190818152602001828054611219906147cf565b80156112665780601f1061123b57610100808354040283529160200191611266565b820191906000526020600020905b81548152906001019060200180831161124957829003601f168201915b505050505080602001905181019061127e919061491b565b9050828160a00181815161129291906145e0565b9052506040516113219060029061130d908490602001600061012082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525092915050565b604051602081830303815290604052612251565b505050565b6000806000611334866122d7565b905061136161135361134e6113498888612313565b61231f565b612350565b6020830151600b0b90612384565b925061136d8382612390565b915050935093915050565b60006113b0611386846123f5565b6001600160a01b038616600090815260c7840160205260409020546001600160801b031690612429565b6001600160a01b038516600090815260c783016020526040902080546001600160801b0319166001600160801b03929092169190911790556114256113f4836123f5565b6001600160a01b038616600090815260c784016020526040902054600160801b90046001600160801b031690612429565b6001600160a01b03909416600090815260c79091016020526040902080546001600160801b03948516600160801b029416939093179092555050565b6001600160a01b0316600090815260c86020526040902054600160481b900465ffffffffffff1690565b60006114978284614606565b9392505050565b600061149782846145e0565b60c554600090819081036114ce576114c78364e8d4a5100061148b565b90506114f0565b60c482015460c58301546114ed91906114e7908661148b565b90612313565b90505b60c48201546114ff908461149e565b60c48301556001600160a01b03841660009081526020839052604090206001015461152a908461149e565b6001600160a01b03851660009081526020849052604090206001015560c5820154611555908261149e565b60c58301556001600160a01b03841660009081526020839052604090205461157d908261149e565b6001600160a01b0385166000818152602085815260409182902093909355805186815292830184905290917fb2d61db64b8ad7535308d2111c78934bc32baf9b7cd3a2e58cba25730003cd58910160405180910390a250505050565b6001600160a01b0382166000908152602081905260408120602c01546116009083906145e0565b6001600160a01b0384166000908152602083905260409020602c015560ed81015461162c9083906145e0565b60ed909101555050565b60008082600281111561164b5761164b61455b565b1415801561166b575060018260028111156116685761166861455b565b14155b156116b25760405162461bcd60e51b8152602060048201526017602482015276696e76616c6964206765726d696e6174696f6e5369646560481b60448201526064016103a8565b6116bb846123f5565b60ca820160008460028111156116d3576116d361455b565b60028111156116e4576116e461455b565b8152602080820192909252604090810160009081206001600160a01b038a168252909252812080549091906117239084906001600160801b0316614996565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550611750836123f5565b60ca820160008460028111156117685761176861455b565b60028111156117795761177961455b565b8152602080820192909252604090810160009081206001600160a01b038a168252909252902080546010906117bf908490600160801b90046001600160801b0316614996565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550846001600160a01b03167f99f70d4286db852579c7e4c4e3d46125005d363d480494fec6524240ade1e00e8360028111156118205761182061455b565b611828612435565b60028111156118395761183961455b565b1461185a5760d48301546118559060019063ffffffff166149b6565b611866565b60d483015463ffffffff165b6040805163ffffffff909216825260208201889052810186905260600160405180910390a25050505050565b6001600160a01b03831660009081526020819052604081208390601a01828460028111156118c2576118c261455b565b60028111156118d3576118d361455b565b81526020810191909152604001600090812080549091906118fe9084906001600160801b0316614996565b82546001600160801b039182166101009390930a92830291909202199091161790555060d481015463ffffffff1682600281111561193e5761193e61455b565b611946612435565b60028111156119575761195761455b565b036119975763ffffffff8116600090815260cb83016020526040812080546001600160801b038716929061198c9084906145e0565b909155506119e49050565b6001600160801b03841660cb830160006119b26001856149b6565b63ffffffff1663ffffffff16815260200190815260200160002060000160008282546119de91906145e0565b90915550505b846001600160a01b03167f9c0c70ad39ba6959d6008b9bc651f15ce23613cc1c5ebb4c6ffba0e53a1ea705856001600160801b031685604051611a289291906149e3565b60405180910390a26040805163ffffffff831681526001600160801b03861660208201527f3dd97efd4911891b98b28287922dd7351872382b548b549517e183ee6544c743910160405180910390a15050505050565b60006103b182620f424061244f565b60c9546000908190815b60c9830180546001600160a01b038716919083908110611ab957611ab9614732565b6000918252602090912001546001600160a01b031614611b425780611add81614a00565b915050818110611b3d5760405162461bcd60e51b815260206004820152602560248201527f4c696257686974656c6973746564546f6b656e733a20546f6b656e206e6f7420604482015264199bdd5b9960da1b60648201526084016103a8565b611a97565b949350505050565b600080826001600160a01b0316639d63848a6040518163ffffffff1660e01b8152600401600060405180830381865afa158015611b8b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611bb39190810190614a3c565b90506000836001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401600060405180830381865afa158015611bf5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c1d9190810190614acf565b90506000846001600160a01b03166310dd08306040518163ffffffff1660e01b8152600401600060405180830381865afa158015611c5f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c879190810190614c28565b90506000806000611c97866126a4565b92509250925080611cba5760405162461bcd60e51b81526004016103a890614c5c565b835160208501516040516316a1119f60e21b81526000926001600160a01b031691635a84467c91611cf3918a9188918a91600401614cfb565b602060405180830381865afa158015611d10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d349190614719565b905080868481518110611d4957611d49614732565b602002602001015111611d655750600098975050505050505050565b845160208601516040516253057f60e61b81526000926001600160a01b0316916314c15fc091611d99918b91600401614d3a565b602060405180830381865afa158015611db6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dda9190614719565b905081878581518110611def57611def614732565b602002602001018181525050611e7c86600001516001600160a01b03166314c15fc08989602001516040518363ffffffff1660e01b8152600401611e34929190614d3a565b602060405180830381865afa158015611e51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e759190614719565b82906126c1565b9a9950505050505050505050565b600080611e96846126cd565b9050611b428482856126e5565b6000806000806000611f1c886001600160a01b0316639d63848a6040518163ffffffff1660e01b8152600401600060405180830381865afa158015611eec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f149190810190614a3c565b60008961270e565b92509250925080611f3f5760405162461bcd60e51b81526004016103a890614c5c565b6000611f4a89612a2e565b90506000896001600160a01b03166310dd08306040518163ffffffff1660e01b8152600401600060405180830381865afa158015611f8c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611fb49190810190614c28565b9050600082516001600160401b03811115611fd157611fd16143ac565b604051908082528060200260200182016040528015611ffa578160200160208202803683370190505b5090506000851561200c57600061200f565b60015b60ff1690508984878151811061202757612027614732565b602002602001015161203991906145e0565b82878151811061204b5761204b614732565b60200260200101818152505083818151811061206957612069614732565b602002602001015182828151811061208357612083614732565b602002602001018181525050600083600001516001600160a01b0316635a84467c86898b88602001516040518563ffffffff1660e01b81526004016120cb9493929190614cfb565b602060405180830381865afa1580156120e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210c9190614719565b90508085888151811061212157612121614732565b602002602001015111156121435760008b9950995050505050505050506121ad565b8083888151811061215657612156614732565b6020026020010151101561217957600160009950995050505050505050506121ad565b60008184898151811061218e5761218e614732565b60200260200101516121a091906145f3565b9950995050505050505050505b935093915050565b60008183116121c45781611497565b5090919050565b60d65460009081908190670de0b6b3a7640000906121f2906706f05b59d3b2000090614606565b6121fc9190614633565b60d783015490915060009061221190426145f3565b9050818111156122245750929392505050565b8161222f8287614606565b6122399190614633565b95945050505050565b60008183106121c45781611497565b6000816101488285600281111561226a5761226a61455b565b600281111561227b5761227b61455b565b815260200190815260200160002060020190816122989190614daf565b507f8005b91b00b3136a66fd6fafad944ccb1d729983db99580891d7880cd50f6f4f83836040516122ca929190614e6e565b60405180910390a1505050565b60408051808201909152600080825260208201526122f482612b6d565b600b0b60208201819052612309908390612c2d565b600b0b8152919050565b60006114978284614633565b60006001600160ff1b0382111561234c5760405163123baf0360e11b8152600481018390526024016103a8565b5090565b80600b81900b811461237f5760405163327269a760e01b815260606004820152602481018390526044016103a8565b919050565b60006114978284614e90565b60008160000151600b0b83600b0b12156123ac57506002610423565b8160200151600b0b83600b0b036123da576123c5612c48565b6123d05760016123d3565b60005b9050610423565b6123e2612c48565b6123ed5760006123d3565b506001610423565b60006001600160801b0382111561234c576040516306dfcc6560e41b815260806004820152602481018390526044016103a8565b60006114978284614996565b600061243f612c48565b6124495750600190565b50600090565b6000806000846001600160a01b0316639d63848a6040518163ffffffff1660e01b8152600401600060405180830381865afa158015612492573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526124ba9190810190614a3c565b90506000856001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156124fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125249190810190614acf565b90506000866001600160a01b03166310dd08306040518163ffffffff1660e01b8152600401600060405180830381865afa158015612566573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261258e9190810190614c28565b9050606060006125a08560008a61270e565b9097509092509050806125c55760405162461bcd60e51b81526004016103a890614c5c565b825160208401516040516316a1119f60e21b81526000926001600160a01b031691635a84467c916125fe9189918c918991600401614cfb565b602060405180830381865afa15801561261b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263f9190614719565b905084878151811061265357612653614732565b6020026020010151811161267057600097505050505050506111aa565b84878151811061268257612682614732565b60200260200101518161269591906145f3565b97505050505050509250929050565b60606000806126b4846000612c65565b9250925092509193909250565b600061149782846145f3565b600060016126da836122d7565b516104239190614e90565b6000806126f185612b6d565b905061223983612705600b84900b87612384565b600b0b9061148b565b6060600080806001915086516001600160401b03811115612731576127316143ac565b60405190808252806020026020018201604052801561275a578160200160208202803683370190505b50600182015490945060001993506000906001600160a01b0316815b895181101561284b57816001600160a01b03168a828151811061279b5761279b614732565b60200260200101516001600160a01b0316036127b957809550612843565b60088a82815181106127cd576127cd614732565b60200260200101516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612812573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128369190614ebd565b60ff161161284357600192505b600101612776565b5060005b895181101561298b57816001600160a01b03168a828151811061287457612874614732565b60200260200101516001600160a01b0316036128cf5782156128b95764e8d4a510008782815181106128a8576128a8614732565b602002602001018181525050612983565b620f42408782815181106128a8576128a8614732565b821561291b576128f88a82815181106128ea576128ea614732565b60200260200101518a612c85565b87828151811061290a5761290a614732565b60200260200101818152505061295d565b61293e8a828151811061293057612930614732565b60200260200101518a612cf8565b87828151811061295057612950614732565b6020026020010181815250505b86818151811061296f5761296f614732565b602002602001015160000361298357600094505b60010161284f565b5060001985036129d15760405162461bcd60e51b81526020600482015260116024820152702132b0b7103737ba1034b7102bb2b6361760791b60448201526064016103a8565b86620f42408787815181106129e8576129e8614732565b60200260200101516129fa9190614606565b612a049190614633565b868681518110612a1657612a16614732565b60200260200101818152505050505093509350939050565b60606000826001600160a01b031663a1d89d966040518163ffffffff1660e01b8152600401600060405180830381865afa158015612a70573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a989190810190614ee0565b9050600081600081518110612aaf57612aaf614732565b6020026020010151600001519050806001600160a01b0316636de13cba8584600081518110612ae057612ae0614732565b6020026020010151602001516040518363ffffffff1660e01b8152600401612b09929190614f90565b600060405180830381865afa925050508015612b4757506040513d6000823e601f3d908101601f19168201604052612b449190810190614acf565b60015b611b425760408051600080825260208201909252905b50949350505050565b5050919050565b6001600160a01b038116600090815260c860205260408120548190612bfe90612bc390612ba690600160781b900463ffffffff16612d69565b60d4840154612bba9063ffffffff16612d69565b600b0b90612384565b6001600160a01b038516600090815260c884016020526040902054612bf590600160201b900464ffffffffff16612d69565b600b0b90612d77565b6001600160a01b038416600090815260c8830160205260409020546114979190600160981b9004600b0b614fb4565b600061149782612c3c85612d83565b64ffffffffff16612384565b60d4546000908190612c5f9063ffffffff16612e95565b91505090565b6060600080612c788585620f424061270e565b9250925092509250925092565b600061149783846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ced9190614ebd565b60ff16846001612ec6565b600061149783846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d609190614ebd565b60ff1684613508565b600061042361134e8361231f565b60006114978284614fe1565b60d4546001600160a01b038216600090815260c860205260408120549091829163ffffffff918216600160781b9091049091161015612dec576001600160a01b038316600090815260c882016020526040902054600160201b900464ffffffffff169150612e8f565b6001600160a01b038316600090815260c88201602052604081206001015460040b908112612e4f576001600160a01b038416600090815260c883016020526040902054612e48908290600160201b900464ffffffffff16615001565b9250612b66565b612e588161501f565b6001600160a01b038516600090815260c884016020526040902054612e8b9190600160201b900464ffffffffff16615043565b9250505b50919050565b6000612eac63ffffffff8084169060029061351716565b63ffffffff1615612ebe576001610423565b600092915050565b6001600160a01b038481166000908152602260209081526040808320815160808101835281549586168152600160a01b860460e01b6001600160e01b03191693810193909352600160c01b90940460f81b6001600160f81b03191690820152600183018054929384938493926060840191612f40906147cf565b80601f0160208091040260200160405190810160405280929190818152602001828054612f6c906147cf565b8015612fb95780601f10612f8e57610100808354040283529160200191612fb9565b820191906000526020600020905b815481529060010190602001808311612f9c57829003601f168201915b5050509190925250505060408101519091506001600160f81b03199081160161300d5761300481600001518260600151806020019051810190612ffc9190614719565b888888613523565b92505050611b42565b60408101516001600160f81b031916607f60f91b016133e857600081600001516001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561306a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061308e9190615061565b9050876001600160a01b0316816001600160a01b0316036131125781600001516001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061310f9190615061565b90505b6131ac86156131215786613125565b6103845b83518a848b1561313f5761313a8c600a61515a565b61354a565b8c6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561317d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131a19190614ebd565b61313a90600a615166565b6001600160a01b0382811660009081526022860160209081526040808320815160808101835281549586168152600160a01b860460e01b6001600160e01b03191693810193909352600160c01b90940460f81b6001600160f81b0319169082015260018301805494985091939092916060840191613229906147cf565b80601f0160208091040260200160405190810160405280929190818152602001828054613255906147cf565b80156132a25780601f10613277576101008083540402835291602001916132a2565b820191906000526020600020905b81548152906001019060200180831161328557829003601f168201915b50505050508152505090506000826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133119190614ebd565b60ff169050600061334e836000015184606001518060200190518101906133389190614719565b8c156133445784613346565b8c5b8c6000613523565b905089156133da57871561338857866133688b600a61515a565b6133779064e8d4a51000614606565b6133819190614633565b96506133ae565b866133948b600a61515a565b6133a190620f4240614606565b6133ab9190614633565b96505b6133b982600a61515a565b6133c38289614606565b6133cd9190614633565b9650505050505050611b42565b620f42406133c38289614606565b80516001600160a01b031661340257600092505050611b42565b6060810151841561343657816060015185604051602001613424929190615175565b60405160208183030381529060405290505b60008083600001516001600160a01b031684602001518a8a866040516024016134619392919061519d565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161349f91906151bc565b600060405180830381855afa9150503d80600081146134da576040519150601f19603f3d011682016040523d82523d6000602084013e6134df565b606091505b5091509150816134f757600095505050505050611b42565b602001519998505050505050505050565b6000611b428484846000612ec6565b600061149782846151d8565b600080831161353d5761353886868685613708565b61069d565b61069d8686868686613890565b60008060006135598789613b90565b915091508161356d57600092505050612239565b61357981858888613d5e565b92506000866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135df9190614ebd565b60ff1690506000866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613624573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136489190614ebd565b60ff169050600061365982846151fb565b9050806000036136915761366e83600a61515a565b61367b620f424088614606565b6136859190614633565b95505050505050612239565b60008113156136b6576136a581600a61515a565b6136af9087614606565b95506136d7565b6136bf81614647565b6136ca90600a61515a565b6136d49087614633565b95505b6136e283600a61515a565b6136ef620f424088614606565b6136f99190614633565b9b9a5050505050505050505050565b6000808590506000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561376a575060408051601f3d908101601f1916820190925261376791810190614ebd565b60015b61377957600092505050611b42565b9050816001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa9250505080156137d5575060408051601f3d908101601f191682019092526137d291810190615232565b60015b6137e457600092505050611b42565b846001600160501b0316600003613805576000975050505050505050611b42565b6138118285428e613e65565b15613826576000975050505050505050611b42565b89156138635788156138405761383d8a60066145e0565b99505b61385c8461385160ff89168d6145e0565b6114e790600a61515a565b9750613881565b61387e61387187600a615166565b6114e786620f424061148b565b97505b50505050505050949350505050565b600080866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156138ed575060408051601f3d908101601f191682019092526138ea91810190614ebd565b60015b6138fb576000915050612239565b9050866001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa925050508015613957575060408051601f3d908101601f1916820190925261395491810190615232565b60015b613965576000915050612239565b846001600160501b03166000036139855760009650505050505050612239565b6139918285428e613e65565b156139a55760009650505050505050612239565b6139c960405180606001604052806000815260200160008152602001600081525090565b6139d3428b6126c1565b602082015288156139ec576139e98b60066145e0565b9a505b80602001518311613a37578a15613a1c57613a0e8561385160ff8a168e6145e0565b975050505050505050612239565b613a0e613a2a88600a615166565b6114e787620f424061148b565b4260408201525b8060200151831115613af4578a15613a765784613a5e60ff89168d6145e0565b613a6990600a61515a565b613a739190614633565b94505b613aa2613a9a613a938584604001516126c190919063ffffffff16565b879061148b565b82519061149e565b8152613aaf600187615282565b604082018490529550613ac28d87613eb4565b8094508196505050613ada838683604001518f613e65565b15613aef576000975050505050505050612239565b613a3e565b8a15613b205784613b0860ff89168d6145e0565b613b1390600a61515a565b613b1d9190614633565b94505b613b41613a9a613a93836020015184604001516126c190919063ffffffff16565b81528a15613b5c578051613b55908b612313565b9750613b80565b613b7d8a6114e7613b6e8a600a615166565b84516114e790620f424061148b565b97505b5050505050505095945050505050565b6000808263ffffffff16600003613bce5760405162461bcd60e51b8152602060048201526002602482015261042560f41b60448201526064016103a8565b6040805160028082526060820183526000926020830190803683370190505090508381600081518110613c0357613c03614732565b602002602001019063ffffffff16908163ffffffff1681525050600081600181518110613c3257613c32614732565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81526001600160a01b0386169063883bdbfd90613c739084906004016152a2565b600060405180830381865afa925050508015613cb157506040513d6000823e601f3d908101601f19168201604052613cae919081019061535f565b60015b15613d5657600082600081518110613ccb57613ccb614732565b602002602001015183600181518110613ce657613ce6614732565b6020026020010151613cf8919061542a565b9050613d15613d0d63ffffffff891683615457565b60060b613f42565b945060008160060b128015613d3b5750613d3563ffffffff881682615495565b60060b15155b15613d4e5784613d4a816154b7565b9550505b600195505050505b509250929050565b600080613d6a86613f71565b90506001600160801b036001600160a01b03821611613df0576000613d986001600160a01b03831680614606565b9050836001600160a01b0316856001600160a01b031610613dd057613dcb600160c01b876001600160801b031683614289565b613de8565b613de881876001600160801b0316600160c01b614289565b925050612b5d565b6000613e0a6001600160a01b03831680600160401b614289565b9050836001600160a01b0316856001600160a01b031610613e4257613e3d600160801b876001600160801b031683614289565b613e5a565b613e5a81876001600160801b0316600160801b614289565b979650505050505050565b6000841580613e7357508285115b15613e8057506001611b42565b81613e8b84876126c1565b1115613e9957506001611b42565b60008413613ea957506001611b42565b506000949350505050565b604051639a6fc8f560e01b81526001600160501b038216600482015260009081906001600160a01b03851690639a6fc8f59060240160a060405180830381865afa925050508015613f22575060408051601f3d908101601f19168201909252613f1f91810190615232565b60015b613f335750600019905060006111aa565b509194509092506111aa915050565b80600281900b811461237f5760405163327269a760e01b815260186004820152602481018390526044016103a8565b60008060008360020b12613f88578260020b613f90565b8260020b6000035b9050620d89e8811115613fb6576040516315e4079d60e11b815260040160405180910390fd5b600081600116600003613fcd57600160801b613fdf565b6ffffcb933bd6fad37aa2d162d1a5940015b6001600160881b031690506002821615614009576ffff97272373d413259a46990580e213a0260801c5b6004821615614028576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615614047576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615614066576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615614085576fff973b41fa98c081472e6896dfb254c00260801c5b60408216156140a4576fff2ea16466c96a3843ec78b326b528610260801c5b60808216156140c3576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156140e3576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615614103576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615614123576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615614143576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615614163576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615614183576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156141a3576f70d869a156d2a1b890bb3df62baf32f70260801c5b6180008216156141c3576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156141e4576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615614204576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615614223576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615614240576b048a170391f7dc42444e8fa20260801c5b60008460020b131561426157806000198161425d5761425d61461d565b0490505b600160201b810615614274576001614277565b60005b60ff16602082901c0192505050919050565b60008080600019858709858702925082811083820303915050806000036142c257600084116142b757600080fd5b508290049050611497565b8084116142ce57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b6000806020838503121561434e57600080fd5b82356001600160401b038082111561436557600080fd5b818501915085601f83011261437957600080fd5b81358181111561438857600080fd5b86602082850101111561439a57600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b03811182821017156143e4576143e46143ac565b60405290565b60405161012081016001600160401b03811182821017156143e4576143e46143ac565b604080519081016001600160401b03811182821017156143e4576143e46143ac565b604051601f8201601f191681016001600160401b0381118282101715614457576144576143ac565b604052919050565b6001600160a01b038116811461447457600080fd5b50565b801515811461447457600080fd5b803561237f81614477565b6000806000806000808688036101808112156144ab57600080fd5b60e08112156144b957600080fd5b506144c26143c2565b87356144cd8161445f565b815260208801356144dd8161445f565b80602083015250604088013560408201526060880135606082015260808801356145068161445f565b608082015260a088013561451981614477565b60a082015261452a60c08901614485565b60c08201529860e0880135985061010088013597610120810135975061014081013596506101600135945092505050565b634e487b7160e01b600052602160045260246000fd5b80516004811061237f57600080fd5b60006020828403121561459257600080fd5b61149782614571565b60208082526015908201527410dbdb9d995c9d0e88125b9d985b1a590815d95b1b605a1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610423576104236145ca565b81810381811115610423576104236145ca565b8082028115828204841417610423576104236145ca565b634e487b7160e01b600052601260045260246000fd5b6000826146425761464261461d565b500490565b6000600160ff1b820161465c5761465c6145ca565b5060000390565b6001600160a01b03878116825286166020820152600b85900b6040820152606081018490526080810183905260c08101600283106146a3576146a361455b565b8260a0830152979650505050505050565b600080600080608085870312156146ca57600080fd5b6146d385614571565b9350602085015192506040850151915060608501516146f18161445f565b939692955090935050565b60006020828403121561470e57600080fd5b815161149781614477565b60006020828403121561472b57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60008060006060848603121561475d57600080fd5b61476684614571565b925060208401519150604084015161477d8161445f565b809150509250925092565b6000806000806080858703121561479e57600080fd5b6147a785614571565b93506020850151925060408501516147be8161445f565b60608601519092506146f18161445f565b600181811c908216806147e357607f821691505b602082108103612e8f57634e487b7160e01b600052602260045260246000fd5b600061010080838503121561481757600080fd5b604051908101906001600160401b0382118183101715614839576148396143ac565b81604052835181526020840151602082015260408401516040820152606084015160608201526080840151608082015260a084015160a082015260c084015160c082015260e0840151915061488d82614477565b60e08101919091529392505050565b600080604083850312156148af57600080fd5b505080516020909101519092909150565b6000606082840312156148d257600080fd5b604051606081018181106001600160401b03821117156148f4576148f46143ac565b80604052508251815260208301516020820152604083015160408201528091505092915050565b6000610120828403121561492e57600080fd5b6149366143ea565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b6001600160801b038181168382160190808211156103b1576103b16145ca565b63ffffffff8281168282160390808211156103b1576103b16145ca565b600381106144745761447461455b565b828152604081016149f3836149d3565b8260208301529392505050565b600060018201614a1257614a126145ca565b5060010190565b60006001600160401b03821115614a3257614a326143ac565b5060051b60200190565b60006020808385031215614a4f57600080fd5b82516001600160401b03811115614a6557600080fd5b8301601f81018513614a7657600080fd5b8051614a89614a8482614a19565b61442f565b81815260059190911b82018301908381019087831115614aa857600080fd5b928401925b82841015613e5a578351614ac08161445f565b82529284019290840190614aad565b60006020808385031215614ae257600080fd5b82516001600160401b03811115614af857600080fd5b8301601f81018513614b0957600080fd5b8051614b17614a8482614a19565b81815260059190911b82018301908381019087831115614b3657600080fd5b928401925b82841015613e5a57835182529284019290840190614b3b565b60005b83811015614b6f578181015183820152602001614b57565b50506000910152565b600060408284031215614b8a57600080fd5b614b9261440d565b90508151614b9f8161445f565b81526020828101516001600160401b0380821115614bbc57600080fd5b818501915085601f830112614bd057600080fd5b815181811115614be257614be26143ac565b614bf4601f8201601f1916850161442f565b91508082528684828501011115614c0a57600080fd5b614c1981858401868601614b54565b50808385015250505092915050565b600060208284031215614c3a57600080fd5b81516001600160401b03811115614c5057600080fd5b611b4284828501614b78565b6020808252601a908201527f436f6e766572743a20555344204f7261636c65206661696c6564000000000000604082015260600190565b60008151808452602080850194506020840160005b83811015614cc457815187529582019590820190600101614ca8565b509495945050505050565b60008151808452614ce7816020860160208601614b54565b601f01601f19169290920160200192915050565b608081526000614d0e6080830187614c93565b8560208401528281036040840152614d268186614c93565b90508281036060840152613e5a8185614ccf565b604081526000614d4d6040830185614c93565b82810360208401526122398185614ccf565b601f821115611321576000816000526020600020601f850160051c81016020861015614d885750805b601f850160051c820191505b81811015614da757828155600101614d94565b505050505050565b81516001600160401b03811115614dc857614dc86143ac565b614ddc81614dd684546147cf565b84614d5f565b602080601f831160018114614e115760008415614df95750858301515b600019600386901b1c1916600185901b178555614da7565b600085815260208120601f198616915b82811015614e4057888601518255948401946001909101908401614e21565b5085821015614e5e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b614e77836149d3565b828152604060208201526000611b426040830184614ccf565b600b82810b9082900b0360016001605f1b0319811260016001605f1b0382131715610423576104236145ca565b600060208284031215614ecf57600080fd5b815160ff8116811461149757600080fd5b60006020808385031215614ef357600080fd5b82516001600160401b0380821115614f0a57600080fd5b818501915085601f830112614f1e57600080fd5b8151614f2c614a8482614a19565b81815260059190911b83018401908481019088831115614f4b57600080fd5b8585015b83811015614f8357805185811115614f675760008081fd5b614f758b89838a0101614b78565b845250918601918601614f4f565b5098975050505050505050565b6001600160a01b0383168152604060208201819052600090611b4290830184614ccf565b600b81810b9083900b0160016001605f1b03811360016001605f1b031982121715610423576104236145ca565b600082600b0b82600b0b0280600b0b91508082146103b1576103b16145ca565b64ffffffffff8281168282160390808211156103b1576103b16145ca565b60008160040b647fffffffff19810361503a5761503a6145ca565b60000392915050565b64ffffffffff8181168382160190808211156103b1576103b16145ca565b60006020828403121561507357600080fd5b81516114978161445f565b600181815b80851115613d5657816000190482111561509f5761509f6145ca565b808516156150ac57918102915b93841c9390800290615083565b6000826150c857506001610423565b816150d557506000610423565b81600181146150eb57600281146150f557615111565b6001915050610423565b60ff841115615106576151066145ca565b50506001821b610423565b5060208310610133831016604e8410600b8410161715615134575081810a610423565b61513e838361507e565b8060001904821115615152576151526145ca565b029392505050565b600061149783836150b9565b600061149760ff8416836150b9565b60008351615187818460208801614b54565b92151560f81b9190920190815260010192915050565b8381528260208201526060604082015260006122396060830184614ccf565b600082516151ce818460208701614b54565b9190910192915050565b600063ffffffff808416806151ef576151ef61461d565b92169190910692915050565b81810360008312801583831316838312821617156103b1576103b16145ca565b80516001600160501b038116811461237f57600080fd5b600080600080600060a0868803121561524a57600080fd5b6152538661521b565b94506020860151935060408601519250606086015191506152766080870161521b565b90509295509295909350565b6001600160501b038281168282160390808211156103b1576103b16145ca565b6020808252825182820181905260009190848201906040850190845b818110156152e057835163ffffffff16835292840192918401916001016152be565b50909695505050505050565b600082601f8301126152fd57600080fd5b8151602061530d614a8483614a19565b8083825260208201915060208460051b87010193508684111561532f57600080fd5b602086015b848110156153545780516153478161445f565b8352918301918301615334565b509695505050505050565b6000806040838503121561537257600080fd5b82516001600160401b038082111561538957600080fd5b818501915085601f83011261539d57600080fd5b815160206153ad614a8483614a19565b82815260059290921b840181019181810190898411156153cc57600080fd5b948201945b838610156153fa5785518060060b81146153eb5760008081fd5b825294820194908201906153d1565b9188015191965090935050508082111561541357600080fd5b50615420858286016152ec565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610423576104236145ca565b60008160060b8360060b8061546e5761546e61461d565b667fffffffffffff1982146000198214161561548c5761548c6145ca565b90059392505050565b60008260060b806154a8576154a861461d565b808360060b0791505092915050565b60008160020b627fffff1981036154d0576154d06145ca565b600019019291505056fea26469706673582212202c22b523c85f14f3358e870f4146982df0008aac00d5346edea3aa07cedb9ac064736f6c63430008190033