Loading
60806040526101f160055560016006553480156019575f5ffd5b5060015f81905550620d2f0042602e91906081565b6002819055506283d60042604191906081565b60038190555060ad565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f608982604b565b9150609283604b565b925082820190508082111560a75760a66054565b5b92915050565b613fce806100ba5f395ff3fe608060405234801561000f575f5ffd5b506004361061021a575f3560e01c806370a0823111610123578063b88d4fde116100ab578063e19c74db1161007a578063e19c74db14610624578063e985e9c514610654578063ed1bb2c414610684578063f2fde38b146106a2578063fd0930eb146106be5761021a565b8063b88d4fde1461058c578063c4d66de8146105a8578063c73b9371146105c4578063c87b56dd146105f45761021a565b8063942d2045116100f2578063942d2045146104ea57806395d89b4114610506578063989b294414610524578063a22cb46514610540578063a5d2b1d91461055c5761021a565b806370a0823114610474578063715018a6146104a45780638500a45d146104ae5780638da5cb5b146104cc5761021a565b8063232e623e116101a657806342842e0e1161017557806342842e0e146103d25780634f6ccce7146103ee5780636352211e1461041e578063664a253f1461044e57806369d30725146104585761021a565b8063232e623e1461034a57806323b872dd146103685780632f745c591461038457806332cb6b0c146103b45761021a565b8063095ea7b3116101ed578063095ea7b3146102cc5780631249c58b146102e857806318160ddd146102f2578063202416eb1461031057806321ff99701461032e5761021a565b806301ffc9a71461021e57806306fdde031461024e578063081812fc1461026c57806308a5d0ad1461029c575b5f5ffd5b61023860048036038101906102339190612dd5565b6106dc565b6040516102459190612e1a565b60405180910390f35b6102566106ed565b6040516102639190612ea3565b60405180910390f35b61028660048036038101906102819190612ef6565b61078a565b6040516102939190612f60565b60405180910390f35b6102b660048036038101906102b19190612fa3565b6107a5565b6040516102c39190613085565b60405180910390f35b6102e660048036038101906102e191906130a5565b61084d565b005b6102f0610863565b005b6102fa610929565b60405161030791906130f2565b60405180910390f35b610318610943565b60405161032591906130f2565b60405180910390f35b6103486004803603810190610343919061313e565b610949565b005b610352610972565b60405161035f91906130f2565b60405180910390f35b610382600480360381019061037d9190613169565b610978565b005b61039e600480360381019061039991906130a5565b610a77565b6040516103ab91906130f2565b60405180910390f35b6103bc610b28565b6040516103c991906130f2565b60405180910390f35b6103ec60048036038101906103e79190613169565b610b2e565b005b61040860048036038101906104039190612ef6565b610b4d565b60405161041591906130f2565b60405180910390f35b61043860048036038101906104339190612ef6565b610bcd565b6040516104459190612f60565b60405180910390f35b610456610bde565b005b610472600480360381019061046d919061321a565b610d6d565b005b61048e60048036038101906104899190612fa3565b611031565b60405161049b91906130f2565b60405180910390f35b6104ac6110f5565b005b6104b6611108565b6040516104c391906130f2565b60405180910390f35b6104d461110e565b6040516104e19190612f60565b60405180910390f35b61050460048036038101906104ff9190612ef6565b611143565b005b61050e611155565b60405161051b9190612ea3565b60405180910390f35b61053e60048036038101906105399190612ef6565b6111f3565b005b61055a600480360381019061055591906132b5565b611205565b005b610576600480360381019061057191906132f3565b61121b565b6040516105839190612e1a565b60405180910390f35b6105a660048036038101906105a19190613466565b61129c565b005b6105c260048036038101906105bd9190612fa3565b6112c1565b005b6105de60048036038101906105d99190612ef6565b6114be565b6040516105eb9190612e1a565b60405180910390f35b61060e60048036038101906106099190612ef6565b6114d6565b60405161061b9190612ea3565b60405180910390f35b61063e600480360381019061063991906130a5565b61154c565b60405161064b9190612e1a565b60405180910390f35b61066e600480360381019061066991906134e6565b611576565b60405161067b9190612e1a565b60405180910390f35b61068c611612565b60405161069991906130f2565b60405180910390f35b6106bc60048036038101906106b79190612fa3565b611618565b005b6106c661169c565b6040516106d391906130f2565b60405180910390f35b5f6106e6826116a2565b9050919050565b60605f6106f861171b565b9050805f01805461070890613551565b80601f016020809104026020016040519081016040528092919081815260200182805461073490613551565b801561077f5780601f106107565761010080835404028352916020019161077f565b820191905f5260205f20905b81548152906001019060200180831161076257829003601f168201915b505050505091505090565b5f61079482611742565b5061079e826117c8565b9050919050565b60605f6107b183611031565b90505f8167ffffffffffffffff8111156107ce576107cd613342565b5b6040519080825280602002602001820160405280156107fc5781602001602082028036833780820191505090505b5090505f5f90505b82811015610842576108168582610a77565b82828151811061082957610828613581565b5b6020026020010181815250508080600101915050610804565b508092505050919050565b61085f828261085a61180f565b611816565b5050565b6107c06001610870610929565b61087a91906135db565b11156108bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b290613658565b60405180910390fd5b60025442116108ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f6906136c0565b60405180910390fd5b5f600554905060055f815480929190610917906136de565b91905055506109263382611828565b50565b5f5f610933611845565b9050806002018054905091505090565b60065481565b61095161186c565b8060018190555060045f81548092919061096a906136de565b919050555050565b60035481565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109e8575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016109df9190612f60565b60405180910390fd5b5f6109fb83836109f661180f565b6118f3565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a71578382826040517f64283d7b000000000000000000000000000000000000000000000000000000008152600401610a6893929190613725565b60405180910390fd5b50505050565b5f5f610a81611845565b9050610a8c84611031565b8310610ad15783836040517fa57d13dc000000000000000000000000000000000000000000000000000000008152600401610ac892919061375a565b60405180910390fd5b805f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205491505092915050565b6107c081565b610b4883838360405180602001604052805f81525061129c565b505050565b5f5f610b57611845565b9050610b61610929565b8310610ba6575f836040517fa57d13dc000000000000000000000000000000000000000000000000000000008152600401610b9d92919061375a565b60405180910390fd5b806002018381548110610bbc57610bbb613581565b5b905f5260205f200154915050919050565b5f610bd782611742565b9050919050565b6107c06001610beb610929565b610bf591906135db565b1115610c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2d90613658565b60405180910390fd5b6002544211610c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c71906136c0565b60405180910390fd5b5f610c84336107a5565b90505f5f610c9183611908565b9150915081610cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccc906137cb565b60405180910390fd5b5f600654905060065f815480929190610ced906136de565b9190505550610cfc3382611828565b610d1f825f81518110610d1257610d11613581565b5b6020026020010151611a64565b610d4382600181518110610d3657610d35613581565b5b6020026020010151611a64565b610d6782600281518110610d5a57610d59613581565b5b6020026020010151611a64565b50505050565b6107c06001610d7a610929565b610d8491906135db565b1115610dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbc90613658565b60405180910390fd5b610dcd611ae6565b6003544210610e11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0890613833565b60405180910390fd5b6101f06001600654610e2391906135db565b1115610e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5b9061389b565b60405180910390fd5b60075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60045481526020019081526020015f205f9054906101000a900460ff1615610eff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef690613903565b60405180910390fd5b610f09848461121b565b610f48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3f9061396b565b60405180910390fd5b600160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60045481526020019081526020015f205f6101000a81548160ff0219169083151502179055505f60065490505f60055490505f5f90505b848110156110125783811015610fec578280610fda906136de565b935050610fe73384611828565b611005565b8180610ff7906136de565b9250506110043383611828565b5b8080600101915050610fbf565b508160068190555080600581905550505061102b611b33565b50505050565b5f5f61103b61171b565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110ad575f6040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016110a49190612f60565b60405180910390fd5b806003015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054915050919050565b6110fd61186c565b6111065f611b3c565b565b60025481565b5f5f611118611c0d565b9050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61114b61186c565b8060028190555050565b60605f61116061171b565b905080600101805461117190613551565b80601f016020809104026020016040519081016040528092919081815260200182805461119d90613551565b80156111e85780601f106111bf576101008083540402835291602001916111e8565b820191905f5260205f20905b8154815290600101906020018083116111cb57829003601f168201915b505050505091505090565b6111fb61186c565b8060038190555050565b61121761121061180f565b8383611c34565b5050565b5f5f3360405160200161122e91906139ce565b6040516020818303038152906040528051906020012090506112938484808060200260200160405190810160405280939291908181526020018383602002808284375f81840152601f19601f8201169050808301925050505050505060015483611dab565b91505092915050565b6112a7848484610978565b6112bb6112b261180f565b85858585611dc1565b50505050565b5f6112ca611f6d565b90505f815f0160089054906101000a900460ff161590505f825f015f9054906101000a900467ffffffffffffffff1690505f5f8267ffffffffffffffff161480156113125750825b90505f60018367ffffffffffffffff1614801561134557505f3073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015611353575080155b1561138a576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001855f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156113d7576001855f0160086101000a81548160ff0219169083151502179055505b61144b6040518060400160405280600481526020017f31393834000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f3139383400000000000000000000000000000000000000000000000000000000815250611f94565b611453611faa565b61145c86611fb4565b83156114b6575f855f0160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516114ad9190613a3d565b60405180910390a15b505050505050565b5f5f821180156114cf57506101f082105b9050919050565b60606114e182611742565b505f6114eb611fc8565b90506114f6836114be565b15611523578060405160200161150c9190613ab6565b604051602081830303815290604052915050611547565b806040516020016115349190613b01565b6040516020818303038152906040529150505b919050565b6007602052815f5260405f20602052805f5260405f205f915091509054906101000a900460ff1681565b5f5f61158061171b565b9050806005015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691505092915050565b60055481565b61162061186c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611690575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016116879190612f60565b60405180910390fd5b61169981611b3c565b50565b6101f081565b5f7f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611714575061171382611fe8565b5b9050919050565b5f7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300905090565b5f5f61174d836120c9565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117bf57826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016117b691906130f2565b60405180910390fd5b80915050919050565b5f5f6117d261171b565b9050806004015f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b5f33905090565b6118238383836001612110565b505050565b611841828260405180602001604052805f8152506122dd565b5050565b5f7f645e039705490088daad89bae25049a34f4a9072d398537b1ab2425f24cbed00905090565b61187461180f565b73ffffffffffffffffffffffffffffffffffffffff1661189261110e565b73ffffffffffffffffffffffffffffffffffffffff16146118f1576118b561180f565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016118e89190612f60565b60405180910390fd5b565b5f6118ff848484612300565b90509392505050565b5f60605f600367ffffffffffffffff81111561192757611926613342565b5b6040519080825280602002602001820160405280156119555781602001602082028036833780820191505090505b5090505f5f90505f5f90505b8551811080156119715750600382105b156119f2576101f086828151811061198c5761198b613581565b5b602002602001015111156119e1578581815181106119ad576119ac613581565b5b60200260200101518383815181106119c8576119c7613581565b5b602002602001018181525050816119de906136de565b91505b806119eb906136de565b9050611961565b5060038103611a0957600182935093505050611a5f565b5f5f67ffffffffffffffff811115611a2457611a23613342565b5b604051908082528060200260200182016040528015611a525781602001602082028036833780820191505090505b5090505f81945094505050505b915091565b5f611a705f835f6118f3565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ae257816040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611ad991906130f2565b60405180910390fd5b5050565b60025f5403611b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2190613b70565b60405180910390fd5b60025f81905550565b60015f81905550565b5f611b45611c0d565b90505f815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082825f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b5f7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b5f611c3d61171b565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611caf57826040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401611ca69190612f60565b60405180910390fd5b81816005015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3184604051611d9d9190612e1a565b60405180910390a350505050565b5f82611db7858461241a565b1490509392505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611f66578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401611e1f9493929190613be0565b6020604051808303815f875af1925050508015611e5a57506040513d601f19601f82011682018060405250810190611e579190613c3e565b60015b611edb573d805f8114611e88576040519150601f19603f3d011682016040523d82523d5f602084013e611e8d565b606091505b505f815103611ed357836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611eca9190612f60565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f6457836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611f5b9190612f60565b60405180910390fd5b505b5050505050565b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b611f9c61246b565b611fa682826124ab565b5050565b611fb261246b565b565b611fbc61246b565b611fc5816124e6565b50565b60606040518060a0016040528060698152602001613f3060699139905090565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806120b257507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806120c257506120c18261256a565b5b9050919050565b5f5f6120d361171b565b9050806002015f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b5f61211961171b565b9050818061215357505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612285575f61216285611742565b90505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156121cc57508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156121df57506121dd8185611576565b155b1561222157836040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016122189190612f60565b60405180910390fd5b821561228357848673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b84816004015f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b6122e783836125d3565b6122fb6122f261180f565b5f858585611dc1565b505050565b5f5f61230d8585856126c6565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036123505761234b846128e3565b61238f565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461238e5761238d8185612939565b5b5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036123d0576123cb84612a23565b61240f565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461240e5761240d8585612afd565b5b5b809150509392505050565b5f5f8290505f5f90505b8451811015612460576124518286838151811061244457612443613581565b5b6020026020010151612b90565b91508080600101915050612424565b508091505092915050565b612473612bba565b6124a9576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6124b361246b565b5f6124bc61171b565b905082815f0190816124ce9190613e00565b50818160010190816124e09190613e00565b50505050565b6124ee61246b565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361255e575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016125559190612f60565b60405180910390fd5b61256781611b3c565b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612643575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161263a9190612f60565b60405180910390fd5b5f61264f83835f6118f3565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146126c1575f6040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016126b89190612f60565b60405180910390fd5b505050565b5f5f6126d061171b565b90505f6126dc856120c9565b90505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461271d5761271c818587612bd8565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146127aa5761275c5f865f5f612110565b6001826003015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461282b576001826003015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b85826002015f8781526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550848673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a480925050509392505050565b5f6128ec611845565b90508060020180549050816003015f8481526020019081526020015f20819055508060020182908060018154018082558091505060019003905f5260205f20015f90919091909150555050565b5f612942611845565b90505f61294e84611031565b90505f826001015f8581526020019081526020015f205490505f835f015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090508282146129f2575f815f8581526020019081526020015f2054905080825f8581526020019081526020015f208190555082856001015f8381526020019081526020015f2081905550505b836001015f8681526020019081526020015f205f9055805f8481526020019081526020015f205f9055505050505050565b5f612a2c611845565b90505f60018260020180549050612a439190613ecf565b90505f826003015f8581526020019081526020015f205490505f836002018381548110612a7357612a72613581565b5b905f5260205f200154905080846002018381548110612a9557612a94613581565b5b905f5260205f20018190555081846003015f8381526020019081526020015f2081905550836003015f8681526020019081526020015f205f905583600201805480612ae357612ae2613f02565b5b600190038181905f5260205f20015f905590555050505050565b5f612b06611845565b90505f6001612b1485611031565b612b1e9190613ecf565b905082825f015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f208190555080826001015f8581526020019081526020015f208190555050505050565b5f818310612ba757612ba28284612c9b565b612bb2565b612bb18383612c9b565b5b905092915050565b5f612bc3611f6d565b5f0160089054906101000a900460ff16905090565b612be3838383612caf565b612c96575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c5757806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401612c4e91906130f2565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401612c8d92919061375a565b60405180910390fd5b505050565b5f825f528160205260405f20905092915050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612d6657508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612d275750612d268484611576565b5b80612d6557508273ffffffffffffffffffffffffffffffffffffffff16612d4d836117c8565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612db481612d80565b8114612dbe575f5ffd5b50565b5f81359050612dcf81612dab565b92915050565b5f60208284031215612dea57612de9612d78565b5b5f612df784828501612dc1565b91505092915050565b5f8115159050919050565b612e1481612e00565b82525050565b5f602082019050612e2d5f830184612e0b565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612e7582612e33565b612e7f8185612e3d565b9350612e8f818560208601612e4d565b612e9881612e5b565b840191505092915050565b5f6020820190508181035f830152612ebb8184612e6b565b905092915050565b5f819050919050565b612ed581612ec3565b8114612edf575f5ffd5b50565b5f81359050612ef081612ecc565b92915050565b5f60208284031215612f0b57612f0a612d78565b5b5f612f1884828501612ee2565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612f4a82612f21565b9050919050565b612f5a81612f40565b82525050565b5f602082019050612f735f830184612f51565b92915050565b612f8281612f40565b8114612f8c575f5ffd5b50565b5f81359050612f9d81612f79565b92915050565b5f60208284031215612fb857612fb7612d78565b5b5f612fc584828501612f8f565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61300081612ec3565b82525050565b5f6130118383612ff7565b60208301905092915050565b5f602082019050919050565b5f61303382612fce565b61303d8185612fd8565b935061304883612fe8565b805f5b8381101561307857815161305f8882613006565b975061306a8361301d565b92505060018101905061304b565b5085935050505092915050565b5f6020820190508181035f83015261309d8184613029565b905092915050565b5f5f604083850312156130bb576130ba612d78565b5b5f6130c885828601612f8f565b92505060206130d985828601612ee2565b9150509250929050565b6130ec81612ec3565b82525050565b5f6020820190506131055f8301846130e3565b92915050565b5f819050919050565b61311d8161310b565b8114613127575f5ffd5b50565b5f8135905061313881613114565b92915050565b5f6020828403121561315357613152612d78565b5b5f6131608482850161312a565b91505092915050565b5f5f5f606084860312156131805761317f612d78565b5b5f61318d86828701612f8f565b935050602061319e86828701612f8f565b92505060406131af86828701612ee2565b9150509250925092565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126131da576131d96131b9565b5b8235905067ffffffffffffffff8111156131f7576131f66131bd565b5b602083019150836020820283011115613213576132126131c1565b5b9250929050565b5f5f5f5f6060858703121561323257613231612d78565b5b5f85013567ffffffffffffffff81111561324f5761324e612d7c565b5b61325b878288016131c5565b9450945050602061326e87828801612ee2565b925050604061327f87828801612ee2565b91505092959194509250565b61329481612e00565b811461329e575f5ffd5b50565b5f813590506132af8161328b565b92915050565b5f5f604083850312156132cb576132ca612d78565b5b5f6132d885828601612f8f565b92505060206132e9858286016132a1565b9150509250929050565b5f5f6020838503121561330957613308612d78565b5b5f83013567ffffffffffffffff81111561332657613325612d7c565b5b613332858286016131c5565b92509250509250929050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61337882612e5b565b810181811067ffffffffffffffff8211171561339757613396613342565b5b80604052505050565b5f6133a9612d6f565b90506133b5828261336f565b919050565b5f67ffffffffffffffff8211156133d4576133d3613342565b5b6133dd82612e5b565b9050602081019050919050565b828183375f83830152505050565b5f61340a613405846133ba565b6133a0565b9050828152602081018484840111156134265761342561333e565b5b6134318482856133ea565b509392505050565b5f82601f83011261344d5761344c6131b9565b5b813561345d8482602086016133f8565b91505092915050565b5f5f5f5f6080858703121561347e5761347d612d78565b5b5f61348b87828801612f8f565b945050602061349c87828801612f8f565b93505060406134ad87828801612ee2565b925050606085013567ffffffffffffffff8111156134ce576134cd612d7c565b5b6134da87828801613439565b91505092959194509250565b5f5f604083850312156134fc576134fb612d78565b5b5f61350985828601612f8f565b925050602061351a85828601612f8f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061356857607f821691505b60208210810361357b5761357a613524565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6135e582612ec3565b91506135f083612ec3565b9250828201905080821115613608576136076135ae565b5b92915050565b7f4d617820737570706c79000000000000000000000000000000000000000000005f82015250565b5f613642600a83612e3d565b915061364d8261360e565b602082019050919050565b5f6020820190508181035f83015261366f81613636565b9050919050565b7f4e6f207374617274206d696e74000000000000000000000000000000000000005f82015250565b5f6136aa600d83612e3d565b91506136b582613676565b602082019050919050565b5f6020820190508181035f8301526136d78161369e565b9050919050565b5f6136e882612ec3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361371a576137196135ae565b5b600182019050919050565b5f6060820190506137385f830186612f51565b61374560208301856130e3565b6137526040830184612f51565b949350505050565b5f60408201905061376d5f830185612f51565b61377a60208301846130e3565b9392505050565b7f4e6f20656c696769626c650000000000000000000000000000000000000000005f82015250565b5f6137b5600b83612e3d565b91506137c082613781565b602082019050919050565b5f6020820190508181035f8301526137e2816137a9565b9050919050565b7f5768697465206c697374206d696e7420656e64000000000000000000000000005f82015250565b5f61381d601383612e3d565b9150613828826137e9565b602082019050919050565b5f6020820190508181035f83015261384a81613811565b9050919050565b7f4d617820616476616e636564206e667420737570706c790000000000000000005f82015250565b5f613885601783612e3d565b915061389082613851565b602082019050919050565b5f6020820190508181035f8301526138b281613879565b9050919050565b7f4d696e746564206e6674000000000000000000000000000000000000000000005f82015250565b5f6138ed600a83612e3d565b91506138f8826138b9565b602082019050919050565b5f6020820190508181035f83015261391a816138e1565b9050919050565b7f4e6f742077686974656c697374656420757365720000000000000000000000005f82015250565b5f613955601483612e3d565b915061396082613921565b602082019050919050565b5f6020820190508181035f83015261398281613949565b9050919050565b5f8160601b9050919050565b5f61399f82613989565b9050919050565b5f6139b082613995565b9050919050565b6139c86139c382612f40565b6139a6565b82525050565b5f6139d982846139b7565b60148201915081905092915050565b5f819050919050565b5f67ffffffffffffffff82169050919050565b5f819050919050565b5f613a27613a22613a1d846139e8565b613a04565b6139f1565b9050919050565b613a3781613a0d565b82525050565b5f602082019050613a505f830184613a2e565b92915050565b5f81905092915050565b5f613a6a82612e33565b613a748185613a56565b9350613a84818560208601612e4d565b80840191505092915050565b7f616476616e6365642e6a736f6e00000000000000000000000000000000000000815250565b5f613ac18284613a60565b9150613acc82613a90565b600d8201915081905092915050565b7f62617369632e6a736f6e00000000000000000000000000000000000000000000815250565b5f613b0c8284613a60565b9150613b1782613adb565b600a8201915081905092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f613b5a601f83612e3d565b9150613b6582613b26565b602082019050919050565b5f6020820190508181035f830152613b8781613b4e565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f613bb282613b8e565b613bbc8185613b98565b9350613bcc818560208601612e4d565b613bd581612e5b565b840191505092915050565b5f608082019050613bf35f830187612f51565b613c006020830186612f51565b613c0d60408301856130e3565b8181036060830152613c1f8184613ba8565b905095945050505050565b5f81519050613c3881612dab565b92915050565b5f60208284031215613c5357613c52612d78565b5b5f613c6084828501613c2a565b91505092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302613cc57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613c8a565b613ccf8683613c8a565b95508019841693508086168417925050509392505050565b5f613d01613cfc613cf784612ec3565b613a04565b612ec3565b9050919050565b5f819050919050565b613d1a83613ce7565b613d2e613d2682613d08565b848454613c96565b825550505050565b5f5f905090565b613d45613d36565b613d50818484613d11565b505050565b5b81811015613d7357613d685f82613d3d565b600181019050613d56565b5050565b601f821115613db857613d8981613c69565b613d9284613c7b565b81016020851015613da1578190505b613db5613dad85613c7b565b830182613d55565b50505b505050565b5f82821c905092915050565b5f613dd85f1984600802613dbd565b1980831691505092915050565b5f613df08383613dc9565b9150826002028217905092915050565b613e0982612e33565b67ffffffffffffffff811115613e2257613e21613342565b5b613e2c8254613551565b613e37828285613d77565b5f60209050601f831160018114613e68575f8415613e56578287015190505b613e608582613de5565b865550613ec7565b601f198416613e7686613c69565b5f5b82811015613e9d57848901518255600182019150602085019450602081019050613e78565b86831015613eba5784890151613eb6601f891682613dc9565b8355505b6001600288020188555050505b505050505050565b5f613ed982612ec3565b9150613ee483612ec3565b9250828203905081811115613efc57613efb6135ae565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfe68747470733a2f2f62726f776e2d776f7274687768696c652d616e74656c6f70652d3233342e6d7970696e6174612e636c6f75642f697066732f516d6141644d78386f366b6d6b33594b716f4554334a5a6b56563161764a484844366265664d734a7441625a58742fa2646970667358221220037e4663e5574b4d3430fd8fac0bf74e2bb40e29969f0baadb80c8fda1e2888e64736f6c634300081c0033