60806040526a52b7d2dcc80cd2e40000006007556000601460006101000a81548160ff0219169083151502179055503480156200003b57600080fd5b5060405162006bcc38038062006bcc833981810160405281019062000061919062000ecc565b6040518060400160405280600a81526020017f43617368204d6f6e6779000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f434d4f4e00000000000000000000000000000000000000000000000000000000815250620000ed620000e162000a6460201b60201c565b62000a6c60201b60201c565b60018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001806000736207c2affe52e5d4fc1ff189e9882982a9d7b92d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001806000733684c9830260c2b3d669b87d635d3a39cdfecf8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600590816200022b919062001178565b5080600690816200023d919062001178565b50505080601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c8600d819055506032600e81905550733684c9830260c2b3d669b87d635d3a39cdfecf89600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612710601081905550600160118190555062000357620186a060075462000b3060201b620034dd1790919060201c565b6012819055506200037a602860075462000b3060201b620034dd1790919060201c565b6015819055506001601b60006101000a81548160ff021916908315150217905550620003ba620186a060075462000b3060201b620034dd1790919060201c565b601c819055506001601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160176000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016017600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601760008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160176000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160176000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160166000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620007bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007e5919062000ecc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630731ce270557c1f68cfb577b856766310bf8b47fd9c6040518363ffffffff1660e01b81526004016200083592919062001270565b6020604051808303816000875af115801562000855573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200087b919062000ecc565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620008cf3360075462000b4860201b60201c565b600754600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200092562000c7e60201b60201c565b6200096b737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000cc460201b60201c565b50620009c0600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000cc460201b60201c565b5062000a0830737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000cf760201b60201c565b62000a5d30600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000cf760201b60201c565b506200139c565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000818362000b409190620012fb565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000b8257600080fd5b62000b966000838362000e5860201b60201c565b806004600082825462000baa919062001333565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000c5e91906200137f565b60405180910390a362000c7a6000838362000e5d60201b60201c565b5050565b601860009054906101000a900460ff161562000c9957600080fd5b6001601860006101000a81548160ff0219169083151502179055504360198190555042601a81905550565b60008062000cd762000a6460201b60201c565b905062000cec81858562000cf760201b60201c565b600191505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000d3157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000d6b57600080fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000e4b91906200137f565b60405180910390a3505050565b505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e948262000e67565b9050919050565b62000ea68162000e87565b811462000eb257600080fd5b50565b60008151905062000ec68162000e9b565b92915050565b60006020828403121562000ee55762000ee462000e62565b5b600062000ef58482850162000eb5565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000f8057607f821691505b60208210810362000f965762000f9562000f38565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620010007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000fc1565b6200100c868362000fc1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062001059620010536200104d8462001024565b6200102e565b62001024565b9050919050565b6000819050919050565b620010758362001038565b6200108d620010848262001060565b84845462000fce565b825550505050565b600090565b620010a462001095565b620010b18184846200106a565b505050565b5b81811015620010d957620010cd6000826200109a565b600181019050620010b7565b5050565b601f8211156200112857620010f28162000f9c565b620010fd8462000fb1565b810160208510156200110d578190505b620011256200111c8562000fb1565b830182620010b6565b50505b505050565b600082821c905092915050565b60006200114d600019846008026200112d565b1980831691505092915050565b60006200116883836200113a565b9150826002028217905092915050565b620011838262000efe565b67ffffffffffffffff8111156200119f576200119e62000f09565b5b620011ab825462000f67565b620011b8828285620010dd565b600060209050601f831160018114620011f05760008415620011db578287015190505b620011e785826200115a565b86555062001257565b601f198416620012008662000f9c565b60005b828110156200122a5784890151825560018201915060208501945060208101905062001203565b868310156200124a578489015162001246601f8916826200113a565b8355505b6001600288020188555050505b505050505050565b6200126a8162000e87565b82525050565b60006040820190506200128760008301856200125f565b6200129660208301846200125f565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620013088262001024565b9150620013158362001024565b9250826200132857620013276200129d565b5b828204905092915050565b6000620013408262001024565b91506200134d8362001024565b9250828201905080821115620013685762001367620012cc565b5b92915050565b620013798162001024565b82525050565b60006020820190506200139660008301846200136e565b92915050565b61582080620013ac6000396000f3fe6080604052600436106104825760003560e01c80638091f3bf11610255578063bf8ebd8511610144578063e884f260116100c1578063f8b45b0511610085578063f8b45b0514611228578063f9bcaa2714611253578063fd5581f11461127e578063fe02721e146112a9578063fe9fbb80146112d4578063ffbb72e014611311576104fc565b8063e884f2601461116b578063ed89394014611182578063f0b37c04146111ab578063f2fde38b146111d4578063f887ea40146111fd576104fc565b8063d7d475b911610108578063d7d475b914611083578063d7e96c05146110af578063dd62ed3e146110da578063df20fd4914611117578063dfa19e2314611140576104fc565b8063bf8ebd8514610f9a578063c6d2577d14610fd7578063c876d0b914611002578063cba888721461102d578063d5113dc914611058576104fc565b8063a457c2d7116101d2578063b4f410b011610196578063b4f410b014610eb5578063b6a5d7de14610ee0578063b915c5ea14610f09578063bb72295e14610f34578063bf362a2c14610f71576104fc565b8063a457c2d714610dba578063a8aa1b3114610df7578063a8b098c014610e22578063a9059cbb14610e4d578063b3c5630f14610e8a576104fc565b80638da5cb5b116102195780638da5cb5b14610ce55780638de890bd14610d1057806395d89b4114610d3b5780639d4f3d1a14610d665780639e6427c414610d91576104fc565b80638091f3bf14610c22578063809ad84714610c4d5780638377017c14610c78578063879466f914610ca35780638a66e30014610cba576104fc565b806339cecc851161037157806358fa63ca116102ee57806366bb8ea7116102b257806366bb8ea714610b5157806370a0823114610b7a578063715018a614610bb75780637846247414610bce5780637bdd04f714610c0b576104fc565b806358fa63ca14610a7e5780635998f5c914610aa95780635f84fcd214610ad257806360535b4314610afb57806361fde5ad14610b26576104fc565b80634530853811610335578063453085381461099757806346a3408b146109c25780634e599551146109d957806350d4530a14610a04578063571ac8b014610a41576104fc565b806339cecc85146108b057806339f84b66146108db5780633e7175c5146109065780633fe4b2511461092f5780634255e8081461096c576104fc565b806318160ddd116103ff578063313ce567116103c3578063313ce567146107c75780633268cc56146107f2578063333d8cea1461081d57806338b3b5b5146108485780633950935114610873576104fc565b806318160ddd146106f45780631ca4a5d91461071f57806323b872dd14610736578063241d5f13146107735780632b112e491461079c576104fc565b8063095ea7b311610446578063095ea7b3146105f95780630b163e79146106365780630b8a6e2f146106615780630fae39b31461069e57806310389024146106c9576104fc565b806301243938146104fe57806303fd2a451461053b5780630445b66714610566578063054949231461059157806306fdde03146105ce576104fc565b366104fc5760004711156104fa57600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156104f8573d6000803e3d6000fd5b505b005b005b34801561050a57600080fd5b5061052560048036038101906105209190614adf565b61133a565b6040516105329190614b25565b60405180910390f35b34801561054757600080fd5b506105506113aa565b60405161055d9190614b4f565b60405180910390f35b34801561057257600080fd5b5061057b6113b0565b6040516105889190614b25565b60405180910390f35b34801561059d57600080fd5b506105b860048036038101906105b39190614b96565b6113b6565b6040516105c59190614b25565b60405180910390f35b3480156105da57600080fd5b506105e36113f9565b6040516105f09190614c79565b60405180910390f35b34801561060557600080fd5b50610620600480360381019061061b9190614c9b565b61148b565b60405161062d9190614cf6565b60405180910390f35b34801561064257600080fd5b5061064b6114ae565b6040516106589190614dcf565b60405180910390f35b34801561066d57600080fd5b5061068860048036038101906106839190614df1565b61154f565b6040516106959190614b4f565b60405180910390f35b3480156106aa57600080fd5b506106b361159d565b6040516106c09190614b25565b60405180910390f35b3480156106d557600080fd5b506106de6115a3565b6040516106eb9190614b25565b60405180910390f35b34801561070057600080fd5b5061070961163b565b6040516107169190614b25565b60405180910390f35b34801561072b57600080fd5b50610734611645565b005b34801561074257600080fd5b5061075d60048036038101906107589190614e31565b611c02565b60405161076a9190614cf6565b60405180910390f35b34801561077f57600080fd5b5061079a60048036038101906107959190614b96565b611dcb565b005b3480156107a857600080fd5b506107b1611e0f565b6040516107be9190614b25565b60405180910390f35b3480156107d357600080fd5b506107dc611e50565b6040516107e99190614ea0565b60405180910390f35b3480156107fe57600080fd5b50610807611e59565b6040516108149190614b4f565b60405180910390f35b34801561082957600080fd5b50610832611e71565b60405161083f9190614b25565b60405180910390f35b34801561085457600080fd5b5061085d611f09565b60405161086a9190614b4f565b60405180910390f35b34801561087f57600080fd5b5061089a60048036038101906108959190614c9b565b611fa1565b6040516108a79190614cf6565b60405180910390f35b3480156108bc57600080fd5b506108c5611fd8565b6040516108d29190614b25565b60405180910390f35b3480156108e757600080fd5b506108f0612070565b6040516108fd9190614b25565b60405180910390f35b34801561091257600080fd5b5061092d60048036038101906109289190614ebb565b612076565b005b34801561093b57600080fd5b5061095660048036038101906109519190614ee8565b6120ae565b6040516109639190614b25565b60405180910390f35b34801561097857600080fd5b506109816120d3565b60405161098e9190614b4f565b60405180910390f35b3480156109a357600080fd5b506109ac6120f9565b6040516109b99190614b25565b60405180910390f35b3480156109ce57600080fd5b506109d7612103565b005b3480156109e557600080fd5b506109ee61218f565b6040516109fb9190614dcf565b60405180910390f35b348015610a1057600080fd5b50610a2b6004803603810190610a269190614ebb565b61222c565b604051610a389190614b4f565b60405180910390f35b348015610a4d57600080fd5b50610a686004803603810190610a639190614adf565b6122d1565b604051610a759190614cf6565b60405180910390f35b348015610a8a57600080fd5b50610a93612304565b604051610aa09190614b4f565b60405180910390f35b348015610ab557600080fd5b50610ad06004803603810190610acb9190614adf565b612309565b005b348015610ade57600080fd5b50610af96004803603810190610af49190614f54565b6123b9565b005b348015610b0757600080fd5b50610b1061241c565b604051610b1d9190614b25565b60405180910390f35b348015610b3257600080fd5b50610b3b612422565b604051610b489190614b25565b60405180910390f35b348015610b5d57600080fd5b50610b786004803603810190610b739190614ebb565b6124ba565b005b348015610b8657600080fd5b50610ba16004803603810190610b9c9190614adf565b612501565b604051610bae9190614b25565b60405180910390f35b348015610bc357600080fd5b50610bcc61254a565b005b348015610bda57600080fd5b50610bf56004803603810190610bf09190614ebb565b61255e565b604051610c029190614b25565b60405180910390f35b348015610c1757600080fd5b50610c20612603565b005b348015610c2e57600080fd5b50610c37612632565b604051610c449190614cf6565b60405180910390f35b348015610c5957600080fd5b50610c62612645565b604051610c6f9190614b25565b60405180910390f35b348015610c8457600080fd5b50610c8d6126dd565b604051610c9a9190615052565b60405180910390f35b348015610caf57600080fd5b50610cb861277a565b005b348015610cc657600080fd5b50610ccf612839565b604051610cdc9190614b25565b60405180910390f35b348015610cf157600080fd5b50610cfa6128d1565b604051610d079190614b4f565b60405180910390f35b348015610d1c57600080fd5b50610d256128fa565b604051610d329190614b25565b60405180910390f35b348015610d4757600080fd5b50610d50612900565b604051610d5d9190614c79565b60405180910390f35b348015610d7257600080fd5b50610d7b612992565b604051610d889190614b25565b60405180910390f35b348015610d9d57600080fd5b50610db86004803603810190610db39190614ebb565b612998565b005b348015610dc657600080fd5b50610de16004803603810190610ddc9190614c9b565b6129ce565b604051610dee9190614cf6565b60405180910390f35b348015610e0357600080fd5b50610e0c612a0f565b604051610e199190614b4f565b60405180910390f35b348015610e2e57600080fd5b50610e37612a35565b604051610e449190614cf6565b60405180910390f35b348015610e5957600080fd5b50610e746004803603810190610e6f9190614c9b565b612aa7565b604051610e819190614cf6565b60405180910390f35b348015610e9657600080fd5b50610e9f612abc565b604051610eac9190614cf6565b60405180910390f35b348015610ec157600080fd5b50610eca612acf565b604051610ed79190615052565b60405180910390f35b348015610eec57600080fd5b50610f076004803603810190610f029190614adf565b612b6c565b005b348015610f1557600080fd5b50610f1e612bce565b604051610f2b9190614b25565b60405180910390f35b348015610f4057600080fd5b50610f5b6004803603810190610f569190614ebb565b612bd4565b604051610f689190614b25565b60405180910390f35b348015610f7d57600080fd5b50610f986004803603810190610f939190614f54565b612c79565b005b348015610fa657600080fd5b50610fc16004803603810190610fbc9190614adf565b612cdc565b604051610fce9190614b25565b60405180910390f35b348015610fe357600080fd5b50610fec612d81565b604051610ff99190614b25565b60405180910390f35b34801561100e57600080fd5b50611017612d87565b6040516110249190614cf6565b60405180910390f35b34801561103957600080fd5b50611042612d9a565b60405161104f9190614b25565b60405180910390f35b34801561106457600080fd5b5061106d612e32565b60405161107a9190614b25565b60405180910390f35b34801561108f57600080fd5b50611098612eca565b6040516110a6929190615074565b60405180910390f35b3480156110bb57600080fd5b506110c4612f65565b6040516110d19190614b4f565b60405180910390f35b3480156110e657600080fd5b5061110160048036038101906110fc919061509d565b612f8b565b60405161110e9190614b25565b60405180910390f35b34801561112357600080fd5b5061113e600480360381019061113991906150dd565b613012565b005b34801561114c57600080fd5b50611155613070565b6040516111629190614b25565b60405180910390f35b34801561117757600080fd5b50611180613108565b005b34801561118e57600080fd5b506111a960048036038101906111a49190614adf565b613137565b005b3480156111b757600080fd5b506111d260048036038101906111cd9190614adf565b613242565b005b3480156111e057600080fd5b506111fb60048036038101906111f69190614adf565b6132a5565b005b34801561120957600080fd5b50611212613349565b60405161121f919061517c565b60405180910390f35b34801561123457600080fd5b5061123d61336f565b60405161124a9190614b25565b60405180910390f35b34801561125f57600080fd5b50611268613375565b6040516112759190614b25565b60405180910390f35b34801561128a57600080fd5b5061129361337b565b6040516112a09190614b4f565b60405180910390f35b3480156112b557600080fd5b506112be6133a5565b6040516112cb9190614b4f565b60405180910390f35b3480156112e057600080fd5b506112fb60048036038101906112f69190614adf565b6133bd565b6040516113089190614cf6565b60405180910390f35b34801561131d57600080fd5b5061133860048036038101906113339190614adf565b613413565b005b60006113a3601254600b6000600a54815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134dd90919063ffffffff16565b9050919050565b61dead81565b601c5481565b60006113f0826113e260646113d487896134f390919063ffffffff16565b61350990919063ffffffff16565b6134dd90919063ffffffff16565b90509392505050565b606060058054611408906151c6565b80601f0160208091040260200160405190810160405280929190818152602001828054611434906151c6565b80156114815780601f1061145657610100808354040283529160200191611481565b820191906000526020600020905b81548152906001019060200180831161146457829003601f168201915b5050505050905090565b60008061149661351f565b90506114a3818585613527565b600191505092915050565b6060600c6000600a54815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561154557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116114fb575b5050505050905090565b600c602052816000526040600020818154811061156b57600080fd5b906000526020600020016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663103890246040518163ffffffff1660e01b8152600401602060405180830381865afa158015611612573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611636919061520c565b905090565b6000600454905090565b61164e336133bd565b61165757600080fd5b60005b6001600a546116699190615268565b8111611bf7576000600c60008381526020019081526020016000208054905090505b6000811115611be35760006001826116a3919061529c565b9050600a5483036118b557600c6000808152602001908152602001600020600c600085815260200190815260200160002082815481106116e6576116e56152d0565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60008481526020019081526020016000206000600c600086815260200190815260200160002083815481106117ab576117aa6152d0565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600b60008081526020019081526020016000206000600c6000878152602001908152602001600020848154811061184b5761184a6152d0565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600a546118c49190615268565b8303611ad457600c600060018152602001908152602001600020600c60008581526020019081526020016000208281548110611903576119026152d0565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60008481526020019081526020016000206000600c600086815260200190815260200160002083815481106119c8576119c76152d0565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600b6000600181526020019081526020016000206000600c6000600181526020019081526020016000208481548110611a6a57611a696152d0565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600b60008481526020019081526020016000206000600c60008681526020019081526020016000208381548110611b0e57611b0d6152d0565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009055600c6000848152602001908152602001600020805480611b9a57611b996152ff565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055508080611bdb9061532e565b91505061168b565b508080611bef90615357565b91505061165a565b506000600a81905550565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611db757611d3682600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461368490919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611dc284848461369a565b90509392505050565b611dd4336133bd565b611ddd57600080fd5b6005611dea8484846113b6565b1115611df557600080fd5b82600d8190555081600e8190555080601081905550505050565b6000611e4b611e1e6000612501565b611e3d611e2c61dead612501565b60075461368490919063ffffffff16565b61368490919063ffffffff16565b905090565b60006012905090565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663333d8cea6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ee0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f04919061520c565b905090565b6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338b3b5b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f9c91906153b4565b905090565b600080611fac61351f565b9050611fcd818585611fbe8589612f8b565b611fc89190615268565b613527565b600191505092915050565b6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166339cecc856040518163ffffffff1660e01b8152600401602060405180830381865afa158015612047573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206b919061520c565b905090565b60115481565b61207f336133bd565b61208857600080fd5b600754811115801561209b575060155481115b6120a457600080fd5b8060158190555050565b600b602052816000526040600020602052806000526040600020600091509150505481565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601154905090565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461215d57600080fd5b6001600a5461216c9190615268565b600a819055506000601e60156101000a81548160ff021916908315150217905550565b6060601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634e5995516040518163ffffffff1660e01b8152600401600060405180830381865afa1580156121fe573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906122279190615529565b905090565b6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166350d4530a836040518263ffffffff1660e01b81526004016122899190614b25565b602060405180830381865afa1580156122a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ca91906153b4565b9050919050565b60006122fd827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61148b565b9050919050565b600081565b612312336133bd565b61231b57600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461237557600080fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6123c1613c65565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e5481565b6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166361fde5ad6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b5919061520c565b905090565b6124c3336133bd565b6124cc57600080fd5b678ac7230489e8000081101580156124ee575069152d02c7e14af68000008111155b6124f757600080fd5b8060128190555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b612552613c65565b61255c6000613cad565b565b6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166378462474836040518263ffffffff1660e01b81526004016125bb9190614b25565b602060405180830381865afa1580156125d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125fc919061520c565b9050919050565b61260c336133bd565b61261557600080fd5b6000601e60156101000a81548160ff021916908315150217905550565b601860009054906101000a900460ff1681565b6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663809ad8476040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d8919061520c565b905090565b6060601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638377017c6040518163ffffffff1660e01b8152600401600060405180830381865afa15801561274c573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906127759190615635565b905090565b612782612a35565b1561283757601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e0c862896040518163ffffffff1660e01b81526004016020604051808303816000875af11580156127f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061281a919061520c565b506001601e60156101000a81548160ff0219169083151502179055505b565b6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638a66e3006040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128cc919061520c565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60195481565b60606006805461290f906151c6565b80601f016020809104026020016040519081016040528092919081815260200182805461293b906151c6565b80156129885780601f1061295d57610100808354040283529160200191612988565b820191906000526020600020905b81548152906001019060200180831161296b57829003601f168201915b5050505050905090565b600d5481565b6129a1336133bd565b6129aa57600080fd5b6000811180156129bb575060648111155b6129c457600080fd5b8060118190555050565b6000806129d961351f565b905060006129e78286612f8b565b9050838110156129f657600080fd5b612a038286868403613527565b60019250505092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080612a40612d9a565b148015612a5a5750601e60159054906101000a900460ff16155b8015612a7e57506000600c6000600a54815260200190815260200160002080549050115b8015612a9157506000612a8f6115a3565b115b15612a9f5760019050612aa4565b600090505b90565b6000612ab433848461369a565b905092915050565b601b60009054906101000a900460ff1681565b6060601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b4f410b06040518163ffffffff1660e01b8152600401600060405180830381865afa158015612b3e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190612b679190615635565b905090565b612b74613c65565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60125481565b6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb72295e836040518263ffffffff1660e01b8152600401612c319190614b25565b602060405180830381865afa158015612c4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c72919061520c565b9050919050565b612c81613c65565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bf8ebd85836040518263ffffffff1660e01b8152600401612d399190614b4f565b602060405180830381865afa158015612d56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d7a919061520c565b9050919050565b601a5481565b601460009054906101000a900460ff1681565b6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cba888726040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e2d919061520c565b905090565b6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d5113dc96040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ea1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ec5919061520c565b905090565b600080601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d7d475b96040518163ffffffff1660e01b81526004016040805180830381865afa158015612f39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f5d919061567e565b915091509091565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61301b336133bd565b61302457600080fd5b678ac7230489e800008110158015613042575061303f611e0f565b81105b61304b57600080fd5b81601b60006101000a81548160ff02191690831515021790555080601c819055505050565b6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dfa19e236040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613103919061520c565b905090565b613111336133bd565b61311a57600080fd5b6000601460006101000a81548160ff021916908315150217905550565b613140336133bd565b61314957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156131b4575061dead73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6131bd57600080fd5b80601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61324a613c65565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6132ad613c65565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036132e657600080fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061334681613cad565b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155481565b600a5481565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b731ce270557c1f68cfb577b856766310bf8b47fd9c81565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61341c336133bd565b61342557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015613490575061dead73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b61349957600080fd5b80601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081836134eb91906156ed565b905092915050565b600081836135019190615268565b905092915050565b60008183613517919061571e565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361356057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361359957600080fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516136779190614b25565b60405180910390a3505050565b60008183613692919061529c565b905092915050565b60006136a461277a565b601460009054906101000a900460ff161561383f576136c16128d1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561373c5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156137965750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561383e57436137ef601e601360003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134f390919063ffffffff16565b106137f957600080fd5b43601360003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601e60149054906101000a900460ff16156138665761385f848484613d71565b9050613c5e565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806139035750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b90506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614806139a25750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b905060006139b08787613ea8565b6139ba57846139c5565b6139c48786614099565b5b905082158015613a1f5750601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613a9757613a3a60016015546134f390919063ffffffff16565b613a8c82600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134f390919063ffffffff16565b10613a9657600080fd5b5b8115613aa857613aa7868661437d565b5b828015613ab95750613ab861469e565b5b15613ac757613ac6614775565b5b613b1985600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461368490919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613bae81600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134f390919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613c4e9190614b25565b60405180910390a3600193505050505b9392505050565b613c6d61351f565b73ffffffffffffffffffffffffffffffffffffffff16613c8b6128d1565b73ffffffffffffffffffffffffffffffffffffffff1614613cab57600080fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000613dc582600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461368490919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613e5a82600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134f390919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190509392505050565b6000601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613f4b5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1580156140915750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480613ffc5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806140465750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806140905750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b6000806140c56010546140b7600d548661350990919063ffffffff16565b6134dd90919063ffffffff16565b905061411981600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134f390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516141b99190614b25565b60405180910390a360006141ec6010546141de600e548761350990919063ffffffff16565b6134dd90919063ffffffff16565b90506142628160026000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134f390919063ffffffff16565b60026000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516143469190614b25565b60405180910390a361437381614365848761368490919063ffffffff16565b61368490919063ffffffff16565b9250505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156143e8575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6143f157600080fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061448c5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806144e05750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61469a576000601e60159054906101000a900460ff1661450257600a54614512565b6001600a546145119190615268565b5b90506000600b600083815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054036145e157600c6000828152602001908152602001600020839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61464482600b600084815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134f390919063ffffffff16565b600b600083815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b5050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561470b5750601e60149054906101000a900460ff16155b80156147235750601b60009054906101000a900460ff165b80156147705750601c54600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601e60146101000a81548160ff0219169083151502179055506000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600267ffffffffffffffff8111156147f1576147f06153e6565b5b60405190808252806020026020018201604052801561481f5781602001602082028036833780820191505090505b5090503081600081518110614837576148366152d0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050731ce270557c1f68cfb577b856766310bf8b47fd9c8160018151811061489a576148996152d0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f84846040518363ffffffff1660e01b8152600401614933929190615760565b600060405180830381865afa158015614950573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906149799190615635565b60018151811061498c5761498b6152d0565b5b60200260200101519050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795848385601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401614a1b959493929190615790565b600060405180830381600087803b158015614a3557600080fd5b505af1158015614a49573d6000803e3d6000fd5b505050505050506000601e60146101000a81548160ff021916908315150217905550565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000614aac82614a81565b9050919050565b614abc81614aa1565b8114614ac757600080fd5b50565b600081359050614ad981614ab3565b92915050565b600060208284031215614af557614af4614a77565b5b6000614b0384828501614aca565b91505092915050565b6000819050919050565b614b1f81614b0c565b82525050565b6000602082019050614b3a6000830184614b16565b92915050565b614b4981614aa1565b82525050565b6000602082019050614b646000830184614b40565b92915050565b614b7381614b0c565b8114614b7e57600080fd5b50565b600081359050614b9081614b6a565b92915050565b600080600060608486031215614baf57614bae614a77565b5b6000614bbd86828701614b81565b9350506020614bce86828701614b81565b9250506040614bdf86828701614b81565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015614c23578082015181840152602081019050614c08565b60008484015250505050565b6000601f19601f8301169050919050565b6000614c4b82614be9565b614c558185614bf4565b9350614c65818560208601614c05565b614c6e81614c2f565b840191505092915050565b60006020820190508181036000830152614c938184614c40565b905092915050565b60008060408385031215614cb257614cb1614a77565b5b6000614cc085828601614aca565b9250506020614cd185828601614b81565b9150509250929050565b60008115159050919050565b614cf081614cdb565b82525050565b6000602082019050614d0b6000830184614ce7565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614d4681614aa1565b82525050565b6000614d588383614d3d565b60208301905092915050565b6000602082019050919050565b6000614d7c82614d11565b614d868185614d1c565b9350614d9183614d2d565b8060005b83811015614dc2578151614da98882614d4c565b9750614db483614d64565b925050600181019050614d95565b5085935050505092915050565b60006020820190508181036000830152614de98184614d71565b905092915050565b60008060408385031215614e0857614e07614a77565b5b6000614e1685828601614b81565b9250506020614e2785828601614b81565b9150509250929050565b600080600060608486031215614e4a57614e49614a77565b5b6000614e5886828701614aca565b9350506020614e6986828701614aca565b9250506040614e7a86828701614b81565b9150509250925092565b600060ff82169050919050565b614e9a81614e84565b82525050565b6000602082019050614eb56000830184614e91565b92915050565b600060208284031215614ed157614ed0614a77565b5b6000614edf84828501614b81565b91505092915050565b60008060408385031215614eff57614efe614a77565b5b6000614f0d85828601614b81565b9250506020614f1e85828601614aca565b9150509250929050565b614f3181614cdb565b8114614f3c57600080fd5b50565b600081359050614f4e81614f28565b92915050565b60008060408385031215614f6b57614f6a614a77565b5b6000614f7985828601614aca565b9250506020614f8a85828601614f3f565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614fc981614b0c565b82525050565b6000614fdb8383614fc0565b60208301905092915050565b6000602082019050919050565b6000614fff82614f94565b6150098185614f9f565b935061501483614fb0565b8060005b8381101561504557815161502c8882614fcf565b975061503783614fe7565b925050600181019050615018565b5085935050505092915050565b6000602082019050818103600083015261506c8184614ff4565b905092915050565b60006040820190506150896000830185614b40565b6150966020830184614b16565b9392505050565b600080604083850312156150b4576150b3614a77565b5b60006150c285828601614aca565b92505060206150d385828601614aca565b9150509250929050565b600080604083850312156150f4576150f3614a77565b5b600061510285828601614f3f565b925050602061511385828601614b81565b9150509250929050565b6000819050919050565b600061514261513d61513884614a81565b61511d565b614a81565b9050919050565b600061515482615127565b9050919050565b600061516682615149565b9050919050565b6151768161515b565b82525050565b6000602082019050615191600083018461516d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806151de57607f821691505b6020821081036151f1576151f0615197565b5b50919050565b60008151905061520681614b6a565b92915050565b60006020828403121561522257615221614a77565b5b6000615230848285016151f7565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061527382614b0c565b915061527e83614b0c565b925082820190508082111561529657615295615239565b5b92915050565b60006152a782614b0c565b91506152b283614b0c565b92508282039050818111156152ca576152c9615239565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600061533982614b0c565b91506000820361534c5761534b615239565b5b600182039050919050565b600061536282614b0c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361539457615393615239565b5b600182019050919050565b6000815190506153ae81614ab3565b92915050565b6000602082840312156153ca576153c9614a77565b5b60006153d88482850161539f565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61541e82614c2f565b810181811067ffffffffffffffff8211171561543d5761543c6153e6565b5b80604052505050565b6000615450614a6d565b905061545c8282615415565b919050565b600067ffffffffffffffff82111561547c5761547b6153e6565b5b602082029050602081019050919050565b600080fd5b60006154a56154a084615461565b615446565b905080838252602082019050602084028301858111156154c8576154c761548d565b5b835b818110156154f157806154dd888261539f565b8452602084019350506020810190506154ca565b5050509392505050565b600082601f8301126155105761550f6153e1565b5b8151615520848260208601615492565b91505092915050565b60006020828403121561553f5761553e614a77565b5b600082015167ffffffffffffffff81111561555d5761555c614a7c565b5b615569848285016154fb565b91505092915050565b600067ffffffffffffffff82111561558d5761558c6153e6565b5b602082029050602081019050919050565b60006155b16155ac84615572565b615446565b905080838252602082019050602084028301858111156155d4576155d361548d565b5b835b818110156155fd57806155e988826151f7565b8452602084019350506020810190506155d6565b5050509392505050565b600082601f83011261561c5761561b6153e1565b5b815161562c84826020860161559e565b91505092915050565b60006020828403121561564b5761564a614a77565b5b600082015167ffffffffffffffff81111561566957615668614a7c565b5b61567584828501615607565b91505092915050565b6000806040838503121561569557615694614a77565b5b60006156a38582860161539f565b92505060206156b4858286016151f7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006156f882614b0c565b915061570383614b0c565b925082615713576157126156be565b5b828204905092915050565b600061572982614b0c565b915061573483614b0c565b925082820261574281614b0c565b9150828204841483151761575957615758615239565b5b5092915050565b60006040820190506157756000830185614b16565b81810360208301526157878184614d71565b90509392505050565b600060a0820190506157a56000830188614b16565b6157b26020830187614b16565b81810360408301526157c48186614d71565b90506157d36060830185614b40565b6157e06080830184614b16565b969550505050505056fea26469706673582212209bf40e8c7737e1c2cd5cd9fbce0ad2497be59890c0fcf5d468bb9fbdddbc45a764736f6c63430008120033000000000000000000000000df11a92274d027740207da259804a38ca0e0edce