60806040526601c6bf52634000600b55601e600c55603c600d556107d0600e5561270f600f5560056010556001601160006101000a81548160ff0219169083151502179055503480156200005257600080fd5b506040518060400160405280600681526020017f53617a756b6900000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f53617a756b6900000000000000000000000000000000000000000000000000008152508160029080519060200190620000d79291906200020a565b508060039080519060200190620000f09291906200020a565b50620001016200013760201b60201c565b6000819055505050620001296200011d6200013c60201b60201c565b6200014460201b60201c565b60016009819055506200031f565b600090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200021890620002ba565b90600052602060002090601f0160209004810192826200023c576000855562000288565b82601f106200025757805160ff191683800117855562000288565b8280016001018555821562000288579182015b82811115620002875782518255916020019190600101906200026a565b5b5090506200029791906200029b565b5090565b5b80821115620002b65760008160009055506001016200029c565b5090565b60006002820490506001821680620002d357607f821691505b60208210811415620002ea57620002e9620002f0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b613808806200032f6000396000f3fe6080604052600436106102305760003560e01c8063715018a61161012e578063c28f2b85116100ab578063e8a8490c1161006f578063e8a8490c14610806578063e985e9c51461082f578063f10801d21461086c578063f2fde38b14610895578063f968adbe146108be57610230565b8063c28f2b851461070f578063c87b56dd14610738578063d4c56bd614610775578063d5abeb011461079e578063dc33e681146107c957610230565b8063a035b1fe116100f2578063a035b1fe1461064d578063a0712d6814610678578063a22cb46514610694578063b88d4fde146106bd578063c15c150c146106e657610230565b8063715018a61461058c5780637294e1ef146105a35780638da5cb5b146105e057806395d89b411461060b5780639d8e9d921461063657610230565b8063333e44e6116101bc57806355f804b31161018057806355f804b3146104935780635b70ea9f146104bc5780636352211e146104e75780636c0360eb1461052457806370a082311461054f57610230565b8063333e44e6146103d45780633ccfd60b146103ff57806342842e0e1461041657806342d303461461043f578063453c23101461046857610230565b8063095ea7b311610203578063095ea7b31461030357806318160ddd1461032c57806322917c641461035757806323b872dd14610380578063255e4685146103a957610230565b806301ffc9a71461023557806306eabb031461027257806306fdde031461029b578063081812fc146102c6575b600080fd5b34801561024157600080fd5b5061025c60048036038101906102579190612cc1565b6108e9565b60405161026991906130a9565b60405180910390f35b34801561027e57600080fd5b5061029960048036038101906102949190612d68565b61097b565b005b3480156102a757600080fd5b506102b0610a01565b6040516102bd91906130c4565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e89190612d68565b610a93565b6040516102fa9190613042565b60405180910390f35b34801561030f57600080fd5b5061032a60048036038101906103259190612c81565b610b0f565b005b34801561033857600080fd5b50610341610cb6565b60405161034e9190613246565b60405180910390f35b34801561036357600080fd5b5061037e60048036038101906103799190612d68565b610ccd565b005b34801561038c57600080fd5b506103a760048036038101906103a29190612b6b565b610d53565b005b3480156103b557600080fd5b506103be610d63565b6040516103cb91906130a9565b60405180910390f35b3480156103e057600080fd5b506103e9610d76565b6040516103f69190613246565b60405180910390f35b34801561040b57600080fd5b50610414610d7c565b005b34801561042257600080fd5b5061043d60048036038101906104389190612b6b565b610efd565b005b34801561044b57600080fd5b5061046660048036038101906104619190612d68565b610f1d565b005b34801561047457600080fd5b5061047d610fa3565b60405161048a9190613246565b60405180910390f35b34801561049f57600080fd5b506104ba60048036038101906104b59190612d1b565b610fa9565b005b3480156104c857600080fd5b506104d161103b565b6040516104de9190613246565b60405180910390f35b3480156104f357600080fd5b5061050e60048036038101906105099190612d68565b611041565b60405161051b9190613042565b60405180910390f35b34801561053057600080fd5b50610539611053565b60405161054691906130c4565b60405180910390f35b34801561055b57600080fd5b5061057660048036038101906105719190612afe565b6110e1565b6040516105839190613246565b60405180910390f35b34801561059857600080fd5b506105a161119a565b005b3480156105af57600080fd5b506105ca60048036038101906105c59190612afe565b611222565b6040516105d79190613246565b60405180910390f35b3480156105ec57600080fd5b506105f561123a565b6040516106029190613042565b60405180910390f35b34801561061757600080fd5b50610620611264565b60405161062d91906130c4565b60405180910390f35b34801561064257600080fd5b5061064b6112f6565b005b34801561065957600080fd5b5061066261139e565b60405161066f9190613246565b60405180910390f35b610692600480360381019061068d9190612d68565b6113a4565b005b3480156106a057600080fd5b506106bb60048036038101906106b69190612c41565b61165d565b005b3480156106c957600080fd5b506106e460048036038101906106df9190612bbe565b6117d5565b005b3480156106f257600080fd5b5061070d60048036038101906107089190612d68565b611848565b005b34801561071b57600080fd5b5061073660048036038101906107319190612d68565b6118ce565b005b34801561074457600080fd5b5061075f600480360381019061075a9190612d68565b611954565b60405161076c91906130c4565b60405180910390f35b34801561078157600080fd5b5061079c60048036038101906107979190612c81565b6119f3565b005b3480156107aa57600080fd5b506107b3611ad4565b6040516107c09190613246565b60405180910390f35b3480156107d557600080fd5b506107f060048036038101906107eb9190612afe565b611ada565b6040516107fd9190613246565b60405180910390f35b34801561081257600080fd5b5061082d60048036038101906108289190612d68565b611aec565b005b34801561083b57600080fd5b5061085660048036038101906108519190612b2b565b611b72565b60405161086391906130a9565b60405180910390f35b34801561087857600080fd5b50610893600480360381019061088e9190612d68565b611c06565b005b3480156108a157600080fd5b506108bc60048036038101906108b79190612afe565b611ce6565b005b3480156108ca57600080fd5b506108d3611dde565b6040516108e09190613246565b60405180910390f35b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061094457506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806109745750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b610983611de4565b73ffffffffffffffffffffffffffffffffffffffff166109a161123a565b73ffffffffffffffffffffffffffffffffffffffff16146109f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ee90613186565b60405180910390fd5b80600e8190555050565b606060028054610a109061346b565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3c9061346b565b8015610a895780601f10610a5e57610100808354040283529160200191610a89565b820191906000526020600020905b815481529060010190602001808311610a6c57829003601f168201915b5050505050905090565b6000610a9e82611dec565b610ad4576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610b1a82611e4b565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b82576040517f943f7b8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610ba1611f19565b73ffffffffffffffffffffffffffffffffffffffff1614610c0457610bcd81610bc8611f19565b611b72565b610c03576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6000610cc0611f21565b6001546000540303905090565b610cd5611de4565b73ffffffffffffffffffffffffffffffffffffffff16610cf361123a565b73ffffffffffffffffffffffffffffffffffffffff1614610d49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4090613186565b60405180910390fd5b8060108190555050565b610d5e838383611f26565b505050565b601160009054906101000a900460ff1681565b600e5481565b610d84611de4565b73ffffffffffffffffffffffffffffffffffffffff16610da261123a565b73ffffffffffffffffffffffffffffffffffffffff1614610df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610def90613186565b60405180910390fd5b60026009541415610e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3590613206565b60405180910390fd5b600260098190555060003373ffffffffffffffffffffffffffffffffffffffff1647604051610e6c9061302d565b60006040518083038185875af1925050503d8060008114610ea9576040519150601f19603f3d011682016040523d82523d6000602084013e610eae565b606091505b5050905080610ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee9906131a6565b60405180910390fd5b506001600981905550565b610f18838383604051806020016040528060008152506117d5565b505050565b610f25611de4565b73ffffffffffffffffffffffffffffffffffffffff16610f4361123a565b73ffffffffffffffffffffffffffffffffffffffff1614610f99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9090613186565b60405180910390fd5b80600d8190555050565b600d5481565b610fb1611de4565b73ffffffffffffffffffffffffffffffffffffffff16610fcf61123a565b73ffffffffffffffffffffffffffffffffffffffff1614611025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101c90613186565b60405180910390fd5b8181600a919061103692919061292c565b505050565b60105481565b600061104c82611e4b565b9050919050565b600a80546110609061346b565b80601f016020809104026020016040519081016040528092919081815260200182805461108c9061346b565b80156110d95780601f106110ae576101008083540402835291602001916110d9565b820191906000526020600020905b8154815290600101906020018083116110bc57829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611149576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b6111a2611de4565b73ffffffffffffffffffffffffffffffffffffffff166111c061123a565b73ffffffffffffffffffffffffffffffffffffffff1614611216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120d90613186565b60405180910390fd5b61122060006122d0565b565b60126020528060005260406000206000915090505481565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600380546112739061346b565b80601f016020809104026020016040519081016040528092919081815260200182805461129f9061346b565b80156112ec5780601f106112c1576101008083540402835291602001916112ec565b820191906000526020600020905b8154815290600101906020018083116112cf57829003601f168201915b5050505050905090565b6112fe611de4565b73ffffffffffffffffffffffffffffffffffffffff1661131c61123a565b73ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136990613186565b60405180910390fd5b601160009054906101000a900460ff1615601160006101000a81548160ff021916908315150217905550565b600b5481565b6000600b5490506000341480156113cf5750600e54826113c2610cb6565b6113cc9190613305565b11155b156114be5760105482601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114229190613305565b1115611463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145a906130e6565b60405180910390fd5b81601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114b29190613305565b92505081905550600090505b80826114ca919061335b565b34101561150c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150390613146565b60405180910390fd5b601160009054906101000a900460ff1661155b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611552906131e6565b60405180910390fd5b600c548211156115a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159790613226565b60405180910390fd5b600f54826115ac610cb6565b6115b69190613305565b11156115f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ee906131c6565b60405180910390fd5b600d548261160433611ada565b61160e9190613305565b111561164f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164690613166565b60405180910390fd5b6116593383612396565b5050565b611665611f19565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116ca576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600760006116d7611f19565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611784611f19565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117c991906130a9565b60405180910390a35050565b6117e0848484611f26565b60008373ffffffffffffffffffffffffffffffffffffffff163b146118425761180b848484846123b4565b611841576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b611850611de4565b73ffffffffffffffffffffffffffffffffffffffff1661186e61123a565b73ffffffffffffffffffffffffffffffffffffffff16146118c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bb90613186565b60405180910390fd5b80600c8190555050565b6118d6611de4565b73ffffffffffffffffffffffffffffffffffffffff166118f461123a565b73ffffffffffffffffffffffffffffffffffffffff161461194a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194190613186565b60405180910390fd5b80600b8190555050565b606061195f82611dec565b611995576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061199f612514565b90506000815114156119c057604051806020016040528060008152506119eb565b806119ca846125a6565b6040516020016119db929190613009565b6040516020818303038152906040525b915050919050565b6119fb611de4565b73ffffffffffffffffffffffffffffffffffffffff16611a1961123a565b73ffffffffffffffffffffffffffffffffffffffff1614611a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6690613186565b60405180910390fd5b600f5481611a7b610cb6565b611a859190613305565b1115611ac6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abd90613126565b60405180910390fd5b611ad08282612396565b5050565b600f5481565b6000611ae582612600565b9050919050565b611af4611de4565b73ffffffffffffffffffffffffffffffffffffffff16611b1261123a565b73ffffffffffffffffffffffffffffffffffffffff1614611b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5f90613186565b60405180910390fd5b80600f8190555050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611c0e611de4565b73ffffffffffffffffffffffffffffffffffffffff16611c2c61123a565b73ffffffffffffffffffffffffffffffffffffffff1614611c82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7990613186565b60405180910390fd5b600f5481611c8e610cb6565b611c989190613305565b1115611cd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd090613126565b60405180910390fd5b611ce33382612396565b50565b611cee611de4565b73ffffffffffffffffffffffffffffffffffffffff16611d0c61123a565b73ffffffffffffffffffffffffffffffffffffffff1614611d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5990613186565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611dd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc990613106565b60405180910390fd5b611ddb816122d0565b50565b600c5481565b600033905090565b600081611df7611f21565b11158015611e06575060005482105b8015611e44575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b60008082905080611e5a611f21565b11611ee257600054811015611ee15760006004600083815260200190815260200160002054905060007c010000000000000000000000000000000000000000000000000000000082161415611edf575b6000811415611ed5576004600083600190039350838152602001908152602001600020549050611eaa565b8092505050611f14565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b600033905090565b600090565b6000611f3182611e4b565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611f98576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008473ffffffffffffffffffffffffffffffffffffffff16611fb9611f19565b73ffffffffffffffffffffffffffffffffffffffff161480611fe85750611fe785611fe2611f19565b611b72565b5b8061202d5750611ff6611f19565b73ffffffffffffffffffffffffffffffffffffffff1661201584610a93565b73ffffffffffffffffffffffffffffffffffffffff16145b905080612066576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156120cd576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6120da8585856001612657565b6006600084815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154600101919050819055507c020000000000000000000000000000000000000000000000000000000060a042901b6121d78661265d565b1717600460008581526020019081526020016000208190555060007c02000000000000000000000000000000000000000000000000000000008316141561226157600060018401905060006004600083815260200190815260200160002054141561225f57600054811461225e578260046000838152602001908152602001600020819055505b5b505b828473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46122c98585856001612667565b5050505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6123b082826040518060200160405280600081525061266d565b5050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a026123da611f19565b8786866040518563ffffffff1660e01b81526004016123fc949392919061305d565b602060405180830381600087803b15801561241657600080fd5b505af192505050801561244757506040513d601f19601f820116820180604052508101906124449190612cee565b60015b6124c1573d8060008114612477576040519150601f19603f3d011682016040523d82523d6000602084013e61247c565b606091505b506000815114156124b9576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6060600a80546125239061346b565b80601f016020809104026020016040519081016040528092919081815260200182805461254f9061346b565b801561259c5780601f106125715761010080835404028352916020019161259c565b820191906000526020600020905b81548152906001019060200180831161257f57829003601f168201915b5050505050905090565b60606080604051019050806040528082600183039250600a81066030018353600a810490505b80156125ec57600183039250600a81066030018353600a810490506125cc565b508181036020830392508083525050919050565b600067ffffffffffffffff6040600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054901c169050919050565b50505050565b6000819050919050565b50505050565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156126da576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000831415612715576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6127226000858386612657565b600160406001901b178302600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060e161278760018514612922565b901b60a042901b6127978661265d565b1717600460008381526020019081526020016000208190555060008190506000848201905060008673ffffffffffffffffffffffffffffffffffffffff163b1461289b575b818673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461284b60008784806001019550876123b4565b612881576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8082106127dc57826000541461289657600080fd5b612906565b5b818060010192508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a480821061289c575b81600081905550505061291c6000858386612667565b50505050565b6000819050919050565b8280546129389061346b565b90600052602060002090601f01602090048101928261295a57600085556129a1565b82601f1061297357803560ff19168380011785556129a1565b828001600101855582156129a1579182015b828111156129a0578235825591602001919060010190612985565b5b5090506129ae91906129b2565b5090565b5b808211156129cb5760008160009055506001016129b3565b5090565b60006129e26129dd84613286565b613261565b9050828152602081018484840111156129fe576129fd61356a565b5b612a09848285613429565b509392505050565b600081359050612a2081613776565b92915050565b600081359050612a358161378d565b92915050565b600081359050612a4a816137a4565b92915050565b600081519050612a5f816137a4565b92915050565b600082601f830112612a7a57612a79613560565b5b8135612a8a8482602086016129cf565b91505092915050565b60008083601f840112612aa957612aa8613560565b5b8235905067ffffffffffffffff811115612ac657612ac561355b565b5b602083019150836001820283011115612ae257612ae1613565565b5b9250929050565b600081359050612af8816137bb565b92915050565b600060208284031215612b1457612b13613574565b5b6000612b2284828501612a11565b91505092915050565b60008060408385031215612b4257612b41613574565b5b6000612b5085828601612a11565b9250506020612b6185828601612a11565b9150509250929050565b600080600060608486031215612b8457612b83613574565b5b6000612b9286828701612a11565b9350506020612ba386828701612a11565b9250506040612bb486828701612ae9565b9150509250925092565b60008060008060808587031215612bd857612bd7613574565b5b6000612be687828801612a11565b9450506020612bf787828801612a11565b9350506040612c0887828801612ae9565b925050606085013567ffffffffffffffff811115612c2957612c2861356f565b5b612c3587828801612a65565b91505092959194509250565b60008060408385031215612c5857612c57613574565b5b6000612c6685828601612a11565b9250506020612c7785828601612a26565b9150509250929050565b60008060408385031215612c9857612c97613574565b5b6000612ca685828601612a11565b9250506020612cb785828601612ae9565b9150509250929050565b600060208284031215612cd757612cd6613574565b5b6000612ce584828501612a3b565b91505092915050565b600060208284031215612d0457612d03613574565b5b6000612d1284828501612a50565b91505092915050565b60008060208385031215612d3257612d31613574565b5b600083013567ffffffffffffffff811115612d5057612d4f61356f565b5b612d5c85828601612a93565b92509250509250929050565b600060208284031215612d7e57612d7d613574565b5b6000612d8c84828501612ae9565b91505092915050565b612d9e816133b5565b82525050565b612dad816133c7565b82525050565b6000612dbe826132b7565b612dc881856132cd565b9350612dd8818560208601613438565b612de181613579565b840191505092915050565b6000612df7826132c2565b612e0181856132e9565b9350612e11818560208601613438565b612e1a81613579565b840191505092915050565b6000612e30826132c2565b612e3a81856132fa565b9350612e4a818560208601613438565b80840191505092915050565b6000612e636014836132e9565b9150612e6e8261358a565b602082019050919050565b6000612e866026836132e9565b9150612e91826135b3565b604082019050919050565b6000612ea96007836132e9565b9150612eb482613602565b602082019050919050565b6000612ecc601f836132e9565b9150612ed78261362b565b602082019050919050565b6000612eef6013836132e9565b9150612efa82613654565b602082019050919050565b6000612f126020836132e9565b9150612f1d8261367d565b602082019050919050565b6000612f356000836132de565b9150612f40826136a6565b600082019050919050565b6000612f586010836132e9565b9150612f63826136a9565b602082019050919050565b6000612f7b600f836132e9565b9150612f86826136d2565b602082019050919050565b6000612f9e601a836132e9565b9150612fa9826136fb565b602082019050919050565b6000612fc1601f836132e9565b9150612fcc82613724565b602082019050919050565b6000612fe4601c836132e9565b9150612fef8261374d565b602082019050919050565b6130038161341f565b82525050565b60006130158285612e25565b91506130218284612e25565b91508190509392505050565b600061303882612f28565b9150819050919050565b60006020820190506130576000830184612d95565b92915050565b60006080820190506130726000830187612d95565b61307f6020830186612d95565b61308c6040830185612ffa565b818103606083015261309e8184612db3565b905095945050505050565b60006020820190506130be6000830184612da4565b92915050565b600060208201905081810360008301526130de8184612dec565b905092915050565b600060208201905081810360008301526130ff81612e56565b9050919050565b6000602082019050818103600083015261311f81612e79565b9050919050565b6000602082019050818103600083015261313f81612e9c565b9050919050565b6000602082019050818103600083015261315f81612ebf565b9050919050565b6000602082019050818103600083015261317f81612ee2565b9050919050565b6000602082019050818103600083015261319f81612f05565b9050919050565b600060208201905081810360008301526131bf81612f4b565b9050919050565b600060208201905081810360008301526131df81612f6e565b9050919050565b600060208201905081810360008301526131ff81612f91565b9050919050565b6000602082019050818103600083015261321f81612fb4565b9050919050565b6000602082019050818103600083015261323f81612fd7565b9050919050565b600060208201905061325b6000830184612ffa565b92915050565b600061326b61327c565b9050613277828261349d565b919050565b6000604051905090565b600067ffffffffffffffff8211156132a1576132a061352c565b5b6132aa82613579565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b60006133108261341f565b915061331b8361341f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156133505761334f6134ce565b5b828201905092915050565b60006133668261341f565b91506133718361341f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156133aa576133a96134ce565b5b828202905092915050565b60006133c0826133ff565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561345657808201518184015260208101905061343b565b83811115613465576000848401525b50505050565b6000600282049050600182168061348357607f821691505b60208210811415613497576134966134fd565b5b50919050565b6134a682613579565b810181811067ffffffffffffffff821117156134c5576134c461352c565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f53617a756b69204c696d697420436c61696d6564000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536f6c646f757400000000000000000000000000000000000000000000000000600082015250565b7f53617a756b69204c696d697420496e73756666696369656e742046756e647300600082015250565b7f53617a756b69204c696d69742057616c6c657400000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b7f53617a756b692020536f6c646f75740000000000000000000000000000000000600082015250565b7f53617a756b69204c696d6974204d696e74696e67205061757365000000000000600082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f53617a756b69204c696d697420506572205472616e73616374696f6e00000000600082015250565b61377f816133b5565b811461378a57600080fd5b50565b613796816133c7565b81146137a157600080fd5b50565b6137ad816133d3565b81146137b857600080fd5b50565b6137c48161341f565b81146137cf57600080fd5b5056fea264697066735822122000b5aabf6434d8445039939e77cf2716ae8f991c007b53a200a6daae4c0b121764736f6c63430008070033