0x608060405234801561001057600080fd5b50604080517f53616669720000000000000000000000000000000000000000000000000000008082526000600580840182905284519384900360259081018520601b6001918201819055948652858301849052865195869003820186208054600160a060020a03199081167361f646be9e40f3c83ae6c74e8b33f2708396d08c179091557f4c7563616e000000000000000000000000000000000000000000000000000000808852878501869052885197889003840188208301879055875292860184905286519586900390910185208054831673445d779acfe04c717cc6b0071d3713d7e405dc991790557f4c616e63656c6f74000000000000000000000000000000000000000000000000808652600880870185905287519687900360289081018820840196909655908652858101849052865195869003909401852080548316735873d3875274753f6680a2256acb02f2e42be1a61790557f486f656c00000000000000000000000000000000000000000000000000000000808652600480870185905287519687900360249081018820600b908501559187528601849052865195869003018520805483167385a4f876a007649048a7d44470ec1d328895b8bb1790557f597761696e546865426173746172640000000000000000000000000000000000808652600f808701859052875196879003602f9081018820909301959095558552928401919091529251918290030190208054909116732ab8d865db8b9455f4a77c70b9d8d953e314de28179055610a8b806102556000396000f3fe608060405260043610610045577c010000000000000000000000000000000000000000000000000000000060003504633ccfd60b8114610047578063c71daccb1461005c575b005b34801561005357600080fd5b5061004561008a565b34801561006857600080fd5b50610071610225565b6040805192835260208301919091528051918290030190f35b6100946000610283565b61009e6001610283565b3360009081527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e060209081526040808320547fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b90925282205490918211156101bc573360008181527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0602052604080822082905580517fa9059cbb00000000000000000000000000000000000000000000000000000000815260048101939093526024830185905251735b0751713b2527d7f002c0c4e2a37e1219610a6b9263a9059cbb92619c409260448084019382900301818388803b1580156101a257600080fd5b5087f11580156101b6573d6000803e3d6000fd5b50505050505b6000811115610221573360008181527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b60205260408082208290555183156108fc0291849190818181858888f1935050505015801561021f573d6000803e3d6000fd5b505b5050565b3360009081527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b60209081526040808320547fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0909252909120549091565b61028c8161071d565b801515600090815260016020526040812054111561071a578015156000908152600160205260408120546102c790606463ffffffff61096016565b60408051600080516020610a20833981519152815260006005820181905291519081900360250190206001015491925090610308908363ffffffff61098616565b604080516000805160206109e0833981519152815260006005820181905291519081900360250190206001015491925090610349908463ffffffff61098616565b60408051600080516020610a0083398151915281526000600882018190529151908190036028019020600101549192509061038a908563ffffffff61098616565b60408051600080516020610a4083398151915281526000600f8201819052915190819003602f01902060010154919250906103cb908663ffffffff61098616565b86151560009081526002602090815260408083208151600080516020610a20833981519152815260058101859052825190819003602501902054600160a060020a03168452909152902054909150610429908563ffffffff6109b816565b86151560008181526002602081815260408084208151600080516020610a208339815191528152600580820187905283516025928190038301812054600160a060020a0390811689528487528589209a909a559787529484526000805160206109e083398151915287529386018590528151958690039093019094205490941682529092529020546104bb90846109b8565b861515600081815260026020818152604080842081516000805160206109e0833981519152815260058101869052825190819003602501812054600160a060020a03908116875282855283872098909855958552928252600080516020610a00833981519152855260088501849052805194859003602801909420549094168252909252902054610552908363ffffffff6109b816565b86151560008181526002602081815260408084208151600080516020610a00833981519152815260088101869052825190819003602801812054600160a060020a03908116875282855283872098909855958552928252600080516020610a408339815191528552600f8501849052805194859003602f019094205490941682529092529020546105e9908263ffffffff6109b816565b86151560008181526002602081815260408084208151600080516020610a408339815191528152600f8101869052825190819003602f01812054600160a060020a0390811687528285528387209890985595855260018352818520549383527f486f656c000000000000000000000000000000000000000000000000000000008652600486018590528151958690036024019095205490951683529290925291909120546106a89186900385900384900383900363ffffffff6109b816565b861515600081815260026020908152604080832081517f486f656c00000000000000000000000000000000000000000000000000000000815260048101859052825190819003602401902054600160a060020a0316845282528083209490945591815260019091529081205550505050505b50565b60008161072b5730316107ca565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051735b0751713b2527d7f002c0c4e2a37e1219610a6b916370a0823191619c40916024808201926020929091908290030181600088803b15801561079c57600080fd5b5087f11580156107b0573d6000803e3d6000fd5b50505050506040513d60208110156107c757600080fd5b50515b9050600081111561094c57811515600081815260026020818152604080842081517f486f656c00000000000000000000000000000000000000000000000000000000815260048101869052825190819003602401812054600160a060020a03908116875282855283872054888852868652600080516020610a408339815191528352600f8301889052845192839003602f018320548216885283865284882054898952878752600080516020610a0083398151915284526008840189905285519384900360280184205483168952848752858920548a8a528888526000805160206109e0833981519152855260058086018b9052875195869003602590810187205486168c52878a52888c20549c8c52998952600080516020610a20833981519152865285018a905286519485900390980190932054909116875291909352932054610935946109299384929091839182908a9063ffffffff6109ca16565b9063ffffffff6109ca16565b821515600090815260016020526040902055610221565b501515600090815260016020526040812055565b600080821161096e57600080fd5b6000828481151561097b57fe5b049150505b92915050565b600082151561099757506000610980565b8282028284828115156109a657fe5b04146109b157600080fd5b9392505050565b6000828201838110156109b157600080fd5b6000828211156109d957600080fd5b5090039056fe4c7563616e0000000000000000000000000000000000000000000000000000004c616e63656c6f740000000000000000000000000000000000000000000000005361666972000000000000000000000000000000000000000000000000000000597761696e546865426173746172640000000000000000000000000000000000a165627a7a72305820d1580cec11d572a8558c338f5a9b896ba4c09a92d206adf44b25291cf5f8df520029