60806040526000600a556107d0600b556001600c55600a600d556001600e60006101000a81548160ff0219169083151502179055506001600e60016101000a81548160ff0219169083151502179055506001600e60026101000a81548160ff0219169083151502179055506040518060400160405280600581526020017f2e6a736f6e00000000000000000000000000000000000000000000000000000081525060139080519060200190620000b792919062000b9b565b5060006014806101000a81548160ff0219169083151502179055506000601460156101000a81548160ff0219169083151502179055506000601960006101000a81548160ff0219169083151502179055503480156200011557600080fd5b506040518060400160405280601081526020017f4e494a4957686974656c697374534254000000000000000000000000000000008152506040518060400160405280600881526020017f4e494a4957534254000000000000000000000000000000000000000000000000815250620001a2620001966200029c60201b60201c565b620002a460201b60201c565b8160049080519060200190620001ba92919062000b9b565b508060059080519060200190620001d392919062000b9b565b50620001e46200036860201b60201c565b6002819055505050620002016000801b336200037160201b60201c565b620002337f3a2f235c9daaf33349d300aadff2f15078a89df81bcfdd45ba11c8f816bddc6f336200037160201b60201c565b6200025d60405180606001604052806036815260200162006bb6603691396200038760201b60201c565b6200026f6001620003b360201b60201c565b62000296737f429dc5ffda5374bb09a1ba390ffebdea4797a46001620003e060201b60201c565b62000f91565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006001905090565b6200038382826200040660201b60201c565b5050565b62000397620004f760201b60201c565b8060129080519060200190620003af92919062000b9b565b5050565b620003c3620004f760201b60201c565b80601960006101000a81548160ff02191690831515021790555050565b620004028282604051806020016040528060008152506200058860201b60201c565b5050565b6200041882826200063a60201b60201c565b620004f357600180600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004986200029c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b620005076200029c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200052d620006a560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000586576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200057d9062000dbb565b60405180910390fd5b565b6200059a8383620006ce60201b60201c565b60008373ffffffffffffffffffffffffffffffffffffffff163b14620006355760006002549050600083820390505b620005e46000868380600101945086620008b860201b60201c565b6200061b576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818110620005c95781600254146200063257600080fd5b50505b505050565b60006001600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006002549050600082141562000711576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b62000726600084838562000a2a60201b60201c565b600160406001901b178202600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620007b58362000797600086600062000b1360201b60201c565b620007a88562000b4360201b60201c565b1762000b5360201b60201c565b6006600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b8181146200085857808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a46001810190506200081b565b50600082141562000895576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806002819055505050620008b3600084838562000b7e60201b60201c565b505050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02620008e662000b8460201b60201c565b8786866040518563ffffffff1660e01b81526004016200090a949392919062000d45565b602060405180830381600087803b1580156200092557600080fd5b505af19250505080156200095957506040513d601f19601f8201168201806040525081019062000956919062000c62565b60015b620009d7573d80600081146200098c576040519150601f19603f3d011682016040523d82523d6000602084013e62000991565b606091505b50600081511415620009cf576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b60001515601960009054906101000a900460ff161515148062000a795750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8062000ab2575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b62000af4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000aeb9062000d99565b60405180910390fd5b62000b0d8484848462000b8c60201b620029c51760201c565b50505050565b60008060e883901c905060e862000b3286868462000b9260201b60201c565b62ffffff16901b9150509392505050565b60006001821460e11b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b600033905090565b50505050565b60009392505050565b82805462000ba99062000eaa565b90600052602060002090601f01602090048101928262000bcd576000855562000c19565b82601f1062000be857805160ff191683800117855562000c19565b8280016001018555821562000c19579182015b8281111562000c1857825182559160200191906001019062000bfb565b5b50905062000c28919062000c2c565b5090565b5b8082111562000c4757600081600090555060010162000c2d565b5090565b60008151905062000c5c8162000f77565b92915050565b60006020828403121562000c7b5762000c7a62000f0f565b5b600062000c8b8482850162000c4b565b91505092915050565b62000c9f8162000e0a565b82525050565b600062000cb28262000ddd565b62000cbe818562000de8565b935062000cd081856020860162000e74565b62000cdb8162000f14565b840191505092915050565b600062000cf560168362000df9565b915062000d028262000f25565b602082019050919050565b600062000d1c60208362000df9565b915062000d298262000f4e565b602082019050919050565b62000d3f8162000e6a565b82525050565b600060808201905062000d5c600083018762000c94565b62000d6b602083018662000c94565b62000d7a604083018562000d34565b818103606083015262000d8e818462000ca5565b905095945050505050565b6000602082019050818103600083015262000db48162000ce6565b9050919050565b6000602082019050818103600083015262000dd68162000d0d565b9050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600062000e178262000e4a565b9050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000e9457808201518184015260208101905062000e77565b8381111562000ea4576000848401525b50505050565b6000600282049050600182168062000ec357607f821691505b6020821081141562000eda5762000ed962000ee0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f7472616e736665722069732070726f6869626974656400000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b62000f828162000e1e565b811462000f8e57600080fd5b50565b615c158062000fa16000396000f3fe6080604052600436106103e45760003560e01c8063715018a611610208578063aabb9a8611610118578063d5abeb01116100ab578063e6d37b881161007a578063e6d37b8814610e79578063e985e9c514610e95578063f138abfa14610ed2578063f2fde38b14610efb578063fcd1aac914610f24576103e4565b8063d5abeb0114610dd1578063d6dfad7614610dfc578063da3ef23f14610e27578063ddecc4d014610e50576103e4565b8063bbb89744116100e7578063bbb8974414610d15578063c668286214610d40578063c87b56dd14610d6b578063d547741f14610da8576103e4565b8063aabb9a8614610c7a578063b5f94d0614610ca5578063b88d4fde14610cce578063ba6269c614610cea576103e4565b8063942c92731161019b5780639c70b5121161016a5780639c70b51214610b95578063a217fddf14610bc0578063a22cb46514610beb578063a58c12ae14610c14578063a9e2acd514610c51576103e4565b8063942c927314610aeb57806395d89b4114610b165780639659867e14610b41578063981eb34414610b6c576103e4565b8063877984cb116101d7578063877984cb14610a2f5780638da5cb5b14610a5a5780638e73cf0014610a8557806391d1485414610aae576103e4565b8063715018a61461098757806373ef64fd1461099e5780637cb64759146109c95780638462151c146109f2576103e4565b8063279a669e1161030357806344a0d68a116102965780636352211e116102655780636352211e146108905780636b8ee0ec146108cd5780636c0360eb146108f65780636f8b44b01461092157806370a082311461094a576103e4565b806344a0d68a146107ea57806355f804b314610813578063599487c31461083c5780635c975abb14610865576103e4565b80633c952764116102d25780633c952764146107635780633ccfd60b1461078c5780633cf40df3146107a357806342842e0e146107ce576103e4565b8063279a669e146106bd5780632eb4a7ab146106e65780632f2ff15d1461071157806336568abe1461073a576103e4565b806313faede61161037b5780631fac2a351161034a5780631fac2a35146105fe57806323b872dd1461063b57806323c0308514610657578063248a9ca314610680576103e4565b806313faede6146105525780631581b6001461057d57806318160ddd146105a85780631e0fbfa2146105d3576103e4565b806306fdde03116103b757806306fdde03146104a3578063081812fc146104ce578063095ea7b31461050b578063135d088d14610527576103e4565b806301340a32146103e957806301ffc9a71461041457806302329a291461045157806304787ca21461047a575b600080fd5b3480156103f557600080fd5b506103fe610f4d565b60405161040b9190614ea5565b60405180910390f35b34801561042057600080fd5b5061043b600480360381019061043691906144e7565b610fdb565b6040516104489190614e54565b60405180910390f35b34801561045d57600080fd5b506104786004803603810190610473919061444d565b610fed565b005b34801561048657600080fd5b506104a1600480360381019061049c9190614541565b611012565b005b3480156104af57600080fd5b506104b8611034565b6040516104c59190614ea5565b60405180910390f35b3480156104da57600080fd5b506104f560048036038101906104f091906145d3565b6110c6565b6040516105029190614dcb565b60405180910390f35b61052560048036038101906105209190614391565b611145565b005b34801561053357600080fd5b5061053c6111a9565b6040516105499190614ea5565b60405180910390f35b34801561055e57600080fd5b50610567611237565b60405161057491906150c7565b60405180910390f35b34801561058957600080fd5b5061059261123d565b60405161059f9190614dcb565b60405180910390f35b3480156105b457600080fd5b506105bd611255565b6040516105ca91906150c7565b60405180910390f35b3480156105df57600080fd5b506105e861126c565b6040516105f59190614e6f565b60405180910390f35b34801561060a57600080fd5b506106256004803603810190610620919061420e565b611290565b60405161063291906150c7565b60405180910390f35b6106556004803603810190610650919061427b565b6112a8565b005b34801561066357600080fd5b5061067e6004803603810190610679919061420e565b6115cd565b005b34801561068c57600080fd5b506106a760048036038101906106a2919061447a565b611619565b6040516106b49190614e6f565b60405180910390f35b3480156106c957600080fd5b506106e460048036038101906106df91906143d1565b611639565b005b3480156106f257600080fd5b506106fb6117f6565b6040516107089190614e6f565b60405180910390f35b34801561071d57600080fd5b50610738600480360381019061073391906144a7565b6117fc565b005b34801561074657600080fd5b50610761600480360381019061075c91906144a7565b61181d565b005b34801561076f57600080fd5b5061078a6004803603810190610785919061444d565b6118a0565b005b34801561079857600080fd5b506107a16118c5565b005b3480156107af57600080fd5b506107b861195a565b6040516107c59190614e54565b60405180910390f35b6107e860048036038101906107e3919061427b565b61196d565b005b3480156107f657600080fd5b50610811600480360381019061080c91906145d3565b61198d565b005b34801561081f57600080fd5b5061083a60048036038101906108359190614541565b61199f565b005b34801561084857600080fd5b50610863600480360381019061085e9190614541565b6119c1565b005b34801561087157600080fd5b5061087a6119e3565b6040516108879190614e54565b60405180910390f35b34801561089c57600080fd5b506108b760048036038101906108b291906145d3565b6119f6565b6040516108c49190614dcb565b60405180910390f35b3480156108d957600080fd5b506108f460048036038101906108ef919061444d565b611a08565b005b34801561090257600080fd5b5061090b611a2d565b6040516109189190614ea5565b60405180910390f35b34801561092d57600080fd5b50610948600480360381019061094391906145d3565b611abb565b005b34801561095657600080fd5b50610971600480360381019061096c919061420e565b611acd565b60405161097e91906150c7565b60405180910390f35b34801561099357600080fd5b5061099c611b86565b005b3480156109aa57600080fd5b506109b3611b9a565b6040516109c091906150c7565b60405180910390f35b3480156109d557600080fd5b506109f060048036038101906109eb919061447a565b611ba0565b005b3480156109fe57600080fd5b50610a196004803603810190610a14919061420e565b611bb2565b604051610a269190614e32565b60405180910390f35b348015610a3b57600080fd5b50610a44611cfc565b604051610a519190614e8a565b60405180910390f35b348015610a6657600080fd5b50610a6f611d22565b604051610a7c9190614dcb565b60405180910390f35b348015610a9157600080fd5b50610aac6004803603810190610aa7919061444d565b611d4b565b005b348015610aba57600080fd5b50610ad56004803603810190610ad091906144a7565b611d70565b604051610ae29190614e54565b60405180910390f35b348015610af757600080fd5b50610b00611ddb565b604051610b0d9190614ea5565b60405180910390f35b348015610b2257600080fd5b50610b2b611e69565b604051610b389190614ea5565b60405180910390f35b348015610b4d57600080fd5b50610b56611efb565b604051610b639190614e54565b60405180910390f35b348015610b7857600080fd5b50610b936004803603810190610b8e9190614541565b611f0e565b005b348015610ba157600080fd5b50610baa611f30565b604051610bb79190614e54565b60405180910390f35b348015610bcc57600080fd5b50610bd5611f43565b604051610be29190614e6f565b60405180910390f35b348015610bf757600080fd5b50610c126004803603810190610c0d9190614351565b611f4a565b005b348015610c2057600080fd5b50610c3b6004803603810190610c36919061420e565b611fae565b604051610c4891906150c7565b60405180910390f35b348015610c5d57600080fd5b50610c786004803603810190610c7391906145d3565b611fc6565b005b348015610c8657600080fd5b50610c8f611fd8565b604051610c9c9190614ea5565b60405180910390f35b348015610cb157600080fd5b50610ccc6004803603810190610cc791906145d3565b612066565b005b610ce86004803603810190610ce391906142ce565b612078565b005b348015610cf657600080fd5b50610cff6120eb565b604051610d0c9190614e54565b60405180910390f35b348015610d2157600080fd5b50610d2a6120fc565b604051610d3791906150c7565b60405180910390f35b348015610d4c57600080fd5b50610d55612102565b604051610d629190614ea5565b60405180910390f35b348015610d7757600080fd5b50610d926004803603810190610d8d91906145d3565b612190565b604051610d9f9190614ea5565b60405180910390f35b348015610db457600080fd5b50610dcf6004803603810190610dca91906144a7565b61230a565b005b348015610ddd57600080fd5b50610de661232b565b604051610df391906150c7565b60405180910390f35b348015610e0857600080fd5b50610e11612331565b604051610e1e9190614e54565b60405180910390f35b348015610e3357600080fd5b50610e4e6004803603810190610e499190614541565b612344565b005b348015610e5c57600080fd5b50610e776004803603810190610e729190614541565b612366565b005b610e936004803603810190610e8e9190614600565b612388565b005b348015610ea157600080fd5b50610ebc6004803603810190610eb7919061423b565b612864565b604051610ec99190614e54565b60405180910390f35b348015610ede57600080fd5b50610ef96004803603810190610ef4919061444d565b6128f8565b005b348015610f0757600080fd5b50610f226004803603810190610f1d919061420e565b61291c565b005b348015610f3057600080fd5b50610f4b6004803603810190610f46919061444d565b6129a0565b005b60188054610f5a90615466565b80601f0160208091040260200160405190810160405280929190818152602001828054610f8690615466565b8015610fd35780601f10610fa857610100808354040283529160200191610fd3565b820191906000526020600020905b815481529060010190602001808311610fb657829003601f168201915b505050505081565b6000610fe6826129cb565b9050919050565b610ff5612a5d565b80600e60006101000a81548160ff02191690831515021790555050565b61101a612a5d565b8060159080519060200190611030929190613e04565b5050565b60606004805461104390615466565b80601f016020809104026020016040519081016040528092919081815260200182805461106f90615466565b80156110bc5780601f10611091576101008083540402835291602001916110bc565b820191906000526020600020905b81548152906001019060200180831161109f57829003601f168201915b5050505050905090565b60006110d182612adb565b611107576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6008600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60001515601960009054906101000a900460ff1615151461119b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119290614ee7565b60405180910390fd5b6111a58282612b3a565b5050565b601580546111b690615466565b80601f01602080910402602001604051908101604052809291908181526020018280546111e290615466565b801561122f5780601f106112045761010080835404028352916020019161122f565b820191906000526020600020905b81548152906001019060200180831161121257829003601f168201915b505050505081565b600a5481565b737f429dc5ffda5374bb09a1ba390ffebdea4797a481565b600061125f612c7e565b6003546002540303905090565b7f3a2f235c9daaf33349d300aadff2f15078a89df81bcfdd45ba11c8f816bddc6f81565b600f6020528060005260406000206000915090505481565b60006112b382612c87565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461131a576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008061132684612d55565b9150915061133c8187611337612d7c565b612d84565b611388576113518661134c612d7c565b612864565b611387576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156113ef576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113fc8686866001612dc8565b801561140757600082555b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154600101919050819055506114d5856114b1888887612e9f565b7c020000000000000000000000000000000000000000000000000000000017612ec7565b600660008681526020019081526020016000208190555060007c02000000000000000000000000000000000000000000000000000000008416141561155d57600060018501905060006006600083815260200190815260200160002054141561155b57600254811461155a578360066000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46115c58686866001612ef2565b505050505050565b6115d5612a5d565b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060016000838152602001908152602001600020600101549050919050565b6116637f3a2f235c9daaf33349d300aadff2f15078a89df81bcfdd45ba11c8f816bddc6f33611d70565b6116a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169990614f87565b60405180910390fd5b6000805b82518110156116ea578281815181106116c2576116c16155cd565b5b6020026020010151826116d59190615231565b915080806116e2906154c9565b9150506116a6565b508060001061172e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172590615087565b60405180910390fd5b600b548161173a611255565b6117449190615231565b1115611785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177c90614fa7565b60405180910390fd5b60005b82518110156117ef576117dc8585838181106117a7576117a66155cd565b5b90506020020160208101906117bc919061420e565b8483815181106117cf576117ce6155cd565b5b6020026020010151612ef8565b80806117e7906154c9565b915050611788565b5050505050565b60115481565b61180582611619565b61180e81612f16565b6118188383612f2a565b505050565b61182561300a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906150a7565b60405180910390fd5b61189c8282613012565b5050565b6118a8612a5d565b80600e60016101000a81548160ff02191690831515021790555050565b6118cd612a5d565b6000737f429dc5ffda5374bb09a1ba390ffebdea4797a473ffffffffffffffffffffffffffffffffffffffff164760405161190790614d7c565b60006040518083038185875af1925050503d8060008114611944576040519150601f19603f3d011682016040523d82523d6000602084013e611949565b606091505b505090508061195757600080fd5b50565b601960009054906101000a900460ff1681565b61198883838360405180602001604052806000815250612078565b505050565b611995612a5d565b80600a8190555050565b6119a7612a5d565b80601290805190602001906119bd929190613e04565b5050565b6119c9612a5d565b80601790805190602001906119df929190613e04565b5050565b600e60009054906101000a900460ff1681565b6000611a0182612c87565b9050919050565b611a10612a5d565b80601460156101000a81548160ff02191690831515021790555050565b60128054611a3a90615466565b80601f0160208091040260200160405190810160405280929190818152602001828054611a6690615466565b8015611ab35780601f10611a8857610100808354040283529160200191611ab3565b820191906000526020600020905b815481529060010190602001808311611a9657829003601f168201915b505050505081565b611ac3612a5d565b80600b8190555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b35576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b611b8e612a5d565b611b9860006130f4565b565b600d5481565b611ba8612a5d565b8060118190555050565b60606000806000611bc285611acd565b905060008167ffffffffffffffff811115611be057611bdf6155fc565b5b604051908082528060200260200182016040528015611c0e5781602001602082028036833780820191505090505b509050611c19613e8a565b6000611c23612c7e565b90505b838614611cee57611c36816131b8565b9150816040015115611c4757611ce3565b600073ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614611c8757816000015194505b8773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415611ce25780838780600101985081518110611cd557611cd46155cd565b5b6020026020010181815250505b5b806001019050611c26565b508195505050505050919050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611d53612a5d565b80600e60026101000a81548160ff02191690831515021790555050565b60006001600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60178054611de890615466565b80601f0160208091040260200160405190810160405280929190818152602001828054611e1490615466565b8015611e615780601f10611e3657610100808354040283529160200191611e61565b820191906000526020600020905b815481529060010190602001808311611e4457829003601f168201915b505050505081565b606060058054611e7890615466565b80601f0160208091040260200160405190810160405280929190818152602001828054611ea490615466565b8015611ef15780601f10611ec657610100808354040283529160200191611ef1565b820191906000526020600020905b815481529060010190602001808311611ed457829003601f168201915b5050505050905090565b600e60029054906101000a900460ff1681565b611f16612a5d565b8060169080519060200190611f2c929190613e04565b5050565b600e60019054906101000a900460ff1681565b6000801b81565b60001515601960009054906101000a900460ff16151514611fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9790614f27565b60405180910390fd5b611faa82826131e3565b5050565b60106020528060005260406000206000915090505481565b611fce612a5d565b80600c8190555050565b60168054611fe590615466565b80601f016020809104026020016040519081016040528092919081815260200182805461201190615466565b801561205e5780601f106120335761010080835404028352916020019161205e565b820191906000526020600020905b81548152906001019060200180831161204157829003601f168201915b505050505081565b61206e612a5d565b80600d8190555050565b6120838484846112a8565b60008373ffffffffffffffffffffffffffffffffffffffff163b146120e5576120ae848484846132ee565b6120e4576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b60148054906101000a900460ff1681565b600c5481565b6013805461210f90615466565b80601f016020809104026020016040519081016040528092919081815260200182805461213b90615466565b80156121885780601f1061215d57610100808354040283529160200191612188565b820191906000526020600020905b81548152906001019060200180831161216b57829003601f168201915b505050505081565b60606001151560148054906101000a900460ff161515141561226357601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c87b56dd836040518263ffffffff1660e01b815260040161220791906150c7565b60006040518083038186803b15801561221f57600080fd5b505afa158015612233573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061225c919061458a565b9050612305565b60011515601460159054906101000a900460ff16151514156122d7576122b1601660176015601860405160200161229d9493929190614cb9565b60405160208183030381529060405261344e565b6040516020016122c19190614d5a565b6040516020818303038152906040529050612305565b6122e0826135c7565b60136040516020016122f3929190614c95565b60405160208183030381529060405290505b919050565b61231382611619565b61231c81612f16565b6123268383613012565b505050565b600b5481565b601460159054906101000a900460ff1681565b61234c612a5d565b8060139080519060200190612362929190613e04565b5050565b61236e612a5d565b8060189080519060200190612384929190613e04565b5050565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146123f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ed90614f07565b60405180910390fd5b600e60009054906101000a900460ff1615612446576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243d90615027565b60405180910390fd5b83600010612489576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248090615087565b60405180910390fd5b600c548411156124ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c590614fc7565b60405180910390fd5b600b54846124da611255565b6124e49190615231565b1115612525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251c90614fa7565b60405180910390fd5b3484600a5461253491906152b8565b1115612575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256c90615047565b60405180910390fd5b60011515600e60019054906101000a900460ff161515141561275157600033846040516020016125a6929190614c45565b60405160208183030381529060405280519060200120905061260c838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505060115483613666565b61264b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264290615067565b60405180910390fd5b60011515600e60029054906101000a900460ff161515141561274b57600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846126b29190615312565b8511156126f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126eb90614f67565b60405180910390fd5b84600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127439190615231565b925050819055505b50612854565b60011515600e60029054906101000a900460ff161515141561285357601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600d546127ba9190615312565b8411156127fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f390614f67565b60405180910390fd5b83601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461284b9190615231565b925050819055505b5b61285e3385612ef8565b50505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b612900612a5d565b806014806101000a81548160ff02191690831515021790555050565b612924612a5d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298b90614f47565b60405180910390fd5b61299d816130f4565b50565b6129a8612a5d565b80601960006101000a81548160ff02191690831515021790555050565b50505050565b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612a2657506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80612a565750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b612a6561300a565b73ffffffffffffffffffffffffffffffffffffffff16612a83611d22565b73ffffffffffffffffffffffffffffffffffffffff1614612ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad090615007565b60405180910390fd5b565b600081612ae6612c7e565b11158015612af5575060025482105b8015612b33575060007c0100000000000000000000000000000000000000000000000000000000600660008581526020019081526020016000205416145b9050919050565b6000612b45826119f6565b90508073ffffffffffffffffffffffffffffffffffffffff16612b66612d7c565b73ffffffffffffffffffffffffffffffffffffffff1614612bc957612b9281612b8d612d7c565b612864565b612bc8576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826008600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60006001905090565b60008082905080612c96612c7e565b11612d1e57600254811015612d1d5760006006600083815260200190815260200160002054905060007c010000000000000000000000000000000000000000000000000000000082161415612d1b575b6000811415612d11576006600083600190039350838152602001908152602001600020549050612ce6565b8092505050612d50565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006008600085815260200190815260200160002090508092508254915050915091565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b60001515601960009054906101000a900460ff1615151480612e165750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80612e4e575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b612e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e8490614fe7565b60405180910390fd5b612e99848484846129c5565b50505050565b60008060e883901c905060e8612eb686868461367d565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b612f12828260405180602001604052806000815250613686565b5050565b612f2781612f2261300a565b613724565b50565b612f348282611d70565b61300657600180600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612fab61300a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600033905090565b61301c8282611d70565b156130f05760006001600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061309561300a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6131c0613e8a565b6131dc60066000848152602001908152602001600020546137c1565b9050919050565b80600960006131f0612d7c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661329d612d7c565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516132e29190614e54565b60405180910390a35050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02613314612d7c565b8786866040518563ffffffff1660e01b81526004016133369493929190614de6565b602060405180830381600087803b15801561335057600080fd5b505af192505050801561338157506040513d601f19601f8201168201806040525081019061337e9190614514565b60015b6133fb573d80600081146133b1576040519150601f19603f3d011682016040523d82523d6000602084013e6133b6565b606091505b506000815114156133f3576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6060600082511415613471576040518060200160405280600081525090506135c2565b6000604051806060016040528060408152602001615ba060409139905060006003600285516134a09190615231565b6134aa9190615287565b60046134b691906152b8565b905060006020826134c79190615231565b67ffffffffffffffff8111156134e0576134df6155fc565b5b6040519080825280601f01601f1916602001820160405280156135125781602001600182028036833780820191505090505b509050818152600183018586518101602084015b81831015613581576003830192508251603f8160121c168501518253600182019150603f81600c1c168501518253600182019150603f8160061c168501518253600182019150603f8116850151825360018201915050613526565b60038951066001811461359b57600281146135ab576135b6565b613d3d60f01b60028303526135b6565b603d60f81b60018303525b50505050508093505050505b919050565b60606135d282612adb565b613608576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000613612613877565b9050600081511415613633576040518060200160405280600081525061365e565b8061363d84613909565b60405160200161364e929190614c71565b6040516020818303038152906040525b915050919050565b6000826136738584613962565b1490509392505050565b60009392505050565b61369083836139b8565b60008373ffffffffffffffffffffffffffffffffffffffff163b1461371f5760006002549050600083820390505b6136d160008683806001019450866132ee565b613707576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181106136be57816002541461371c57600080fd5b50505b505050565b61372e8282611d70565b6137bd576137538173ffffffffffffffffffffffffffffffffffffffff166014613b76565b6137618360001c6020613b76565b604051602001613772929190614d91565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137b49190614ea5565b60405180910390fd5b5050565b6137c9613e8a565b81816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060a082901c816020019067ffffffffffffffff16908167ffffffffffffffff168152505060007c01000000000000000000000000000000000000000000000000000000008316141581604001901515908115158152505060e882901c816060019062ffffff16908162ffffff1681525050919050565b60606012805461388690615466565b80601f01602080910402602001604051908101604052809291908181526020018280546138b290615466565b80156138ff5780601f106138d4576101008083540402835291602001916138ff565b820191906000526020600020905b8154815290600101906020018083116138e257829003601f168201915b5050505050905090565b606060a060405101806040526020810391506000825281835b60011561394d57600184039350600a81066030018453600a81049050806139485761394d565b613922565b50828103602084039350808452505050919050565b60008082905060005b84518110156139ad576139988286838151811061398b5761398a6155cd565b5b6020026020010151613db2565b915080806139a5906154c9565b91505061396b565b508091505092915050565b6000600254905060008214156139fa576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613a076000848385612dc8565b600160406001901b178202600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550613a7e83613a6f6000866000612e9f565b613a7885613ddd565b17612ec7565b6006600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b818114613b1f57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600181019050613ae4565b506000821415613b5b576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806002819055505050613b716000848385612ef2565b505050565b606060006002836002613b8991906152b8565b613b939190615231565b67ffffffffffffffff811115613bac57613bab6155fc565b5b6040519080825280601f01601f191660200182016040528015613bde5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110613c1657613c156155cd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110613c7a57613c796155cd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002613cba91906152b8565b613cc49190615231565b90505b6001811115613d64577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110613d0657613d056155cd565b5b1a60f81b828281518110613d1d57613d1c6155cd565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080613d5d9061543c565b9050613cc7565b5060008414613da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d9f90614ec7565b60405180910390fd5b8091505092915050565b6000818310613dca57613dc58284613ded565b613dd5565b613dd48383613ded565b5b905092915050565b60006001821460e11b9050919050565b600082600052816020526040600020905092915050565b828054613e1090615466565b90600052602060002090601f016020900481019282613e325760008555613e79565b82601f10613e4b57805160ff1916838001178555613e79565b82800160010185558215613e79579182015b82811115613e78578251825591602001919060010190613e5d565b5b509050613e869190613ed9565b5090565b6040518060800160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff168152602001600015158152602001600062ffffff1681525090565b5b80821115613ef2576000816000905550600101613eda565b5090565b6000613f09613f0484615107565b6150e2565b90508083825260208201905082856020860282011115613f2c57613f2b615635565b5b60005b85811015613f5c5781613f4288826141f9565b845260208401935060208301925050600181019050613f2f565b5050509392505050565b6000613f79613f7484615133565b6150e2565b905082815260208101848484011115613f9557613f9461563a565b5b613fa08482856153fa565b509392505050565b6000613fbb613fb684615164565b6150e2565b905082815260208101848484011115613fd757613fd661563a565b5b613fe28482856153fa565b509392505050565b6000613ffd613ff884615164565b6150e2565b9050828152602081018484840111156140195761401861563a565b5b614024848285615409565b509392505050565b60008135905061403b81615b2c565b92915050565b60008083601f84011261405757614056615630565b5b8235905067ffffffffffffffff8111156140745761407361562b565b5b6020830191508360208202830111156140905761408f615635565b5b9250929050565b60008083601f8401126140ad576140ac615630565b5b8235905067ffffffffffffffff8111156140ca576140c961562b565b5b6020830191508360208202830111156140e6576140e5615635565b5b9250929050565b600082601f83011261410257614101615630565b5b8135614112848260208601613ef6565b91505092915050565b60008135905061412a81615b43565b92915050565b60008135905061413f81615b5a565b92915050565b60008135905061415481615b71565b92915050565b60008151905061416981615b71565b92915050565b600082601f83011261418457614183615630565b5b8135614194848260208601613f66565b91505092915050565b600082601f8301126141b2576141b1615630565b5b81356141c2848260208601613fa8565b91505092915050565b600082601f8301126141e0576141df615630565b5b81516141f0848260208601613fea565b91505092915050565b60008135905061420881615b88565b92915050565b60006020828403121561422457614223615644565b5b60006142328482850161402c565b91505092915050565b6000806040838503121561425257614251615644565b5b60006142608582860161402c565b92505060206142718582860161402c565b9150509250929050565b60008060006060848603121561429457614293615644565b5b60006142a28682870161402c565b93505060206142b38682870161402c565b92505060406142c4868287016141f9565b9150509250925092565b600080600080608085870312156142e8576142e7615644565b5b60006142f68782880161402c565b94505060206143078782880161402c565b9350506040614318878288016141f9565b925050606085013567ffffffffffffffff8111156143395761433861563f565b5b6143458782880161416f565b91505092959194509250565b6000806040838503121561436857614367615644565b5b60006143768582860161402c565b92505060206143878582860161411b565b9150509250929050565b600080604083850312156143a8576143a7615644565b5b60006143b68582860161402c565b92505060206143c7858286016141f9565b9150509250929050565b6000806000604084860312156143ea576143e9615644565b5b600084013567ffffffffffffffff8111156144085761440761563f565b5b61441486828701614041565b9350935050602084013567ffffffffffffffff8111156144375761443661563f565b5b614443868287016140ed565b9150509250925092565b60006020828403121561446357614462615644565b5b60006144718482850161411b565b91505092915050565b6000602082840312156144905761448f615644565b5b600061449e84828501614130565b91505092915050565b600080604083850312156144be576144bd615644565b5b60006144cc85828601614130565b92505060206144dd8582860161402c565b9150509250929050565b6000602082840312156144fd576144fc615644565b5b600061450b84828501614145565b91505092915050565b60006020828403121561452a57614529615644565b5b60006145388482850161415a565b91505092915050565b60006020828403121561455757614556615644565b5b600082013567ffffffffffffffff8111156145755761457461563f565b5b6145818482850161419d565b91505092915050565b6000602082840312156145a05761459f615644565b5b600082015167ffffffffffffffff8111156145be576145bd61563f565b5b6145ca848285016141cb565b91505092915050565b6000602082840312156145e9576145e8615644565b5b60006145f7848285016141f9565b91505092915050565b6000806000806060858703121561461a57614619615644565b5b6000614628878288016141f9565b9450506020614639878288016141f9565b935050604085013567ffffffffffffffff81111561465a5761465961563f565b5b61466687828801614097565b925092505092959194509250565b60006146808383614c10565b60208301905092915050565b61469581615346565b82525050565b6146ac6146a782615346565b615512565b82525050565b60006146bd826151ba565b6146c781856151e8565b93506146d283615195565b8060005b838110156147035781516146ea8882614674565b97506146f5836151db565b9250506001810190506146d6565b5085935050505092915050565b61471981615358565b82525050565b61472881615364565b82525050565b6000614739826151c5565b61474381856151f9565b9350614753818560208601615409565b61475c81615649565b840191505092915050565b614770816153c4565b82525050565b6000614781826151d0565b61478b8185615215565b935061479b818560208601615409565b6147a481615649565b840191505092915050565b60006147ba826151d0565b6147c48185615226565b93506147d4818560208601615409565b80840191505092915050565b600081546147ed81615466565b6147f78186615226565b94506001821660008114614812576001811461482357614856565b60ff19831686528186019350614856565b61482c856151a5565b60005b8381101561484e5781548189015260018201915060208101905061482f565b838801955050505b50505092915050565b600061486c602083615215565b915061487782615667565b602082019050919050565b600061488f601583615215565b915061489a82615690565b602082019050919050565b60006148b2600983615226565b91506148bd826156b9565b600982019050919050565b60006148d5601f83615215565b91506148e0826156e2565b602082019050919050565b60006148f8601f83615215565b91506149038261570b565b602082019050919050565b600061491b600f83615226565b915061492682615734565b600f82019050919050565b600061493e602683615215565b91506149498261575d565b604082019050919050565b6000614961600283615226565b915061496c826157ac565b600282019050919050565b6000614984601c83615215565b915061498f826157d5565b602082019050919050565b60006149a7601b83615215565b91506149b2826157fe565b602082019050919050565b60006149ca600383615226565b91506149d582615827565b600382019050919050565b60006149ed601683615215565b91506149f882615850565b602082019050919050565b6000614a10602483615215565b9150614a1b82615879565b604082019050919050565b6000614a33600183615226565b9150614a3e826158c8565b600182019050919050565b6000614a56601683615215565b9150614a61826158f1565b602082019050919050565b6000614a79602083615215565b9150614a848261591a565b602082019050919050565b6000614a9c601683615215565b9150614aa782615943565b602082019050919050565b6000614abf601d83615226565b9150614aca8261596c565b601d82019050919050565b6000614ae260008361520a565b9150614aed82615995565b600082019050919050565b6000614b05601283615215565b9150614b1082615998565b602082019050919050565b6000614b28601783615226565b9150614b33826159c1565b601782019050919050565b6000614b4b600a83615226565b9150614b56826159ea565b600a82019050919050565b6000614b6e602c83615226565b9150614b7982615a13565b602c82019050919050565b6000614b91601783615215565b9150614b9c82615a62565b602082019050919050565b6000614bb4601b83615215565b9150614bbf82615a8b565b602082019050919050565b6000614bd7601183615226565b9150614be282615ab4565b601182019050919050565b6000614bfa602f83615215565b9150614c0582615add565b604082019050919050565b614c19816153ba565b82525050565b614c28816153ba565b82525050565b614c3f614c3a826153ba565b615536565b82525050565b6000614c51828561469b565b601482019150614c618284614c2e565b6020820191508190509392505050565b6000614c7d82856147af565b9150614c8982846147af565b91508190509392505050565b6000614ca182856147af565b9150614cad82846147e0565b91508190509392505050565b6000614cc4826148a5565b9150614cd082876147e0565b9150614cdb82614954565b9150614ce68261490e565b9150614cf282866147e0565b9150614cfd82614954565b9150614d0882614b3e565b9150614d1482856147e0565b9150614d1f82614954565b9150614d2a82614b61565b9150614d3682846147e0565b9150614d41826149bd565b9150614d4c82614a26565b915081905095945050505050565b6000614d6582614ab2565b9150614d7182846147af565b915081905092915050565b6000614d8782614ad5565b9150819050919050565b6000614d9c82614b1b565b9150614da882856147af565b9150614db382614bca565b9150614dbf82846147af565b91508190509392505050565b6000602082019050614de0600083018461468c565b92915050565b6000608082019050614dfb600083018761468c565b614e08602083018661468c565b614e156040830185614c1f565b8181036060830152614e27818461472e565b905095945050505050565b60006020820190508181036000830152614e4c81846146b2565b905092915050565b6000602082019050614e696000830184614710565b92915050565b6000602082019050614e84600083018461471f565b92915050565b6000602082019050614e9f6000830184614767565b92915050565b60006020820190508181036000830152614ebf8184614776565b905092915050565b60006020820190508181036000830152614ee08161485f565b9050919050565b60006020820190508181036000830152614f0081614882565b9050919050565b60006020820190508181036000830152614f20816148c8565b9050919050565b60006020820190508181036000830152614f40816148eb565b9050919050565b60006020820190508181036000830152614f6081614931565b9050919050565b60006020820190508181036000830152614f8081614977565b9050919050565b60006020820190508181036000830152614fa08161499a565b9050919050565b60006020820190508181036000830152614fc0816149e0565b9050919050565b60006020820190508181036000830152614fe081614a03565b9050919050565b6000602082019050818103600083015261500081614a49565b9050919050565b6000602082019050818103600083015261502081614a6c565b9050919050565b6000602082019050818103600083015261504081614a8f565b9050919050565b6000602082019050818103600083015261506081614af8565b9050919050565b6000602082019050818103600083015261508081614b84565b9050919050565b600060208201905081810360008301526150a081614ba7565b9050919050565b600060208201905081810360008301526150c081614bed565b9050919050565b60006020820190506150dc6000830184614c1f565b92915050565b60006150ec6150fd565b90506150f88282615498565b919050565b6000604051905090565b600067ffffffffffffffff821115615122576151216155fc565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561514e5761514d6155fc565b5b61515782615649565b9050602081019050919050565b600067ffffffffffffffff82111561517f5761517e6155fc565b5b61518882615649565b9050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600061523c826153ba565b9150615247836153ba565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561527c5761527b615540565b5b828201905092915050565b6000615292826153ba565b915061529d836153ba565b9250826152ad576152ac61556f565b5b828204905092915050565b60006152c3826153ba565b91506152ce836153ba565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561530757615306615540565b5b828202905092915050565b600061531d826153ba565b9150615328836153ba565b92508282101561533b5761533a615540565b5b828203905092915050565b60006153518261539a565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006153cf826153d6565b9050919050565b60006153e1826153e8565b9050919050565b60006153f38261539a565b9050919050565b82818337600083830152505050565b60005b8381101561542757808201518184015260208101905061540c565b83811115615436576000848401525b50505050565b6000615447826153ba565b9150600082141561545b5761545a615540565b5b600182039050919050565b6000600282049050600182168061547e57607f821691505b602082108114156154925761549161559e565b5b50919050565b6154a182615649565b810181811067ffffffffffffffff821117156154c0576154bf6155fc565b5b80604052505050565b60006154d4826153ba565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561550757615506615540565b5b600182019050919050565b600061551d82615524565b9050919050565b600061552f8261565a565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b7f617070726f76652069732070726f686962697465640000000000000000000000600082015250565b7f7b226e616d65223a220000000000000000000000000000000000000000000000600082015250565b7f5468652063616c6c657220697320616e6f7468657220636f6e74726163742e00600082015250565b7f736574417070726f76616c466f72416c6c2069732070726f6869626974656400600082015250565b7f226465736372697074696f6e223a220000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f222c000000000000000000000000000000000000000000000000000000000000600082015250565b7f6d6178204e465420706572206164647265737320657863656564656400000000600082015250565b7f43616c6c6572206973206e6f742061206169722064726f707065720000000000600082015250565b7f227d5d0000000000000000000000000000000000000000000000000000000000600082015250565b7f6d6178204e4654206c696d697420657863656564656400000000000000000000600082015250565b7f6d6178206d696e7420616d6f756e74207065722073657373696f6e206578636560008201527f6564656400000000000000000000000000000000000000000000000000000000602082015250565b7f7d00000000000000000000000000000000000000000000000000000000000000600082015250565b7f7472616e736665722069732070726f6869626974656400000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f74686520636f6e74726163742069732070617573656400000000000000000000600082015250565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b50565b7f696e73756666696369656e742066756e64730000000000000000000000000000600082015250565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b7f22696d616765223a202200000000000000000000000000000000000000000000600082015250565b7f2261747472696275746573223a5b7b2274726169745f74797065223a2274797060008201527f65222c2276616c7565223a220000000000000000000000000000000000000000602082015250565b7f75736572206973206e6f742077686974656c6973746564000000000000000000600082015250565b7f6e65656420746f206d696e74206174206c656173742031204e46540000000000600082015250565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b615b3581615346565b8114615b4057600080fd5b50565b615b4c81615358565b8114615b5757600080fd5b50565b615b6381615364565b8114615b6e57600080fd5b50565b615b7a8161536e565b8114615b8557600080fd5b50565b615b91816153ba565b8114615b9c57600080fd5b5056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa26469706673582212205b59cbb5ad62f8a3548e7527f92014a64a934f68272cbd420a84bb11bddb553664736f6c63430008070033697066733a2f2f516d526d7046364b764342706f43566837474c3941704656346758464459324b69763346556e665245556b325a6a2f