60806040526012600360006101000a81548160ff021916908360ff1602179055506b1172c67a9232b47c180000006009556b09b18ab5df7180b6b8000000600a556000600b60006101000a81548160ff0219169083151502179055506020604051908101604052806000815250600c908051906020019062000083929190620006d0565b506020604051908101604052806000815250600d9080519060200190620000ac929190620006d0565b50348015620000ba57600080fd5b50620000f86301ffc9a77c010000000000000000000000000000000000000000000000000000000002620005a9640100000000026401000000009004565b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f167d3e9c1016ab80e58802ca9da10ce5c6a0f4debc46a2e7a2cd9e56899a4fb533604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17fcec52196e972044edde8689a1b608e459c5946b7f3e5c8cd3d6d8e126d422e1c33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1426004819055506001600760007393f53b4c8ed2c0cc84bde1166b290998baa0d00573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600260076000730787bb893334fe0e6254a575b7d11e1009cbd2a373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600360076000733e5553619440a990f9227ab4557433e6afcb126773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600460076000730f1b039128d04891bc15137271f61c259b4f239d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506040805190810160405280600a81526020017f43617264696f436f696e00000000000000000000000000000000000000000000815250600c908051906020019062000407929190620006d0565b506040805190810160405280600481526020017f4352444300000000000000000000000000000000000000000000000000000000815250600d908051906020019062000455929190620006d0565b507f9a6645cd07452c704655abb8d3df1bb29cc145ac1bdd0cb6370469cf6bbc9a29600c600d6040518080602001806020018381038352858181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156200050c5780601f10620004e0576101008083540402835291602001916200050c565b820191906000526020600020905b815481529060010190602001808311620004ee57829003601f168201915b5050838103825284818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015620005935780601f10620005675761010080835404028352916020019162000593565b820191906000526020600020905b8154815290600101906020018083116200057557829003601f168201915b505094505050505060405180910390a16200077f565b63ffffffff7c010000000000000000000000000000000000000000000000000000000002817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415151562000664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200071357805160ff191683800117855562000744565b8280016001018555821562000744579182015b828111156200074357825182559160200191906001019062000726565b5b50905062000753919062000757565b5090565b6200077c91905b80821115620007785760008160009055506001016200075e565b5090565b90565b6131e0806200078f6000396000f30060806040526004361061013e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a71461014357806305d2035b146101a757806306fdde03146101d6578063095ea7b3146102665780630b5cc187146102cb5780631764aeca1461032257806318160ddd146103cf57806323b872dd146103fa578063313ce5671461047f578063423f6cef146104b057806342842e0e146104fd5780636112e8ac1461056a57806366188463146105dc57806370a082311461064157806376227f3b146106985780637d64bcb4146106c55780638da5cb5b146106f457806395d89b411461074b578063a9059cbb146107db578063b88d4fde14610840578063d73dd623146108f3578063dd62ed3e14610958578063eb795549146109cf578063f2fde38b14610a62575b600080fd5b34801561014f57600080fd5b5061018d60048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610aa5565b604051808215151515815260200191505060405180910390f35b3480156101b357600080fd5b506101bc610b0c565b604051808215151515815260200191505060405180910390f35b3480156101e257600080fd5b506101eb610b23565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022b578082015181840152602081019050610210565b50505050905090810190601f1680156102585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027257600080fd5b506102b1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bc5565b604051808215151515815260200191505060405180910390f35b3480156102d757600080fd5b5061030c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bdc565b6040518082815260200191505060405180910390f35b34801561032e57600080fd5b50610370600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610c25565b604051808b1515151581526020018a60ff1660ff1681526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019a505050505050505050505060405180910390f35b3480156103db57600080fd5b506103e4610d81565b6040518082815260200191505060405180910390f35b34801561040657600080fd5b50610465600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d8b565b604051808215151515815260200191505060405180910390f35b34801561048b57600080fd5b50610494610e3c565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104bc57600080fd5b506104fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e53565b005b34801561050957600080fd5b50610568600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e72565b005b34801561057657600080fd5b506105c2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803560ff169060200190929190505050610e93565b604051808215151515815260200191505060405180910390f35b3480156105e857600080fd5b50610627600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611545565b604051808215151515815260200191505060405180910390f35b34801561064d57600080fd5b50610682600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061167c565b6040518082815260200191505060405180910390f35b3480156106a457600080fd5b506106c3600480360381019080803590602001909291905050506117fb565b005b3480156106d157600080fd5b506106da611a0c565b604051808215151515815260200191505060405180910390f35b34801561070057600080fd5b50610709611ad4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561075757600080fd5b50610760611afa565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107a0578082015181840152602081019050610785565b50505050905090810190601f1680156107cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156107e757600080fd5b50610826600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b9c565b604051808215151515815260200191505060405180910390f35b34801561084c57600080fd5b506108f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611bb3565b005b3480156108ff57600080fd5b5061093e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c6b565b604051808215151515815260200191505060405180910390f35b34801561096457600080fd5b506109b9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d10565b6040518082815260200191505060405180910390f35b3480156109db57600080fd5b50610a60600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611d97565b005b348015610a6e57600080fd5b50610aa3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e4d565b005b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b6000600b60009054906101000a900460ff16905090565b6060600c8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bbb5780601f10610b9057610100808354040283529160200191610bbb565b820191906000526020600020905b815481529060010190602001808311610b9e57829003601f168201915b5050505050905090565b6000610bd2338484611fa5565b6001905092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600080600080600080600080610c3c61315b565b600860008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d60ff1660ff16815260200190815260200160002061014060405190810160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff168152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815250509050806000015181602001518260400151836060015184608001518560a001518660c001518760e001518861010001518961012001519a509a509a509a509a509a509a509a509a509a50509295989b9194979a5092959850565b6000600254905090565b6000610d98848484612226565b610e318433610e2c85600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b611fa5565b600190509392505050565b6000600360009054906101000a900460ff16905090565b610e6e82826020604051908101604052806000815250611d97565b5050565b610e8e8383836020604051908101604052806000815250611bb3565b505050565b600080600080600080610ea461315b565b610eac61315b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f0857600080fd5b600b60009054906101000a900460ff16151515610f2457600080fd5b60058960ff16101515610f9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f546f6b656e2054797065204e554c4c000000000000000000000000000000000081525060200191505060405180910390fd5b610fb48a60025461268790919063ffffffff16565b60028190555060038960ff1614156111d157600c9650610fe060326009546126a590919063ffffffff16565b955060329450603293506009549250610140604051908101604052806001151581526020018a60ff1681526020018b815260200160045481526020018881526020016000815260200187815260200186815260200185815260200184815250915081600860008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b60ff1660ff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160010155606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e08201518160060155610100820151816007015561012082015181600801559050508a73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fd607f1bc6687c8d81b74e1e08dbd849544430b1ca26bd921193112d2e1f3dead8c8c6004548c8c8c8c604051808881526020018760ff1660ff16815260200186815260200185815260200184815260200183815260200182815260200197505050505050505060405180910390a361147f565b60048960ff1614156113e857601896506111f76028600a546126a590919063ffffffff16565b95506024945060249350600a549250610140604051908101604052806001151581526020018a60ff1681526020018b815260200160045481526020018881526020016000815260200187815260200186815260200185815260200184815250905080600860008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b60ff1660ff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160010155606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e08201518160060155610100820151816007015561012082015181600801559050508a73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fd607f1bc6687c8d81b74e1e08dbd849544430b1ca26bd921193112d2e1f3dead8c8c6004548c8c8c8c604051808881526020018760ff1660ff16815260200186815260200185815260200184815260200183815260200182815260200197505050505050505060405180910390a361147e565b61143a8a600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268790919063ffffffff16565b600560008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b8a73ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858b6040518082815260200191505060405180910390a28a73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c6040518082815260200191505060405180910390a360019750505050505050509392505050565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821015156115d55760009150611667565b61166482600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b91505b611672338484611fa5565b6001905092915050565b600080600061168961315b565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250600191505b60048260ff161115156117f057600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360ff1660ff16815260200190815260200160002061014060405190810160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff1681526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820154815260200160088201548152505090506117e181604001518461268790919063ffffffff16565b925081806001019250506116d0565b829350505050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561185757600080fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111515156118a557600080fd5b6118f781600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061194f8160025461266e90919063ffffffff16565b6002819055503373ffffffffffffffffffffffffffffffffffffffff167fa0f3dea10c8bf26d7f1b6b0cf33166195f48616c562c681b49eaaa2423894d00826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a6a57600080fd5b600b60009054906101000a900460ff16151515611a8657600080fd5b6001600b60006101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600d8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b925780601f10611b6757610100808354040283529160200191611b92565b820191906000526020600020905b815481529060010190602001808311611b7557829003601f168201915b5050505050905090565b6000611ba9338484612226565b6001905092915050565b611bbe848484610d8b565b50611bcb848484846126bb565b1515611c65576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f45524332303a207472616e7366657220746f206e6f6e2045524332305265636581526020017f6976657220696d706c656d656e7465720000000000000000000000000000000081525060400191505060405180910390fd5b50505050565b6000611d063384611d0185600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268790919063ffffffff16565b611fa5565b6001905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611da18383611b9c565b50611dae338484846126bb565b1515611e48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f45524332303a207472616e7366657220746f206e6f6e2045524332305265636581526020017f6976657220696d706c656d656e7465720000000000000000000000000000000081525060400191505060405180910390fd5b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ea957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611ee557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612070576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f45524332303a20617070726f76652066726f6d20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561213b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f45524332303a20617070726f766520746f20746865207a65726f20616464726581526020017f737300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60008060008073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141515156122f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f45524332303a207472616e736665722066726f6d20746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515156123c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f45524332303a207472616e7366657220746f20746865207a65726f206164647281526020017f657373000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16925060018360ff1610158015612427575060028360ff1611155b1561243d57612438868685876128c7565b612601565b600191505b60048260ff161115156124d657600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360ff1660ff16815260200190815260200160002090508060000160009054906101000a900460ff16156124c9576124c88683612bfb565b5b8180600101925050612442565b61252884600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125bd84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268790919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3505050505050565b600082821115151561267c57fe5b818303905092915050565b600080828401905083811015151561269b57fe5b8091505092915050565b600081838115156126b257fe5b04905092915050565b6000806126c785612fed565b15156126d657600191506128be565b8473ffffffffffffffffffffffffffffffffffffffff16634fc35859338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156127cb5780820151818401526020810190506127b0565b50505050905090810190601f1680156127f85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561281a57600080fd5b505af115801561282e573d6000803e3d6000fd5b505050506040513d602081101561284457600080fd5b81019080805190602001909291905050509050639d188c227c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505b50949350505050565b6000806000806000806128d861315b565b60001515600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b60ff1660ff16815260200190815260200160002060000160009054906101000a900460ff1615151415156129ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f416c7265616479204c6f636b656420557365720000000000000000000000000081525060200191505060405180910390fd5b60018960ff1614156129f357429650600c95506129e16064896126a590919063ffffffff16565b94506006935060059250879150612a1c565b42965060149550612a0e6028896126a590919063ffffffff16565b945060289350602892508791505b610140604051908101604052806001151581526020018a60ff16815260200189815260200188815260200187815260200160008152602001868152602001858152602001848152602001838152509050612abe88600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600560008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b60ff1660ff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160010155606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e08201518160060155610100820151816007015561012082015181600801559050505050505050505050505050565b600080600080600080600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008860ff1660ff168152602001908152602001600020955060018760ff16148015612c73575060068660060154145b8015612c98575042612c956207e900886002015461268790919063ffffffff16565b11155b15612d765760058660060181905550612cbf6032876005015461300090919063ffffffff16565b9450612cd885876001015461266e90919063ffffffff16565b8660010181905550612d3285600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268790919063ffffffff16565b600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60001515612d9e612d9488600201544261303b90919063ffffffff16565b886003015461305a565b15151415612dab57612fe3565b429350612e4d848761014060405190810160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff1681526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820154815260200160088201548152505061306f565b92506000831415612e5d57612fe3565b60018760ff161415612e9a57612e93612e84600a886005015461300090919063ffffffff16565b8461300090919063ffffffff16565b9150612eb4565b612eb186600501548461300090919063ffffffff16565b91505b612ecb83876006015461303b90919063ffffffff16565b90506000612ee683886001015461303b90919063ffffffff16565b1480612ef25750600081145b15612f1c578560010154915060008660000160006101000a81548160ff0219169083151502179055505b428660040181905550808660060181905550612f4582876001015461266e90919063ffffffff16565b8660010181905550612f9f82600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268790919063ffffffff16565b600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050505050505050565b600080823b905060008111915050919050565b60008060008414156130155760009150613034565b828402905082848281151561302657fe5b0414151561303057fe5b8091505b5092915050565b60008282111561304e5760009050613054565b81830390505b92915050565b60008161306684613105565b11905092915050565b600080600080600080603c806018601e8a608001510202020294506130a185886060015161268790919063ffffffff16565b93506000925060008760a0015114156130c6576130bf848903613105565b92506130f7565b6130d1848903613105565b91508660e001518761010001510390506130f4818361303b90919063ffffffff16565b92505b829550505050505092915050565b6000613154601e6131466018613138603c61312a603c896126a590919063ffffffff16565b6126a590919063ffffffff16565b6126a590919063ffffffff16565b6126a590919063ffffffff16565b9050919050565b61014060405190810160405280600015158152602001600060ff168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815250905600a165627a7a72305820f7e6dc60e25984e7f8f42bd2d93882ac43fb9f3ad13dfe966d1d71cfd701fccc0029