6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040805190810160405280600e81526020017f4e6f74654f6645786368616e6765000000000000000000000000000000000000815250600590805190602001906200009192919062000484565b506040805190810160405280600381526020017f4e4f45000000000000000000000000000000000000000000000000000000000081525060069080519060200190620000df92919062000484565b506008600760006101000a81548160ff021916908360ff160217905550662386f26fc1000060085560016009556000600a556509184e72a000600b55640ba43b7400600c556200016d606462000150600a600854620002986401000000000262002fdf179091906401000000009004565b620002d464010000000002620031b9179091906401000000009004565b600d55662386f26fc10000600e556000600f60006101000a81548160ff0219169083151502179055506000600f60016101000a81548160ff0219169083151502179055506001600f60026101000a81548160ff0219169083151502179055506001600f60036101000a81548160ff0219169083151502179055506000600f60046101000a81548160ff0219169083151502179055503480156200020f57600080fd5b506040516020806200373e83398101806040528101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200029081600d54620002eb640100000000026401000000009004565b505062000533565b600080831415620002ad5760009050620002ce565b8183029050818382811515620002bf57fe5b04141515620002ca57fe5b8090505b92915050565b60008183811515620002e257fe5b04905092915050565b6000600f60009054906101000a900460ff161515156200030a57600080fd5b6200032f82600a5462000467640100000000026200319d179091906401000000009004565b600a81905550600854600a5410151562000368576001600f60006101000a81548160ff021916908315150217905550600854600a819055505b620003ca82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000467640100000000026200319d179091906401000000009004565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600081830190508281101515156200047b57fe5b80905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004c757805160ff1916838001178555620004f8565b82800160010185558215620004f8579182015b82811115620004f7578251825591602001919060010190620004da565b5b5090506200050791906200050b565b5090565b6200053091905b808211156200052c57600081600090555060010162000512565b5090565b90565b6131fb80620005436000396000f300608060405260043610610225576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b1461022f57806306fdde031461025e578063095ea7b3146102ee57806314ffbafc1461035357806318160ddd1461038257806323b872dd146103ad57806327e235e3146104325780632acab0bc14610489578063313ce567146104b65780633ccfd60b146104e757806340c10f19146104fe57806342516f1d1461056357806346244165146105925780635a8ac493146105bf5780635c658165146105ee57806370a08231146106655780637d64bcb4146106bc578063869af1ff146106eb5780638c8e65fb1461071a57806395d89b41146107495780639b1cbccc146107d9578063a1190a3614610808578063a6f9dae114610863578063a8c310d5146108a6578063a9059cbb1461094f578063aa6ca808146109b4578063aab8f6e0146109be578063aaffadf3146109e9578063b414d4b614610a14578063b72f547d14610a6b578063bc2d10f114610a9a578063c27345ce14610ac9578063c889e0de14610af8578063cbdd69b514610b27578063d17cddc914610b52578063d5b8621b14610b7d578063d83623dd14610be0578063dd62ed3e14610c0f578063e06c580814610c86578063eb6ae48114610cb3578063efca2eed14610d0e578063f1ed0d7714610d39578063f2fde38b14610d86578063f3e4877c14610dc9578063f554e8cc14610e39575b61022d610e64565b005b34801561023b57600080fd5b5061024461109f565b604051808215151515815260200191505060405180910390f35b34801561026a57600080fd5b506102736110b2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102b3578082015181840152602081019050610298565b50505050905090810190601f1680156102e05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102fa57600080fd5b50610339600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611154565b604051808215151515815260200191505060405180910390f35b34801561035f57600080fd5b506103686112e2565b604051808215151515815260200191505060405180910390f35b34801561038e57600080fd5b50610397611361565b6040518082815260200191505060405180910390f35b3480156103b957600080fd5b50610418600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061136b565b604051808215151515815260200191505060405180910390f35b34801561043e57600080fd5b50610473600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611741565b6040518082815260200191505060405180910390f35b34801561049557600080fd5b506104b460048036038101908080359060200190929190505050611759565b005b3480156104c257600080fd5b506104cb6118d5565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104f357600080fd5b506104fc6118ec565b005b34801561050a57600080fd5b50610549600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119d3565b604051808215151515815260200191505060405180910390f35b34801561056f57600080fd5b50610578611bc9565b604051808215151515815260200191505060405180910390f35b34801561059e57600080fd5b506105bd60048036038101908080359060200190929190505050611c48565b005b3480156105cb57600080fd5b506105d4611d4e565b604051808215151515815260200191505060405180910390f35b3480156105fa57600080fd5b5061064f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d61565b6040518082815260200191505060405180910390f35b34801561067157600080fd5b506106a6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d86565b6040518082815260200191505060405180910390f35b3480156106c857600080fd5b506106d1611dcf565b604051808215151515815260200191505060405180910390f35b3480156106f757600080fd5b50610700611e96565b604051808215151515815260200191505060405180910390f35b34801561072657600080fd5b5061072f611f15565b604051808215151515815260200191505060405180910390f35b34801561075557600080fd5b5061075e611f28565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561079e578082015181840152602081019050610783565b50505050905090810190601f1680156107cb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156107e557600080fd5b506107ee611fca565b604051808215151515815260200191505060405180910390f35b34801561081457600080fd5b50610849600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612049565b604051808215151515815260200191505060405180910390f35b34801561086f57600080fd5b506108a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061228c565b005b3480156108b257600080fd5b5061094d6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612361565b005b34801561095b57600080fd5b5061099a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061245d565b604051808215151515815260200191505060405180910390f35b6109bc610e64565b005b3480156109ca57600080fd5b506109d3612793565b6040518082815260200191505060405180910390f35b3480156109f557600080fd5b506109fe612799565b6040518082815260200191505060405180910390f35b348015610a2057600080fd5b50610a55600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061279f565b6040518082815260200191505060405180910390f35b348015610a7757600080fd5b50610a806127b7565b604051808215151515815260200191505060405180910390f35b348015610aa657600080fd5b50610aaf612836565b604051808215151515815260200191505060405180910390f35b348015610ad557600080fd5b50610ade6128b5565b604051808215151515815260200191505060405180910390f35b348015610b0457600080fd5b50610b0d6128c8565b604051808215151515815260200191505060405180910390f35b348015610b3357600080fd5b50610b3c612947565b6040518082815260200191505060405180910390f35b348015610b5e57600080fd5b50610b6761294d565b6040518082815260200191505060405180910390f35b348015610b8957600080fd5b50610bc660048036038101908080359060200190929190803590602001909291908035906020019092919080359060200190929190505050612953565b604051808215151515815260200191505060405180910390f35b348015610bec57600080fd5b50610bf56129d8565b604051808215151515815260200191505060405180910390f35b348015610c1b57600080fd5b50610c70600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a57565b6040518082815260200191505060405180910390f35b348015610c9257600080fd5b50610cb160048036038101908080359060200190929190505050612ade565b005b348015610cbf57600080fd5b50610cf4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ca9565b604051808215151515815260200191505060405180910390f35b348015610d1a57600080fd5b50610d23612cc9565b6040518082815260200191505060405180910390f35b348015610d4557600080fd5b50610d84600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612ccf565b005b348015610d9257600080fd5b50610dc7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e32565b005b348015610dd557600080fd5b50610e376004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050612f07565b005b348015610e4557600080fd5b50610e4e612fd9565b6040518082815260200191505060405180910390f35b6000806000600f60009054906101000a900460ff16151515610e8557600080fd5b60009250339150349050600e5481101515610f69576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610f01573d6000803e3d6000fd5b5060001515600f60019054906101000a900460ff161515141515610f2457600080fd5b670de0b6b3a7640000610f4234600b54612fdf90919063ffffffff16565b811515610f4b57fe5b049250600083101515610f6457610f628284613017565b505b61109a565b60001515600f60029054906101000a900460ff161515148015610fdd575060011515600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514155b1515610fe857600080fd5b3273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611029575061102782613171565b155b151561103457600080fd5b61104082600c54613017565b506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b505050565b600f60049054906101000a900460ff1681565b606060058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561114a5780601f1061111f5761010080835404028352916020019161114a565b820191906000526020600020905b81548152906001019060200180831161112d57829003601f168201915b5050505050905090565b60008082141580156111e357506000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b156111f157600090506112dc565b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a3600190505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561133f57600080fd5b6000600f60016101000a81548160ff0219169083151502179055506001905090565b6000600854905090565b600060606004810160003690501015151561138257fe5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156113be57600080fd5b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561140c57600080fd5b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561149757600080fd5b6114e983600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461318490919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115bb83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461318490919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061168d83600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461319d90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b60016020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117b457600080fd5b6117c98160085461318490919063ffffffff16565b600a54101515611868576117e88160085461318490919063ffffffff16565b600881905550600854600a819055506001600f60006101000a81548160ff0219169083151502179055506001600f60016101000a81548160ff0219169083151502179055506001600f60026101000a81548160ff0219169083151502179055506001600f60036101000a81548160ff021916908315150217905550611884565b61187d8160085461318490919063ffffffff16565b6008819055505b3073ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a250565b6000600760009054906101000a900460ff16905090565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561194a57600080fd5b3091508173ffffffffffffffffffffffffffffffffffffffff163190506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156119ce573d6000803e3d6000fd5b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a3057600080fd5b600f60049054906101000a900460ff16151515611a4c57600080fd5b600082111515611a5b57600080fd5b611a708260085461319d90919063ffffffff16565b600881905550611ac882600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461319d90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c2657600080fd5b6000600f60026101000a81548160ff0219169083151502179055506001905090565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118015611c985750600082115b1515611ca357600080fd5b819050611cb9428261319d90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f1bd6fb9fa2c39ce5d0d2afa1eaba998963eb5f553fd862c94f131aa9e35c1577826040518082815260200191505060405180910390a25050565b600f60019054906101000a900460ff1681565b6002602052816000526040600020602052806000526040600020600091509150505481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e2c57600080fd5b600f60049054906101000a900460ff16151515611e4857600080fd5b6001600f60046101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ef357600080fd5b6001600f60036101000a81548160ff0219169083151502179055506001905090565b600f60039054906101000a900460ff1681565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611fc05780601f10611f9557610100808354040283529160200191611fc0565b820191906000526020600020905b815481529060010190602001808311611fa357829003601f168201915b5050505050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561202757600080fd5b6001600f60006101000a81548160ff0219169083151502179055506001905090565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120a957600080fd5b8391508173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561214757600080fd5b505af115801561215b573d6000803e3d6000fd5b505050506040513d602081101561217157600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561224857600080fd5b505af115801561225c573d6000803e3d6000fd5b505050506040513d602081101561227257600080fd5b810190808051906020019092919050505092505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122e757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561235e57806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123be57600080fd5b600f60009054906101000a900460ff161515156123da57600080fd5b60ff8351111515156123eb57600080fd5b815183511415156123fb57600080fd5b600090505b82518160ff1610156124585761244a838260ff1681518110151561242057fe5b90602001906020020151838360ff1681518110151561243b57fe5b90602001906020020151613017565b508080600101915050612400565b505050565b60008060406004810160003690501015151561247557fe5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156124f15750600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411155b801561253b575042600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b151561254657600080fd5b6000915060001515600f60039054906101000a900460ff161515148015612580575060001515600f60009054906101000a900460ff161515145b156125b1576125ae6103e86125a060095487612fdf90919063ffffffff16565b6131b990919063ffffffff16565b91505b61260384600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461318490919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061269884600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461319d90919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360001515600f60039054906101000a900460ff161515148015612776575060001515600f60009054906101000a900460ff161515145b15612787576127858583613017565b505b60019250505092915050565b600c5481565b600e5481565b60046020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561281457600080fd5b6000600f60036101000a81548160ff0219169083151502179055506001905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561289357600080fd5b6001600f60016101000a81548160ff0219169083151502179055506001905090565b600f60029054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561292557600080fd5b6001600f60026101000a81548160ff0219169083151502179055506001905090565b600b5481565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129b057600080fd5b84600b8190555083600c819055508260098190555081600e8190555060019050949350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612a3557600080fd5b6000600f60006101000a81548160ff0219169083151502179055506001905090565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612b3b57600080fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515612b8957600080fd5b339050612bde82600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461318490919063ffffffff16565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c368260085461318490919063ffffffff16565b600881905550612c5182600a5461318490919063ffffffff16565b600a819055508073ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a25050565b60036020528060005260406000206000915054906101000a900460ff1681565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d2c57600080fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118015612d7b5750600082115b1515612d8657600080fd5b819050612d9c428261319d90919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f1bd6fb9fa2c39ce5d0d2afa1eaba998963eb5f553fd862c94f131aa9e35c1577826040518082815260200191505060405180910390a2505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612e8d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515612f0457806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612f6457600080fd5b600f60009054906101000a900460ff16151515612f8057600080fd5b60ff835111151515612f9157600080fd5b600090505b82518160ff161015612fd457612fc6838260ff16815181101515612fb657fe5b9060200190602002015183613017565b508080600101915050612f96565b505050565b600d5481565b600080831415612ff25760009050613011565b818302905081838281151561300357fe5b0414151561300d57fe5b8090505b92915050565b6000600f60009054906101000a900460ff1615151561303557600080fd5b61304a82600a5461319d90919063ffffffff16565b600a81905550600854600a54101515613082576001600f60006101000a81548160ff021916908315150217905550600854600a819055505b6130d482600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461319d90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080823b905060008111915050919050565b600082821115151561319257fe5b818303905092915050565b600081830190508281101515156131b057fe5b80905092915050565b600081838115156131c657fe5b049050929150505600a165627a7a7230582024fddc57907bba885327b029d710ed22825e5ac72b5c19abee3c549886238954002900000000000000000000000000a16e00c727035fab1da98b52bbcb077386dfb8