PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  7Tc@sddlTddlZddlZddlZddlZddlmZddlj Z ddl Z ddl Z ddl m Z dZdddd d d d d dddddddddddddgZejdZdfZdZdZdZdZdZd Zd!Zd"Zd#Zd$Zd%Zd&Zd'Zd(Z d)Z!d*Z"d+Z#id,e6d-e6d.e6d/e6d0e6d1e6d2e6d3e6d4e6d5e6d6e 6d7e!6d8e"6d9e#6Z$ie%d6e j&j'd:e%e6e j&j'd;e%e6e j&j'd<e%e6e j&j'd=e%e6e j&j'd>e%e6e j&j'd?e%e6e j&j'd@e%e6e j&j'dAe%e6e j&j'dBe%e6e j&j'dCe%e 6e j&j'dDe%e!6e j&j'dEe%e"6e%e#6Z(dZ)dZ*dZ+dZ,dFZ-dGZ.dHZ/id,e)6dIe*6dJe+6dKe,6dLe-6dMe.6dNe/6Z0ide)6e j&j'd:e%e*6e j&j'd@e%e+6e j&j'dOe%e,6e j&j'd:e%e-6e j&j'd=e%e.6e j&j'dAe%e/6Z1dPe2fdQYZ3dRe2fdSYZ4dTe2fdUYZ5dVe2fdWYZ6dXe2fdYYZ7dZe2fd[YZ8e9Z:d\e2fd]YZ;e<e;Z=e>e%e=Z?d^e:fd_e@fd`e@fdae@fdbeAfdceBfddeBfdeeBfdfe?fdgeCfdhe9fdieBfdje8fg e;_DdkZEe%aFdlZGdmZHdnZIdoeJfdpYZKdqeJfdrYZLdseJfdtYZMdueJfdvYZNdweJfdxYZOdyeJfdzYZPd{ejQjRfd|YZSd}ZTdS(~i(t*N(t methodtrace(tUSBErrorsWander Lairson Costat get_backendt LIBUSB_SUCESStLIBUSB_ERROR_IOtLIBUSB_ERROR_INVALID_PARAMtLIBUSB_ERROR_ACCESStLIBUSB_ERROR_NO_DEVICEtLIBUSB_ERROR_NOT_FOUNDtLIBUSB_ERROR_BUSYtLIBUSB_ERROR_TIMEOUTtLIBUSB_ERROR_OVERFLOWtLIBUSB_ERROR_PIPEtLIBUSB_ERROR_INTERRUPTEDtLIBUSB_ERROR_NO_MEMtLIBUSB_ERROR_NOT_SUPPORTEDt+LIBUSB_ERROR_OTHERLIBUSB_TRANSFER_COMPLETEDtLIBUSB_TRANSFER_ERRORtLIBUSB_TRANSFER_TIMED_OUTtLIBUSB_TRANSFER_CANCELLEDtLIBUSB_TRANSFER_STALLtLIBUSB_TRANSFER_NO_DEVICEtLIBUSB_TRANSFER_OVERFLOWsusb.backend.libusb1iiiiiiiiiiiiiiiisSuccess (no error)sInput/output errorsInvalid parameters(Access denied (insufficient permissions)s.No such device (it may have been disconnected)sEntity not founds Resource busysOperation timed outtOverflows Pipe errors/System call interrupted (perhaps due to signal)sInsufficient memorys9Operation not supported or unimplemented on this platforms Unknown errortEIOtEINVALtEACCEStENODEVtENOENTtEBUSYt ETIMEDOUTt EOVERFLOWtEPIPEtEINTRtENOMEMtENOSYSiiisTransfer failedsTransfer timed outsTransfer was cancelledsFor bulk/interrupt endpoints: halt condition detected (endpoint stalled). For control endpoints: control request not supported.sDevice was disconnecteds$Device sent more data than requestedtEAGAINt_libusb_endpoint_descriptorc BsneZdefdefdefdefdefdefdefdefdeefd efg ZRS( tbLengthtbDescriptorTypetbEndpointAddresst bmAttributestwMaxPacketSizet bIntervaltbRefresht bSynchAddresstextrat extra_length(t__name__t __module__tc_uint8tc_uint16tPOINTERtc_ubytetc_intt_fields_(((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyR&s        t_libusb_interface_descriptorc BseZdefdefdefdefdefdefdefdefdefd eefd eefd efg ZRS( R'R(tbInterfaceNumbertbAlternateSettingt bNumEndpointstbInterfaceClasstbInterfaceSubClasstbInterfaceProtocolt iInterfacetendpointR/R0(R1R2R3R5R&R6R7R8(((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyR9s         t_libusb_interfacecBs&eZdeefdefgZRS(t altsettingtnum_altsetting(R1R2R5R9R7R8(((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyRBst_libusb_config_descriptorc Bs}eZdefdefdefdefdefdefdefdefdeefd eefd efg ZRS( R'R(t wTotalLengthtbNumInterfacestbConfigurationValuetiConfigurationR*t bMaxPowert interfaceR/R0( R1R2R3R4R5RBR6R7R8(((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyREs        t_libusb_device_descriptorcBseZdefdefdefdefdefdefdefdefdefd efd efd efd efd efgZRS(R'R(tbcdUSBt bDeviceClasstbDeviceSubClasstbDeviceProtocoltbMaxPacketSize0tidVendort idProductt bcdDevicet iManufacturertiProductt iSerialNumbertbNumConfigurations(R1R2R3R4R8(((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyRLs             t_libusb_iso_packet_descriptorcBs)eZdefdefdefgZRS(tlengtht actual_lengthtstatus(R1R2tc_uintR7R8(((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyRYs  t_libusb_transfercBseZRS((R1R2(((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyR^st dev_handletflagsRAttypettimeoutR\RZR[tcallbackt user_datatbuffertnum_iso_packetstiso_packet_desccCs#t|j}|jt|jS(N(RYRft from_addresst addressofRg(ttransfert list_type((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyt_get_iso_packet_lists cCstjdkrgd }x|D]D}tjdkr>|d}ntjj|}|dk rPqqWnAytdSWn$tk rtj dd t nXt d tjdkrt |}n t|}t |d st d n|S( Ntcygwinsusb-1.0s libusb-1.0tusbtwin32s.dllscygusb-1.0.dlls(Libusb 1.0 could not be loaded in cygwintexc_infosUSB library could not be foundt libusb_init(susb-1.0s libusb-1.0susb(tsystplatformtctypestutilt find_librarytNonetCDLLt Exceptiont_loggerterrortTruetOSErrortWinDLLthasattr(t candidatest candidatetlibnametl((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyt _load_library s&      cCsLttg|j_ttg|j_tg|j_ttttg|j_tttg|j_tg|j _t|j _ tg|j _ttt g|j _t g|j_t tg|j_t ttg|j_t tg|j_t tg|j_t ttg|j_t g|j_t tg|j_t tg|j_t tg|j_tttg|j_tttttg|j_ttg|j_t ttttg|j_t ttt t ttt t!g|j"_t ttttttt!g|j#_t ttttttt!g|j$_tg|j%_tt&|j%_ tt&g|j'_tt&g|j(_d}||_)ttg|j*_d}||_+tg|j,_t|j,_ tg|j-_t|j-_ ytg|j._t|j._ Wnt/k r8nXtg|j0_dS(NcSs-|j}xt|D]}||_qWdS(sThis function is inline in the libusb.h file, so we must implement it. lib.libusb_set_iso_packet_lengths.argtypes = [ POINTER(_libusb_transfer), c_int ] N(tcontentsRlRZ(t transfer_pRZRjRg((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pytlibusb_set_iso_packet_lengthss c Ssg|j} || _|| _t| _|| _t|t| _|| _ || _ || _ || _ dS(sThis function is inline in the libusb.h file, so we must implement it. lib.libusb_fill_iso_transfer.argtypes = [ _libusb_transfer, _libusb_device_handle, c_ubyte, POINTER(c_ubyte), c_int, c_int, _libusb_transfer_cb_fn_p, c_void_p, c_uint ] N( RR_RAt!_LIBUSB_TRANSFER_TYPE_ISOCHRONOUSRaRbtcasttc_void_pReRZRfRdRc( t_libusb_transfer_pR_RAReRZRfRcRdRbRj((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pytlibusb_fill_iso_transfers        (1RR7tlibusb_set_debugtargtypesR5Rqt libusb_exittlibusb_get_device_listtlibusb_free_device_listtlibusb_ref_devicetrestypetlibusb_unref_devicet_libusb_device_handlet libusb_opent libusb_closetlibusb_set_configurationtlibusb_get_configurationtlibusb_claim_interfacetlibusb_release_interfacet libusb_set_interface_alt_settingtlibusb_reset_devicetlibusb_kernel_driver_activetlibusb_detach_kernel_drivertlibusb_attach_kernel_driverRLtlibusb_get_device_descriptorR3REtlibusb_get_config_descriptortlibusb_free_config_descriptorR6t"libusb_get_string_descriptor_asciiR4R]tlibusb_control_transfertlibusb_bulk_transfertlibusb_interrupt_transfertlibusb_alloc_transferR^tlibusb_free_transfertlibusb_submit_transferRtlibusb_get_max_iso_packet_sizeRtlibusb_get_bus_numbertlibusb_get_device_addresstlibusb_get_port_numbertAttributeErrortlibusb_handle_events(tlibRR((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyt_setup_prototypes(s                  cCsit|trt|}nt|tre|jdkre|j}tt||t|qen|S(Ni(t isinstancetintR7tvalueRt _str_errort _libusb_errno(tretvaltret((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyt_check5s  t_DevicecBseZdZdZRS(cCstj||_dS(N(t_libRtdevid(tselfR((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyt__init__@scCstj|jdS(N(RRR(R((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyt__del__Bs(R1R2RR(((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyR?s t_WrapDescriptorcBseZddZdZRS(cCs||_||_dS(N(tobjtdesc(RRR((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyRHs cCst|j|S(N(tgetattrR(Rtname((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyt __getattr__KsN(R1R2RwRR(((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyRGs t_ConfigDescriptorcBs#eZdZdZdZRS(cCs ||_dS(N(R(RR((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyRPscCstj|jdS(N(RRR(R((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyRRscCst|jj|S(N(RRR(RR((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyRTs(R1R2RRR(((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyROs  t _DevIteratorcBs#eZdZdZdZRS(cCs=tt|_ttj|t|jj|_dS(N( R5Rtdev_listRRRtbyrefRtnum_devs(Rtctx((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyRZs ccs0x)t|jD]}t|j|VqWdS(N(trangeRRR(Rti((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyt__iter__`scCstj|jddS(Ni(RRR(R((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyRcs(R1R2RRR(((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyRYs  t _DeviceHandlecBseZdZRS(cCs>t|_|j|_ttj|jt|jdS(N(RthandleRRRRR(Rtdev((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyRgs  (R1R2R(((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyRfst_IsoTransferHandlercBsAeZdZdZddZdZdZdZRS(c Cs|j\}}tj|j|}ttjt||}tj||_ tj |j |j |t |t t||t|jd| |j||dS(N(t buffer_infoRRRRtmathtceiltfloatRRjRRRR5R6t_libusb_transfer_cb_fn_pt_IsoTransferHandler__callbackRwt'_IsoTransferHandler__set_packets_length( RR_teptbuffRbtaddressRZt packet_lengtht packet_count((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyRms  cCstj|jdS(N(RRRj(R((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyRscCsLd|_ttj|jx |jsAttj|q"W|jS(Ni(t"_IsoTransferHandler__callback_doneRRRRjRt-_IsoTransferHandler__compute_size_transf_data(RR((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pytsubmits   cCs,tgt|jjD]}|j^qS(N(tsumRlRjRR[(Rtt((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyt__compute_size_transf_datascCsItj|j|||}|rEt|jj}||d_ndS(Ni(RRRjRlRRZ(RtnRtrt iso_packets((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyt__set_packets_lengths  cCsQ|jjtkrd|_n/t|jj}tjt||t|dS(Ni( RR\tLIBUSB_TRANSFER_COMPLETEDRRRnRt_str_transfer_errort_transfer_errno(RRjR\((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyt __callbacks   N( R1R2RRRwRRRR(((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyRls     t_LibUSBcBs'eZeedZeedZeedZeedZeedZeedZ eedZ eedZ eedZ eed Z eed Zeed Zeed Zeed ZeedZeedZeedZeedZeedZeedZeedZeedZeedZeedZeedZdZdZRS(cCsKtjjj|||_t|_t|jjt |jdS(N( RntbackendtIBackendRRRRRRqR(RR((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyRs  cCs|jj|jdS(N(RRR(R((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyRscCs t|jS(N(RR(R((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pytenumerate_devicesscCst}t|jj|jt||jj|j|_|jj|j|_ y|jj |j|_ Wnt k rd|_ nX|S(N(RLRRRRRRtbusRRRt port_numberRRw(RRtdev_desc((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pytget_device_descriptors "  cCs>tt}t|jj|j|t|t|S(N(R5RERRRRRR(RRtconfigtcfg((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pytget_configuration_descriptors  cCs|j||}||jkr:tdt|n|j|}||jkrotdt|nt|j||S(NsInvalid interface index s Invalid alternate setting index (RRGt IndexErrortstrRKRDRRC(RRtintftaltRRR((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pytget_interface_descriptors cCsT|j||||}||jkr@tdt|nt|j||S(NsInvalid endpoint index (RR<RRRRA(RRRRRRR((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pytget_endpoint_descriptorscCs t|S(N(R(RR((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyt open_devicescCs|jj|jdS(N(RRR(RR_((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyt close_devicescCs t|jj|j|dS(N(RRRR(RR_t config_value((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pytset_configurationscCs2t}t|jj|jt||jS(N(R7RRRRRR(RR_R((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pytget_configurations "cCs#t|jj|j||dS(N(RRRR(RR_RRC((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pytset_interface_altsettings cCs t|jj|j|dS(N(RRRR(RR_R((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pytclaim_interfacescCs t|jj|j|dS(N(RRRR(RR_R((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pytrelease_interfacescCs"|j|jj|||||S(N(t_LibUSB__writeRR(RR_RRtdataRb((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyt bulk_writes cCs"|j|jj|||||S(N(t _LibUSB__readRR(RR_RRtsizeRb((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyt bulk_reads cCs"|j|jj|||||S(N(RRR(RR_RRRRb((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyt intr_writes cCs"|j|jj|||||S(N(R RR(RR_RRR Rb((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyt intr_reads cCs%t||||}|j|jS(N(RRR(RR_RRRRbthandler((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyt iso_write scCs<tjd|}t||||}||j|j S(Nt(t_interoptas_arrayRRR(RR_RRR RbRR((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pytiso_read%sc Cstjj|tjjkr'|}ntjd|}|j\} } | |j9} t|j j |j ||||t | t t| |} tjj|tjjkr| jS|| j SdS(Ni(i(RnRutctrl_directiontCTRL_OUTRRRtitemsizeRRRRRR5R6R( RR_t bmRequestTypetbRequesttwValuetwIndextdata_or_wLengthRbRtaddrRZR((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyt ctrl_transfer+s"     cCst|jj|jdS(N(RRRR(RR_((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyt reset_deviceKscCs"tt|jj|j|S(N(tboolRRRR(RR_R((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pytis_kernel_driver_activeOscCs t|jj|j|dS(N(RRRR(RR_R((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pytdetach_kernel_driverTscCs t|jj|j|dS(N(RRRR(RR_R((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pytattach_kernel_driverXsc Cs|j\}}||j9}t} ||j|t|tt|t| |} | jom| t ks}t | n| jS(N( RRR7RRR5R6RRR R( RtfnR_RRRRbRRZt transferredR((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyt__write\s      c Cstjd|}|j\}} | |j9} t} ||j|t|tt| t | |} | j o| t kst | n|| j S(NR( RRRRR7RRR5R6RRR R( RR$R_RRR RbRRRZR%R((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyt__readls      (R1R2RRzRRRRRRRRRRRRRRR R R RRRRRR!R"R#RR (((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyRs6       cCs\y0tdkr%tattnttSWn%tk rWtjddtdSXdS(Ns Error loading libusb 1.0 backendRp( RRwRRRRyRzR{R|(((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyR|s    (URtt ctypes.utiltusb.utilRnRrtloggingt usb._debugRt usb._interopRterrnoRtusb.coreRt __author__t__all__t getLoggerRzt_LIBUSB_TRANSFER_TYPE_CONTROLRt_LIBUSB_TRANSFER_TYPE_BULKt_LIBUSB_TRANSFER_TYPE_INTERRUPTtLIBUSB_SUCCESSRRRRR R R R R RRRtLIBUSB_ERROR_OTHERRRwt__dict__tgetRRRRRRRRRRt StructureR&R9RBRERLRYRRR^R5Rt CFUNCTYPERR3R]R7t py_objectR8RlRRRRtobjectRRRRRRRRRR(((s7/usr/lib/python2.7/site-packages/usb/backend/libusb1.pyts                                 6