From f74fab45fc133b67629197e84cc6f4595036cd2d Mon Sep 17 00:00:00 2001 From: zfliex Date: Mon, 4 Nov 2024 17:03:19 +0800 Subject: [PATCH] upgrade: configure demeter upgrade on mainnet --- core/systemcontracts/upgrade.go | 90 ++++++++++++++++++++++++++++ core/systemcontracts/upgrade_test.go | 4 +- params/config.go | 10 ++-- params/version.go | 2 +- 4 files changed, 99 insertions(+), 7 deletions(-) diff --git a/core/systemcontracts/upgrade.go b/core/systemcontracts/upgrade.go index 8b948c6e2..8af602be2 100644 --- a/core/systemcontracts/upgrade.go +++ b/core/systemcontracts/upgrade.go @@ -334,6 +334,96 @@ func init() { }, }, } + demeterUpgrade[mainNet] = &Upgrade{ + UpgradeName: "demeter", + Configs: []*UpgradeConfig{ + { + ContractAddr: common.HexToAddress(ValidatorContract), + CommitUrl: "https://github.com/coredao-org/core-genesis-contract/commit/925e416b42cb97ffba3b1bad4394d7e609452e10", + Code: "6080604052600436106102a45760003560e01c8063943599fd1161016e578063b3d676f3116100cb578063e1c7392a1161007f578063f340fa0111610064578063f340fa0114610710578063f9a2bbc714610723578063facd743b1461073957600080fd5b8063e1c7392a146106db578063eb57e202146106f057600080fd5b8063b7ab4db5116100b0578063b7ab4db51461069a578063c81b1662146106af578063dc927faf146106c557600080fd5b8063b3d676f31461066e578063b3ee5a511461068457600080fd5b8063a78abc1611610122578063ac43175111610107578063ac4317511461060b578063ad3c9da61461062b578063b11717241461065857600080fd5b8063a78abc16146105cb578063aa82dce1146105f557600080fd5b80639dc09262116101535780639dc092621461057d578063a5422d5c14610593578063a730c891146105b557600080fd5b8063943599fd14610550578063983443df1461056757600080fd5b80633b7681601161021c5780636969a25c116101d05780637f05b9ef116101b55780637f05b9ef146104f257806393f2d4041461050e578063940a4e451461053057600080fd5b80636969a25c14610476578063783028a9146104dc57600080fd5b80634392b201116102015780634392b2011461042a578063565c56b3146104405780635d25e51d1461046057600080fd5b80633b768160146103fe57806343756e5c1461041457600080fd5b806325ee13e2116102735780632a5d69b2116102585780632a5d69b2146103bc5780632eae3523146103d257806334bc99b3146103e757600080fd5b806325ee13e214610386578063270159f71461039c57600080fd5b806304e9e3a4146102ec5780630ac168a11461032c57806314c1e1f714610350578063239cba4a1461036657600080fd5b366102e75734156102e55760405134815233907ff11e547d796cc64acdf758e7cee90439494fd886a19159454aa61e473fdbafef9060200160405180910390a25b005b600080fd5b3480156102f857600080fd5b5061030261100781565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561033857600080fd5b5061034260015481565b604051908152602001610323565b34801561035c57600080fd5b5061030261100481565b34801561037257600080fd5b506102e56103813660046132e7565b61077e565b34801561039257600080fd5b5061030261100581565b3480156103a857600080fd5b506102e56103b736600461331b565b610c96565b3480156103c857600080fd5b5061030261101281565b3480156103de57600080fd5b50610342600a81565b3480156103f357600080fd5b5061034262a0668081565b34801561040a57600080fd5b5061030261101481565b34801561042057600080fd5b5061030261100181565b34801561043657600080fd5b5061034260045481565b34801561044c57600080fd5b5061034261045b3660046132cb565b61139b565b34801561046c57600080fd5b5061030261101181565b34801561048257600080fd5b50610496610491366004613443565b611414565b6040805173ffffffffffffffffffffffffffffffffffffffff9687168152948616602086015292909416918301919091526060820152608081019190915260a001610323565b3480156104e857600080fd5b5061030261100881565b3480156104fe57600080fd5b506103426729a2241af62c000081565b34801561051a57600080fd5b50610523611470565b604051610323919061350f565b34801561053c57600080fd5b5061052361054b366004613443565b611581565b34801561055c57600080fd5b506103026201000181565b34801561057357600080fd5b5061034260025481565b34801561058957600080fd5b5061030261100681565b34801561059f57600080fd5b506105a8611a9e565b6040516103239190613581565b3480156105c157600080fd5b506103426125a781565b3480156105d757600080fd5b506000546105e59060ff1681565b6040519015158152602001610323565b34801561060157600080fd5b5061030261101081565b34801561061757600080fd5b506102e56106263660046133da565b611abd565b34801561063757600080fd5b506103426106463660046132cb565b60056020526000908152604090205481565b34801561066457600080fd5b5061030261100981565b34801561067a57600080fd5b5061030261101381565b34801561069057600080fd5b5061030261101581565b3480156106a657600080fd5b50610523611d45565b3480156106bb57600080fd5b5061030261100281565b3480156106d157600080fd5b5061030261100381565b3480156106e757600080fd5b506102e5611e55565b3480156106fc57600080fd5b506102e561070b3660046132cb565b6120eb565b6102e561071e3660046132cb565b6123a5565b34801561072f57600080fd5b5061030261100081565b34801561074557600080fd5b506105e56107543660046132cb565b73ffffffffffffffffffffffffffffffffffffffff16600090815260056020526040902054151590565b33611001146107fa5760405162461bcd60e51b815260206004820152602560248201527f746865206d73672073656e646572206d75737420626520736c61736820636f6e60448201527f747261637400000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600560205260409020548061082b5750505050565b6108366001826136ba565b905060006003828154811061085b57634e487b7160e01b600052603260045260246000fd5b60009182526020822060046005909202010154600354909250610880906001906136ba565b9050806108c7576000600384815481106108aa57634e487b7160e01b600052603260045260246000fd5b906000526020600020906005020160040181905550505050505050565b6000600384815481106108ea57634e487b7160e01b600052603260045260246000fd5b60009182526020918290206005909102015460405185815273ffffffffffffffffffffffffffffffffffffffff909116925082917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70910160405180910390a273ffffffffffffffffffffffffffffffffffffffff871660009081526005602052604081205560035461097e906001906136ba565b8414610ae25760038054610994906001906136ba565b815481106109b257634e487b7160e01b600052603260045260246000fd5b9060005260206000209060050201600385815481106109e157634e487b7160e01b600052603260045260246000fd5b60009182526020909120825460059092020180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff938416178255600180850154818401805484169186169190911790556002808601549084018054909316941693909317905560038084015490820155600492830154920191909155610a81908590613651565b6005600060038781548110610aa657634e487b7160e01b600052603260045260246000fd5b600091825260208083206001600590930201919091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020555b6003805480610b0157634e487b7160e01b600052603160045260246000fd5b60008281526020812060057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019283020180547fffffffffffffffffffffffff00000000000000000000000000000000000000009081168255600182018054821690556002820180549091169055600381018290556004018190559155610b8a8385613669565b90508015610bfd5760035460005b81811015610bfa578260038281548110610bc257634e487b7160e01b600052603260045260246000fd5b90600052602060002090600502016004016000828254610be29190613651565b90915550819050610bf281613724565b915050610b98565b50505b6040517fa9955b4000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015260248101889052604481018790526110059063a9955b4090606401600060405180830381600087803b158015610c7457600080fd5b505af1158015610c88573d6000803e3d6000fd5b505050505050505050505050565b3361100514610d0d5760405162461bcd60e51b815260206004820152602960248201527f746865206d73672073656e646572206d7573742062652063616e64696461746560448201527f20636f6e7472616374000000000000000000000000000000000000000000000060648201526084016107f1565b610ddc88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808c0282810182019093528b82529093508b92508a91829185019084908082843760009201919091525050604080516020808b0282810182019093528a82529093508a92508991829185019084908082843760009201919091525050604080516020808a0282810182019093528982529093508992508891829185019084908082843760009201919091525061265592505050565b84610de657611391565b600354600090865b81831015610e68576005600060038581548110610e1b57634e487b7160e01b600052603260045260246000fd5b600091825260208083206001600590930201919091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400181205582610e6081613724565b935050610dee565b8092505b81831015610f22576003805480610e9357634e487b7160e01b600052603160045260246000fd5b60008281526020812060057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019283020180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811682556001820180548216905560028201805490911690556003810182905560040155905582610f1a81613724565b935050610e6c565b600092505b80831015611364578183106111045760036040518060a001604052808d8d87818110610f6357634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610f7891906132cb565b73ffffffffffffffffffffffffffffffffffffffff1681526020018b8b87818110610fb357634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610fc891906132cb565b73ffffffffffffffffffffffffffffffffffffffff16815260200189898781811061100357634e487b7160e01b600052603260045260246000fd5b905060200201602081019061101891906132cb565b73ffffffffffffffffffffffffffffffffffffffff16815260200187878781811061105357634e487b7160e01b600052603260045260246000fd5b602090810292909201358352506000918101829052835460018181018655948352918190208351600590930201805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff000000000000000000000000000000000000000091821617825591840151948101805495841695831695909517909455604083015160028501805491909316911617905560608101516003830155608001516004909101556112e9565b6040518060a001604052808c8c8681811061112f57634e487b7160e01b600052603260045260246000fd5b905060200201602081019061114491906132cb565b73ffffffffffffffffffffffffffffffffffffffff1681526020018a8a8681811061117f57634e487b7160e01b600052603260045260246000fd5b905060200201602081019061119491906132cb565b73ffffffffffffffffffffffffffffffffffffffff1681526020018888868181106111cf57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906111e491906132cb565b73ffffffffffffffffffffffffffffffffffffffff16815260200186868681811061121f57634e487b7160e01b600052603260045260246000fd5b90506020020135815260200160008152506003848154811061125157634e487b7160e01b600052603260045260246000fd5b60009182526020918290208351600590920201805473ffffffffffffffffffffffffffffffffffffffff9283167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216178255928401516001820180549184169185169190911790556040840151600282018054919093169316929092179055606082015160038201556080909101516004909101555b6112f4836001613651565b600560008b8b8781811061131857634e487b7160e01b600052603260045260246000fd5b905060200201602081019061132d91906132cb565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040016000205561135d83613724565b9250610f27565b6040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf90600090a15050505b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260056020526040812054806113cf5750600092915050565b60036113dc6001836136ba565b815481106113fa57634e487b7160e01b600052603260045260246000fd5b906000526020600020906005020160040154915050919050565b6003818154811061142457600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015473ffffffffffffffffffffffffffffffffffffffff9384169550918316939216919085565b60035460609060008167ffffffffffffffff81111561149f57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156114c8578160200160208202803683370190505b50905060005b8281101561157a57600381815481106114f757634e487b7160e01b600052603260045260246000fd5b6000918252602090912060059091020154825173ffffffffffffffffffffffffffffffffffffffff9091169083908390811061154357634e487b7160e01b600052603260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101528061157281613724565b9150506114ce565b5092915050565b606033611005146115fa5760405162461bcd60e51b815260206004820152602960248201527f746865206d73672073656e646572206d7573742062652063616e64696461746560448201527f20636f6e7472616374000000000000000000000000000000000000000000000060648201526084016107f1565b60035460009081908190815b8181101561169f5760006003828154811061163157634e487b7160e01b600052603260045260246000fd5b90600052602060002090600502019050600060646002548360040154611657919061367d565b6116619190613669565b905061166d8186613651565b94508082600401600082825461168391906136ba565b925050819055505050808061169790613724565b915050611606565b5061100273ffffffffffffffffffffffffffffffffffffffff1663631cbe3c836040518263ffffffff1660e01b81526004016000604051808303818588803b1580156116ea57600080fd5b505af11580156116fe573d6000803e3d6000fd5b50505050508067ffffffffffffffff81111561172a57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611753578160200160208202803683370190505b50945060008167ffffffffffffffff81111561177f57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156117a8578160200160208202803683370190505b509050600080805b84811015611a16576000600382815481106117db57634e487b7160e01b600052603260045260246000fd5b6000918252602090912060059091020180548b5191925073ffffffffffffffffffffffffffffffffffffffff16908b908490811061182957634e487b7160e01b600052603260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600481015492508215611a03576002810154600382015473ffffffffffffffffffffffffffffffffffffffff90911699506103e89061188d908561367d565b6118979190613669565b97508783111561190d576118ab88846136ba565b8583815181106118cb57634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508482815181106118f757634e487b7160e01b600052603260045260246000fd5b60200260200101518461190a9190613651565b93505b60006004820181905560405173ffffffffffffffffffffffffffffffffffffffff8b16908a156108fc02908b9084818181858888f19350505050905080156119aa578154604080518b81526020810187905273ffffffffffffffffffffffffffffffffffffffff8d81169316917f5f05434e85dc7eb0d20406bd66f9b9c92a6d4d710b8cffeb61176632c83974d3910160405180910390a3611a01565b8154604080518b81526020810187905273ffffffffffffffffffffffffffffffffffffffff8d81169316917fa49797d31ee4d8d18eeb937551b21f754dd96d6e3922324d5c5ba4522ebc45bc910160405180910390a35b505b5080611a0e81613724565b9150506117b0565b506040517f74873a3d000000000000000000000000000000000000000000000000000000008152611010906374873a3d908490611a5b908c9088908f90600401613522565b6000604051808303818588803b158015611a7457600080fd5b505af1158015611a88573d6000803e3d6000fd5b5050600060045550505050505050505050919050565b604051806102c0016040528061028881526020016137c0610288913981565b60005460ff16611b0f5760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e6974207965740000000000000060448201526064016107f1565b3361100614611b865760405162461bcd60e51b815260206004820152602a60248201527f746865206d73672073656e646572206d75737420626520676f7665726e616e6360448201527f6520636f6e74726163740000000000000000000000000000000000000000000060648201526084016107f1565b60208114611bc45783836040517fad23613c0000000000000000000000000000000000000000000000000000000081526004016107f19291906135d2565b611c3884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f626c6f636b526577617264496e63656e7469766550657263656e740000000000602082015291506129d89050565b15611ccc57604080516020601f8401819004810282018101909252828152600091611c7b91858580838501838280828437600092019190915250612a3192505050565b90506064811115611cc457848482600060646040517f808861f90000000000000000000000000000000000000000000000000000000081526004016107f1959493929190613620565b600255611d02565b83836040517f64b4f6040000000000000000000000000000000000000000000000000000000081526004016107f19291906135d2565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051611d3794939291906135ee565b60405180910390a150505050565b60035460609060008167ffffffffffffffff811115611d7457634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611d9d578160200160208202803683370190505b50905060005b8281101561157a5760038181548110611dcc57634e487b7160e01b600052603260045260246000fd5b906000526020600020906005020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110611e1e57634e487b7160e01b600052603260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015280611e4d81613724565b915050611da3565b60005460ff1615611ea85760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e69740000000000000060448201526064016107f1565b600080611ecf604051806102c0016040528061028881526020016137c06102889139612a36565b9150915080611f465760405162461bcd60e51b815260206004820152602160248201527f6661696c656420746f20706172736520696e69742076616c696461746f72536560448201527f740000000000000000000000000000000000000000000000000000000000000060648201526084016107f1565b815160005b818110156120a7576003848281518110611f7557634e487b7160e01b600052603260045260246000fd5b602090810291909101810151825460018082018555600094855293839020825160059092020180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff938416178255938301518186018054861691841691909117905560408301516002820180549095169216919091179092556060810151600383015560800151600490910155612026908290613651565b6005600086848151811061204a57634e487b7160e01b600052603260045260246000fd5b60200260200101516020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808061209f90613724565b915050611f4b565b50506729a2241af62c00006001908155600a600255600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690911790555050565b33611001146121625760405162461bcd60e51b815260206004820152602560248201527f746865206d73672073656e646572206d75737420626520736c61736820636f6e60448201527f747261637400000000000000000000000000000000000000000000000000000060648201526084016107f1565b73ffffffffffffffffffffffffffffffffffffffff811660009081526005602052604090205480612191575050565b61219c6001826136ba565b90506000600382815481106121c157634e487b7160e01b600052603260045260246000fd5b90600052602060002090600502016004015490506000600383815481106121f857634e487b7160e01b600052603260045260246000fd5b6000918252602082206004600590920201019190915560035461221d906001906136ba565b905060006003848154811061224257634e487b7160e01b600052603260045260246000fd5b60009182526020918290206005909102015460405185815273ffffffffffffffffffffffffffffffffffffffff909116925082917f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d910160405180910390a2816122ad575050505050565b60006122b98385613669565b9050801561239c5760005b858110156123265781600382815481106122ee57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060050201600401600082825461230e9190613651565b9091555081905061231e81613724565b9150506122c4565b506003546000612337876001613651565b90505b8181101561139157826003828154811061236457634e487b7160e01b600052603260045260246000fd5b906000526020600020906005020160040160008282546123849190613651565b9091555081905061239481613724565b91505061233a565b50505050505b50565b33411461241a5760405162461bcd60e51b815260206004820152602d60248201527f746865206d6573736167652073656e646572206d75737420626520746865206260448201527f6c6f636b2070726f64756365720000000000000000000000000000000000000060648201526084016107f1565b60005460ff1661246c5760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e6974207965740000000000000060448201526064016107f1565b3a156124ba5760405162461bcd60e51b815260206004820152601460248201527f6761737072696365206973206e6f74207a65726f00000000000000000000000060448201526064016107f1565b6124c762a066804361375d565b6124ec576127106125a76001546124de919061367d565b6124e89190613669565b6001555b600154600454349190612500908390613651565b61250a9190613651565b47106125205760015461251d9082613651565b90505b73ffffffffffffffffffffffffffffffffffffffff82166000908152600560205260409020548015612600576000600361255b6001846136ba565b8154811061257957634e487b7160e01b600052603260045260246000fd5b90600052602060002090600502019050826004546125979190613651565b60049081558101546125aa908490613651565b600482015560405183815273ffffffffffffffffffffffffffffffffffffffff8516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc0559060200160405180910390a250505050565b8273ffffffffffffffffffffffffffffffffffffffff167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b48360405161264891815260200190565b60405180910390a2505050565b83518351146126f25760405162461bcd60e51b815260206004820152604660248201527f746865206e756d62657273206f6620636f6e73656e737573416464726573736560448201527f7320616e64206f7065726174654164647265737365732073686f756c6420626560648201527f20657175616c0000000000000000000000000000000000000000000000000000608482015260a4016107f1565b815183511461278f5760405162461bcd60e51b815260206004820152604260248201527f746865206e756d62657273206f6620636f6e73656e737573416464726573736560448201527f7320616e64206665654164647265737365732073686f756c642062652065717560648201527f616c000000000000000000000000000000000000000000000000000000000000608482015260a4016107f1565b805183511461282c5760405162461bcd60e51b815260206004820152604c60248201527f746865206e756d62657273206f6620636f6e73656e737573416464726573736560448201527f7320616e6420636f6d6d697373696f6e54686f7573616e64746873732073686f60648201527f756c6420626520657175616c0000000000000000000000000000000000000000608482015260a4016107f1565b60005b83518110156129d15760005b8181101561291f5784818151811061286357634e487b7160e01b600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168583815181106128a157634e487b7160e01b600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141561290d5760405162461bcd60e51b815260206004820152601b60248201527f6475706c696361746520636f6e73656e7375732061646472657373000000000060448201526064016107f1565b8061291781613724565b91505061283b565b506103e882828151811061294357634e487b7160e01b600052603260045260246000fd5b602002602001015111156129bf5760405162461bcd60e51b815260206004820152602260248201527f636f6d6d697373696f6e54686f7573616e64746873206f7574206f6620626f7560448201527f6e6400000000000000000000000000000000000000000000000000000000000060648201526084016107f1565b806129c981613724565b91505061282f565b5050505050565b6000816040516020016129eb91906134f3565b6040516020818303038152906040528051906020012083604051602001612a1291906134f3565b6040516020818303038152906040528051906020012014905092915050565b015190565b6060600080612a74612a6f8560408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b612bc1565b805190915060008167ffffffffffffffff811115612aa257634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015612b1957816020015b6040805160a0810182526000808252602080830182905292820181905260608201819052608082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201910181612ac05790505b50905060005b82811015612bb457600080612b5a868481518110612b4d57634e487b7160e01b600052603260045260246000fd5b6020026020010151612cf3565b9150915080612b73575091976000975095505050505050565b81848481518110612b9457634e487b7160e01b600052603260045260246000fd5b602002602001018190525050508080612bac90613724565b915050612b1f565b5095901515945092505050565b6060612bcc82612dd9565b612bd557600080fd5b6000612be083612e12565b905060008167ffffffffffffffff811115612c0b57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015612c5057816020015b6040805180820190915260008082526020820152815260200190600190039081612c295790505b5090506000612c628560200151612e95565b8560200151612c719190613651565b90506000805b84811015612ce857612c8883612f17565b9150604051806040016040528083815260200184815250848281518110612cbf57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152612cd48284613651565b925080612ce081613724565b915050612c77565b509195945050505050565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526040805160a08101825260008082526020820181905291810182905260608101829052608081018290526000612d5385613067565b905060005b612d61826130d3565b15612dcd57612d77612d72836130f7565b613154565b73ffffffffffffffffffffffffffffffffffffffff166020840152612d9e612d72836130f7565b73ffffffffffffffffffffffffffffffffffffffff16604084018190528352506103e860608301526001612d58565b91959194509092505050565b8051600090612dea57506000919050565b6020820151805160001a9060c0821015612e08575060009392505050565b5060019392505050565b8051600090612e2357506000919050565b600080612e338460200151612e95565b8460200151612e429190613651565b9050600084600001518560200151612e5a9190613651565b90505b80821015612e8c57612e6e82612f17565b612e789083613651565b915082612e8481613724565b935050612e5d565b50909392505050565b8051600090811a6080811015612eae5750600092915050565b60b8811080612ec9575060c08110801590612ec9575060f881105b15612ed75750600192915050565b60c0811015612f0b57612eec600160b86136d1565b612ef99060ff16826136ba565b612f04906001613651565b9392505050565b612eec600160f86136d1565b80516000908190811a6080811015612f32576001915061157a565b60b8811015612f5857612f466080826136ba565b612f51906001613651565b915061157a565b60c0811015612fd957600060b78203600186019550806020036101000a865104915060018101820193505080831015612fd35760405162461bcd60e51b815260206004820152601160248201527f6164646974696f6e206f766572666c6f7700000000000000000000000000000060448201526064016107f1565b5061157a565b60f8811015612fed57612f4660c0826136ba565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561305f5760405162461bcd60e51b815260206004820152601160248201527f6164646974696f6e206f766572666c6f7700000000000000000000000000000060448201526064016107f1565b505092915050565b604080516080810182526000918101828152606082018390528152602081019190915261309382612dd9565b61309c57600080fd5b60006130ab8360200151612e95565b83602001516130ba9190613651565b6040805180820190915293845260208401525090919050565b805180516020820151600092916130e991613651565b836020015110915050919050565b6040805180820190915260008082526020820152613114826130d3565b61311d57600080fd5b6020820151600061312d82612f17565b90506131398183613651565b60209485015260408051808201909152908152928301525090565b805160009060151461316557600080fd5b61316e82613174565b92915050565b80516000901580159061318957508151602110155b61319257600080fd5b60006131a18360200151612e95565b905080836000015110156131f75760405162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f666673657400000000000060448201526064016107f1565b82516000906132079083906136ba565b905060008083866020015161321c9190613651565b905080519150602083101561323857826020036101000a820491505b50949350505050565b60008083601f840112613252578182fd5b50813567ffffffffffffffff811115613269578182fd5b6020830191508360208260051b850101111561328457600080fd5b9250929050565b60008083601f84011261329c578182fd5b50813567ffffffffffffffff8111156132b3578182fd5b60208301915083602082850101111561328457600080fd5b6000602082840312156132dc578081fd5b8135612f048161379d565b6000806000606084860312156132fb578182fd5b83356133068161379d565b95602085013595506040909401359392505050565b6000806000806000806000806080898b031215613336578384fd5b883567ffffffffffffffff8082111561334d578586fd5b6133598c838d01613241565b909a50985060208b0135915080821115613371578586fd5b61337d8c838d01613241565b909850965060408b0135915080821115613395578586fd5b6133a18c838d01613241565b909650945060608b01359150808211156133b9578384fd5b506133c68b828c01613241565b999c989b5096995094979396929594505050565b600080600080604085870312156133ef578384fd5b843567ffffffffffffffff80821115613406578586fd5b6134128883890161328b565b9096509450602087013591508082111561342a578384fd5b506134378782880161328b565b95989497509550505050565b600060208284031215613454578081fd5b5035919050565b6000815180845260208085019450808401835b838110156134a057815173ffffffffffffffffffffffffffffffffffffffff168752958201959082019060010161346e565b509495945050505050565b81835281816020850137506000806020838501015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b600082516135058184602087016136f4565b9190910192915050565b602081526000612f04602083018461345b565b606081526000613535606083018661345b565b828103602084810191909152855180835286820192820190845b8181101561356b5784518352938301939183019160010161354f565b5050809350505050826040830152949350505050565b60208152600082518060208401526135a08160408501602087016136f4565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6020815260006135e66020830184866134ab565b949350505050565b6040815260006136026040830186886134ab565b82810360208401526136158185876134ab565b979650505050505050565b6080815260006136346080830187896134ab565b602083019590955250604081019290925260609091015292915050565b6000821982111561366457613664613771565b500190565b60008261367857613678613787565b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136b5576136b5613771565b500290565b6000828210156136cc576136cc613771565b500390565b600060ff821660ff8416808210156136eb576136eb613771565b90039392505050565b60005b8381101561370f5781810151838201526020016136f7565b8381111561371e576000848401525b50505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561375657613756613771565b5060010190565b60008261376c5761376c613787565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff811681146123a257600080fdfef90285ea944121f067b0f5135d77c29b2b329e8cb1bd96c96094f8b18cecc98d976ad253d38e4100a73d4e154726ea947f461f8a1c35edecd6816e76eb2e84eb661751ee94f8b18cecc98d976ad253d38e4100a73d4e154726ea94fd806ab93db5742944b7b50ce759e5eee5f6fe5094f8b18cecc98d976ad253d38e4100a73d4e154726ea947ef3a94ad1c443481fb3d86829355ca90477f8b594f8b18cecc98d976ad253d38e4100a73d4e154726ea9467d1ad48f91e131413bd0b04e823f3ae4f81e85394f8b18cecc98d976ad253d38e4100a73d4e154726ea943fb42cab4416024dc1b4c9e21b9acd0dfcef35f694f8b18cecc98d976ad253d38e4100a73d4e154726ea943511e3b8ac7336b99517d324145e9b5bb33e08a494f8b18cecc98d976ad253d38e4100a73d4e154726ea94729f39a54304fcc6ec279684c71491a385d7b9ae94f8b18cecc98d976ad253d38e4100a73d4e154726ea94f44a785fd9f23f0abd443541386e71356ce619dc94f8b18cecc98d976ad253d38e4100a73d4e154726ea942efd3cf0733421aec3e4202480d0a90bd157514994f8b18cecc98d976ad253d38e4100a73d4e154726ea94613b0f519ada008cb99b6130e89122ba416bf15994f8b18cecc98d976ad253d38e4100a73d4e154726ea94c0925eeb800ff6ba4695ded61562a10102152b5f94f8b18cecc98d976ad253d38e4100a73d4e154726ea9419e3c7d7e69f273f3f91c060bb438a007f6fc33c94f8b18cecc98d976ad253d38e4100a73d4e154726ea94e127f110d172a0c4c6209fe045dd71781e8fe9d494f8b18cecc98d976ad253d38e4100a73d4e154726ea94f778dc4a199a440dbe9f16d1e13e185bb179b3b794f8b18cecc98d976ad253d38e4100a73d4e154726a2646970667358221220514a6139404d4aa50dc2733ff48ca12cf411baf348197c0eda9f4a58b213042c64736f6c63430008040033", + }, + { + ContractAddr: common.HexToAddress(SlashContract), + CommitUrl: "https://github.com/coredao-org/core-genesis-contract/commit/925e416b42cb97ffba3b1bad4394d7e609452e10", + Code: "608060405234801561001057600080fd5b50600436106102ad5760003560e01c80639dc092621161017b578063c81b1662116100d8578063e6332c001161008c578063ee80968611610071578063ee80968614610531578063f9a2bbc71461053a578063fc4333cd1461054357600080fd5b8063e6332c0014610518578063ebabc64e1461052157600080fd5b8063ccbd0035116100bd578063ccbd0035146104f4578063dc927faf14610507578063e1c7392a1461051057600080fd5b8063c81b1662146104d8578063c96be4cb146104e157600080fd5b8063b11717241161012f578063b3ee5a5111610114578063b3ee5a51146104bf578063b5d29a20146104c8578063c80d4b8f146104d057600080fd5b8063b1171724146104ad578063b3d676f3146104b657600080fd5b8063aa82dce111610160578063aa82dce114610487578063ac0af62914610490578063ac4317511461049857600080fd5b80639dc0926214610461578063a78abc161461046a57600080fd5b80633b7681601161022957806362b72cf5116101dd5780637912a65d116101c25780637912a65d1461043f5780639013920914610447578063943599fd1461045757600080fd5b806362b72cf51461042d578063783028a91461043657600080fd5b806343756e5c1161020e57806343756e5c14610412578063567a372d1461041b5780635d25e51d1461042457600080fd5b80633b768160146104005780633e620afa1461040957600080fd5b80632a5d69b21161028057806335aa2e441161026557806335aa2e441461036b57806337c8dab91461037e578063389f4f71146103f757600080fd5b80632a5d69b2146103455780632fd2abb51461034e57600080fd5b806304e9e3a4146102b257806314c1e1f7146102e557806323bac5a2146102ee57806325ee13e21461033c575b600080fd5b6102bb61100781565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6102bb61100481565b61031f6102fc366004612cb3565b600260208190526000918252604090912080546001820154919092015460ff1683565b6040805193845260208401929092521515908201526060016102dc565b6102bb61100581565b6102bb61101281565b61035d67ffffffffffffffff81565b6040519081526020016102dc565b6102bb610379366004612d9c565b61054b565b6103e261038c366004612cb3565b73ffffffffffffffffffffffffffffffffffffffff16600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b604080519283526020830191909152016102dc565b61035d60055481565b6102bb61101481565b61035d60065481565b6102bb61100181565b61035d60045481565b6102bb61101181565b61035d60035481565b6102bb61100881565b61035d603281565b61035d681b1ae4d6e2ef50000081565b6102bb6201000181565b6102bb61100681565b6000546104779060ff1681565b60405190151581526020016102dc565b6102bb61101081565b61035d600481565b6104ab6104a6366004612d70565b610582565b005b6102bb61100981565b6102bb61101381565b6102bb61101581565b61035d600281565b61035d609681565b6102bb61100281565b6104ab6104ef366004612cb3565b610c79565b6104ab610502366004612d07565b61113f565b6102bb61100381565b6104ab611660565b61035d60085481565b61035d683635c9adc5dea0000081565b61035d60075481565b6102bb61100081565b6104ab6116eb565b6001818154811061055b57600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60005460ff166105d95760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e6974207965740000000000000060448201526064015b60405180910390fd5b33611006146106505760405162461bcd60e51b815260206004820152602a60248201527f746865206d73672073656e646572206d75737420626520676f7665726e616e6360448201527f6520636f6e74726163740000000000000000000000000000000000000000000060648201526084016105d0565b6020811461068e5783836040517fad23613c0000000000000000000000000000000000000000000000000000000081526004016105d0929190612e4d565b61070284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527f6d697364656d65616e6f725468726573686f6c6400000000000000000000000060208201529150611d669050565b156107ad57604080516020601f840181900481028201810190925282815260009161074591858580838501838280828437600092019190915250611dc092505050565b905080158061075657506005548110155b156107a55784848260018060055461076e9190612f1d565b6040517f808861f90000000000000000000000000000000000000000000000000000000081526004016105d0959493929190612e9b565b600455610c36565b61082184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81527f66656c6f6e795468726573686f6c64000000000000000000000000000000000060208201529150611d669050565b156108c357604080516020601f840181900481028201810190925282815260009161086491858580838501838280828437600092019190915250611dc092505050565b905060045481116108bb5784848260045460016108819190612ecc565b6000196040517f808861f90000000000000000000000000000000000000000000000000000000081526004016105d0959493929190612e9b565b600555610c36565b61093784848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f726577617264466f725265706f7274446f75626c655369676e0000000000000060208201529150611d669050565b156109e457604080516020601f840181900481028201810190925282815260009161097a91858580838501838280828437600092019190915250611dc092505050565b90508015806109915750683635c9adc5dea0000081115b156109dc578484826001683635c9adc5dea000006040517f808861f90000000000000000000000000000000000000000000000000000000081526004016105d0959493929190612e9b565b600655610c36565b610a5884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81527f66656c6f6e794465706f7369740000000000000000000000000000000000000060208201529150611d669050565b15610afb57604080516020601f8401819004810282018101909252828152600091610a9b91858580838501838280828437600092019190915250611dc092505050565b9050670de0b6b3a7640000811015610af357848482670de0b6b3a76400006000196040517f808861f90000000000000000000000000000000000000000000000000000000081526004016105d0959493929190612e9b565b600755610c36565b610b6f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81527f66656c6f6e79526f756e6400000000000000000000000000000000000000000060208201529150611d669050565b15610c0057604080516020601f8401819004810282018101909252828152600091610bb291858580838501838280828437600092019190915250611dc092505050565b905080610bf85784848260016000196040517f808861f90000000000000000000000000000000000000000000000000000000081526004016105d0959493929190612e9b565b600855610c36565b83836040517f64b4f6040000000000000000000000000000000000000000000000000000000081526004016105d0929190612e4d565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610c6b9493929190612e69565b60405180910390a150505050565b334114610cee5760405162461bcd60e51b815260206004820152602d60248201527f746865206d6573736167652073656e646572206d75737420626520746865206260448201527f6c6f636b2070726f64756365720000000000000000000000000000000000000060648201526084016105d0565b60005460ff16610d405760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e6974207965740000000000000060448201526064016105d0565b6003544311610d915760405162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b60448201526064016105d0565b3a15610ddf5760405162461bcd60e51b815260206004820152601460248201527f6761737072696365206973206e6f74207a65726f00000000000000000000000060448201526064016105d0565b6040517ffacd743b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526110009063facd743b9060240160206040518083038186803b158015610e4657600080fd5b505afa158015610e5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7e9190612ce7565b610e8757611138565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ef65760208101805190610eee82612f6e565b905250610f74565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790555b4381526005546020820151610f899190612f89565b61102d57600060208201526008546007546040517f239cba4a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602481019290925260448201526110009063239cba4a90606401600060405180830381600087803b15801561101057600080fd5b505af1158015611024573d6000803e3d6000fd5b505050506110c5565b600454816020015161103f9190612f89565b6110c5576040517feb57e20200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526110009063eb57e20290602401600060405180830381600087803b1580156110ac57600080fd5b505af11580156110c0573d6000803e3d6000fd5b505050505b73ffffffffffffffffffffffffffffffffffffffff82166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166111915760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e6974207965740000000000000060448201526064016105d0565b60006111da6111d586868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611dc592505050565b611df2565b905060006112206111d585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611dc592505050565b90506112538160008151811061124657634e487b7160e01b600052603260045260246000fd5b6020026020010151611f24565b6112778360008151811061124657634e487b7160e01b600052603260045260246000fd5b146112ea5760405162461bcd60e51b815260206004820152602560248201527f706172656e74206f662074776f20626c6f636b73206d7573742062652074686560448201527f2073616d6500000000000000000000000000000000000000000000000000000060648201526084016105d0565b6000806112f684611f52565b9150915060008061130685611f52565b915091508184141561135a5760405162461bcd60e51b815260206004820152601c60248201527f6d7573742062652074776f20646966666572656e7420626c6f636b730000000060448201526064016105d0565b73ffffffffffffffffffffffffffffffffffffffff83166113bd5760405162461bcd60e51b815260206004820152601460248201527f76616c696461746f7220697320696c6c6567616c00000000000000000000000060448201526064016105d0565b8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146114385760405162461bcd60e51b815260206004820152601a60248201527f6d757374206265207468652073616d652076616c696461746f7200000000000060448201526064016105d0565b6040517ffacd743b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526110009063facd743b9060240160206040518083038186803b15801561149f57600080fd5b505afa1580156114b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d79190612ce7565b6115235760405162461bcd60e51b815260206004820152600f60248201527f6e6f7420612076616c696461746f72000000000000000000000000000000000060448201526064016105d0565b6007546040517f239cba4a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015267ffffffffffffffff602482015260448101919091526110009063239cba4a90606401600060405180830381600087803b1580156115a557600080fd5b505af11580156115b9573d6000803e3d6000fd5b50506006546040517f9a99b4f000000000000000000000000000000000000000000000000000000000815233600482015260248101919091526110029250639a99b4f09150604401602060405180830381600087803b15801561161b57600080fd5b505af115801561162f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116539190612db4565b5050505050505050505050565b60005460ff16156116b35760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e69740000000000000060448201526064016105d0565b60326004556096600555681b1ae4d6e2ef500000600655683635c9adc5dea0000060075560026008556000805460ff19166001179055565b33611005146117625760405162461bcd60e51b815260206004820152602960248201527f746865206d73672073656e646572206d7573742062652063616e64696461746560448201527f20636f6e7472616374000000000000000000000000000000000000000000000060648201526084016105d0565b60005460ff166117b45760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e6974207965740000000000000060448201526064016105d0565b6001546117bd57565b6001805460009182916117d09190612f1d565b90505b808211611d39576000805b8284101561194d576000600260006001878154811061180d57634e487b7160e01b600052603260045260246000fd5b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915061187890600490612f09565b816020015111156119305760046005546118929190612f09565b81602001516118a19190612f1d565b8160200181815250508060026000600188815481106118d057634e487b7160e01b600052603260045260246000fd5b60009182526020808320919091015473ffffffffffffffffffffffffffffffffffffffff16835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff191691151591909117905561193a565b600192505061194d565b508361194581612f6e565b9450506117de565b828411611b86576000600260006001868154811061197b57634e487b7160e01b600052603260045260246000fd5b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506119e690600490612f09565b81602001511115611aa4576004600554611a009190612f09565b8160200151611a0f9190612f1d565b816020018181525050806002600060018781548110611a3e57634e487b7160e01b600052603260045260246000fd5b60009182526020808320919091015473ffffffffffffffffffffffffffffffffffffffff168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611b869050565b6002600060018681548110611ac957634e487b7160e01b600052603260045260246000fd5b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040018120818155600181810192909255600201805460ff19169055805480611b2e57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905501905583611b735750611b86565b5082611b7e81612f57565b93505061194d565b818015611b905750805b15611d0b576002600060018681548110611bba57634e487b7160e01b600052603260045260246000fd5b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611c2257634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001805473ffffffffffffffffffffffffffffffffffffffff9092169186908110611c6957634e487b7160e01b600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001805480611cd057634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690550190555b82611d17575050611d39565b83611d2181612f6e565b9450508280611d2f90612f57565b93505050506117d3565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a15050565b600081604051602001611d799190612e14565b6040516020818303038152906040528051906020012083604051602001611da09190612e14565b604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6060611dfd82612110565b611e0657600080fd5b6000611e1183612149565b905060008167ffffffffffffffff811115611e3c57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611e8157816020015b6040805180820190915260008082526020820152815260200190600190039081611e5a5790505b5090506000611e9385602001516121cc565b8560200151611ea29190612ecc565b90506000805b84811015611f1957611eb98361224e565b9150604051806040016040528083815260200184815250848281518110611ef057634e487b7160e01b600052603260045260246000fd5b6020908102919091010152611f058284612ecc565b925080611f1181612f6e565b915050611ea8565b509195945050505050565b8051600090602114611f3557600080fd5b60008083602001516001611f499190612ecc565b51949350505050565b6000806000611f8884600c81518110611f7b57634e487b7160e01b600052603260045260246000fd5b602002602001015161239f565b90506000611fa58260418451611f9e9190612f1d565b6041612453565b604080516010808252610220820190925291925060009190816020015b6060815260200190600190039081611fc2579050509050611fe461045c612598565b8160008151811061200557634e487b7160e01b600052603260045260246000fd5b602002602001018190525060005b600f8110156120e15780600c141561206b5761203a6120358560006020612453565b6125a6565b82600d8151811061205b57634e487b7160e01b600052603260045260246000fd5b60200260200101819052506120d1565b61209b87828151811061208e57634e487b7160e01b600052603260045260246000fd5b6020026020010151612625565b826120a7836001612ecc565b815181106120c557634e487b7160e01b600052603260045260246000fd5b60200260200101819052505b6120da81612f6e565b9050612013565b5060006120ed826126ac565b8051602082012090915080612102818661275f565b965096505050505050915091565b805160009061212157506000919050565b6020820151805160001a9060c082101561213f575060009392505050565b5060019392505050565b805160009061215a57506000919050565b60008061216a84602001516121cc565b84602001516121799190612ecc565b90506000846000015185602001516121919190612ecc565b90505b808210156121c3576121a58261224e565b6121af9083612ecc565b9150826121bb81612f6e565b935050612194565b50909392505050565b8051600090811a60808110156121e55750600092915050565b60b8811080612200575060c08110801590612200575060f881105b1561220e5750600192915050565b60c081101561224257612223600160b8612f34565b6122309060ff1682612f1d565b61223b906001612ecc565b9392505050565b612223600160f8612f34565b80516000908190811a60808110156122695760019150612398565b60b881101561228f5761227d608082612f1d565b612288906001612ecc565b9150612398565b60c081101561231057600060b78203600186019550806020036101000a86510491506001810182019350508083101561230a5760405162461bcd60e51b815260206004820152601160248201527f6164646974696f6e206f766572666c6f7700000000000000000000000000000060448201526064016105d0565b50612398565b60f88110156123245761227d60c082612f1d565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156123965760405162461bcd60e51b815260206004820152601160248201527f6164646974696f6e206f766572666c6f7700000000000000000000000000000060448201526064016105d0565b505b5092915050565b80516060906123ad57600080fd5b60006123bc83602001516121cc565b905060008184600001516123d09190612f1d565b905060008167ffffffffffffffff8111156123fb57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612425576020820181803683370190505b509050600081602001905061244a8487602001516124439190612ecc565b828561288c565b50949350505050565b60608161246181601f612ecc565b10156124af5760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f7700000000000000000000000000000000000060448201526064016105d0565b6124b98284612ecc565b845110156125095760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e647300000000000000000000000000000060448201526064016105d0565b606082158015612528576040519150600082526020820160405261244a565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612561578051835260209283019201612549565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0166040525050949350505050565b6060611dba612035836128ef565b6060815160011480156126045750607f60f81b826000815181106125da57634e487b7160e01b600052603260045260246000fd5b01602001517fff000000000000000000000000000000000000000000000000000000000000001611155b1561260d575090565b611dba61261f8351608060ff16612a5f565b83612bd1565b60606000826000015167ffffffffffffffff81111561265457634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561267e576020820181803683370190505b5090508051600014156126915792915050565b6000816020019050612398846020015182866000015161288c565b60608151600014156126c457611dba600060c0612a5f565b6000826000815181106126e757634e487b7160e01b600052603260045260246000fd5b602002602001015190506000600190505b8351811015612746576127328285838151811061272557634e487b7160e01b600052603260045260246000fd5b6020026020010151612bd1565b91508061273e81612f6e565b9150506126f8565b5061223b612759825160c060ff16612a5f565b82612bd1565b600080600080845160411461277a5760009350505050611dba565b50505060208201516040830151604184015160ff167f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156127c35760009350505050611dba565b601b8160ff1610156127dd576127da601b82612ee4565b90505b8060ff16601b141580156127f557508060ff16601c14155b156128065760009350505050611dba565b60408051600081526020810180835288905260ff831691810191909152606081018490526080810183905260019060a0016020604051602081039080840390855afa158015612859573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00151979650505050505050565b8061289657505050565b602081106128ce57825182526128ad602084612ecc565b92506128ba602083612ecc565b91506128c7602082612f1d565b9050612896565b915181516020939093036101000a6000190180199091169216919091179052565b6040805160208082528183019092526060916000919060208201818036833750505060208101849052905060007fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000841661294b5750601861297e565b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000841661297a5750601061297e565b5060005b60208110156129ea578181815181106129a757634e487b7160e01b600052603260045260246000fd5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016156129d8576129ea565b806129e281612f6e565b91505061297e565b60006129f7826020612f1d565b905060008167ffffffffffffffff811115612a2257634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612a4c576020820181803683370190505b5082810196909652508452509192915050565b6060680100000000000000008310612ab95760405162461bcd60e51b815260206004820152600e60248201527f696e70757420746f6f206c6f6e6700000000000000000000000000000000000060448201526064016105d0565b60408051600180825281830190925260009160208201818036833701905050905060378411612b4657612aec8385612ecc565b60f81b81600081518110612b1057634e487b7160e01b600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053509050611dba565b6000612b51856128ef565b9050838151612b609190612ecc565b612b6b906037612ecc565b60f81b82600081518110612b8f57634e487b7160e01b600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350612bc88282612bd1565b95945050505050565b6060806040519050835180825260208201818101602087015b81831015612c02578051835260209283019201612bea565b50855184518101855292509050808201602086015b81831015612c2f578051835260209283019201612c17565b508651929092011591909101601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660405250905092915050565b60008083601f840112612c7d578182fd5b50813567ffffffffffffffff811115612c94578182fd5b602083019150836020828501011115612cac57600080fd5b9250929050565b600060208284031215612cc4578081fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461223b578182fd5b600060208284031215612cf8578081fd5b8151801515811461223b578182fd5b60008060008060408587031215612d1c578283fd5b843567ffffffffffffffff80821115612d33578485fd5b612d3f88838901612c6c565b90965094506020870135915080821115612d57578384fd5b50612d6487828801612c6c565b95989497509550505050565b60008060008060408587031215612d85578384fd5b843567ffffffffffffffff80821115612d33578586fd5b600060208284031215612dad578081fd5b5035919050565b600060208284031215612dc5578081fd5b5051919050565b81835281816020850137506000806020838501015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60008251815b81811015612e345760208186018101518583015201612e1a565b81811115612e425782828501525b509190910192915050565b602081526000612e61602083018486612dcc565b949350505050565b604081526000612e7d604083018688612dcc565b8281036020840152612e90818587612dcc565b979650505050505050565b608081526000612eaf608083018789612dcc565b602083019590955250604081019290925260609091015292915050565b60008219821115612edf57612edf612f9d565b500190565b600060ff821660ff84168060ff03821115612f0157612f01612f9d565b019392505050565b600082612f1857612f18612fb3565b500490565b600082821015612f2f57612f2f612f9d565b500390565b600060ff821660ff841680821015612f4e57612f4e612f9d565b90039392505050565b600081612f6657612f66612f9d565b506000190190565b6000600019821415612f8257612f82612f9d565b5060010190565b600082612f9857612f98612fb3565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fdfea26469706673582212200450c45d020fe3b88acedd9f49f0101217dde8c8a2dec8842b10539d66a8a27964736f6c63430008040033", + }, + { + ContractAddr: common.HexToAddress(SystemRewardContract), + CommitUrl: "https://github.com/coredao-org/core-genesis-contract/commit/925e416b42cb97ffba3b1bad4394d7e609452e10", + Code: "6080604052600436106101bb5760003560e01c8063783028a9116100ec578063b11717241161008a578063c81b166211610064578063c81b1662146104bd578063dc927faf146104d3578063e1c7392a146104e9578063f9a2bbc7146104fe57600080fd5b8063b11717241461047b578063b3d676f314610491578063b3ee5a51146104a757600080fd5b80639dc09262116100c65780639dc0926214610415578063a78abc161461042b578063aa82dce114610445578063ac4317511461045b57600080fd5b8063783028a9146103c8578063943599fd146103de5780639a99b4f0146103f557600080fd5b80633b7681601161015957806358370f081161013357806358370f081461034e5780635d25e51d14610364578063631cbe3c1461037a5780636d70f7ae1461038257600080fd5b80633b7681601461030357806343756e5c14610319578063560f09521461032f57600080fd5b806325ee13e21161019557806325ee13e2146102995780632a5d69b2146102af5780632d067d4c146102c55780633a0b0eff146102df57600080fd5b806304e9e3a41461020357806313e7c9d81461024357806314c1e1f71461028357600080fd5b366101fe5734156101fc5760405134815233907f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db9060200160405180910390a25b005b600080fd5b34801561020f57600080fd5b5061021961100781565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561024f57600080fd5b5061027361025e3660046111d0565b60036020526000908152604090205460ff1681565b604051901515815260200161023a565b34801561028f57600080fd5b5061021961100481565b3480156102a557600080fd5b5061021961100581565b3480156102bb57600080fd5b5061021961101281565b3480156102d157600080fd5b506004546102739060ff1681565b3480156102eb57600080fd5b506102f560025481565b60405190815260200161023a565b34801561030f57600080fd5b5061021961101481565b34801561032557600080fd5b5061021961100181565b34801561033b57600080fd5b506102f56a084595161401484a00000081565b34801561035a57600080fd5b506102f560015481565b34801561037057600080fd5b5061021961101181565b6101fc610514565b34801561038e57600080fd5b5061027361039d3660046111d0565b73ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205460ff1690565b3480156103d457600080fd5b5061021961100881565b3480156103ea57600080fd5b506102196201000181565b34801561040157600080fd5b506102f56104103660046111ec565b610686565b34801561042157600080fd5b5061021961100681565b34801561043757600080fd5b506000546102739060ff1681565b34801561045157600080fd5b5061021961101081565b34801561046757600080fd5b506101fc610476366004611217565b610898565b34801561048757600080fd5b5061021961100981565b34801561049d57600080fd5b5061021961101381565b3480156104b357600080fd5b5061021961101581565b3480156104c957600080fd5b5061021961100281565b3480156104df57600080fd5b5061021961100381565b3480156104f557600080fd5b506101fc610e91565b34801561050a57600080fd5b5061021961100081565b60005460ff16610585576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e6974207965740000000000000060448201526064015b60405180910390fd5b34156106845760015447111561064e576000600154476105a591906113cc565b60045490915060ff161561061b5761100873ffffffffffffffffffffffffffffffffffffffff166344df8e70826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156105fd57600080fd5b505af1158015610611573d6000803e3d6000fd5b505050505061064c565b6040516110099082156108fc029083906000818181858888f1935050505015801561064a573d6000803e3d6000fd5b505b505b60405134815233907f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db9060200160405180910390a25b565b6000805460ff166106f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015260640161057c565b3360009081526003602052604090205460ff16610792576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c60448201527f20746865206d6574686f64000000000000000000000000000000000000000000606482015260840161057c565b60004783106107a157476107a3565b825b905073ffffffffffffffffffffffffffffffffffffffff8416158015906107c957508015155b156108675760405173ffffffffffffffffffffffffffffffffffffffff85169082156108fc029083906000818181858888f19350505050158015610811573d6000803e3d6000fd5b508373ffffffffffffffffffffffffffffffffffffffff167ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a08260405161085a91815260200190565b60405180910390a2610891565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b60005460ff16610904576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015260640161057c565b3361100614610995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f746865206d73672073656e646572206d75737420626520676f7665726e616e6360448201527f6520636f6e747261637400000000000000000000000000000000000000000000606482015260840161057c565b610a0984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601381527f696e63656e7469766542616c616e63654361700000000000000000000000000060208201529150610fa09050565b15610afe5760208114610a4c5783836040517fad23613c00000000000000000000000000000000000000000000000000000000815260040161057c929190611301565b6000610a92600084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610ff99050565b905080610af65784848260017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040517f808861f900000000000000000000000000000000000000000000000000000000815260040161057c95949392919061134f565b600155610e4e565b610b7284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600681527f69734275726e000000000000000000000000000000000000000000000000000060208201529150610fa09050565b15610c835760018114610bb55783836040517fad23613c00000000000000000000000000000000000000000000000000000000815260040161057c929190611301565b6000610bfb600084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506110799050565b905060018160ff161115610c4757848482600060016040517f808861f900000000000000000000000000000000000000000000000000000000815260040161057c959493929190611380565b600480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600160ff90931692909214919091179055610e4e565b610cf784848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81527f6164644f70657261746f7200000000000000000000000000000000000000000060208201529150610fa09050565b15610e185760148114610d3a5783836040517fad23613c00000000000000000000000000000000000000000000000000000000815260040161057c929190611301565b6000610d80600084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506110f99050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604090205490915060ff16610e125773ffffffffffffffffffffffffffffffffffffffff8116600090815260036020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556002805491610e0c836113e3565b91905055505b50610e4e565b83836040517f64b4f60400000000000000000000000000000000000000000000000000000000815260040161057c929190611301565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610e83949392919061131d565b60405180910390a150505050565b60005460ff1615610efe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015260640161057c565b60036020527f33addd3fc9ee56d50a089d2d6cd76d99d7475a4a76a148b9fb18f7cc838ae9b0805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00918216811790925561100160009081527f590116af6c079c9455eb0ac05789cecd29aca392cec0ad05dd1fecf1a02204b28054831684179055600280556a084595161401484a000000835580549091169091179055565b600081604051602001610fb391906112c8565b6040516020818303038152906040528051906020012083604051602001610fda91906112c8565b6040516020818303038152906040528051906020012014905092915050565b60006110068260206113b4565b83511015611070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f55696e743235365f6f75744f66426f756e64730000000000000000000000604482015260640161057c565b50016020015190565b60006110868260016113b4565b835110156110f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f746f55696e74385f6f75744f66426f756e647300000000000000000000000000604482015260640161057c565b50016001015190565b60006111068260146113b4565b83511015611170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e64730000000000000000000000604482015260640161057c565b5001602001516c01000000000000000000000000900490565b60008083601f84011261119a578182fd5b50813567ffffffffffffffff8111156111b1578182fd5b6020830191508360208285010111156111c957600080fd5b9250929050565b6000602082840312156111e1578081fd5b81356108918161144b565b600080604083850312156111fe578081fd5b82356112098161144b565b946020939093013593505050565b6000806000806040858703121561122c578182fd5b843567ffffffffffffffff80821115611243578384fd5b61124f88838901611189565b90965094506020870135915080821115611267578384fd5b5061127487828801611189565b95989497509550505050565b81835281816020850137506000806020838501015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60008251815b818110156112e857602081860181015185830152016112ce565b818111156112f65782828501525b509190910192915050565b602081526000611315602083018486611280565b949350505050565b604081526000611331604083018688611280565b8281036020840152611344818587611280565b979650505050505050565b608081526000611363608083018789611280565b602083019590955250604081019290925260609091015292915050565b608081526000611394608083018789611280565b60ff95909516602083015250604081019290925260609091015292915050565b600082198211156113c7576113c761141c565b500190565b6000828210156113de576113de61141c565b500390565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156114155761141561141c565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff8116811461146d57600080fd5b5056fea2646970667358221220980762956ed408c4076d89d89ed523414fa9ff7b1926905c10a167e7c36c83ee64736f6c63430008040033", + }, + { + ContractAddr: common.HexToAddress(LightClientContract), + CommitUrl: "https://github.com/coredao-org/core-genesis-contract/commit/925e416b42cb97ffba3b1bad4394d7e609452e10", + Code: "608060405234801561001057600080fd5b506004361061058a5760003560e01c80638b07ac61116102e2578063b8a6c08611610191578063dfb6419f116100ee578063edade189116100a2578063f7d134071161007c578063f7d1340714610abe578063f9a2bbc714610ac7578063fdd31fcd14610ad057600080fd5b8063edade18914610a9b578063f016e48114610aae578063f446687d14610ab657600080fd5b8063e287d9ac116100d3578063e287d9ac14610a77578063e75d72c714610a80578063ea54b2aa14610a9357600080fd5b8063dfb6419f14610a5c578063e1c7392a14610a6f57600080fd5b8063d45c443511610145578063dc927faf1161012a578063dc927faf14610a40578063dcae76ab14610a49578063dd86037e14610a5257600080fd5b8063d45c443514610a25578063d5fe555814610a3857600080fd5b8063c81b166211610176578063c81b166214610a01578063cab8966b14610a0a578063d06305a914610a1257600080fd5b8063b8a6c086146109d8578063b95c4a57146109f857600080fd5b8063a8b0bb831161023f578063ac7b3b7c116101f3578063b1171724116101d8578063b1171724146109bd578063b3d676f3146109c6578063b3ee5a51146109cf57600080fd5b8063ac7b3b7c146109aa578063ad2dec82146109b357600080fd5b8063ab6d0e5111610224578063ab6d0e5114610951578063ac0e37a014610984578063ac4317511461099757600080fd5b8063a8b0bb831461093f578063aa82dce11461094857600080fd5b806394860233116102965780639dc092621161027b5780639dc0926214610916578063a7206cd61461091f578063a78abc161461093257600080fd5b806394860233146108d257806395118889146108f557600080fd5b8063930e1b09116102c7578063930e1b091461089557806393e9d413146108b5578063943599fd146108c857600080fd5b80638b07ac61146108795780638ea7e9be1461088257600080fd5b80633b7681601161043e5780636daf2f5b1161039b578063792626be1161034f57806382f8b6e91161033457806382f8b6e91461083f578063896efbf2146108485780638a9c5aa11461087057600080fd5b8063792626be146108195780637ba532851461082c57600080fd5b806374f2272d1161038057806374f2272d146107fe578063750a012e14610807578063783028a91461081057600080fd5b80636daf2f5b146107d5578063730055aa146107de57600080fd5b806353a46729116103f25780635d25e51d116103d75780635d25e51d146107a35780635e9d2b1f146107ac5780636949b35c146107b557600080fd5b806353a4672914610792578063541333071461079b57600080fd5b806343756e5c1161042357806343756e5c1461075657806351b6ada31461075f57806351e13fac1461077f57600080fd5b80633b7681601461073a5780633cfc97bf1461074357600080fd5b8063288e8dc4116104ec5780632ed87b09116104a0578063378bc94c11610485578063378bc94c146106f3578063388d3a55146107295780633a9756121461073257600080fd5b80632ed87b09146106b2578063352b3355146106d257600080fd5b80632a88b694116104d15780632a88b694146106855780632b861629146106945780632ca32125146106a957600080fd5b8063288e8dc4146106745780632a5d69b21461067c57600080fd5b80631b20087c116105435780631fca5278116105285780631fca52781461063f57806325ee13e214610648578063285d84cc1461065157600080fd5b80631b20087c146106235780631c6433121461062c57600080fd5b806308f2ec061161057457806308f2ec06146105dc57806314c1e1f7146105e45780631ad5bb5c146105ed57600080fd5b80625eeee91461058f57806304e9e3a4146105ae575b600080fd5b61059b640826299e0081565b6040519081526020015b60405180910390f35b6105b761100781565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016105a5565b61059b601481565b6105b761100481565b6105b76105fb3660046134de565b60009081526011602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b61059b60085481565b6105b761063a3660046134de565b610af0565b61059b60015481565b6105b761100581565b61059b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b61059b600681565b6105b761101281565b61059b678ac7230489e8000081565b6106a76106a2366004613583565b610b27565b005b61059b60035481565b61059b6106c03660046136a1565b60136020526000908152604090205481565b6106da611208565b60405167ffffffffffffffff90911681526020016105a5565b6105b76107013660046134de565b60116020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b61059b61272481565b61059b603281565b6105b761101481565b61059b6107513660046134de565b611219565b6105b761100181565b61077261076d36600461362c565b6112df565b6040516105a5919061371f565b61059b61078d3660046134de565b61137a565b61059b61271a81565b61059b606481565b6105b761101181565b61059b60065481565b61059b6107c33660046136a1565b60106020526000908152604090205481565b61059b61274281565b6107f16107ec3660046134de565b6114e3565b6040516105a591906137f9565b61059b60045481565b61059b60025481565b6105b761100881565b61059b6108273660046134de565b61157d565b61059b61083a3660046134de565b611635565b61059b600a5481565b61085b6108563660046134de565b611661565b60405163ffffffff90911681526020016105a5565b61059b61273881565b61059b60055481565b61085b6108903660046134de565b611685565b61059b6108a336600461349d565b600c6020526000908152604090205481565b6107726108c33660046134de565b6116d2565b6105b76201000181565b6108e56108e03660046134de565b61174b565b60405190151581526020016105a5565b610908610903366004613657565b611768565b6040516105a59291906137b1565b6105b761100681565b61059b61092d3660046134de565b6118b8565b6000546108e59060ff1681565b61059b60075481565b6105b761101081565b61096461095f36600461350e565b6118dd565b60408051921515835267ffffffffffffffff9091166020830152016105a5565b6105b76109923660046134de565b611938565b6106a76109a53660046135c3565b61195c565b61059b61276a81565b61085b620bb08081565b6105b761100981565b6105b761101381565b6105b761101581565b6109eb6109e636600461362c565b612067565b6040516105a59190613779565b61059b61272e81565b6105b761100281565b61085b6120ef565b61085b610a203660046134de565b612101565b6106da610a333660046134de565b612125565b6106da612158565b6105b761100381565b61059b60095481565b6106da6212750081565b6105b7610a6a3660046134de565b612166565b6106a761218a565b61059b60125481565b6106a7610a8e36600461349d565b612308565b6107f16124c5565b6108e5610aa936600461350e565b6124e1565b61059b600781565b60025461059b565b61085b6107e081565b6105b761100081565b61059b610ade36600461349d565b600d6020526000908152604090205481565b600b8181548110610b0057600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b6040517f541d55480000000000000000000000000000000000000000000000000000000081523360048201526110049063541d55489060240160206040518083038186803b158015610b7857600080fd5b505afa158015610b8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb091906134be565b610c1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c617965720060448201526064015b60405180910390fd5b60125415610c2b57601254610c32565b640826299e005b3a14610c9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f6d75737420757365206c696d69746564206761737072696365000000000000006044820152606401610c12565b6000610cde83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092506050915061261b9050565b90506000610ceb8261269e565b60008181526011602052604090205490915073ffffffffffffffffffffffffffffffffffffffff1615610d7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f63616e27742073796e63206475706c69636174656420686561646572000000006044820152606401610c12565b6000806000610d89858561277e565b92509250925080600014610dcd57604051819085907f591f7e28c6b17bc54bdf2bdbf67daf8aaca92221f3577319607fba0ce38edc7290600090a350505050505050565b610dd8600254611661565b63ffffffff16610dea846102d06138e1565b63ffffffff1611610e57576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f63616e27742073796e6320686561646572203520646179732061676f000000006044820152606401610c12565b6000610e648760206138c9565b90506000610ea989898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092508c915061261b9050565b9050610eb3613303565b6000808060808487876064600019fa610ecb57600080fd5b5050815160208301516040840151919250906000610eeb6107e08b61391d565b9050610efb8c848b8d85896129df565b60008c8152600f602090815260409091208251610f1e9391929190910190613321565b5060008b815260116020526040812080547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790556005546009805491929091610f6b9084906138c9565b9091555050336000908152600c6020526040902054610fdf57600b80546001810182556000919091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790555b336000908152600c60205260408120805491610ffa83613ab1565b919050555060065460086000815461101190613ab1565b918290555010611055576000611025612abd565b336000908152600d60205260408120805492935083929091906110499084906138c9565b90915550506000600855505b600154891061119a57600061106b60018c6139e4565b905060006110788d61137a565b90505b63ffffffff821660009081526013602052604090205481148015906110b857508b63ffffffff1660068363ffffffff166110b591906138c9565b10155b1561111f5763ffffffff821660009081526013602052604090208190556110e16107e083613b04565b63ffffffff166111045763ffffffff831660009081526010602052604090208190555b61110d82613a56565b91506111188161137a565b905061107b565b61112a600254611661565b63ffffffff168c63ffffffff161115611146576111468d612e8f565b6111526107e08d613b04565b63ffffffff166111755763ffffffff831660009081526010602052604090208d90555b505060028b9055600189905563ffffffff8a1660009081526013602052604090208b90555b6040805173ffffffffffffffffffffffffffffffffffffffff86811682526020820185905263ffffffff8d1692908616918e917f04d2d7fea49cb37d18896bf3ec2d974275b276f48a657185bc22fb2c7bb3323a910160405180910390a45050505050505050505050505050565b6112166212750060046139a6565b81565b6000818152600f602052604081208054829160e0916112c191609c9161123e90613a76565b80601f016020809104026020016040519081016040528092919081815260200182805461126a90613a76565b80156112b75780601f1061128c576101008083540402835291602001916112b7565b820191906000526020600020905b81548152906001019060200180831161129a57829003601f168201915b5050505050015190565b63ffffffff911c166000908152601060205260409020549392505050565b6000828152600e6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845260010182529182902080548351818402810184019094528084526060939283018282801561136d57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611342575b5050505050905092915050565b6000818152600f6020526040812080546114dd9161139f916024919061123e90613a76565b7bffffffff000000000000000000000000ffffffff00000000000000007eff000000ff000000ff000000ff000000ff000000ff000000ff000000ff0000600883811c9182167fff000000ff000000ff000000ff000000ff000000ff000000ff000000ff0000009490911b93841617601090811c7cff000000ff000000ff000000ff000000ff000000ff000000ff000000ff9092167dff000000ff000000ff000000ff000000ff000000ff000000ff000000ff009094169390931790921b91909117602081811c9283167fffffffff000000000000000000000000ffffffff0000000000000000000000009290911b91821617604090811c73ffffffff000000000000000000000000ffffffff90931677ffffffff000000000000000000000000ffffffff0000000090921691909117901b17608081811c91901b1790565b92915050565b600f60205260009081526040902080546114fc90613a76565b80601f016020809104026020016040519081016040528092919081815260200182805461152890613a76565b80156115755780601f1061154a57610100808354040283529160200191611575565b820191906000526020600020905b81548152906001019060200180831161155857829003601f168201915b505050505081565b6000600754821161158c575090565b816007541080156115aa57506007546115a690600261395b565b8211155b156115b757505060075490565b8160075460026115c7919061395b565b1080156116065750600460075460036115e0919061395b565b6115ea9190613909565b6007546115f890600261395b565b61160291906138c9565b8211155b156116255781600754600361161b919061395b565b6114dd91906139cd565b6114dd600483613909565b919050565b6000818152600f602052604081208054608091611659916088919061123e90613a76565b901c92915050565b6000818152600f60205260408120805460e091611659916098919061123e90613a76565b6000818152600f6020526040812080546114dd9160e0916116ac9160689161123e90613a76565b901c600881811c62ff00ff1663ff00ff009290911b9190911617601081811c91901b1790565b6000818152600e602090815260409182902080548351818402810184019094528084526060939283018282801561173f57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611714575b50505050509050919050565b6000620bb08061175a83611661565b63ffffffff16101592915050565b60606000828067ffffffffffffffff81111561179457634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156117bd578160200160208202803683370190505b506000878152600e602052604081209194505b828110156118ad578160010160008888848181106117fe57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190611813919061349d565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002054855186908390811061185c57634e487b7160e01b600052603260045260246000fd5b60200260200101818152505084818151811061188857634e487b7160e01b600052603260045260246000fd5b60200260200101518461189b91906138c9565b93506118a681613ab1565b90506117d0565b505050935093915050565b6000818152600f6020526040812080546114dd9161139f916044919061123e90613a76565b60008060006118f08989898989896124e1565b905080156119265763ffffffff88166000908152601360205260408120549061191882612125565b92945091925061192d915050565b9150600090505b965096945050505050565b6000818152600f602052604081208054606091611659916074919061123e90613a76565b60005460ff166119c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e697420796574000000000000006044820152606401610c12565b3361100614611a59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f746865206d73672073656e646572206d75737420626520676f7665726e616e6360448201527f6520636f6e7472616374000000000000000000000000000000000000000000006064820152608401610c12565b60208114611a975783836040517fad23613c000000000000000000000000000000000000000000000000000000008152600401610c1292919061384a565b611b0b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601381527f726577617264466f7253796e6348656164657200000000000000000000000000602082015291506130d29050565b15611bb857604080516020601f8401819004810282018101909252828152600091611b4e918585808385018382808284376000920191909152506130cd92505050565b9050801580611b65575068056bc75e2d6310000081115b15611bb057848482600168056bc75e2d631000006040517f808861f9000000000000000000000000000000000000000000000000000000008152600401610c12959493929190613898565b600555612024565b611c2c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601a81527f63616c6c6572436f6d70656e736174696f6e4d6f6c6563756c65000000000000602082015291506130d29050565b15611cc257604080516020601f8401819004810282018101909252828152600091611c6f918585808385018382808284376000920191909152506130cd92505050565b9050612710811115611cba5784848260006127106040517f808861f9000000000000000000000000000000000000000000000000000000008152600401610c12959493929190613898565b600455612024565b611d3684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600981527f726f756e6453697a650000000000000000000000000000000000000000000000602082015291506130d29050565b15611dcc57604080516020601f8401819004810282018101909252828152600091611d79918585808385018382808284376000920191909152506130cd92505050565b9050600754811015611dc4576007546040517f808861f9000000000000000000000000000000000000000000000000000000008152610c129187918791859160001990600401613898565b600655612024565b611e4084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600981527f6d61785765696768740000000000000000000000000000000000000000000000602082015291506130d29050565b15611edf57604080516020601f8401819004810282018101909252828152600091611e83918585808385018382808284376000920191909152506130cd92505050565b9050801580611e93575060065481115b15611ed75784848260016006546040517f808861f9000000000000000000000000000000000000000000000000000000008152600401610c12959493929190613898565b600755612024565b611f5384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527f73746f7265426c6f636b47617350726963650000000000000000000000000000602082015291506130d29050565b15611fee57604080516020601f8401819004810282018101909252828152600091611f96918585808385018382808284376000920191909152506130cd92505050565b9050633b9aca00811015611fe657848482633b9aca006000196040517f808861f9000000000000000000000000000000000000000000000000000000008152600401610c12959493929190613898565b601255612024565b83836040517f64b4f604000000000000000000000000000000000000000000000000000000008152600401610c1292919061384a565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516120599493929190613866565b60405180910390a150505050565b6000828152600e6020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452600190810183529281902090920180548351818402810184019094528084526060939283018282801561136d57602002820191906000526020600020905b8154815260200190600101908083116120cf575050505050905092915050565b60006120fc600254611661565b905090565b6000818152600f60205260408120805460e09161165991609c919061123e90613a76565b6000818152600f60205260408120805461214c9160e0916116ac9160649161123e90613a76565b63ffffffff1692915050565b611216600462127500613940565b6000818152600f6020526040812080546060916116599160a0919061123e90613a76565b60005460ff16156121f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e6974000000000000006044820152606401610c12565b600061221a604051806080016040528060508152602001613b546050913961269e565b600180805560028290556003829055604080516080810190915260508082529293506000928392918391613b5460208301399050600061225f6107e0620bb08061391d565b63ffffffff8116600090815260106020526040812088905590915061228b838786620bb080868a6129df565b6000888152600f6020908152604090912082519293506122af929091840190613321565b5050678ac7230489e80000600555505060326004555050606460065550506014600755640826299e00601255600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b60005460ff16612374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e697420796574000000000000006044820152606401610c12565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600d602052604090205480612401576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f6e6f2072656c61796572207265776172640000000000000000000000000000006044820152606401610c12565b73ffffffffffffffffffffffffffffffffffffffff82166000818152600d602052604080822091909155517f9a99b4f0000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052829061100290639a99b4f090604401602060405180830381600087803b15801561248757600080fd5b505af115801561249b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124bf91906134f6565b50505050565b604051806080016040528060508152602001613b546050913981565b63ffffffff85166000908152601360205260408120546124ff6120ef565b63ffffffff1661250f87896138e1565b63ffffffff16118061251f575087155b80612528575080155b15612537576000915050612611565b6000818152600f6020526040812080546125579160449161123e90613a76565b90508461256957881491506126119050565b8860005b8681101561260b57612580600287613af0565b600114156125bf576125b88888838181106125ab57634e487b7160e01b600052603260045260246000fd5b905060200201358361312b565b91506125f2565b6125ef828989848181106125e357634e487b7160e01b600052603260045260246000fd5b9050602002013561312b565b91505b60019590951c948061260381613ab1565b91505061256d565b50149150505b9695505050505050565b6060600061262984846139cd565b90508067ffffffffffffffff81111561265257634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561267c576020820181803683370190505b50915060208581019085840101612694828285613157565b5050509392505050565b60006114dd600280846040516126b49190613703565b602060405180830381855afa1580156126d1573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906126f491906134f6565b60405160200161270691815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905261273e91613703565b602060405180830381855afa15801561275b573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061139f91906134f6565b60008060008061279261139f602488015190565b9050600061279f82611635565b9050806127b3575061272e91506129d89050565b6127bc86611635565b935083156127d1575061273891506129d89050565b60006127e360e06116ac60688b015190565b905060006127f0826131b0565b90508715806127fe57508088115b15612812575061276a93506129d892505050565b61281b84611661565b6128269060016138e1565b9650600061283385611685565b90506128416107e089613b04565b63ffffffff1615612887578063ffffffff168363ffffffff161415801561286d575063ffffffff811615155b15612882575061271a94506129d89350505050565b612997565b6000612892826131b0565b9050600061289f87612125565b905060006128ac88611219565b905060006128b982612125565b905060006128c78285613a09565b90506128d7600462127500613940565b67ffffffffffffffff168167ffffffffffffffff16101561290357612900600462127500613940565b90505b6129116212750060046139a6565b67ffffffffffffffff168167ffffffffffffffff16111561293d5761293a6212750060046139a6565b90505b6212750081860204600061295082613226565b90508063ffffffff168a63ffffffff1614158015612973575063ffffffff811615155b1561298f57506127249b506129d89a5050505050505050505050565b505050505050505b60006129bf837bffff0000000000000000000000000000000000000000000000000000613909565b90506129cb81866138c9565b9750600096505050505050505b9250925092565b6040805160a080825260c08201909252606091602082018180368337019050509050600060408773ffffffffffffffffffffffffffffffffffffffff16901b9050600060408563ffffffff16901b60608763ffffffff16901b608089901b612a4791906138c9565b612a5191906138c9565b90507fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606085901b1660208481019060708601908c015b81831015612aa0578051835260209283019201612a88565b509384525060188301919091526030909101529695505050505050565b600954600b8054604080516020808402820181019092528281526000949385938493830182828015612b2557602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311612afa575b5050505050905060008151905060008167ffffffffffffffff811115612b5b57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015612b84578160200160208202803683370190505b50905060005b82811015612c57576000848281518110612bb457634e487b7160e01b600052603260045260246000fd5b602002602001015190506000612c08600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461157d565b905080848481518110612c2b57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152612c4081886138c9565b965050508080612c4f90613ab1565b915050612b8a565b50600061271060045487612c6b919061395b565b612c759190613909565b9050612c8181876139cd565b95508560015b84811015612d6d5760008789868481518110612cb357634e487b7160e01b600052603260045260246000fd5b6020026020010151612cc5919061395b565b612ccf9190613909565b905080600d6000898581518110612cf657634e487b7160e01b600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612d4791906138c9565b90915550612d57905081846139cd565b9250508080612d6590613ab1565b915050612c87565b5080600d600087600081518110612d9457634e487b7160e01b600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612de591906138c9565b9091555050600060098190555b84811015612e7757600c6000878381518110612e1e57634e487b7160e01b600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600090558080612e6f90613ab1565b915050612df2565b50612e84600b60006133a5565b509695505050505050565b60005b6006811015612ec457600354821415612ea9575050565b612eb28261137a565b9150612ebd81613ab1565b9050612e92565b50600062015180612ed483612125565b67ffffffffffffffff16612ee89190613909565b90506000612ef583612166565b90506000600761100573ffffffffffffffffffffffffffffffffffffffff166373fa03ed6040518163ffffffff1660e01b815260040160206040518083038186803b158015612f4357600080fd5b505afa158015612f57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f7b91906134f6565b612f8591906139cd565b905073ffffffffffffffffffffffffffffffffffffffff821615801590612fab57508083115b156124bf576000612fbb85611938565b6000858152600e6020908152604080832073ffffffffffffffffffffffffffffffffffffffff881684526001810190925290912054919250908061304a5781546001810183556000838152602090200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87161790555b5073ffffffffffffffffffffffffffffffffffffffff93841660009081526001918201602090815260408220805480850182558184528284200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169590971694909417909555918101805491820181558252929020909101929092555050565b015190565b6000816040516020016130e59190613703565b604051602081830303815290604052805190602001208360405160200161310c9190613703565b6040516020818303038152906040528051906020012014905092915050565b600060405183815282602082015260208160408360025afa5060208160208360025afa50519392505050565b6020811061318f578251825261316e6020836138c9565b915061317b6020846138c9565b92506131886020826139cd565b9050613157565b915181516020939093036101000a6000190180199091169216919091179052565b600060ff601883901c1662ffffff8316600382116131f4576131d38260036139e4565b6131de90600861397a565b63ffffffff9182169082161c908116925061321f565b63ffffffff811692506132086003836139e4565b61321390600861397a565b63ffffffff1683901b92505b5050919050565b600080825b80156132465760011c8161323e81613acc565b92505061322b565b600060036132558460076138e1565b63ffffffff16901c9050600060038263ffffffff16116132a05761327a8260036139e4565b61328590600861397a565b63ffffffff168662ffffff1663ffffffff16901b90506132ca565b6132ab6003836139e4565b6132b690600861397a565b63ffffffff1686901c90508062ffffff1690505b628000008116156132eb5760081c62ffffff16816132e781613acc565b9250505b60188263ffffffff16901b8117945050505050919050565b60405180608001604052806004906020820280368337509192915050565b82805461332d90613a76565b90600052602060002090601f01602090048101928261334f5760008555613395565b82601f1061336857805160ff1916838001178555613395565b82800160010185558215613395579182015b8281111561339557825182559160200191906001019061337a565b506133a19291506133c6565b5090565b50805460008255906000526020600020908101906133c391906133c6565b50565b5b808211156133a157600081556001016133c7565b803573ffffffffffffffffffffffffffffffffffffffff8116811461163057600080fd5b60008083601f840112613410578182fd5b50813567ffffffffffffffff811115613427578182fd5b6020830191508360208260051b850101111561344257600080fd5b9250929050565b60008083601f84011261345a578182fd5b50813567ffffffffffffffff811115613471578182fd5b60208301915083602082850101111561344257600080fd5b803563ffffffff8116811461163057600080fd5b6000602082840312156134ae578081fd5b6134b7826133db565b9392505050565b6000602082840312156134cf578081fd5b815180151581146134b7578182fd5b6000602082840312156134ef578081fd5b5035919050565b600060208284031215613507578081fd5b5051919050565b60008060008060008060a08789031215613526578182fd5b8635955061353660208801613489565b945061354460408801613489565b9350606087013567ffffffffffffffff81111561355f578283fd5b61356b89828a016133ff565b979a9699509497949695608090950135949350505050565b60008060208385031215613595578182fd5b823567ffffffffffffffff8111156135ab578283fd5b6135b785828601613449565b90969095509350505050565b600080600080604085870312156135d8578384fd5b843567ffffffffffffffff808211156135ef578586fd5b6135fb88838901613449565b90965094506020870135915080821115613613578384fd5b5061362087828801613449565b95989497509550505050565b6000806040838503121561363e578182fd5b8235915061364e602084016133db565b90509250929050565b60008060006040848603121561366b578283fd5b83359250602084013567ffffffffffffffff811115613688578283fd5b613694868287016133ff565b9497909650939450505050565b6000602082840312156136b2578081fd5b6134b782613489565b81835281816020850137506000806020838501015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60008251613715818460208701613a2a565b9190910192915050565b6020808252825182820181905260009190848201906040850190845b8181101561376d57835173ffffffffffffffffffffffffffffffffffffffff168352928401929184019160010161373b565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b8181101561376d57835183529284019291840191600101613795565b604080825283519082018190526000906020906060840190828701845b828110156137ea578151845292840192908401906001016137ce565b50505092019290925292915050565b6020815260008251806020840152613818816040850160208701613a2a565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60208152600061385e6020830184866136bb565b949350505050565b60408152600061387a6040830186886136bb565b828103602084015261388d8185876136bb565b979650505050505050565b6080815260006138ac6080830187896136bb565b602083019590955250604081019290925260609091015292915050565b600082198211156138dc576138dc613b27565b500190565b600063ffffffff80831681851680830382111561390057613900613b27565b01949350505050565b60008261391857613918613b3d565b500490565b600063ffffffff8084168061393457613934613b3d565b92169190910492915050565b600067ffffffffffffffff8084168061393457613934613b3d565b600081600019048311821515161561397557613975613b27565b500290565b600063ffffffff8083168185168183048111821515161561399d5761399d613b27565b02949350505050565b600067ffffffffffffffff8083168185168183048111821515161561399d5761399d613b27565b6000828210156139df576139df613b27565b500390565b600063ffffffff83811690831681811015613a0157613a01613b27565b039392505050565b600067ffffffffffffffff83811690831681811015613a0157613a01613b27565b60005b83811015613a45578181015183820152602001613a2d565b838111156124bf5750506000910152565b600063ffffffff821680613a6c57613a6c613b27565b6000190192915050565b600181811c90821680613a8a57607f821691505b60208210811415613aab57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415613ac557613ac5613b27565b5060010190565b600063ffffffff80831681811415613ae657613ae6613b27565b6001019392505050565b600082613aff57613aff613b3d565b500690565b600063ffffffff80841680613b1b57613b1b613b3d565b92169190910692915050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fdfe0000402089138e40cd8b4832beb8013bc80b1425c8bcbe10fc280400000000000000000058a06ab0edc5653a6ab78490675a954f8d8b4d4f131728dcf965cd0022a02cdde59f8e63303808176bbe3919a26469706673582212209dab068a0c15df96284bce497516c95d7d36586e61b112ce0425f62f5b121afb64736f6c63430008040033", + }, + { + ContractAddr: common.HexToAddress(RelayerHubContract), + CommitUrl: "https://github.com/coredao-org/core-genesis-contract/commit/925e416b42cb97ffba3b1bad4394d7e609452e10", + Code: "6080604052600436106101ac5760003560e01c806395468d26116100ec578063b3ee5a511161008a578063e1c7392a11610064578063e1c7392a14610433578063e79a198f14610448578063f9a2bbc71461045d578063fb7cfdd71461047357600080fd5b8063b3ee5a51146103f1578063c81b166214610407578063dc927faf1461041d57600080fd5b8063aa82dce1116100c6578063aa82dce11461038f578063ac431751146103a5578063b1171724146103c5578063b3d676f3146103db57600080fd5b806395468d26146103435780639dc092621461035f578063a78abc161461037557600080fd5b806343756e5c116101595780636a87d780116101335780636a87d780146102d5578063783028a9146102f95780637ae230881461030f578063943599fd1461032c57600080fd5b806343756e5c14610253578063541d5548146102695780635d25e51d146102bf57600080fd5b806325ee13e21161018a57806325ee13e2146102115780632a5d69b2146102275780633b7681601461023d57600080fd5b806304e9e3a4146101b157806314c1e1f7146101f15780631aa3a00814610207575b600080fd5b3480156101bd57600080fd5b506101c761100781565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156101fd57600080fd5b506101c761100481565b61020f610489565b005b34801561021d57600080fd5b506101c761100581565b34801561023357600080fd5b506101c761101281565b34801561024957600080fd5b506101c761101481565b34801561025f57600080fd5b506101c761100181565b34801561027557600080fd5b506102af610284366004610dbf565b73ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090205460ff1690565b60405190151581526020016101e8565b3480156102cb57600080fd5b506101c761101181565b3480156102e157600080fd5b506102eb60025481565b6040519081526020016101e8565b34801561030557600080fd5b506101c761100881565b34801561031b57600080fd5b506102eb68056bc75e2d6310000081565b34801561033857600080fd5b506101c76201000181565b34801561034f57600080fd5b506102eb670de0b6b3a764000081565b34801561036b57600080fd5b506101c761100681565b34801561038157600080fd5b506000546102af9060ff1681565b34801561039b57600080fd5b506101c761101081565b3480156103b157600080fd5b5061020f6103c0366004610dfa565b610694565b3480156103d157600080fd5b506101c761100981565b3480156103e757600080fd5b506101c761101381565b3480156103fd57600080fd5b506101c761101581565b34801561041357600080fd5b506101c761100281565b34801561042957600080fd5b506101c761100381565b34801561043f57600080fd5b5061020f610acc565b34801561045457600080fd5b5061020f610b67565b34801561046957600080fd5b506101c761100081565b34801561047f57600080fd5b506102eb60015481565b3360009081526004602052604090205460ff16156104ee5760405162461bcd60e51b815260206004820152601660248201527f72656c6179657220616c7265616479206578697374730000000000000000000060448201526064015b60405180910390fd5b60005460ff166105405760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e6974207965740000000000000060448201526064016104e5565b33321461058f5760405162461bcd60e51b815260206004820152601360248201527f6e6f2070726f787920697320616c6c6f7765640000000000000000000000000060448201526064016104e5565b60015434146106065760405162461bcd60e51b815260206004820152602860248201527f6465706f7369742076616c756520646f6573206e6f74206d617463682072657160448201527f756972656d656e7400000000000000000000000000000000000000000000000060648201526084016104e5565b604080518082018252600180548252600254602080840191825233600081815260038352868120955186559251948401949094556004905283812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909217909155915190917fdb33a09d38b59a8fa8b7d92a1d82c8015e99f05f67ae9c9ae62315776795949691a2565b60005460ff166106e65760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e6974207965740000000000000060448201526064016104e5565b336110061461075d5760405162461bcd60e51b815260206004820152602a60248201527f746865206d73672073656e646572206d75737420626520676f7665726e616e6360448201527f6520636f6e74726163740000000000000000000000000000000000000000000060648201526084016104e5565b6107d184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81527f72657175697265644465706f736974000000000000000000000000000000000060208201529150610d1a9050565b156108e5576020811461084c5760405162461bcd60e51b815260206004820152602260248201527f6c656e677468206f662072657175697265644465706f736974206d69736d617460448201527f636800000000000000000000000000000000000000000000000000000000000060648201526084016104e5565b604080516020601f840181900481028201810190925282815260009161088a91858580838501838280828437600092019190915250610d7392505050565b905060025481116108dd5760405162461bcd60e51b815260206004820181905260248201527f7468652072657175697265644465706f736974206f7574206f662072616e676560448201526064016104e5565b600155610a89565b61095984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600481527f647565730000000000000000000000000000000000000000000000000000000060208201529150610d1a9050565b15610a5357602081146109ae5760405162461bcd60e51b815260206004820152601760248201527f6c656e677468206f662064756573206d69736d6174636800000000000000000060448201526064016104e5565b604080516020601f84018190048102820181019092528281526000916109ec91858580838501838280828437600092019190915250610d7392505050565b90506000811180156109ff575060015481105b610a4b5760405162461bcd60e51b815260206004820152601560248201527f7468652064756573206f7574206f662072616e6765000000000000000000000060448201526064016104e5565b600255610a89565b83836040517f64b4f6040000000000000000000000000000000000000000000000000000000081526004016104e5929190610ee4565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610abe9493929190610f00565b60405180910390a150505050565b60005460ff1615610b1f5760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e69740000000000000060448201526064016104e5565b68056bc75e2d631000006001908155670de0b6b3a7640000600255600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169091179055565b3360009081526004602052604090205460ff16610bc65760405162461bcd60e51b815260206004820152601660248201527f72656c6179657220646f6573206e6f742065786973740000000000000000000060448201526064016104e5565b60005460ff16610c185760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e6974207965740000000000000060448201526064016104e5565b33600081815260036020818152604080842081518083018352815481526001820180548286019081528888526004865293872080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690559490935284905592909155905181519192916108fc91610c9091610f32565b6040518115909202916000818181858888f19350505050158015610cb8573d6000803e3d6000fd5b5060208101516040516110029180156108fc02916000818181858888f19350505050158015610ceb573d6000803e3d6000fd5b5060405133907fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a48766790600090a250565b600081604051602001610d2d9190610eab565b6040516020818303038152906040528051906020012083604051602001610d549190610eab565b6040516020818303038152906040528051906020012014905092915050565b015190565b60008083601f840112610d89578182fd5b50813567ffffffffffffffff811115610da0578182fd5b602083019150836020828501011115610db857600080fd5b9250929050565b600060208284031215610dd0578081fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610df3578182fd5b9392505050565b60008060008060408587031215610e0f578283fd5b843567ffffffffffffffff80821115610e26578485fd5b610e3288838901610d78565b90965094506020870135915080821115610e4a578384fd5b50610e5787828801610d78565b95989497509550505050565b81835281816020850137506000806020838501015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60008251815b81811015610ecb5760208186018101518583015201610eb1565b81811115610ed95782828501525b509190910192915050565b602081526000610ef8602083018486610e63565b949350505050565b604081526000610f14604083018688610e63565b8281036020840152610f27818587610e63565b979650505050505050565b600082821015610f69577f4e487b710000000000000000000000000000000000000000000000000000000081526011600452602481fd5b50039056fea26469706673582212206ca64e57cb777fa5a62bac5159b3f26967ae42f99ee6ed131de5851b8536aa9664736f6c63430008040033", + }, + { + ContractAddr: common.HexToAddress(CandidateHubContract), + CommitUrl: "https://github.com/coredao-org/core-genesis-contract/commit/925e416b42cb97ffba3b1bad4394d7e609452e10", + Code: "6080604052600436106103975760003560e01c80639c54a73d116101dc578063c81b166211610102578063e59dcea5116100a0578063f04d78341161006f578063f04d7834146109b7578063f9a2bbc7146109ca578063facd743b146109e0578063fed9727e14610a0057600080fd5b8063e59dcea514610962578063e79a198f14610978578063ee9de3f61461098d578063eef50466146109a257600080fd5b8063d6dd7c0a116100dc578063d6dd7c0a14610902578063d87cf91e14610922578063dc927faf14610937578063e1c7392a1461094d57600080fd5b8063c81b1662146108aa578063cd7ac977146108c0578063d2a36e46146108ed57600080fd5b8063b11717241161017a578063b894aac511610149578063b894aac5146107dc578063ba70d54a14610848578063c666907b1461085d578063c6a9dcc01461087d57600080fd5b8063b117172414610785578063b3d676f31461079b578063b3ee5a51146107b1578063b87c6c82146107c757600080fd5b8063a9955b40116101b6578063a9955b401461071a578063aa82dce11461073a578063ac43175114610750578063ae6079f21461077057600080fd5b80639c54a73d146106d55780639dc09262146106ea578063a78abc161461070057600080fd5b806343756e5c116102c157806375b10c711161025f5780638d09732f1161022e5780638d09732f14610677578063943599fd1461068c57806395254e60146106a357806395468d26146106b857600080fd5b806375b10c7114610620578063783028a914610636578063791afc0f1461064c57806382f8b6e91461066157600080fd5b80635d25e51d1161029b5780635d25e51d146105ca57806364f54ec7146105e05780636a87d780146105f557806373fa03ed1461060b57600080fd5b806343756e5c14610594578063483a00e8146105aa57806348fdb871146105b457600080fd5b806314c1e1f7116103395780632845986b116103085780632845986b1461051b5780632a5d69b21461053057806330b5468e146105465780633b7681601461057e57600080fd5b806314c1e1f7146104c55780631768b43b146104db578063210d6fd7146104f057806325ee13e21461050557600080fd5b80630bd5a92f116103755780630bd5a92f146104145780630f43a6771461045c57806314843ac91461047257806314bfb5271461048857600080fd5b8063035f8b701461039c57806304e9e3a4146103c457806306a49fce146103f2575b600080fd5b3480156103a857600080fd5b506103b1600181565b6040519081526020015b60405180910390f35b3480156103d057600080fd5b506103da61100781565b6040516001600160a01b0390911681526020016103bb565b3480156103fe57600080fd5b50610407610a1e565b6040516103bb9190613e54565b34801561042057600080fd5b5061044c61042f366004613b3e565b6001600160a01b0316600090815260086020526040902054151590565b60405190151581526020016103bb565b34801561046857600080fd5b506103b160045481565b34801561047e57600080fd5b506103b16103e881565b34801561049457600080fd5b5061044c6104a3366004613b3e565b600a546001600160a01b03909116600090815260096020526040902054101590565b3480156104d157600080fd5b506103da61100481565b3480156104e757600080fd5b506103b1600881565b3480156104fc57600080fd5b506103b1610b15565b34801561051157600080fd5b506103da61100581565b34801561052757600080fd5b506103b1600281565b34801561053c57600080fd5b506103da61101281565b34801561055257600080fd5b5061044c610561366004613b3e565b6001600160a01b0316600090815260076020526040902054151590565b34801561058a57600080fd5b506103da61101481565b3480156105a057600080fd5b506103da61100181565b6105b2610b24565b005b3480156105c057600080fd5b506103b160015481565b3480156105d657600080fd5b506103da61101181565b3480156105ec57600080fd5b506105b2610d77565b34801561060157600080fd5b506103b160025481565b34801561061757600080fd5b50600a546103b1565b34801561062c57600080fd5b506103b1600a5481565b34801561064257600080fd5b506103da61100881565b34801561065857600080fd5b506103b1600b81565b34801561066d57600080fd5b506103b160035481565b34801561068357600080fd5b506103b1611884565b34801561069857600080fd5b506103da6201000181565b3480156106af57600080fd5b506103b1611890565b3480156106c457600080fd5b506103b168056bc75e2d6310000081565b3480156106e157600080fd5b506103b161189c565b3480156106f657600080fd5b506103da61100681565b34801561070c57600080fd5b5060005461044c9060ff1681565b34801561072657600080fd5b506105b2610735366004613bb3565b6118a8565b34801561074657600080fd5b506103da61101081565b34801561075c57600080fd5b506105b261076b366004613d0f565b611b7a565b34801561077c57600080fd5b506103b1601081565b34801561079157600080fd5b506103da61100981565b3480156107a757600080fd5b506103da61101381565b3480156107bd57600080fd5b506103da61101581565b3480156107d357600080fd5b506105b2612185565b3480156107e857600080fd5b506107fc6107f7366004613d78565b612295565b604080516001600160a01b03998a168152978916602089015295909716948601949094526060850192909252608084015260a083015260c082015260e0810191909152610100016103bb565b34801561085457600080fd5b506103b1601181565b34801561086957600080fd5b5061044c610878366004613b3e565b6122f9565b34801561088957600080fd5b506103b1610898366004613b3e565b60076020526000908152604090205481565b3480156108b657600080fd5b506103da61100281565b3480156108cc57600080fd5b506103b16108db366004613b3e565b60096020526000908152604090205481565b3480156108f957600080fd5b506103b1600a81565b34801561090e57600080fd5b506105b261091d366004613b61565b61236e565b34801561092e57600080fd5b506105b261280e565b34801561094357600080fd5b506103da61100381565b34801561095957600080fd5b506105b2612927565b34801561096e57600080fd5b506103b160055481565b34801561098457600080fd5b506105b26129dc565b34801561099957600080fd5b506103b1600481565b3480156109ae57600080fd5b506103b1601581565b6105b26109c5366004613b61565b612bc9565b3480156109d657600080fd5b506103da61100081565b3480156109ec57600080fd5b5061044c6109fb366004613b3e565b61315f565b348015610a0c57600080fd5b506103b169021e19e0c9bab240000081565b60065460609060008167ffffffffffffffff811115610a4d57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610a76578160200160208202803683370190505b50905060005b82811015610b0e5760068181548110610aa557634e487b7160e01b600052603260045260246000fd5b600091825260209091206008909102015482516001600160a01b0390911690839083908110610ae457634e487b7160e01b600052603260045260246000fd5b6001600160a01b039092166020928302919091019091015280610b0681614072565b915050610a7c565b5092915050565b610b21600860ff61405b565b81565b60005460ff16610b7b5760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e6974207965740000000000000060448201526064015b60405180910390fd5b33600090815260076020526040902054610bd75760405162461bcd60e51b815260206004820152601860248201527f63616e64696461746520646f6573206e6f7420657869737400000000000000006044820152606401610b72565b34610c245760405162461bcd60e51b815260206004820152601860248201527f76616c75652073686f756c64206e6f74206265207a65726f00000000000000006044820152606401610b72565b3360009081526007602052604081205490346006610c4360018561405b565b81548110610c6157634e487b7160e01b600052603260045260246000fd5b906000526020600020906008020160040154610c7d9190614023565b9050806006610c8d60018561405b565b81548110610cab57634e487b7160e01b600052603260045260246000fd5b906000526020600020906008020160040181905550336001600160a01b03167f4ab0f80899f780c0521f849ed8883e85682657aa1d8979dde42d5f347b995db63483604051610d04929190918252602082015260400190565b60405180910390a26001548110610d735760006006610d2460018561405b565b81548110610d4257634e487b7160e01b600052603260045260246000fd5b6000918252602082206008918202019250610d5e9060ff61405b565b8260050154169050610d7082826131d7565b50505b5050565b334114610dec5760405162461bcd60e51b815260206004820152602d60248201527f746865206d6573736167652073656e646572206d75737420626520746865206260448201527f6c6f636b2070726f6475636572000000000000000000000000000000000000006064820152608401610b72565b60005460ff16610e3e5760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e697420796574000000000000006044820152606401610b72565b3a15610e8c5760405162461bcd60e51b815260206004820152601460248201527f6761737072696365206973206e6f74207a65726f0000000000000000000000006044820152606401610b72565b600a546040517f940a4e4500000000000000000000000000000000000000000000000000000000815260048101919091526110009063940a4e4590602401600060405180830381600087803b158015610ee457600080fd5b505af1158015610ef8573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610f3e9190810190613be7565b50610f47613236565b6006546000808267ffffffffffffffff811115610f7457634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610f9d578160200160208202803683370190505b50905060005b8381101561106757610fb7601060ff61405b565b60068281548110610fd857634e487b7160e01b600052603260045260246000fd5b9060005260206000209060080201600501541682828151811061100b57634e487b7160e01b600052603260045260246000fd5b602002602001018181525050600182828151811061103957634e487b7160e01b600052603260045260246000fd5b60200260200101511415611055578261105181614072565b9350505b8061105f81614072565b915050610fa3565b5060008267ffffffffffffffff81111561109157634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156110ba578160200160208202803683370190505b5090506000805b858110156111925760018482815181106110eb57634e487b7160e01b600052603260045260246000fd5b60200260200101511415611180576006818154811061111a57634e487b7160e01b600052603260045260246000fd5b60009182526020909120600890910201546001600160a01b0316838361113f81614072565b94508151811061115f57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250505b8061118a81614072565b9150506110c1565b50600a546040517f1cf0cc5d00000000000000000000000000000000000000000000000000000000815260009161101091631cf0cc5d916111d891879190600401613f0f565b600060405180830381600087803b1580156111f257600080fd5b505af1158015611206573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261124c9190810190613c88565b9050600061125d84836004546132c3565b805190915060008167ffffffffffffffff81111561128b57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156112b4578160200160208202803683370190505b50905060008267ffffffffffffffff8111156112e057634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611309578160200160208202803683370190505b50905060008367ffffffffffffffff81111561133557634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561135e578160200160208202803683370190505b50905060005b8481101561157b5760006007600088848151811061139257634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020549050600060066001836113ce919061405b565b815481106113ec57634e487b7160e01b600052603260045260246000fd5b906000526020600020906008020190508060010160009054906101000a90046001600160a01b031686848151811061143457634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526002820154865191169086908590811061147457634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250508883815181106114b457634e487b7160e01b600052603260045260246000fd5b6020026020010151600014156114f8576103e88484815181106114e757634e487b7160e01b600052603260045260246000fd5b60200260200101818152505061152a565b806003015484848151811061151d57634e487b7160e01b600052603260045260246000fd5b6020026020010181815250505b60108c61153860018561405b565b8151811061155657634e487b7160e01b600052603260045260246000fd5b60200260200101818151179150818152505050508061157490614072565b9050611364565b506040517f270159f70000000000000000000000000000000000000000000000000000000081526110009063270159f7906115c0908890879087908790600401613e67565b600060405180830381600087803b1580156115da57600080fd5b505af11580156115ee573d6000803e3d6000fd5b505050506110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561162f57600080fd5b505af1158015611643573d6000803e3d6000fd5b5050600a546040517f773b807e000000000000000000000000000000000000000000000000000000008152611010935063773b807e9250611688918991600401613f0f565b600060405180830381600087803b1580156116a257600080fd5b505af11580156116b6573d6000803e3d6000fd5b5050505060005b8b8110156117be576000600682815481106116e857634e487b7160e01b600052603260045260246000fd5b600091825260208083206008909202909101546001600160a01b0316808352600990915260409091205490915080158015906117265750600a548111155b156117a957611737600460ff61405b565b8c848151811061175757634e487b7160e01b600052603260045260246000fd5b6020026020010151168c848151811061178057634e487b7160e01b600052603260045260246000fd5b6020908102919091018101919091526001600160a01b0383166000908152600990915260408120555b505080806117b690614072565b9150506116bd565b5060005b8b81101561183b57611829600682815481106117ee57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600802018b838151811061181c57634e487b7160e01b600052603260045260246000fd5b60200260200101516131d7565b8061183381614072565b9150506117c2565b507f46ef24241b0cc39b9df0fbf1ddfb1fde02277e0bc7fc6dc47e34d3fd828e76d2600a5460405161186f91815260200190565b60405180910390a15050505050505050505050565b610b21600460ff61405b565b610b21600260ff61405b565b610b21601060ff61405b565b336110001461191f5760405162461bcd60e51b815260206004820152602c60248201527f746865206d73672073656e646572206d7573742062652076616c696461746f7260448201527f53657420636f6e747261637400000000000000000000000000000000000000006064820152608401610b72565b6001600160a01b038316600090815260076020526040902054806119435750505050565b6000600661195260018461405b565b8154811061197057634e487b7160e01b600052603260045260246000fd5b9060005260206000209060080201905060008160040154905060025481101580156119a8575083600254826119a5919061405b565b10155b15611af35760058201546001600160a01b03871660009081526009602052604090205460049091179015611a18576001600160a01b0387166000908152600960205260409020546119fa908790614023565b6001600160a01b038816600090815260096020526040902055611a40565b85600a54611a269190614023565b6001600160a01b0388166000908152600960205260409020555b6000611a4c868461405b565b6004850181905560408051888152602081018390529192506001600160a01b038a16917f81cfec6c72eedd64db356101ba3b131efdc623de91bb003917d85a30dd79dc14910160405180910390a2600154811015611aab576008821791505b611ab584836131d7565b8515611aec576040516110029087156108fc029088906000818181858888f19350505050158015611aea573d6000803e3d6000fd5b505b5050611b71565b611afc8361364e565b6040516110029082156108fc029083906000818181858888f19350505050158015611b2b573d6000803e3d6000fd5b5060408051828152600060208201526001600160a01b038816917f81cfec6c72eedd64db356101ba3b131efdc623de91bb003917d85a30dd79dc14910160405180910390a25b5050505b505050565b60005460ff16611bcc5760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e697420796574000000000000006044820152606401610b72565b3361100614611c435760405162461bcd60e51b815260206004820152602a60248201527f746865206d73672073656e646572206d75737420626520676f7665726e616e6360448201527f6520636f6e7472616374000000000000000000000000000000000000000000006064820152608401610b72565b60208114611c815783836040517fad23613c000000000000000000000000000000000000000000000000000000008152600401610b72929190613f31565b611cf584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600e81527f72657175697265644d617267696e000000000000000000000000000000000000602082015291506139809050565b15611db557604080516020601f8401819004810282018101909252828152600091611d38918585808385018382808284376000920191909152506139d992505050565b90506002548111611dad578484826002546001611d559190614023565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040517f808861f9000000000000000000000000000000000000000000000000000000008152600401610b72959493929190613f7f565b600155612142565b611e2984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600481527f6475657300000000000000000000000000000000000000000000000000000000602082015291506139809050565b15611ed457604080516020601f8401819004810282018101909252828152600091611e6c918585808385018382808284376000920191909152506139d992505050565b9050801580611e7d57506001548110155b15611ecc57848482600180600154611e95919061405b565b6040517f808861f9000000000000000000000000000000000000000000000000000000008152600401610b72959493929190613f7f565b600255612142565b611f4884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600e81527f76616c696461746f72436f756e74000000000000000000000000000000000000602082015291506139809050565b15611fe957604080516020601f8401819004810282018101909252828152600091611f8b918585808385018382808284376000920191909152506139d992505050565b9050600581111580611f9e5750602a8110155b15611fe157848482600660296040517f808861f9000000000000000000000000000000000000000000000000000000008152600401610b72959493929190613f7f565b600455612142565b61205d84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601381527f6d6178436f6d6d697373696f6e4368616e676500000000000000000000000000602082015291506139809050565b1561210c57604080516020601f84018190048102820181019092528281526000916120a0918585808385018382808284376000920191909152506139d992505050565b9050806121045784848260017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040517f808861f9000000000000000000000000000000000000000000000000000000008152600401610b72959493929190613f7f565b600555612142565b83836040517f64b4f604000000000000000000000000000000000000000000000000000000008152600401610b72929190613f31565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516121779493929190613f4d565b60405180910390a150505050565b60005460ff166121d75760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e697420796574000000000000006044820152606401610b72565b336000908152600760205260409020546122335760405162461bcd60e51b815260206004820152601860248201527f63616e64696461746520646f6573206e6f7420657869737400000000000000006044820152606401610b72565b3360009081526007602052604081205490600661225160018461405b565b8154811061226f57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600802019050600060028260050154179050611b7582826131d7565b600681815481106122a557600080fd5b6000918252602090912060089091020180546001820154600283015460038401546004850154600586015460068701546007909701546001600160a01b039687169850948616969390951694919390929088565b6001600160a01b038116600090815260076020526040812054806123205750600092915050565b6000600661232f60018461405b565b8154811061234d57634e487b7160e01b600052603260045260246000fd5b60009182526020909120600560089092020101546011811614949350505050565b60005460ff166123c05760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e697420796574000000000000006044820152606401610b72565b3360009081526007602052604090205461241c5760405162461bcd60e51b815260206004820152601860248201527f63616e64696461746520646f6573206e6f7420657869737400000000000000006044820152606401610b72565b63ffffffff81161580159061243857506103e88163ffffffff16105b6124aa5760405162461bcd60e51b815260206004820152602f60248201527f636f6d6d697373696f6e54686f7573616e647468732073686f756c6420696e2060448201527f72616e67652028302c20313030302900000000000000000000000000000000006064820152608401610b72565b6001600160a01b0383166125255760405162461bcd60e51b8152602060048201526024808201527f636f6e73656e73757320616464726573732073686f756c64206e6f742062652060448201527f7a65726f000000000000000000000000000000000000000000000000000000006064820152608401610b72565b6001600160a01b03821661257b5760405162461bcd60e51b815260206004820152601e60248201527f66656520616464726573732073686f756c64206e6f74206265207a65726f00006044820152606401610b72565b3360009081526007602052604081205490600661259960018461405b565b815481106125b757634e487b7160e01b600052603260045260246000fd5b9060005260206000209060080201905060008160060154600a54146125e05781600301546125e6565b81600701545b9050806005548563ffffffff166125fd9190614023565b1015801561261e57508363ffffffff166005548261261b9190614023565b10155b6126905760405162461bcd60e51b815260206004820152602d60248201527f636f6d6d697373696f6e54686f7573616e64746873206f7574206f662061646a60448201527f7573746d656e742072616e6765000000000000000000000000000000000000006064820152608401610b72565b8160060154600a54146126b057600a546006830155600382015460078301555b60018201546001600160a01b03878116911614612785576001600160a01b0386166000908152600860205260409020541561272d5760405162461bcd60e51b815260206004820152601c60248201527f74686520636f6e73656e73757320616c726561647920657869737473000000006044820152606401610b72565b6001820180546001600160a01b0390811660009081526008602052604080822082905583547fffffffffffffffffffffffff000000000000000000000000000000000000000016928a16928317909355908152208390555b6002820180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0387811691821790925563ffffffff861660038501819055604051908152909188169033907f9b4c7bb5cf782797c33b6c6ca3bbd0ed9ae9e823611ebac8726889da7ef216d39060200160405180910390a4505050505050565b60005460ff166128605760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e697420796574000000000000006044820152606401610b72565b336000908152600760205260409020546128bc5760405162461bcd60e51b815260206004820152601860248201527f63616e64696461746520646f6573206e6f7420657869737400000000000000006044820152606401610b72565b336000908152600760205260408120549060066128da60018461405b565b815481106128f857634e487b7160e01b600052603260045260246000fd5b6000918252602082206008909102019150612915600260ff61405b565b8260050154169050611b7582826131d7565b60005460ff161561297a5760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e6974000000000000006044820152606401610b72565b69021e19e0c9bab240000060015568056bc75e2d631000006002556015600455600a6005556129ac620151804261403b565b600a55600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b60005460ff16612a2e5760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e697420796574000000000000006044820152606401610b72565b33600090815260076020526040902054612a8a5760405162461bcd60e51b815260206004820152601860248201527f63616e64696461746520646f6573206e6f7420657869737400000000000000006044820152606401610b72565b33600090815260076020526040812054906006612aa860018461405b565b81548110612ac657634e487b7160e01b600052603260045260246000fd5b600091825260209091206008909102016005810154909150600b811614612b2f5760405162461bcd60e51b815260206004820152601f60248201527f63616e64696461746520737461747573206973206e6f7420636c6561726564006044820152606401610b72565b6004810154612b3d8361364e565b600254811115612b9a57600060025482612b57919061405b565b9050612b6333826139de565b6002546040516110029180156108fc02916000818181858888f19350505050158015612b93573d6000803e3d6000fd5b5050505050565b6040516110029082156108fc029083906000818181858888f19350505050158015610d70573d6000803e3d6000fd5b60005460ff16612c1b5760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e697420796574000000000000006044820152606401610b72565b6006546103e81015612c6f5760405162461bcd60e51b815260206004820152601e60248201527f6d6178696d756d2063616e6469646174652073697a65207265616368656400006044820152606401610b72565b3360009081526007602052604090205415612ccc5760405162461bcd60e51b815260206004820152601860248201527f63616e64696461746520616c72656164792065786973747300000000000000006044820152606401610b72565b600154341015612d1e5760405162461bcd60e51b815260206004820152601560248201527f6465706f736974206973206e6f7420656e6f75676800000000000000000000006044820152606401610b72565b63ffffffff811615801590612d3a57506103e88163ffffffff16105b612dac5760405162461bcd60e51b815260206004820152602c60248201527f636f6d6d697373696f6e54686f7573616e647468732073686f756c642062652060448201527f696e2028302c20313030302900000000000000000000000000000000000000006064820152608401610b72565b6001600160a01b03831660009081526008602052604090205415612e125760405162461bcd60e51b815260206004820152601860248201527f636f6e73656e73757320616c72656164792065786973747300000000000000006044820152606401610b72565b6001600160a01b038316612e8d5760405162461bcd60e51b8152602060048201526024808201527f636f6e73656e73757320616464726573732073686f756c64206e6f742062652060448201527f7a65726f000000000000000000000000000000000000000000000000000000006064820152608401610b72565b6001600160a01b038216612ee35760405162461bcd60e51b815260206004820152601e60248201527f66656520616464726573732073686f756c64206e6f74206265207a65726f00006044820152606401610b72565b600a543360009081526009602052604090205410612f435760405162461bcd60e51b815260206004820152600d60248201527f697420697320696e206a61696c000000000000000000000000000000000000006044820152606401610b72565b6000600190506006604051806101000160405280336001600160a01b03168152602001866001600160a01b03168152602001856001600160a01b031681526020018463ffffffff168152602001348152602001838152602001600a5481526020018463ffffffff16815250908060018154018082558091505060019003906000526020600020906008020160009091909190915060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701555050600060068054905090508060076000336001600160a01b03166001600160a01b03168152602001908152602001600020819055508060086000876001600160a01b03166001600160a01b0316815260200190815260200160002081905550836001600160a01b0316856001600160a01b0316336001600160a01b03167fe71c4590fcb5b3e76cd2b3e68071e231bb479c3461ddccafdbbf89de64d530de863460405161315092919063ffffffff929092168252602082015260400190565b60405180910390a45050505050565b6001600160a01b038116600090815260076020526040812054806131865750600092915050565b6000600661319560018461405b565b815481106131b357634e487b7160e01b600052603260045260246000fd5b90600052602060002090600802016005015490506010811660101492505050919050565b6005820154818114611b755760058301829055825460408051838152602081018590526001600160a01b03909216917f4b35b40ad96adb69950ee8e04201a2258550524199e2fcf2b5d3830023ff99ce910160405180910390a2505050565b6000613245620151804261403b565b9050600a5481116132be5760405162461bcd60e51b815260206004820152602d60248201527f6e6f7420616c6c6f77656420746f207475726e20726f756e642c20776169742060448201527f666f72206d6f72652074696d65000000000000000000000000000000000000006064820152608401610b72565b600a55565b8251606090600080828510156132e5576132de60018461405b565b90506132e9565b8294505b80821015613627578651829082906000908a908490811061331a57634e487b7160e01b600052603260045260246000fd5b60200260200101519050600089848151811061334657634e487b7160e01b600052603260045260246000fd5b602002602001015190505b82841015613571575b828410801561338f5750808a848151811061338557634e487b7160e01b600052603260045260246000fd5b6020026020010151105b156133a65761339f60018461405b565b925061335a565b8a83815181106133c657634e487b7160e01b600052603260045260246000fd5b60200260200101518b85815181106133ee57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505089838151811061342e57634e487b7160e01b600052603260045260246000fd5b60200260200101518a858151811061345657634e487b7160e01b600052603260045260246000fd5b6020026020010181815250505b82841080156134995750808a858151811061348e57634e487b7160e01b600052603260045260246000fd5b602002602001015110155b156134b0576134a9846001614023565b9350613463565b8a84815181106134d057634e487b7160e01b600052603260045260246000fd5b60200260200101518b84815181106134f857634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505089848151811061353857634e487b7160e01b600052603260045260246000fd5b60200260200101518a848151811061356057634e487b7160e01b600052603260045260246000fd5b602002602001018181525050613351565b818b858151811061359257634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050808a85815181106135d357634e487b7160e01b600052603260045260246000fd5b602090810291909101015283898110156135f9576135f2816001614023565b965061361d565b898111156136135761360c60018261405b565b955061361d565b5050505050613627565b50505050506132e9565b6000613633868561405b565b90508015613642578088510388525b50959695505050505050565b6000600661365d60018461405b565b8154811061367b57634e487b7160e01b600052603260045260246000fd5b60009182526020822060016008909202019081015481546040519294506001600160a01b03918216939116917f17b07b19259c7122b0e5b0e3a4ca4ebf0b240e93e26cb44cff9addc7dbf9e99c9190a380546001600160a01b03908116600090815260076020908152604080832083905560018501549093168252600890529081205560065482146138cb57600680546137179060019061405b565b8154811061373557634e487b7160e01b600052603260045260246000fd5b90600052602060002090600802016006600184613752919061405b565b8154811061377057634e487b7160e01b600052603260045260246000fd5b600091825260208220835460089092020180547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039384161782556001808601548184018054841691861691909117905560028087015490840180549093169416939093179055600380850154908201556004808501549082015560058085015490820155600680850154818301556007948501549185019190915585939291613824908561405b565b8154811061384257634e487b7160e01b600052603260045260246000fd5b60009182526020808320600892830201546001600160a01b0316845283019390935260409091018120929092558391600661387e60018561405b565b8154811061389c57634e487b7160e01b600052603260045260246000fd5b60009182526020808320600160089093020191909101546001600160a01b031683528201929092526040019020555b60068054806138ea57634e487b7160e01b600052603160045260246000fd5b60008281526020812060087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019283020180547fffffffffffffffffffffffff00000000000000000000000000000000000000009081168255600182018054821690556002820180549091169055600381018290556004810182905560058101829055600681018290556007015590555050565b6000816040516020016139939190613e1b565b60405160208183030381529060405280519060200120836040516020016139ba9190613e1b565b6040516020818303038152906040528051906020012014905092915050565b015190565b80471015613a2e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610b72565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613a7b576040519150601f19603f3d011682016040523d82523d6000602084013e613a80565b606091505b5050905080611b755760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610b72565b60008083601f840112613b08578182fd5b50813567ffffffffffffffff811115613b1f578182fd5b602083019150836020828501011115613b3757600080fd5b9250929050565b600060208284031215613b4f578081fd5b8135613b5a816140d7565b9392505050565b600080600060608486031215613b75578182fd5b8335613b80816140d7565b92506020840135613b90816140d7565b9150604084013563ffffffff81168114613ba8578182fd5b809150509250925092565b600080600060608486031215613bc7578283fd5b8335613bd2816140d7565b95602085013595506040909401359392505050565b60006020808385031215613bf9578182fd5b825167ffffffffffffffff811115613c0f578283fd5b8301601f81018513613c1f578283fd5b8051613c32613c2d82613fff565b613fb0565b80828252848201915084840188868560051b8701011115613c51578687fd5b8694505b83851015613c7c578051613c68816140d7565b835260019490940193918501918501613c55565b50979650505050505050565b60006020808385031215613c9a578182fd5b825167ffffffffffffffff811115613cb0578283fd5b8301601f81018513613cc0578283fd5b8051613cce613c2d82613fff565b80828252848201915084840188868560051b8701011115613ced578687fd5b8694505b83851015613c7c578051835260019490940193918501918501613cf1565b60008060008060408587031215613d24578081fd5b843567ffffffffffffffff80821115613d3b578283fd5b613d4788838901613af7565b90965094506020870135915080821115613d5f578283fd5b50613d6c87828801613af7565b95989497509550505050565b600060208284031215613d89578081fd5b5035919050565b6000815180845260208085019450808401835b83811015613dc85781516001600160a01b031687529582019590820190600101613da3565b509495945050505050565b81835281816020850137506000806020838501015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60008251815b81811015613e3b5760208186018101518583015201613e21565b81811115613e495782828501525b509190910192915050565b602081526000613b5a6020830184613d90565b608081526000613e7a6080830187613d90565b602083820381850152613e8d8288613d90565b84810360408601528651808252828801935090820190845b81811015613eca5784516001600160a01b031683529383019391830191600101613ea5565b505084810360608601528551808252908201925081860190845b81811015613f0057825185529383019391830191600101613ee4565b50929998505050505050505050565b604081526000613f226040830185613d90565b90508260208301529392505050565b602081526000613f45602083018486613dd3565b949350505050565b604081526000613f61604083018688613dd3565b8281036020840152613f74818587613dd3565b979650505050505050565b608081526000613f93608083018789613dd3565b602083019590955250604081019290925260609091015292915050565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613ff757613ff76140c1565b604052919050565b600067ffffffffffffffff821115614019576140196140c1565b5060051b60200190565b60008219821115614036576140366140ab565b500190565b60008261405657634e487b7160e01b81526012600452602481fd5b500490565b60008282101561406d5761406d6140ab565b500390565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140a4576140a46140ab565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146140ec57600080fd5b5056fea2646970667358221220558fc5406aa47f67f65d86fb320602025f19e225381f767f7cba5789e13e187264736f6c63430008040033", + }, + { + ContractAddr: common.HexToAddress(GovHubContract), + CommitUrl: "https://github.com/coredao-org/core-genesis-contract/commit/925e416b42cb97ffba3b1bad4394d7e609452e10", + Code: "6080604052600436106102bf5760003560e01c80638202d79f1161016e578063b3d676f3116100cb578063da95691a1161007f578063e1c7392a11610064578063e1c7392a146107d7578063f9a2bbc7146107ec578063fe0d94c11461080257600080fd5b8063da95691a146107a1578063dc927faf146107c157600080fd5b8063c81b1662116100b0578063c81b166214610755578063ca6d56dc1461076b578063da35c6641461078b57600080fd5b8063b3d676f314610729578063b3ee5a511461073f57600080fd5b8063a78abc1611610122578063ac43175111610107578063ac431751146106f3578063b117172414610713578063b1610d7e1461066457600080fd5b8063a78abc16146106b3578063aa82dce1146106dd57600080fd5b80639629dccd116101535780639629dccd146106645780639dc092621461067b5780639eab52531461069157600080fd5b80638202d79f1461062b578063943599fd1461064d57600080fd5b806336e7048a1161021c57806358c35703116101d057806367c24d4c116101b557806367c24d4c146105e9578063783028a9146105ff5780637bdbe4d01461061557600080fd5b806358c35703146105b35780635d25e51d146105d357600080fd5b806340e58ee51161020157806340e58ee51461055057806343756e5c1461057057806344c9af281461058657600080fd5b806336e7048a146105255780633b7681601461053a57600080fd5b806314c1e1f71161027357806317977c611161025857806317977c61146104cc57806325ee13e2146104f95780632a5d69b21461050f57600080fd5b806314c1e1f71461049657806315373e3d146104ac57600080fd5b806304e9e3a4116102a457806304e9e3a41461040e57806308ae4b0c146104495780630b1ca49a1461047657600080fd5b8063013cf08b1461030757806302a251a3146103ea57600080fd5b366103025734156103005760405134815233907f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db9060200160405180910390a25b005b600080fd5b34801561031357600080fd5b506103886103223660046130af565b6005602052600090815260409020805460018201546006830154600784015460088501546009860154600a870154600b90970154959673ffffffffffffffffffffffffffffffffffffffff90951695939492939192909160ff8082169161010090041689565b60408051998a5273ffffffffffffffffffffffffffffffffffffffff90981660208a0152968801959095526060870193909352608086019190915260a085015260c0840152151560e08301521515610100820152610120015b60405180910390f35b3480156103f657600080fd5b5061040060025481565b6040519081526020016103e1565b34801561041a57600080fd5b5061042461100781565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016103e1565b34801561045557600080fd5b50610400610464366004612f60565b60036020526000908152604090205481565b34801561048257600080fd5b50610300610491366004612f60565b610815565b3480156104a257600080fd5b5061042461100481565b3480156104b857600080fd5b506103006104c73660046130c7565b610b5f565b3480156104d857600080fd5b506104006104e7366004612f60565b60066020526000908152604090205481565b34801561050557600080fd5b5061042461100581565b34801561051b57600080fd5b5061042461101281565b34801561053157600080fd5b50610400600181565b34801561054657600080fd5b5061042461101481565b34801561055c57600080fd5b5061030061056b3660046130af565b610ddb565b34801561057c57600080fd5b5061042461100181565b34801561059257600080fd5b506105a66105a13660046130af565b610fb6565b6040516103e191906133dc565b3480156105bf57600080fd5b506104246105ce3660046130af565b6110e6565b3480156105df57600080fd5b5061042461101181565b3480156105f557600080fd5b5061040060085481565b34801561060b57600080fd5b5061042461100881565b34801561062157600080fd5b5061040060015481565b34801561063757600080fd5b5061064061111d565b6040516103e191906133c9565b34801561065957600080fd5b506104246201000181565b34801561067057600080fd5b506104006203138081565b34801561068757600080fd5b5061042461100681565b34801561069d57600080fd5b506106a6611139565b6040516103e191906133b6565b3480156106bf57600080fd5b506000546106cd9060ff1681565b60405190151581526020016103e1565b3480156106e957600080fd5b5061042461101081565b3480156106ff57600080fd5b5061030061070e366004613046565b6111a8565b34801561071f57600080fd5b5061042461100981565b34801561073557600080fd5b5061042461101381565b34801561074b57600080fd5b5061042461101581565b34801561076157600080fd5b5061042461100281565b34801561077757600080fd5b50610300610786366004612f60565b61168f565b34801561079757600080fd5b5061040060075481565b3480156107ad57600080fd5b506104006107bc366004612f7a565b611876565b3480156107cd57600080fd5b5061042461100381565b3480156107e357600080fd5b50610300611dfc565b3480156107f857600080fd5b5061042461100081565b6103006108103660046130af565b611fb9565b60005460ff1661086c5760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e6974207965740000000000000060448201526064015b60405180910390fd5b33611006146108e35760405162461bcd60e51b815260206004820152602a60248201527f746865206d73672073656e646572206d75737420626520676f7665726e616e6360448201527f6520636f6e7472616374000000000000000000000000000000000000000000006064820152608401610863565b6004546005106109355760405162461bcd60e51b815260206004820152601c60248201527f6174206c656173742066697665206d656d6265727320696e2044414f000000006044820152606401610863565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260036020526040902054806109a85760405162461bcd60e51b815260206004820152601560248201527f6d656d62657220646f6573206e6f7420657869737400000000000000000000006044820152606401610863565b6004548114610a935760048054600091906109c590600190613629565b815481106109e357634e487b7160e01b600052603260045260246000fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff169050806004610a15600185613629565b81548110610a3357634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9485161790559290911681526003909152604090208190555b6004805480610ab257634e487b7160e01b600052603160045260246000fd5b6000828152602080822083017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590920190925573ffffffffffffffffffffffffffffffffffffffff8416808352600390915260408083208390555190917f83d8a881dfe94828d01f6c9dbe7cab20f8f0b9825eea51b679631302e700085191a25050565b60005460ff16610bb15760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e697420796574000000000000006044820152606401610863565b33600090815260036020526040902054610c335760405162461bcd60e51b815260206004820152602960248201527f6f6e6c79206d656d62657220697320616c6c6f77656420746f2063616c6c207460448201527f6865206d6574686f6400000000000000000000000000000000000000000000006064820152608401610863565b6001610c3e83610fb6565b6006811115610c5d57634e487b7160e01b600052602160045260246000fd5b14610caa5760405162461bcd60e51b815260206004820152601060248201527f766f74696e6720697320636c6f736564000000000000000000000000000000006044820152606401610863565b6000828152600560209081526040808320338452600c8101909252909120805460ff1615610d1a5760405162461bcd60e51b815260206004820152601360248201527f766f74657220616c726561647920766f746564000000000000000000000000006044820152606401610863565b8215610d40576001826008016000828254610d3591906135f1565b90915550610d5b9050565b6001826009016000828254610d5591906135f1565b90915550505b805483151561010081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009092169190911760011782556040805133815260208101879052908101919091527fd356173ae8eeea8691aee4c1be712c314a975a3d43ebc48b08ca54d0dac91228906060015b60405180910390a150505050565b60005460ff16610e2d5760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e697420796574000000000000006044820152606401610863565b6000610e3882610fb6565b90506000816006811115610e5c57634e487b7160e01b600052602160045260246000fd5b1480610e8757506001816006811115610e8557634e487b7160e01b600052602160045260246000fd5b145b610ed35760405162461bcd60e51b815260206004820152601f60248201527f63616e6e6f742063616e63656c2066696e69736865642070726f706f73616c006044820152606401610863565b6000828152600560205260409020600181015473ffffffffffffffffffffffffffffffffffffffff163314610f4a5760405162461bcd60e51b815260206004820152601760248201527f6f6e6c792063616e63656c2062792070726f706f7365720000000000000000006044820152606401610863565b600b810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556040517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90610fa99085815260200190565b60405180910390a1505050565b60008160075410158015610fc957508115155b6110155760405162461bcd60e51b815260206004820152601a60248201527f73746174653a20696e76616c69642070726f706f73616c2069640000000000006044820152606401610863565b6000828152600560205260409020600b81015460ff16156110395750600292915050565b8060060154431161104d5750600092915050565b806007015443116110615750600192915050565b8060090154816008015411158061108c5750600281600a01546110849190613609565b816008015411155b1561109a5750600392915050565b600b810154610100900460ff16156110b55750600592915050565b60085481600701546110c791906135f1565b4311156110d75750600692915050565b50600492915050565b50919050565b600481815481106110f657600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b6040518060a00160405280606b815260200161372e606b913981565b6060600480548060200260200160405190810160405280929190818152602001828054801561119e57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611173575b5050505050905090565b60005460ff166111fa5760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e697420796574000000000000006044820152606401610863565b33611006146112715760405162461bcd60e51b815260206004820152602a60248201527f746865206d73672073656e646572206d75737420626520676f7665726e616e6360448201527f6520636f6e7472616374000000000000000000000000000000000000000000006064820152608401610863565b602081146112af5783836040517fad23613c000000000000000000000000000000000000000000000000000000008152600401610863929190613404565b61132384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601581527f70726f706f73616c4d61784f7065726174696f6e730000000000000000000000602082015291506124f39050565b156113d257604080516020601f84018190048102820181019092528281526000916113669185858083850183828082843760009201919091525061254c92505050565b9050806113ca5784848260017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040517f808861f900000000000000000000000000000000000000000000000000000000815260040161086395949392919061344a565b60015561165a565b61144684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81527f766f74696e67506572696f640000000000000000000000000000000000000000602082015291506124f39050565b156114fb57604080516020601f84018190048102820181019092528281526000916114899185858083850183828082843760009201919091525061254c92505050565b90506170808110156114f3578484826170807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040517f808861f900000000000000000000000000000000000000000000000000000000815260040161086395949392919061344a565b60025561165a565b61156f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81527f657865637574696e67506572696f640000000000000000000000000000000000602082015291506124f39050565b1561162457604080516020601f84018190048102820181019092528281526000916115b29185858083850183828082843760009201919091525061254c92505050565b905061708081101561161c578484826170807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040517f808861f900000000000000000000000000000000000000000000000000000000815260040161086395949392919061344a565b60085561165a565b83836040517f64b4f604000000000000000000000000000000000000000000000000000000008152600401610863929190613404565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610dcd9493929190613418565b60005460ff166116e15760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e697420796574000000000000006044820152606401610863565b33611006146117585760405162461bcd60e51b815260206004820152602a60248201527f746865206d73672073656e646572206d75737420626520676f7665726e616e6360448201527f6520636f6e7472616374000000000000000000000000000000000000000000006064820152608401610863565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260036020526040902054156117cb5760405162461bcd60e51b815260206004820152601560248201527f6d656d62657220616c72656164792065786973747300000000000000000000006044820152606401610863565b600480546001810182557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841690811790915590546000828152600360205260408082209290925590517fb251eb052afc73ffd02ffe85ad79990a8b3fed60d76dbc2fa2fdd7123dffd9149190a250565b6000805460ff166118c95760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e697420796574000000000000006044820152606401610863565b3360009081526003602052604090205461194b5760405162461bcd60e51b815260206004820152602960248201527f6f6e6c79206d656d62657220697320616c6c6f77656420746f2063616c6c207460448201527f6865206d6574686f6400000000000000000000000000000000000000000000006064820152608401610863565b8451865114801561195d575083518651145b801561196a575082518651145b6119dc5760405162461bcd60e51b815260206004820152602c60248201527f70726f706f73616c2066756e6374696f6e20696e666f726d6174696f6e20617260448201527f697479206d69736d6174636800000000000000000000000000000000000000006064820152608401610863565b8551611a2a5760405162461bcd60e51b815260206004820152601460248201527f6d7573742070726f7669646520616374696f6e730000000000000000000000006044820152606401610863565b60015486511115611a7d5760405162461bcd60e51b815260206004820152601060248201527f746f6f206d616e7920616374696f6e73000000000000000000000000000000006044820152606401610863565b336000908152600660205260409020548015611bf6576000611a9e82610fb6565b90506001816006811115611ac257634e487b7160e01b600052602160045260246000fd5b1415611b38576040805162461bcd60e51b81526020600482015260248101919091527f6f6e65206c6976652070726f706f73616c207065722070726f706f7365722c2060448201527f666f756e6420616e20616c7265616479206163746976652070726f706f73616c6064820152608401610863565b6000816006811115611b5a57634e487b7160e01b600052602160045260246000fd5b1415611bf45760405162461bcd60e51b815260206004820152604160248201527f6f6e65206c6976652070726f706f73616c207065722070726f706f7365722c2060448201527f666f756e6420616e20616c72656164792070656e64696e672070726f706f736160648201527f6c00000000000000000000000000000000000000000000000000000000000000608482015260a401610863565b505b6000611c034360016135f1565b9050600060025482611c1591906135f1565b600780549192506000611c27836136c8565b909155505060075460008181526005602090815260409091208281556001810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790558b5192955091611c87916002840191908d01906129ff565b508851611c9d90600383019060208c0190612a89565b508751611cb390600483019060208b0190612ac4565b508651611cc990600583019060208a0190612b1d565b50828160060181905550818160070181905550600081600801819055506000816009018190555060048054905081600a0181905550600081600b0160006101000a81548160ff021916908315150217905550600081600b0160016101000a81548160ff02191690831515021790555083600660008360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f5f3f8da802ee6afde8d4395e43c640a216eed19aa3e90c7eda8ce88cb2954c4d84338c8c8c8c89896004805490508f604051611de69a9998979695949392919061347b565b60405180910390a1509198975050505050505050565b60005460ff1615611e4f5760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e6974000000000000006044820152606401610863565b600180556203138060028190556008556040805160a08101909152606b808252600091611eb591611eb0919061372e602083013960408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b612551565b805190915060005b81811015611f89576000611ef7848381518110611eea57634e487b7160e01b600052603260045260246000fd5b6020026020010151612683565b600480546001810182557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff9093167fffffffffffffffffffffffff00000000000000000000000000000000000000009093168317905554600091825260036020526040909120555080611f81816136c8565b915050611ebd565b5050600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550565b60005460ff1661200b5760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e697420796574000000000000006044820152606401610863565b600461201682610fb6565b600681111561203557634e487b7160e01b600052602160045260246000fd5b146120a85760405162461bcd60e51b815260206004820152603060248201527f70726f706f73616c2063616e206f6e6c7920626520657865637574656420696660448201527f20697420697320737563636565646564000000000000000000000000000000006064820152608401610863565b6000818152600560205260408120600b810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055600281015490915b818110156124c257606083600401828154811061211957634e487b7160e01b600052603260045260246000fd5b90600052602060002001805461212e90613693565b151590506121f35783600501828154811061215957634e487b7160e01b600052603260045260246000fd5b90600052602060002001805461216e90613693565b80601f016020809104026020016040519081016040528092919081815260200182805461219a90613693565b80156121e75780601f106121bc576101008083540402835291602001916121e7565b820191906000526020600020905b8154815290600101906020018083116121ca57829003601f168201915b50505050509050612285565b83600401828154811061221657634e487b7160e01b600052603260045260246000fd5b9060005260206000200160405161222d91906133aa565b604051809103902084600501838154811061225857634e487b7160e01b600052603260045260246000fd5b90600052602060002001604051602001612273929190613352565b60405160208183030381529060405290505b6000808560020184815481106122ab57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015460038701805473ffffffffffffffffffffffffffffffffffffffff90921691869081106122f457634e487b7160e01b600052603260045260246000fd5b90600052602060002001548460405161230d919061338e565b60006040518083038185875af1925050503d806000811461234a576040519150601f19603f3d011682016040523d82523d6000602084013e61234f565b606091505b5091509150816123a15760405162461bcd60e51b815260206004820152601f60248201527f5472616e73616374696f6e20657865637574696f6e2072657665727465642e006044820152606401610863565b8560020184815481106123c457634e487b7160e01b600052603260045260246000fd5b60009182526020909120015460038701805473ffffffffffffffffffffffffffffffffffffffff909216917f88405ca50016c636e025868e263efe5a9f63bf11cc45404f7616394c7dc389d091908790811061243057634e487b7160e01b600052603260045260246000fd5b906000526020600020015488600401878154811061245e57634e487b7160e01b600052603260045260246000fd5b9060005260206000200189600501888154811061248b57634e487b7160e01b600052603260045260246000fd5b906000526020600020016040516124a493929190613549565b60405180910390a250505080806124ba906136c8565b9150506120ec565b506040518381527f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f90602001610fa9565b600081604051602001612506919061338e565b604051602081830303815290604052805190602001208360405160200161252d919061338e565b6040516020818303038152906040528051906020012014905092915050565b015190565b606061255c826126a3565b61256557600080fd5b6000612570836126dc565b905060008167ffffffffffffffff81111561259b57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156125e057816020015b60408051808201909152600080825260208201528152602001906001900390816125b95790505b50905060006125f2856020015161275f565b856020015161260191906135f1565b90506000805b8481101561267857612618836127e1565b915060405180604001604052808381526020018481525084828151811061264f57634e487b7160e01b600052603260045260246000fd5b602090810291909101015261266482846135f1565b925080612670816136c8565b915050612607565b509195945050505050565b805160009060151461269457600080fd5b61269d82612932565b92915050565b80516000906126b457506000919050565b6020820151805160001a9060c08210156126d2575060009392505050565b5060019392505050565b80516000906126ed57506000919050565b6000806126fd846020015161275f565b846020015161270c91906135f1565b905060008460000151856020015161272491906135f1565b90505b8082101561275657612738826127e1565b61274290836135f1565b91508261274e816136c8565b935050612727565b50909392505050565b8051600090811a60808110156127785750600092915050565b60b8811080612793575060c08110801590612793575060f881105b156127a15750600192915050565b60c08110156127d5576127b6600160b8613640565b6127c39060ff1682613629565b6127ce9060016135f1565b9392505050565b6127b6600160f8613640565b80516000908190811a60808110156127fc576001915061292b565b60b881101561282257612810608082613629565b61281b9060016135f1565b915061292b565b60c08110156128a357600060b78203600186019550806020036101000a86510491506001810182019350508083101561289d5760405162461bcd60e51b815260206004820152601160248201527f6164646974696f6e206f766572666c6f770000000000000000000000000000006044820152606401610863565b5061292b565b60f88110156128b75761281060c082613629565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156129295760405162461bcd60e51b815260206004820152601160248201527f6164646974696f6e206f766572666c6f770000000000000000000000000000006044820152606401610863565b505b5092915050565b80516000901580159061294757508151602110155b61295057600080fd5b600061295f836020015161275f565b905080836000015110156129b55760405162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f66667365740000000000006044820152606401610863565b82516000906129c5908390613629565b90506000808386602001516129da91906135f1565b90508051915060208310156129f657826020036101000a820491505b50949350505050565b828054828255906000526020600020908101928215612a79579160200282015b82811115612a7957825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190612a1f565b50612a85929150612b76565b5090565b828054828255906000526020600020908101928215612a79579160200282015b82811115612a79578251825591602001919060010190612aa9565b828054828255906000526020600020908101928215612b11579160200282015b82811115612b115782518051612b01918491602090910190612b8b565b5091602001919060010190612ae4565b50612a85929150612bfe565b828054828255906000526020600020908101928215612b6a579160200282015b82811115612b6a5782518051612b5a918491602090910190612b8b565b5091602001919060010190612b3d565b50612a85929150612c1b565b5b80821115612a855760008155600101612b77565b828054612b9790613693565b90600052602060002090601f016020900481019282612bb95760008555612a79565b82601f10612bd257805160ff1916838001178555612a79565b82800160010185558215612a795791820182811115612a79578251825591602001919060010190612aa9565b80821115612a85576000612c128282612c38565b50600101612bfe565b80821115612a85576000612c2f8282612c38565b50600101612c1b565b508054612c4490613693565b6000825580601f10612c54575050565b601f016020900490600052602060002090810190612c729190612b76565b50565b600067ffffffffffffffff831115612c8f57612c8f613717565b612cc060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8601160161357e565b9050828152838383011115612cd457600080fd5b828260208301376000602084830101529392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114612d0f57600080fd5b919050565b600082601f830112612d24578081fd5b81356020612d39612d34836135cd565b61357e565b80838252828201915082860187848660051b8901011115612d58578586fd5b855b85811015612d7d57612d6b82612ceb565b84529284019290840190600101612d5a565b5090979650505050505050565b600082601f830112612d9a578081fd5b81356020612daa612d34836135cd565b80838252828201915082860187848660051b8901011115612dc9578586fd5b855b85811015612d7d57813567ffffffffffffffff811115612de9578788fd5b8801603f81018a13612df9578788fd5b612e0a8a8783013560408401612c75565b8552509284019290840190600101612dcb565b600082601f830112612e2d578081fd5b81356020612e3d612d34836135cd565b80838252828201915082860187848660051b8901011115612e5c578586fd5b855b85811015612d7d57813567ffffffffffffffff811115612e7c578788fd5b612e8a8a87838c0101612f41565b8552509284019290840190600101612e5e565b600082601f830112612ead578081fd5b81356020612ebd612d34836135cd565b80838252828201915082860187848660051b8901011115612edc578586fd5b855b85811015612d7d57813584529284019290840190600101612ede565b60008083601f840112612f0b578182fd5b50813567ffffffffffffffff811115612f22578182fd5b602083019150836020828501011115612f3a57600080fd5b9250929050565b600082601f830112612f51578081fd5b6127ce83833560208501612c75565b600060208284031215612f71578081fd5b6127ce82612ceb565b600080600080600060a08688031215612f91578081fd5b853567ffffffffffffffff80821115612fa8578283fd5b612fb489838a01612d14565b96506020880135915080821115612fc9578283fd5b612fd589838a01612e9d565b95506040880135915080821115612fea578283fd5b612ff689838a01612e1d565b9450606088013591508082111561300b578283fd5b61301789838a01612d8a565b9350608088013591508082111561302c578283fd5b5061303988828901612f41565b9150509295509295909350565b6000806000806040858703121561305b578384fd5b843567ffffffffffffffff80821115613072578586fd5b61307e88838901612efa565b90965094506020870135915080821115613096578384fd5b506130a387828801612efa565b95989497509550505050565b6000602082840312156130c0578081fd5b5035919050565b600080604083850312156130d9578182fd5b82359150602083013580151581146130ef578182fd5b809150509250929050565b6000815180845260208085019450808401835b8381101561313f57815173ffffffffffffffffffffffffffffffffffffffff168752958201959082019060010161310d565b509495945050505050565b600081518084526020808501808196508360051b81019150828601855b8581101561319157828403895261317f8483516131e6565b98850198935090840190600101613167565b5091979650505050505050565b81835281816020850137506000806020838501015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b600081518084526131fe816020860160208601613663565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000815461323d81613693565b600182811680156132555760018114613284576132b3565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008416875282870194506132b3565b8560005260208060002060005b858110156132aa5781548a820152908401908201613291565b50505082870194505b5050505092915050565b600081546132ca81613693565b8085526020600183811680156132e7576001811461331957613347565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00851683890152604088019550613347565b866000528260002060005b8581101561333f5781548a8201860152908301908401613324565b890184019650505b505050505092915050565b7fffffffff000000000000000000000000000000000000000000000000000000008316815260006133866004830184613230565b949350505050565b600082516133a0818460208701613663565b9190910192915050565b60006127ce8284613230565b6020815260006127ce60208301846130fa565b6020815260006127ce60208301846131e6565b60208101600783106133fe57634e487b7160e01b600052602160045260246000fd5b91905290565b60208152600061338660208301848661319e565b60408152600061342c60408301868861319e565b828103602084015261343f81858761319e565b979650505050505050565b60808152600061345e60808301878961319e565b602083019590955250604081019290925260609091015292915050565b60006101408c8352602073ffffffffffffffffffffffffffffffffffffffff8d16818501528160408501526134b28285018d6130fa565b84810360608601528b51808252828d01935090820190845b818110156134e6578451835293830193918301916001016134ca565b505084810360808601526134fa818c61314a565b9250505082810360a0840152613510818961314a565b90508660c08401528560e08401528461010084015282810361012084015261353881856131e6565b9d9c50505050505050505050505050565b83815260606020820152600061356260608301856132bd565b828103604084015261357481856132bd565b9695505050505050565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156135c5576135c5613717565b604052919050565b600067ffffffffffffffff8211156135e7576135e7613717565b5060051b60200190565b6000821982111561360457613604613701565b500190565b60008261362457634e487b7160e01b81526012600452602481fd5b500490565b60008282101561363b5761363b613701565b500390565b600060ff821660ff84168082101561365a5761365a613701565b90039392505050565b60005b8381101561367e578181015183820152602001613666565b8381111561368d576000848401525b50505050565b600181811c908216806136a757607f821691505b602082108114156110e057634e487b7160e01b600052602260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156136fa576136fa613701565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfef86994548e6acce441866674e04ab84587af2d394034c094bb06d463bc143eecc4a0cfa35e0346d5690fa9f694e2fe60f349c6e1a85caad1d22200c289da40dc1294b198db68258f06e79d415a0998be7f9b38ea722694dd173b85f306128f1b10d7d7219059c28c6d6c09a26469706673582212204d585dfdeb4ac9394434fae97bcb747db1e52b3ea0517fe0f4558234d6fd871d64736f6c63430008040033", + }, + { + ContractAddr: common.HexToAddress(PledgeCandidateContract), + CommitUrl: "https://github.com/coredao-org/core-genesis-contract/commit/925e416b42cb97ffba3b1bad4394d7e609452e10", + Code: "6080604052600436106103b15760003560e01c8063845e5d6a116101e7578063b3ee5a511161010d578063db03c9dd116100a0578063e8798c3f1161006f578063e8798c3f14610c3b578063f474c8ce14610c51578063f9a2bbc714610cb3578063fc5b75a014610cc957600080fd5b8063db03c9dd14610b84578063dc927faf14610ba4578063e1c7392a14610bba578063e3b899f314610bcf57600080fd5b8063c35cc334116100dc578063c35cc33414610aea578063c81b166214610b20578063cc79f97b14610b36578063d52d2a3314610b4c57600080fd5b8063b3ee5a51146109ec578063b6fa172714610a02578063bcf5f24214610aad578063c358425414610acd57600080fd5b8063a204ce9711610185578063ac43175111610154578063ac43175114610971578063b0cc111814610991578063b1171724146109c0578063b3d676f3146109d657600080fd5b8063a204ce97146106ae578063a6d26d47146108ea578063a78abc1614610931578063aa82dce11461095b57600080fd5b806395b70888116101c157806395b708881461085157806397687f94146108685780639c562e48146108815780639dc09262146108d457600080fd5b8063845e5d6a146107fa57806392071f821461081a578063943599fd1461083a57600080fd5b806343756e5c116102d75780635fa5381e1161026a57806375b10c711161023957806375b10c711461076c578063783028a914610782578063820356c51461079857806383d44339146107cd57600080fd5b80635fa5381e146106f657806365057e771461072057806367b06a36146107405780636d5c1ff31461075657600080fd5b806351916fc0116102a657806351916fc0146106ae5780635afbc4a8146106ae5780635d25e51d146106ca5780635eeb2cf0146106e057600080fd5b806343756e5c1461063f578063477d8f7f1461065557806347a150061461066e5780634db8a60b1461068e57600080fd5b806325e2c7001161034f5780633b7681601161031e5780633b768160146105de5780633f23503d146105f45780633fe8c3071461060a57806341c1a7061461062a57600080fd5b806325e2c7001461058957806325ee13e21461059c5780632a5d69b2146105b257806337d07450146105c857600080fd5b80631003b5021161038b5780631003b5021461046657806314c1e1f7146104d85780631c96b319146104ee57806323c9c5e21461057157600080fd5b806304e9e3a4146103f95780630a4aa4d31461042c5780630fcfd4201461045057600080fd5b366103f45734156103f25760405134815233907ff11e547d796cc64acdf758e7cee90439494fd886a19159454aa61e473fdbafef9060200160405180910390a25b005b600080fd5b34801561040557600080fd5b5061040f61100781565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561043857600080fd5b5061044260025481565b604051908152602001610423565b34801561045c57600080fd5b50610442614e2081565b34801561047257600080fd5b506104b0610481366004614026565b600660205260009081526040902080546001820154600283015460038401546004909401549293919290919085565b604080519586526020860194909452928401919091526060830152608082015260a001610423565b3480156104e457600080fd5b5061040f61100481565b3480156104fa57600080fd5b50610542610509366004613ddd565b60036020819052600091825260409091208054918101546004820154600583015460068401546007909401549293919290919060ff1686565b6040805196875260208701959095529385019290925260608401526080830152151560a082015260c001610423565b34801561057d57600080fd5b50610442635341542b81565b6103f2610597366004613ddd565b610ce0565b3480156105a857600080fd5b5061040f61100581565b3480156105be57600080fd5b5061040f61101281565b3480156105d457600080fd5b50610442600f5481565b3480156105ea57600080fd5b5061040f61101481565b34801561060057600080fd5b50610442600e5481565b34801561061657600080fd5b506103f2610625366004613df7565b610ea7565b34801561063657600080fd5b50610442600781565b34801561064b57600080fd5b5061040f61100181565b34801561066157600080fd5b5061044264e8d4a5100081565b34801561067a57600080fd5b506103f2610689366004613ddd565b610eb6565b34801561069a57600080fd5b506103f26106a9366004613e29565b610ec4565b3480156106ba57600080fd5b50610442670de0b6b3a764000081565b3480156106d657600080fd5b5061040f61101181565b3480156106ec57600080fd5b5061044261c35081565b34801561070257600080fd5b5061070b600681565b60405163ffffffff9091168152602001610423565b34801561072c57600080fd5b506103f261073b366004613e64565b6110a0565b34801561074c57600080fd5b5061044260015481565b34801561076257600080fd5b50610442600c5481565b34801561077857600080fd5b5061044260075481565b34801561078e57600080fd5b5061040f61100881565b3480156107a457600080fd5b506107b86107b3366004613e8d565b61128f565b60408051928352901515602083015201610423565b3480156107d957600080fd5b506104426107e8366004613ddd565b60046020526000908152604090205481565b34801561080657600080fd5b50610442610815366004613ecd565b611502565b34801561082657600080fd5b50610442610835366004613e8d565b61157f565b34801561084657600080fd5b5061040f6201000181565b34801561085d57600080fd5b50610442620f424081565b34801561087457600080fd5b506104426402540be40081565b34801561088d57600080fd5b506108a161089c366004614026565b611757565b604080516001600160a01b039687168152959094166020860152928401919091526060830152608082015260a001610423565b3480156108e057600080fd5b5061040f61100681565b3480156108f657600080fd5b506104426109053660046140bf565b6000828152600a602090815260408083206001600160a01b038516845260010190915290205492915050565b34801561093d57600080fd5b5060005461094b9060ff1681565b6040519015158152602001610423565b34801561096757600080fd5b5061040f61101081565b34801561097d57600080fd5b506103f261098c36600461403e565b611ba7565b34801561099d57600080fd5b506109b16109ac366004613f1f565b612487565b6040516104239392919061420a565b3480156109cc57600080fd5b5061040f61100981565b3480156109e257600080fd5b5061040f61101381565b3480156109f857600080fd5b5061040f61101581565b348015610a0e57600080fd5b50610a69610a1d366004614026565b60096020526000908152604090208054600182015460028301546003840154600485015460058601546006909601546001600160a01b0395861696948616959394929391929091169087565b604080516001600160a01b03988916815296881660208801528601949094526060850192909252608084015290921660a082015260c081019190915260e001610423565b348015610ab957600080fd5b506103f2610ac8366004613f1f565b6126a5565b348015610ad957600080fd5b50600d5461070b9063ffffffff1681565b348015610af657600080fd5b5061040f610b05366004613fe6565b6005602052600090815260409020546001600160a01b031681565b348015610b2c57600080fd5b5061040f61100281565b348015610b4257600080fd5b5061044261045c81565b348015610b5857600080fd5b50610442610b673660046140bf565b600860209081526000928352604080842090915290825290205481565b348015610b9057600080fd5b506103f2610b9f366004613df7565b612ecb565b348015610bb057600080fd5b5061040f61100381565b348015610bc657600080fd5b506103f2612edb565b348015610bdb57600080fd5b50610bef610bea366004613df7565b612f9c565b6040516104239190600060c082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015292915050565b348015610c4757600080fd5b50610442600b5481565b348015610c5d57600080fd5b50610c71610c6c366004613e64565b613046565b6040516104239190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b348015610cbf57600080fd5b5061040f61100081565b348015610cd557600080fd5b506104426201518081565b60105460ff1615610d385760405162461bcd60e51b815260206004820152601b60248201527f506c656467654167656e74207265656e7472616e742063616c6c2e000000000060448201526064015b60405180910390fd5b6010805460ff19166001179055610d4f813361315a565b50610d59336133d8565b6040516001600160a01b038216602482015233604482015260009061101190349060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f97f5284a0000000000000000000000000000000000000000000000000000000017905251610de0919061417d565b60006040518083038185875af1925050503d8060008114610e1d576040519150601f19603f3d011682016040523d82523d6000602084013e610e22565b606091505b5050905080610e995760405162461bcd60e51b815260206004820152602b60248201527f63616c6c20434f52455f4147454e545f414444522e70726f787944656c65676160448201527f74652829206661696c65640000000000000000000000000000000000000000006064820152608401610d2f565b50506010805460ff19169055565b610eb1828261315a565b505050565b610ec18160006110a0565b50565b60105460ff1615610f175760405162461bcd60e51b815260206004820152601b60248201527f506c656467654167656e74207265656e7472616e742063616c6c2e00000000006044820152606401610d2f565b6010805460ff19166001179055610f2e833361315a565b50610f39823361315a565b50610f43336133d8565b6040516001600160a01b03848116602483015283166044820152336064820152608481018290526000906110119060a40160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7a1b726d0000000000000000000000000000000000000000000000000000000017905251610fd7919061417d565b6000604051808303816000865af19150503d8060008114611014576040519150601f19603f3d011682016040523d82523d6000602084013e611019565b606091505b50509050806110905760405162461bcd60e51b815260206004820152602b60248201527f63616c6c20434f52455f4147454e545f414444522e70726f78795472616e736660448201527f65722829206661696c65640000000000000000000000000000000000000000006064820152608401610d2f565b50506010805460ff191690555050565b60105460ff16156110f35760405162461bcd60e51b815260206004820152601b60248201527f506c656467654167656e74207265656e7472616e742063616c6c2e00000000006044820152606401610d2f565b6010805460ff1916600117905561110a823361315a565b50611114336133d8565b6040516001600160a01b03831660248201523360448201526064810182905260009081906110119060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f92eed00700000000000000000000000000000000000000000000000000000000179052516111a2919061417d565b6000604051808303816000865af19150503d80600081146111df576040519150601f19603f3d011682016040523d82523d6000602084013e6111e4565b606091505b50915091508161125c5760405162461bcd60e51b815260206004820152602d60248201527f63616c6c20434f52455f4147454e545f414444522e70726f7879556e44656c6560448201527f676174652829206661696c6564000000000000000000000000000000000000006064820152608401610d2f565b60008180602001905181019061127291906140a7565b905061127e3382613464565b50506010805460ff19169055505050565b601054600090819060ff16156112e75760405162461bcd60e51b815260206004820152601b60248201527f506c656467654167656e74207265656e7472616e742063616c6c2e00000000006044820152606401610d2f565b6010805460ff191660011790558260005b8181101561134f5761133e86868381811061132357634e487b7160e01b600052603260045260246000fd5b90506020020160208101906113389190613ddd565b3361315a565b5061134881614351565b90506112f8565b503360008181526004602052604080822054905160248101939093529181906110109060440160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f849a901d00000000000000000000000000000000000000000000000000000000179052516113d8919061417d565b6000604051808303816000865af19150503d8060008114611415576040519150601f19603f3d011682016040523d82523d6000602084013e61141a565b606091505b5091509150816114925760405162461bcd60e51b815260206004820152602d60248201527f63616c6c205354414b455f4855425f414444522e70726f7879436c61696d526560448201527f776172642829206661696c6564000000000000000000000000000000000000006064820152608401610d2f565b6000818060200190518101906114a891906140a7565b905080156114d55733600090815260046020526040812080548392906114cf90849061429c565b90915550505b6114de336133d8565b6114e8818561429c565b6010805460ff191690559960019950975050505050505050565b600082815b8181101561155e5761154d86868381811061153257634e487b7160e01b600052603260045260246000fd5b90506020020160208101906115479190613ddd565b8561315a565b5061155781614351565b9050611507565b5050506001600160a01b031660009081526004602052604090205492915050565b600081815b8181101561171a5760008585838181106115ae57634e487b7160e01b600052603260045260246000fd5b90506020020135905060006009600083815260200190815260200160002090508060020154600014156116235760405162461bcd60e51b815260206004820152601060248201527f627463207478206e6f7420666f756e64000000000000000000000000000000006044820152606401610d2f565b60018101546001600160a01b03163381146116a65760405162461bcd60e51b815260206004820152602560248201527f6e6f74207468652064656c656761746f72206f6620746869732062746320726560448201527f63656970740000000000000000000000000000000000000000000000000000006064820152608401610d2f565b60006116b18461357d565b90506116bd818861429c565b9650826002015460001415611703576040516001600160a01b0383169085907ff8eb61142bc2f586caeaaef859e1f1486a659d7319ae668bf01c612009be527f90600090a35b50505050808061171290614351565b915050611584565b50811561174f57336000908152600460205260408120805484929061174090849061429c565b9091555061174f9050336133d8565b505b92915050565b60008080808033611014146117d45760405162461bcd60e51b815260206004820152602d60248201527f746865206d73672073656e646572206d75737420626520626974636f696e207360448201527f74616b6520636f6e7472616374000000000000000000000000000000000000006064820152608401610d2f565b600086815260096020526040902060028101546118035760008060008060009550955095509550955050611b9e565b80546001820154600283015460038401546001600160a01b03938416995092909116965094506118379062015180906142d4565b81546001600160a01b03166000908152600360205260409020600281015460048401549294509091141561186f5760075493506118d3565b60008160020183600401548154811061189857634e487b7160e01b600052603260045260246000fd5b906000526020600020906005020190508060040154600014156118bf5760075494506118d1565b60016007546118ce91906142f3565b94505b505b60006118de8961357d565b6001600160a01b03881660009081526004602052604081208054929350839290919061190b90849061429c565b909155505060038301546000908152600a602052604090208054805b8015611b0c576001600160a01b038b16836119436001846142f3565b8154811061196157634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415611afa576001600160a01b038b166000908152600184016020526040902054891415611ac5576001600160a01b038b166000908152600184016020908152604080832083905560028601909152812055808214611a6757826119db6001846142f3565b815481106119f957634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031683611a1a6001846142f3565b81548110611a3857634e487b7160e01b600052603260045260246000fd5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b8254839080611a8657634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055019055611b0c565b6001600160a01b038b166000908152600184016020526040812080548b9290611aef9084906142f3565b90915550611b0c9050565b80611b048161433a565b915050611927565b508154611b345760038501546000908152600a6020526040812090611b318282613d05565b50505b505050600088815260096020526040812080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811682556001820180548216905560028201839055600382018390556004820183905560058201805490911690556006015550505b91939590929450565b60005460ff16611bf95760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e697420796574000000000000006044820152606401610d2f565b3361100614611c705760405162461bcd60e51b815260206004820152602a60248201527f746865206d73672073656e646572206d75737420626520676f7665726e616e6360448201527f6520636f6e7472616374000000000000000000000000000000000000000000006064820152608401610d2f565b60208114611cae5783836040517fad23613c000000000000000000000000000000000000000000000000000000008152600401610d2f92919061421d565b611d2284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601381527f7265717569726564436f696e4465706f73697400000000000000000000000000602082015291506138aa9050565b15611db357604080516020601f8401819004810282018101909252828152600091611d659185858083850183828082843760009201919091525061390392505050565b905080611dab5784848260016000196040517f808861f9000000000000000000000000000000000000000000000000000000008152600401610d2f95949392919061426b565b600155612444565b611e2784848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81527f706f776572466163746f72000000000000000000000000000000000000000000602082015291506138aa9050565b15611eb857604080516020601f8401819004810282018101909252828152600091611e6a9185858083850183828082843760009201919091525061390392505050565b905080611eb05784848260016000196040517f808861f9000000000000000000000000000000000000000000000000000000008152600401610d2f95949392919061426b565b600255612444565b611f2c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600981527f627463466163746f720000000000000000000000000000000000000000000000602082015291506138aa9050565b15611fbd57604080516020601f8401819004810282018101909252828152600091611f6f9185858083850183828082843760009201919091525061390392505050565b905080611fb55784848260016000196040517f808861f9000000000000000000000000000000000000000000000000000000008152600401610d2f95949392919061426b565b600b55612444565b61203184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81527f6d696e4274634c6f636b526f756e640000000000000000000000000000000000602082015291506138aa9050565b156120c257604080516020601f84018190048102820181019092528281526000916120749185858083850183828082843760009201919091525061390392505050565b9050806120ba5784848260016000196040517f808861f9000000000000000000000000000000000000000000000000000000008152600401610d2f95949392919061426b565b600c55612444565b61213684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81527f627463436f6e6669726d426c6f636b0000000000000000000000000000000000602082015291506138aa9050565b156121f957604080516020601f84018190048102820181019092528281526000916121799185858083850183828082843760009201919091525061390392505050565b9050806121bf5784848260016000196040517f808861f9000000000000000000000000000000000000000000000000000000008152600401610d2f95949392919061426b565b600d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff92909216919091179055612444565b61226d84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81527f6d696e42746356616c7565000000000000000000000000000000000000000000602082015291506138aa9050565b156122ff57604080516020601f84018190048102820181019092528281526000916122b09185858083850183828082843760009201919091525061390392505050565b9050806122f7578484826127106000196040517f808861f9000000000000000000000000000000000000000000000000000000008152600401610d2f95949392919061426b565b600e55612444565b61237384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601381527f64656c6567617465427463476173507269636500000000000000000000000000602082015291506138aa9050565b1561240e57604080516020601f84018190048102820181019092528281526000916123b69185858083850183828082843760009201919091525061390392505050565b9050633b9aca0081101561240657848482633b9aca006000196040517f808861f9000000000000000000000000000000000000000000000000000000008152600401610d2f95949392919061426b565b600f55612444565b83836040517f64b4f604000000000000000000000000000000000000000000000000000000008152600401610d2f92919061421d565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516124799493929190614239565b60405180910390a150505050565b60608060606000845190508067ffffffffffffffff8111156124b957634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156124e2578160200160208202803683370190505b5093508067ffffffffffffffff81111561250c57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015612535578160200160208202803683370190505b5092508067ffffffffffffffff81111561255f57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015612588578160200160208202803683370190505b50915060005b8181101561269c576000600360008884815181106125bc57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000209050806004015486838151811061260b57634e487b7160e01b600052603260045260246000fd5b602002602001018181525050670de0b6b3a7640000816003015461262f91906142b4565b85838151811061264f57634e487b7160e01b600052603260045260246000fd5b602002602001018181525050806005015484838151811061268057634e487b7160e01b600052603260045260246000fd5b60209081029190910101525061269581614351565b905061258e565b50509193909250565b80516000805b82811015612761576000600360008684815181106126d957634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020600781015490915060ff1615801561273d575080541515806127215750600481015415155b8061272f5750600681015415155b8061273d5750600581015415155b15612750578261274c81614351565b9350505b5061275a81614351565b90506126ab565b508061276c57505050565b60008167ffffffffffffffff81111561279557634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156127be578160200160208202803683370190505b50905060008267ffffffffffffffff8111156127ea57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015612813578160200160208202803683370190505b50905060008367ffffffffffffffff81111561283f57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015612868578160200160208202803683370190505b5090506000805b868110156129e7576000600360008a848151811061289d57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020600781015490915060ff16158015612901575080541515806128e55750600481015415155b806128f35750600681015415155b806129015750600581015415155b156129d657806004015486848151811061292b57634e487b7160e01b600052603260045260246000fd5b602002602001018181525050806000015485848151811061295c57634e487b7160e01b600052603260045260246000fd5b60200260200101818152505088828151811061298857634e487b7160e01b600052603260045260246000fd5b60200260200101518484815181106129b057634e487b7160e01b600052603260045260246000fd5b6001600160a01b0390921660209283029190910190910152826129d281614351565b9350505b506129e081614351565b905061286f565b5060006110116001600160a01b0316838686604051602401612a0b939291906141c7565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8223cca10000000000000000000000000000000000000000000000000000000017905251612a6e919061417d565b6000604051808303816000865af19150503d8060008114612aab576040519150601f19603f3d011682016040523d82523d6000602084013e612ab0565b606091505b5050905080612b275760405162461bcd60e51b815260206004820152603860248201527f63616c6c20434f52455f4147454e545f414444522e5f696e697469616c697a6560448201527f46726f6d506c656467654167656e742829206661696c656400000000000000006064820152608401610d2f565b6000915060005b87811015612c54576000600360008b8481518110612b5c57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020600781015490915060ff16158015612bc057508054151580612ba45750600481015415155b80612bb25750600681015415155b80612bc05750600581015415155b15612c43578060050154878581518110612bea57634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060060154868581518110612c1b57634e487b7160e01b600052603260045260246000fd5b602090810291909101015260078101805460ff1916600117905583612c3f81614351565b9450505b50612c4d81614351565b9050612b2e565b5060405161101490612c6e908590889088906024016141c7565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8223cca10000000000000000000000000000000000000000000000000000000017905251612cd1919061417d565b6000604051808303816000865af19150503d8060008114612d0e576040519150601f19603f3d011682016040523d82523d6000602084013e612d13565b606091505b50508091505080612d8c5760405162461bcd60e51b815260206004820152603760248201527f63616c6c204254435f5354414b455f414444522e5f696e697469616c697a654660448201527f726f6d506c656467654167656e742829206661696c65640000000000000000006064820152608401610d2f565b60405161101390612da39085908890602401614199565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff4e497b60000000000000000000000000000000000000000000000000000000017905251612e06919061417d565b6000604051808303816000865af19150503d8060008114612e43576040519150601f19603f3d011682016040523d82523d6000602084013e612e48565b606091505b50508091505080612ec15760405162461bcd60e51b815260206004820152603760248201527f63616c6c204254435f4147454e545f414444522e5f696e697469616c697a654660448201527f726f6d506c656467654167656e742829206661696c65640000000000000000006064820152608401610d2f565b5050505050505050565b612ed782826000610ec4565b5050565b60005460ff1615612f2e5760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e6974000000000000006044820152606401610d2f565b670de0b6b3a7640000600155614e2060025561c350600b556007600c55600d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000166006179055620f4240600e55612f8a62015180426142b4565b6007556000805460ff19166001179055565b612fd56040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506001600160a01b03808316600090815260036020818152604080842094861684526001948501825292839020835160c0810185528154815294810154918501919091526002810154928401929092528101546060830152600481015460808301526005015460a082015292915050565b6130786040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b0383166000908152600360205260409020600281015483106130e35760405162461bcd60e51b815260206004820152600f60248201527f6f7574206f6620757020626f756e6400000000000000000000000000000000006044820152606401610d2f565b80600201838154811061310657634e487b7160e01b600052603260045260246000fd5b90600052602060002090600502016040518060a00160405290816000820154815260200160018201548152602001600282015481526020016003820154815260200160048201548152505091505092915050565b6001600160a01b03808316600090815260036020908152604080832093851683526001840190915281206002810154919291156133cd57600061319d8383613908565b905080156131d3576001600160a01b038516600090815260046020526040812080548392906131cd90849061429c565b90915550505b8154600754600284015410156131ea575060018201545b600183015460048401546007546040516001600160a01b038b811660248301528a16604482015260648101859052608481019290925260a48201526000916110119160c40160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f3a4c862e0000000000000000000000000000000000000000000000000000000017905251613292919061417d565b60006040518083038185875af1925050503d80600081146132cf576040519150601f19603f3d011682016040523d82523d6000602084013e6132d4565b606091505b505090508061334b5760405162461bcd60e51b815260206004820152602660248201527f63616c6c20434f52455f4147454e545f414444522e6d6f76654461746128292060448201527f6661696c656400000000000000000000000000000000000000000000000000006064820152608401610d2f565b836001015485600001600082825461336391906142f3565b9091555050506001600160a01b03861660008181526001958601602090815260408083208381558089018490556002810184905560038101849055600481018490556005018390556007548352600882528083209383529290529081205550919250611751915050565b506000949350505050565b6001600160a01b0381166000908152600460205260409020548015612ed7576001600160a01b03821660009081526004602052604081205561341a8282613464565b604080518281526001602082015233916001600160a01b038516917fe33256fedbe96d2ddbd7462c2b1fc3b39e587b388060ce34d1ace27287dad8d3910160405180910390a35050565b804710156134b45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610d2f565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613501576040519150601f19603f3d011682016040523d82523d6000602084013e613506565b606091505b5050905080610eb15760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610d2f565b600754600082815260096020908152604080832080546001600160a01b031684526003909252822060048201546002820154939493859291905b808210156136c55760008360020183815481106135e457634e487b7160e01b600052603260045260246000fd5b906000526020600020906005020190506000816004015490508781148061360f575080876003015411155b1561361b5750506136c5565b600081815260066020526040812060040154600289015461363c91906142d4565b90506136488382613bc0565b613652908861429c565b96508260030154600014156136b05785600201858154811061368457634e487b7160e01b600052603260045260246000fd5b600091825260208220600590910201818155600181018290556002810182905560038101829055600401555b6136bb60018661429c565b94505050506135b7565b6006850154600081156137de578582116136e05750806136e3565b50845b80156137de57808760060160008282546136fd91906142f3565b909155505060058701546040516000916001600160a01b03169083156108fc0290849084818181858888f19350505050905080156137915761373f82886142f3565b6005890154604080516001600160a01b039092168252602082018590529198508c917ff8117d40f26539bfef76146b0b21a24097bf38ad67a5bde1b34f4428c6cd9793910160405180910390a26137dc565b6005880154604080516001600160a01b039092168252602082018490528c917fcf0ff1f9dab0b610323a92006ed5666b075ab010de2b59a3c36f7ad22b5be010910160405180910390a25b505b82841461381f5784600201848154811061380857634e487b7160e01b600052603260045260246000fd5b906000526020600020906005020160040154613821565b875b8760030154116138945760008a815260096020526040812080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811682556001820180548216905560028201839055600382018390556004820183905560058201805490911690556006015561389c565b600487018490555b509398975050505050505050565b6000816040516020016138bd919061417d565b60405160208183030381529060405280519060200120836040516020016138e4919061417d565b6040516020818303038152906040528051906020012014905092915050565b015190565b6002810154600754600091908082101561392457600060058501555b60028501546003850154818110613942576000945050505050611751565b81811015613bb257600087600201828154811061396f57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060050201905060008160040154905084811415613997575050613bb2565b600188015481871415613b255760048901546000838152600860209081526040808320338452909152902054808211156139f6576139d581836142f3565b60008581526008602090815260408083203384529091528120559150613a29565b600084815260086020908152604080832033845290915281208054849290613a1f9084906142f3565b9091555060009250505b8a600401548214613b05576000613a4f86848e60040154613a4a91906142f3565b613bc0565b9050856003015460001415613aad578c6002018781548110613a8157634e487b7160e01b600052603260045260246000fd5b600091825260208220600590910201818155600181018290556002810182905560038101829055600401555b6110026001600160a01b031663631cbe3c826040518263ffffffff1660e01b81526004016000604051808303818588803b158015613aea57600080fd5b505af1158015613afe573d6000803e3d6000fd5b5050505050505b8a54613b1290839061429c565b60018c01548c55600060048d0155925050505b8015613b9d57613b358382613bc0565b613b3f908961429c565b9750826003015460001415613b9d57896002018481548110613b7157634e487b7160e01b600052603260045260246000fd5b600091825260208220600590910201818155600181018290556002810182905560038101829055600401555b83613ba781614351565b945050505050613942565b600386015550505092915050565b60008183600301541015613c165760405162461bcd60e51b815260206004820152601460248201527f726577617264206973206e6f7420656e6f7567680000000000000000000000006044820152606401610d2f565b60008284600301541415613c365750600183015460006003850155613cfe565b6004840154600090815260066020526040902054600285015485548290613c5e9087906142d4565b613c6891906142d4565b613c7291906142b4565b91508185600101541015613cc85760405162461bcd60e51b815260206004820152601a60248201527f7468657265206973206e6f7420656e6f756768207265776172640000000000006044820152606401610d2f565b83856003016000828254613cdc91906142f3565b9250508190555081856001016000828254613cf791906142f3565b9091555050505b9392505050565b5080546000825590600052602060002090810190610ec191905b80821115613d335760008155600101613d1f565b5090565b80356001600160a01b0381168114613d4e57600080fd5b919050565b60008083601f840112613d64578081fd5b50813567ffffffffffffffff811115613d7b578182fd5b6020830191508360208260051b8501011115613d9657600080fd5b9250929050565b60008083601f840112613dae578182fd5b50813567ffffffffffffffff811115613dc5578182fd5b602083019150836020828501011115613d9657600080fd5b600060208284031215613dee578081fd5b613cfe82613d37565b60008060408385031215613e09578081fd5b613e1283613d37565b9150613e2060208401613d37565b90509250929050565b600080600060608486031215613e3d578081fd5b613e4684613d37565b9250613e5460208501613d37565b9150604084013590509250925092565b60008060408385031215613e76578182fd5b613e7f83613d37565b946020939093013593505050565b60008060208385031215613e9f578182fd5b823567ffffffffffffffff811115613eb5578283fd5b613ec185828601613d53565b90969095509350505050565b600080600060408486031215613ee1578283fd5b833567ffffffffffffffff811115613ef7578384fd5b613f0386828701613d53565b9094509250613f16905060208501613d37565b90509250925092565b60006020808385031215613f31578182fd5b823567ffffffffffffffff80821115613f48578384fd5b818501915085601f830112613f5b578384fd5b813581811115613f6d57613f6d614382565b8060051b604051601f19603f83011681018181108582111715613f9257613f92614382565b604052828152858101935084860182860187018a1015613fb0578788fd5b8795505b83861015613fd957613fc581613d37565b855260019590950194938601938601613fb4565b5098975050505050505050565b600060208284031215613ff7578081fd5b81357fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081168114613cfe578182fd5b600060208284031215614037578081fd5b5035919050565b60008060008060408587031215614053578081fd5b843567ffffffffffffffff8082111561406a578283fd5b61407688838901613d9d565b9096509450602087013591508082111561408e578283fd5b5061409b87828801613d9d565b95989497509550505050565b6000602082840312156140b8578081fd5b5051919050565b600080604083850312156140d1578081fd5b82359150613e2060208401613d37565b6000815180845260208085019450808401835b838110156141195781516001600160a01b0316875295820195908201906001016140f4565b509495945050505050565b6000815180845260208085019450808401835b8381101561411957815187529582019590820190600101614137565b8183528181602085013750600080602083850101526020601f19601f840116840101905092915050565b6000825161418f81846020870161430a565b9190910192915050565b6040815260006141ac60408301856140e1565b82810360208401526141be8185614124565b95945050505050565b6060815260006141da60608301866140e1565b82810360208401526141ec8186614124565b905082810360408401526142008185614124565b9695505050505050565b6060815260006141da6060830186614124565b602081526000614231602083018486614153565b949350505050565b60408152600061424d604083018688614153565b8281036020840152614260818587614153565b979650505050505050565b60808152600061427f608083018789614153565b602083019590955250604081019290925260609091015292915050565b600082198211156142af576142af61436c565b500190565b6000826142cf57634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156142ee576142ee61436c565b500290565b6000828210156143055761430561436c565b500390565b60005b8381101561432557818101518382015260200161430d565b83811115614334576000848401525b50505050565b6000816143495761434961436c565b506000190190565b60006000198214156143655761436561436c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220e3a22bc2c3e001560a9f55d34e5d9b6ce530f56007eb42b6f736bc032421efed64736f6c63430008040033", + }, + { + ContractAddr: common.HexToAddress(BurnContract), + CommitUrl: "https://github.com/coredao-org/core-genesis-contract/commit/925e416b42cb97ffba3b1bad4394d7e609452e10", + Code: "6080604052600436106101805760003560e01c8063943599fd116100d6578063b3d676f31161007f578063dc927faf11610059578063dc927faf14610392578063e1c7392a146103a8578063f9a2bbc7146103bd57600080fd5b8063b3d676f314610350578063b3ee5a5114610366578063c81b16621461037c57600080fd5b8063aa82dce1116100b0578063aa82dce114610304578063ac4317511461031a578063b11717241461033a57600080fd5b8063943599fd146102ad5780639dc09262146102c4578063a78abc16146102da57600080fd5b806343756e5c116101385780635d25e51d116101125780635d25e51d14610261578063783028a914610277578063874b3cfb1461028d57600080fd5b806343756e5c1461021d57806344df8e701461023357806347ac3ec91461023d57600080fd5b806325ee13e21161016957806325ee13e2146101db5780632a5d69b2146101f15780633b7681601461020757600080fd5b806304e9e3a41461018557806314c1e1f7146101c5575b600080fd5b34801561019157600080fd5b5061019b61100781565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156101d157600080fd5b5061019b61100481565b3480156101e757600080fd5b5061019b61100581565b3480156101fd57600080fd5b5061019b61101281565b34801561021357600080fd5b5061019b61101481565b34801561022957600080fd5b5061019b61100181565b61023b6103d3565b005b34801561024957600080fd5b5061025360015481565b6040519081526020016101bc565b34801561026d57600080fd5b5061019b61101181565b34801561028357600080fd5b5061019b61100881565b34801561029957600080fd5b506102536b03648a260e3486a65a00000081565b3480156102b957600080fd5b5061019b6201000181565b3480156102d057600080fd5b5061019b61100681565b3480156102e657600080fd5b506000546102f49060ff1681565b60405190151581526020016101bc565b34801561031057600080fd5b5061019b61101081565b34801561032657600080fd5b5061023b6103353660046108ae565b61047f565b34801561034657600080fd5b5061019b61100981565b34801561035c57600080fd5b5061019b61101381565b34801561037257600080fd5b5061019b61101581565b34801561038857600080fd5b5061019b61100281565b34801561039e57600080fd5b5061019b61100381565b3480156103b457600080fd5b5061023b61075d565b3480156103c957600080fd5b5061019b61100081565b6001543490471115610440576000600154476103ef9190610a17565b905034811061040357506000905034610410565b61040d8134610a17565b91505b604051339082156108fc029083906000818181858888f1935050505015801561043d573d6000803e3d6000fd5b50505b801561047c5760405181815233907f8b1897d4e7a3b42570088bb1182eb6518c96a754d44bc9edd4669568bfa983269060200160405180910390a25b50565b60005460ff166104f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e6974207965740000000000000060448201526064015b60405180910390fd5b3361100614610581576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f746865206d73672073656e646572206d75737420626520676f7665726e616e6360448201527f6520636f6e74726163740000000000000000000000000000000000000000000060648201526084016104e7565b602081146105bf5783836040517fad23613c0000000000000000000000000000000000000000000000000000000081526004016104e7929190610998565b61063384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600781527f6275726e43617000000000000000000000000000000000000000000000000000602082015291506108099050565b156106e457604080516020601f84018190048102820181019092528281526000916106769185858083850183828082843760009201919091525061086292505050565b9050478110156106dc57848482477fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040517f808861f90000000000000000000000000000000000000000000000000000000081526004016104e79594939291906109e6565b60015561071a565b83836040517f64b4f6040000000000000000000000000000000000000000000000000000000081526004016104e7929190610998565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161074f94939291906109b4565b60405180910390a150505050565b60005460ff16156107ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e69740000000000000060448201526064016104e7565b6b03648a260e3486a65a0000006001908155600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169091179055565b60008160405160200161081c919061095f565b6040516020818303038152906040528051906020012083604051602001610843919061095f565b6040516020818303038152906040528051906020012014905092915050565b015190565b60008083601f840112610878578182fd5b50813567ffffffffffffffff81111561088f578182fd5b6020830191508360208285010111156108a757600080fd5b9250929050565b600080600080604085870312156108c3578384fd5b843567ffffffffffffffff808211156108da578586fd5b6108e688838901610867565b909650945060208701359150808211156108fe578384fd5b5061090b87828801610867565b95989497509550505050565b81835281816020850137506000806020838501015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60008251815b8181101561097f5760208186018101518583015201610965565b8181111561098d5782828501525b509190910192915050565b6020815260006109ac602083018486610917565b949350505050565b6040815260006109c8604083018688610917565b82810360208401526109db818587610917565b979650505050505050565b6080815260006109fa608083018789610917565b602083019590955250604081019290925260609091015292915050565b600082821015610a4e577f4e487b710000000000000000000000000000000000000000000000000000000081526011600452602481fd5b50039056fea26469706673582212201041cf31bb24fd8ad362d64aeb0e244e78627b116b221947dc607f551df0f14264736f6c63430008040033", + }, + { + ContractAddr: common.HexToAddress(FoundationContract), + CommitUrl: "https://github.com/coredao-org/core-genesis-contract/commit/925e416b42cb97ffba3b1bad4394d7e609452e10", + Code: "6080604052600436106101485760003560e01c8063943599fd116100c0578063b3d676f311610074578063c81b166211610059578063c81b166214610339578063dc927faf1461034f578063f9a2bbc71461036557600080fd5b8063b3d676f31461030d578063b3ee5a511461032357600080fd5b8063a78abc16116100a5578063a78abc16146102b7578063aa82dce1146102e1578063b1171724146102f757600080fd5b8063943599fd1461028a5780639dc09262146102a157600080fd5b80633b768160116101175780635d25e51d116100fc5780635d25e51d1461023e578063783028a9146102545780637b1837de1461026a57600080fd5b80633b7681601461021257806343756e5c1461022857600080fd5b806304e9e3a41461019057806314c1e1f7146101d057806325ee13e2146101e65780632a5d69b2146101fc57600080fd5b3661018b5734156101895760405134815233907ff11e547d796cc64acdf758e7cee90439494fd886a19159454aa61e473fdbafef9060200160405180910390a25b005b600080fd5b34801561019c57600080fd5b506101a661100781565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156101dc57600080fd5b506101a661100481565b3480156101f257600080fd5b506101a661100581565b34801561020857600080fd5b506101a661101281565b34801561021e57600080fd5b506101a661101481565b34801561023457600080fd5b506101a661100181565b34801561024a57600080fd5b506101a661101181565b34801561026057600080fd5b506101a661100881565b34801561027657600080fd5b50610189610285366004610599565b61037b565b34801561029657600080fd5b506101a66201000181565b3480156102ad57600080fd5b506101a661100681565b3480156102c357600080fd5b506000546102d19060ff1681565b60405190151581526020016101c7565b3480156102ed57600080fd5b506101a661101081565b34801561030357600080fd5b506101a661100981565b34801561031957600080fd5b506101a661101381565b34801561032f57600080fd5b506101a661101581565b34801561034557600080fd5b506101a661100281565b34801561035b57600080fd5b506101a661100381565b34801561037157600080fd5b506101a661100081565b3361100614610411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f746865206d73672073656e646572206d75737420626520676f7665726e616e6360448201527f6520636f6e74726163740000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821661048e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f706179656520616464726573732073686f756c64206e6f74206265207a65726f6044820152606401610408565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146104e8576040519150601f19603f3d011682016040523d82523d6000602084013e6104ed565b606091505b50509050801561054c578273ffffffffffffffffffffffffffffffffffffffff167f31ebdafac372cc15e781330654fb50d7097939848cd8278874383faabd06f0708360405161053f91815260200190565b60405180910390a2505050565b6040805183815247602082015273ffffffffffffffffffffffffffffffffffffffff8516917f5eedd0e0efd48be4f0cda9cc21858c0c2b91194b1db3e4c200225f08eb6dcae3910161053f565b600080604083850312156105ab578182fd5b823573ffffffffffffffffffffffffffffffffffffffff811681146105ce578283fd5b94602093909301359350505056fea26469706673582212201911084a62a515878262dce2f18f4b77c9f42876c85a693a9de90c6f7494ee6c64736f6c63430008040033", + }, + { + ContractAddr: common.HexToAddress(StakeHubContract), + CommitUrl: "https://github.com/coredao-org/core-genesis-contract/commit/925e416b42cb97ffba3b1bad4394d7e609452e10", + Code: "6080604052600436106101e75760003560e01c8063849a901d11610102578063b3d676f311610095578063cf35bdd011610064578063cf35bdd014610582578063dc927faf146105b1578063e1c7392a146105c7578063f9a2bbc7146105dc57600080fd5b8063b3d676f31461052b578063b3ee5a5114610541578063b88a802f14610557578063c81b16621461056c57600080fd5b8063a78abc16116100d1578063a78abc16146104c5578063aa82dce1146104df578063ac431751146104f5578063b11717241461051557600080fd5b8063849a901d1461042f578063943599fd1461044f5780639dc0926214610466578063a2786e171461047c57600080fd5b80632efa47941161017a57806367e4ac2c1161014957806367e4ac2c146103c457806374873a3d146103e6578063773b807e146103f9578063783028a91461041957600080fd5b80632efa4794146103625780633b7681601461038257806343756e5c146103985780635d25e51d146103ae57600080fd5b80631cf0cc5d116101b65780631cf0cc5d146102e957806325ee13e21461031657806328af92c11461032c5780632a5d69b21461034c57600080fd5b806304e9e3a41461022f578063138885651461026f57806313e7c9d81461029357806314c1e1f7146102d357600080fd5b3661022a5734156102285760405134815233907ff11e547d796cc64acdf758e7cee90439494fd886a19159454aa61e473fdbafef9060200160405180910390a25b005b600080fd5b34801561023b57600080fd5b5061024561100781565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561027b57600080fd5b5061028560055481565b604051908152602001610266565b34801561029f57600080fd5b506102c36102ae36600461346a565b60046020526000908152604090205460ff1681565b6040519015158152602001610266565b3480156102df57600080fd5b5061024561100481565b3480156102f557600080fd5b50610309610304366004613522565b6105f2565b6040516102669190613ab6565b34801561032257600080fd5b5061024561100581565b34801561033857600080fd5b5061030961034736600461346a565b610d46565b34801561035857600080fd5b5061024561101281565b34801561036e57600080fd5b5061028561037d366004613486565b610dbf565b34801561038e57600080fd5b5061024561101481565b3480156103a457600080fd5b5061024561100181565b3480156103ba57600080fd5b5061024561101181565b3480156103d057600080fd5b506103d9610df0565b60405161026691906139fc565b6102286103f43660046134b1565b610f2d565b34801561040557600080fd5b50610228610414366004613522565b611430565b34801561042557600080fd5b5061024561100881565b34801561043b57600080fd5b5061028561044a36600461346a565b61158b565b34801561045b57600080fd5b506102456201000181565b34801561047257600080fd5b5061024561100681565b34801561048857600080fd5b506104b061049736600461346a565b6003602052600090815260409020805460019091015482565b60408051928352602083019190915201610266565b3480156104d157600080fd5b506000546102c39060ff1681565b3480156104eb57600080fd5b5061024561101081565b34801561050157600080fd5b506102286105103660046136d1565b61167d565b34801561052157600080fd5b5061024561100981565b34801561053757600080fd5b5061024561101381565b34801561054d57600080fd5b5061024561101581565b34801561056357600080fd5b50610309611855565b34801561057857600080fd5b5061024561100281565b34801561058e57600080fd5b506105a261059d36600461373a565b61191e565b60405161026693929190613b48565b3480156105bd57600080fd5b5061024561100381565b3480156105d357600080fd5b50610228611a11565b3480156105e857600080fd5b5061024561100081565b606033611005146106705760405162461bcd60e51b815260206004820152602960248201527f746865206d73672073656e646572206d7573742062652063616e64696461746560448201527f20636f6e7472616374000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6040517fcb577480000000000000000000000000000000000000000000000000000000008152600481018390526110149063cb57748090602401600060405180830381600087803b1580156106c457600080fd5b505af11580156106d8573d6000803e3d6000fd5b5050600154859250905060006060818367ffffffffffffffff81111561070e57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610737578160200160208202803683370190505b5090508467ffffffffffffffff81111561076157634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561078a578160200160208202803683370190505b50955060005b84811015610c5657600181815481106107b957634e487b7160e01b600052603260045260246000fd5b60009182526020909120600160029092020101546040517f342e853800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063342e853890610824908d908d908d9060040161397e565b600060405180830381600087803b15801561083e57600080fd5b505af1158015610852573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261087a919081019061368c565b83838151811061089a57634e487b7160e01b600052603260045260246000fd5b602090810291909101015292506001816108b657809450610a2c565b826000815181106108d757634e487b7160e01b600052603260045260246000fd5b6020026020010151600014158015610917575082828151811061090a57634e487b7160e01b600052603260045260246000fd5b6020026020010151600014155b15610a2c5782828151811061093c57634e487b7160e01b600052603260045260246000fd5b6020026020010151600160008154811061096657634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010160149054906101000a900463ffffffff1663ffffffff16600184815481106109af57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010160149054906101000a900463ffffffff1663ffffffff16856000815181106109f857634e487b7160e01b600052603260045260246000fd5b602002602001015188610a0b9190613cba565b610a159190613cba565b610a1f9190613c9a565b610a299190613c9a565b90505b6000805b88811015610b9a5782868281518110610a5957634e487b7160e01b600052603260045260246000fd5b6020026020010151610a6b9190613cba565b9150818a8281518110610a8e57634e487b7160e01b600052603260045260246000fd5b60200260200101818151610aa29190613c82565b90525060006002818f8f85818110610aca57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610adf919061346a565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040016000208054909150610b24578054600181018255600082815260208120909101555b610b2f856001613c82565b81541415610b5157805460018101825560008281526020902001839055610b89565b8281610b5e876001613c82565b81548110610b7c57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001555b50610b9381613de7565b9050610a30565b506040518060400160405280858581518110610bc657634e487b7160e01b600052603260045260246000fd5b60200260200101518152602001838152506003600060018681548110610bfc57634e487b7160e01b600052603260045260246000fd5b60009182526020808320600160029093020182015473ffffffffffffffffffffffffffffffffffffffff168452838101949094526040909201902083518155929091015191015550610c4f905081613de7565b9050610790565b5060005b85811015610d3957868181518110610c8257634e487b7160e01b600052603260045260246000fd5b6020026020010151600260008c8c85818110610cae57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610cc3919061346a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548110610d1d57634e487b7160e01b600052603260045260246000fd5b600091825260209091200155610d3281613de7565b9050610c5a565b5050505050509392505050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020908152604091829020805483518184028101840190945280845260609392830182828015610db357602002820191906000526020600020905b815481526020019060010190808311610d9f575b50505050509050919050565b60026020528160005260406000208181548110610ddb57600080fd5b90600052602060002001600091509150505481565b60606001805480602002602001604051908101604052809291908181526020016000905b82821015610f245783829060005260206000209060020201604051806060016040529081600082018054610e4790613db2565b80601f0160208091040260200160405190810160405280929190818152602001828054610e7390613db2565b8015610ec05780601f10610e9557610100808354040283529160200191610ec0565b820191906000526020600020905b815481529060010190602001808311610ea357829003601f168201915b505050918352505060019182015473ffffffffffffffffffffffffffffffffffffffff81166020808401919091527401000000000000000000000000000000000000000090910463ffffffff16604090920191909152918352929092019101610e14565b50505050905090565b3361100014610fa45760405162461bcd60e51b815260206004820152602c60248201527f746865206d73672073656e646572206d7573742062652076616c696461746f7260448201527f53657420636f6e747261637400000000000000000000000000000000000000006064820152608401610667565b8382811461101a5760405162461bcd60e51b815260206004820152603760248201527f746865206c656e677468206f662076616c696461746f727320616e642072657760448201527f6172644c6973742073686f756c6420626520657175616c0000000000000000006064820152608401610667565b60008167ffffffffffffffff81111561104357634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561106c578160200160208202803683370190505b50600154909150600090815b818110156113ba5760005b858110156112645760008b8b838181106110ad57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906110c2919061346a565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020526040812080549293509091829061110a57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050806000141561118f578361115a578a8a8481811061114557634e487b7160e01b600052603260045260246000fd5b90506020020135866111579190613c82565b95505b600087848151811061117c57634e487b7160e01b600052603260045260246000fd5b6020026020010181815250505050611254565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260026020526040902081906111c1866001613c82565b815481106111df57634e487b7160e01b600052603260045260246000fd5b90600052602060002001548c8c8681811061120a57634e487b7160e01b600052603260045260246000fd5b9050602002013561121b9190613cba565b6112259190613c9a565b87848151811061124557634e487b7160e01b600052603260045260246000fd5b60200260200101818152505050505b61125d81613de7565b9050611083565b506001818154811061128657634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016000016040516112a4919061388d565b60405180910390207fd91b286bba7f90b8abe1c6445f75d50b2b4f2790251e196e83922a94e2ba4a7c878c8c886040516112e19493929190613b8d565b60405180910390a26001818154811061130a57634e487b7160e01b600052603260045260246000fd5b60009182526020909120600160029092020101546040517fdf4f1f0100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063df4f1f0190611377908d908d9089908c90600401613946565b600060405180830381600087803b15801561139157600080fd5b505af11580156113a5573d6000803e3d6000fd5b50505050806113b390613de7565b9050611078565b5081156114255761100273ffffffffffffffffffffffffffffffffffffffff1663631cbe3c836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561140b57600080fd5b505af115801561141f573d6000803e3d6000fd5b50505050505b505050505050505050565b33611005146114a75760405162461bcd60e51b815260206004820152602960248201527f746865206d73672073656e646572206d7573742062652063616e64696461746560448201527f20636f6e747261637400000000000000000000000000000000000000000000006064820152608401610667565b60015460005b8181101561158457600181815481106114d657634e487b7160e01b600052603260045260246000fd5b60009182526020909120600160029092020101546040517f773b807e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063773b807e906115419088908890889060040161397e565b600060405180830381600087803b15801561155b57600080fd5b505af115801561156f573d6000803e3d6000fd5b505050508061157d90613de7565b90506114ad565b5050505050565b600033611007146116045760405162461bcd60e51b815260206004820152602860248201527f7468652073656e646572206d75737420626520706c65646765206167656e742060448201527f636f6e74726163740000000000000000000000000000000000000000000000006064820152608401610667565b600061160f83611ebf565b905060005b81518110156116645781818151811061163d57634e487b7160e01b600052603260045260246000fd5b6020026020010151836116509190613c82565b92508061165c81613de7565b915050611614565b50811561167757611677611007836122d1565b50919050565b60005460ff166116cf5760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e697420796574000000000000006044820152606401610667565b33611006146117465760405162461bcd60e51b815260206004820152602a60248201527f746865206d73672073656e646572206d75737420626520676f7665726e616e6360448201527f6520636f6e7472616374000000000000000000000000000000000000000000006064820152608401610667565b602081146117845783836040517fad23613c000000000000000000000000000000000000000000000000000000008152600401610667929190613ac9565b60006117ca600084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506123fc9050565b90506117d7858583612462565b6118115784846040517f64b4f604000000000000000000000000000000000000000000000000000000008152600401610667929190613ac9565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a858585856040516118469493929190613ae5565b60405180910390a15050505050565b60603361186181611ebf565b91506000805b83518110156118b75783818151811061189057634e487b7160e01b600052603260045260246000fd5b6020026020010151826118a39190613c82565b9150806118af81613de7565b915050611867565b508015611919576118c882826122d1565b8173ffffffffffffffffffffffffffffffffffffffff167f054ac072cfee9d4b5dcae49329e8accc0546e627503db67d88f4b04e382c2fbc8260405161191091815260200190565b60405180910390a25b505090565b6001818154811061192e57600080fd5b906000526020600020906002020160009150905080600001805461195190613db2565b80601f016020809104026020016040519081016040528092919081815260200182805461197d90613db2565b80156119ca5780601f1061199f576101008083540402835291602001916119ca565b820191906000526020600020905b8154815290600101906020018083116119ad57829003601f168201915b5050506001909301549192505073ffffffffffffffffffffffffffffffffffffffff81169063ffffffff740100000000000000000000000000000000000000009091041683565b60005460ff1615611a645760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e6974000000000000006044820152606401610667565b6040805160a0810182526004606082019081527f434f524500000000000000000000000000000000000000000000000000000000608083015281526110116020808301919091526117709282019290925260018054808201825560009190915281518051929360029092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60192611aff92849201906132e1565b506020828101516001928301805460409586015163ffffffff1674010000000000000000000000000000000000000000027fffffffffffffffff00000000000000000000000000000000000000000000000090911673ffffffffffffffffffffffffffffffffffffffff90931692909217919091179055825160a0810184526009606082019081527f48415348504f574552000000000000000000000000000000000000000000000060808301528152611012818301526107d093810193909352815480830183556000929092528251805160029093027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60192611c0692849201906132e1565b506020828101516001928301805460409586015163ffffffff1674010000000000000000000000000000000000000000027fffffffffffffffff00000000000000000000000000000000000000000000000090911673ffffffffffffffffffffffffffffffffffffffff90931692909217919091179055825160a0810184526003606082019081527f42544300000000000000000000000000000000000000000000000000000000006080830152815261101381830152610fa093810193909352815480830183556000929092528251805160029093027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60192611d0d92849201906132e1565b5060208201516001909101805460409093015163ffffffff1674010000000000000000000000000000000000000000027fffffffffffffffff00000000000000000000000000000000000000000000000090931673ffffffffffffffffffffffffffffffffffffffff90921691909117919091179055611d8b6126af565b60046020527fd5e6bffa1f3189e23495e6453dbd647d1030c9646ee786594fa16546c1f8da09805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091821681179092557f2cfc3409e89194b5afb66c3a9735711ee26c88f837ffbdc2e3ccd4b8bc50f50480548216831790557f80e18640eb2edaf311d8ea310cf4849aba5d9247162fe9984877d018e311ba7c80548216831790557f9d8f56e34a1fed6bf4e1481d5861f4ed2ed1a4d5e2f72f1d47ee830d30af79b580548216831790557f864231bcc38391f2df4384bf86251e7bb4ea02bbc27dba2f2a7003663228c8ae805482168317905561101560009081527f1fd5e225de9f7c4ff1a2a6b4e8fce10b847d197c446150bc6268b1a4d4249226805483168417905580549091169091179055565b6001546060908067ffffffffffffffff811115611eec57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611f15578160200160208202803683370190505b5091506000806001600081548110611f3d57634e487b7160e01b600052603260045260246000fd5b60009182526020822060029190910201600101546040517f174e31c400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152602482019390935291169063174e31c490604401606060405180830381600087803b158015611fc257600080fd5b505af1158015611fd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ffa919061376a565b8660008151811061201b57634e487b7160e01b600052603260045260246000fd5b602002602001018194508295508381525050505060008460008151811061205257634e487b7160e01b600052603260045260246000fd5b602090810291909101015190508260015b858110156121cb576001818154811061208c57634e487b7160e01b600052603260045260246000fd5b60009182526020909120600290910201600101546040517f174e31c400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152602482018790529091169063174e31c490604401606060405180830381600087803b15801561211157600080fd5b505af1158015612125573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612149919061376a565b5088838151811061216a57634e487b7160e01b600052603260045260246000fd5b6020026020010181975082815250505086818151811061219a57634e487b7160e01b600052603260045260246000fd5b6020026020010151836121ad9190613c82565b92506121b98583613c0e565b91506121c481613de7565b9050612063565b506121d760055461319a565b8113156122a55760006121e982613236565b6121f490600a613cba565b6040517f9a99b4f000000000000000000000000000000000000000000000000000000000815261101060048201526024810182905290915061100290639a99b4f090604401602060405180830381600087803b15801561225357600080fd5b505af1158015612267573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061228b9190613752565b50806005600082825461229e9190613c82565b9091555050505b6122c3816122b460055461319a565b6122be9190613cf7565b613236565b600555509395945050505050565b804710156123215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610667565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d806000811461237b576040519150601f19603f3d011682016040523d82523d6000602084013e612380565b606091505b50509050806123f75760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610667565b505050565b6000612409826020613c82565b835110156124595760405162461bcd60e51b815260206004820152601560248201527f746f55696e743235365f6f75744f66426f756e647300000000000000000000006044820152606401610667565b50016020015190565b6000806124d985858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81527f636f726548617264636170000000000000000000000000000000000000000000602082015291506132889050565b156124e6575060016125e4565b61255a85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81527f6861736848617264636170000000000000000000000000000000000000000000602082015291506132889050565b15612567575060026125e4565b6125db85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81527f6274634861726463617000000000000000000000000000000000000000000000602082015291506132889050565b156125e4575060035b80156126a2578215806125f95750620186a083115b1561263e578484846001620186a06040517f808861f9000000000000000000000000000000000000000000000000000000008152600401610667959493929190613b17565b82600161264b8184613d6b565b8154811061266957634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010160146101000a81548163ffffffff021916908363ffffffff16021790555060019150506126a8565b60009150505b9392505050565b600061100073ffffffffffffffffffffffffffffffffffffffff166393f2d4046040518163ffffffff1660e01b815260040160006040518083038186803b1580156126f957600080fd5b505afa15801561270d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612735919081019061356c565b905060008061100773ffffffffffffffffffffffffffffffffffffffff168360405160240161276491906139a2565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb0cc111800000000000000000000000000000000000000000000000000000000179052516127c79190613871565b6000604051808303816000865af19150503d8060008114612804576040519150601f19603f3d011682016040523d82523d6000602084013e612809565b606091505b5091509150816128815760405162461bcd60e51b815260206004820152602c60248201527f63616c6c20504c454447455f4147454e545f414444522e6765745374616b654960448201527f6e666f2829206661696c656400000000000000000000000000000000000000006064820152608401610667565b60008060008380602001905181019061289a9190613608565b60408051600380825260808201909252939650919450925060009190602082016060803683370190505090506001816000815181106128e957634e487b7160e01b600052603260045260246000fd5b60200260200101818152505069d3c21bcecceda10000008160018151811061292157634e487b7160e01b600052603260045260246000fd5b60200260200101818152505065b5e620f480008160028151811061295557634e487b7160e01b600052603260045260246000fd5b602090810291909101015286516040805160038082526080820190925260009181602001602082028036833701905050905060005b82811015612e1c5760008a82815181106129b457634e487b7160e01b600052603260045260246000fd5b602002602001015190508782815181106129de57634e487b7160e01b600052603260045260246000fd5b602002602001015183600081518110612a0757634e487b7160e01b600052603260045260246000fd5b60200260200101818151612a1b9190613c82565b9052508651879083908110612a4057634e487b7160e01b600052603260045260246000fd5b602002602001015183600181518110612a6957634e487b7160e01b600052603260045260246000fd5b60200260200101818151612a7d9190613c82565b9052508551869083908110612aa257634e487b7160e01b600052603260045260246000fd5b602002602001015183600281518110612acb57634e487b7160e01b600052603260045260246000fd5b60200260200101818151612adf9190613c82565b90525073ffffffffffffffffffffffffffffffffffffffff811660009081526002602081905260409091208651909187918110612b2c57634e487b7160e01b600052603260045260246000fd5b6020026020010151878481518110612b5457634e487b7160e01b600052603260045260246000fd5b6020026020010151612b669190613cba565b86600181518110612b8757634e487b7160e01b600052603260045260246000fd5b6020026020010151898581518110612baf57634e487b7160e01b600052603260045260246000fd5b6020026020010151612bc19190613cba565b87600081518110612be257634e487b7160e01b600052603260045260246000fd5b60200260200101518b8681518110612c0a57634e487b7160e01b600052603260045260246000fd5b6020026020010151612c1c9190613cba565b612c269190613c82565b612c309190613c82565b8154600181018355600092835260208084209091019190915573ffffffffffffffffffffffffffffffffffffffff831682526002905260408120865190918791612c8a57634e487b7160e01b600052603260045260246000fd5b6020026020010151898481518110612cb257634e487b7160e01b600052603260045260246000fd5b6020026020010151612cc49190613cba565b815460018181018455600093845260208085209092019290925573ffffffffffffffffffffffffffffffffffffffff841683526002905260409091208651909187918110612d2257634e487b7160e01b600052603260045260246000fd5b6020026020010151888481518110612d4a57634e487b7160e01b600052603260045260246000fd5b6020026020010151612d5c9190613cba565b8154600181018355600092835260208084209091019190915573ffffffffffffffffffffffffffffffffffffffff8316825260029081905260409091208651909187918110612dbb57634e487b7160e01b600052603260045260246000fd5b6020026020010151878481518110612de357634e487b7160e01b600052603260045260246000fd5b6020026020010151612df59190613cba565b8154600181018355600092835260209092209091015550612e1581613de7565b905061298a565b5060015460005b81811015612f0c576040518060400160405280848381518110612e5657634e487b7160e01b600052603260045260246000fd5b60200260200101518152602001868381518110612e8357634e487b7160e01b600052603260045260246000fd5b60200260200101518152506003600060018481548110612eb357634e487b7160e01b600052603260045260246000fd5b60009182526020808320600160029093020182015473ffffffffffffffffffffffffffffffffffffffff168452838101949094526040909201902083518155929091015191015580612f0481613de7565b915050612e23565b5060408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f06a49fce00000000000000000000000000000000000000000000000000000000179052905161100591612f7291613871565b6000604051808303816000865af19150503d8060008114612faf576040519150601f19603f3d011682016040523d82523d6000602084013e612fb4565b606091505b5090995097508861302d5760405162461bcd60e51b815260206004820152602960248201527f63616c6c2043414e4449444154455f4855422e67657443616e6469646174657360448201527f2829206661696c656400000000000000000000000000000000000000000000006064820152608401610667565b600088806020019051810190613043919061356c565b905061100773ffffffffffffffffffffffffffffffffffffffff168160405160240161306f91906139a2565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fbcf5f24200000000000000000000000000000000000000000000000000000000179052516130d29190613871565b6000604051808303816000865af19150503d806000811461310f576040519150601f19603f3d011682016040523d82523d6000602084013e613114565b606091505b5050809a50508961318d5760405162461bcd60e51b815260206004820152603160248201527f63616c6c20504c454447455f4147454e545f414444522e6d6f766543616e646960448201527f64617465446174612829206661696c65640000000000000000000000000000006064820152608401610667565b5050505050505050505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8211156132325760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e206160448201527f6e20696e743235360000000000000000000000000000000000000000000000006064820152608401610667565b5090565b6000808212156132325760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f7369746976656044820152606401610667565b60008160405160200161329b9190613871565b60405160208183030381529060405280519060200120836040516020016132c29190613871565b6040516020818303038152906040528051906020012014905092915050565b8280546132ed90613db2565b90600052602060002090601f01602090048101928261330f5760008555613355565b82601f1061332857805160ff1916838001178555613355565b82800160010185558215613355579182015b8281111561335557825182559160200191906001019061333a565b506132329291505b80821115613232576000815560010161335d565b60008083601f840112613382578182fd5b50813567ffffffffffffffff811115613399578182fd5b6020830191508360208260051b85010111156133b457600080fd5b9250929050565b600082601f8301126133cb578081fd5b815160206133e06133db83613bea565b613bb9565b80838252828201915082860187848660051b89010111156133ff578586fd5b855b8581101561341d57815184529284019290840190600101613401565b5090979650505050505050565b60008083601f84011261343b578182fd5b50813567ffffffffffffffff811115613452578182fd5b6020830191508360208285010111156133b457600080fd5b60006020828403121561347b578081fd5b81356126a881613e4c565b60008060408385031215613498578081fd5b82356134a381613e4c565b946020939093013593505050565b6000806000806000606086880312156134c8578081fd5b853567ffffffffffffffff808211156134df578283fd5b6134eb89838a01613371565b90975095506020880135915080821115613503578283fd5b5061351088828901613371565b96999598509660400135949350505050565b600080600060408486031215613536578283fd5b833567ffffffffffffffff81111561354c578384fd5b61355886828701613371565b909790965060209590950135949350505050565b6000602080838503121561357e578182fd5b825167ffffffffffffffff811115613594578283fd5b8301601f810185136135a4578283fd5b80516135b26133db82613bea565b80828252848201915084840188868560051b87010111156135d1578687fd5b8694505b838510156135fc5780516135e881613e4c565b8352600194909401939185019185016135d5565b50979650505050505050565b60008060006060848603121561361c578283fd5b835167ffffffffffffffff80821115613633578485fd5b61363f878388016133bb565b94506020860151915080821115613654578384fd5b613660878388016133bb565b93506040860151915080821115613675578283fd5b50613682868287016133bb565b9150509250925092565b6000806040838503121561369e578182fd5b825167ffffffffffffffff8111156136b4578283fd5b6136c0858286016133bb565b925050602083015190509250929050565b600080600080604085870312156136e6578384fd5b843567ffffffffffffffff808211156136fd578586fd5b6137098883890161342a565b90965094506020870135915080821115613721578384fd5b5061372e8782880161342a565b95989497509550505050565b60006020828403121561374b578081fd5b5035919050565b600060208284031215613763578081fd5b5051919050565b60008060006060848603121561377e578081fd5b8351925060208401519150604084015190509250925092565b81835260006020808501945082825b858110156137e15781356137b981613e4c565b73ffffffffffffffffffffffffffffffffffffffff16875295820195908201906001016137a6565b509495945050505050565b6000815180845260208085019450808401835b838110156137e1578151875295820195908201906001016137ff565b8183528181602085013750600080602083850101526020601f19601f840116840101905092915050565b6000815180845261385d816020860160208601613d82565b601f01601f19169290920160200192915050565b60008251613883818460208701613d82565b9190910192915050565b600080835482600182811c9150808316806138a957607f831692505b60208084108214156138c957634e487b7160e01b87526022600452602487fd5b8180156138dd576001811461390c57613938565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00861689528489019650613938565b60008a815260209020885b868110156139305781548b820152908501908301613917565b505084890196505b509498975050505050505050565b60608152600061395a606083018688613797565b828103602084015261396c81866137ec565b91505082604083015295945050505050565b604081526000613992604083018587613797565b9050826020830152949350505050565b6020808252825182820181905260009190848201906040850190845b818110156139f057835173ffffffffffffffffffffffffffffffffffffffff16835292840192918401916001016139be565b50909695505050505050565b60006020808301818452808551808352604092508286019150828160051b870101848801865b83811015613aa8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0898403018552815160608151818652613a6682870182613845565b838b015173ffffffffffffffffffffffffffffffffffffffff16878c01529289015163ffffffff16958901959095525094870194925090860190600101613a22565b509098975050505050505050565b6020815260006126a860208301846137ec565b602081526000613add60208301848661381b565b949350505050565b604081526000613af960408301868861381b565b8281036020840152613b0c81858761381b565b979650505050505050565b608081526000613b2b60808301878961381b565b602083019590955250604081019290925260609091015292915050565b606081526000613b5b6060830186613845565b905073ffffffffffffffffffffffffffffffffffffffff8416602083015263ffffffff83166040830152949350505050565b848152606060208201526000613ba7606083018587613797565b8281036040840152613b0c81856137ec565b604051601f8201601f1916810167ffffffffffffffff81118282101715613be257613be2613e36565b604052919050565b600067ffffffffffffffff821115613c0457613c04613e36565b5060051b60200190565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03841381151615613c4857613c48613e20565b827f8000000000000000000000000000000000000000000000000000000000000000038412811615613c7c57613c7c613e20565b50500190565b60008219821115613c9557613c95613e20565b500190565b600082613cb557634e487b7160e01b81526012600452602481fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613cf257613cf2613e20565b500290565b6000808312837f800000000000000000000000000000000000000000000000000000000000000001831281151615613d3157613d31613e20565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018313811615613d6557613d65613e20565b50500390565b600082821015613d7d57613d7d613e20565b500390565b60005b83811015613d9d578181015183820152602001613d85565b83811115613dac576000848401525b50505050565b600181811c90821680613dc657607f821691505b6020821081141561167757634e487b7160e01b600052602260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613e1957613e19613e20565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff81168114613e6e57600080fd5b5056fea2646970667358221220b0ed28f98ac96ad39f51d7dc23c70401abd8d893e40370d69911b6ad279bc5eb64736f6c63430008040033", + }, + { + ContractAddr: common.HexToAddress(CoreAgentContract), + CommitUrl: "https://github.com/coredao-org/core-genesis-contract/commit/925e416b42cb97ffba3b1bad4394d7e609452e10", + Code: "6080604052600436106102c65760003560e01c80637a1b726d11610179578063aa82dce1116100d6578063c81b16621161008a578063e1c7392a11610064578063e1c7392a14610782578063e3b899f314610797578063f9a2bbc7146107ea57600080fd5b8063c81b166214610736578063dc927faf1461074c578063df4f1f011461076257600080fd5b8063b1171724116100bb578063b1171724146106f4578063b3d676f31461070a578063b3ee5a511461072057600080fd5b8063aa82dce1146106be578063ac431751146106d457600080fd5b8063943599fd1161012d5780639dc09262116101125780639dc0926214610662578063a204ce9714610678578063a78abc161461069457600080fd5b8063943599fd1461063857806397f5284a1461064f57600080fd5b80638397f2441161015e5780638397f244146105ac57806383d44339146105e457806392eed0071461061857600080fd5b80637a1b726d1461056c5780638223cca11461058c57600080fd5b80633b7681601161022757806365057e77116101db57806375b10c71116101c057806375b10c7114610520578063773b807e14610536578063783028a91461055657600080fd5b806365057e77146104ea57806367b06a361461050a57600080fd5b80634db8a60b1161020c5780634db8a60b146104765780635d25e51d146104965780635e5b7594146104ac57600080fd5b80633b7681601461044a57806343756e5c1461046057600080fd5b806325e2c7001161027e5780632a5d69b2116102635780632a5d69b2146103f3578063342e8538146104095780633a4c862e1461043757600080fd5b806325e2c700146103c857806325ee13e2146103dd57600080fd5b8063174e31c4116102af578063174e31c4146103145780631b41cb921461034f57806320c94d981461037c57600080fd5b806304e9e3a4146102cb57806314c1e1f7146102fe575b600080fd5b3480156102d757600080fd5b506102e161100781565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561030a57600080fd5b506102e161100481565b34801561032057600080fd5b5061033461032f366004613162565b610800565b604080519384526020840192909252908201526060016102f5565b34801561035b57600080fd5b5061036f61036a36600461303e565b610a61565b6040516102f59190613434565b34801561038857600080fd5b506103b361039736600461303e565b6004602052600090815260409020600181015460029091015482565b604080519283526020830191909152016102f5565b6103db6103d636600461303e565b610ad7565b005b3480156103e957600080fd5b506102e161100581565b3480156103ff57600080fd5b506102e161101281565b34801561041557600080fd5b506104296104243660046131fc565b610c58565b6040516102f5929190613481565b6103db610445366004613116565b610d93565b34801561045657600080fd5b506102e161101481565b34801561046c57600080fd5b506102e161100181565b34801561048257600080fd5b506103db6104913660046130db565b6110bd565b3480156104a257600080fd5b506102e161101181565b3480156104b857600080fd5b506104dc6104c736600461303e565b60036020526000908152604090206001015481565b6040519081526020016102f5565b3480156104f657600080fd5b506103db610505366004613162565b61126c565b34801561051657600080fd5b506104dc60015481565b34801561052c57600080fd5b506104dc60065481565b34801561054257600080fd5b506103db6105513660046131fc565b6112d7565b34801561056257600080fd5b506102e161100881565b34801561057857600080fd5b506103db610587366004613091565b6113d3565b34801561059857600080fd5b506103db6105a7366004613246565b61162a565b3480156105b857600080fd5b506104dc6105c7366004613162565b600260209081526000928352604080842090915290825290205481565b3480156105f057600080fd5b506103b36105ff36600461303e565b6005602052600090815260409020805460019091015482565b34801561062457600080fd5b506104dc6106333660046130db565b611777565b34801561064457600080fd5b506102e16201000181565b6103db61065d36600461305f565b61189e565b34801561066e57600080fd5b506102e161100681565b34801561068457600080fd5b506104dc670de0b6b3a764000081565b3480156106a057600080fd5b506000546106ae9060ff1681565b60405190151581526020016102f5565b3480156106ca57600080fd5b506102e161101081565b3480156106e057600080fd5b506103db6106ef36600461334a565b611a99565b34801561070057600080fd5b506102e161100981565b34801561071657600080fd5b506102e161101381565b34801561072c57600080fd5b506102e161101581565b34801561074257600080fd5b506102e161100281565b34801561075857600080fd5b506102e161100381565b34801561076e57600080fd5b506103db61077d36600461318b565b611d1e565b34801561078e57600080fd5b506103db612008565b3480156107a357600080fd5b506107b76107b236600461305f565b6120a4565b6040516102f591908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b3480156107f657600080fd5b506102e161100081565b6000808033611010146108805760405162461bcd60e51b815260206004820152602960248201527f746865206d73672073656e646572206d757374206265207374616b652068756260448201527f20636f6e7472616374000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6001600160a01b0385166000908152600360205260408120805490918080835b801561099c57856108b2600183613612565b815481106108d057634e487b7160e01b600052603260045260246000fd5b9060005260206000200160009054906101000a90046001600160a01b03169350600060046000866001600160a01b03166001600160a01b0316815260200190815260200160002060000160008d6001600160a01b03166001600160a01b031681526020019081526020016000209050610949858261212e565b909a5097506109588a856135bb565b935061096488846135bb565b92508060010154600014801561097c57506002810154155b1561098b5761098b8c8661219a565b5061099581613629565b90506108a0565b506001600160a01b038a16600090815260056020526040902080546001909101549098509550851515806109cf57508715155b156109f4576001600160a01b038a166000908152600560205260408120818155600101555b6109fe82896135bb565b975060009650610a0e81876135bb565b604080518a8152602081018390529197506001600160a01b038c16917f8fd1daf22755713a16a44983ab30cee5e1d84af4a7f2eaabea634ba6a9a6b94f910160405180910390a250505050509250925092565b6001600160a01b038116600090815260036020908152604091829020805483518184028101840190945280845260609392830182828015610acb57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610aad575b50505050509050919050565b6040517fc666907b0000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526110059063c666907b9060240160206040518083038186803b158015610b3157600080fd5b505afa158015610b45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b69919061332a565b610baa576040517f97f680070000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401610877565b600154341015610bfc5760405162461bcd60e51b815260206004820152601c60248201527f64656c656761746520616d6f756e7420697320746f6f20736d616c6c000000006044820152606401610877565b6000610c0b823334600061235c565b604080513481526020810183905291925033916001600160a01b038516917f69e36aaf9558a3c30415c0a2bc6cb4c2d592c041a0718697bf69c2e7c7e0bdac910160405180910390a35050565b60606000838067ffffffffffffffff811115610c8457634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610cad578160200160208202803683370190505b50925060005b81811015610d895760046000888884818110610cdf57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610cf4919061303e565b6001600160a01b03166001600160a01b0316815260200190815260200160002060020154848281518110610d3857634e487b7160e01b600052603260045260246000fd5b602002602001018181525050838181518110610d6457634e487b7160e01b600052603260045260246000fd5b602002602001015183610d7791906135bb565b9250610d8281613640565b9050610cb3565b5050935093915050565b3361100714610e0a5760405162461bcd60e51b815260206004820152602760248201527f7468652073656e646572206d75737420626520506c656467654167656e74206360448201527f6f6e7472616374000000000000000000000000000000000000000000000000006064820152608401610877565b3480841115610e815760405162461bcd60e51b815260206004820152602660248201527f72657175697265207374616b6564416d6f756e74203c3d207265616c74696d6560448201527f416d6f756e7400000000000000000000000000000000000000000000000000006064820152608401610877565b6001600160a01b0380871660009081526004602090815260408083209389168352908390529020600381015480610f1a576006546003838101919091556001600160a01b038981166000908152602092835260408120805460018101825590825292902090910180547fffffffffffffffffffffffff000000000000000000000000000000000000000016918b16919091179055610f95565b6006548114610f9557600080610f308b8561212e565b6001600160a01b038c16600090815260056020526040812080549395509193508492610f5d9084906135bb565b90915550506001600160a01b038a1660009081526005602052604081206001018054839290610f8d9084906135bb565b909155505050505b60065485101561103457600080610faf8b8a888b8b6124ed565b925050915085985081600560008c6001600160a01b03166001600160a01b031681526020019081526020016000206000016000828254610fef91906135bb565b90915550506001600160a01b038a166000908152600560205260408120600101805483929061101f9084906135bb565b909155505060065460038501555061104e9050565b8582600201600082825461104891906135bb565b90915550505b8682600001600082825461106291906135bb565b925050819055508382600101600082825461107d91906135bb565b90915550506001600160a01b038816600090815260036020526040812060010180548692906110ad9084906135bb565b9091555050505050505050505050565b6040517fc666907b0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526110059063c666907b9060240160206040518083038186803b15801561111757600080fd5b505afa15801561112b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114f919061332a565b611190576040517f97f680070000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610877565b816001600160a01b0316836001600160a01b031614156111e7576040517fcd8989e30000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610877565b6111f483338360016126a8565b506000611204833384600161235c565b9050336001600160a01b0316836001600160a01b0316856001600160a01b03167f037bbd0a1321bedfe51f505a5e6cede0b346e57521d957f9e76cb348b7758cb1858560405161125e929190918252602082015260400190565b60405180910390a450505050565b600061127b83338460006126a8565b90506112873382612a37565b6112913383612c69565b60405182815233906001600160a01b038516907f888585afd9421c43b48dc50229aa045dd1048c03602b46c83ad2aa36be798d42906020015b60405180910390a3505050565b336110101461134e5760405162461bcd60e51b815260206004820152602960248201527f746865206d73672073656e646572206d757374206265207374616b652068756260448201527f20636f6e747261637400000000000000000000000000000000000000000000006064820152608401610877565b8160005b818110156113ca5760006004600087878581811061138057634e487b7160e01b600052603260045260246000fd5b9050602002016020810190611395919061303e565b6001600160a01b0316815260208101919091526040016000206002810154600190910155506113c381613640565b9050611352565b50506006555050565b336110071461144a5760405162461bcd60e51b815260206004820152602760248201527f7468652073656e646572206d75737420626520506c656467654167656e74206360448201527f6f6e7472616374000000000000000000000000000000000000000000000000006064820152608401610877565b6040517fc666907b0000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526110059063c666907b9060240160206040518083038186803b1580156114a457600080fd5b505afa1580156114b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114dc919061332a565b61151d576040517f97f680070000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610877565b826001600160a01b0316846001600160a01b03161415611574576040517fcd8989e30000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610877565b806115a457506001600160a01b038084166000908152600460209081526040808320938516835292905220600101545b6115b184838360016126a8565b5060006115c1848484600161235c565b9050826001600160a01b0316846001600160a01b0316866001600160a01b03167f037bbd0a1321bedfe51f505a5e6cede0b346e57521d957f9e76cb348b7758cb1858560405161161b929190918252602082015260400190565b60405180910390a45050505050565b33611007146116a15760405162461bcd60e51b815260206004820152602760248201527f7468652073656e646572206d75737420626520506c656467654167656e74206360448201527f6f6e7472616374000000000000000000000000000000000000000000000000006064820152608401610877565b825160005b81811015611770576000600460008784815181106116d457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020905084828151811061171e57634e487b7160e01b600052603260045260246000fd5b6020026020010151816001018190555083828151811061174e57634e487b7160e01b600052603260045260246000fd5b60200260200101518160020181905550508061176990613640565b90506116a6565b5050505050565b600033611007146117f05760405162461bcd60e51b815260206004820152602760248201527f7468652073656e646572206d75737420626520506c656467654167656e74206360448201527f6f6e7472616374000000000000000000000000000000000000000000000000006064820152608401610877565b81611821576001600160a01b0380851660009081526004602090815260408083209387168352929052206001015491505b600061183085858560006126a8565b905061183c8482612a37565b61184861100784612c69565b836001600160a01b0316856001600160a01b03167f888585afd9421c43b48dc50229aa045dd1048c03602b46c83ad2aa36be798d428560405161188d91815260200190565b60405180910390a350909392505050565b33611007146119155760405162461bcd60e51b815260206004820152602760248201527f7468652073656e646572206d75737420626520506c656467654167656e74206360448201527f6f6e7472616374000000000000000000000000000000000000000000000000006064820152608401610877565b6040517fc666907b0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526110059063c666907b9060240160206040518083038186803b15801561196f57600080fd5b505afa158015611983573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a7919061332a565b6119e8576040517f97f680070000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610877565b600154341015611a3a5760405162461bcd60e51b815260206004820152601c60248201527f64656c656761746520616d6f756e7420697320746f6f20736d616c6c000000006044820152606401610877565b6000611a49838334600061235c565b9050816001600160a01b0316836001600160a01b03167f69e36aaf9558a3c30415c0a2bc6cb4c2d592c041a0718697bf69c2e7c7e0bdac34846040516112ca929190918252602082015260400190565b60005460ff16611aeb5760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e697420796574000000000000006044820152606401610877565b3361100614611b625760405162461bcd60e51b815260206004820152602a60248201527f746865206d73672073656e646572206d75737420626520676f7665726e616e6360448201527f6520636f6e7472616374000000000000000000000000000000000000000000006064820152608401610877565b60208114611ba05783836040517fad23613c0000000000000000000000000000000000000000000000000000000081526004016108779291906134c9565b611c1484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601381527f7265717569726564436f696e4465706f7369740000000000000000000000000060208201529150612d879050565b15611ca557604080516020601f8401819004810282018101909252828152600091611c5791858580838501838280828437600092019190915250612de092505050565b905080611c9d5784848260016000196040517f808861f9000000000000000000000000000000000000000000000000000000008152600401610877959493929190613517565b600155611cdb565b83836040517f64b4f6040000000000000000000000000000000000000000000000000000000081526004016108779291906134c9565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051611d1094939291906134e5565b60405180910390a150505050565b3361101014611d955760405162461bcd60e51b815260206004820152602960248201527f746865206d73672073656e646572206d757374206265207374616b652068756260448201527f20636f6e747261637400000000000000000000000000000000000000000000006064820152608401610877565b83828114611e0b5760405162461bcd60e51b815260206004820152603760248201527f746865206c656e677468206f662076616c696461746f727320616e642072657760448201527f6172644c6973742073686f756c6420626520657175616c0000000000000000006064820152608401610877565b60008060008060005b85811015611ffb57888882818110611e3c57634e487b7160e01b600052603260045260246000fd5b9050602002013560001415611e5057611fe9565b8a8a82818110611e7057634e487b7160e01b600052603260045260246000fd5b9050602002016020810190611e85919061303e565b6001600160a01b0381166000908152600260209081526040808320600490925290912060038101549550919350908415611f0d5760038101611ec8600187613612565b81548110611ee657634e487b7160e01b600052603260045260246000fd5b90600052602060002001549550816000878152602001908152602001600020549650611f16565b60009650600095505b806001015469d3c21bcecceda10000008c8c86818110611f4657634e487b7160e01b600052603260045260246000fd5b90506020020135611f5791906135f3565b611f6191906135d3565b611f6b90886135bb565b60008a81526020849052604090205588611f868760016135bb565b1415611fcb578860038201611f9c600188613612565b81548110611fba57634e487b7160e01b600052603260045260246000fd5b600091825260209091200155611fe6565b60038101805460018101825560009182526020909120018990555b50505b80611ff381613640565b915050611e14565b5050505050505050505050565b60005460ff161561205b5760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e6974000000000000006044820152606401610877565b670de0b6b3a764000060015561207462015180426135d3565b600655600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6120cf6040518060800160405280600081526020016000815260200160008152602001600081525090565b506001600160a01b03808316600090815260046020908152604080832093851683529281529082902082516080810184528154815260018201549281019290925260028101549282019290925260039091015460608201525b92915050565b600080600083600001549050600084600101549050600085600201549050600061215f888585858b600301546124ed565b9197509095509050801561218f57811561217b57600060028801555b838314612186578287555b60065460038801555b505050509250929050565b6001600160a01b0382166000908152600360205260408120805490915b8181101561231a57836001600160a01b03168360000182815481106121ec57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b0316141561230a57816122138260016135bb565b10156122ac5782612225600184613612565b8154811061224357634e487b7160e01b600052603260045260246000fd5b60009182526020909120015483546001600160a01b039091169084908390811061227d57634e487b7160e01b600052603260045260246000fd5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b82548390806122cb57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905501905561231a565b61231381613640565b90506121b7565b5050506001600160a01b039081166000908152600460209081526040808320949093168252929092528120818155600181018290556002810182905560030155565b6001600160a01b03808516600090815260046020908152604080832093871683529083905281206003810154919291806123f8576006546003838101919091556001600160a01b038881166000908152602092835260408120805460018101825590825292902090910180547fffffffffffffffffffffffff000000000000000000000000000000000000000016918a16919091179055612473565b60065481146124735760008061240e8a8561212e565b6001600160a01b038b1660009081526005602052604081208054939550919350849261243b9084906135bb565b90915550506001600160a01b0389166000908152600560205260408120600101805483929061246b9084906135bb565b909155505050505b8583600201600082825461248791906135bb565b92505081905550858260010160008282546124a291906135bb565b909155508590506124de576001600160a01b038716600090815260036020526040812060010180548892906124d89084906135bb565b90915550505b50600101549695505050505050565b600080808361253e5760405162461bcd60e51b815260206004820152601160248201527f696e76616c69642064656c656761746f720000000000000000000000000000006044820152606401610877565b6000600160065461254f9190613612565b90508085116126905760006125648a83612de5565b9050600061257c8b61257760018a613612565b612de5565b9050600061258a8284613612565b612594908c6135f3565b96506125a08885613612565b6125ab9060016135bb565b6125b5908c6135f3565b945088156125f6576125c78c89612de5565b90506125d38282613612565b6125dd908a6135f3565b6125e790886135bb565b96506125f389866135bb565b94505b8a8a1461266c578388101561266c5780612617576126148c89612de5565b90505b6126218184613612565b61262b8c8c613612565b61263591906135f3565b61263f90886135bb565b965061264b8885613612565b6126558c8c613612565b61265f91906135f3565b61266990866135bb565b94505b61268069d3c21bcecceda1000000886135d3565b96506001955061269d9350505050565b6000806000935093509350505b955095509592505050565b6000826126f75760405162461bcd60e51b815260206004820152601460248201527f556e64656c6567617465207a65726f20636f696e0000000000000000000000006044820152606401610877565b6001600160a01b03808616600090815260046020908152604080832093881683529083905290206003810154806127705760405162461bcd60e51b815260206004820152601e60248201527f6e6f2064656c656761746f7220696e666f726d6174696f6e20666f756e6400006044820152606401610877565b60065481146127eb576000806127868a8561212e565b6001600160a01b038b166000908152600560205260408120805493955091935084926127b39084906135bb565b90915550506001600160a01b038916600090815260056020526040812060010180548392906127e39084906135bb565b909155505050505b6001820154868110156128405760405162461bcd60e51b815260206004820152601860248201527f4e6f7420656e6f756768207374616b656420746f6b656e7300000000000000006044820152606401610877565b8087146128fa576001548710156128995760405162461bcd60e51b815260206004820152601e60248201527f756e64656c656761746520616d6f756e7420697320746f6f20736d616c6c00006044820152606401610877565b6001548784600101546128ac9190613612565b10156128fa5760405162461bcd60e51b815260206004820152601a60248201527f72656d61696e20616d6f756e7420697320746f6f20736d616c6c0000000000006044820152606401610877565b8254600285018054899190600090612913908490613612565b909155505086156129645787811115612945578784600201600082825461293a91906135bb565b909155506129959050565b801561295f578084600201600082825461293a91906135bb565b612995565b6001600160a01b038916600090815260036020526040812060010180548a929061298f908490613612565b90915550505b861580156129a65750878460010154145b80156129b457506002840154155b156129c8576129c3898b61219a565b612a13565b878460010160008282546129dc9190613612565b909155505087811115612a0857878460000160008282546129fd9190613612565b90915550612a139050565b8015612a1357600084555b8354612a1f9082613612565b612a299089613612565b9a9950505050505050505050565b6001600160a01b038216600090815260036020526040812080549091829181905b8015612c605783612a6a600183613612565b81548110612a8857634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03908116808452600483526040808520928c1685529190925290912060028101549194509092508215612c4f5786831015612c2f57612adc8388613612565b600060028301556001820154909750612c2a576001600160a01b038085166000908152600460209081526040808320938c1683529290529081208181556001810182905560028101829055600301558454821015612bd05784548690612b4490600190613612565b81548110612b6257634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031686612b83600185613612565b81548110612ba157634e487b7160e01b600052603260045260246000fd5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b8554869080612bef57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690550190555b612c4f565b86816002016000828254612c439190613612565b90915550612c60915050565b50612c5981613629565b9050612a58565b50505050505050565b80471015612cb95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610877565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612d06576040519150601f19603f3d011682016040523d82523d6000602084013e612d0b565b606091505b5050905080612d825760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610877565b505050565b600081604051602001612d9a91906133fb565b6040516020818303038152906040528051906020012083604051602001612dc191906133fb565b6040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b03821660009081526002602090815260408083208484529091529020548015612e1457612128565b6001600160a01b0383166000908152600460205260409020600381015480612e4157600092505050612128565b612e4c600182613612565b90506000806000805b848411612ee7576002612e6886866135bb565b612e7291906135d3565b9250856003018381548110612e9757634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905087811015612ec157905080612eba8360016135bb565b9350612e55565b82612ed55760009650505050505050612128565b612ee0600184613612565b9450612e55565b8115612f1d576001600160a01b0389166000908152600260209081526040808320858452909152808220548a8352912081905596505b50505050505092915050565b80356001600160a01b0381168114612f4057600080fd5b919050565b60008083601f840112612f56578182fd5b50813567ffffffffffffffff811115612f6d578182fd5b6020830191508360208260051b8501011115612f8857600080fd5b9250929050565b600082601f830112612f9f578081fd5b81356020612fb4612faf83613597565b613548565b80838252828201915082860187848660051b8901011115612fd3578586fd5b855b85811015612ff157813584529284019290840190600101612fd5565b5090979650505050505050565b60008083601f84011261300f578182fd5b50813567ffffffffffffffff811115613026578182fd5b602083019150836020828501011115612f8857600080fd5b60006020828403121561304f578081fd5b61305882612f29565b9392505050565b60008060408385031215613071578081fd5b61307a83612f29565b915061308860208401612f29565b90509250929050565b600080600080608085870312156130a6578182fd5b6130af85612f29565b93506130bd60208601612f29565b92506130cb60408601612f29565b9396929550929360600135925050565b6000806000606084860312156130ef578283fd5b6130f884612f29565b925061310660208501612f29565b9150604084013590509250925092565b600080600080600060a0868803121561312d578081fd5b61313686612f29565b945061314460208701612f29565b94979496505050506040830135926060810135926080909101359150565b60008060408385031215613174578182fd5b61317d83612f29565b946020939093013593505050565b6000806000806000606086880312156131a2578081fd5b853567ffffffffffffffff808211156131b9578283fd5b6131c589838a01612f45565b909750955060208801359150808211156131dd578283fd5b506131ea88828901612f45565b96999598509660400135949350505050565b600080600060408486031215613210578283fd5b833567ffffffffffffffff811115613226578384fd5b61323286828701612f45565b909790965060209590950135949350505050565b60008060006060848603121561325a578081fd5b833567ffffffffffffffff80821115613271578283fd5b818601915086601f830112613284578283fd5b81356020613294612faf83613597565b8083825282820191508286018b848660051b89010111156132b3578788fd5b8796505b848710156132dc576132c881612f29565b8352600196909601959183019183016132b7565b50975050870135925050808211156132f2578283fd5b6132fe87838801612f8f565b93506040860135915080821115613313578283fd5b5061332086828701612f8f565b9150509250925092565b60006020828403121561333b578081fd5b81518015158114613058578182fd5b6000806000806040858703121561335f578182fd5b843567ffffffffffffffff80821115613376578384fd5b61338288838901612ffe565b9096509450602087013591508082111561339a578384fd5b506133a787828801612ffe565b95989497509550505050565b81835281816020850137506000806020838501015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60008251815b8181101561341b5760208186018101518583015201613401565b818111156134295782828501525b509190910192915050565b6020808252825182820181905260009190848201906040850190845b818110156134755783516001600160a01b031683529284019291840191600101613450565b50909695505050505050565b604080825283519082018190526000906020906060840190828701845b828110156134ba5781518452928401929084019060010161349e565b50505092019290925292915050565b6020815260006134dd6020830184866133b3565b949350505050565b6040815260006134f96040830186886133b3565b828103602084015261350c8185876133b3565b979650505050505050565b60808152600061352b6080830187896133b3565b602083019590955250604081019290925260609091015292915050565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561358f5761358f613671565b604052919050565b600067ffffffffffffffff8211156135b1576135b1613671565b5060051b60200190565b600082198211156135ce576135ce61365b565b500190565b6000826135ee57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561360d5761360d61365b565b500290565b6000828210156136245761362461365b565b500390565b6000816136385761363861365b565b506000190190565b60006000198214156136545761365461365b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212200d9b48600a095d0d2178f7e1e71dfcbe6811f4512c128a62ceaa117e5100498064736f6c63430008040033", + }, + { + ContractAddr: common.HexToAddress(HashAgentContract), + CommitUrl: "https://github.com/coredao-org/core-genesis-contract/commit/925e416b42cb97ffba3b1bad4394d7e609452e10", + Code: "608060405234801561001057600080fd5b50600436106101a35760003560e01c8063943599fd116100ee578063b3d676f311610097578063dc927faf11610071578063dc927faf1461032a578063df4f1f0114610333578063e1c7392a14610346578063f9a2bbc71461034e57600080fd5b8063b3d676f31461030f578063b3ee5a5114610318578063c81b16621461032157600080fd5b8063aa82dce1116100c8578063aa82dce1146102ea578063ac431751146102f3578063b11717241461030657600080fd5b8063943599fd146102ba5780639dc09262146102c4578063a78abc16146102cd57600080fd5b80633b76816011610150578063773b807e1161012a578063773b807e14610260578063783028a91461027557806383d443391461027e57600080fd5b80633b7681601461024557806343756e5c1461024e5780635d25e51d1461025757600080fd5b806325ee13e21161018157806325ee13e2146102125780632a5d69b21461021b578063342e85381461022457600080fd5b806304e9e3a4146101a857806314c1e1f7146101db578063174e31c4146101e4575b600080fd5b6101b161100781565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6101b161100481565b6101f76101f2366004610cdd565b610357565b604080519384526020840192909252908201526060016101d2565b6101b161100581565b6101b161101281565b610237610232366004610d79565b6104b1565b6040516101d2929190610f68565b6101b161101481565b6101b161100181565b6101b161101181565b61027361026e366004610d79565b610566565b005b6101b161100881565b6102a561028c366004610cba565b6001602081905260009182526040909120805491015482565b604080519283526020830191909152016101d2565b6101b16201000181565b6101b161100681565b6000546102da9060ff1681565b60405190151581526020016101d2565b6101b161101081565b610273610301366004610eff565b6105fc565b6101b161100981565b6101b161101381565b6101b161101581565b6101b161100281565b6101b161100381565b610273610341366004610d08565b61072f565b610273610b96565b6101b161100081565b6000808033611010146103f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f746865206d73672073656e646572206d757374206265207374616b652068756260448201527f20636f6e7472616374000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff851660009081526001602052604090205492508215610455575073ffffffffffffffffffffffffffffffffffffffff841660009081526001602081905260408220908101805491839055919091555b604080518481526020810183905273ffffffffffffffffffffffffffffffffffffffff8716917f11c0f971226ea99f66b1f83203c0ef5544b71d013850aa6beef3c4e98bdcb28d910160405180910390a2600091509250925092565b6060600061100363951188896104c860078661111a565b87876040518463ffffffff1660e01b81526004016104e893929190610ffd565b60006040518083038186803b15801561050057600080fd5b505afa158015610514573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261055a9190810190610e64565b90969095509350505050565b33611010146105f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f746865206d73672073656e646572206d757374206265207374616b652068756260448201527f20636f6e7472616374000000000000000000000000000000000000000000000060648201526084016103e8565b505050565b60005460ff16610668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e6974207965740000000000000060448201526064016103e8565b33611006146106f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f746865206d73672073656e646572206d75737420626520676f7665726e616e6360448201527f6520636f6e74726163740000000000000000000000000000000000000000000060648201526084016103e8565b83836040517f64b4f6040000000000000000000000000000000000000000000000000000000081526004016103e8929190610fb0565b33611010146107c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f746865206d73672073656e646572206d757374206265207374616b652068756260448201527f20636f6e7472616374000000000000000000000000000000000000000000000060648201526084016103e8565b83828114610850576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f746865206c656e677468206f662076616c696461746f724c69737420616e642060448201527f7265776172644c6973742073686f756c6420626520657175616c00000000000060648201526084016103e8565b60008060005b83811015610b8b57868682818110610897577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020135600014156108ab57610b7b565b60006110036351b6ada36108c060078961111a565b8c8c868181106108f9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061090e9190610cba565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152600481019290925273ffffffffffffffffffffffffffffffffffffffff16602482015260440160006040518083038186803b15801561097857600080fd5b505afa15801561098c573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526109d29190810190610dc3565b8051945090508315610b795783888884818110610a18577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020135610a2991906110e1565b925060005b84811015610b77578360016000848481518110610a74577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254610ac891906110c9565b925050819055506001806000848481518110610b0d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254610b6191906110c9565b90915550610b70905081611131565b9050610a2e565b505b505b610b8481611131565b9050610856565b505050505050505050565b60005460ff1615610c03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e69740000000000000060448201526064016103e8565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b60008083601f840112610c41578182fd5b50813567ffffffffffffffff811115610c58578182fd5b6020830191508360208260051b8501011115610c7357600080fd5b9250929050565b60008083601f840112610c8b578182fd5b50813567ffffffffffffffff811115610ca2578182fd5b602083019150836020828501011115610c7357600080fd5b600060208284031215610ccb578081fd5b8135610cd6816111c8565b9392505050565b60008060408385031215610cef578081fd5b8235610cfa816111c8565b946020939093013593505050565b600080600080600060608688031215610d1f578081fd5b853567ffffffffffffffff80821115610d36578283fd5b610d4289838a01610c30565b90975095506020880135915080821115610d5a578283fd5b50610d6788828901610c30565b96999598509660400135949350505050565b600080600060408486031215610d8d578283fd5b833567ffffffffffffffff811115610da3578384fd5b610daf86828701610c30565b909790965060209590950135949350505050565b60006020808385031215610dd5578182fd5b825167ffffffffffffffff811115610deb578283fd5b8301601f81018513610dfb578283fd5b8051610e0e610e09826110a5565b611056565b80828252848201915084840188868560051b8701011115610e2d578687fd5b8694505b83851015610e58578051610e44816111c8565b835260019490940193918501918501610e31565b50979650505050505050565b60008060408385031215610e76578182fd5b825167ffffffffffffffff811115610e8c578283fd5b8301601f81018513610e9c578283fd5b80516020610eac610e09836110a5565b80838252828201915082850189848660051b8801011115610ecb578788fd5b8795505b84861015610eed578051835260019590950194918301918301610ecf565b50969091015195979596505050505050565b60008060008060408587031215610f14578384fd5b843567ffffffffffffffff80821115610f2b578586fd5b610f3788838901610c7a565b90965094506020870135915080821115610f4f578384fd5b50610f5c87828801610c7a565b95989497509550505050565b604080825283519082018190526000906020906060840190828701845b82811015610fa157815184529284019290840190600101610f85565b50505092019290925292915050565b60208152816020820152818360408301376000818301604090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101919050565b83815260406020808301829052908201839052600090849060608401835b86811015610e5857833561102e816111c8565b73ffffffffffffffffffffffffffffffffffffffff168252928201929082019060010161101b565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561109d5761109d611199565b604052919050565b600067ffffffffffffffff8211156110bf576110bf611199565b5060051b60200190565b600082198211156110dc576110dc61116a565b500190565b600082611115577f4e487b710000000000000000000000000000000000000000000000000000000081526012600452602481fd5b500490565b60008282101561112c5761112c61116a565b500390565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156111635761116361116a565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff811681146111ea57600080fd5b5056fea26469706673582212203a15f9b53508eb9896b1228227fef659efdc4b24fad7f8d5b7a142faac4c63e264736f6c63430008040033", + }, + { + ContractAddr: common.HexToAddress(BTCAgentContract), + CommitUrl: "https://github.com/coredao-org/core-genesis-contract/commit/925e416b42cb97ffba3b1bad4394d7e609452e10", + Code: "608060405234801561001057600080fd5b50600436106101f05760003560e01c8063943599fd1161010f578063b77ea2d7116100a2578063e1c7392a11610071578063e1c7392a14610408578063f4e497b614610410578063f88c13dd14610423578063f9a2bbc71461042c57600080fd5b8063b77ea2d7146103ce578063c81b1662146103e3578063dc927faf146103ec578063df4f1f01146103f557600080fd5b8063ac431751116100de578063ac431751146103a0578063b1171724146103b3578063b3d676f3146103bc578063b3ee5a51146103c557600080fd5b8063943599fd146103775780639dc0926214610381578063a78abc161461038a578063aa82dce11461039757600080fd5b8063342e8538116101875780635d25e51d116101565780635d25e51d14610344578063773b807e1461034d578063783028a9146103625780637a0ff57a1461036b57600080fd5b8063342e8538146102e15780633b7681601461030257806343756e5c1461030b5780634b22fc621461031457600080fd5b8063174e31c4116101c3578063174e31c41461026557806320c94d981461029357806325ee13e2146102cf5780632a5d69b2146102d857600080fd5b806304e9e3a4146101f55780630f1cff14146102285780631146feb81461023f57806314c1e1f71461025c575b600080fd5b6101fe61100781565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61023160045481565b60405190815260200161021f565b60035461024c9060ff1681565b604051901515815260200161021f565b6101fe61100481565b610278610273366004612771565b610435565b6040805193845260208401929092529082015260600161021f565b6102ba6102a1366004612757565b6001602081905260009182526040909120805491015482565b6040805192835260208301919091520161021f565b6101fe61100581565b6101fe61101281565b6102f46102ef36600461280b565b6108e2565b60405161021f929190612c23565b6101fe61101481565b6101fe61100181565b610327610322366004612a12565b610c9e565b6040805163ffffffff93841681529290911660208301520161021f565b6101fe61101181565b61036061035b36600461280b565b610cd1565b005b6101fe61100881565b6102316402540be40081565b6101fe6201000181565b6101fe61100681565b60005461024c9060ff1681565b6101fe61101081565b6103606103ae3660046129a9565b610e35565b6101fe61100981565b6101fe61101381565b6101fe61101581565b6103d6611939565b60405161021f9190612bca565b6101fe61100281565b6101fe61100381565b61036061040336600461279a565b6119ad565b610360611dfa565b61036061041e366004612855565b611e89565b61023160055481565b6101fe61100081565b6000808033611010146104b55760405162461bcd60e51b815260206004820152602960248201527f746865206d73672073656e646572206d757374206265207374616b652068756260448201527f20636f6e7472616374000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6040517fd279c19100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152600090819081906110149063d279c19190602401606060405180830381600087803b15801561052557600080fd5b505af1158015610539573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055d9190612a2a565b6002546003549396509194509250906127109060ff16801561057e57508115155b801561058957508215155b156106c65760045460009061059e858c612def565b6105a89190612def565b905060026000815481106105cc57634e487b7160e01b600052603260045260246000fd5b6000918252602082200154640100000000900463ffffffff1692506105f2600185612ec0565b90505b8015610688576002818154811061061c57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015463ffffffff168210610676576002818154811061065557634e487b7160e01b600052603260045260246000fd5b600091825260209091200154640100000000900463ffffffff169250610688565b8061068081612efa565b9150506105f5565b5060006127106106988489612e0f565b6106a29190612def565b90506106ad87611fb9565b6106b682611fb9565b6106c09190612e4c565b98509550505b6040805186815260208101869052908101889052606081018490526080810182905273ffffffffffffffffffffffffffffffffffffffff8b16907fdbbf9bacc93c131780177027d6389f88dad5f97a66d031ba486d72324737f3cd9060a00160405180910390a283156107495761073c84611fb9565b6107469088612e4c565b96505b6040517fd279c19100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b16600482015260009081906110159063d279c19190602401606060405180830381600087803b1580156107b757600080fd5b505af11580156107cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ef9190612a2a565b9250509150600061271060055414610842576000612710600554856108149190612e0f565b61081e9190612def565b905061082984611fb9565b61083282611fb9565b61083c9190612e4c565b90935090505b61084c818b612d63565b600554604080518681526000602082015280820185905260608101869052608081019290925251919b5073ffffffffffffffffffffffffffffffffffffffff8f16917febe16797178112fb70f294088acfc548e162ad99aa8f6b98174fa36ae18e6f7b9181900360a00190a26108c28389612dd7565b8a6108cd8489612dd7565b9a509a509a5050505050505050509250925092565b60606000336110101461095d5760405162461bcd60e51b815260206004820152602960248201527f746865206d73672073656e646572206d757374206265207374616b652068756260448201527f20636f6e7472616374000000000000000000000000000000000000000000000060648201526084016104ac565b6040517f3d1f0974000000000000000000000000000000000000000000000000000000008152849060009061101590633d1f0974906109a2908a908690600401612b5a565b60006040518083038186803b1580156109ba57600080fd5b505afa1580156109ce573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610a149190810190612916565b6040517f3d1f097400000000000000000000000000000000000000000000000000000000815290915061101490633d1f097490610a57908a908a90600401612b5a565b60006040518083038186803b158015610a6f57600080fd5b505afa158015610a83573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610ac99190810190612916565b935060005b82811015610c9357818181518110610af657634e487b7160e01b600052603260045260246000fd5b6020026020010151600160008a8a85818110610b2257634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610b379190612757565b73ffffffffffffffffffffffffffffffffffffffff1681526020810191909152604001600020558451859082908110610b8057634e487b7160e01b600052603260045260246000fd5b6020026020010151600160008a8a85818110610bac57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610bc19190612757565b73ffffffffffffffffffffffffffffffffffffffff1681526020810191909152604001600020600101558151829082908110610c0d57634e487b7160e01b600052603260045260246000fd5b6020026020010151858281518110610c3557634e487b7160e01b600052603260045260246000fd5b60200260200101818151610c499190612dd7565b9052508451859082908110610c6e57634e487b7160e01b600052603260045260246000fd5b602002602001015184610c819190612dd7565b9350610c8c81612f2f565b9050610ace565b505050935093915050565b60028181548110610cae57600080fd5b60009182526020909120015463ffffffff80821692506401000000009091041682565b3361101014610d485760405162461bcd60e51b815260206004820152602960248201527f746865206d73672073656e646572206d757374206265207374616b652068756260448201527f20636f6e7472616374000000000000000000000000000000000000000000000060648201526084016104ac565b6040517f773b807e0000000000000000000000000000000000000000000000000000000081526110149063773b807e90610d8a90869086908690600401612ba6565b600060405180830381600087803b158015610da457600080fd5b505af1158015610db8573d6000803e3d6000fd5b50506040517f773b807e000000000000000000000000000000000000000000000000000000008152611015925063773b807e9150610dfe90869086908690600401612ba6565b600060405180830381600087803b158015610e1857600080fd5b505af1158015610e2c573d6000803e3d6000fd5b50505050505050565b60005460ff16610e875760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e6974207965740000000000000060448201526064016104ac565b3361100614610efe5760405162461bcd60e51b815260206004820152602a60248201527f746865206d73672073656e646572206d75737420626520676f7665726e616e6360448201527f6520636f6e74726163740000000000000000000000000000000000000000000060648201526084016104ac565b610f7284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600681527f6772616465730000000000000000000000000000000000000000000000000000602082015291506120559050565b156115ce57600254604080516020601f8501819004810282018101909252838152600091610fc391610fbe9187908790819084018382808284376000920191909152506120ae92505050565b6120db565b8051909150806110035786866040517fad23613c0000000000000000000000000000000000000000000000000000000081526004016104ac929190612c45565b805b8381101561109657600280548061102c57634e487b7160e01b600052603160045260246000fd5b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001690550190558061108e81612f2f565b915050611005565b5060008060005b8381101561139a5760006110d78683815181106110ca57634e487b7160e01b600052603260045260246000fd5b60200260200101516120db565b905061110a816000815181106110fd57634e487b7160e01b600052603260045260246000fd5b602002602001015161220d565b9350611130816001815181106110fd57634e487b7160e01b600052603260045260246000fd5b92506305f5e1008411156111b8576040517f808861f900000000000000000000000000000000000000000000000000000000815260806004820152600960848201527f7374616b6552617465000000000000000000000000000000000000000000000060a482015260248101859052600060448201526305f5e100606482015260c4016104ac565b6111c5612710600a612e0f565b831115611253578260006111dc612710600a612e0f565b6040517f808861f900000000000000000000000000000000000000000000000000000000815260806004820152600a60848201527f70657263656e746167650000000000000000000000000000000000000000000060a482015260248101939093526044830191909152606482015260c4016104ac565b8682106112f2576040805180820190915263ffffffff8086168252848116602083019081526002805460018101825560009190915292517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace909301805491518316640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009092169390921692909217919091179055611387565b60405180604001604052808563ffffffff1681526020018463ffffffff168152506002838154811061133457634e487b7160e01b600052603260045260246000fd5b6000918252602091829020835191018054939092015163ffffffff908116640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009094169116179190911790555b508061139281612f2f565b91505061109d565b5060015b8381101561154257600281815481106113c757634e487b7160e01b600052603260045260246000fd5b60009182526020909120015463ffffffff1660026113e6600184612ec0565b8154811061140457634e487b7160e01b600052603260045260246000fd5b60009182526020909120015463ffffffff16106114635760405162461bcd60e51b815260206004820152601260248201527f7374616b6552617465206469736f72646572000000000000000000000000000060448201526064016104ac565b6002818154811061148457634e487b7160e01b600052603260045260246000fd5b600091825260209091200154640100000000900463ffffffff1660026114ab600184612ec0565b815481106114c957634e487b7160e01b600052603260045260246000fd5b600091825260209091200154640100000000900463ffffffff16106115305760405162461bcd60e51b815260206004820152601360248201527f70657263656e74616765206469736f726465720000000000000000000000000060448201526064016104ac565b8061153a81612f2f565b91505061139e565b50600260008154811061156557634e487b7160e01b600052603260045260246000fd5b60009182526020909120015463ffffffff16156115c45760405162461bcd60e51b815260206004820152601d60248201527f6c6f77657374207374616b6552617465206d757374206265207a65726f00000060448201526064016104ac565b50505050506118f6565b61164284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81527f6772616465416374697665000000000000000000000000000000000000000000602082015291506120559050565b1561175357600181146116855783836040517fad23613c0000000000000000000000000000000000000000000000000000000081526004016104ac929190612c45565b60006116cb600084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506122da9050565b905060018160ff16111561171757848482600060016040517f808861f90000000000000000000000000000000000000000000000000000000081526004016104ac959493929190612cbc565b600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600160ff909316929092149190911790556118f6565b6117c784848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527f6c7374477261646550657263656e746167650000000000000000000000000000602082015291506120559050565b156118c0576020811461180a5783836040517fad23613c0000000000000000000000000000000000000000000000000000000081526004016104ac929190612c45565b6000611850600084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506123409050565b905080158061186a5750611867612710600a612e0f565b81115b156118b8578484826001611881612710600a612e0f565b6040517f808861f90000000000000000000000000000000000000000000000000000000081526004016104ac959493929190612c8b565b6005556118f6565b83836040517f64b4f6040000000000000000000000000000000000000000000000000000000081526004016104ac929190612c45565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161192b9493929190612c59565b60405180910390a150505050565b60606002805480602002602001604051908101604052809291908181526020016000905b828210156119a4576000848152602090819020604080518082019091529084015463ffffffff8082168352640100000000909104168183015282526001909201910161195d565b50505050905090565b3361101014611a245760405162461bcd60e51b815260206004820152602960248201527f746865206d73672073656e646572206d757374206265207374616b652068756260448201527f20636f6e7472616374000000000000000000000000000000000000000000000060648201526084016104ac565b83828114611a9a5760405162461bcd60e51b815260206004820152603760248201527f746865206c656e677468206f662076616c696461746f727320616e642072657760448201527f6172644c6973742073686f756c6420626520657175616c00000000000000000060648201526084016104ac565b60008167ffffffffffffffff811115611ac357634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611aec578160200160208202803683370190505b509050611b0c604051806040016040528060008152602001600081525090565b60005b83811015611c6757868682818110611b3757634e487b7160e01b600052603260045260246000fd5b9050602002013560001415611b4b57611c57565b600160008a8a84818110611b6f57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190611b849190612757565b73ffffffffffffffffffffffffffffffffffffffff168152602080820192909252604090810160002081518083019092528054808352600190910154928201839052909350611bd39190612dd7565b611bdc57611c57565b60208201518251611bed9190612dd7565b8251888884818110611c0f57634e487b7160e01b600052603260045260246000fd5b90506020020135611c209190612e0f565b611c2a9190612def565b838281518110611c4a57634e487b7160e01b600052603260045260246000fd5b6020026020010181815250505b611c6081612f2f565b9050611b0f565b506040517f822b096e0000000000000000000000000000000000000000000000000000000081526110159063822b096e90611caa908b908b908790600401612b76565b600060405180830381600087803b158015611cc457600080fd5b505af1158015611cd8573d6000803e3d6000fd5b5050505060005b83811015611d7b57828181518110611d0757634e487b7160e01b600052603260045260246000fd5b6020026020010151878783818110611d2f57634e487b7160e01b600052603260045260246000fd5b90506020020135611d409190612ec0565b838281518110611d6057634e487b7160e01b600052603260045260246000fd5b6020908102919091010152611d7481612f2f565b9050611cdf565b506040517f822b096e0000000000000000000000000000000000000000000000000000000081526110149063822b096e90611dbe908b908b908790600401612b76565b600060405180830381600087803b158015611dd857600080fd5b505af1158015611dec573d6000803e3d6000fd5b505050505050505050505050565b60005460ff1615611e4d5760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e69740000000000000060448201526064016104ac565b6402540be400600455612710600555600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b3361100714611f005760405162461bcd60e51b815260206004820152602860248201527f7468652073656e646572206d75737420626520706c65646765206167656e742060448201527f636f6e747261637400000000000000000000000000000000000000000000000060648201526084016104ac565b815160005b81811015611fb357828181518110611f2d57634e487b7160e01b600052603260045260246000fd5b602002602001015160016000868481518110611f5957634e487b7160e01b600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555080611fac90612f2f565b9050611f05565b50505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8211156120515760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e206160448201527f6e20696e7432353600000000000000000000000000000000000000000000000060648201526084016104ac565b5090565b6000816040516020016120689190612b21565b604051602081830303815290604052805190602001208360405160200161208f9190612b21565b6040516020818303038152906040528051906020012014905092915050565b60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b60606120e6826123a6565b6120ef57600080fd5b60006120fa836123df565b905060008167ffffffffffffffff81111561212557634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561216a57816020015b60408051808201909152600080825260208201528152602001906001900390816121435790505b509050600061217c8560200151612462565b856020015161218b9190612dd7565b90506000805b84811015612202576121a2836124e4565b91506040518060400160405280838152602001848152508482815181106121d957634e487b7160e01b600052603260045260246000fd5b60209081029190910101526121ee8284612dd7565b9250806121fa81612f2f565b915050612191565b509195945050505050565b80516000901580159061222257508151602110155b61222b57600080fd5b600061223a8360200151612462565b905080836000015110156122905760405162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f666673657400000000000060448201526064016104ac565b82516000906122a0908390612ec0565b90506000808386602001516122b59190612dd7565b90508051915060208310156122d157826020036101000a820491505b50949350505050565b60006122e7826001612dd7565b835110156123375760405162461bcd60e51b815260206004820152601360248201527f746f55696e74385f6f75744f66426f756e64730000000000000000000000000060448201526064016104ac565b50016001015190565b600061234d826020612dd7565b8351101561239d5760405162461bcd60e51b815260206004820152601560248201527f746f55696e743235365f6f75744f66426f756e6473000000000000000000000060448201526064016104ac565b50016020015190565b80516000906123b757506000919050565b6020820151805160001a9060c08210156123d5575060009392505050565b5060019392505050565b80516000906123f057506000919050565b6000806124008460200151612462565b846020015161240f9190612dd7565b90506000846000015185602001516124279190612dd7565b90505b808210156124595761243b826124e4565b6124459083612dd7565b91508261245181612f2f565b93505061242a565b50909392505050565b8051600090811a608081101561247b5750600092915050565b60b8811080612496575060c08110801590612496575060f881105b156124a45750600192915050565b60c08110156124d8576124b9600160b8612ed7565b6124c69060ff1682612ec0565b6124d1906001612dd7565b9392505050565b6124b9600160f8612ed7565b80516000908190811a60808110156124ff576001915061262e565b60b881101561252557612513608082612ec0565b61251e906001612dd7565b915061262e565b60c08110156125a657600060b78203600186019550806020036101000a8651049150600181018201935050808310156125a05760405162461bcd60e51b815260206004820152601160248201527f6164646974696f6e206f766572666c6f7700000000000000000000000000000060448201526064016104ac565b5061262e565b60f88110156125ba5761251360c082612ec0565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561262c5760405162461bcd60e51b815260206004820152601160248201527f6164646974696f6e206f766572666c6f7700000000000000000000000000000060448201526064016104ac565b505b5092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461265957600080fd5b919050565b60008083601f84011261266f578182fd5b50813567ffffffffffffffff811115612686578182fd5b6020830191508360208260051b85010111156126a157600080fd5b9250929050565b600082601f8301126126b8578081fd5b813560206126cd6126c883612d3f565b612cf0565b80838252828201915082860187848660051b89010111156126ec578586fd5b855b8581101561270a578135845292840192908401906001016126ee565b5090979650505050505050565b60008083601f840112612728578182fd5b50813567ffffffffffffffff81111561273f578182fd5b6020830191508360208285010111156126a157600080fd5b600060208284031215612768578081fd5b6124d182612635565b60008060408385031215612783578081fd5b61278c83612635565b946020939093013593505050565b6000806000806000606086880312156127b1578081fd5b853567ffffffffffffffff808211156127c8578283fd5b6127d489838a0161265e565b909750955060208801359150808211156127ec578283fd5b506127f98882890161265e565b96999598509660400135949350505050565b60008060006040848603121561281f578283fd5b833567ffffffffffffffff811115612835578384fd5b6128418682870161265e565b909790965060209590950135949350505050565b60008060408385031215612867578182fd5b823567ffffffffffffffff8082111561287e578384fd5b818501915085601f830112612891578384fd5b813560206128a16126c883612d3f565b8083825282820191508286018a848660051b89010111156128c0578889fd5b8896505b848710156128e9576128d581612635565b8352600196909601959183019183016128c4565b50965050860135925050808211156128ff578283fd5b5061290c858286016126a8565b9150509250929050565b60006020808385031215612928578182fd5b825167ffffffffffffffff81111561293e578283fd5b8301601f8101851361294e578283fd5b805161295c6126c882612d3f565b80828252848201915084840188868560051b870101111561297b578687fd5b8694505b8385101561299d57805183526001949094019391850191850161297f565b50979650505050505050565b600080600080604085870312156129be578384fd5b843567ffffffffffffffff808211156129d5578586fd5b6129e188838901612717565b909650945060208701359150808211156129f9578384fd5b50612a0687828801612717565b95989497509550505050565b600060208284031215612a23578081fd5b5035919050565b600080600060608486031215612a3e578283fd5b8351925060208401519150604084015190509250925092565b81835260006020808501945082825b85811015612a9f5773ffffffffffffffffffffffffffffffffffffffff612a8c83612635565b1687529582019590820190600101612a66565b509495945050505050565b6000815180845260208085019450808401835b83811015612a9f57815187529582019590820190600101612abd565b81835281816020850137506000806020838501015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60008251815b81811015612b415760208186018101518583015201612b27565b81811115612b4f5782828501525b509190910192915050565b602081526000612b6e602083018486612a57565b949350505050565b604081526000612b8a604083018587612a57565b8281036020840152612b9c8185612aaa565b9695505050505050565b604081526000612bba604083018587612a57565b9050826020830152949350505050565b602080825282518282018190526000919060409081850190868401855b82811015612c16578151805163ffffffff90811686529087015116868501529284019290850190600101612be7565b5091979650505050505050565b604081526000612c366040830185612aaa565b90508260208301529392505050565b602081526000612b6e602083018486612ad9565b604081526000612c6d604083018688612ad9565b8281036020840152612c80818587612ad9565b979650505050505050565b608081526000612c9f608083018789612ad9565b602083019590955250604081019290925260609091015292915050565b608081526000612cd0608083018789612ad9565b60ff95909516602083015250604081019290925260609091015292915050565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612d3757612d37612f7e565b604052919050565b600067ffffffffffffffff821115612d5957612d59612f7e565b5060051b60200190565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03841381151615612d9d57612d9d612f68565b827f8000000000000000000000000000000000000000000000000000000000000000038412811615612dd157612dd1612f68565b50500190565b60008219821115612dea57612dea612f68565b500190565b600082612e0a57634e487b7160e01b81526012600452602481fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e4757612e47612f68565b500290565b6000808312837f800000000000000000000000000000000000000000000000000000000000000001831281151615612e8657612e86612f68565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018313811615612eba57612eba612f68565b50500390565b600082821015612ed257612ed2612f68565b500390565b600060ff821660ff841680821015612ef157612ef1612f68565b90039392505050565b600081612f0957612f09612f68565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612f6157612f61612f68565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212208a612290b117bca339b7e0cd54a6e07e23c548e6bbc1fc9f358f29537ab6919464736f6c63430008040033", + }, + { + ContractAddr: common.HexToAddress(BTCStakeContract), + CommitUrl: "https://github.com/coredao-org/core-genesis-contract/commit/925e416b42cb97ffba3b1bad4394d7e609452e10", + Code: "608060405234801561001057600080fd5b50600436106102c85760003560e01c806385e137d31161017b578063b77ea2d7116100d8578063d3a384d31161008c578063e1c7392a11610071578063e1c7392a146106e8578063e8beb1c0146106f0578063f9a2bbc71461071b57600080fd5b8063d3a384d3146106cc578063dc927faf146106df57600080fd5b8063c81b1662116100bd578063c81b16621461069d578063cb577480146106a6578063d279c191146106b957600080fd5b8063b77ea2d714610663578063c35842541461067857600080fd5b8063aa82dce11161012f578063b117172411610114578063b117172414610648578063b3d676f314610651578063b3ee5a511461065a57600080fd5b8063aa82dce11461062c578063ac4317511461063557600080fd5b8063981c27ea11610160578063981c27ea146106035780639dc0926214610616578063a78abc161461061f57600080fd5b806385e137d31461057d578063943599fd146105f957600080fd5b80634b22fc621161022957806379ce9fac116101dd5780638223cca1116101c25780638223cca11461050d578063822b096e1461052057806383d443391461053357600080fd5b806379ce9fac1461042f5780637a018cdf1461044257600080fd5b806375b10c711161020e57806375b10c71146103fc578063773b807e14610413578063783028a91461042657600080fd5b80634b22fc62146103bb5780635d25e51d146103f357600080fd5b80632a5d69b2116102805780633b768160116102655780633b768160146103895780633d1f09741461039257806343756e5c146103b257600080fd5b80632a5d69b21461036b5780632d7e3eda1461037457600080fd5b806314c1e1f7116102b157806314c1e1f71461031d57806320c94d981461032657806325ee13e21461036257600080fd5b806304e9e3a4146102cd5780631146feb814610300575b600080fd5b6102d661100781565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b600c5461030d9060ff1681565b60405190151581526020016102f7565b6102d661100481565b61034d610334366004615ce4565b6007602052600090815260409020805460019091015482565b604080519283526020830191909152016102f7565b6102d661100581565b6102d661101281565b610387610382366004616006565b610724565b005b6102d661101481565b6103a56103a0366004615d7d565b610ae6565b6040516102f791906162a7565b6102d661100181565b6103ce6103c9366004615fb2565b610c03565b6040805167ffffffffffffffff909316835263ffffffff9091166020830152016102f7565b6102d661101181565b61040560045481565b6040519081526020016102f7565b610387610421366004615e26565b610c41565b6102d661100881565b61038761043d366004615fe2565b610d44565b6104ce610450366004615fb2565b60026020526000908152604090205467ffffffffffffffff8082169163ffffffff6801000000000000000082048116926c010000000000000000000000008304169174010000000000000000000000000000000000000000810482169178010000000000000000000000000000000000000000000000009091041685565b6040805167ffffffffffffffff968716815263ffffffff958616602082015295909316928501929092528216606084015216608082015260a0016102f7565b61038761051b366004615e70565b61123c565b61038761052e366004615dbd565b61139c565b610562610541366004615ce4565b60086020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016102f7565b6105c661058b366004615fb2565b60056020526000908152604090208054600182015460029092015473ffffffffffffffffffffffffffffffffffffffff918216929091169083565b6040805173ffffffffffffffffffffffffffffffffffffffff9485168152939092166020840152908201526060016102f7565b6102d66201000181565b610387610611366004616088565b611620565b6102d661100681565b60005461030d9060ff1681565b6102d661101081565b610387610643366004616179565b611ce6565b6102d661100981565b6102d661101381565b6102d661101581565b61066b612689565b6040516102f79190616248565b6009546106889063ffffffff1681565b60405163ffffffff90911681526020016102f7565b6102d661100281565b6103876106b4366004615fb2565b612708565b6105626106c7366004615ce4565b61292c565b6103876106da366004615d7d565b612b67565b6102d661100381565b610387612ec9565b6104056106fe366004615d52565b600360209081526000928352604080842090915290825290205481565b6102d661100081565b61072c612ff7565b600061076d86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061305192505050565b6009546040517fedade1890000000000000000000000000000000000000000000000000000000081529192506000916110039163edade189916107c19186918a9163ffffffff16908a908a906004016162eb565b60206040518083038186803b1580156107d957600080fd5b505afa1580156107ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108119190615f56565b9050806108655760405162461bcd60e51b815260206004820152601660248201527f6274632074782069736e277420636f6e6669726d65640000000000000000000060448201526064015b60405180910390fd5b60006108a688888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061311f92505050565b509092506108be91505062ffffff19821660066132a4565b5060006108d162ffffff198316826133a8565b67ffffffffffffffff16905060008080805b84811015610a81576108fb62ffffff198716826134ef565b6000828152600260205260409020805491955091935067ffffffffffffffff161580159061093e5750805463ffffffff8581166801000000000000000090920416145b15610a705780547801000000000000000000000000000000000000000000000000900463ffffffff16156109da5760405162461bcd60e51b815260206004820152602260248201527f627463206f757470757420697320616c726561647920756e64656c656761746560448201527f642e000000000000000000000000000000000000000000000000000000000000606482015260840161085c565b80547fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000063ffffffff8e1602178155610a2c8561661c565b94508363ffffffff16837f11e4685d914d513c078f2520ce18170550bf421495a0b11d9a2e82b0ac02ac328b604051610a6791815260200190565b60405180910390a35b50610a7a8161661c565b90506108e3565b5082610acf5760405162461bcd60e51b815260206004820152601660248201527f6e6f2062746320747820756e64656c6567617465642e00000000000000000000604482015260640161085c565b50505050505050610adf60018055565b5050505050565b6060818067ffffffffffffffff811115610b1057634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b39578160200160208202803683370190505b50915060005b81811015610bfb5760076000868684818110610b6b57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610b809190615ce4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154838281518110610bde57634e487b7160e01b600052603260045260246000fd5b602090810291909101015280610bf38161661c565b915050610b3f565b505092915050565b600b8181548110610c1357600080fd5b60009182526020909120015467ffffffffffffffff8116915068010000000000000000900463ffffffff1682565b3361101314610cb85760405162461bcd60e51b815260206004820152602d60248201527f746865206d73672073656e646572206d75737420626520626974636f696e206160448201527f67656e7420636f6e747261637400000000000000000000000000000000000000606482015260840161085c565b816000805b82811015610d3a57858582818110610ce557634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610cfa9190615ce4565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260076020526040902060018101549055915080610d328161661c565b915050610cbd565b5050506004555050565b610d4c612ff7565b60008281526002602090815260408083206005909252909120815467ffffffffffffffff1680610dbe5760405162461bcd60e51b815260206004820152601060248201527f627463207478206e6f7420666f756e6400000000000000000000000000000000604482015260640161085c565b600182015473ffffffffffffffffffffffffffffffffffffffff163314610e4d5760405162461bcd60e51b815260206004820152602560248201527f6e6f74207468652064656c656761746f72206f6620746869732062746320726560448201527f6365697074000000000000000000000000000000000000000000000000000000606482015260840161085c565b815473ffffffffffffffffffffffffffffffffffffffff908116908516811415610edf5760405162461bcd60e51b815260206004820152602660248201527f63616e206e6f74207472616e7366657220746f207468652073616d652076616c60448201527f696461746f720000000000000000000000000000000000000000000000000000606482015260840161085c565b8354600090610f1090620151809074010000000000000000000000000000000000000000900463ffffffff1661650a565b90506004546001610f21919061647a565b8111610f6f5760405162461bcd60e51b815260206004820152601b60248201527f696e73756666696369656e74206c6f636b696e6720726f756e64730000000000604482015260640161085c565b6040517fc666907b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871660048201526110059063c666907b9060240160206040518083038186803b158015610fd657600080fd5b505afa158015610fea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100e9190615f56565b61105c576040517f97f6800700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716600482015260240161085c565b61106587613544565b50505073ffffffffffffffffffffffffffffffffffffffff82166000908152600760205260408120600181018054919267ffffffffffffffff8716926110ac908490616572565b90915550506000828152600a6020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684526001019091528120805467ffffffffffffffff871692906110fd908490616572565b909155505084547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff88161785556004546002860155855461117490869074010000000000000000000000000000000000000000900463ffffffff16866139ed565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600760205260408120600181018054919267ffffffffffffffff8816926111b890849061647a565b909155505086546040805173ffffffffffffffffffffffffffffffffffffffff87811682528b166020820152338183015267ffffffffffffffff9092166060830152518a917f131a10ab89910bd3a30ed9bbf71f1bce939e3d654a7cd7474ca5887eab499c82919081900360800190a25050505050505061123860018055565b5050565b33611007146112b35760405162461bcd60e51b815260206004820152602860248201527f7468652073656e646572206d75737420626520706c65646765206167656e742060448201527f636f6e7472616374000000000000000000000000000000000000000000000000606482015260840161085c565b825160005b81811015610adf576000600760008784815181106112e657634e487b7160e01b600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905084828151811061134a57634e487b7160e01b600052603260045260246000fd5b6020026020010151816000018190555083828151811061137a57634e487b7160e01b600052603260045260246000fd5b6020026020010151816001018190555050806113959061661c565b90506112b8565b33611013146114135760405162461bcd60e51b815260206004820152602d60248201527f746865206d73672073656e646572206d75737420626520626974636f696e206160448201527f67656e7420636f6e747261637400000000000000000000000000000000000000606482015260840161085c565b82600080805b838110156116165785858281811061144157634e487b7160e01b600052603260045260246000fd5b905060200201356000141561145557611604565b60008089898481811061147857634e487b7160e01b600052603260045260246000fd5b905060200201602081019061148d9190615ce4565b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602090815260408083206007909252909120805492965090916114d15750505050611604565b60028101549650861561152e57600281016114ed600189616572565b8154811061150b57634e487b7160e01b600052603260045260246000fd5b906000526020600020015492508160008481526020019081526020016000205493505b80546305f5e1008b8b8881811061155557634e487b7160e01b600052603260045260246000fd5b90506020020135611566919061652a565b611570919061650a565b61157a908561647a565b600480546000908152602085905260409020919091555461159c84600161647a565b14156115e357600454600282016115b460018a616572565b815481106115d257634e487b7160e01b600052603260045260246000fd5b6000918252602090912001556115ff565b6004546002820180546001810182556000918252602090912001555b505050505b8061160e8161661c565b915050611419565b5050505050505050565b611628612ff7565b80517f040000000000000000000000000000000000000000000000000000000000000090829060009061166b57634e487b7160e01b600052603260045260246000fd5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016148015611708575080517fb10000000000000000000000000000000000000000000000000000000000000090829060059081106116df57634e487b7160e01b600052603260045260246000fd5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b6117545760405162461bcd60e51b815260206004820152601960248201527f6e6f7420612076616c69642072656465656d2073637269707400000000000000604482015260640161085c565b600061179587878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061305192505050565b600081815260026020526040902080549192509067ffffffffffffffff16156118005760405162461bcd60e51b815260206004820152601c60248201527f62746320747820697320616c72656164792064656c6567617465642e00000000604482015260640161085c565b600061180b84613ae4565b6009546040517fab6d0e5100000000000000000000000000000000000000000000000000000000815291925060009182916110039163ab6d0e51916118639189918e9163ffffffff909116908e908e906004016162eb565b604080518083038186803b15801561187a57600080fd5b505afa15801561188e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b29190615f70565b91509150816119035760405162461bcd60e51b815260206004820152601660248201527f6274632074782069736e277420636f6e6669726d656400000000000000000000604482015260640161085c565b60006119186201518063ffffffff861661650a565b90506004546001611929919061647a565b81116119775760405162461bcd60e51b815260206004820152601b60248201527f696e73756666696369656e74206c6f636b696e6720726f756e64730000000000604482015260640161085c565b838560000160146101000a81548163ffffffff021916908363ffffffff1602179055508185600001600c6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050506000600560008581526020019081526020016000209050600080600080611a248e8e8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061311f92505050565b50925050506000611a35828b613c3a565b6040517f541d5548000000000000000000000000000000000000000000000000000000008152336004820152919850965091945091506110049063541d55489060240160206040518083038186803b158015611a9057600080fd5b505afa158015611aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac89190615f56565b80611ae857503373ffffffffffffffffffffffffffffffffffffffff8616145b611b5a5760405162461bcd60e51b815260206004820152603860248201527f6f6e6c792064656c656761746f72206f722072656c617965722063616e20737560448201527f626d69742074686520425443207472616e73616374696f6e0000000000000000606482015260840161085c565b875463ffffffff821668010000000000000000027fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090911667ffffffffffffffff85161717885560405173ffffffffffffffffffffffffffffffffffffffff80871691908616908b907f3391934a441f8a4f5bd3ffdc8b4c59b386061114e16b83d51cc73b1e41c0c0a090611bf7908f9087908a90600090616359565b60405180910390a4505073ffffffffffffffffffffffffffffffffffffffff8084166000908152600660209081526040808320805460018181018355918552838520018c9055938616835260079091528120909101805467ffffffffffffffff84169290611c6690849061647a565b909155505060018401805473ffffffffffffffffffffffffffffffffffffffff8086167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255855491841691161784556004546002850155611cce8486836139ed565b50505050505050611cde60018055565b505050505050565b60005460ff16611d385760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015260640161085c565b3361100614611daf5760405162461bcd60e51b815260206004820152602a60248201527f746865206d73672073656e646572206d75737420626520676f7665726e616e6360448201527f6520636f6e747261637400000000000000000000000000000000000000000000606482015260840161085c565b611e2384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600681527f677261646573000000000000000000000000000000000000000000000000000060208201529150613fee9050565b1561248b57600b54604080516020601f8501819004810282018101909252838152600091611e7491611e6f91879087908190840183828082843760009201919091525061404792505050565b614074565b805190915080611eb45786866040517fad23613c00000000000000000000000000000000000000000000000000000000815260040161085c929190616398565b805b83811015611f2957600b805480611edd57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180547fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016905501905580611f218161661c565b915050611eb6565b5060008060005b83811015612243576000611f6a868381518110611f5d57634e487b7160e01b600052603260045260246000fd5b6020026020010151614074565b9050611f9d81600081518110611f9057634e487b7160e01b600052603260045260246000fd5b60200260200101516141a6565b9350610fa0841115612021576040517f808861f900000000000000000000000000000000000000000000000000000000815260806004820152600c60848201527f6c6f636b4475726174696f6e000000000000000000000000000000000000000060a48201526024810184905260006044820152610fa0606482015260c40161085c565b61204581600181518110611f9057634e487b7160e01b600052603260045260246000fd5b9250821580612055575061271083115b156120d2576040517f808861f900000000000000000000000000000000000000000000000000000000815260806004820152600a60848201527f70657263656e746167650000000000000000000000000000000000000000000060a48201526024810184905260016044820152612710606482015260c40161085c565b6120df620151808561652a565b935086821061218b576040805180820190915267ffffffffffffffff808616825263ffffffff80861660208401908152600b805460018101825560009190915293517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db99094018054915190921668010000000000000000027fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009091169390921692909217179055612230565b60405180604001604052808567ffffffffffffffff1681526020018463ffffffff16815250600b83815481106121d157634e487b7160e01b600052603260045260246000fd5b6000918252602091829020835191018054939092015163ffffffff1668010000000000000000027fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090931667ffffffffffffffff909116179190911790555b508061223b8161661c565b915050611f30565b5060015b838110156123fb57600b818154811061227057634e487b7160e01b600052603260045260246000fd5b60009182526020909120015467ffffffffffffffff16600b612293600184616572565b815481106122b157634e487b7160e01b600052603260045260246000fd5b60009182526020909120015467ffffffffffffffff16106123145760405162461bcd60e51b815260206004820152601560248201527f6c6f636b4475726174696f6e206469736f726465720000000000000000000000604482015260640161085c565b600b818154811061233557634e487b7160e01b600052603260045260246000fd5b60009182526020909120015468010000000000000000900463ffffffff16600b612360600184616572565b8154811061237e57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015468010000000000000000900463ffffffff16106123e95760405162461bcd60e51b815260206004820152601360248201527f70657263656e74616765206469736f7264657200000000000000000000000000604482015260640161085c565b806123f38161661c565b915050612247565b50600b60008154811061241e57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015467ffffffffffffffff16156124815760405162461bcd60e51b815260206004820181905260248201527f6c6f77657374206c6f636b4475726174696f6e206d757374206265207a65726f604482015260640161085c565b5050505050612646565b6124ff84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81527f677261646541637469766500000000000000000000000000000000000000000060208201529150613fee9050565b1561261057600181146125425783836040517fad23613c00000000000000000000000000000000000000000000000000000000815260040161085c929190616398565b6000612588600084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506142739050565b905060018160ff1611156125d457848482600060016040517f808861f900000000000000000000000000000000000000000000000000000000815260040161085c9594939291906163de565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600160ff90931692909214919091179055612646565b83836040517f64b4f60400000000000000000000000000000000000000000000000000000000815260040161085c929190616398565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161267b94939291906163ac565b60405180910390a150505050565b6060600b805480602002602001604051908101604052809291908181526020016000905b828210156126ff576000848152602090819020604080518082019091529084015467ffffffffffffffff8116825268010000000000000000900463ffffffff16818301528252600190920191016126ad565b50505050905090565b336110101461277f5760405162461bcd60e51b815260206004820152602960248201527f746865206d73672073656e646572206d757374206265207374616b652068756260448201527f20636f6e74726163740000000000000000000000000000000000000000000000606482015260840161085c565b6000806004546001612791919061647a565b90505b828111612927576000818152600a602052604090208054806127b7575050612917565b805b80156128f857826127cb600183616572565b815481106127e957634e487b7160e01b600052603260045260246000fd5b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16808352600186810190925260409092205491965061282a91616572565b73ffffffffffffffffffffffffffffffffffffffff861660009081526007602052604081206001018054909190612862908490616572565b9091555050825483908061288657634e487b7160e01b600052603160045260246000fd5b60008281526020808220830160001990810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590920190925573ffffffffffffffffffffffffffffffffffffffff8716825260018501905260408120556128f181616605565b90506127b9565b506000838152600a60205260408120906129128282615b91565b505050505b6129208161661c565b9050612794565b505050565b6000808033611013146129a75760405162461bcd60e51b815260206004820152602d60248201527f746865206d73672073656e646572206d75737420626520626974636f696e206160448201527f67656e7420636f6e747261637400000000000000000000000000000000000000606482015260840161085c565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260066020526040812080545b8015612add57612a12826129e4600184616572565b81548110612a0257634e487b7160e01b600052603260045260246000fd5b9060005260206000200154613544565b509350508215612acb5781548114612a965781548290612a3490600190616572565b81548110612a5257634e487b7160e01b600052603260045260246000fd5b906000526020600020015482600183612a6b9190616572565b81548110612a8957634e487b7160e01b600052603260045260246000fd5b6000918252602090912001555b81805480612ab457634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590555b80612ad581616605565b9150506129cf565b5073ffffffffffffffffffffffffffffffffffffffff8616600090815260086020526040902080546001820154600290920154909650909450925084151580612b2557508215155b15612b5e5773ffffffffffffffffffffffffffffffffffffffff8616600090815260086020526040812081815560018101829055600201555b50509193909250565b806000805b82811015610adf57848482818110612b9457634e487b7160e01b600052603260045260246000fd5b90506020020135915060008061100773ffffffffffffffffffffffffffffffffffffffff1684604051602401612bcc91815260200190565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f9c562e480000000000000000000000000000000000000000000000000000000017905251612c2f919061622c565b6000604051808303816000865af19150503d8060008114612c6c576040519150601f19603f3d011682016040523d82523d6000602084013e612c71565b606091505b509150915081612ce95760405162461bcd60e51b815260206004820152602c60248201527f63616c6c20504c454447455f4147454e545f414444522e6d6f7665427463446160448201527f74612829206661696c65642e0000000000000000000000000000000000000000606482015260840161085c565b600080600080600085806020019051810190612d059190615d00565b9450945094509450945060006201518082612d20919061650a565b90506004548111612d38575050505050505050612eb7565b506000898152600260205260409020805467ffffffffffffffff1615612d65575050505050505050612eb7565b6000600560008f8f8d818110612d8b57634e487b7160e01b600052603260045260246000fd5b602090810292909201358352508181019290925260409081016000908120805473ffffffffffffffffffffffffffffffffffffffff808d167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617835560018084018054928e16929093168217909255600283018a9055875463ffffffff8a1674010000000000000000000000000000000000000000027fffffffffffffffff00000000ffffffffffffffffffffffff000000000000000090911667ffffffffffffffff8d161717885583526006855292822080549384018155808352939091209091018d90559150612e818285886139ed565b6040518c907f15873123c0bebc251856eb7e46748abb314919c38ea5d438e94700d8fd677c1d90600090a2505050505050505050505b80612ec18161661c565b915050612b6c565b60005460ff1615612f1c5760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015260640161085c565b61100573ffffffffffffffffffffffffffffffffffffffff166373fa03ed6040518163ffffffff1660e01b815260040160206040518083038186803b158015612f6457600080fd5b505afa158015612f78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f9c9190615fca565b600455600980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000166006179055600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6002600154141561304a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161085c565b6002600155565b600080600283604051613064919061622c565b602060405180830381855afa158015613081573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906130a49190615fca565b905060006002826040516020016130bd91815260200190565b60408051601f19818403018152908290526130d79161622c565b602060405180830381855afa1580156130f4573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906131179190615fca565b949350505050565b60008080808061312f86826142d9565b905061314c61314762ffffff198316600060046142fd565b614454565b94506004600061318061317183601886901c6bffffffffffffffffffffffff16616572565b62ffffff1985169060006144d4565b9050600061318d82614512565b90506131a6838260065b62ffffff1988169291906145f1565b96506131b2818461647a565b92506131e26131d384601887901c6bffffffffffffffffffffffff16616572565b62ffffff1986169060006144d4565b915060006131ef83614675565b90506132088482600f5b62ffffff1989169291906145f1565b9650613214818561647a565b935061322b61314762ffffff1987168660046142fd565b9550601885901c6bffffffffffffffffffffffff1661324b85600461647a565b146132985760405162461bcd60e51b815260206004820152601960248201527f426974636f696e48656c7065723a20696e76616c696420747800000000000000604482015260640161085c565b50505050509193509193565b60006132b0838361474a565b61339f5760006132cf6132c38560d81c90565b64ffffffffff1661476d565b91505060006132e48464ffffffffff1661476d565b6040517f5479706520617373657274696f6e206661696c65642e20476f7420307800000060208201527fffffffffffffffffffff0000000000000000000000000000000000000000000060b086811b8216603d8401527f2e20457870656374656420307800000000000000000000000000000000000000604784015283901b16605482015290925060009150605e015b60405160208183030381529060405290508060405162461bcd60e51b815260040161085c9190616412565b50815b92915050565b6000806133bd62ffffff198516846001614819565b905060fc81116133d8576133d081614849565b9150506133a2565b8060fd141561343e576134066134016133f285600161647a565b62ffffff1987169060026142fd565b614849565b9150613411826148c9565b60ff166003146134395761343761343262ffffff19861685600360006145f1565b61492a565b505b6134e8565b8060fe14156134935761346761340161345885600161647a565b62ffffff1987169060046142fd565b9150613472826148c9565b60ff166005146134395761343761343262ffffff19861685600560006145f1565b8060ff14156134e8576134bc6134016134ad85600161647a565b62ffffff1987169060086142fd565b91506134c7826148c9565b60ff166009146134e857610bfb61343262ffffff19861685600960006145f1565b5092915050565b600080836006613507815b62ffffff198416906132a4565b50600061351487876149c7565b9050600061352182614b07565b905061352c81614b2e565b955061353781614b50565b9450505050509250929050565b600081815260026020818152604080842060059092528320918201548392839291806135b25760405162461bcd60e51b815260206004820152601760248201527f696e76616c6964206465706f7369742072656365697074000000000000000000604482015260640161085c565b600060016004546135c39190616572565b84549091506000906001906135fa90620151809074010000000000000000000000000000000000000000900463ffffffff1661650a565b6136049190616572565b9050818310801561361457508083105b15613930576000818310613628578161362a565b825b865486549192506305f5e1009167ffffffffffffffff909116906136649073ffffffffffffffffffffffffffffffffffffffff1687614b75565b87546136869073ffffffffffffffffffffffffffffffffffffffff1685614b75565b6136909190616572565b61369a919061652a565b6136a4919061650a565b98506136b08482616572565b86546136c6919067ffffffffffffffff1661652a565b600c5490975060009060ff1680156136df5750600b5415155b1561385057865460009061372b906c01000000000000000000000000810467ffffffffffffffff169074010000000000000000000000000000000000000000900463ffffffff16616589565b90506000600b60008154811061375157634e487b7160e01b600052603260045260246000fd5b6000918252602082200154600b546801000000000000000090910463ffffffff16925061378090600190616572565b90505b801561382257600b81815481106137aa57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015467ffffffffffffffff9081169084161061381057600b81815481106137eb57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015468010000000000000000900463ffffffff169150613822565b8061381a81616605565b915050613783565b506000612710613832838f61652a565b61383c919061650a565b9050613848818e616572565b909c50925050505b60028601829055891561389c57600186015473ffffffffffffffffffffffffffffffffffffffff16600090815260086020526040812080548c929061389690849061647a565b90915550505b80156138e55760018087015473ffffffffffffffffffffffffffffffffffffffff16600090815260086020526040812090910180548392906138df90849061647a565b90915550505b871561392d57600186015473ffffffffffffffffffffffffffffffffffffffff16600090815260086020526040812060020180548a929061392790849061647a565b90915550505b50505b6004548110156139dc57600184015460405173ffffffffffffffffffffffffffffffffffffffff909116908a907fab9cd399cf9f01321f73b32d2b1e2c6034d379277171bcd887b269416c0ef3bb90600090a3505050600086815260056020526040812080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811682556001808301805490921690915560029091019190915593506139e6915050565b5060009550505050505b9193909250565b6000613a026201518063ffffffff851661650a565b6000818152600a60209081526040808320885473ffffffffffffffffffffffffffffffffffffffff16845260018101909252909120549192509080613a9d5750845481546001818101845560008481526020902090910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909316929092179091555b613ab167ffffffffffffffff85168261647a565b955473ffffffffffffffffffffffffffffffffffffffff1660009081526001909201602052506040902093909355505050565b6021810151600090613c2d8160008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b63ffffffff169392505050565b6000808080613c5062ffffff198716600f6132a4565b50600080808080613c6762ffffff198c16826133a8565b67ffffffffffffffff1690506000805b82811015613f3a57613c8f62ffffff198e1682614ce0565b9650613ca062ffffff198816614df3565b9550613cb162ffffff198816614e3d565b9450613cc262ffffff198616614e88565b935062ffffff198085161415613f15576017601887901c6bffffffffffffffffffffffff16148015613d065750613d0262ffffff19871660006001614819565b60a9145b8015613d235750613d1f62ffffff198716600180614819565b6014145b8015613d415750613d3d62ffffff19871660166001614819565b6087145b8015613e355750600360028d604051613d5a919061622c565b602060405180830381855afa158015613d77573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190613d9a9190615fca565b604051602001613dac91815260200190565b60408051601f1981840301815290829052613dc69161622c565b602060405180830381855afa158015613de3573d6000803e3d6000fd5b50506040515160601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169050613e2162ffffff1988166002615091565b60601b6bffffffffffffffffffffffff1916145b80613ef657506022601887901c6bffffffffffffffffffffffff16148015613e6d5750613e6b62ffffff19871660006001614819565b155b8015613e8a5750613e8662ffffff198716600180614819565b6020145b8015613ef6575060028c604051613ea1919061622c565b602060405180830381855afa158015613ebe573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190613ee19190615fca565b613ef462ffffff1988166002602061509f565b145b15613f1057613f0a62ffffff19881661523c565b9a508099505b613f28565b613f1e84615261565b9099509750600191505b80613f328161661c565b915050613c77565b5067ffffffffffffffff8a16613f925760405162461bcd60e51b815260206004820152601460248201527f7374616b65642076616c7565206973207a65726f000000000000000000000000604482015260640161085c565b80613fdf5760405162461bcd60e51b815260206004820152600b60248201527f6e6f206f7072657475726e000000000000000000000000000000000000000000604482015260640161085c565b50505050505092959194509250565b600081604051602001614001919061622c565b6040516020818303038152906040528051906020012083604051602001614028919061622c565b6040516020818303038152906040528051906020012014905092915050565b60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b606061407f8261544e565b61408857600080fd5b600061409383615487565b905060008167ffffffffffffffff8111156140be57634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561410357816020015b60408051808201909152600080825260208201528152602001906001900390816140dc5790505b5090506000614115856020015161550a565b8560200151614124919061647a565b90506000805b8481101561419b5761413b8361558b565b915060405180604001604052808381526020018481525084828151811061417257634e487b7160e01b600052603260045260246000fd5b6020908102919091010152614187828461647a565b9250806141938161661c565b91505061412a565b509195945050505050565b8051600090158015906141bb57508151602110155b6141c457600080fd5b60006141d3836020015161550a565b905080836000015110156142295760405162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015260640161085c565b8251600090614239908390616572565b905060008083866020015161424e919061647a565b905080519150602083101561426a57826020036101000a820491505b50949350505050565b600061428082600161647a565b835110156142d05760405162461bcd60e51b815260206004820152601360248201527f746f55696e74385f6f75744f66426f756e647300000000000000000000000000604482015260640161085c565b50016001015190565b8151600090602084016142f464ffffffffff851682846156cd565b95945050505050565b600061444a61430d85858561509f565b60008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b90505b9392505050565b600063ffffffff8211156144d05760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f3220626974730000000000000000000000000000000000000000000000000000606482015260840161085c565b5090565b600061444a84846144f38760181c6bffffffffffffffffffffffff1690565b6bffffffffffffffffffffffff1661450b9190616572565b85856145f1565b6000601882901c6bffffffffffffffffffffffff1661453357506000919050565b60006145408360006133a8565b9050601883901c6bffffffffffffffffffffffff1667ffffffffffffffff821661456e575060009392505050565b6000614579836148c9565b60ff16905060005b8367ffffffffffffffff1681101561426a578282106145a65750600095945050505050565b60006145c66145b58486616572565b60055b62ffffff198a1691906144d4565b90506145d181615711565b6145db908461647a565b92505080806145e99061661c565b915050614581565b60008061460c8660781c6bffffffffffffffffffffffff1690565b6bffffffffffffffffffffffff16905061462586615766565b84614630878461647a565b61463a919061647a565b111561464d5762ffffff19915050613117565b614657858261647a565b905061466b8364ffffffffff1682866156cd565b9695505050505050565b6000601882901c6bffffffffffffffffffffffff1661469657506000919050565b60006146a38360006133a8565b9050601883901c6bffffffffffffffffffffffff1667ffffffffffffffff82166146d1575060009392505050565b60006146dc836148c9565b60ff16905060005b8367ffffffffffffffff1681101561426a578282106147095750600095945050505050565b600061471f6147188486616572565b600e6145b8565b905061472a816157b6565b614734908461647a565b92505080806147429061661c565b9150506146e4565b60008164ffffffffff1661475e8460d81c90565b64ffffffffff16149392505050565b600080601f5b600f8160ff1611156147cb57600061478c826008616549565b60ff1685901c905061479d81615800565b61ffff16841793508160ff166010146147b857601084901b93505b506147c46001826165b2565b9050614773565b50600f5b60ff8160ff1610156148135760ff600882021684901c6147ee81615800565b61ffff16831792508160ff1660001461480957601083901b92505b50600019016147cf565b50915091565b60006148268260206165b2565b614831906008616549565b60ff1661483f85858561509f565b901c949350505050565b600067ffffffffffffffff8211156144d05760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f3420626974730000000000000000000000000000000000000000000000000000606482015260840161085c565b600060fc8267ffffffffffffffff16116148e557506001919050565b61ffff8267ffffffffffffffff161161490057506003919050565b63ffffffff8267ffffffffffffffff161161491d57506005919050565b506009919050565b919050565b6060600061496361495e82614950601887901c6bffffffffffffffffffffffff16615832565b62ffffff1987169190614819565b61476d565b6040517f4e6f6e2d6d696e696d616c2076617220696e742e20476f74203078000000000060208201527fffffffffffffffffffffffffffffffffffff0000000000000000000000000000607083901b16603b82015290925060009150604d01613374565b60008260066149d5816134fa565b5060006149e38660006133a8565b67ffffffffffffffff169050601886901c6bffffffffffffffffffffffff16818610614a515760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e00000000000000000000000000000000604482015260640161085c565b6000614a5c836148c9565b60ff1690506000805b88811015614ab457614a8b614a7a8486616572565b60055b62ffffff198d1691906144d4565b9150614a9682615711565b614aa0908461647a565b9250614aad60018261647a565b9050614a65565b50614ad3614ac28385616572565b60055b62ffffff198c1691906144d4565b90506000614ae082615711565b9050614af9838260045b62ffffff198e169291906145f1565b9a9950505050505050505050565b6000816004614b15816134fa565b50614b24600060246003613197565b92505b5050919050565b6000816003614b3c816134fa565b50614b2462ffffff1985166000602061509f565b6000816003614b5e816134fa565b50614b2461314762ffffff198616602060046142fd565b73ffffffffffffffffffffffffffffffffffffffff821660009081526003602090815260408083208484529091529020548015614bb1576133a2565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600760205260409020600281015480614beb576000925050506133a2565b614bf6600182616572565b90506000806000805b848411614c91576002614c12868661647a565b614c1c919061650a565b9250856002018381548110614c4157634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905087811015614c6b57905080614c6483600161647a565b9350614bff565b82614c7f57600096505050505050506133a2565b614c8a600184616572565b9450614bff565b8115614cd45773ffffffffffffffffffffffffffffffffffffffff89166000908152600360209081526040808320858452909152808220548a8352912081905596505b50505050505092915050565b600082600f614cee816134fa565b506000614cfc8660006133a8565b67ffffffffffffffff169050601886901c6bffffffffffffffffffffffff16818610614d6a5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e000000000000000000000000000000604482015260640161085c565b6000614d75836148c9565b60ff1690506000805b88811015614dc357614d9a614d938486616572565b600e614a7d565b9150614da5826157b6565b614daf908461647a565b9250614dbc60018261647a565b9050614d7e565b50614dd8614dd18385616572565b600e614ac5565b90506000614de5826157b6565b9050614af98382600d614aea565b600081600d614e01816134fa565b506000614e0f8560086133a8565b90506142f4614e1d826148c9565b614e289060086164be565b60ff1667ffffffffffffffff831660076131f9565b600081600d614e4b816134fa565b506000614e598560086133a8565b90506142f4600882614e6a846148c9565b60ff16614e779190616492565b67ffffffffffffffff1660076131f9565b6000816007614e96816134fa565b506000614ea48560006133a8565b9050614eb862ffffff198616600180614819565b606a141561508757614ed362ffffff19861660026001614819565b604c1415614fbb576000614ef361340162ffffff19881660036001614819565b9050614f00600383616589565b67ffffffffffffffff168167ffffffffffffffff16148015614f2d575060538267ffffffffffffffff1611155b8015614f445750604f8267ffffffffffffffff1610155b614f905760405162461bcd60e51b815260206004820152601f60248201527f426974636f696e48656c7065723a20696e76616c6964206f7072657475726e00604482015260640161085c565b614fb2600467ffffffffffffffff8316600c5b62ffffff198a169291906145f1565b94505050614b27565b6000614fd361340162ffffff19881660026001614819565b9050614fe0600283616589565b67ffffffffffffffff168167ffffffffffffffff1614801561500d5750604d8267ffffffffffffffff1611155b8015615024575060048267ffffffffffffffff1610155b6150705760405162461bcd60e51b815260206004820152601f60248201527f426974636f696e48656c7065723a20696e76616c6964206f7072657475726e00604482015260640161085c565b614fb2600367ffffffffffffffff8316600c614fa3565b62ffffff196142f4565b600061444d83836014614819565b600060ff82166150b15750600061444d565b6150c98460181c6bffffffffffffffffffffffff1690565b6bffffffffffffffffffffffff166150e460ff84168561647a565b111561515c576151436151058560781c6bffffffffffffffffffffffff1690565b6bffffffffffffffffffffffff1661512b8660181c6bffffffffffffffffffffffff1690565b6bffffffffffffffffffffffff16858560ff166158ab565b60405162461bcd60e51b815260040161085c9190616412565b60208260ff1611156151d65760405162461bcd60e51b815260206004820152603a60248201527f54797065644d656d566965772f696e646578202d20417474656d70746564207460448201527f6f20696e646578206d6f7265207468616e203332206279746573000000000000606482015260840161085c565b6008820260006151f48660781c6bffffffffffffffffffffffff1690565b6bffffffffffffffffffffffff16905060007f800000000000000000000000000000000000000000000000000000000000000060001984011d91909501511695945050505050565b600081600d61524a816134fa565b50614b2461340162ffffff198616600060086142fd565b6000806030601884901c6bffffffffffffffffffffffff1610156152c75760405162461bcd60e51b815260206004820152601b60248201527f7061796c6f6164206c656e67746820697320746f6f20736d616c6c0000000000604482015260640161085c565b635341542b6152df62ffffff19851660006004614819565b1461532c5760405162461bcd60e51b815260206004820152600b60248201527f77726f6e67206d61676963000000000000000000000000000000000000000000604482015260640161085c565b61045c61534262ffffff19851660056002614819565b1461538f5760405162461bcd60e51b815260206004820152600e60248201527f77726f6e6720636861696e206964000000000000000000000000000000000000604482015260640161085c565b60006153a462ffffff19851660046001614819565b905063ffffffff81166001146154225760405162461bcd60e51b815260206004820152602760248201527f756e737570706f72746564207361742b2076657273696f6e20696e206274632060448201527f7374616b696e6700000000000000000000000000000000000000000000000000606482015260840161085c565b61543362ffffff198516601b615091565b915061544662ffffff1985166007615091565b925050915091565b805160009061545f57506000919050565b6020820151805160001a9060c082101561547d575060009392505050565b5060019392505050565b805160009061549857506000919050565b6000806154a8846020015161550a565b84602001516154b7919061647a565b90506000846000015185602001516154cf919061647a565b90505b80821015615501576154e38261558b565b6154ed908361647a565b9150826154f98161661c565b9350506154d2565b50909392505050565b8051600090811a60808110156155235750600092915050565b60b881108061553e575060c0811080159061553e575060f881105b1561554c5750600192915050565b60c081101561557957615561600160b86165b2565b61556e9060ff1682616572565b61444d90600161647a565b615561600160f86165b2565b50919050565b80516000908190811a60808110156155a657600191506134e8565b60b88110156155cc576155ba608082616572565b6155c590600161647a565b91506134e8565b60c081101561564757600060b78203600186019550806020036101000a8651049150600181018201935050808310156134375760405162461bcd60e51b815260206004820152601160248201527f6164646974696f6e206f766572666c6f77000000000000000000000000000000604482015260640161085c565b60f881101561565b576155ba60c082616572565b600060f78203600186019550806020036101000a865104915060018101820193505080831015610bfb5760405162461bcd60e51b815260206004820152601160248201527f6164646974696f6e206f766572666c6f77000000000000000000000000000000604482015260640161085c565b6000806156da838561647a565b90506040518111156156ea575060005b806156fc5762ffffff1991505061444d565b5050606092831b9190911790911b1760181b90565b600081600561571f816134fa565b50600061572d8560246133a8565b90508067ffffffffffffffff16615743826148c9565b60ff16615750919061647a565b61575b90602461647a565b6142f490600461647a565b60006157808260181c6bffffffffffffffffffffffff1690565b6157988360781c6bffffffffffffffffffffffff1690565b6157a291906164e3565b6bffffffffffffffffffffffff1692915050565b600081600e6157c4816134fa565b5060006157d28560086133a8565b90508067ffffffffffffffff166157e8826148c9565b60ff166157f5919061647a565b6142f490600861647a565b600061581260048360ff16901c615a3b565b60ff1661ffff919091161760081b61582982615a3b565b60ff1617919050565b600060ff8211156144d05760405162461bcd60e51b815260206004820152602560248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203860448201527f2062697473000000000000000000000000000000000000000000000000000000606482015260840161085c565b606060006158b88661476d565b91505060006158c68661476d565b91505060006158d48661476d565b91505060006158e28661476d565b604080517f54797065644d656d566965772f696e646578202d204f76657272616e2074686560208201527f20766965772e20536c6963652069732061742030780000000000000000000000818301527fffffffffffff000000000000000000000000000000000000000000000000000060d098891b811660558301527f2077697468206c656e6774682030780000000000000000000000000000000000605b830181905297891b8116606a8301527f2e20417474656d7074656420746f20696e646578206174206f6666736574203060708301527f7800000000000000000000000000000000000000000000000000000000000000609083015295881b861660918201526097810196909652951b90921660a684015250507f2e0000000000000000000000000000000000000000000000000000000000000060ac8201528151808203608d01815260ad90910190915295945050505050565b600060f08083179060ff82161415615a565750603092915050565b8060ff1660f11415615a6b5750603192915050565b8060ff1660f21415615a805750603292915050565b8060ff1660f31415615a955750603392915050565b8060ff1660f41415615aaa5750603492915050565b8060ff1660f51415615abf5750603592915050565b8060ff1660f61415615ad45750603692915050565b8060ff1660f71415615ae95750603792915050565b8060ff1660f81415615afe5750603892915050565b8060ff1660f91415615b135750603992915050565b8060ff1660fa1415615b285750606192915050565b8060ff1660fb1415615b3d5750606292915050565b8060ff1660fc1415615b525750606392915050565b8060ff1660fd1415615b675750606492915050565b8060ff1660fe1415615b7c5750606592915050565b8060ff1660ff14156155855750606692915050565b5080546000825590600052602060002090810190615baf9190615bb2565b50565b5b808211156144d05760008155600101615bb3565b60008083601f840112615bd8578182fd5b50813567ffffffffffffffff811115615bef578182fd5b6020830191508360208260051b8501011115615c0a57600080fd5b9250929050565b600082601f830112615c21578081fd5b81356020615c36615c3183616456565b616425565b80838252828201915082860187848660051b8901011115615c55578586fd5b855b85811015615c7357813584529284019290840190600101615c57565b5090979650505050505050565b8051801515811461492557600080fd5b60008083601f840112615ca1578182fd5b50813567ffffffffffffffff811115615cb8578182fd5b602083019150836020828501011115615c0a57600080fd5b803563ffffffff8116811461492557600080fd5b600060208284031215615cf5578081fd5b813561444d81616663565b600080600080600060a08688031215615d17578081fd5b8551615d2281616663565b6020870151909550615d3381616663565b6040870151606088015160809098015196999198509695945092505050565b60008060408385031215615d64578182fd5b8235615d6f81616663565b946020939093013593505050565b60008060208385031215615d8f578182fd5b823567ffffffffffffffff811115615da5578283fd5b615db185828601615bc7565b90969095509350505050565b60008060008060408587031215615dd2578182fd5b843567ffffffffffffffff80821115615de9578384fd5b615df588838901615bc7565b90965094506020870135915080821115615e0d578384fd5b50615e1a87828801615bc7565b95989497509550505050565b600080600060408486031215615e3a578081fd5b833567ffffffffffffffff811115615e50578182fd5b615e5c86828701615bc7565b909790965060209590950135949350505050565b600080600060608486031215615e84578081fd5b833567ffffffffffffffff80821115615e9b578283fd5b818601915086601f830112615eae578283fd5b81356020615ebe615c3183616456565b8083825282820191508286018b848660051b8901011115615edd578788fd5b8796505b84871015615f08578035615ef481616663565b835260019690960195918301918301615ee1565b5097505087013592505080821115615f1e578283fd5b615f2a87838801615c11565b93506040860135915080821115615f3f578283fd5b50615f4c86828701615c11565b9150509250925092565b600060208284031215615f67578081fd5b61444d82615c80565b60008060408385031215615f82578182fd5b615f8b83615c80565b9150602083015167ffffffffffffffff81168114615fa7578182fd5b809150509250929050565b600060208284031215615fc3578081fd5b5035919050565b600060208284031215615fdb578081fd5b5051919050565b60008060408385031215615ff4578182fd5b823591506020830135615fa781616663565b60008060008060006080868803121561601d578283fd5b853567ffffffffffffffff80821115616034578485fd5b61604089838a01615c90565b909750955085915061605460208901615cd0565b94506040880135915080821115616069578283fd5b5061607688828901615c11565b95989497509295606001359392505050565b60008060008060008060a087890312156160a0578384fd5b863567ffffffffffffffff808211156160b7578586fd5b6160c38a838b01615c90565b9098509650602091506160d7898301615cd0565b95506040890135818111156160ea578384fd5b6160f68b828c01615c11565b95505060608901359350608089013581811115616111578384fd5b8901601f81018b13616121578384fd5b8035828111156161335761613361664d565b61614584601f19601f84011601616425565b92508083528b8482840101111561615a578485fd5b8084830185850137820190920192909252509497939650919450929091565b6000806000806040858703121561618e578182fd5b843567ffffffffffffffff808211156161a5578384fd5b6161b188838901615c90565b909650945060208701359150808211156161c9578384fd5b50615e1a87828801615c90565b8183528181602085013750600080602083850101526020601f19601f840116840101905092915050565b600081518084526162188160208601602086016165d5565b601f01601f19169290920160200192915050565b6000825161623e8184602087016165d5565b9190910192915050565b602080825282518282018190526000919060409081850190868401855b8281101561629a578151805167ffffffffffffffff16855286015163ffffffff16868501529284019290850190600101616265565b5091979650505050505050565b6020808252825182820181905260009190848201906040850190845b818110156162df578351835292840192918401916001016162c3565b50909695505050505050565b600060a08201878352602063ffffffff8089168286015280881660408601525060a0606085015281865180845260c0860191508288019350845b8181101561634157845183529383019391830191600101616325565b50508093505050508260808301529695505050505050565b60808152600061636c6080830187616200565b63ffffffff9590951660208301525067ffffffffffffffff929092166040830152606090910152919050565b60208152600061444a6020830184866161d6565b6040815260006163c06040830186886161d6565b82810360208401526163d38185876161d6565b979650505050505050565b6080815260006163f26080830187896161d6565b60ff95909516602083015250604081019290925260609091015292915050565b60208152600061444d6020830184616200565b604051601f8201601f1916810167ffffffffffffffff8111828210171561644e5761644e61664d565b604052919050565b600067ffffffffffffffff8211156164705761647061664d565b5060051b60200190565b6000821982111561648d5761648d616637565b500190565b600067ffffffffffffffff8083168185168083038211156164b5576164b5616637565b01949350505050565b600060ff821660ff84168060ff038211156164db576164db616637565b019392505050565b60006bffffffffffffffffffffffff8083168185168083038211156164b5576164b5616637565b60008261652557634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561654457616544616637565b500290565b600060ff821660ff84168160ff048111821515161561656a5761656a616637565b029392505050565b60008282101561658457616584616637565b500390565b600067ffffffffffffffff838116908316818110156165aa576165aa616637565b039392505050565b600060ff821660ff8416808210156165cc576165cc616637565b90039392505050565b60005b838110156165f05781810151838201526020016165d8565b838111156165ff576000848401525b50505050565b60008161661457616614616637565b506000190190565b600060001982141561663057616630616637565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff81168114615baf57600080fdfea26469706673582212205e91c596d341d9b400663bd658354384dd00fdc4f3c57c6ab764a8a714536a1664736f6c63430008040033", + }, + { + ContractAddr: common.HexToAddress(BTCLSTStakeContract), + CommitUrl: "https://github.com/coredao-org/core-genesis-contract/commit/925e416b42cb97ffba3b1bad4394d7e609452e10", + Code: "608060405234801561001057600080fd5b50600436106103575760003560e01c80637a018cdf116101c8578063b3d676f311610104578063db7a4605116100a2578063e40b5c551161007c578063e40b5c551461041a578063e6332e92146107a0578063e85ba3e9146107b3578063f9a2bbc7146107f057600080fd5b8063db7a46051461077a578063dc927faf1461078f578063e1c7392a1461079857600080fd5b8063c81b1662116100de578063c81b166214610712578063c8d9d2b21461071b578063cb5774801461073b578063d279c1911461074c57600080fd5b8063b3d676f3146106f0578063b3ee5a51146106f9578063c35842541461070257600080fd5b8063981c27ea11610171578063a78abc161161014b578063a78abc16146106be578063aa82dce1146106cb578063ac431751146106d4578063b1171724146106e757600080fd5b8063981c27ea1461069a5780639c63795d146106ad5780639dc09262146106b557600080fd5b806383d44339116101a257806383d44339146106545780638ff444db1461047f578063943599fd1461069057600080fd5b80637a018cdf1461058e5780637ad71f721461060c578063822b096e1461064157600080fd5b80633d1f0974116102975780635d25e51d116102405780637241cb041161021a5780637241cb041461056157806375b10c7114610569578063773b807e14610572578063783028a91461058557600080fd5b80635d25e51d14610525578063677ba3d31461052e57806368f6f1631461054157600080fd5b8063483ccdb611610271578063483ccdb6146104875780634ead4327146104a75780635c975abb1461050e57600080fd5b80633d1f09741461045657806343756e5c1461047657806345121d2c1461047f57600080fd5b806329a3f26c1161030457806330e0218d116102de57806330e0218d1461041a578063371dd5ed14610422578063373d6132146104395780633b7681601461044d57600080fd5b806329a3f26c146103f35780632a5d69b2146103fc5780632d7e3eda1461040557600080fd5b80630fc3b1de116103355780630fc3b1de146103d957806314c1e1f7146103e157806325ee13e2146103ea57600080fd5b806303d6eb011461035c57806304e9e3a41461037e5780630cdc4961146103ac575b600080fd5b610364600881565b60405163ffffffff90911681526020015b60405180910390f35b61038761100781565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610375565b600f546103c09067ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610375565b610364601081565b61038761100481565b61038761100581565b6103c061271081565b61038761101281565b6104186104133660046165bd565b6107f9565b005b610364600281565b61042b600a5481565b604051908152602001610375565b6004546103c09067ffffffffffffffff1681565b61038761101481565b61046961046436600461647a565b610f25565b6040516103759190616927565b61038761100181565b610364600181565b61042b61049536600461658d565b600e6020526000908152604090205481565b6104e86104b5366004616425565b6005602052600090815260409020805460019091015467ffffffffffffffff808216916801000000000000000090041683565b6040805193845267ffffffffffffffff9283166020850152911690820152606001610375565b60025460ff165b6040519015158152602001610375565b61038761101181565b61041861053c36600461643f565b611168565b6004546103c09068010000000000000000900467ffffffffffffffff1681565b610364600481565b61042b60095481565b610418610580366004616523565b611296565b61038761100881565b6105df61059c36600461658d565b60036020526000908152604090205467ffffffffffffffff81169063ffffffff6801000000000000000082048116916c0100000000000000000000000090041683565b6040805167ffffffffffffffff909416845263ffffffff9283166020850152911690820152606001610375565b61061f61061a36600461658d565b611355565b6040805193845263ffffffff9283166020850152911690820152606001610375565b61041861064f3660046164ba565b611395565b61067b610662366004616425565b6008602052600090815260409020805460019091015482565b60408051928352602083019190915201610375565b6103876201000181565b6104186106a836600461663f565b611543565b610364600081565b61038761100681565b6000546105159060ff1681565b61038761101081565b6104186106e236600461674e565b611b5e565b61038761100981565b61038761101381565b61038761101581565b6007546103649063ffffffff1681565b61038761100281565b61042b61072936600461658d565b60066020526000908152604090205481565b61041861074936600461658d565b50565b61075f61075a366004616425565b61211c565b60408051938452602084019290925290820152606001610375565b6107826121cc565b60405161037591906168c4565b61038761100381565b610418612251565b6104186107ae3660046167ab565b6123ba565b6107c66107c136600461658d565b61289c565b6040805193845263ffffffff909216602084015267ffffffffffffffff1690820152606001610375565b61038761100081565b6108016128e4565b610809612939565b600061084a86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061299392505050565b6000818152600360205260409020549091506c01000000000000000000000000900463ffffffff16156108c45760405162461bcd60e51b815260206004820152601e60248201527f62746320747820697320616c726561647920756e64656c6567617465642e000060448201526064015b60405180910390fd5b6007546040517fedade1890000000000000000000000000000000000000000000000000000000081526000916110039163edade189916109179186918a9163ffffffff909116908a908a9060040161696b565b60206040518083038186803b15801561092f57600080fd5b505afa158015610943573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610967919061656d565b9050806109b65760405162461bcd60e51b815260206004820152601460248201527f627463207478206e6f7420636f6e6669726d656400000000000000000000000060448201526064016108bb565b600082815260036020908152604080832080547fffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff166c0100000000000000000000000063ffffffff8b16021790558051601f8a018390048302810183019091528881528291610a4091908b908b9081908401838280828437600092019190915250612a7f92505050565b5092509250506000610a5183612c04565b905080610aa05760405162461bcd60e51b815260206004820152601d60248201527f696e707574206d7573742066726f6d207374616b652077616c6c65742e00000060448201526064016108bb565b506000610ab362ffffff19831682612cdc565b905060008060005b8363ffffffff168163ffffffff161015610f0d57610ae862ffffff19861663ffffffff80841690612e2416565b90935091506000610afe62ffffff198416612e62565b80516020808301919091206000818152600e909252604090912054919250908015610e3c576000600d610b32600184616cb2565b81548110610b5057634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020190508b7f7be5f4aa00d45f5a3a898e842288e5613b3370057206383ce66d21ae20cf913b868987604051610b9493929190616ade565b60405180910390a2600181015467ffffffffffffffff8089166401000000009092041611610de857600181015467ffffffffffffffff808916640100000000909204161015610c34578b7ffa3ff704bc192f012272c317ed5936f9e9c3db8230339f459b31b85427408a93868360010160049054906101000a900467ffffffffffffffff168a88604051610c2b9493929190616aa5565b60405180910390a25b6000838152600e6020526040812055600d54821015610d8157600d8054610c5d90600190616cb2565b81548110610c7b57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060020201600d600184610c989190616cb2565b81548110610cb657634e487b7160e01b600052603260045260246000fd5b6000918252602090912082546002909202019081556001918201805491830180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000811663ffffffff9485169081178355925467ffffffffffffffff6401000000009182900416027fffffffffffffffffffffffffffffffffffffffff000000000000000000000000909116909217919091179055825491830154610d5c929116612ebc565b93508380519060200120925081600e6000858152602001908152602001600020819055505b600d805480610da057634e487b7160e01b600052603160045260246000fd5b60008281526020812060026000199093019283020190815560010180547fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001690559055610e36565b868160010160048282829054906101000a900467ffffffffffffffff16610e0f9190616cc9565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b50610ef9565b67ffffffffffffffff861615610ef9576000828152600c6020526040902054610ea3578a7ffa3ff704bc192f012272c317ed5936f9e9c3db8230339f459b31b85427408a938560008987604051610e969493929190616aa5565b60405180910390a2610ef9565b60008b8152600360205260409020805463ffffffff861668010000000000000000027fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090911667ffffffffffffffff8916171790555b50505080610f0690616d73565b9050610abb565b5050505050505050610f1e60018055565b5050505050565b6060818067ffffffffffffffff811115610f4f57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610f78578160200160208202803683370190505b5091506000805b828110156110b25761100563facd743b878784818110610faf57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610fc49190616425565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff909116600482015260240160206040518083038186803b15801561102857600080fd5b505afa15801561103c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611060919061656d565b156110a057600184828151811061108757634e487b7160e01b600052603260045260246000fd5b60209081029190910101528161109c81616d58565b9250505b806110aa81616d58565b915050610f7f565b508015611160576004546000906110e090839068010000000000000000900467ffffffffffffffff16616c1a565b905060005b8381101561115d5784818151811061110d57634e487b7160e01b600052603260045260246000fd5b60200260200101516001141561114b578185828151811061113e57634e487b7160e01b600052603260045260246000fd5b6020026020010181815250505b8061115581616d58565b9150506110e5565b50505b505092915050565b6111706128e4565b3362010001146111e85760405162461bcd60e51b815260206004820152602960248201527f6f6e6c7920627463206c737420746f6b656e2063616e2063616c6c207468697360448201527f2066756e6374696f6e000000000000000000000000000000000000000000000060648201526084016108bb565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561122157505050565b8067ffffffffffffffff8116811461127b5760405162461bcd60e51b815260206004820152601760248201527f62746320616d6f756e74206c696d69742075696e74363400000000000000000060448201526064016108bb565b611285848261345b565b61128f83826135f9565b505b505050565b336110131461130d5760405162461bcd60e51b815260206004820152602d60248201527f746865206d73672073656e646572206d75737420626520626974636f696e206160448201527f67656e7420636f6e74726163740000000000000000000000000000000000000060648201526084016108bb565b6004805468010000000000000000810467ffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009091161790556009555050565b600b818154811061136557600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b336110131461140c5760405162461bcd60e51b815260206004820152602d60248201527f746865206d73672073656e646572206d75737420626520626974636f696e206160448201527f67656e7420636f6e74726163740000000000000000000000000000000000000060648201526084016108bb565b600083815b8181101561145d5784848281811061143957634e487b7160e01b600052603260045260246000fd5b905060200201358361144b9190616b8a565b925061145681616d58565b9050611411565b5060045467ffffffffffffffff1661149d5761148660016009546114819190616cb2565b6136d5565b6009546000908152600660205260409020556114f1565b60045467ffffffffffffffff166114b86305f5e10084616c3a565b6114c29190616c1a565b6114d460016009546114819190616cb2565b6114de9190616b8a565b6009546000908152600660205260409020555b600954600081815260066020908152604091829020548251938452908301527f70d4070abca101d7bddfabfd3682789302cb23e1ac15aff09c6ba547c7e13749910160405180910390a1505050505050565b61154b6128e4565b600061158c87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061299392505050565b600081815260036020526040902080549192509067ffffffffffffffff16156115f75760405162461bcd60e51b815260206004820152601c60248201527f62746320747820697320616c72656164792064656c6567617465642e0000000060448201526064016108bb565b6007546040517fedade1890000000000000000000000000000000000000000000000000000000081526000916110039163edade1899161164a9187918c9163ffffffff909116908c908c9060040161696b565b60206040518083038186803b15801561166257600080fd5b505afa158015611676573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169a919061656d565b9050806116e95760405162461bcd60e51b815260206004820152601660248201527f6274632074782069736e277420636f6e6669726d65640000000000000000000060448201526064016108bb565b81547fffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff166c0100000000000000000000000063ffffffff89160217825561172f84613724565b6000806117718b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a7f92505050565b509250925050600061178283612c04565b905080156117f85760405162461bcd60e51b815260206004820152603560248201527f73686f756c64206e6f742064656c65676174652066726f6d2077686974656c6960448201527f73746564206d756c74697369672077616c6c657473000000000000000000000060648201526084016108bb565b6000806000611807858b613827565b6040517f541d554800000000000000000000000000000000000000000000000000000000815233600482015290955091935091506110049063541d55489060240160206040518083038186803b15801561186057600080fd5b505afa158015611874573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611898919061656d565b806118b857503373ffffffffffffffffffffffffffffffffffffffff8416145b61192a5760405162461bcd60e51b815260206004820152603860248201527f6f6e6c792064656c656761746f72206f722072656c617965722063616e20737560448201527f626d69742074686520425443207472616e73616374696f6e000000000000000060648201526084016108bb565b875463ffffffff821668010000000000000000027fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090911667ffffffffffffffff84161717885573ffffffffffffffffffffffffffffffffffffffff831615611af057600f546119a59067ffffffffffffffff166002616c59565b67ffffffffffffffff168267ffffffffffffffff161015611a085760405162461bcd60e51b815260206004820152601760248201527f62746320616d6f756e7420697320746f6f20736d616c6c00000000000000000060448201526064016108bb565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015267ffffffffffffffff8316602482015262010001906340c10f1990604401600060405180830381600087803b158015611a8257600080fd5b505af1158015611a96573d6000803e3d6000fd5b50505050611aa483836135f9565b81600460088282829054906101000a900467ffffffffffffffff16611ac99190616ba2565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b6040805167ffffffffffffffff841681526000602082015273ffffffffffffffffffffffffffffffffffffffff8516918b917fcf534b7e64d603147b37e6e3a517c77751805cdc75b3d13551fed147de860a86910160405180910390a3505050505050505050505050505050565b60005460ff16611bb05760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e6974207965740000000000000060448201526064016108bb565b3361100614611c275760405162461bcd60e51b815260206004820152602a60248201527f746865206d73672073656e646572206d75737420626520676f7665726e616e6360448201527f6520636f6e74726163740000000000000000000000000000000000000000000060648201526084016108bb565b611c9b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600381527f61646400000000000000000000000000000000000000000000000000000000006020820152915061397c9050565b15611ce457611cdf82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506139d592505050565b6120d9565b611d5884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600681527f72656d6f766500000000000000000000000000000000000000000000000000006020820152915061397c9050565b15611d9c57611cdf82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613c9c92505050565b611e1084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600681527f70617573656400000000000000000000000000000000000000000000000000006020820152915061397c9050565b15611f0c5760018114611e535783836040517fad23613c0000000000000000000000000000000000000000000000000000000081526004016108bb9291906169d9565b6000611e99600084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613e9f9050565b905060018160ff161115611ee557848482600060016040517f808861f90000000000000000000000000000000000000000000000000000000081526004016108bb959493929190616a5e565b8060ff1660011415611efe57611ef9613f05565b611f06565b611f06613f8a565b506120d9565b611f8084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600781527f7574786f466565000000000000000000000000000000000000000000000000006020820152915061397c9050565b156120a35760088114611fc35783836040517fad23613c0000000000000000000000000000000000000000000000000000000081526004016108bb9291906169d9565b6000612009600084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613fe19050565b90506103e88167ffffffffffffffff161015612065578484826103e867ffffffffffffffff6040517f808861f90000000000000000000000000000000000000000000000000000000081526004016108bb959493929190616a1f565b600f80547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff929092169190911790556120d9565b83836040517f64b4f6040000000000000000000000000000000000000000000000000000000081526004016108bb9291906169d9565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161210e94939291906169ed565b60405180910390a150505050565b6000808033611013146121975760405162461bcd60e51b815260206004820152602d60248201527f746865206d73672073656e646572206d75737420626520626974636f696e206160448201527f67656e7420636f6e74726163740000000000000000000000000000000000000060648201526084016108bb565b60025460ff16156121b0575060009150819050806121c5565b6121bb846001614047565b9093506000925090505b9193909250565b6060600b805480602002602001604051908101604052809291908181526020016000905b8282101561224857600084815260209081902060408051606081018252600286029092018054835260019081015463ffffffff80821685870152640100000000909104169183019190915290835290920191016121f0565b50505050905090565b60005460ff16156122a45760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e69740000000000000060448201526064016108bb565b600f80547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016612710179055604080517f73fa03ed0000000000000000000000000000000000000000000000000000000081529051611005916373fa03ed916004808301926020929190829003018186803b15801561232257600080fd5b505afa158015612336573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235a91906165a5565b600a819055600955600780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000166006179055600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6123c26128e4565b6123ca612939565b60008061240c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506143ba92505050565b909250905063ffffffff81166124645760405162461bcd60e51b815260206004820152601060248201527f696e76616c696420706b7363726970740000000000000000000000000000000060448201526064016108bb565b336000908152600560205260409020600181015467ffffffffffffffff9081169087168110156124d65760405162461bcd60e51b815260206004820152601460248201527f4e6f7420656e6f7567682062746320746f6b656e00000000000000000000000060448201526064016108bb565b67ffffffffffffffff87166124e9578096505b600f546125019067ffffffffffffffff166002616c59565b67ffffffffffffffff168767ffffffffffffffff1610156125645760405162461bcd60e51b815260206004820152601e60248201527f5468652072656465656d20616d6f756e7420697320746f6f20736d616c6c000060448201526064016108bb565b600f54879061257d9067ffffffffffffffff1682616cc9565b97506000808888604051612592929190616898565b60408051918290039091206000818152600e60205291909120549091508061269157600d60405180606001604052808a81526020018963ffffffff1681526020018d67ffffffffffffffff1681525090806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010160006101000a81548163ffffffff021916908363ffffffff16021790555060408201518160010160046101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050600d80549050600e6000848152602001908152602001600020819055508a925061276c565b8a600d61269f600184616cb2565b815481106126bd57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010160048282829054906101000a900467ffffffffffffffff166126f09190616ba2565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550600d6001826127259190616cb2565b8154811061274357634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010160049054906101000a900467ffffffffffffffff1692505b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815233600482015267ffffffffffffffff851660248201526201000190639dc29fac90604401600060405180830381600087803b1580156127d057600080fd5b505af11580156127e4573d6000803e3d6000fd5b5050600f546040513393507f99c4ceec71b5a751caae8fc78b4ef3b22acc61704dfa31b3475e53895f37767f925061282e918f9167ffffffffffffffff909116908f908f90616b0d565b60405180910390a2612840338561345b565b83600460088282829054906101000a900467ffffffffffffffff166128659190616cc9565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505050505050505061129160018055565b600d81815481106128ac57600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff811690640100000000900467ffffffffffffffff1683565b60025460ff16156129375760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016108bb565b565b6002600154141561298c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108bb565b6002600155565b6000806002836040516129a691906168a8565b602060405180830381855afa1580156129c3573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906129e691906165a5565b905060006002826040516020016129ff91815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052612a37916168a8565b602060405180830381855afa158015612a54573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190612a7791906165a5565b949350505050565b600080808080612a8f8682614a7b565b9050612aac612aa762ffffff19831660006004614a9f565b614bf6565b945060046000612ae0612ad183601886901c6bffffffffffffffffffffffff16616cb2565b62ffffff198516906000614c76565b90506000612aed82614cb4565b9050612b06838260065b62ffffff198816929190614d9c565b9650612b128184616b8a565b9250612b42612b3384601887901c6bffffffffffffffffffffffff16616cb2565b62ffffff198616906000614c76565b91506000612b4f83614e20565b9050612b688482600f5b62ffffff198916929190614d9c565b9650612b748185616b8a565b9350612b8b612aa762ffffff198716866004614a9f565b9550601885901c6bffffffffffffffffffffffff16612bab856004616b8a565b14612bf85760405162461bcd60e51b815260206004820152601960248201527f426974636f696e48656c7065723a20696e76616c69642074780000000000000060448201526064016108bb565b50505050509193509193565b6000612c1960065b62ffffff19841690614ef5565b506000612c2c62ffffff19841682612cdc565b905060008060005b8363ffffffff168163ffffffff161015612cd057612c6162ffffff19871663ffffffff80841690614ff716565b600082815260036020526040902054919450925067ffffffffffffffff1615801590612caf575060008381526003602052604090205463ffffffff8381166801000000000000000090920416145b15612cc05750600195945050505050565b612cc981616d73565b9050612c34565b50600095945050505050565b600080612cf162ffffff198516846001615043565b905060fc8111612d0c57612d0481615073565b915050612e1e565b8060fd1415612d7257612d3a612d35612d26856001616b8a565b62ffffff198716906002614a9f565b615073565b9150612d45826150f3565b60ff16600314612d6d57612d6b612d6662ffffff1986168560036000614d9c565b615154565b505b612e1c565b8060fe1415612dc757612d9b612d35612d8c856001616b8a565b62ffffff198716906004614a9f565b9150612da6826150f3565b60ff16600514612d6d57612d6b612d6662ffffff1986168560056000614d9c565b8060ff1415612e1c57612df0612d35612de1856001616b8a565b62ffffff198716906008614a9f565b9150612dfb826150f3565b60ff16600914612e1c57611160612d6662ffffff1986168560096000614d9c565b505b92915050565b60008083600f612e3381612c0c565b506000612e4087876151f1565b9050612e4b81615331565b9450612e5681615360565b93505050509250929050565b6060600080612e7f8460181c6bffffffffffffffffffffffff1690565b60405193508392506bffffffffffffffffffffffff169050612eab84612ea6846020616b8a565b6153aa565b508181016020016040529052919050565b606063ffffffff821660081480612ed9575063ffffffff82166010145b1561302c576040805160228082526060820190925290602082018180368337019050509050602060f81b81600181518110612f2457634e487b7160e01b600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535063ffffffff821660081415612fbc57600060f81b81600081518110612f8857634e487b7160e01b600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350613021565b63ffffffff82166010141561302157605160f81b81600081518110612ff157634e487b7160e01b600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b826022820152612e1e565b602263ffffffff83166001141561320e5760408051601980825281830190925290602082018180368337019050509150607660f81b8260008151811061308257634e487b7160e01b600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060a960f81b826001815181106130d757634e487b7160e01b600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350601460f81b8260028151811061312c57634e487b7160e01b600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350608860f81b8260178151811061318157634e487b7160e01b600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060ac60f81b826018815181106131d657634e487b7160e01b600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060239050613419565b63ffffffff831660021415613340576040805160178082528183019092529060208201818036833701905050915060a960f81b8260008151811061326257634e487b7160e01b600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350601460f81b826001815181106132b757634e487b7160e01b600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350608760f81b8260168151811061330c57634e487b7160e01b600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350613419565b63ffffffff8316600414156134195760408051601680825281830190925290602082018180368337019050509150600060f81b8260008151811061339457634e487b7160e01b600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350601460f81b826001815181106133e957634e487b7160e01b600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b810180516bffffffffffffffffffffffff16606085901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001617905292915050565b73ffffffffffffffffffffffffffffffffffffffff82166134be5760405162461bcd60e51b815260206004820152600e60248201527f696e76616c69642073656e64657200000000000000000000000000000000000060448201526064016108bb565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600560205260409020600181015467ffffffffffffffff9081169083168110156135465760405162461bcd60e51b815260206004820152601460248201527f496e73756666696369656e742062616c616e636500000000000000000000000060448201526064016108bb565b613551846000614047565b505060018201805484919060009061357490849067ffffffffffffffff16616cc9565b82546101009290920a67ffffffffffffffff8181021990931691831602179091556001840154680100000000000000008104821691161015905061128f575060010180547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff811667ffffffffffffffff90911668010000000000000000021790555050565b73ffffffffffffffffffffffffffffffffffffffff821661365c5760405162461bcd60e51b815260206004820152601060248201527f696e76616c69642072656365697665720000000000000000000000000000000060448201526064016108bb565b613667826000614047565b505073ffffffffffffffffffffffffffffffffffffffff8216600090815260056020526040812060010180548392906136ab90849067ffffffffffffffff16616ba2565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050565b6000600a5482116136e857506000919050565b600a54821461371c5750600081815260066020526040902054801561370c57919050565b61371582616d41565b91506136e8565b506000919050565b80516020808301919091206000818152600c9092526040909120548061378c5760405162461bcd60e51b815260206004820152601060248201527f57616c6c6574206e6f7420666f756e640000000000000000000000000000000060448201526064016108bb565b6001600b61379a8284616cb2565b815481106137b857634e487b7160e01b600052603260045260246000fd5b6000918252602090912060029091020160010154640100000000900463ffffffff16146112915760405162461bcd60e51b815260206004820152600f60248201527f77616c6c657420696e616374697665000000000000000000000000000000000060448201526064016108bb565b6000808061383c62ffffff198616600f614ef5565b5060008080808061385362ffffff198b1682612cdc565b67ffffffffffffffff16905060005b818110156139185761387a62ffffff198c16826151f1565b955061388b62ffffff198716615360565b945061389c62ffffff198716615546565b93506138ad62ffffff198516615591565b925062ffffff1980841614156138fa57895160208b01206138d362ffffff198716612e62565b8051906020012014156138f5576138ef62ffffff198716615331565b98508097505b613906565b6139038361579a565b96505b8061391081616d58565b915050613862565b5067ffffffffffffffff88166139705760405162461bcd60e51b815260206004820152601460248201527f7374616b65642076616c7565206973207a65726f00000000000000000000000060448201526064016108bb565b50505050509250925092565b60008160405160200161398f91906168a8565b60405160208183030381529060405280519060200120836040516020016139b691906168a8565b6040516020818303038152906040528051906020012014905092915050565b80516020808301919091206000818152600c9092526040909120548015613aaa576001600b613a048284616cb2565b81548110613a2257634e487b7160e01b600052603260045260246000fd5b6000918252602090912060029091020160010154640100000000900463ffffffff1614613aa5576001600b613a578284616cb2565b81548110613a7557634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010160046101000a81548163ffffffff021916908363ffffffff1602179055505b613be4565b600080613ab6856143ba565b909250905063ffffffff8116613b0e5760405162461bcd60e51b815260206004820152601260248201527f496e76616c6964204254432077616c6c6574000000000000000000000000000060448201526064016108bb565b6040805160608101825292835263ffffffff91821660208085019182526001858401818152600b805492830181556000818152975160029093027f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db981019390935593517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dba909201805491518716640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090921692909616919091171790935554858452600c90925290912081905590505b600b613bf1600183616cb2565b81548110613c0f57634e487b7160e01b600052603260045260246000fd5b60009182526020909120600290910201547f17afe3c023adb020fd8eec40cc32a44fae97369efd795b4d12b37104376a47db600b613c4e600185616cb2565b81548110613c6c57634e487b7160e01b600052603260045260246000fd5b60009182526020918290206002909102016001015460405163ffffffff90911681520160405180910390a2505050565b80516020808301919091206000818152600c90925260409091205480613d045760405162461bcd60e51b815260206004820152601060248201527f57616c6c6574206e6f7420666f756e640000000000000000000000000000000060448201526064016108bb565b6000600b613d13600184616cb2565b81548110613d3157634e487b7160e01b600052603260045260246000fd5b60009182526020909120600291820201600181015490925063ffffffff6401000000009091041614613d8f576001810180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff166402000000001790555b6000805b600b54811015613e0957600163ffffffff16600b8281548110613dc657634e487b7160e01b600052603260045260246000fd5b6000918252602090912060029091020160010154640100000000900463ffffffff161415613df75760019150613e09565b80613e0181616d58565b915050613d93565b5080613e575760405162461bcd60e51b815260206004820152600c60248201527f57616c6c657420656d707479000000000000000000000000000000000000000060448201526064016108bb565b8154600183015460405163ffffffff90911681527f72b9f7bd8bf24229ce9e2d471f39435baa8f071be5154df45d24aecee460a6b99060200160405180910390a25050505050565b6000613eac826001616b8a565b83511015613efc5760405162461bcd60e51b815260206004820152601360248201527f746f55696e74385f6f75744f66426f756e64730000000000000000000000000060448201526064016108bb565b50016001015190565b613f0d6128e4565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613f603390565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b613f9261596b565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613f60565b6000613fee826008616b8a565b8351101561403e5760405162461bcd60e51b815260206004820152601460248201527f746f55696e7436345f6f75744f66426f756e647300000000000000000000000060448201526064016108bb565b50016008015190565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260056020526040812080548291908015801590614081575060095481105b1561425f57600060016009546140979190616cb2565b905060006140a4826136d5565b90506305f5e1006140b9611481600186616cb2565b6140c39083616cb2565b60018601546140e8919068010000000000000000900467ffffffffffffffff16616c3a565b6140f29190616c1a565b95506140fe8383616cb2565b614109906001616b8a565b600185015461412e919068010000000000000000900467ffffffffffffffff16616c3a565b600185015490955067ffffffffffffffff80821668010000000000000000909204161461425c5781831015614218576305f5e10061416b846136d5565b6141759083616cb2565b600186015461419c9067ffffffffffffffff68010000000000000000820481169116616cc9565b67ffffffffffffffff166141b09190616c3a565b6141ba9190616c1a565b6141c49087616b8a565b95506141d08383616cb2565b60018501546141f79067ffffffffffffffff68010000000000000000820481169116616cc9565b67ffffffffffffffff1661420b9190616c3a565b6142159086616b8a565b94505b6001840180546801000000000000000067ffffffffffffffff8216027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff9091161790555b50505b600954811461426e5760095482555b84156143395773ffffffffffffffffffffffffffffffffffffffff8616600090815260086020526040902054156143345773ffffffffffffffffffffffffffffffffffffffff86166000908152600860205260409020546142cf9085616b8a565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600860205260409020600101549094506143059084616b8a565b73ffffffffffffffffffffffffffffffffffffffff871660009081526008602052604081208181556001015592505b6143b1565b73ffffffffffffffffffffffffffffffffffffffff86166000908152600860205260408120805486929061436e908490616b8a565b909155505073ffffffffffffffffffffffffffffffffffffffff8616600090815260086020526040812060010180548592906143ab908490616b8a565b90915550505b50509250929050565b80516000908190601981141561462b5783517f760000000000000000000000000000000000000000000000000000000000000090859060009061440d57634e487b7160e01b600052603260045260246000fd5b01602001517fff00000000000000000000000000000000000000000000000000000000000000161480156144aa575083517fa900000000000000000000000000000000000000000000000000000000000000908590600190811061448157634e487b7160e01b600052603260045260246000fd5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b801561451f575083517f140000000000000000000000000000000000000000000000000000000000000090859060029081106144f657634e487b7160e01b600052603260045260246000fd5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b8015614594575083517f8800000000000000000000000000000000000000000000000000000000000000908590601790811061456b57634e487b7160e01b600052603260045260246000fd5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b8015614609575083517fac0000000000000000000000000000000000000000000000000000000000000090859060189081106145e057634e487b7160e01b600052603260045260246000fd5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b156146265761461b84600360146159bd565b946001945092505050565b614a6f565b80601714156147a65783517fa90000000000000000000000000000000000000000000000000000000000000090859060009061467757634e487b7160e01b600052603260045260246000fd5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016148015614714575083517f140000000000000000000000000000000000000000000000000000000000000090859060019081106146eb57634e487b7160e01b600052603260045260246000fd5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b8015614789575083517f8700000000000000000000000000000000000000000000000000000000000000908590601690811061476057634e487b7160e01b600052603260045260246000fd5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b156146265761479b84600260146159bd565b946002945092505050565b806016141561488c578351600090859082906147d257634e487b7160e01b600052603260045260246000fd5b01602001517fff000000000000000000000000000000000000000000000000000000000000001614801561486f575083517f1400000000000000000000000000000000000000000000000000000000000000908590600190811061484657634e487b7160e01b600052603260045260246000fd5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b156146265761488184600260146159bd565b946004945092505050565b8060221415614a6f578351600090859082906148b857634e487b7160e01b600052603260045260246000fd5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016148015614955575083517f2000000000000000000000000000000000000000000000000000000000000000908590600190811061492c57634e487b7160e01b600052603260045260246000fd5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b156149725761496784600260206159bd565b946008945092505050565b83517f51000000000000000000000000000000000000000000000000000000000000009085906000906149b557634e487b7160e01b600052603260045260246000fd5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016148015614a52575083517f20000000000000000000000000000000000000000000000000000000000000009085906001908110614a2957634e487b7160e01b600052603260045260246000fd5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b15614a6f57614a6484600260206159bd565b946010945092505050565b50600093849350915050565b815160009060208401614a9664ffffffffff851682846159e7565b95945050505050565b6000614bec614aaf858585615a2b565b60008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b90505b9392505050565b600063ffffffff821115614c725760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f322062697473000000000000000000000000000000000000000000000000000060648201526084016108bb565b5090565b6000614bec8484614c958760181c6bffffffffffffffffffffffff1690565b6bffffffffffffffffffffffff16614cad9190616cb2565b8585614d9c565b6000601882901c6bffffffffffffffffffffffff16614cd557506000919050565b6000614ce2836000612cdc565b9050601883901c6bffffffffffffffffffffffff1667ffffffffffffffff8216614d10575060009392505050565b6000614d1b836150f3565b60ff16905060005b8367ffffffffffffffff16811015614d9357828210614d485750600095945050505050565b6000614d68614d578486616cb2565b60055b62ffffff198a169190614c76565b9050614d7381615bc8565b614d7d9084616b8a565b9250508080614d8b90616d58565b915050614d23565b50949350505050565b600080614db78660781c6bffffffffffffffffffffffff1690565b6bffffffffffffffffffffffff169050614dd086615c1d565b84614ddb8784616b8a565b614de59190616b8a565b1115614df85762ffffff19915050612a77565b614e028582616b8a565b9050614e168364ffffffffff1682866159e7565b9695505050505050565b6000601882901c6bffffffffffffffffffffffff16614e4157506000919050565b6000614e4e836000612cdc565b9050601883901c6bffffffffffffffffffffffff1667ffffffffffffffff8216614e7c575060009392505050565b6000614e87836150f3565b60ff16905060005b8367ffffffffffffffff16811015614d9357828210614eb45750600095945050505050565b6000614eca614ec38486616cb2565b600e614d5a565b9050614ed581615c6d565b614edf9084616b8a565b9250508080614eed90616d58565b915050614e8f565b6000614f018383615cb7565b614ff0576000614f20614f148560d81c90565b64ffffffffff16615cda565b9150506000614f358464ffffffffff16615cda565b6040517f5479706520617373657274696f6e206661696c65642e20476f7420307800000060208201527fffffffffffffffffffff0000000000000000000000000000000000000000000060b086811b8216603d8401527f2e20457870656374656420307800000000000000000000000000000000000000604784015283901b16605482015290925060009150605e015b60405160208183030381529060405290508060405162461bcd60e51b81526004016108bb9190616a92565b5090919050565b60008083600661500681612c0c565b5060006150138787615d86565b9050600061502082615e99565b905061502b81615eb6565b955061503681615ed8565b9450505050509250929050565b6000615050826020616cf2565b61505b906008616c89565b60ff16615069858585615a2b565b901c949350505050565b600067ffffffffffffffff821115614c725760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f342062697473000000000000000000000000000000000000000000000000000060648201526084016108bb565b600060fc8267ffffffffffffffff161161510f57506001919050565b61ffff8267ffffffffffffffff161161512a57506003919050565b63ffffffff8267ffffffffffffffff161161514757506005919050565b506009919050565b919050565b6060600061518d6151888261517a601887901c6bffffffffffffffffffffffff16615efd565b62ffffff1987169190615043565b615cda565b6040517f4e6f6e2d6d696e696d616c2076617220696e742e20476f74203078000000000060208201527fffffffffffffffffffffffffffffffffffff0000000000000000000000000000607083901b16603b82015290925060009150604d01614fc5565b600082600f6151ff81612c0c565b50600061520d866000612cdc565b67ffffffffffffffff169050601886901c6bffffffffffffffffffffffff1681861061527b5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016108bb565b6000615286836150f3565b60ff1690506000805b888110156152de576152b56152a48486616cb2565b600e5b62ffffff198d169190614c76565b91506152c082615c6d565b6152ca9084616b8a565b92506152d7600182616b8a565b905061528f565b506152fd6152ec8385616cb2565b600e5b62ffffff198c169190614c76565b9050600061530a82615c6d565b90506153238382600d5b62ffffff198e16929190614d9c565b9a9950505050505050505050565b600081600d61533f81612c0c565b50615356612d3562ffffff19861660006008614a9f565b92505b5050919050565b600081600d61536e81612c0c565b50600061537c856008612cdc565b9050614a9661538a826150f3565b615395906008616bce565b60ff1667ffffffffffffffff83166007612b59565b600062ffffff1980841614156154285760405162461bcd60e51b815260206004820152602860248201527f54797065644d656d566965772f636f7079546f202d204e756c6c20706f696e7460448201527f657220646572656600000000000000000000000000000000000000000000000060648201526084016108bb565b61543183615f76565b6154a35760405162461bcd60e51b815260206004820152602b60248201527f54797065644d656d566965772f636f7079546f202d20496e76616c696420706f60448201527f696e74657220646572656600000000000000000000000000000000000000000060648201526084016108bb565b60006154bd8460181c6bffffffffffffffffffffffff1690565b6bffffffffffffffffffffffff16905060006154e78560781c6bffffffffffffffffffffffff1690565b6bffffffffffffffffffffffff169050600060405190508481111561550c5760206060fd5b8285848460045afa50614e166155228760d81c90565b70ffffffffff000000000000000000000000606091821b168717901b841760181b90565b600081600d61555481612c0c565b506000615562856008612cdc565b9050614a96600882615573846150f3565b60ff166155809190616ba2565b67ffffffffffffffff166007612b59565b600081600761559f81612c0c565b5060006155ad856000612cdc565b90506155c162ffffff198616600180615043565b606a1415615790576155dc62ffffff19861660026001615043565b604c14156156c45760006155fc612d3562ffffff19881660036001615043565b9050615609600383616cc9565b67ffffffffffffffff168167ffffffffffffffff16148015615636575060538267ffffffffffffffff1611155b801561564d5750604f8267ffffffffffffffff1610155b6156995760405162461bcd60e51b815260206004820152601f60248201527f426974636f696e48656c7065723a20696e76616c6964206f7072657475726e0060448201526064016108bb565b6156bb600467ffffffffffffffff8316600c5b62ffffff198a16929190614d9c565b94505050615359565b60006156dc612d3562ffffff19881660026001615043565b90506156e9600283616cc9565b67ffffffffffffffff168167ffffffffffffffff161480156157165750604d8267ffffffffffffffff1611155b801561572d575060048267ffffffffffffffff1610155b6157795760405162461bcd60e51b815260206004820152601f60248201527f426974636f696e48656c7065723a20696e76616c6964206f7072657475726e0060448201526064016108bb565b6156bb600367ffffffffffffffff8316600c6156ac565b62ffffff19614a96565b6000601c601883901c6bffffffffffffffffffffffff1610156157ff5760405162461bcd60e51b815260206004820152601b60248201527f7061796c6f6164206c656e67746820697320746f6f20736d616c6c000000000060448201526064016108bb565b635341542b61581762ffffff19841660006004615043565b146158645760405162461bcd60e51b815260206004820152600b60248201527f77726f6e67206d6167696300000000000000000000000000000000000000000060448201526064016108bb565b61045c61587a62ffffff19841660056002615043565b146158c75760405162461bcd60e51b815260206004820152600e60248201527f77726f6e6720636861696e20696400000000000000000000000000000000000060448201526064016108bb565b60006158dc62ffffff19841660046001615043565b905063ffffffff811660021461595a5760405162461bcd60e51b815260206004820152602760248201527f756e737570706f72746564207361742b2076657273696f6e20696e206274632060448201527f7374616b696e670000000000000000000000000000000000000000000000000060648201526084016108bb565b614bef62ffffff1984166007615fb4565b60025460ff166129375760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016108bb565b6020828401810151906159d1908390616cf2565b6159dc906008616c89565b60ff161c9392505050565b6000806159f48385616b8a565b9050604051811115615a04575060005b80615a165762ffffff19915050614bef565b5050606092831b9190911790911b1760181b90565b600060ff8216615a3d57506000614bef565b615a558460181c6bffffffffffffffffffffffff1690565b6bffffffffffffffffffffffff16615a7060ff841685616b8a565b1115615ae857615acf615a918560781c6bffffffffffffffffffffffff1690565b6bffffffffffffffffffffffff16615ab78660181c6bffffffffffffffffffffffff1690565b6bffffffffffffffffffffffff16858560ff16615fc2565b60405162461bcd60e51b81526004016108bb9190616a92565b60208260ff161115615b625760405162461bcd60e51b815260206004820152603a60248201527f54797065644d656d566965772f696e646578202d20417474656d70746564207460448201527f6f20696e646578206d6f7265207468616e20333220627974657300000000000060648201526084016108bb565b600882026000615b808660781c6bffffffffffffffffffffffff1690565b6bffffffffffffffffffffffff16905060007f800000000000000000000000000000000000000000000000000000000000000060001984011d91909501511695945050505050565b6000816005615bd681612c0c565b506000615be4856024612cdc565b90508067ffffffffffffffff16615bfa826150f3565b60ff16615c079190616b8a565b615c12906024616b8a565b614a96906004616b8a565b6000615c378260181c6bffffffffffffffffffffffff1690565b615c4f8360781c6bffffffffffffffffffffffff1690565b615c599190616bf3565b6bffffffffffffffffffffffff1692915050565b600081600e615c7b81612c0c565b506000615c89856008612cdc565b90508067ffffffffffffffff16615c9f826150f3565b60ff16615cac9190616b8a565b614a96906008616b8a565b60008164ffffffffff16615ccb8460d81c90565b64ffffffffff16149392505050565b600080601f5b600f8160ff161115615d38576000615cf9826008616c89565b60ff1685901c9050615d0a81616152565b61ffff16841793508160ff16601014615d2557601084901b93505b50615d31600182616cf2565b9050615ce0565b50600f5b60ff8160ff161015615d805760ff600882021684901c615d5b81616152565b61ffff16831792508160ff16600014615d7657601083901b92505b5060001901615d3c565b50915091565b6000826006615d9481612c0c565b506000615da2866000612cdc565b67ffffffffffffffff169050601886901c6bffffffffffffffffffffffff16818610615e105760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e0000000000000000000000000000000060448201526064016108bb565b6000615e1b836150f3565b60ff1690506000805b88811015615e6957615e40615e398486616cb2565b60056152a7565b9150615e4b82615bc8565b615e559084616b8a565b9250615e62600182616b8a565b9050615e24565b50615e7e615e778385616cb2565b60056152ef565b90506000615e8b82615bc8565b905061532383826004615314565b6000816004615ea781612c0c565b50615356600060246003612af7565b6000816003615ec481612c0c565b5061535662ffffff19851660006020615a2b565b6000816003615ee681612c0c565b50615356612aa762ffffff19861660206004614a9f565b600060ff821115614c725760405162461bcd60e51b815260206004820152602560248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203860448201527f206269747300000000000000000000000000000000000000000000000000000060648201526084016108bb565b6000615f828260d81c90565b64ffffffffff1664ffffffffff1415615f9d57506000919050565b6000615fa883615c1d565b60405110199392505050565b6000614bef83836014615043565b60606000615fcf86615cda565b9150506000615fdd86615cda565b9150506000615feb86615cda565b9150506000615ff986615cda565b604080517f54797065644d656d566965772f696e646578202d204f76657272616e2074686560208201527f20766965772e20536c6963652069732061742030780000000000000000000000818301527fffffffffffff000000000000000000000000000000000000000000000000000060d098891b811660558301527f2077697468206c656e6774682030780000000000000000000000000000000000605b830181905297891b8116606a8301527f2e20417474656d7074656420746f20696e646578206174206f6666736574203060708301527f7800000000000000000000000000000000000000000000000000000000000000609083015295881b861660918201526097810196909652951b90921660a684015250507f2e0000000000000000000000000000000000000000000000000000000000000060ac8201528151808203608d01815260ad90910190915295945050505050565b600061616460048360ff16901c616184565b60ff1661ffff919091161760081b61617b82616184565b60ff1617919050565b600060f08083179060ff8216141561619f5750603092915050565b8060ff1660f114156161b45750603192915050565b8060ff1660f214156161c95750603292915050565b8060ff1660f314156161de5750603392915050565b8060ff1660f414156161f35750603492915050565b8060ff1660f514156162085750603592915050565b8060ff1660f6141561621d5750603692915050565b8060ff1660f714156162325750603792915050565b8060ff1660f814156162475750603892915050565b8060ff1660f9141561625c5750603992915050565b8060ff1660fa14156162715750606192915050565b8060ff1660fb14156162865750606292915050565b8060ff1660fc141561629b5750606392915050565b8060ff1660fd14156162b05750606492915050565b8060ff1660fe14156162c55750606592915050565b8060ff1660ff14156162da5750606692915050565b50919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461514f57600080fd5b60008083601f840112616315578182fd5b50813567ffffffffffffffff81111561632c578182fd5b6020830191508360208260051b850101111561634757600080fd5b9250929050565b600082601f83011261635e578081fd5b8135602067ffffffffffffffff82111561637a5761637a616dad565b8160051b616389828201616b3b565b8381528281019086840183880185018910156163a3578687fd5b8693505b858410156163c55780358352600193909301929184019184016163a7565b50979650505050505050565b60008083601f8401126163e2578182fd5b50813567ffffffffffffffff8111156163f9578182fd5b60208301915083602082850101111561634757600080fd5b803563ffffffff8116811461514f57600080fd5b600060208284031215616436578081fd5b614bef826162e0565b600080600060608486031215616453578182fd5b61645c846162e0565b925061646a602085016162e0565b9150604084013590509250925092565b6000806020838503121561648c578182fd5b823567ffffffffffffffff8111156164a2578283fd5b6164ae85828601616304565b90969095509350505050565b600080600080604085870312156164cf578081fd5b843567ffffffffffffffff808211156164e6578283fd5b6164f288838901616304565b9096509450602087013591508082111561650a578283fd5b5061651787828801616304565b95989497509550505050565b600080600060408486031215616537578283fd5b833567ffffffffffffffff81111561654d578384fd5b61655986828701616304565b909790965060209590950135949350505050565b60006020828403121561657e578081fd5b81518015158114614bef578182fd5b60006020828403121561659e578081fd5b5035919050565b6000602082840312156165b6578081fd5b5051919050565b6000806000806000608086880312156165d4578081fd5b853567ffffffffffffffff808211156165eb578283fd5b6165f789838a016163d1565b909750955085915061660b60208901616411565b94506040880135915080821115616620578283fd5b5061662d8882890161634e565b95989497509295606001359392505050565b60008060008060008060a08789031215616657578384fd5b863567ffffffffffffffff8082111561666e578586fd5b61667a8a838b016163d1565b90985096506020915061668e898301616411565b95506040890135818111156166a1578384fd5b6166ad8b828c0161634e565b955050606089013593506080890135818111156166c8578384fd5b8901601f81018b136166d8578384fd5b8035828111156166ea576166ea616dad565b61671a847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601616b3b565b92508083528b8482840101111561672f578485fd5b8084830185850137820190920192909252509497939650919450929091565b60008060008060408587031215616763578182fd5b843567ffffffffffffffff8082111561677a578384fd5b616786888389016163d1565b9096509450602087013591508082111561679e578384fd5b50616517878288016163d1565b6000806000604084860312156167bf578081fd5b833567ffffffffffffffff80821682146167d7578283fd5b909350602085013590808211156167ec578283fd5b506167f9868287016163d1565b9497909650939450505050565b81835281816020850137506000806020838501015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60008151808452616866816020860160208601616d15565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b8183823760009101908152919050565b600082516168ba818460208701616d15565b9190910192915050565b602080825282518282018190526000919060409081850190868401855b8281101561691a578151805185528681015163ffffffff90811688870152908601511685850152606090930192908501906001016168e1565b5091979650505050505050565b6020808252825182820181905260009190848201906040850190845b8181101561695f57835183529284019291840191600101616943565b50909695505050505050565b600060a08201878352602063ffffffff8089168286015280881660408601525060a0606085015281865180845260c0860191508288019350845b818110156169c1578451835293830193918301916001016169a5565b50508093505050508260808301529695505050505050565b602081526000614bec602083018486616806565b604081526000616a01604083018688616806565b8281036020840152616a14818587616806565b979650505050505050565b608081526000616a33608083018789616806565b67ffffffffffffffff9586166020840152604083019490945250921660609092019190915292915050565b608081526000616a72608083018789616806565b60ff95909516602083015250604081019290925260609091015292915050565b602081526000614bef602083018461684e565b63ffffffff85168152600067ffffffffffffffff808616602084015280851660408401525060806060830152614e16608083018461684e565b63ffffffff8416815267ffffffffffffffff83166020820152606060408201526000614a96606083018461684e565b600067ffffffffffffffff808716835280861660208401525060606040830152614e16606083018486616806565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715616b8257616b82616dad565b604052919050565b60008219821115616b9d57616b9d616d97565b500190565b600067ffffffffffffffff808316818516808303821115616bc557616bc5616d97565b01949350505050565b600060ff821660ff84168060ff03821115616beb57616beb616d97565b019392505050565b60006bffffffffffffffffffffffff808316818516808303821115616bc557616bc5616d97565b600082616c3557634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615616c5457616c54616d97565b500290565b600067ffffffffffffffff80831681851681830481118215151615616c8057616c80616d97565b02949350505050565b600060ff821660ff84168160ff0481118215151615616caa57616caa616d97565b029392505050565b600082821015616cc457616cc4616d97565b500390565b600067ffffffffffffffff83811690831681811015616cea57616cea616d97565b039392505050565b600060ff821660ff841680821015616d0c57616d0c616d97565b90039392505050565b60005b83811015616d30578181015183820152602001616d18565b8381111561128f5750506000910152565b600081616d5057616d50616d97565b506000190190565b6000600019821415616d6c57616d6c616d97565b5060010190565b600063ffffffff80831681811415616d8d57616d8d616d97565b6001019392505050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220d9a7f6e666b766fbddbd854c8901c4b448332af9d5026cd91d31e4e05d2499af64736f6c63430008040033", + }, + { + ContractAddr: common.HexToAddress(BTCLSTTokenContract), + CommitUrl: "https://github.com/coredao-org/core-genesis-contract/commit/925e416b42cb97ffba3b1bad4394d7e609452e10", + Code: "608060405234801561001057600080fd5b506004361061020b5760003560e01c8063943599fd1161012a578063ac431751116100bd578063c81b16621161008c578063dd62ed3e11610071578063dd62ed3e14610406578063e1c7392a1461044c578063f9a2bbc71461045457600080fd5b8063c81b1662146103f4578063dc927faf146103fd57600080fd5b8063ac431751146103c6578063b1171724146103d9578063b3d676f3146103e2578063b3ee5a51146103eb57600080fd5b8063a457c2d7116100f9578063a457c2d71461038a578063a78abc161461039d578063a9059cbb146103aa578063aa82dce1146103bd57600080fd5b8063943599fd1461035c57806395d89b41146103665780639dc092621461036e5780639dc29fac1461037757600080fd5b8063313ce567116101a257806343756e5c1161017157806343756e5c1461030b5780635d25e51d1461031457806370a082311461031d578063783028a91461035357600080fd5b8063313ce567146102bb57806339509351146102da5780633b768160146102ed57806340c10f19146102f657600080fd5b806318160ddd116101de57806318160ddd1461028457806323b872dd1461029657806325ee13e2146102a95780632a5d69b2146102b257600080fd5b806304e9e3a41461021057806306fdde0314610243578063095ea7b31461025857806314c1e1f71461027b575b600080fd5b61021961100781565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61024b61045d565b60405161023a9190611432565b61026b610266366004611337565b6104eb565b604051901515815260200161023a565b61021961100481565b6003545b60405190815260200161023a565b61026b6102a43660046112fc565b610503565b61021961100581565b61021961101281565b6005546102c89060ff1681565b60405160ff909116815260200161023a565b61026b6102e8366004611337565b610532565b61021961101481565b610309610304366004611337565b61057e565b005b61021961100181565b61021961101181565b61028861032b3660046112a9565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205490565b61021961100881565b6102196201000181565b61024b6106d5565b61021961100681565b610309610385366004611337565b6106e2565b61026b610398366004611337565b6108ec565b60005461026b9060ff1681565b61026b6103b8366004611337565b6109a3565b61021961101081565b6103096103d4366004611360565b6109bc565b61021961100981565b61021961101381565b61021961101581565b61021961100281565b61021961100381565b6102886104143660046112ca565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205490565b610309610abb565b61021961100081565b6004805461046a906114ec565b80601f0160208091040260200160405190810160405280929190818152602001828054610496906114ec565b80156104e35780601f106104b8576101008083540402835291602001916104e3565b820191906000526020600020905b8154815290600101906020018083116104c657829003601f168201915b505050505081565b6000336104f9818585610bd2565b5060019392505050565b600033610511858285610d49565b61051c858585610e06565b61052785858561102e565b506001949350505050565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906104f99082908690610579908790611483565b610bd2565b33611015146105fa5760405162461bcd60e51b815260206004820152602160248201527f6f6e6c7920696e766f6b656420627920626974636f696e206c7374207374616b60448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821661065d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105f1565b806003600082825461066f9190611483565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6006805461046a906114ec565b33611015146107595760405162461bcd60e51b815260206004820152602160248201527f6f6e6c7920696e766f6b656420627920626974636f696e206c7374207374616b60448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016105f1565b73ffffffffffffffffffffffffffffffffffffffff82166107e25760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016105f1565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020548181101561087e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016105f1565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083208686039055600380548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a3505050565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156109965760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016105f1565b6105278286868403610bd2565b6000336109b1818585610e06565b6104f981858561102e565b60005460ff16610a0e5760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e6974207965740000000000000060448201526064016105f1565b3361100614610a855760405162461bcd60e51b815260206004820152602a60248201527f746865206d73672073656e646572206d75737420626520676f7665726e616e6360448201527f6520636f6e74726163740000000000000000000000000000000000000000000060648201526084016105f1565b83836040517f64b4f6040000000000000000000000000000000000000000000000000000000081526004016105f19291906113e5565b60005460ff1615610b0e5760405162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e69740000000000000060448201526064016105f1565b60408051808201909152600c8082527f436f726520425443204c535400000000000000000000000000000000000000006020909201918252610b52916004916111a0565b506040805180820190915260068082527f6c737442544300000000000000000000000000000000000000000000000000006020909201918252610b9591816111a0565b50600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00908116600817909155600080549091166001179055565b73ffffffffffffffffffffffffffffffffffffffff8316610c5a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105f1565b73ffffffffffffffffffffffffffffffffffffffff8216610ce35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105f1565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591016108df565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600260209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610e005781811015610df35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105f1565b610e008484848403610bd2565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610e8f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105f1565b73ffffffffffffffffffffffffffffffffffffffff8216610f185760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105f1565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604090205481811015610fb45760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016105f1565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110219086815260200190565b60405180910390a3610e00565b60405173ffffffffffffffffffffffffffffffffffffffff8481166024830152831660448201526064810182905260009061101590608401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f677ba3d300000000000000000000000000000000000000000000000000000000179052516110e791906113c9565b6000604051808303816000865af19150503d8060008114611124576040519150601f19603f3d011682016040523d82523d6000602084013e611129565b606091505b5050905080610e005760405162461bcd60e51b815260206004820152602560248201527f63616c6c206c73745374616b652e6f6e546f6b656e5472616e7366657220666160448201527f696c65642e00000000000000000000000000000000000000000000000000000060648201526084016105f1565b8280546111ac906114ec565b90600052602060002090601f0160209004810192826111ce5760008555611214565b82601f106111e757805160ff1916838001178555611214565b82800160010185558215611214579182015b828111156112145782518255916020019190600101906111f9565b50611220929150611224565b5090565b5b808211156112205760008155600101611225565b803573ffffffffffffffffffffffffffffffffffffffff8116811461125d57600080fd5b919050565b60008083601f840112611273578182fd5b50813567ffffffffffffffff81111561128a578182fd5b6020830191508360208285010111156112a257600080fd5b9250929050565b6000602082840312156112ba578081fd5b6112c382611239565b9392505050565b600080604083850312156112dc578081fd5b6112e583611239565b91506112f360208401611239565b90509250929050565b600080600060608486031215611310578081fd5b61131984611239565b925061132760208501611239565b9150604084013590509250925092565b60008060408385031215611349578182fd5b61135283611239565b946020939093013593505050565b60008060008060408587031215611375578081fd5b843567ffffffffffffffff8082111561138c578283fd5b61139888838901611262565b909650945060208701359150808211156113b0578283fd5b506113bd87828801611262565b95989497509550505050565b600082516113db8184602087016114c0565b9190910192915050565b60208152816020820152818360408301376000818301604090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101919050565b60208152600082518060208401526114518160408501602087016114c0565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600082198211156114bb577f4e487b710000000000000000000000000000000000000000000000000000000081526011600452602481fd5b500190565b60005b838110156114db5781810151838201526020016114c3565b83811115610e005750506000910152565b600181811c9082168061150057607f821691505b6020821081141561153a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea2646970667358221220cd82c85ba72bf5cc137f9794328545ac4a183a421c040f3b59ac415b59469d7964736f6c63430008040033", + }, + }, + } } func UpgradeBuildInSystemContract(config *params.ChainConfig, blockNumber *big.Int, lastBlockTime uint64, blockTime uint64, statedb *state.StateDB) { diff --git a/core/systemcontracts/upgrade_test.go b/core/systemcontracts/upgrade_test.go index dc82a3ea7..f441b6e51 100644 --- a/core/systemcontracts/upgrade_test.go +++ b/core/systemcontracts/upgrade_test.go @@ -79,12 +79,12 @@ func checkUpgradeConfig(url string, upgrade *Upgrade) error { } func TestUpgrade(t *testing.T) { - err := checkUpgradeConfig("https://raw.githubusercontent.com/coredao-org/core-genesis-contract/branch_testnet/genesis.json", poseidonUpgrade[buffaloNet]) + err := checkUpgradeConfig("https://raw.githubusercontent.com/coredao-org/core-genesis-contract/branch_testnet/genesis.json", demeterUpgrade[buffaloNet]) if err != nil { t.Error(err) } - err = checkUpgradeConfig("https://raw.githubusercontent.com/coredao-org/core-genesis-contract/master/genesis.json", poseidonUpgrade[mainNet]) + err = checkUpgradeConfig("https://raw.githubusercontent.com/coredao-org/core-genesis-contract/master/genesis.json", demeterUpgrade[mainNet]) if err != nil { t.Error(err) } diff --git a/params/config.go b/params/config.go index 545a66223..0aa524afc 100644 --- a/params/config.go +++ b/params/config.go @@ -119,10 +119,12 @@ var ( ZeusBlock: big.NewInt(8_020_000), HeraBlock: big.NewInt(12_195_500), PoseidonBlock: big.NewInt(13_232_049), - BerlinBlock: nil, - LondonBlock: nil, - HertzBlock: nil, - ShanghaiTime: nil, + BerlinBlock: big.NewInt(19_537_200), + LondonBlock: big.NewInt(19_537_200), + HertzBlock: big.NewInt(19_537_200), + ShanghaiTime: newUint64(1731999600), // 2024-11-19 7:00:00 AM UTC + KeplerTime: newUint64(1731999600), + DemeterTime: newUint64(1731999600), Satoshi: &SatoshiConfig{ Period: 3, Epoch: 200, diff --git a/params/version.go b/params/version.go index 3a3bbe075..3e06472a3 100644 --- a/params/version.go +++ b/params/version.go @@ -23,7 +23,7 @@ import ( const ( VersionMajor = 1 // Major version component of the current release VersionMinor = 0 // Minor version component of the current release - VersionPatch = 11 // Patch version component of the current release + VersionPatch = 12 // Patch version component of the current release VersionMeta = "" // Version metadata to append to the version string )