bsc/core/systemcontracts/feynman/chapel/SlashContract

1 line
31 KiB
Plaintext

608060405234801561001057600080fd5b506004361061035d5760003560e01c80637e434d54116101d3578063c80d4b8f11610104578063df8079e9116100a2578063f9a2bbc71161007c578063f9a2bbc714610601578063fc3e590814610609578063fc4333cd14610611578063fd6a6879146106195761035d565b8063df8079e9146105e9578063e1c7392a146105f1578063f1fad104146105f95761035d565b8063c96be4cb116100de578063c96be4cb146105b3578063cc844b73146105c6578063dc927faf146105d9578063dcc6f156146105e15761035d565b8063c80d4b8f14610590578063c81b166214610598578063c8509d81146105a05761035d565b8063a1a11bf511610171578063aad560631161014b578063aad5606314610565578063ab51bb961461056d578063ac0af62914610575578063ac4317511461057d5761035d565b8063a1a11bf51461054d578063a78abc1614610555578063aa82dce11461055d5761035d565b806396713da9116101ad57806396713da9146105225780639dc092621461052a5780639e89ded8146105325780639f804f5f146105455761035d565b80637e434d54146104ff5780638256ace614610507578063831d65d11461050f5761035d565b8063493279b1116102ad57806362b72cf51161024b578063718a8aa811610225578063718a8aa8146104df57806375d47a0a146104e75780637912a65d146104ef5780637942fd05146104f75761035d565b806362b72cf5146104c75780636e47b482146104cf57806370fd5bad146104d75761035d565b806351b4dce31161028757806351b4dce31461049c57806351e80672146104a4578063567a372d146104ac5780635bfb4990146104b45761035d565b8063493279b1146104775780634bf6c8821461048c57806350055f90146104945761035d565b8063280870281161031a57806337c8dab9116102f457806337c8dab914610431578063389f4f71146104525780633dffc3871461045a57806343756e5c1461046f5761035d565b806328087028146104015780633306ccca1461040957806335aa2e441461041e5761035d565b80630bee7a67146103625780630e2374a5146103805780631182b8751461039557806322d1e80b146103b557806323bac5a2146103ca57806327962118146103ec575b600080fd5b61036a610621565b6040516103779190613d56565b60405180910390f35b610388610626565b6040516103779190613534565b6103a86103a336600461346a565b61062c565b604051610377919061356c565b6103bd610692565b6040516103779190613561565b6103dd6103d8366004613181565b61069b565b60405161037793929190613d3e565b6103ff6103fa3660046132c7565b6106be565b005b610388610a13565b610411610a19565b6040516103779190613d27565b61038861042c36600461343a565b610a1f565b61044461043f366004613181565b610a46565b604051610377929190613d30565b610411610a9d565b610462610aa3565b6040516103779190613d67565b610388610aa8565b61047f610aae565b6040516103779190613d18565b610462610ab3565b610411610ab8565b610388610abe565b610388610ac4565b610411610aca565b6103ff6104c2366004613181565b610ad0565b610411610bdc565b610388610be2565b610462610be8565b610462610bed565b610388610bf2565b610411610bf8565b610462610bfd565b610388610c02565b610444610c08565b6103ff61051d36600461346a565b610c12565b610462610d26565b610388610d2b565b6103ff6105403660046131b9565b610d31565b610411610d60565b610388610d66565b6103bd610d6c565b610388610d75565b610388610d7b565b61036a610d81565b610411610d86565b6103ff61058b36600461331e565b610d8b565b610411611327565b61038861132c565b6103ff6105ae36600461346a565b611332565b6103ff6105c1366004613181565b6113a3565b6103ff6105d4366004613387565b611812565b610388611df1565b610411611df7565b610388611dfc565b6103ff611e02565b610462611e3e565b610388611e43565b610462611e49565b6103ff611e4e565b610388612297565b606481565b61200181565b606033612000146106585760405162461bcd60e51b815260040161064f90613bbb565b60405180910390fd5b60005460ff1661067a5760405162461bcd60e51b815260040161064f90613661565b60405162461bcd60e51b815260040161064f90613cac565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b60005460ff166106e05760405162461bcd60e51b815260040161064f90613661565b6006546106ed5760146006555b6008546106fb576170806008555b81511580159061070b5750805115155b6107275760405162461bcd60e51b815260040161064f90613b19565b60408051600380825260808201909252606091816020015b606081526020019060019003908161073f579050509050610760606161229d565b8160008151811061076d57fe5b6020026020010181905250610781836122b8565b8160018151811061078e57fe5b60200260200101819052506107a2826122b8565b816002815181106107af57fe5b602002602001018190525060606107c58261230e565b60408051603480825260608281019093529293509091602082018180368337019050509050815160346020830182602086016068600019fa61080657600080fd5b506014810151603482015160405163436aa28360e11b8152600090612002906386d5450690610839908690600401613534565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610889919061319d565b6001600160a01b031614156108b05760405162461bcd60e51b815260040161064f90613631565b43600854820110156108d45760405162461bcd60e51b815260040161064f906135d2565b604051631871f7d960e31b81526120029063c38fbec8906108f9908590600401613534565b600060405180830381600087803b15801561091357600080fd5b505af1158015610927573d6000803e3d6000fd5b50506040516335409f7f60e01b815261100092506335409f7f9150610950908590600401613534565b600060405180830381600087803b15801561096a57600080fd5b505af115801561097e573d6000803e3d6000fd5b50506006546040516309a99b4f60e41b815260646110028031909302049350909150639a99b4f0906109b69033908590600401613548565b602060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190613452565b505050505050505050565b61200581565b61708081565b60018181548110610a2c57fe5b6000918252602090912001546001600160a01b0316905081565b600080610a51612f68565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606181565b600881565b60065481565b61200681565b61200081565b60045481565b3361100014610af15760405162461bcd60e51b815260040161064f906138a4565b60005460ff16610b135760405162461bcd60e51b815260040161064f90613661565b61200063f7a251d7600b610b268461239f565b60006040518463ffffffff1660e01b8152600401610b4693929190613d75565b600060405180830381600087803b158015610b6057600080fd5b505af1925050508015610b71575060015b610bd9573d808015610b9f576040519150601f19603f3d011682016040523d82523d6000602084013e610ba4565b606091505b50816001600160a01b0316600080516020613e52833981519152600083604051610bcf92919061357f565b60405180910390a2505b50565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b61200381565b6004546005549091565b3361200014610c335760405162461bcd60e51b815260040161064f90613bbb565b60005460ff16610c555760405162461bcd60e51b815260040161064f90613661565b610c5d612f8b565b6000610c9e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061246892505050565b915091508015610ce55781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e62996791610cd891613d56565b60405180910390a1610d1e565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610d1591613d56565b60405180910390a15b50505b505050565b600981565b61100781565b3361100014610d525760405162461bcd60e51b815260040161064f906138a4565b610d5c82826124e8565b5050565b60085481565b61100681565b60005460ff1681565b61200281565b61300081565b600081565b600481565b60005460ff16610dad5760405162461bcd60e51b815260040161064f90613661565b3361100714610dce5760405162461bcd60e51b815260040161064f90613a08565b610e3984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b6020820152915061269b9050565b15610ed45760208114610e5e5760405162461bcd60e51b815260040161064f90613830565b604080516020601f8401819004810282018101909252828152600091610e9c918585808385018382808284376000920191909152506126f592505050565b905060018110158015610eb0575060055481105b610ecc5760405162461bcd60e51b815260040161064f90613b76565b6004556112e4565b610f3a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b6020820152915061269b9050565b15610fd65760208114610f5f5760405162461bcd60e51b815260040161064f90613a56565b604080516020601f8401819004810282018101909252828152600091610f9d918585808385018382808284376000920191909152506126f592505050565b90506103e88111158015610fb2575060045481115b610fce5760405162461bcd60e51b815260040161064f9061371a565b6005556112e4565b61104384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601681527566656c6f6e79536c617368526577617264526174696f60501b6020820152915061269b9050565b156110dd57602081146110685760405162461bcd60e51b815260040161064f90613990565b604080516020601f84018190048102820181019092528281526000916110a6918585808385018382808284376000920191909152506126f592505050565b9050600a81101580156110b95750606481105b6110d55760405162461bcd60e51b815260040161064f90613a98565b6006556112e4565b61115184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c61736800000000000000006020820152915061269b9050565b156111c857602081146111765760405162461bcd60e51b815260040161064f9061374f565b604080516020601f84018190048102820181019092528281526111b291908484808385018382808284376000920191909152506126fa92505050565b6007805460ff19169115159190911790556112e4565b61122f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601081526f66656c6f6e79536c61736853636f706560801b6020820152915061269b9050565b156112cc57602081146112545760405162461bcd60e51b815260040161064f9061391f565b604080516020601f8401819004810282018101909252828152600091611292918585808385018382808284376000920191909152506126f592505050565b905061708081101580156112a85750620d2f0081105b6112c45760405162461bcd60e51b815260040161064f90613698565b6008556112e4565b60405162461bcd60e51b815260040161064f90613c57565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161131994939291906135a0565b60405180910390a150505050565b609681565b61100281565b33612000146113535760405162461bcd60e51b815260040161064f90613bbb565b60005460ff166113755760405162461bcd60e51b815260040161064f90613661565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146113c25760405162461bcd60e51b815260040161064f90613c0a565b60005460ff166113e45760405162461bcd60e51b815260040161064f90613661565b60035443116114055760405162461bcd60e51b815260040161064f90613ce3565b3a156114235760405162461bcd60e51b815260040161064f90613962565b60405163155853f360e21b8152611000906355614fcc90611448908490600401613534565b60206040518083038186803b15801561146057600080fd5b505afa158015611474573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149891906132a7565b6114a15761180b565b6114a9612f68565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061150457602081018051600101905261155d565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161156f57fe5b0661173957600060208201526040516335409f7f60e01b8152611000906335409f7f906115a0908590600401613534565b600060405180830381600087803b1580156115ba57600080fd5b505af11580156115ce573d6000803e3d6000fd5b505060405163436aa28360e11b81526000925061200291506386d54506906115fa908690600401613534565b60206040518083038186803b15801561161257600080fd5b505afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164a919061319d565b6001600160a01b03161461166b576116668282602001516124e8565b611734565b61200063f7a251d7600b61167e8561239f565b60006040518463ffffffff1660e01b815260040161169e93929190613d75565b600060405180830381600087803b1580156116b857600080fd5b505af19250505080156116c9575060015b611734573d8080156116f7576040519150601f19603f3d011682016040523d82523d6000602084013e6116fc565b606091505b50826001600160a01b0316600080516020613e5283398151915283602001518360405161172a92919061357f565b60405180910390a2505b6117a5565b60045481602001518161174857fe5b066117a5576040516375abf10160e11b81526110009063eb57e20290611772908590600401613534565b600060405180830381600087803b15801561178c57600080fd5b505af11580156117a0573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166118345760405162461bcd60e51b815260040161064f90613661565b60075460ff166118565760405162461bcd60e51b815260040161064f906135fc565b6006546118635760146006555b600854611871576170806008555b60085481516040015143910111801561189557504360085482602001516040015101115b6118b15760405162461bcd60e51b815260040161064f90613c7e565b8060200151602001518160000151602001511480156118df5750806020015160600151816000015160600151145b156118fc5760405162461bcd60e51b815260040161064f90613877565b80516040810151905110801561191b5750602081015160408101519051105b6119375760405162461bcd60e51b815260040161064f906137f9565b60208101515181515110801561195c5750806000015160400151816020015160400151105b8061198757508051516020820151511080156119875750806020015160400151816000015160400151105b806119a15750806020015160400151816000015160400151145b6119bd5760405162461bcd60e51b815260040161064f906136e3565b604080820151905163ea321e4960e01b81526110009163ea321e49916119e6919060040161356c565b60206040518083038186803b1580156119fe57600080fd5b505afa158015611a12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3691906132a7565b611a525760405162461bcd60e51b815260040161064f906139d9565b611a6481600001518260400151612722565b8015611a7d5750611a7d81602001518260400151612722565b611a995760405162461bcd60e51b815260040161064f9061379a565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b158015611ad757600080fd5b505afa158015611aeb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b1391908101906131e4565b9150915060005b8151811015611c5057611b44828281518110611b3257fe5b602002602001015185604001516128fa565b15611c48576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f090611b7c9033908590600401613548565b602060405180830381600087803b158015611b9657600080fd5b505af1158015611baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bce9190613452565b506110006001600160a01b03166335409f7f858481518110611bec57fe5b60200260200101516040518263ffffffff1660e01b8152600401611c109190613534565b600060405180830381600087803b158015611c2a57600080fd5b505af1158015611c3e573d6000803e3d6000fd5b5050505050611c50565b600101611b1a565b5060408084015190516317b4f35360e01b8152600091612002916317b4f35391611c7c9160040161356c565b60206040518083038186803b158015611c9457600080fd5b505afa158015611ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccc919061319d565b6001600160a01b031614611d3a576040808401519051630e9fbf5160e01b815261200291630e9fbf5191611d03919060040161356c565b600060405180830381600087803b158015611d1d57600080fd5b505af1158015611d31573d6000803e3d6000fd5b50505050610d21565b6120006001600160a01b031663f7a251d7600b611d5a866040015161295e565b60006040518463ffffffff1660e01b8152600401611d7a93929190613d75565b600060405180830381600087803b158015611d9457600080fd5b505af1158015611da8573d6000803e3d6000fd5b505050506000611dbd84604001516000612999565b60405190915081907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a250505050565b61100381565b601481565b61200481565b60005460ff1615611e255760405162461bcd60e51b815260040161064f90613ae2565b603260045560966005556000805460ff19166001179055565b601181565b61100081565b600381565b3361100014611e6f5760405162461bcd60e51b815260040161064f906138a4565b60005460ff16611e915760405162461bcd60e51b815260040161064f90613661565b600154611e9d57612295565b600154600090600019015b808211612269576000805b82841015611fcc57611ec3612f68565b6002600060018781548110611ed457fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611fb657600460055481611f4157fe5b04816020015103816020018181525050806002600060018881548110611f6357fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611fc0565b6001925050611fcc565b50836001019350611eb3565b82841161216357611fdb612f68565b6002600060018681548110611fec57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156120d45760046005548161205957fe5b0481602001510381602001818152505080600260006001878154811061207b57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506121639050565b60026000600186815481106120e557fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548061212957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836121565750612163565b5060001990920191611fcc565b81801561216d5750805b1561224c57600260006001868154811061218357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054849081106121ca57fe5b600091825260209091200154600180546001600160a01b0390921691869081106121f057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061222957fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82612258575050612269565b505060019091019060001901611ea8565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60606122b06122ab836129b5565b6122b8565b90505b919050565b6060815160011480156122ea5750607f60f81b826000815181106122d857fe5b01602001516001600160f81b03191611155b156122f65750806122b3565b6122b06123088351608060ff16612a9b565b83612b6d565b606081516000141561232f57506040805160008152602081019091526122b3565b60608260008151811061233e57fe5b602002602001015190506000600190505b835181101561237f576123758285838151811061236857fe5b6020026020010151612b6d565b915060010161234f565b50612398612392825160c060ff16612a9b565b82612b6d565b9392505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816123ba5790505090506123e3836001600160a01b0316612bea565b816000815181106123f057fe5b60200260200101819052506124044361229d565b8160018151811061241157fe5b6020908102919091010152612426606161229d565b8160028151811061243357fe5b60200260200101819052506124474261229d565b8160038151811061245457fe5b60200260200101819052506123988161230e565b612470612f8b565b600061247a612f8b565b612482612f9d565b61249361248e86612c0d565b612c32565b90506000805b6124a283612c7c565b156124db57806124ce576124bd6124b884612c9d565b612ceb565b63ffffffff168452600191506124d3565b6124db565b600101612499565b5091935090915050915091565b6040516375cc7d8960e01b8152612002906375cc7d899061250d908590600401613534565b600060405180830381600087803b15801561252757600080fd5b505af1925050508015612538575060015b610d5c576040516000815260443d1015612554575060006125f1565b60046000803e60005160e01c6308c379a081146125755760009150506125f1565b60043d036004833e81513d602482011167ffffffffffffffff821117156125a1576000925050506125f1565b808301805167ffffffffffffffff8111156125c35760009450505050506125f1565b8060208301013d86018111156125e1576000955050505050506125f1565b601f01601f191660405250925050505b806125fc5750612633565b826001600160a01b0316600080516020613e52833981519152838360405161262592919061357f565b60405180910390a250612696565b3d80801561265d576040519150601f19603f3d011682016040523d82523d6000602084013e612662565b606091505b50826001600160a01b0316600080516020613e52833981519152838360405161268c92919061357f565b60405180910390a2505b610d5c565b6000816040516020016126ae9190613518565b60405160208183030381529060405280519060200120836040516020016126d59190613518565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff81161561271457600191508161271a565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b606081526020019060019003908161273e575050604080516020808252818301909252919250606091908082018180368337019050509050612783856000015161229d565b8260008151811061279057fe5b60200260200101819052506127ab6020866020015183612d6d565b6127b4816122b8565b826001815181106127c157fe5b60200260200101819052506127d9856040015161229d565b826002815181106127e657fe5b60200260200101819052506128016020866060015183612d6d565b61280a816122b8565b8260038151811061281757fe5b602002602001018190525061283d60206128308461230e565b8051906020012083612d6d565b6040805160b080825260e0820190925260609160208201818036833701905050905061286d818360006020612d7d565b61287f81876080015160206060612d7d565b61288d818660806030612d7d565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6128ca57600080fd5b5060016128d8826000612dd0565b60ff16146128ed5760009450505050506126ef565b5060019695505050505050565b8151815160009160019181148083146129165760009250612954565b600160208701838101602088015b60028483851001141561294f5780518351146129435760009650600093505b60209283019201612924565b505050505b5090949350505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816129795790505090506123e3836122b8565b600081602001835110156129ac57600080fd5b50016020015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166129f957506018612a1d565b6fffffffffffffffffffffffffffffffff198416612a1957506010612a1d565b5060005b6020811015612a5357818181518110612a3257fe5b01602001516001600160f81b03191615612a4b57612a53565b600101612a1d565b60008160200390506060816040519080825280601f01601f191660200182016040528015612a88576020820181803683370190505b5080830196909652508452509192915050565b6060680100000000000000008310612ac55760405162461bcd60e51b815260040161064f906137d1565b60408051600180825281830190925260609160208201818036833701905050905060378411612b1f5782840160f81b81600081518110612b0157fe5b60200101906001600160f81b031916908160001a90535090506126ef565b6060612b2a856129b5565b90508381510160370160f81b82600081518110612b4357fe5b60200101906001600160f81b031916908160001a905350612b648282612b6d565b95945050505050565b6060806040519050835180825260208201818101602087015b81831015612b9e578051835260209283019201612b86565b50855184518101855292509050808201602086015b81831015612bcb578051835260209283019201612bb3565b508651929092011591909101601f01601f191660405250905092915050565b60408051600560a21b8318601482015260348101909152606090612398816122b8565b612c15612fbd565b506040805180820190915281518152602082810190820152919050565b612c3a612f9d565b612c4382612dec565b612c4c57600080fd5b6000612c5b8360200151612e26565b60208085015160408051808201909152868152920190820152915050919050565b6000612c86612fbd565b505080518051602091820151919092015191011190565b612ca5612fbd565b612cae82612c7c565b612cb757600080fd5b60208201516000612cc782612e89565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612d0057508151602110155b612d0957600080fd5b6000612d188360200151612e26565b90508083600001511015612d3e5760405162461bcd60e51b815260040161064f90613b3f565b825160208085015183018051928490039291831015612d6457826020036101000a820491505b50949350505050565b9091018181526020918201910152565b60005b81811015610d1e57838181518110612d9457fe5b602001015160f81c60f81b858480600101955081518110612db157fe5b60200101906001600160f81b031916908160001a905350600101612d80565b60008160010183511015612de357600080fd5b50016001015190565b8051600090612dfd575060006122b3565b6020820151805160001a9060c0821015612e1c576000925050506122b3565b5060019392505050565b8051600090811a6080811015612e405760009150506122b3565b60b8811080612e5b575060c08110801590612e5b575060f881105b15612e6a5760019150506122b3565b60c0811015612e7e5760b5190190506122b3565b60f5190190506122b3565b80516000908190811a6080811015612ea45760019150612f61565b60b8811015612eb957607e1981019150612f61565b60c0811015612f0a57600060b78203600186019550806020036101000a865104915060018101820193505080831015612f045760405162461bcd60e51b815260040161064f906138f4565b50612f61565b60f8811015612f1f5760be1981019150612f61565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561271a5760405162461bcd60e51b815260040161064f906138f4565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b6040518060400160405280612fb0612fbd565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112612fe7578081fd5b8151612ffa612ff582613dc8565b613da1565b818152915060208083019084810160005b84811015613070578151870188603f82011261302657600080fd5b83810151613036612ff582613de8565b81815260408b8184860101111561304c57600080fd5b61305b83888401838701613e0c565b5086525050928201929082019060010161300b565b505050505092915050565b60008083601f84011261308c578182fd5b50813567ffffffffffffffff8111156130a3578182fd5b6020830191508360208285010111156130bb57600080fd5b9250929050565b600082601f8301126130d2578081fd5b81356130e0612ff582613de8565b91508082528360208285010111156130f757600080fd5b8060208401602084013760009082016020015292915050565b600060a08284031215613121578081fd5b61312b60a0613da1565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561316957600080fd5b613175848285016130c2565b60808301525092915050565b600060208284031215613192578081fd5b813561239881613e3c565b6000602082840312156131ae578081fd5b815161239881613e3c565b600080604083850312156131cb578081fd5b82356131d681613e3c565b946020939093013593505050565b600080604083850312156131f6578182fd5b825167ffffffffffffffff8082111561320d578384fd5b81850186601f82011261321e578485fd5b8051925061322e612ff584613dc8565b80848252602080830192508084018a82838902870101111561324e578889fd5b8894505b8685101561327957805161326581613e3c565b845260019490940193928101928101613252565b508801519096509350505080821115613290578283fd5b5061329d85828601612fd7565b9150509250929050565b6000602082840312156132b8578081fd5b81518015158114612398578182fd5b600080604083850312156132d9578182fd5b823567ffffffffffffffff808211156132f0578384fd5b6132fc868387016130c2565b93506020850135915080821115613311578283fd5b5061329d858286016130c2565b60008060008060408587031215613333578182fd5b843567ffffffffffffffff8082111561334a578384fd5b6133568883890161307b565b9096509450602087013591508082111561336e578384fd5b5061337b8782880161307b565b95989497509550505050565b600060208284031215613398578081fd5b813567ffffffffffffffff808211156133af578283fd5b818401606081870312156133c1578384fd5b6133cb6060613da1565b92508035828111156133db578485fd5b6133e787828401613110565b8452506020810135828111156133fb578485fd5b61340787828401613110565b60208501525060408101358281111561341e578485fd5b61342a878284016130c2565b6040850152509195945050505050565b60006020828403121561344b578081fd5b5035919050565b600060208284031215613463578081fd5b5051919050565b60008060006040848603121561347e578081fd5b833560ff8116811461348e578182fd5b9250602084013567ffffffffffffffff8111156134a9578182fd5b6134b58682870161307b565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452613504816020860160208601613e0c565b601f01601f19169290920160200192915050565b6000825161352a818460208701613e0c565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261239860208301846134ec565b60008382526040602083015261359860408301846134ec565b949350505050565b6000604082526135b46040830186886134c2565b82810360208401526135c78185876134c2565b979650505050505050565b60208082526010908201526f195d9a59195b98d9481d1bdbc81bdb1960821b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b6020808252601690820152751d985b1a59185d1bdc881b9bdd081b5a59dc985d195960521b604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f6c656e677468206f662066656c6f6e79536c61736853636f7065206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b60208082526029908201527f6c656e677468206f662066656c6f6e79536c617368526577617264526174696f604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b6020808252602a908201527f7468652066656c6f6e7920736c6173682072657761726420726174696f206f7560408201526974206f662072616e676560b01b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252600c908201526b32b6b83a3c903432b0b232b960a11b604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260606020830152613d9160608301856134ec565b9050826040830152949350505050565b60405181810167ffffffffffffffff81118282101715613dc057600080fd5b604052919050565b600067ffffffffffffffff821115613dde578081fd5b5060209081020190565b600067ffffffffffffffff821115613dfe578081fd5b50601f01601f191660200190565b60005b83811015613e27578181015183820152602001613e0f565b83811115613e36576000848401525b50505050565b6001600160a01b0381168114610bd957600080fdfed7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1ca164736f6c6343000604000a