60806040526040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600c908051906020019062000051929190620004a3565b506000600e556000600f55610d05601055600360115560006012556005601355610fa06014556000601660006101000a81548160ff0219169083151502179055506000601660016101000a81548160ff0219169083151502179055506000601660026101000a81548160ff02191690831515021790555073f13fb22e4e252964ef610ecbb771434adf7ac9a0601660036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200012a57600080fd5b50604051620063a3380380620063a38339818101604052810190620001509190620005e8565b848481600090805190602001906200016a929190620004a3565b50806001908051906020019062000183929190620004a3565b505050620001a66200019a6200021c60201b60201c565b6200022460201b60201c565b620001b783620002ea60201b60201c565b620001c882620003ce60201b60201c565b600060158190555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050620009b1565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620002fa6200021c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620003206200047960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000379576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003709062000778565b60405180910390fd5b80600b908051906020019062000391929190620004a3565b507f5411e8ebf1636d9e83d5fc4900bf80cbac82e8790da2a4c94db4895e889eedf681604051620003c3919062000754565b60405180910390a150565b620003de6200021c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620004046200047960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200045d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004549062000778565b60405180910390fd5b80600d908051906020019062000475929190620004a3565b5050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054620004b1906200087f565b90600052602060002090601f016020900481019282620004d5576000855562000521565b82601f10620004f057805160ff191683800117855562000521565b8280016001018555821562000521579182015b828111156200052057825182559160200191906001019062000503565b5b50905062000530919062000534565b5090565b5b808211156200054f57600081600090555060010162000535565b5090565b60006200056a6200056484620007c3565b6200079a565b9050828152602081018484840111156200058957620005886200094e565b5b6200059684828562000849565b509392505050565b600081519050620005af8162000997565b92915050565b600082601f830112620005cd57620005cc62000949565b5b8151620005df84826020860162000553565b91505092915050565b600080600080600060a0868803121562000607576200060662000958565b5b600086015167ffffffffffffffff81111562000628576200062762000953565b5b6200063688828901620005b5565b955050602086015167ffffffffffffffff8111156200065a576200065962000953565b5b6200066888828901620005b5565b945050604086015167ffffffffffffffff8111156200068c576200068b62000953565b5b6200069a88828901620005b5565b935050606086015167ffffffffffffffff811115620006be57620006bd62000953565b5b620006cc88828901620005b5565b9250506080620006df888289016200059e565b9150509295509295909350565b6000620006f982620007f9565b62000705818562000804565b93506200071781856020860162000849565b62000722816200095d565b840191505092915050565b60006200073c60208362000804565b915062000749826200096e565b602082019050919050565b60006020820190508181036000830152620007708184620006ec565b905092915050565b6000602082019050818103600083015262000793816200072d565b9050919050565b6000620007a6620007b9565b9050620007b48282620008b5565b919050565b6000604051905090565b600067ffffffffffffffff821115620007e157620007e06200091a565b5b620007ec826200095d565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b6000620008228262000829565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60005b83811015620008695780820151818401526020810190506200084c565b8381111562000879576000848401525b50505050565b600060028204905060018216806200089857607f821691505b60208210811415620008af57620008ae620008eb565b5b50919050565b620008c0826200095d565b810181811067ffffffffffffffff82111715620008e257620008e16200091a565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b620009a28162000815565b8114620009ae57600080fd5b50565b6159e280620009c16000396000f3fe6080604052600436106102ff5760003560e01c80635e5fd3c711610190578063a22cb465116100dc578063da3ef23f11610095578063f2c4ce1e1161006f578063f2c4ce1e14610b76578063f2fde38b14610b9f578063fc1a1c3614610bc8578063fdab4d5e14610bf3576102ff565b8063da3ef23f14610ae7578063e985e9c514610b10578063edec5f2714610b4d576102ff565b8063a22cb465146109eb578063a475b5dd14610a14578063b88d4fde14610a2b578063c87b56dd14610a54578063d5abeb0114610a91578063d6e7b8e414610abc576102ff565b806376bbd2e41161014957806395d89b411161012357806395d89b411461094e5780639c70b512146109795780639d1b464a146109a4578063a0712d68146109cf576102ff565b806376bbd2e4146108cf578063882302d3146108f85780638da5cb5b14610923576102ff565b80635e5fd3c7146107bf5780636352211e146107ea57806368cccfb51461082757806370a0823114610852578063715018a61461088f578063717d57d3146108a6576102ff565b80633c9527641161024f5780634f6ccce71161020857806355f804b3116101e257806355f804b31461071757806356d0d83a146107405780635c131220146107695780635c975abb14610794576102ff565b80634f6ccce71461068657806351830227146106c357806354594426146106ee576102ff565b80633c952764146105995780633ccfd60b146105c257806342842e0e146105cc57806342966c68146105f5578063438b63001461061e5780634bbe28591461065b576102ff565b8063095ea7b3116102bc57806323b872dd1161029657806323b872dd146104cb5780632618c3ff146104f45780632f745c591461051f5780633af32abf1461055c576102ff565b8063095ea7b31461043a57806318160ddd1461046357806318cae2691461048e576102ff565b806301ffc9a71461030457806302329a291461034157806306c933d81461036a57806306fdde03146103a7578063081812fc146103d2578063081c8c441461040f575b600080fd5b34801561031057600080fd5b5061032b6004803603810190610326919061417f565b610c1c565b6040516103389190614962565b60405180910390f35b34801561034d57600080fd5b5061036860048036038101906103639190614152565b610c96565b005b34801561037657600080fd5b50610391600480360381019061038c9190613f42565b610d2f565b60405161039e9190614962565b60405180910390f35b3480156103b357600080fd5b506103bc610d4f565b6040516103c9919061497d565b60405180910390f35b3480156103de57600080fd5b506103f960048036038101906103f49190614222565b610de1565b60405161040691906148b0565b60405180910390f35b34801561041b57600080fd5b50610424610e66565b604051610431919061497d565b60405180910390f35b34801561044657600080fd5b50610461600480360381019061045c91906140c5565b610ef4565b005b34801561046f57600080fd5b5061047861100c565b6040516104859190614d3f565b60405180910390f35b34801561049a57600080fd5b506104b560048036038101906104b09190613f42565b611019565b6040516104c29190614d3f565b60405180910390f35b3480156104d757600080fd5b506104f260048036038101906104ed9190613faf565b611031565b005b34801561050057600080fd5b50610509611091565b6040516105169190614d3f565b60405180910390f35b34801561052b57600080fd5b50610546600480360381019061054191906140c5565b611097565b6040516105539190614d3f565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e9190613f42565b61113c565b6040516105909190614962565b60405180910390f35b3480156105a557600080fd5b506105c060048036038101906105bb9190614152565b611192565b005b6105ca61122b565b005b3480156105d857600080fd5b506105f360048036038101906105ee9190613faf565b61141b565b005b34801561060157600080fd5b5061061c60048036038101906106179190614222565b61143b565b005b34801561062a57600080fd5b5061064560048036038101906106409190613f42565b611530565b6040516106529190614940565b60405180910390f35b34801561066757600080fd5b506106706115de565b60405161067d9190614d3f565b60405180910390f35b34801561069257600080fd5b506106ad60048036038101906106a89190614222565b6115e4565b6040516106ba9190614d3f565b60405180910390f35b3480156106cf57600080fd5b506106d8611655565b6040516106e59190614962565b60405180910390f35b3480156106fa57600080fd5b5061071560048036038101906107109190614222565b611668565b005b34801561072357600080fd5b5061073e600480360381019061073991906141d9565b6116ee565b005b34801561074c57600080fd5b5061076760048036038101906107629190614222565b6117bb565b005b34801561077557600080fd5b5061077e611841565b60405161078b9190614d3f565b60405180910390f35b3480156107a057600080fd5b506107a9611847565b6040516107b69190614962565b60405180910390f35b3480156107cb57600080fd5b506107d461185a565b6040516107e19190614d3f565b60405180910390f35b3480156107f657600080fd5b50610811600480360381019061080c9190614222565b611860565b60405161081e91906148b0565b60405180910390f35b34801561083357600080fd5b5061083c611912565b6040516108499190614d3f565b60405180910390f35b34801561085e57600080fd5b5061087960048036038101906108749190613f42565b611918565b6040516108869190614d3f565b60405180910390f35b34801561089b57600080fd5b506108a46119d0565b005b3480156108b257600080fd5b506108cd60048036038101906108c89190614222565b611a58565b005b3480156108db57600080fd5b506108f660048036038101906108f19190614222565b611ade565b005b34801561090457600080fd5b5061090d611b64565b60405161091a9190614d3f565b60405180910390f35b34801561092f57600080fd5b50610938611b6a565b60405161094591906148b0565b60405180910390f35b34801561095a57600080fd5b50610963611b94565b604051610970919061497d565b60405180910390f35b34801561098557600080fd5b5061098e611c26565b60405161099b9190614962565b60405180910390f35b3480156109b057600080fd5b506109b9611c39565b6040516109c69190614d3f565b60405180910390f35b6109e960048036038101906109e49190614222565b611c63565b005b3480156109f757600080fd5b50610a126004803603810190610a0d9190614085565b611ea4565b005b348015610a2057600080fd5b50610a29611eba565b005b348015610a3757600080fd5b50610a526004803603810190610a4d9190614002565b611f53565b005b348015610a6057600080fd5b50610a7b6004803603810190610a769190614222565b611fb5565b604051610a88919061497d565b60405180910390f35b348015610a9d57600080fd5b50610aa661210e565b604051610ab39190614d3f565b60405180910390f35b348015610ac857600080fd5b50610ad1612114565b604051610ade9190614d3f565b60405180910390f35b348015610af357600080fd5b50610b0e6004803603810190610b0991906141d9565b61229c565b005b348015610b1c57600080fd5b50610b376004803603810190610b329190613f6f565b612332565b604051610b449190614962565b60405180910390f35b348015610b5957600080fd5b50610b746004803603810190610b6f9190614105565b6123c6565b005b348015610b8257600080fd5b50610b9d6004803603810190610b9891906141d9565b61257e565b005b348015610bab57600080fd5b50610bc66004803603810190610bc19190613f42565b612614565b005b348015610bd457600080fd5b50610bdd61270c565b604051610bea9190614d3f565b60405180910390f35b348015610bff57600080fd5b50610c1a6004803603810190610c159190614222565b612712565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610c8f5750610c8e82612798565b5b9050919050565b610c9e61287a565b73ffffffffffffffffffffffffffffffffffffffff16610cbc611b6a565b73ffffffffffffffffffffffffffffffffffffffff1614610d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0990614b9f565b60405180910390fd5b80601660006101000a81548160ff02191690831515021790555050565b60186020528060005260406000206000915054906101000a900460ff1681565b606060008054610d5e90615048565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8a90615048565b8015610dd75780601f10610dac57610100808354040283529160200191610dd7565b820191906000526020600020905b815481529060010190602001808311610dba57829003601f168201915b5050505050905090565b6000610dec82612882565b610e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2290614b5f565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600d8054610e7390615048565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9f90615048565b8015610eec5780601f10610ec157610100808354040283529160200191610eec565b820191906000526020600020905b815481529060010190602001808311610ecf57829003601f168201915b505050505081565b6000610eff82611860565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6790614c1f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610f8f61287a565b73ffffffffffffffffffffffffffffffffffffffff161480610fbe5750610fbd81610fb861287a565b612332565b5b610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff490614abf565b60405180910390fd5b61100783836128ee565b505050565b6000600880549050905090565b60196020528060005260406000206000915090505481565b61104261103c61287a565b826129a7565b611081576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107890614c9f565b60405180910390fd5b61108c838383612a85565b505050565b60145481565b60006110a283611918565b82106110e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110da9061499f565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61119a61287a565b73ffffffffffffffffffffffffffffffffffffffff166111b8611b6a565b73ffffffffffffffffffffffffffffffffffffffff161461120e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120590614b9f565b60405180910390fd5b80601660026101000a81548160ff02191690831515021790555050565b61123361287a565b73ffffffffffffffffffffffffffffffffffffffff16611251611b6a565b73ffffffffffffffffffffffffffffffffffffffff16146112a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129e90614b9f565b60405180910390fd5b600047116112ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e190614b7f565b60405180910390fd5b6000601660039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660646005476113349190614f04565b61133e9190614ed3565b60405161134a9061489b565b60006040518083038185875af1925050503d8060008114611387576040519150601f19603f3d011682016040523d82523d6000602084013e61138c565b606091505b505090508061139a57600080fd5b60006113a4611b6a565b73ffffffffffffffffffffffffffffffffffffffff16476040516113c79061489b565b60006040518083038185875af1925050503d8060008114611404576040519150601f19603f3d011682016040523d82523d6000602084013e611409565b606091505b505090508061141757600080fd5b5050565b61143683838360405180602001604052806000815250611f53565b505050565b61144361287a565b73ffffffffffffffffffffffffffffffffffffffff16611461611b6a565b73ffffffffffffffffffffffffffffffffffffffff16146114b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ae90614b9f565b60405180910390fd5b60006114c161100c565b905060105482826114d29190614e7d565b1115611513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150a90614c3f565b60405180910390fd5b81601060008282546115259190614f5e565b925050819055505050565b6060600061153d83611918565b905060008167ffffffffffffffff81111561155b5761155a615210565b5b6040519080825280602002602001820160405280156115895781602001602082028036833780820191505090505b50905060005b828110156115d3576115a18582611097565b8282815181106115b4576115b36151e1565b5b60200260200101818152505080806115cb906150ab565b91505061158f565b508092505050919050565b60125481565b60006115ee61100c565b821061162f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162690614cdf565b60405180910390fd5b60088281548110611643576116426151e1565b5b90600052602060002001549050919050565b601660019054906101000a900460ff1681565b61167061287a565b73ffffffffffffffffffffffffffffffffffffffff1661168e611b6a565b73ffffffffffffffffffffffffffffffffffffffff16146116e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116db90614b9f565b60405180910390fd5b8060138190555050565b6116f661287a565b73ffffffffffffffffffffffffffffffffffffffff16611714611b6a565b73ffffffffffffffffffffffffffffffffffffffff161461176a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176190614b9f565b60405180910390fd5b80600b9080519060200190611780929190613ceb565b507f5411e8ebf1636d9e83d5fc4900bf80cbac82e8790da2a4c94db4895e889eedf6816040516117b0919061497d565b60405180910390a150565b6117c361287a565b73ffffffffffffffffffffffffffffffffffffffff166117e1611b6a565b73ffffffffffffffffffffffffffffffffffffffff1614611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182e90614b9f565b60405180910390fd5b8060118190555050565b60115481565b601660009054906101000a900460ff1681565b60135481565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611909576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190090614aff565b60405180910390fd5b80915050919050565b600f5481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198090614adf565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6119d861287a565b73ffffffffffffffffffffffffffffffffffffffff166119f6611b6a565b73ffffffffffffffffffffffffffffffffffffffff1614611a4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4390614b9f565b60405180910390fd5b611a566000612ce1565b565b611a6061287a565b73ffffffffffffffffffffffffffffffffffffffff16611a7e611b6a565b73ffffffffffffffffffffffffffffffffffffffff1614611ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acb90614b9f565b60405180910390fd5b80600e8190555050565b611ae661287a565b73ffffffffffffffffffffffffffffffffffffffff16611b04611b6a565b73ffffffffffffffffffffffffffffffffffffffff1614611b5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5190614b9f565b60405180910390fd5b8060128190555050565b60155481565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054611ba390615048565b80601f0160208091040260200160405190810160405280929190818152602001828054611bcf90615048565b8015611c1c5780601f10611bf157610100808354040283529160200191611c1c565b820191906000526020600020905b815481529060010190602001808311611bff57829003601f168201915b5050505050905090565b601660029054906101000a900460ff1681565b6000601660029054906101000a900460ff1615611c5a57600e549050611c60565b600f5490505b90565b601660009054906101000a900460ff1615611cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caa90614bbf565b60405180910390fd5b6000611cbd61100c565b905060008211611d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf990614d1f565b60405180910390fd5b6000611d0c612114565b90508083601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5a9190614e7d565b1115611d9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9290614cbf565b60405180910390fd5b6010548383611daa9190614e7d565b1115611deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de290614b1f565b60405180910390fd5b611df3611b6a565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e5e5760011515601660029054906101000a900460ff1615151415611e4f57611e4a83612da7565b611e59565b611e5883612f84565b5b611e9f565b611e6783613019565b7f1618c8df9f197f1ff63934d93e0d24e806964509feeb3d5f9bc12b75efadc45783604051611e969190614d3f565b60405180910390a15b505050565b611eb6611eaf61287a565b83836130b5565b5050565b611ec261287a565b73ffffffffffffffffffffffffffffffffffffffff16611ee0611b6a565b73ffffffffffffffffffffffffffffffffffffffff1614611f36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2d90614b9f565b60405180910390fd5b6001601660016101000a81548160ff021916908315150217905550565b611f64611f5e61287a565b836129a7565b611fa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9a90614c9f565b60405180910390fd5b611faf84848484613222565b50505050565b6060611fc082612882565b611fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff690614bff565b60405180910390fd5b60001515601660019054906101000a900460ff16151514156120ad57600d805461202890615048565b80601f016020809104026020016040519081016040528092919081815260200182805461205490615048565b80156120a15780601f10612076576101008083540402835291602001916120a1565b820191906000526020600020905b81548152906001019060200180831161208457829003601f168201915b50505050509050612109565b60006120b761327e565b905060008151116120d75760405180602001604052806000815250612105565b806120e184613310565b600c6040516020016120f59392919061486a565b6040516020818303038152906040525b9150505b919050565b60105481565b600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b815260040161217291906148b0565b60206040518083038186803b15801561218a57600080fd5b505afa15801561219e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121c2919061424f565b1115612293576001601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b815260040161222591906148b0565b60206040518083038186803b15801561223d57600080fd5b505afa158015612251573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612275919061424f565b6011546122829190614e7d565b61228c9190614f5e565b9050612299565b60125490505b90565b6122a461287a565b73ffffffffffffffffffffffffffffffffffffffff166122c2611b6a565b73ffffffffffffffffffffffffffffffffffffffff1614612318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230f90614b9f565b60405180910390fd5b80600c908051906020019061232e929190613ceb565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6123ce61287a565b73ffffffffffffffffffffffffffffffffffffffff166123ec611b6a565b73ffffffffffffffffffffffffffffffffffffffff1614612442576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243990614b9f565b60405180910390fd5b60005b8282905081101561257957600073ffffffffffffffffffffffffffffffffffffffff1683838381811061247b5761247a6151e1565b5b90506020020160208101906124909190613f42565b73ffffffffffffffffffffffffffffffffffffffff1614156124e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124de90614c5f565b60405180910390fd5b600160186000858585818110612500576124ff6151e1565b5b90506020020160208101906125159190613f42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080612571906150ab565b915050612445565b505050565b61258661287a565b73ffffffffffffffffffffffffffffffffffffffff166125a4611b6a565b73ffffffffffffffffffffffffffffffffffffffff16146125fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f190614b9f565b60405180910390fd5b80600d9080519060200190612610929190613ceb565b5050565b61261c61287a565b73ffffffffffffffffffffffffffffffffffffffff1661263a611b6a565b73ffffffffffffffffffffffffffffffffffffffff1614612690576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268790614b9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f7906149df565b60405180910390fd5b61270981612ce1565b50565b600e5481565b61271a61287a565b73ffffffffffffffffffffffffffffffffffffffff16612738611b6a565b73ffffffffffffffffffffffffffffffffffffffff161461278e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278590614b9f565b60405180910390fd5b80600f8190555050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061286357507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80612873575061287282613471565b5b9050919050565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661296183611860565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006129b282612882565b6129f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e890614a7f565b60405180910390fd5b60006129fc83611860565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612a6b57508373ffffffffffffffffffffffffffffffffffffffff16612a5384610de1565b73ffffffffffffffffffffffffffffffffffffffff16145b80612a7c5750612a7b8185612332565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16612aa582611860565b73ffffffffffffffffffffffffffffffffffffffff1614612afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af290614bdf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612b6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6290614a3f565b60405180910390fd5b612b768383836134db565b612b816000826128ee565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612bd19190614f5e565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c289190614e7d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60145481601554612db89190614e7d565b1115612df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612df090614a9f565b60405180910390fd5b612e023361113c565b612e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3890614cff565b60405180910390fd5b6000601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506013548282612e949190614e7d565b1115612ed5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ecc90614a1f565b60405180910390fd5b81600e54612ee39190614f04565b341015612f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f1c90614c7f565b60405180910390fd5b612f2e82613019565b8160156000828254612f409190614e7d565b925050819055507f3175668c3bc41d83dd982a992932fc7512416b71850f41443845d2a4c2e3ec633383604051612f78929190614917565b60405180910390a15050565b80600f54612f929190614f04565b341015612fd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fcb90614c7f565b60405180910390fd5b612fdd81613019565b7f239739eec2dbaccb604ff1de6462a5eccd5f3148924696dd88f04d636ff582b5338260405161300e929190614917565b60405180910390a150565b600061302361100c565b90506000600190505b8281116130b057601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190613083906150ab565b919050555061309d3382846130989190614e7d565b6135ef565b80806130a8906150ab565b91505061302c565b505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311b90614a5f565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516132159190614962565b60405180910390a3505050565b61322d848484612a85565b6132398484848461360d565b613278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161326f906149bf565b60405180910390fd5b50505050565b6060600b805461328d90615048565b80601f01602080910402602001604051908101604052809291908181526020018280546132b990615048565b80156133065780601f106132db57610100808354040283529160200191613306565b820191906000526020600020905b8154815290600101906020018083116132e957829003601f168201915b5050505050905090565b60606000821415613358576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061346c565b600082905060005b6000821461338a578080613373906150ab565b915050600a826133839190614ed3565b9150613360565b60008167ffffffffffffffff8111156133a6576133a5615210565b5b6040519080825280601f01601f1916602001820160405280156133d85781602001600182028036833780820191505090505b5090505b60008514613465576001826133f19190614f5e565b9150600a8561340091906150f4565b603061340c9190614e7d565b60f81b818381518110613422576134216151e1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561345e9190614ed3565b94506133dc565b8093505050505b919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6134e68383836137a4565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561352957613524816137a9565b613568565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146135675761356683826137f2565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156135ab576135a68161395f565b6135ea565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146135e9576135e88282613a30565b5b5b505050565b613609828260405180602001604052806000815250613aaf565b5050565b600061362e8473ffffffffffffffffffffffffffffffffffffffff16613b0a565b15613797578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261365761287a565b8786866040518563ffffffff1660e01b815260040161367994939291906148cb565b602060405180830381600087803b15801561369357600080fd5b505af19250505080156136c457506040513d601f19601f820116820180604052508101906136c191906141ac565b60015b613747573d80600081146136f4576040519150601f19603f3d011682016040523d82523d6000602084013e6136f9565b606091505b5060008151141561373f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613736906149bf565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061379c565b600190505b949350505050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b600060016137ff84611918565b6138099190614f5e565b90506000600760008481526020019081526020016000205490508181146138ee576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b600060016008805490506139739190614f5e565b90506000600960008481526020019081526020016000205490506000600883815481106139a3576139a26151e1565b5b9060005260206000200154905080600883815481106139c5576139c46151e1565b5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480613a1457613a136151b2565b5b6001900381819060005260206000200160009055905550505050565b6000613a3b83611918565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b613ab98383613b1d565b613ac6600084848461360d565b613b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613afc906149bf565b60405180910390fd5b505050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613b8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b8490614b3f565b60405180910390fd5b613b9681612882565b15613bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bcd906149ff565b60405180910390fd5b613be2600083836134db565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613c329190614e7d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b828054613cf790615048565b90600052602060002090601f016020900481019282613d195760008555613d60565b82601f10613d3257805160ff1916838001178555613d60565b82800160010185558215613d60579182015b82811115613d5f578251825591602001919060010190613d44565b5b509050613d6d9190613d71565b5090565b5b80821115613d8a576000816000905550600101613d72565b5090565b6000613da1613d9c84614d7f565b614d5a565b905082815260208101848484011115613dbd57613dbc61524e565b5b613dc8848285615006565b509392505050565b6000613de3613dde84614db0565b614d5a565b905082815260208101848484011115613dff57613dfe61524e565b5b613e0a848285615006565b509392505050565b600081359050613e2181615950565b92915050565b60008083601f840112613e3d57613e3c615244565b5b8235905067ffffffffffffffff811115613e5a57613e5961523f565b5b602083019150836020820283011115613e7657613e75615249565b5b9250929050565b600081359050613e8c81615967565b92915050565b600081359050613ea18161597e565b92915050565b600081519050613eb68161597e565b92915050565b600082601f830112613ed157613ed0615244565b5b8135613ee1848260208601613d8e565b91505092915050565b600082601f830112613eff57613efe615244565b5b8135613f0f848260208601613dd0565b91505092915050565b600081359050613f2781615995565b92915050565b600081519050613f3c81615995565b92915050565b600060208284031215613f5857613f57615258565b5b6000613f6684828501613e12565b91505092915050565b60008060408385031215613f8657613f85615258565b5b6000613f9485828601613e12565b9250506020613fa585828601613e12565b9150509250929050565b600080600060608486031215613fc857613fc7615258565b5b6000613fd686828701613e12565b9350506020613fe786828701613e12565b9250506040613ff886828701613f18565b9150509250925092565b6000806000806080858703121561401c5761401b615258565b5b600061402a87828801613e12565b945050602061403b87828801613e12565b935050604061404c87828801613f18565b925050606085013567ffffffffffffffff81111561406d5761406c615253565b5b61407987828801613ebc565b91505092959194509250565b6000806040838503121561409c5761409b615258565b5b60006140aa85828601613e12565b92505060206140bb85828601613e7d565b9150509250929050565b600080604083850312156140dc576140db615258565b5b60006140ea85828601613e12565b92505060206140fb85828601613f18565b9150509250929050565b6000806020838503121561411c5761411b615258565b5b600083013567ffffffffffffffff81111561413a57614139615253565b5b61414685828601613e27565b92509250509250929050565b60006020828403121561416857614167615258565b5b600061417684828501613e7d565b91505092915050565b60006020828403121561419557614194615258565b5b60006141a384828501613e92565b91505092915050565b6000602082840312156141c2576141c1615258565b5b60006141d084828501613ea7565b91505092915050565b6000602082840312156141ef576141ee615258565b5b600082013567ffffffffffffffff81111561420d5761420c615253565b5b61421984828501613eea565b91505092915050565b60006020828403121561423857614237615258565b5b600061424684828501613f18565b91505092915050565b60006020828403121561426557614264615258565b5b600061427384828501613f2d565b91505092915050565b6000614288838361484c565b60208301905092915050565b61429d81614f92565b82525050565b60006142ae82614e06565b6142b88185614e34565b93506142c383614de1565b8060005b838110156142f45781516142db888261427c565b97506142e683614e27565b9250506001810190506142c7565b5085935050505092915050565b61430a81614fa4565b82525050565b600061431b82614e11565b6143258185614e45565b9350614335818560208601615015565b61433e8161525d565b840191505092915050565b600061435482614e1c565b61435e8185614e61565b935061436e818560208601615015565b6143778161525d565b840191505092915050565b600061438d82614e1c565b6143978185614e72565b93506143a7818560208601615015565b80840191505092915050565b600081546143c081615048565b6143ca8186614e72565b945060018216600081146143e557600181146143f657614429565b60ff19831686528186019350614429565b6143ff85614df1565b60005b8381101561442157815481890152600182019150602081019050614402565b838801955050505b50505092915050565b600061443f602b83614e61565b915061444a8261526e565b604082019050919050565b6000614462603283614e61565b915061446d826152bd565b604082019050919050565b6000614485602683614e61565b91506144908261530c565b604082019050919050565b60006144a8601c83614e61565b91506144b38261535b565b602082019050919050565b60006144cb601c83614e61565b91506144d682615384565b602082019050919050565b60006144ee602483614e61565b91506144f9826153ad565b604082019050919050565b6000614511601983614e61565b915061451c826153fc565b602082019050919050565b6000614534602c83614e61565b915061453f82615425565b604082019050919050565b6000614557601d83614e61565b915061456282615474565b602082019050919050565b600061457a603883614e61565b91506145858261549d565b604082019050919050565b600061459d602a83614e61565b91506145a8826154ec565b604082019050919050565b60006145c0602983614e61565b91506145cb8261553b565b604082019050919050565b60006145e3601683614e61565b91506145ee8261558a565b602082019050919050565b6000614606602083614e61565b9150614611826155b3565b602082019050919050565b6000614629602c83614e61565b9150614634826155dc565b604082019050919050565b600061464c601383614e61565b91506146578261562b565b602082019050919050565b600061466f602083614e61565b915061467a82615654565b602082019050919050565b6000614692601683614e61565b915061469d8261567d565b602082019050919050565b60006146b5602983614e61565b91506146c0826156a6565b604082019050919050565b60006146d8602f83614e61565b91506146e3826156f5565b604082019050919050565b60006146fb602183614e61565b915061470682615744565b604082019050919050565b600061471e601783614e61565b915061472982615793565b602082019050919050565b6000614741600083614e56565b915061474c826157bc565b600082019050919050565b6000614764601783614e61565b915061476f826157bf565b602082019050919050565b6000614787601283614e61565b9150614792826157e8565b602082019050919050565b60006147aa603183614e61565b91506147b582615811565b604082019050919050565b60006147cd602483614e61565b91506147d882615860565b604082019050919050565b60006147f0602c83614e61565b91506147fb826158af565b604082019050919050565b6000614813601783614e61565b915061481e826158fe565b602082019050919050565b6000614836601b83614e61565b915061484182615927565b602082019050919050565b61485581614ffc565b82525050565b61486481614ffc565b82525050565b60006148768286614382565b91506148828285614382565b915061488e82846143b3565b9150819050949350505050565b60006148a682614734565b9150819050919050565b60006020820190506148c56000830184614294565b92915050565b60006080820190506148e06000830187614294565b6148ed6020830186614294565b6148fa604083018561485b565b818103606083015261490c8184614310565b905095945050505050565b600060408201905061492c6000830185614294565b614939602083018461485b565b9392505050565b6000602082019050818103600083015261495a81846142a3565b905092915050565b60006020820190506149776000830184614301565b92915050565b600060208201905081810360008301526149978184614349565b905092915050565b600060208201905081810360008301526149b881614432565b9050919050565b600060208201905081810360008301526149d881614455565b9050919050565b600060208201905081810360008301526149f881614478565b9050919050565b60006020820190508181036000830152614a188161449b565b9050919050565b60006020820190508181036000830152614a38816144be565b9050919050565b60006020820190508181036000830152614a58816144e1565b9050919050565b60006020820190508181036000830152614a7881614504565b9050919050565b60006020820190508181036000830152614a9881614527565b9050919050565b60006020820190508181036000830152614ab88161454a565b9050919050565b60006020820190508181036000830152614ad88161456d565b9050919050565b60006020820190508181036000830152614af881614590565b9050919050565b60006020820190508181036000830152614b18816145b3565b9050919050565b60006020820190508181036000830152614b38816145d6565b9050919050565b60006020820190508181036000830152614b58816145f9565b9050919050565b60006020820190508181036000830152614b788161461c565b9050919050565b60006020820190508181036000830152614b988161463f565b9050919050565b60006020820190508181036000830152614bb881614662565b9050919050565b60006020820190508181036000830152614bd881614685565b9050919050565b60006020820190508181036000830152614bf8816146a8565b9050919050565b60006020820190508181036000830152614c18816146cb565b9050919050565b60006020820190508181036000830152614c38816146ee565b9050919050565b60006020820190508181036000830152614c5881614711565b9050919050565b60006020820190508181036000830152614c7881614757565b9050919050565b60006020820190508181036000830152614c988161477a565b9050919050565b60006020820190508181036000830152614cb88161479d565b9050919050565b60006020820190508181036000830152614cd8816147c0565b9050919050565b60006020820190508181036000830152614cf8816147e3565b9050919050565b60006020820190508181036000830152614d1881614806565b9050919050565b60006020820190508181036000830152614d3881614829565b9050919050565b6000602082019050614d54600083018461485b565b92915050565b6000614d64614d75565b9050614d70828261507a565b919050565b6000604051905090565b600067ffffffffffffffff821115614d9a57614d99615210565b5b614da38261525d565b9050602081019050919050565b600067ffffffffffffffff821115614dcb57614dca615210565b5b614dd48261525d565b9050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000614e8882614ffc565b9150614e9383614ffc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614ec857614ec7615125565b5b828201905092915050565b6000614ede82614ffc565b9150614ee983614ffc565b925082614ef957614ef8615154565b5b828204905092915050565b6000614f0f82614ffc565b9150614f1a83614ffc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614f5357614f52615125565b5b828202905092915050565b6000614f6982614ffc565b9150614f7483614ffc565b925082821015614f8757614f86615125565b5b828203905092915050565b6000614f9d82614fdc565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015615033578082015181840152602081019050615018565b83811115615042576000848401525b50505050565b6000600282049050600182168061506057607f821691505b6020821081141561507457615073615183565b5b50919050565b6150838261525d565b810181811067ffffffffffffffff821117156150a2576150a1615210565b5b80604052505050565b60006150b682614ffc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156150e9576150e8615125565b5b600182019050919050565b60006150ff82614ffc565b915061510a83614ffc565b92508261511a57615119615154565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f6d6178204e465420706572206164647265737320657863656564656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f57686974656c697374206d696e74206c696d6974206578636565646564000000600082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f6d6178204e4654206c696d697420657863656564656400000000000000000000600082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f496e737566666963656e742062616c616e636500000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f74686520636f6e74726163742069732070617573656400000000000000000000600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f6e6f7420656e6f756768204e46547320746f206275726e000000000000000000600082015250565b50565b7f43616e6e6f7420616464206e756c6c2061646472657373000000000000000000600082015250565b7f696e73756666696369656e742066756e64730000000000000000000000000000600082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f6d6178206d696e7420616d6f756e74207065722061646472657373206578636560008201527f6564656400000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b7f75736572206973206e6f742077686974656c6973746564000000000000000000600082015250565b7f6e65656420746f206d696e74206174206c656173742031204e46540000000000600082015250565b61595981614f92565b811461596457600080fd5b50565b61597081614fa4565b811461597b57600080fd5b50565b61598781614fb0565b811461599257600080fd5b50565b61599e81614ffc565b81146159a957600080fd5b5056fea264697066735822122064840194f226668b3895f4480b614566fde2e7a78f0c4bd44c86924b9a5d4d7d64736f6c6343000807003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000180000000000000000000000000743d270ed907b0ce4013605be667f0117b637c9e000000000000000000000000000000000000000000000000000000000000000b426f726564446567656e73000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000242440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d584b654b5861736e5843596656396d3755614e79484138596547456e69416a384a46534668537634383538732f000000000000000000000000000000000000000000000000000000000000000000000000000000000046697066733a2f2f516d59465879385950646d6a5a53547361394442707261576156786274384851727456346b4a796f324c555462672f68696464656e5f6d6462642e6a736f6e0000000000000000000000000000000000000000000000000000