0 txs
3.2k calls
constructor
constructor(address _ecdsaVerifier, address _router)
functions
P256_VERIFIER
viewfunction P256_VERIFIER() view returns (address)
pccsRouter
viewfunction pccsRouter() view returns (address)
quoteVersion
viewfunction quoteVersion() view returns (uint16)
verifyQuote
viewfunction verifyQuote(tuple header, bytes rawQuote) view returns (bool success, bytes output)
verifyZkOutput
viewfunction verifyZkOutput(bytes outputBytes) view returns (bool success, bytes output)
events
No events.
errors
No errors.
creation bytecode
0x60e0346100c957601f6140d538819003918201601f19168301916001600160401b038311848410176100ce5780849260409485528339810103126100c957610052602061004b836100e4565b92016100e4565b6080919091526001600160a01b031660a052600360c052604051613fdc90816100f9823960805181818160c10152613496015260a0518181816101060152818161093d015281816114a201528181611dc1015261217b015260c051818181607d01528181611640015281816118e3015261214e0152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100c95756fe6080604052600436101561001257600080fd5b60003560e01c80630207783714610067578063536c633d146100625780639e0fb0bf1461005d5780639ffa5fd9146100585763f14951141461005357600080fd5b61026a565b6101c6565b6100f0565b6100ab565b346100a65760003660031901126100a65761ffff7f00000000000000000000000000000000000000000000000000000000000000001660805260206080f35b600080fd5b346100a65760003660031901126100a6576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100a65760003660031901126100a6576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b9181601f840112156100a6578235916001600160401b0383116100a657602083818601950101116100a657565b60005b8381106101755750506000910152565b8181015183820152602001610165565b9060209161019e81518092818552858086019101610162565b601f01601f1916010190565b6040906101c39392151581528160208201520190610185565b90565b346100a65760203660031901126100a6576004356001600160401b0381116100a6576101f6903690600401610135565b806002116100a65761021561020e833560f01c61038c565b61ffff1690565b916102298282610224866103a4565b61089c565b928315610259576102449261023d926102ac565b369161059b565b905b610255604051928392836101aa565b0390f35b505050610264610551565b90610246565b346100a657366003190161010081126100a65760e0136100a65760e4356001600160401b0381116100a6576102a6610244913690600401610135565b9061076d565b90929192836002116100a65783116100a657600201916001190190565b90929192836030116100a65783116100a65760300191602f190190565b906040116100a65790604090565b906080116100a65760400190604090565b90610200116100a6576080019061018090565b90610240116100a6576102000190604090565b90610242116100a6576102400190600290565b9092919283610242116100a65783116100a6576102420191610241190190565b909392938483116100a65784116100a6578101920390565b634e487b7160e01b600052601160045260246000fd5b61ffff166002019061ffff821161039f57565b610376565b906048820180921161039f57565b906020820180921161039f57565b906040820180921161039f57565b906060820180921161039f57565b906080820180921161039f57565b906004820180921161039f57565b906001820180921161039f57565b6102420190816102421161039f57565b906002820180921161039f57565b90601b820180921161039f57565b906019820180921161039f57565b9190820180921161039f57565b634e487b7160e01b600052604160045260246000fd5b61018081019081106001600160401b0382111761047f57604052565b61044d565b604081019081106001600160401b0382111761047f57604052565b606081019081106001600160401b0382111761047f57604052565b60e081019081106001600160401b0382111761047f57604052565b90601f801991011681019081106001600160401b0382111761047f57604052565b604051906105056060836104d5565b565b6040519061050560c0836104d5565b60405190610505610180836104d5565b60405190610505610120836104d5565b6001600160401b03811161047f57601f01601f191660200190565b604051906105606060836104d5565b60268252650e6dac2e8c6d60d31b6040837f466f756e64206f6e65206f72206d6f726520636f6c6c61746572616c73206d6960208201520152565b9291926105a782610536565b916105b560405193846104d5565b8294818452818301116100a6578281602093846000960137010152565b604051906105df82610463565b60606101608360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201528260e082015260006101008201526000610120820152826101408201520152565b60405190608082018281106001600160401b0382111761047f5760405260608083600081528160208201528160408201520152565b6040519061067582610484565b81606081526020610684610633565b910152565b6040519060c082018281106001600160401b0382111761047f576040528160608152606060208201526106ba6105d2565b60408201526060808201526040516106d181610484565b6000815260606020820152608082015260a0604051916106f08361049f565b6000835260006020840152610703610668565b60408401520152565b604051906107198261049f565b81604051610726816104ba565b6000815260006020820152600060408201526000606082015260006080820152600060a0820152600060c0820152815261075e6105d2565b60208201526040610684610689565b9061077661070c565b5061078381836004610d94565b93919092156107e85750806030116100a6576107a3906101b090856102c9565b93604051916107b36060846104d5565b603083523660308301116100a6576107e49560306107de93602086013760006050850152369161059b565b91611436565b9091565b94935050505060009190565b359060208110610802575090565b6000199060200360031b1b1690565b519081151582036100a657565b91908260409103126100a657602061083583610811565b92015190565b634e487b7160e01b600052602160045260246000fd5b6004111561085b57565b61083b565b6040513d6000823e3d90fd5b3d15610897573d9061087d82610536565b9161088b60405193846104d5565b82523d6000602084013e565b606090565b909161091c6108bb6108c16108bb6108b3866103b2565b86868961035e565b906107f4565b946108e26108bb6108d1876103b2565b6108da886103c0565b90878561035e565b946109036108bb6108f2836103c0565b6108fb846103ce565b90888661035e565b94610916610910836103ce565b926103dc565b9261035e565b6040805163943374c960e01b81526003600482015291946001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016949092909181602481885afa908115610b3157600090600092610b77575b5015918215610b6c575b5050610b63576040805163943374c960e01b8152600060048201529081602481875afa908115610b3157600090600092610b41575b5015918215610b36575b5050610ae55760408051630c64c7b960e41b8152600060048201529081602481865afa908115610b3157600090600092610aff575b5015918215610af4575b5050610aed57604051630c64c7b960e41b6020820190815260026024830152600091829190610a3f81604481015b03601f1981018352826104d5565b5190845afa90600080610a5061086c565b604051630c64c7b960e41b602082019081526001602483015291949190610a7a8160448101610a31565b51915afa610a8661086c565b600091600094600014610ac05750505080602080610aa99351830101910161081e565b90505b8214918215610aba57505090565b14919050565b919350915015610ae55780602080610add9351830101910161081e565b905090610aac565b505050600090565b5050600090565b141590503880610a03565b9050610b23915060403d604011610b2a575b610b1b81836104d5565b81019061081e565b90386109f9565b503d610b11565b610860565b1415905038806109c4565b9050610b5c915060403d604011610b2a57610b1b81836104d5565b90386109ba565b50505050600090565b141590503880610985565b9050610b92915060403d604011610b2a57610b1b81836104d5565b903861097b565b6001600160e01b03198116036100a657565b356101c381610b99565b60405190610bc46040836104d5565b602082527f6661696c656420746f207061727365206c6f63616c20697376207265706f72746020830152565b60001981019190821161039f57565b60011981019190821161039f57565b602003906020821161039f57565b9190820391821161039f57565b60405190610c386040836104d5565b601982527f71756f7465206c656e67746820697320696e636f7272656374000000000000006020830152565b60405190610c736040836104d5565b601882527f6661696c656420746f20706172736520617574686461746100000000000000006020830152565b61ffff8116036100a657565b6001600160f01b03198116036100a657565b359061050582610cab565b359061050582610b99565b6001600160801b03198116036100a657565b359061050582610cd3565b35906bffffffffffffffffffffffff19821682036100a657565b91908260e09103126100a657604051610d22816104ba565b60c06106848183958035610d3581610c9f565b85526020810135610d4581610cab565b6020860152610d5660408201610cc8565b6040860152610d6760608201610cbd565b6060860152610d7860808201610cbd565b6080860152610d8960a08201610ce5565b60a086015201610cf0565b92909192610da061070c565b90606093610dc463ffffffff60e01b610dbb60408501610bab565b161587846118c7565b8096918015610ec6575050610dd76105d2565b506101b096610df2610ded61023d8a84876102c9565b611a6b565b989015610eb257610e21610e1b610e1661023d610e0e856103ea565b85878a61035e565b611beb565b916103ea565b9281610e2d8585610c1c565b10610e9d575091610e559391610916610e4f94610e48610689565b5083610440565b90611c65565b8094919215610e85575050600195610e76610e6e6104f6565b933690610d0a565b83526020830152604082015291565b9496509450505050600092610e98610c64565b929190565b96985050505050509150600092610e98610c29565b505093955050509150600092610e98610bb5565b975095509293915050565b60405190610ee06040836104d5565b6015825274496e76616c69642051455265706f7274206461746160581b6020830152565b60405190610f136060836104d5565b60278252667920636865636b60c81b6040837f566572696669636174696f6e206661696c65642062792051454964656e74697460208201520152565b80516020909101516001600160d01b0319811692919060068210610f71575050565b6001600160d01b031960069290920360031b82901b16169150565b6001600160401b03811161047f5760051b60200190565b519061050582610c9f565b9080601f830112156100a657815190610fc682610f8c565b92610fd460405194856104d5565b82845260208085019360051b8201019182116100a657602001915b818310610ffc5750505090565b825160ff811681036100a657815260209283019201610fef565b51906001600160401b03821682036100a657565b519060088210156100a657565b81601f820112156100a6576020815191019061105281610536565b9261106060405194856104d5565b818452818301116100a6576101c3916020840190610162565b9080601f830112156100a657815161109081610f8c565b9261109e60405194856104d5565b81845260208085019260051b820101918383116100a65760208201905b8382106110ca57505050505090565b81516001600160401b0381116100a6576020916110ec87848094880101611037565b8152019101906110bb565b91906040838203126100a65761110c83610811565b926020810151906001600160401b0382116100a657019080601f830112156100a65781519161113a83610f8c565b9261114860405194856104d5565b80845260208085019160051b830101918383116100a65760208101915b83831061117457505050505090565b82516001600160401b0381116100a65782019060c0828703601f1901126100a65761119d610507565b906111aa60208401610fa3565b825260408301516001600160401b0381116100a6578760206111ce92860101610fae565b602083015260608301516001600160401b0381116100a6578760206111f592860101610fae565b604083015261120660808401611016565b606083015261121760a0840161102a565b608083015260c0830151916001600160401b0383116100a65761124288602080969581960101611079565b60a0820152815201920191611165565b604051906112616040836104d5565b601882527f544342206e6f7420666f756e64206f72206578706972656400000000000000006020830152565b634e487b7160e01b600052603260045260246000fd5b8051156112b05760200190565b61128d565b80518210156112b05760209160051b010190565b6008111561085b57565b604051906112e26060836104d5565b602382526265636b60e81b6040837f5665726966696361746f6e206661696c656420627920544342496e666f20636860208201520152565b908160209103126100a657516001600160a01b03811681036100a65790565b604051906113486040836104d5565b601b82527f4661696c656420746f20766572696679205835303920436861696e00000000006020830152565b9061138760209282815194859201610162565b0190565b6040519061139a6060836104d5565b603882527f2f6f72207165207265706f7274207369676e61747572657300000000000000006040837f4661696c656420746f20766572696679206174746573746174696f6e20616e6460208201520152565b60005b8281106113fb57505050565b6060828201526020016113ef565b604051906114186020836104d5565b600080835261050590602084016113ec565b600882101561085b5752565b604090949293940193611462855161016060408201510151906020608081830151920151015191611e42565b8015611779575061147760408651015161212e565b91909586158015611766575b61175857611506959650604060a08251015101519060208251920151947f000000000000000000000000000000000000000000000000000000000000000060018060a01b03811695604088019760006114dc8a51610f4f565b60405163a498226f60e01b81526001600160d01b031990911660048201529b8c9081906024820190565b03818b5afa9a8b15610b315760009060009c611730575b50156117175760009a8b805b8d835111156117055750506115486115418d836112b5565b518361223d565b909c8d611558576001019c611529565b50939495969798999a9b9150505b801580156116f2575b6116df575061158260049260209261228d565b9760405192838092633fcb603b60e01b82525afa8015610b31576115b09286926000926116ae575b5061243c565b801561169e575061160f9392916115eb6115d7926115dd6040519485926020840190611374565b8c611374565b03601f1981018452836104d5565b60a06115fc606083510151946112a3565b51015190519260208451940151946127be565b938415611693576116236101c39351610f4f565b9061168461162f611409565b9261167361163b610507565b61ffff7f000000000000000000000000000000000000000000000000000000000000000016815295600060208801526040870161142a565b6001600160d01b0319166060850152565b608083015260a0820152612908565b5050506101c361138b565b97505050505050506101c3611339565b6116d191925060203d6020116116d8575b6116c981836104d5565b81019061131a565b90386115aa565b503d6116bf565b9a505050505050505050506101c36112d3565b506116fc836112c9565b6006831461156f565b9250939495969798999a9b5050611566565b50505050505050505091505061172b611252565b600091565b9050611750919b503d806000833e61174881836104d5565b8101906110f7565b9a903861151d565b5050505090506101c3610f04565b5061177083610851565b60028314611483565b9450505090506101c3610ed1565b604051906117966060836104d5565b60218252606d60f81b6040837f51756f7465206c656e677468206973206c657373207468616e206d696e696d7560208201520152565b356101c381610c9f565b604051906117e56040836104d5565b601082526f0accae4e6d2dedc40dad2e6dac2e8c6d60831b6020830152565b356101c381610cab565b6040519061181d6040836104d5565b602082527f556e737570706f72746564206174746573746174696f6e206b657920747970656020830152565b604051906118586040836104d5565b601082526f556e6b6e6f776e20544545207479706560801b6020830152565b356101c381610cd3565b604051906118906060836104d5565b6022825261125160f21b6040837f4e6f7420612076616c696420496e74656c205347582051452056656e646f722060208201520152565b90916103fc6060931061199a576118dd826117cc565b61ffff807f00000000000000000000000000000000000000000000000000000000000000001691160361198c57600160f91b6001600160f01b031961192460208501611804565b160361197e5715611971576f939a7233f79c4ca9940a0db3957f060760801b906001600160801b03199061195a9060a001611877565b160361196557600191565b506000906101c3611881565b50506000906101c3611849565b5050506000906101c361180e565b5050506000906101c36117d6565b5050506000906101c3611787565b9060208251920151916001600160801b0319831692601082106119c9575050565b6001600160801b031960109290920360031b82901b16169150565b80516020909101516001600160e01b0319811692919060048210611a06575050565b6001600160e01b031960049290920360031b82901b16169150565b90602082519201519163ffffffff19831692601c8210611a3f575050565b63ffffffff19601c9290920360031b82901b16169150565b602081519101519060208110610802575090565b611a736105d2565b90610180815103611bac5780611aa4611a96611a91611ba194612982565b6119a8565b6001600160801b0319168452565b611ac9611ab8611ab383612a35565b6119e4565b6001600160e01b0319166020850152565b611aeb611add611ad883612abd565b611a21565b63ffffffff19166040850152565b611b0b611afa611a9183612b45565b6001600160801b0319166060850152565b611b1c611b1782612bcd565b611a57565b6080840152611b2d611b1782612c55565b60a0840152611b3e611b1782612cdd565b60c0840152611b4c81612d65565b60e0840152611b6f611b6361020e610e1684612dee565b61ffff16610100850152565b611b8d611b8161020e610e1684612e78565b61ffff16610120850152565b611b9681612f02565b610140840152612f8c565b610160820152600191565b50600091565b600181901b91906001600160ff1b0381160361039f57565b8181029291811591840414171561039f57565b603f811161039f5760100a90565b60009190825b8151841015611c605760006020858401015190611c42611c2d600f8460f81c9460fc1c9416611c27611c228a611bb2565b611bdd565b90611bca565b92611c27611c22611c3d8a611bb2565b6103f8565b820180921161039f5750810180911161039f57600190930192611bf1565b925050565b611c6d610689565b91611c7b61023d82846102e6565b8352611c8a61023d82846102f4565b6020840152611d9861023d611ca261023d8486610305565b93611cb061023d8583610318565b6060870152611d10611ccb61020e610e1661023d888661032b565b6020611d0961ffff60808b0193611ce78186519061ffff169052565b1692611cfc611cf585610406565b8a8861033e565b939091510192369161059b565b9052610406565b611d2d61020e610e1661023d611d2585610416565b858a8861035e565b9461091663ffffffff611d83611d91611d5860a08d0196611d538c89519061ffff169052565b610416565b6020611d7b611d72610e1661023d8c868c610916826103ea565b63ffffffff1690565b9384926103ea565b9751019063ffffffff169052565b1683610440565b611da183611a6b565b604086015215611e3a5760405163e99bba5360e01b8152916020836004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610b3157611e0393600091611e1b575b5061319d565b60a084015160400152928315611e1557565b60009350565b611e34915060203d6020116116d8576116c981836104d5565b38611dfd565b506000939050565b611ea760209283611e96611e57600095611a57565b9660405192839181611e728185019788815193849201610162565b8301611e8682518093858085019101610162565b010103601f1981018352826104d5565b604051928392839251928391610162565b8101039060025afa15610b31576000511490565b60405190611ec882610463565b60606101608360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c0820152600060e08201526000610100820152600061012082015260006101408201520152565b519060038210156100a657565b519063ffffffff821682036100a657565b519061050582610b99565b519061050582610cd3565b81601f820112156100a657805190611f6982610f8c565b92611f7760405194856104d5565b828452602060608186019402830101918183116100a657602001925b828410611fa1575050505090565b6060848303126100a65760405190611fb88261049f565b8451611fc381610c9f565b82526020850151602083015260408501519060048210156100a6578260209260406060950152815201930192611f93565b91906040838203126100a65761200983610811565b926020810151906001600160401b0382116100a65701610180818303126100a657612032610516565b9161203c82611f1e565b835261204a60208301611f2b565b602084015261205b60408301611016565b604084015261206c60608301611016565b606084015261207d60808301611f2b565b608084015261208e60a08301611f3c565b60a084015261209f60c08301611f3c565b60c08401526120b060e08301611f47565b60e08401526120c26101008301611f47565b6101008401526101208201516101208401526120e16101408301610fa3565b6101408401526101608201516001600160401b0381116100a6576121059201611f52565b61016082015290565b9092916040820193600381101561085b5760209161ffff91845216910152565b612136611ebb565b5060405163b9f1b94f60e01b815290600082806121777f0000000000000000000000000000000000000000000000000000000000000000846004840161210e565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610b3157600092600092612215575b50821561220d5760208101516107e493506001600160e01b03191660608201516001600160801b03191660c0830151916122076101206121fd61010087015161ffff1690565b95015161ffff1690565b946132b1565b505090600090565b90925061223591503d806000833e61222d81836104d5565b810190611ff4565b9091386121b7565b91906080612262602061ffff86511661ffff855116111595015160208401519061393e565b91015190600882101561085b5783612285575b50821561227f5790565b50600790565b925038612275565b9190600360009361229d81610851565b0361230b57600881101561085b57801580156122f8575b6122ef575b6122c2816112c9565b600381149081156122db575b506122d557565b60059150565b600291506122e8816112c9565b14386122ce565b600492506122b9565b50612302816112c9565b600181146122b4565b9150565b6040519061012082018281106001600160401b0382111761047f5760405260606101008360008152826020820152600060408201526000838201528260808201528260a0820152600060c08201528260e08201520152565b604051906123766040836104d5565b601982527f496e74656c205347582050434b20506c6174666f726d204341000000000000006020830152565b604051906123b16040836104d5565b601a82527f496e74656c205347582050434b2050726f636573736f722043410000000000006020830152565b9190916040818403126100a6576123f381610811565b9260208201516001600160401b0381116100a6576101c39201611037565b908160209103126100a6576101c390610811565b6040906101c3939281528160208201520190610185565b8251600093849384938493849391929091906001600160a01b03165b828510612493575b505050505015928361248b575b5082612483575b508161247e575090565b905090565b915038612474565b92503861246d565b9091929395976124a161230f565b506124ab84610bf0565b87036125aa57506124bc86836112b5565b51955b60406124cb82856112b5565b51015142119889612591575b891561258a5750602060006125016101006124f285886112b5565b51015160405191828092611374565b039060025afa15610b315761252e60005160a060e061252085886112b5565b51015199019889519161342c565b968715612584577f89f72d7c488e5b53a77c23ebcb36970ef7eb5bcf6658e9b8292cfbe4703a8473905160208151910120146125705760010193929190612458565b505050505091506001913880808080612460565b50612460565b9650612460565b9850606061259f82856112b5565b5101514210986124d7565b956125bd6125b7826103f8565b846112b5565b519660606125ca86610bff565b83036126c057506040516306980d0760e21b8152600060048201819052816024816001600160a01b038b165afa908115610b315760009161269d575b505b8051612623575b508661261b57506124bf565b989650612460565b61265391975060209061263684876112b5565b515160405163cedb978160e01b8152938492839260048401612425565b0381865afa908115610b315760009161266f575b50953861260f565b612690915060203d8111612696575b61268881836104d5565b810190612411565b38612667565b503d61267e565b6126b8913d8091833e6126b081836104d5565b8101906123dd565b905038612606565b82612608575060206126d283866112b5565b5101516126f56126e0612367565b82906020815191012090602081519101201490565b1561275157506040516306980d0760e21b8152600260048201526000816024816001600160a01b038b165afa908115610b3157600091612736575b50612608565b612749913d8091833e6126b081836104d5565b905038612730565b6127709061275d6123a2565b6020815191012090602081519101201490565b156127af576040516306980d0760e21b8152600160048201526000816024816001600160a01b038b165afa908115610b31576000916127365750612608565b50505050505050505050600090565b60006127df6020929796979493948360405192828480945193849201610162565b8101039060025afa15610b31576127f89160005161342c565b15610ae55760006128186020928360405192828480945193849201610162565b8101039060025afa15610b31576101c39160005161342c565b602081016020825282518091526040820191602060408360051b8301019401926000915b83831061286457505050505090565b9091929394602080612882600193603f198682030187528951610185565b97019301930191939290612855565b60f09190911b6001600160f01b03191681526001600160e01b0319909116600282015290939291600885101561085b57600d9460f81b600683015265ffffffffffff60d01b1660078201526128ef8251809360208785019101610162565b016129038251809360208685019101610162565b010190565b61ffff8151169063ffffffff60e01b60208201511691604082015191600883101561085b57612965610a31916101c39465ffffffffffff60d01b6060830151169061297360a0608085015194015160405195869160208301612831565b03601f1981018652856104d5565b60405197889660208801612891565b80516010116100a6576129956010610536565b906129a360405192836104d5565b601082526129b16010610536565b6020830190601f19013682379060200160105b6020811015612a0557806129e65750600019905b518251821691191617905290565b6129fa6129f56129ff92610c0e565b6134f4565b610bf0565b906129d8565b9091825181526020810180911161039f57916020810180911161039f5790601f198101908111156129c457610376565b80516014116100a657612a486004610536565b90612a5660405192836104d5565b60048252612a646004610536565b6020830190601f19013682379060300160045b6020811015612a8d57806129e657509192915050565b9091825181526020810180911161039f57916020810180911161039f5790601f19810190811115612a7757610376565b80516030116100a657612ad0601c610536565b90612ade60405192836104d5565b601c8252612aec601c610536565b6020830190601f190136823790603401601c5b6020811015612b1557806129e657509192915050565b9091825181526020810180911161039f57916020810180911161039f5790601f19810190811115612aff57610376565b80516040116100a657612b586010610536565b90612b6660405192836104d5565b60108252612b746010610536565b6020830190601f19013682379060500160105b6020811015612b9d57806129e657509192915050565b9091825181526020810180911161039f57916020810180911161039f5790601f19810190811115612b8757610376565b80516060116100a657612be06020610536565b90612bee60405192836104d5565b60208252612bfc6020610536565b6020830190601f19013682379060600160205b6020811015612c2557806129e657509192915050565b9091825181526020810180911161039f57916020810180911161039f5790601f19810190811115612c0f57610376565b80516080116100a657612c686020610536565b90612c7660405192836104d5565b60208252612c846020610536565b6020830190601f19013682379060800160205b6020811015612cad57806129e657509192915050565b9091825181526020810180911161039f57916020810180911161039f5790601f19810190811115612c9757610376565b805160a0116100a657612cf06020610536565b90612cfe60405192836104d5565b60208252612d0c6020610536565b6020830190601f19013682379060a00160205b6020811015612d3557806129e657509192915050565b9091825181526020810180911161039f57916020810180911161039f5790601f19810190811115612d1f57610376565b8051610100116100a657612d796060610536565b90612d8760405192836104d5565b60608252612d956060610536565b6020830190601f19013682379060c00160605b6020811015612dbe57806129e657509192915050565b9091825181526020810180911161039f57916020810180911161039f5790601f19810190811115612da857610376565b8051610102116100a657612e026002610536565b90612e1060405192836104d5565b60028252612e1e6002610536565b6020830190601f1901368237906101200160025b6020811015612e4857806129e657509192915050565b9091825181526020810180911161039f57916020810180911161039f5790601f19810190811115612e3257610376565b8051610104116100a657612e8c6002610536565b90612e9a60405192836104d5565b60028252612ea86002610536565b6020830190601f1901368237906101220160025b6020811015612ed257806129e657509192915050565b9091825181526020810180911161039f57916020810180911161039f5790601f19810190811115612ebc57610376565b8051610140116100a657612f16603c610536565b90612f2460405192836104d5565b603c8252612f32603c610536565b6020830190601f19013682379061012401603c5b6020811015612f5c57806129e657509192915050565b9091825181526020810180911161039f57916020810180911161039f5790601f19810190811115612f4657610376565b8051610180116100a657612fa06040610536565b90612fae60405192836104d5565b60408252612fbc6040610536565b6020830190601f1901368237906101600160405b6020811015612fe657806129e657509192915050565b9091825181526020810180911161039f57916020810180911161039f5790601f19810190811115612fd057610376565b80516020116100a6576130296020610536565b9061303760405192836104d5565b602082526130456020610536565b6020830190601f1901368237602080920190915b602081101561306f57806129e657509192915050565b9091825181526020810180911161039f57916020810180911161039f5790601f1981019081111561305957610376565b80516040116100a6576130b26020610536565b906130c060405192836104d5565b602082526130ce6020610536565b6020830190601f19013682379060400160205b60208110156130f757806129e657509192915050565b9091825181526020810180911161039f57916020810180911161039f5790601f198101908111156130e157610376565b6040516080919061313883826104d5565b6003815291601f19018260005b82811061315157505050565b60209061315c61230f565b82828501015201613145565b9061050561317583610f8c565b61318260405191826104d5565b83815260208194613195601f1991610f8c565b0191016113ec565b91929092600561ffff6131ae610668565b956131b7613127565b875216036132a9576131c890613503565b919093841561329f576131f76131e76131e0856112a3565b5186613757565b83929192519060208501526112a3565b5261320a6132058451610bf0565b613168565b9460005b8651811015613249578061322c6132266001936103f8565b876112b5565b51613237828a6112b5565b5261324281896112b5565b500161320e565b50925092936132589194613859565b9060005b82518110156132995780613292613275600193866112b5565b518651613281846103f8565b9161328c83836112b5565b526112b5565b500161325c565b50929050565b6000945092509050565b506000929150565b9490919295936000926132ce60c088015163ffffffff60e01b1690565b166132f36132e660a089015163ffffffff60e01b1690565b6001600160e01b03191690565b6101008801516001600160e01b03199092161494906001600160801b0319161661333861332b60e08901516001600160801b03191690565b6001600160801b03191690565b906001600160801b0319161496610120870151149061ffff61336361020e6101408a015161ffff1690565b911614916000805b61016089018051805183101561340d5761338883613391926112b5565b515161ffff1690565b61ffff808616911611156133a8575060010161336b565b9697985090506040929394506133c29150600195516112b5565b5101516133ce81610851565b955b84613405575b50836133fd575b50826133f5575b50816133ef57509190565b90509190565b9150386133e4565b9250386133dd565b9350386133d6565b50505094959650509091956133d0565b908160209103126100a6575190565b60009291839261344a611b17613444611b1785613016565b9361309f565b90613463611b1761345d611b1784613016565b9261309f565b91604051936020850195865260408501526060840152608083015260a082015260a0815261349260c0826104d5565b51907f00000000000000000000000000000000000000000000000000000000000000005afa6134bf61086c565b90156134de576134da8160208060019451830101910161341d565b1490565b634e487b7160e01b600052600160045260246000fd5b601f811161039f576101000a90565b61350d6003613168565b906000815191815b600383106135265750505050600191565b82156135a45783810180821161039f5761354461354991838561399a565b613a74565b92919061355686896112b5565b5261356a61356486896112b5565b51613b54565b61357486896112b5565b5261357f85886112b5565b50156135995760019161359191610440565b920191613515565b506000959350505050565b61354982613a74565b6020818303126100a6578051906001600160401b0382116100a65701610120818303126100a6576135dc610526565b918151835260208201516001600160401b0381116100a65781613600918401611037565b6020840152604082015160408401526060820151606084015260808201516001600160401b0381116100a65781613638918401611037565b608084015260a08201516001600160401b0381116100a6578161365c918401611037565b60a084015260c082015160c084015260e08201516001600160401b0381116100a6578161368a918401611037565b60e08401526101008201516001600160401b0381116100a6576136ad9201611037565b61010082015290565b9060206101c3928181520190610185565b906080828203126100a65781516136dd81610c9f565b9260208301516001600160401b0381116100a657826136fd918501610fae565b9260408101516001600160401b0381116100a6578361371d918301611037565b9260608201516001600160401b0381116100a6576101c39201611037565b929190613752602091604086526040860190610185565b930152565b909161376161230f565b5061376a610633565b604051631dbcd30f60e11b81529390926001600160a01b03166000858061379485600483016136b6565b0381845afa948515610b315760009561382c575b506137d29160009160c08701519160405180958194829363740e383f60e11b84526004840161373b565b03915afa908115610b315761050591600091829183918491613807575b5060608701526040860152602085015261ffff168352565b92505050613826913d8091833e61381e81836104d5565b8101906136c7565b386137ef565b6000919550916138506137d2933d8085833e61384881836104d5565b8101906135ad565b959150916137a8565b81519192916001600160a01b039091169061387381610f8c565b9161388160405193846104d5565b818352601f1961389083610f8c565b0160005b818110613927575050829460005b8381106138b0575050505050565b8060006138c06138db93856112b5565b5160405180948192631dbcd30f60e11b8352600483016136b6565b0381875afa8015610b315760019260009161390e575b506138fc82886112b5565b5261390781876112b5565b50016138a2565b613921913d8091833e61384881836104d5565b386138f1565b60209061393261230f565b82828801015201613894565b90601082511480159061398e575b610aed5760005b6010811061396357505050600190565b60ff61396f82856112b5565b511660ff8061397e84866112b5565b51161611610ae557600101613953565b5060108151141561394c565b805160609493929083811115613a12575b81811115613a0a575b508281106139c157505050565b6040519281900380845292945001601f8201601f19165b8181015185820152601f19019081156139f157906139d8565b5050600083820160200152603f01601f19168201604052565b9050386139b4565b9250826139ab565b60405190613a296040836104d5565b601982527f2d2d2d2d2d454e442043455254494649434154452d2d2d2d2d000000000000006020830152565b60405190613a646040836104d5565b60018252600560f91b6020830152565b613ab5604051613a856040826104d5565b601b81527f2d2d2d2d2d424547494e2043455254494649434154452d2d2d2d2d0000000000602082015282613dab565b613ac6613ac0613a1a565b83613dab565b9160001982148015613b49575b613b3b57613af583613ae7613afa94610424565b613aef613a55565b9361399a565b613c74565b60009260605b8251851015613b2857613b20600191613b1987866112b5565b5190613d38565b940193613b00565b935091613b359150610432565b60019291565b505050600090606090600090565b506000198314613ad3565b90606091805180613b63575050565b90925060038160021c029060038116908115613c59575001600019015b604051928184526020840191840191600360046020850193600080516020613f87833981519152605b527804080c1014181c2024282c3034383c4044484c5054585c6064603b526ef8fcf800fcd0d4d8dce0e4e8ecf0f4601a525b0191825160ff81165160061c81601e1a51600080516020613f87833981519152161760061c81601d1a51600080516020613f87833981519152161760061c90601c1a51600080516020613f8783398151915216178152019082821015613c4657600390600490613bdb565b5050604060009201604052526000606052565b613d3d91508401511860ff81161590601e1a15019003613b80565b919091613c818382613e83565b90602082018091600184510160051b8401916020830192825190526001855101855260005b81519060608352808203613ce2575b50602090885101910190838210613ca6575050505081935115613cd6575050565b90516001190181529150565b604051818303808252949091601f8601601f19165b82820181015184820152601f1901918215613d125791613cf7565b9590506020939291506000848284010152603f601f199101168101604052835290613cb5565b60405181519093929160208201601f19165b8181015186820152601f1901908115613d635790613d4a565b505081519184820160208401601f19165b8281015182820152601f1901918215613d8d5791613d74565b5050500180830190600060208301528352603f601f19910116604052565b8051825191939284908215158415613e7857602185602060001999019585010301946020601f8216810360031b93018051928787101615613e51576020821015613e2a575050925b83815118821c15613e17576001019284841015613e105792613df3565b5050505050565b91909103601f1901945061050592505050565b90809295939120925b85815118821c15613e5a575b6001019486861015613e515794613e33565b50505050505050565b8383822003613e3f5793909303601f19019650610505945050505050565b506000955050505050565b9190828391606094805182519181831115613ea1575b505050505050565b8293949596975091602080602193940195019260206040510197010301936000916020841015613f7c575b601f841660200360031b9051945b85815118821c15613f23575b6001019486861015613ef9575b94613eda565b505050505050505b90602060405192601f198482030160051c845201604052388080808080613e99565b968484613f55575b60208192601f19868c030181520198019015613ee65794868610613ef35750505050505050613f01565b8490892003613f645784613f2b565b9660010194868610613ef35750505050505050613f01565b8381209250613ecc56fefc000000fc00686c7074787c8084888c9094989ca0a4a8acb0b4b8bcc0c4c8cca2646970667358221220746e79a83e3a254fabf88047ec7326605f511cdc5dc88444c54ee86df9dafdeb64736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000100000000000000000000000000729e3e7542e8a6630818e9a14a67e0cb7008a5e5