60606040526000600260146101000a81548160ff021916908315150217905550600f60035534156200003057600080fd5b6001600260146101000a81548160ff021916908315150217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200010e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600080620001156401000000000262003042176401000000009004565b5062000578565b600062000121620004ad565b60006060604051908101604052808781526020014267ffffffffffffffff1681526020018567ffffffffffffffff1681525091506001600480548060010182816200016d9190620004e3565b916000526020600020906002020160008590919091506000820151816000015560208201518160010160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060408201518160010160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050500390508063ffffffff16811415156200020557600080fd5b7f26762795cda5552a98dbf495f5525efb05f3d55c5764fa0c6cfaa27150fe180785828460000151604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a16200029e60008683620002aa6401000000000262003228176401000000009004565b80925050509392505050565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415156200040957600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506007600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b60606040519081016040528060008152602001600067ffffffffffffffff168152602001600067ffffffffffffffff1681525090565b815481835581811511620005135760020281600202836000526020600020918201910162000512919062000518565b5b505050565b6200057591905b8082111562000571576000808201600090556001820160006101000a81549067ffffffffffffffff02191690556001820160086101000a81549067ffffffffffffffff0219169055506002016200051f565b5090565b90565b6136b480620005886000396000f300606060405260043610610225576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a7146102835780630519ce79146102dd5780630560ff44146103325780630668f649146103e257806306fdde031461040b578063095ea7b31461049957806309ca60c1146104db5780630a0f81681461053057806312df2f491461058557806318160ddd146105da57806323b872dd1461060357806327d7874c146106645780632ba73c151461069d5780632e25d2a6146106d6578063313138e11461072b57806331e0900c1461075757806335347560146107ba5780633f4ba83a146107f15780634a4d9b00146108065780634e0a33791461083f5780635663896e146108785780635c975abb1461089b5780635fd8c710146108c85780636352211e146108dd5780636af04a571461094057806370a082311461099557806370ff6325146109e257806371587988146109f75780637a7d493714610a305780638456cb5914610a595780638462151c14610a6e5780638601332214610afc57806395d89b4114610b11578063a080c8ba14610b9f578063a9059cbb14610bea578063b047fb5014610c2c578063b34d471d14610c81578063b38697f614610cb6578063b47cc55614610d19578063bc4006f514610d52578063cfe7e7a014610da7578063e17b25af14610dd3578063efbbbd6514610e0c578063f28f0f6a14610e4a578063f92561f314610eb1575b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561028157600080fd5b005b341561028e57600080fd5b6102c360048080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916906020019091905050610eda565b604051808215151515815260200191505060405180910390f35b34156102e857600080fd5b6102f06111eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561033d57600080fd5b61036760048080359060200190919080359060200190820180359060200191909192905050611211565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103a757808201518184015260208101905061038c565b50505050905090810190601f1680156103d45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103ed57600080fd5b6103f561137c565b6040518082815260200191505060405180910390f35b341561041657600080fd5b61041e611382565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561045e578082015181840152602081019050610443565b50505050905090810190601f16801561048b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104a457600080fd5b6104d9600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506113bb565b005b34156104e657600080fd5b61052e600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803567ffffffffffffffff16906020019091905050611499565b005b341561053b57600080fd5b610543611579565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561059057600080fd5b61059861159e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105e557600080fd5b6105ed6115c4565b6040518082815260200191505060405180910390f35b341561060e57600080fd5b610662600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506115d4565b005b341561066f57600080fd5b61069b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506116a1565b005b34156106a857600080fd5b6106d4600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061177b565b005b34156106e157600080fd5b6106e9611856565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561073657600080fd5b610755600480803590602001909190803590602001909190505061187c565b005b341561076257600080fd5b61077860048080359060200190919050506118f8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107c557600080fd5b6107db600480803590602001909190505061192b565b6040518082815260200191505060405180910390f35b34156107fc57600080fd5b61080461195d565b005b341561081157600080fd5b61083d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611af6565b005b341561084a57600080fd5b610876600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c2d565b005b341561088357600080fd5b6108996004808035906020019091905050611d08565b005b34156108a657600080fd5b6108ae611e1d565b604051808215151515815260200191505060405180910390f35b34156108d357600080fd5b6108db611e30565b005b34156108e857600080fd5b6108fe6004808035906020019091905050611f03565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561094b57600080fd5b610953611f7c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156109a057600080fd5b6109cc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611fa2565b6040518082815260200191505060405180910390f35b34156109ed57600080fd5b6109f5611feb565b005b3415610a0257600080fd5b610a2e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612191565b005b3415610a3b57600080fd5b610a436122ae565b6040518082815260200191505060405180910390f35b3415610a6457600080fd5b610a6c6122b4565b005b3415610a7957600080fd5b610aa5600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506123f8565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610ae8578082015181840152602081019050610acd565b505050509050019250505060405180910390f35b3415610b0757600080fd5b610b0f61252f565b005b3415610b1c57600080fd5b610b246126d5565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b64578082015181840152602081019050610b49565b50505050905090810190601f168015610b915780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610baa57600080fd5b610bc0600480803590602001909190505061270e565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610bf557600080fd5b610c2a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612754565b005b3415610c3757600080fd5b610c3f612868565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610c8c57600080fd5b610cb4600480803590602001909190803590602001909190803590602001909190505061288e565b005b3415610cc157600080fd5b610cd76004808035906020019091905050612a33565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610d2457600080fd5b610d50600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612a66565b005b3415610d5d57600080fd5b610d65612b9d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610db257600080fd5b610dd16004808035906020019091908035906020019091905050612bc3565b005b3415610dde57600080fd5b610e0a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612d04565b005b3415610e1757600080fd5b610e2d6004808035906020019091905050612da3565b604051808381526020018281526020019250505060405180910390f35b3415610e5557600080fd5b610eaf600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803567ffffffffffffffff16906020019091908035906020019091908035906020019091905050612df9565b005b3415610ebc57600080fd5b610ec4612f22565b6040518082815260200191505060405180910390f35b600060405180807f737570706f727473496e74657266616365286279746573342900000000000000815250601901905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806111e4575060405180807f746f6b656e4d657461646174612875696e743235362c737472696e6729000000815250601d019050604051809103902060405180807f746f6b656e734f664f776e6572286164647265737329000000000000000000008152506016019050604051809103902060405180807f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81526020017f74323536290000000000000000000000000000000000000000000000000000008152506025019050604051809103902060405180807f7472616e7366657228616464726573732c75696e7432353629000000000000008152506019019050604051809103902060405180807f617070726f766528616464726573732c75696e743235362900000000000000008152506018019050604051809103902060405180807f6f776e65724f662875696e7432353629000000000000000000000000000000008152506010019050604051809103902060405180807f62616c616e63654f6628616464726573732900000000000000000000000000008152506012019050604051809103902060405180807f746f74616c537570706c79282900000000000000000000000000000000000000815250600d019050604051809103902060405180807f73796d626f6c28290000000000000000000000000000000000000000000000008152506008019050604051809103902060405180807f6e616d6528290000000000000000000000000000000000000000000000000000815250600601905060405180910390201818181818181818187bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611219613570565b611221613584565b60008073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561128057600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cb4799f2878787600060405160a001526040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180848152602001806020018281038252848482818152602001925080828437820191505094505050505060a060405180830381600087803b151561133b57600080fd5b6102c65a03f1151561134c57600080fd5b5050506040518060800180519060200160405280925081935050506113718282612f28565b925050509392505050565b600c5481565b6040805190810160405280600b81526020017f45746865724c616d626f7300000000000000000000000000000000000000000081525081565b600260149054906101000a900460ff161515156113d757600080fd5b6113e13382612f80565b15156113ec57600080fd5b6113f68183612fec565b7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925338383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a15050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114f757600080fd5b829050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561155557600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600b60008154809291906001019190505550611572848284613042565b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160048054905003905090565b600260149054906101000a900460ff161515156115f057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561162c57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561166757600080fd5b61167133826131bc565b151561167c57600080fd5b6116868382612f80565b151561169157600080fd5b61169c838383613228565b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116fc57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561173857600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117d657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561181257600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118d857600080fd5b600c600081548092919060010191905055506118f4828261342a565b5050565b60076020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060048381548110151561193d57fe5b906000526020600020906002020190508060000154915081915050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119b857600080fd5b600260149054906101000a900460ff1615156119d357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611a3157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611a8f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611aec57600080fd5b611af4613492565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b5357600080fd5b8190508073ffffffffffffffffffffffffffffffffffffffff166325746a7d6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611bc257600080fd5b6102c65a03f11515611bd357600080fd5b505050604051805190501515611be857600080fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c8857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611cc457600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611db057506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80611e085750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611e1357600080fd5b8060038190555050565b600260149054906101000a900460ff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e8e57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16319050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050505050565b60006005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611f7757600080fd5b919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061209357506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806120eb5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156120f657600080fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635fd8c7106040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b151561217b57600080fd5b6102c65a03f1151561218c57600080fd5b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121ec57600080fd5b600260149054906101000a900460ff16151561220757600080fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa44619930581604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60035481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061235c57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806123b45750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156123bf57600080fd5b600260149054906101000a900460ff161515156123db57600080fd5b6001600260146101000a81548160ff021916908315150217905550565b6124006135af565b600061240a6135af565b600080600061241887611fa2565b9450600085141561244a5760006040518059106124325750595b90808252806020026020018201604052509550612525565b846040518059106124585750595b908082528060200260200182016040525093506124736115c4565b925060009150600190505b8281111515612521578673ffffffffffffffffffffffffffffffffffffffff166005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612514578084838151811015156124fd57fe5b906020019060200201818152505081806001019250505b808060010191505061247e565b8395505b5050505050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806125d757506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061262f5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561263a57600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635fd8c7106040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15156126bf57600080fd5b6102c65a03f115156126d057600080fd5b505050565b6040805190810160405280600281526020017f454c00000000000000000000000000000000000000000000000000000000000081525081565b60008060048381548110151561272057fe5b906000526020600020906002020190508060010160089054906101000a900467ffffffffffffffff16915081915050919050565b600260149054906101000a900460ff1615151561277057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156127ac57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156127e757600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561284457600080fd5b61284e3382612f80565b151561285957600080fd5b612864338383613228565b5050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128ec57600080fd5b600090505b81811015612a2d5761290533828501612f80565b151561291057600080fd5b61293e818401600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612fec565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663995cd65382850186336040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b1515612a0c57600080fd5b6102c65a03f11515612a1d57600080fd5b50505080806001019150506128f1565b50505050565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ac357600080fd5b8190508073ffffffffffffffffffffffffffffffffffffffff1663f4b86c486000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515612b3257600080fd5b6102c65a03f11515612b4357600080fd5b505050604051805190501515612b5857600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260149054906101000a900460ff16151515612bdf57600080fd5b612be93383612f80565b1515612bf457600080fd5b612c2082600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612fec565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663995cd6538383336040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b1515612cec57600080fd5b6102c65a03f11515612cfd57600080fd5b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d5f57600080fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000600484815481101515612db757fe5b906000526020600020906002020190508060010160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1692508060000154915050915091565b6000806000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612e5a57600080fd5b869250879150600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612ebb57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692505b600090505b84811015612f1857600b600081548092919060010191905055507b097edd871cfda3a5697758bf0e3cbb5ac5741c6400000000000000008185010288019150612f0a828488613042565b508080600101915050612ec0565b5050505050505050565b600b5481565b612f30613570565b612f38613570565b60008084604051805910612f495750595b9080825280601f01601f19166020018201604052509250602083019150859050612f74828287613525565b82935050505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff166005600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b806007600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600061304c6135c3565b60006060604051908101604052808781526020014267ffffffffffffffff1681526020018567ffffffffffffffff16815250915060016004805480600101828161309691906135f9565b916000526020600020906002020160008590919091506000820151816000015560208201518160010160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060408201518160010160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050500390508063ffffffff168114151561312d57600080fd5b7f26762795cda5552a98dbf495f5525efb05f3d55c5764fa0c6cfaa27150fe180785828460000151604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a16131b060008683613228565b80925050509392505050565b60008273ffffffffffffffffffffffffffffffffffffffff166007600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151561338657600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506007600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b8160048281548110151561343a57fe5b9060005260206000209060020201600001819055507f272448c13d10252513897c38c25bf3b0384e3fb8060c7acf11a39696894ffd878183604051808381526020018281526020019250505060405180910390a15050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156134ed57600080fd5b600260149054906101000a900460ff16151561350857600080fd5b6000600260146101000a81548160ff021916908315150217905550565b60005b60208210151561354d5782518452602084019350602083019250602082039150613528565b6001826020036101000a0390508019835116818551168181178652505050505050565b602060405190810160405280600081525090565b6080604051908101604052806004905b60008019168152602001906001900390816135945790505090565b602060405190810160405280600081525090565b60606040519081016040528060008152602001600067ffffffffffffffff168152602001600067ffffffffffffffff1681525090565b81548183558181151161362657600202816002028360005260206000209182019101613625919061362b565b5b505050565b61368591905b80821115613681576000808201600090556001820160006101000a81549067ffffffffffffffff02191690556001820160086101000a81549067ffffffffffffffff021916905550600201613631565b5090565b905600a165627a7a723058203f5a39911159de7c11a04261251bf63c9fed76eed8dd55cafbad0bf4ba2829630029