60806040526000600960006101000a81548160ff0219169083151502179055506001600960016101000a81548160ff021916908315150217905550600a80556014600b55611b39600c556618838370f34000600d5560405180602001604052806000815250600f90805190602001906200007b92919062000237565b503480156200008957600080fd5b506040518060400160405280600f81526020017f6675636b202874686973206e66742900000000000000000000000000000000008152506040518060400160405280600481526020017f4655434b00000000000000000000000000000000000000000000000000000000815250620001166200010a6200016660201b60201c565b6200016e60201b60201c565b81600390805190602001906200012e92919062000237565b5080600490805190602001906200014792919062000237565b50620001586200023260201b60201c565b60018190555050506200034c565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600090565b8280546200024590620002e7565b90600052602060002090601f016020900481019282620002695760008555620002b5565b82601f106200028457805160ff1916838001178555620002b5565b82800160010185558215620002b5579182015b82811115620002b457825182559160200191906001019062000297565b5b509050620002c49190620002c8565b5090565b5b80821115620002e3576000816000905550600101620002c9565b5090565b600060028204905060018216806200030057607f821691505b602082108114156200031757620003166200031d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61386e806200035c6000396000f3fe6080604052600436106102045760003560e01c8063715018a611610118578063a475b5dd116100a0578063dc33e6811161006f578063dc33e68114610722578063e985e9c51461075f578063f2c4ce1e1461079c578063f2fde38b146107c5578063f968adbe146107ee57610204565b8063a475b5dd1461067a578063b88d4fde14610691578063c87b56dd146106ba578063ca69e323146106f757610204565b806395d89b41116100e757806395d89b41146105c8578063a035b1fe146105f3578063a0712d681461061e578063a10866ef1461063a578063a22cb4651461065157610204565b8063715018a6146105205780638da5cb5b1461053757806391b7f5ed146105625780639231ab2a1461058b57610204565b8063389fcf061161019b578063518302271161016a578063518302271461042757806355f804b3146104525780636352211e1461047b578063639814e0146104b857806370a08231146104e357610204565b8063389fcf06146103815780633ccfd60b146103be57806342842e0e146103d5578063484b973c146103fe57610204565b8063095ea7b3116101d7578063095ea7b3146102d957806318160ddd1461030257806323b872dd1461032d57806333bc1c5c1461035657610204565b806301ffc9a71461020957806306fdde0314610246578063081812fc14610271578063081c8c44146102ae575b600080fd5b34801561021557600080fd5b50610230600480360381019061022b9190612c79565b610819565b60405161023d91906130c4565b60405180910390f35b34801561025257600080fd5b5061025b6108ab565b60405161026891906130df565b60405180910390f35b34801561027d57600080fd5b5061029860048036038101906102939190612d51565b61093d565b6040516102a5919061305d565b60405180910390f35b3480156102ba57600080fd5b506102c36109b9565b6040516102d091906130df565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb9190612c3d565b610a47565b005b34801561030e57600080fd5b50610317610bee565b604051610324919061323c565b60405180910390f35b34801561033957600080fd5b50610354600480360381019061034f9190612b37565b610c05565b005b34801561036257600080fd5b5061036b610c15565b60405161037891906130c4565b60405180910390f35b34801561038d57600080fd5b506103a860048036038101906103a39190612ad2565b610c28565b6040516103b591906130c4565b60405180910390f35b3480156103ca57600080fd5b506103d3610c48565b005b3480156103e157600080fd5b506103fc60048036038101906103f79190612b37565b610d0d565b005b34801561040a57600080fd5b5061042560048036038101906104209190612c3d565b610d2d565b005b34801561043357600080fd5b5061043c610e0e565b60405161044991906130c4565b60405180910390f35b34801561045e57600080fd5b5061047960048036038101906104749190612ccb565b610e21565b005b34801561048757600080fd5b506104a2600480360381019061049d9190612d51565b610eb3565b6040516104af919061305d565b60405180910390f35b3480156104c457600080fd5b506104cd610ec5565b6040516104da919061323c565b60405180910390f35b3480156104ef57600080fd5b5061050a60048036038101906105059190612ad2565b610ecb565b604051610517919061323c565b60405180910390f35b34801561052c57600080fd5b50610535610f84565b005b34801561054357600080fd5b5061054c61100c565b604051610559919061305d565b60405180910390f35b34801561056e57600080fd5b5061058960048036038101906105849190612d51565b611035565b005b34801561059757600080fd5b506105b260048036038101906105ad9190612d51565b6110bb565b6040516105bf9190613221565b60405180910390f35b3480156105d457600080fd5b506105dd6110d3565b6040516105ea91906130df565b60405180910390f35b3480156105ff57600080fd5b50610608611165565b604051610615919061323c565b60405180910390f35b61063860048036038101906106339190612d51565b61116b565b005b34801561064657600080fd5b5061064f611479565b005b34801561065d57600080fd5b5061067860048036038101906106739190612c01565b611521565b005b34801561068657600080fd5b5061068f611699565b005b34801561069d57600080fd5b506106b860048036038101906106b39190612b86565b611741565b005b3480156106c657600080fd5b506106e160048036038101906106dc9190612d51565b6117b4565b6040516106ee91906130df565b60405180910390f35b34801561070357600080fd5b5061070c611901565b604051610719919061323c565b60405180910390f35b34801561072e57600080fd5b5061074960048036038101906107449190612ad2565b611907565b604051610756919061323c565b60405180910390f35b34801561076b57600080fd5b5061078660048036038101906107819190612afb565b611919565b60405161079391906130c4565b60405180910390f35b3480156107a857600080fd5b506107c360048036038101906107be9190612d10565b6119ad565b005b3480156107d157600080fd5b506107ec60048036038101906107e79190612ad2565b611a43565b005b3480156107fa57600080fd5b50610803611b3b565b604051610810919061323c565b60405180910390f35b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061087457506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108a45750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6060600380546108ba906134cf565b80601f01602080910402602001604051908101604052809291908181526020018280546108e6906134cf565b80156109335780601f1061090857610100808354040283529160200191610933565b820191906000526020600020905b81548152906001019060200180831161091657829003601f168201915b5050505050905090565b600061094882611b41565b61097e576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6007600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600f80546109c6906134cf565b80601f01602080910402602001604051908101604052809291908181526020018280546109f2906134cf565b8015610a3f5780601f10610a1457610100808354040283529160200191610a3f565b820191906000526020600020905b815481529060010190602001808311610a2257829003601f168201915b505050505081565b6000610a5282611ba0565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610aba576040517f943f7b8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610ad9611c6e565b73ffffffffffffffffffffffffffffffffffffffff1614610b3c57610b0581610b00611c6e565b611919565b610b3b576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826007600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6000610bf8611c76565b6002546001540303905090565b610c10838383611c7b565b505050565b600960009054906101000a900460ff1681565b60116020528060005260406000206000915054906101000a900460ff1681565b610c50612025565b73ffffffffffffffffffffffffffffffffffffffff16610c6e61100c565b73ffffffffffffffffffffffffffffffffffffffff1614610cc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbb906131a1565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610d0a573d6000803e3d6000fd5b50565b610d2883838360405180602001604052806000815250611741565b505050565b610d35612025565b73ffffffffffffffffffffffffffffffffffffffff16610d5361100c565b73ffffffffffffffffffffffffffffffffffffffff1614610da9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da0906131a1565b60405180910390fd5b600c5481610db5610bee565b610dbf9190613321565b1115610e00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df790613121565b60405180910390fd5b610e0a828261202d565b5050565b600960019054906101000a900460ff1681565b610e29612025565b73ffffffffffffffffffffffffffffffffffffffff16610e4761100c565b73ffffffffffffffffffffffffffffffffffffffff1614610e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e94906131a1565b60405180910390fd5b8181600e9190610eae9291906127e3565b505050565b6000610ebe82611ba0565b9050919050565b600b5481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f33576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b610f8c612025565b73ffffffffffffffffffffffffffffffffffffffff16610faa61100c565b73ffffffffffffffffffffffffffffffffffffffff1614611000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff7906131a1565b60405180910390fd5b61100a600061204b565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61103d612025565b73ffffffffffffffffffffffffffffffffffffffff1661105b61100c565b73ffffffffffffffffffffffffffffffffffffffff16146110b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a8906131a1565b60405180910390fd5b80600d8190555050565b6110c3612869565b6110cc8261210f565b9050919050565b6060600480546110e2906134cf565b80601f016020809104026020016040519081016040528092919081815260200182805461110e906134cf565b801561115b5780601f106111305761010080835404028352916020019161115b565b820191906000526020600020905b81548152906001019060200180831161113e57829003601f168201915b5050505050905090565b600d5481565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146111d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d090613141565b60405180910390fd5b600b54816111e633611907565b6111f09190613321565b1115611231576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122890613181565b60405180910390fd5b60008111611274576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126b90613201565b60405180910390fd5b600a548111156112b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b090613161565b60405180910390fd5b600c54816112c5610bee565b6112cf9190613321565b1061130f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130690613121565b60405180910390fd5b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113b65780600d5461136f9190613377565b3410156113b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a8906131e1565b60405180910390fd5b61146c565b600d5481600d546113c79190613377565b6113d191906133d1565b341015611413576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140a906131e1565b60405180910390fd5b6001601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b611476338261202d565b50565b611481612025565b73ffffffffffffffffffffffffffffffffffffffff1661149f61100c565b73ffffffffffffffffffffffffffffffffffffffff16146114f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ec906131a1565b60405180910390fd5b600960009054906101000a900460ff1615600960006101000a81548160ff021916908315150217905550565b611529611c6e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561158e576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806008600061159b611c6e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611648611c6e565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161168d91906130c4565b60405180910390a35050565b6116a1612025565b73ffffffffffffffffffffffffffffffffffffffff166116bf61100c565b73ffffffffffffffffffffffffffffffffffffffff1614611715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170c906131a1565b60405180910390fd5b600960019054906101000a900460ff1615600960016101000a81548160ff021916908315150217905550565b61174c848484611c7b565b60008373ffffffffffffffffffffffffffffffffffffffff163b146117ae576117778484848461212f565b6117ad576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b60606117bf82611b41565b6117fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f5906131c1565b60405180910390fd5b60001515600960019054906101000a900460ff16151514156118ac57600f8054611827906134cf565b80601f0160208091040260200160405190810160405280929190818152602001828054611853906134cf565b80156118a05780601f10611875576101008083540402835291602001916118a0565b820191906000526020600020905b81548152906001019060200180831161188357829003601f168201915b505050505090506118fc565b60006118b78361228f565b905060008151116118d757604051806020016040528060008152506118f8565b806040516020016118e8919061303b565b6040516020818303038152906040525b9150505b919050565b600c5481565b60006119128261232e565b9050919050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6119b5612025565b73ffffffffffffffffffffffffffffffffffffffff166119d361100c565b73ffffffffffffffffffffffffffffffffffffffff1614611a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a20906131a1565b60405180910390fd5b80600f9080519060200190611a3f9291906128ac565b5050565b611a4b612025565b73ffffffffffffffffffffffffffffffffffffffff16611a6961100c565b73ffffffffffffffffffffffffffffffffffffffff1614611abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab6906131a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2690613101565b60405180910390fd5b611b388161204b565b50565b600a5481565b600081611b4c611c76565b11158015611b5b575060015482105b8015611b99575060007c0100000000000000000000000000000000000000000000000000000000600560008581526020019081526020016000205416145b9050919050565b60008082905080611baf611c76565b11611c3757600154811015611c365760006005600083815260200190815260200160002054905060007c010000000000000000000000000000000000000000000000000000000082161415611c34575b6000811415611c2a576005600083600190039350838152602001908152602001600020549050611bff565b8092505050611c69565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b600033905090565b600090565b6000611c8682611ba0565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611ced576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008473ffffffffffffffffffffffffffffffffffffffff16611d0e611c6e565b73ffffffffffffffffffffffffffffffffffffffff161480611d3d5750611d3c85611d37611c6e565b611919565b5b80611d825750611d4b611c6e565b73ffffffffffffffffffffffffffffffffffffffff16611d6a8461093d565b73ffffffffffffffffffffffffffffffffffffffff16145b905080611dbb576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611e22576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611e2f8585856001612385565b6007600084815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154600101919050819055507c020000000000000000000000000000000000000000000000000000000060a042901b611f2c8661238b565b1717600560008581526020019081526020016000208190555060007c020000000000000000000000000000000000000000000000000000000083161415611fb6576000600184019050600060056000838152602001908152602001600020541415611fb4576001548114611fb3578260056000838152602001908152602001600020819055505b5b505b828473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461201e8585856001612395565b5050505050565b600033905090565b61204782826040518060200160405280600081525061239b565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612117612869565b61212861212383611ba0565b612651565b9050919050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612155611c6e565b8786866040518563ffffffff1660e01b81526004016121779493929190613078565b602060405180830381600087803b15801561219157600080fd5b505af19250505080156121c257506040513d601f19601f820116820180604052508101906121bf9190612ca2565b60015b61223c573d80600081146121f2576040519150601f19603f3d011682016040523d82523d6000602084013e6121f7565b606091505b50600081511415612234576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b606061229a82611b41565b6122d0576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006122da6126ed565b90506000815114156122fb5760405180602001604052806000815250612326565b806123058461277f565b604051602001612316929190613017565b6040516020818303038152906040525b915050919050565b600067ffffffffffffffff6040600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054901c169050919050565b50505050565b6000819050919050565b50505050565b60006001549050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612409576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000831415612444576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6124516000858386612385565b600160406001901b178302600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060e16124b6600185146127d9565b901b60a042901b6124c68661238b565b1717600560008381526020019081526020016000208190555060008190506000848201905060008673ffffffffffffffffffffffffffffffffffffffff163b146125ca575b818673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461257a600087848060010195508761212f565b6125b0576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80821061250b5782600154146125c557600080fd5b612635565b5b818060010192508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48082106125cb575b81600181905550505061264b6000858386612395565b50505050565b612659612869565b81816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060a082901c816020019067ffffffffffffffff16908167ffffffffffffffff168152505060007c010000000000000000000000000000000000000000000000000000000083161415816040019015159081151581525050919050565b6060600e80546126fc906134cf565b80601f0160208091040260200160405190810160405280929190818152602001828054612728906134cf565b80156127755780601f1061274a57610100808354040283529160200191612775565b820191906000526020600020905b81548152906001019060200180831161275857829003601f168201915b5050505050905090565b60606080604051019050806040528082600183039250600a81066030018353600a810490505b80156127c557600183039250600a81066030018353600a810490506127a5565b508181036020830392508083525050919050565b6000819050919050565b8280546127ef906134cf565b90600052602060002090601f0160209004810192826128115760008555612858565b82601f1061282a57803560ff1916838001178555612858565b82800160010185558215612858579182015b8281111561285757823582559160200191906001019061283c565b5b5090506128659190612932565b5090565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681526020016000151581525090565b8280546128b8906134cf565b90600052602060002090601f0160209004810192826128da5760008555612921565b82601f106128f357805160ff1916838001178555612921565b82800160010185558215612921579182015b82811115612920578251825591602001919060010190612905565b5b50905061292e9190612932565b5090565b5b8082111561294b576000816000905550600101612933565b5090565b600061296261295d8461327c565b613257565b90508281526020810184848401111561297a57600080fd5b61298584828561348d565b509392505050565b60006129a061299b846132ad565b613257565b9050828152602081018484840111156129b857600080fd5b6129c384828561348d565b509392505050565b6000813590506129da816137dc565b92915050565b6000813590506129ef816137f3565b92915050565b600081359050612a048161380a565b92915050565b600081519050612a198161380a565b92915050565b600082601f830112612a3057600080fd5b8135612a4084826020860161294f565b91505092915050565b60008083601f840112612a5b57600080fd5b8235905067ffffffffffffffff811115612a7457600080fd5b602083019150836001820283011115612a8c57600080fd5b9250929050565b600082601f830112612aa457600080fd5b8135612ab484826020860161298d565b91505092915050565b600081359050612acc81613821565b92915050565b600060208284031215612ae457600080fd5b6000612af2848285016129cb565b91505092915050565b60008060408385031215612b0e57600080fd5b6000612b1c858286016129cb565b9250506020612b2d858286016129cb565b9150509250929050565b600080600060608486031215612b4c57600080fd5b6000612b5a868287016129cb565b9350506020612b6b868287016129cb565b9250506040612b7c86828701612abd565b9150509250925092565b60008060008060808587031215612b9c57600080fd5b6000612baa878288016129cb565b9450506020612bbb878288016129cb565b9350506040612bcc87828801612abd565b925050606085013567ffffffffffffffff811115612be957600080fd5b612bf587828801612a1f565b91505092959194509250565b60008060408385031215612c1457600080fd5b6000612c22858286016129cb565b9250506020612c33858286016129e0565b9150509250929050565b60008060408385031215612c5057600080fd5b6000612c5e858286016129cb565b9250506020612c6f85828601612abd565b9150509250929050565b600060208284031215612c8b57600080fd5b6000612c99848285016129f5565b91505092915050565b600060208284031215612cb457600080fd5b6000612cc284828501612a0a565b91505092915050565b60008060208385031215612cde57600080fd5b600083013567ffffffffffffffff811115612cf857600080fd5b612d0485828601612a49565b92509250509250929050565b600060208284031215612d2257600080fd5b600082013567ffffffffffffffff811115612d3c57600080fd5b612d4884828501612a93565b91505092915050565b600060208284031215612d6357600080fd5b6000612d7184828501612abd565b91505092915050565b612d8381613405565b82525050565b612d9281613405565b82525050565b612da181613417565b82525050565b612db081613417565b82525050565b6000612dc1826132de565b612dcb81856132f4565b9350612ddb81856020860161349c565b612de4816135bf565b840191505092915050565b6000612dfa826132e9565b612e048185613305565b9350612e1481856020860161349c565b612e1d816135bf565b840191505092915050565b6000612e33826132e9565b612e3d8185613316565b9350612e4d81856020860161349c565b80840191505092915050565b6000612e66602683613305565b9150612e71826135d0565b604082019050919050565b6000612e89601883613305565b9150612e948261361f565b602082019050919050565b6000612eac601e83613305565b9150612eb782613648565b602082019050919050565b6000612ecf601a83613305565b9150612eda82613671565b602082019050919050565b6000612ef2602d83613305565b9150612efd8261369a565b604082019050919050565b6000612f15600583613316565b9150612f20826136e9565b600582019050919050565b6000612f38602083613305565b9150612f4382613712565b602082019050919050565b6000612f5b602f83613305565b9150612f668261373b565b604082019050919050565b6000612f7e601583613305565b9150612f898261378a565b602082019050919050565b6000612fa1601983613305565b9150612fac826137b3565b602082019050919050565b606082016000820151612fcd6000850182612d7a565b506020820151612fe06020850182613008565b506040820151612ff36040850182612d98565b50505050565b6130028161346f565b82525050565b61301181613479565b82525050565b60006130238285612e28565b915061302f8284612e28565b91508190509392505050565b60006130478284612e28565b915061305282612f08565b915081905092915050565b60006020820190506130726000830184612d89565b92915050565b600060808201905061308d6000830187612d89565b61309a6020830186612d89565b6130a76040830185612ff9565b81810360608301526130b98184612db6565b905095945050505050565b60006020820190506130d96000830184612da7565b92915050565b600060208201905081810360008301526130f98184612def565b905092915050565b6000602082019050818103600083015261311a81612e59565b9050919050565b6000602082019050818103600083015261313a81612e7c565b9050919050565b6000602082019050818103600083015261315a81612e9f565b9050919050565b6000602082019050818103600083015261317a81612ec2565b9050919050565b6000602082019050818103600083015261319a81612ee5565b9050919050565b600060208201905081810360008301526131ba81612f2b565b9050919050565b600060208201905081810360008301526131da81612f4e565b9050919050565b600060208201905081810360008301526131fa81612f71565b9050919050565b6000602082019050818103600083015261321a81612f94565b9050919050565b60006060820190506132366000830184612fb7565b92915050565b60006020820190506132516000830184612ff9565b92915050565b6000613261613272565b905061326d8282613501565b919050565b6000604051905090565b600067ffffffffffffffff82111561329757613296613590565b5b6132a0826135bf565b9050602081019050919050565b600067ffffffffffffffff8211156132c8576132c7613590565b5b6132d1826135bf565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061332c8261346f565b91506133378361346f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561336c5761336b613532565b5b828201905092915050565b60006133828261346f565b915061338d8361346f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156133c6576133c5613532565b5b828202905092915050565b60006133dc8261346f565b91506133e78361346f565b9250828210156133fa576133f9613532565b5b828203905092915050565b60006134108261344f565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b82818337600083830152505050565b60005b838110156134ba57808201518184015260208101905061349f565b838111156134c9576000848401525b50505050565b600060028204905060018216806134e757607f821691505b602082108114156134fb576134fa613561565b5b50919050565b61350a826135bf565b810181811067ffffffffffffffff8211171561352957613528613590565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4e6f7420656e6f756768206675636b7320746f206d696e740000000000000000600082015250565b7f5468652063616c6c657220697320616e6f7468657220636f6e74726163740000600082015250565b7f43616e2774206d696e742074686174206d616e79206675636b73000000000000600082015250565b7f596f75206861766520656e6f756768206675636b7320696e20796f757220776160008201527f6c6c657420616c72656164792e00000000000000000000000000000000000000602082015250565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4e656564206d6f7265206675636b696e67206574680000000000000000000000600082015250565b7f496e76616c6964207175616e74697479206f66206675636b7300000000000000600082015250565b6137e581613405565b81146137f057600080fd5b50565b6137fc81613417565b811461380757600080fd5b50565b61381381613423565b811461381e57600080fd5b50565b61382a8161346f565b811461383557600080fd5b5056fea2646970667358221220b88eb4329ed3025648c5969ebe9388aa2395c384ae4968287d4c3d3c299929b264736f6c63430008040033