RSRC LVINLBVWwT w4p!<@ -'{C5m@9 3)URGFN *ُ B~0ُ B~LM hp+ϚF~JHnjJLVIN open loop.vi LVINDAQmx Start Task.viPTH09DAQmx configuretask.llbDAQmx Start Task.vi $@pTaskNIDAQtask/channels in@pTaskNIDAQtask out @!status @code@0source@Perror in@P error outL  DAQxDAQxPOLY DAQmx Read.viPTH0)DAQmxread.llb DAQmx Read.viqe^DAQxDAQxLVIN)DAQmx Read (Analog 1D DBL NChan 1Samp).viPTH0EDAQmxread.llb)DAQmx Read (Analog 1D DBL NChan 1Samp).vi $@pTaskNIDAQtask/channels in@pTaskNIDAQtask out@ Waveform@@data @ timeout @!status @code@0source@Perror in@P error outL    DAQxDAQxPOLYDAQmx Create Virtual Channel.viPTH0FDAQmxcreate channels.llbDAQmx Create Virtual Channel.vifDAQxDAQxLVIN(DAQmx Create Channel (CI-Count Edges).viPTH0ODAQmxcreate channels.llb(DAQmx Create Channel (CI-Count Edges).vi@pTaskNIDAQtask in@ initial count@count direction @edge@pTaskNIDAQtask out@7counter@0name to assign @!status @code@0source@P error in@P error outL     DAQxDAQxPOLYNI_MAPro.lvlibBasic Averaged DC-RMS.viPTH09measure madcrms.llbBasic Averaged DC-RMS.viίx=LVINNI_MAPro.lvlib#Basic Averaged DC-RMS for 1 Chan.viPTH0Dmeasure madcrms.llb#Basic Averaged DC-RMS for 1 Chan.vi @!status @code@0source@P error out@ RMS value@ DC value@ uncertainty @!Warning@0comments@P measurement info @!reset @Perror in (no error)8@Rectangular (none)Hanning Low side lobewindow*@Linear Exponentialaveraging type@T signal in<   x  LVIN'DAQmx Read (Counter U32 1Chan 1Samp).viPTH0CDAQmxread.llb'DAQmx Read (Counter U32 1Chan 1Samp).vi $@pTaskNIDAQtask/channels in@pTaskNIDAQtask out @data @ timeout @!status @code@0source@Perror in@P error outL   DAQxDAQxPOLYDAQmx Write.viPTH0+DAQmx write.llbDAQmx Write.vi[. DAQxDAQxLVIN'DAQmx Write (Analog DBL 1Chan 1Samp).viPTH0DDAQmx write.llb'DAQmx Write (Analog DBL 1Chan 1Samp).vi $@pTaskNIDAQtask/channels in@! auto start@pTaskNIDAQtask out @ data @ timeout*@%number of samples written per channel @!status @code@0source@P error in@P error outL     DAQxDAQxLVINDAQmx Stop Task.viPTH08DAQmx configuretask.llbDAQmx Stop Task.vi $@pTaskNIDAQtask/channels in@pTaskNIDAQtask out @!status @code@0source@Perror in@P error outL DAQxDAQxLVINSimple Error Handler.viPTH06Utility ERROR.LLBSimple Error Handler.vi @!error?@code out@error code (no error:0)@0error source (" ")@0 source out @!status @code@0source@P error out@0message9DialogType.ctl!@type of dialog (OK msg:1) @Perror in (no error)4     a cx d0` P c @flg@oRt@eof@Pudf@0DAQ Card @0dfd @0txd @0old @0extP "@7 UP/DN Signal Terminal@7 dfd@7 txd@7 old@7 extP @ProductCategory@dfd@txd@old@extP  P @ @ P c @7 ActiveDev@7 dfd@7 txd@7 old@7 extP "#$%& c@ velocity from tachometer@ dfd@ txd@ old@ extP )*+,-0 P00 @2*P//0000013000 @4 ! @6P6771888000000900: @; @13 P>>> @?P9999P1999 @BP0000P 0000D00 @E P 5<=@<A=CF @8PHPI00I @PKKKB PP  @N@1 P1 @QP M==O:PMRM P8 @T*P888888888000000U c @!status @code@0source$@PXYZerror out for Counter 2@P91dfd@P91txd@P91old@P91extP [\]^_ c? @ dataP b*+,- P888 c4@ estimated velocityP f*+,- c0*@PXYZerror out for output channelP i\]^_@ motor speed controlP k*+,- c$2@pChannelNIDAQSselect control channel here!@pChannelNIDAQdfd@pChannelNIDAQtxd@pChannelNIDAQold@pChannelNIDAQextP nopqr"@PXYZerror out for CounterP t\]^_ c@7 counter(s)@7dfd@7txd@7old@7extP wxyz{*@ %actural number of samples to averageP }*+,-@ loop delayP *+,- c*@ %sliding average of estimated velocityP *+,- c!,@ &sliding average of estimated velocityP *+,-@ number of samplesP *+,-@ Estimated velocityP *+,- c1<@pChannelNIDAQ&Select position and tachometer channelP opqr@ real positionP *+,- @ GaugeP *+,-(@ #Numeric reading of angular odometerP *+,- @ DegreesP *+,-@ Degrees (decimal)P *+,-@ Number of RevolutionsP *+,- @!stop@!dfd@!txd@!old@!extP c#@Total Degrees RotatedP @ CLK pulsesP P770 @PP= P1p DAQmx ChannelNIDAQp DAQmx DeviceNIDAQ @6 P@ y@ Degrees/revolution@ upper limit@ lower limit@ f @index@y@n @ timeout@! auto start @ element@0 channel name@ initial count@count direction @ P @edge @ P c ch d@PXYZerror in c@pTaskNIDAQtask in@0name to assign@7counter@PXYZ error out @PXYZerror in (no error)@0 ProductType@!DevIsSimulated"nw$@p DAQmx DeviceNIDAQ reference c(@millisecond timer value9DialogType.ctl!@type of dialog (OK msg:1) c@error code (no error:0) @!error?@code out@0error source (" ")@0 source out@0message@ Waveform@@data ck c< c. c" @!reset@T signal in*@Linear Exponentialaveraging type8@Rectangular (none)Hanning Low side lobewindow c@ uncertainty @!Warning@0comments@Pmeasurement info@ RMS value@ DC value@milliseconds to wait @data8 c @*@%number of samples written per channel c8 cl c c| cH c c c  c  c cP1111 c  c c c `>P00//////////////// d$P000000 d@ 0 !'(.G JL S V V W`0acd0egd0hj0ald0V ms!u0v|(~d0ed0V G JL S V V d0ed0eG JL S V V (d0V d0V d0ed0V d0ed0(00 0      0 8000 00 8008000000088000000088 80 0 0X8881 m09998998X989888888hhkw 10 0 00 0 0 0  100 00 0 0 0 0k88000n"    "(xZ}T?`Xa6Kw X#oźi[V'ή3h2MEn֤(uIPI?0?RicZwy ě;s{޹BD7-xH! cx>x$j-wAOŅ+~4wAtUUttƖu\׽hT[]n Vkx )?uUY ;vZ~yUe^ҫ6^,j+ݪ|;j׷g]c6^3.qqؘa jWP>U).-.\7BJz/܈ 0W~$>z]})>yWâg GKjޢjzwLgOeuNYwX!xonk9knq֌gߓ\?\Yq=MC}l,\w;)5oޮ% H>དྷeStjKIv'G35St7"*:gucܜ)D/ՐskCkUӓ'8݂ԕJݻeQZ -yE.=snZ] ~TI]- bXSgpe3||Sz 9d-xpRtկW %xv[UiT&#j# @&jv[mغ/dKX܌پp&ڜ#R|vxK&VݜژSY/VܒTDy~?562jD0ˎL LjP@3ɛ?:D4-a疴aMwylG@qOaEcTwJIAynHbLqv|hzGz}¶+z-0ws"6mkSk[;zfZۨc˿ض!"ۘa75\̉gCmڶ1Ƶj`nrrȶܱу FǶh+mdB*UW~XPk* #VU+[dr[ ޓm9rsqɀ4\2s903棡~km1/v1ǁ9̉PZR.qޣ٣8l:_ƺc[,$w(~ h.oX}^c O ]1((7f;nbUcu,t s}Q0;q.iz&,;/@Ͽ} ^+>nwLLB K澁\㐿 | X22ق>aaXr%ċwdQփ9k!ߟFwg7p֋j#I'7K~8Z'͛(<%޵Jpp=o'~Oj_0m.׉ mG/Bϟu_/! 8|ϖ/DZ|7uA<~`\lXnVIDS open loop.vi VIDSSimple Error Handler.viPTH0XFun nilvaiu.dllPTH0 nilvaiu.dll'setChannelTerminalAPXFun nilvaiu.dllPTH0 nilvaiu.dll&get631XFun nilvaiu.dllPTH0 nilvaiu.dll&get29A9VIDSNI_MAPro.lvlib#Basic Averaged DC-RMS for 1 Chan.viPTH0\VIDS'DAQmx Write (Analog DBL 1Chan 1Samp).viPTH0tVIDSDAQmx Stop Task.viPTH0|VIDSDAQmx Start Task.viPTH0TL4VIDS'DAQmx Read (Counter U32 1Chan 1Samp).viPTH0dVIDS)DAQmx Read (Analog 1D DBL NChan 1Samp).viPTH0l<VIDS(DAQmx Create Channel (CI-Count Edges).viPTH0D$m^x \TU/0| 0*(****(*TdD.mV_aQ09@KZmQڮ򖌺ۺ[Nj6ys=Ls<޹T5sOB{*BQzl#.FQ~ݳĠ(/sV[Bo+<ݷWێ6wn !GaYSaq2gj Y$lk"t ú-I5nAc{Yi/L D-\-b7+tP{^eWF{^aWWd+9\{E"^Qnk%h`][e8[$8kKC}s+C!Ls 1ҖKJTv!DR$ITPL }wS]O\٦Ԟ*igև1.GpIݪx]2C"[ qR&ĸ I9N-w*Wiٞ>?|v~ &dA٠%6(֟F #k~~%514i#u(fuTQ"4v!) P֓ꊁd \ǣcYց0Ȋ,],dY*¬ cYљu .`x>f 6jD wet>ZhukpGIf݃JCrQەcaß-f9Cp9{ks=j$2d@'$[mXӅ2ySfC}HxrwRߨ/;FQkcDu &bhhrmBJg ޵>Cw䓠sMW{ŭ^ Ɖa\_L0J q~!R;M:ڤ]r;"SBdkh8D?c?p ә.CN΀7\pՑ}@ MZMR'Ila:(ya&XH}_f@ XžĖ8}[}Hۧ8#iGUd|Ծ$C3TD5\^ܚ)5~W4_WyaJ*JQ'Xq:= UO51]kj۱蓭i$ bOy16`Yof=0;a>hU!Y=S-L|wXoIt޹ tR"5qPg+ti79)ðP3q~L6=\4JčH ;L?@  Bj;MM;ǯOiZM{k"~zKgX:ϔgP)P|(5,N8{:]x]w=!jٞe{6+m2QXH-:"UaRFkh;14 6|3Xä܈Ft6<j0mJMDNav_ ;K,Uffɿtwch+!gM݇Փl)q: Hw^߹ڶP{x^E,cy4歹ƶDf(iz1GIugI Ri1dNU~QMZ,vEcHO1K$'&vha9 5@p/ #NiOԦslLWgG+٣0I4Mu5ɡ(IޠMFM/7x$N>uv[ }*5xtUSDjNA3qz,J: h+* %quRvp$:QqO{)ꡦXֱ&׵D_穫Aju=6|4Ue)R<#G,γ~XoQtݙ[,ޯH;g@%p;{+Y3YEW n{ Yµ(1RҢ)R\Tj֏z•AOc%X?{j9]%l;L!8t(T/QU5trQ9.&V2 CikKT*ߤF먛Ⴞ'V:M% *@?x% d$7>[iBt7Uퟨd({lpNFmT+^6DڀQoCFJTS nRb!܍zlؕ?niL_m]c{]cD~|rz|z,na:@MǴC߳?|;BY4Uʎ3VgS'-NRNjt$RɨSP@L4C0&ʌ-N.f5zJ *0.#h`)cv8/>?RmgKg4XLSX\Rӹߣ=d D.r#;w:U m|ԥnd({]EOpw{NT(U=̐oTVY]'&9g.VzIS#WQΞF}۩>= .0*. iQmi8;MX&H|-' IT{< 쉂YSޫQ>*_?9?ϠkQ l*o5i/y sGQIb BcYnL+F&q5ʬЫf #a#NAOGp tU07:Ϩ%Cna7Aoq7Awk!Ri IQI}-OTH kWFntw]Nn%hI(#Vl(Hh2lܝqy wցnXQD ]>޵eNm%SόX%Ǯ75>"+OFv#݇ "HoI]=Fxy9eS3Ư}uPuϢ჆A}4Q(|^0Hʿki_ŀDZ^^NxO#umumRcp~ _v}Py*1cr>jrG C:8|.F@lM~v06|m:];?9E)J03^|F th%q%nSbBZ*u›/9`RK3k8A7/~Ob_sי 9 ebO3i&*NWb2STy[x]vLidMi؆dmđv{ONi,q(qxoSbhkr6K 3hY$`^ކ  /7B bq}FuQdbEU}11Ќ74Ѱ-ӰF}Ӱ FU6}vѧawcEgM-qC*&j԰6l}T97W V,54lY`v1$nKRST% _܄URaUGjҧ:UH1p:)kgag݋[Cu<: vwxí$[7֏&*HY '<%əN\ '''r!''' y8r`4 '&tM(̌s7ANO7w?wm6ςO@rW hG y WIr$ǃ&V$_8:Au:Lx^Dn^jx^1wc"m޾?+MRRc.z)~H}RwJvHmI @R=m]>Q,TXn7ҷ%y# aL^r>#ÃH. N&'M&d#afKC8D&|?=">/$!,҉6i%d"}'u灼.F8mD<{N!d #i`HCeoKJnf$Jbic@:^e]aJd"}'cǁ) a. B%Y1LXMɝ9Y0F&6#OHF18)~ X"Mep(ycCY mTBAHLp Ȟ >`+K@0H1Vva2kpJB Mcv$ KjFrie3 1W"ed>̗Hg2 '2IJ O$lry$?(?c$/2w3DV1KC8Z&C9$ r #4PC)De$pLyFA\q26FΖjFri3eKDH. xK}9$Y`$pLVQ8%{ɥ!($r#4Y2䝌4 ^EnfdlBay#4dQz g$pL> oH$*$!,@> M. aL~\F.ǘL…2CҾF> &^(iA@9%qfIBH&#/I&^$iAc oadR kPg$ȥb)r ? ciU YaaL6[F pL^FVJENI}1Dnd$pL>JTX+<5$+& aLH#wJ&'29KyE"w0\d2Q}Lrɥ!\*<=%׌K2# 05ͼ-a%RS@H3I(ő o<# mh" ұ]Nk%db:wyݏ *t%5]f6#O0|-H񡐼$F<;tgqo(#3lձ)Qy͵@_%/2GyGm OnH^P&fY ocvFzfsD͖I F1l`$pLd_ %g#HM9] m' DLY( Np3Lhl7㚱ngH7#-Is*} dG%x; 9o_yLq&Dܽ@ȧ{LS S,ޗHގWYj-B[%r8d"}4|WLS#nv; ?nbqD?WCȒ3, c6c#? CDT%(b>Ρs*Ď6RȔEGhHWBdIN#K5dJRddv!dbFNҟ@Qŋ8^p.?jUCSmY!6pZdk9lvn?u{-~HC1#['=c+V4To}Z˳ݶGO~=l_a6H$j y~"NCOѱCqO-W y W"!Eu}ID-"j/"'T?bv  oP6^DSE4^DD#;ױ(*SC.#~2tؚi,ɵ ojļ^|':l$VR:we.ҁ'>qad\qL=>c5zy S/^Gq/GѻJd^6a\nTe@x M ?d] ЋPշ(50`AM=Lo\5ubjy*/TzoH̽X| +sZb^bQ"̫̕Z/Z1ډ]z&G[i*C<mHKᾕrJoa;mSy]OR);E|R}(> Їb*cJ5VRx[5jlkQcy)Ԟ9SwNKJ8gK+꼙7f>T D:;=TfsfzTO bֺ,Y^ɽ^V /!ZË=)P-7c~WLo!\>*<+W=rϬ³rlHY j:5zjj#iLߓߩW䥨IĤ#X(JqKQKQ+Jt5q{&m,'Gk4эYCǧ;?? ܟO)Y&4Oq5C}Nz{nU%Ug}/CK$[F?vN%sm:}T}8}8L^> ] %Xa;a}JN%󚳫f5wsjd^}{*Y_L _$-\ҧF^6ՇV#᠑nbI>gECC EP>2zRcԘ]mVޡ=guHoA{Ub#zW贿Xz권Tj"գb%޻K#ԮivLӴkQj3N3|Rg%2 iߐ`-:E$n=$;/=P1 F,;hx$ J<:P*KD o|n$ #!xEMA$ ^IG)'?$"i];$4sN!$_xr0PyM O%#s{,ޱߤ`ch7WѰs< _HC/ }!#G,>KzG; &_HYAӽ,QF $#,|E9KO V."!&<AI?S)M3ɇr ^3<'(ca‡Cn^0+䝩j9`uȋ ~ 6dsM3yIHi {b&/a~g[^_0).08kfg5gD~qs5ռ-N?g=s7wVK!̟2<Ӧyg8ΙwgMZi&SBy^qCkaW5qǿ5%mSUf?zBYڲ>2khvZ[nn~+leҖ"W\/|}I7N٤-w,hӢ?,bQՋ[1KnXb_%K ^\  8.2& P@ CLK pulses@Total Degrees Rotated @!stop@ Number of Revolutions@ Degrees (decimal) @ Degrees(@ #Numeric reading of angular odometer @ Gauge@ real position<@pChannelNIDAQ&Select position and tachometer channel@ Estimated velocity@ number of samples,@ &sliding average of estimated velocity*@ %sliding average of estimated velocity@ loop delay*@ %actural number of samples to average@7 counter(s) @!status @code@0source"@Perror out for Counter2@pChannelNIDAQSselect control channel here!@ motor speed control*@Perror out for output channel@ estimated velocity @ data$@Perror out for Counter 2@ velocity from tachometer@7 ActiveDev@ProductCategory"@7 UP/DN Signal Terminal@0DAQ Card@P  !" P# p$%DESCRIPTION: This VI measures the rotation of a quadrature encoder. The quadrature encoder produces 96 pulses/revolution. NOTE: This VI only works with the BNC-2120 Connector Assembly. INSTRUCTIONS: Enter the appropriate device and counter numbers. Wire the BNC-2120 appropriately for the specified counter. By rotating the BNC quadrature encoder knob the vi will display the number of pulses and degrees rotated. KEY PARAMETERS: * device (Counter Group Config.vi): the device number you assigned to the E-Series DAQ device during configuration. * counter: (Counter Group Config.vi) the counter on the E-Series DAQ device you wish to use, either 0 or 1. I/O CONNECTIONS OVERVIEW: On the BNC-2120, connect the CLK signal to the Source of the counter being used. For CTR0, connect CLK to CTR Source 0 (PFI8). For CTR1, connect CLK to CTR Source 1 (PFI3). Connect UP/DN signal to the direction line of the DAQ-STC as follows: For CTR0, connect UP/DN to DIO6. For CTR1, connect UP/DN to DIO7. LʼnP,UDPLɀ` > @T̀Ù{!@7 counter(s)qe^$@pTaskNIDAQtask/channels in@pTaskNIDAQtask out @data @ timeout @!status @code@0source@P error in@P error outL   P*@ %actural number of samples to average@! auto start@n @ element @ *@ %sliding average of estimated velocity @PP0 @P @edge@count direction@ initial countf@pTaskNIDAQtask in@7counter@0name to assignL$"! %&   P#' @ Degrees@ motor speed control@0 source out@0error source (" ")@error code (no error:0)@code out @!error?L  @0 channel nameL   @ CLK pulses@ Degrees/revolution@ Encoder Pulses/rev@Total Degrees Rotated@ y @!stop@millisecond timer value@milliseconds to wait@ loop delay@ Degrees (decimal)@ Number of Revolutions"@P error out for CounterP(@ #Numeric reading of angular odometer @ Gauge@ Waveform@@BdataLC   PD<@pChannelNIDAQ&Select position and tachometer channel*@%number of samples written per channel @ data 7 @0message9DialogType.ctl!@type of dialog (OK msg:1) @P error in (no error)4 /.-,+JKL  @ real position@ upper limit@ lower limit@ f@y[. LH G   PST2@pChannelNIDAQSselect control channel here!@ number of samplesίx=@ RMS value@ DC value@ uncertainty @!Warning@0comments@P[\]measurement info @!reset8@Rectangular (none)Hanning Low side lobewindow*@Linear Exponentialaveraging type@T signal in< YZ^_L`abx  PXc@ estimated velocity@ Estimated velocity @index,@ &sliding average of estimated velocity @?*@P error out for output channel$@P error out for Counter 2@ velocity from tachometerp DAQmx DeviceNIDAQbm@0 ProductType@ProductCategory@!DevIsSimulated 7 @7 ActiveDev$@p DAQmx DeviceNIDAQ reference@0DAQ Card"@7 UP/DN Signal Terminal @7 CI.CountEdges.DirTermp DAQmx ChannelNIDAQbx 7 s   !!""( ) &% !"$*+,-./0 11233 445554664)777  898:;<;=<=> > ?@@AAEFF G HI MLKJB B NNOPOOPOP877777777777799999QQRQQ7Q77 U  2 VIV*Wdba`L_^ZYeefWWWWWWgghhRRi 2 j j 0/.-,+JKLMfi?HC E ggBC  CH k k 0/.-,+JKLMil?lCBgg9nonpnqrnsLttuuvvppssoLwyzOP*OOPOPFPHP open loop.vidD&' velocity from tachometerTD1b2bDAQ CardH57q5bD$uu UP/DN Signal TerminalH [DProductCategoryHH-qUD ActiveDevHN('0.dD<I<Ivelocity from tachometerHP(5(5PaneH*7**PPaneH)(PD$PgQgTimeH$U D$ AmplitudeHDhuhuRDgtgtsourceH{{PD:G:GcodeHN[N[RD$;H;HstatusM$IVIVPPaneaD~=~= error out for CountercDdeerror out for Counter 2PDAXBXdataHEqFq^D/ <a/ <aestimated velocityH@ M7@ @6RDgtgtsourceH{{PD:G:GcodeHN[N[RD$;H;HstatusM$IVIVP - -PanehD Y Y error out for output channelhDG(H( error out for output channelA@FF   Z [1. Select the position channel and the control channel first before run this program!! 2. If the DAQ Card is PCI-6221, make sure the UP/DN Signal Terminal setting matches the physical connection! If the DAQ Card is PCI-6035E, the UP/DN Signal Terminal setting does not matter, and the physical terminal is DIO6 on BNC-2120 for counter 0. D$oPoPGG5`Control Channel Set Point (to protect motors, the set point was limited to range of -120 to 120)_Dmotor speed controlN7>8> H;g=fHDi.-Sselect control channel here!H&4 &3 RDgtgtsourceH{{PD:G:GcodeHN[N[RD$;H;HstatusM$IVIVP2?2?PaneaD+H+H error out for CounteraD-x:-y: error out for Counter^D#E#=Device and CounterVDGTGT counter(s)HM[MZ qD/0%actural number of samples to averageH3#_5^VDyy loop delayN HHDNH@UtHBUs0.qDLYVLYV%%%sliding average of estimated velocityHP8E8EPaneH:G::PPaneH)(PD$"P/g"Q/gTimeH$  U D$ AmplitudeHD||rD56&&sliding average of estimated velocityH9e;d]D2? 2? number of samplesHERERN< ;0.^DANANEstimated velocityHP-:-:PaneH/<//PPaneH('PD$O$fP$fTimeH$U D$ AmplitudeHDq~q~rLK&Select position and tachometer channelH YDP]P] real positionNR_R_ HerEeeDHDtDP]P]((angular odometer regardless of directionQD_l_lGaugeNR1_8R2_8 He5rae7e`HDoD###Numeric reading of angular odometerHSD%T2%U2DegreesN HUVHDaFncaGnc]D[\Degrees (decimal)HD]y^yaD%2G%2GNumber of RevolutionsHD6C6CPD,B-BstopP$EcFcSTOPaDGGTotal Degrees RotatedHDVD  CLK pulsesHDPPaneDa!c H otherwise, it maybe PCI-6221, the other type of card used in the lab RE True HDRS_D7>D7@DDAQmx Start Task.vicDJISimple Error Handler.vi^DDAQmx Stop Task.vicDbo`bo_Simple Error Handler.vi^Dan'an&DAQmx Stop Task.vi_D13DAQmx Start Task.viHD$hmhoYD6C6C DAQmx Read.vicDFESimple Error Handler.vi^D  DAQmx Stop Task.viHD$ysyukD3@-3@,DAQmx Create Virtual Channel.vi_D:<DAQmx Start Task.viHD$77YD DAQmx Read.vidDp}Kp}JBasic Averaged DC-RMS.viHD$@?ZD` m]`m\DAQmx Write.viHD$((xD,DAQmx Read (Multi-Chan Multi-Samp 1D Wfm).vi]D>=anglular velocityOD dtRErs True SE False MDC|PC~PyHDSo`Sq`MD8gEp8iEoyHDHZUoH\UnMD-:-:yHD=J=JD5iI5iIThis case statement converts a 24-bit negative number into a 32-bit negative number. If bit-23 is set, then OR in the upper bits of a 32-bit number.QElvylwy 2.. YDbc Negative caseMDyHDdeQEss ..0 HD  HDvvHD>K>K ^D:;Degrees/revolutionHD;^<^^D67Encoder Pulses/revHD7`8`HD>K@>K@HD7D7DHDCCHD~,~,HD>TK}>UK}HDHD:Z;ZHDNh[Ni[WD&p3&r3 upper limitHD6C6CWDTzaT|a lower limitHDdqdqMDU8bAU:b@yHDe+r@e-r?MD@ GB FfHD =F ?EMD  yHDHD%}&}QD))indexHD,9,9HD :E :EMDJSLRyHDIRKQHDo|o|HDghMD!*#)nHD !)"!(HDF`*F`*SDtimeoutHDSDivivtimeoutHDyyHD:kG:lGVD=J=J auto startHDHDHDIIQDindexHDWD;H;H upper limitHDKXKXWDbobo lower limitHDrrHDOXQWHD/</<HD\i?\i?SDm z5mz4elementHD}+4}-3XDn{Cn{B channel nameHD~B~AYD(a*` initial countHD#)02#+01[DYXcount directionHD/.HD v uPD10edgeHD76HD65HDGTMGTM HD q q SD@QMx@SMwtimeoutHDPh]wPj]vHD^]&HDr$r%HD ~ ~RD'W4x'Y4wstatusQDDQ3DQ2indexHDT)a2T+a1HDiIvRiKvQHDvv HDa_na`nHDcdHDdf =! displayFilter!=! displayFilter!!device!@7 limit to device displayFilter!  projectFilter!@project filter=! displayFilter!!device!@7 limit to device displayFilter! projectFilter!@project filter   nn                  ww  l l  xx  l   xx  :kgk gk:k g>gC =Z@[ZPNG  IHDRZmIDATx F̞2F(NuB[4y4 D^R1s3tx aD۵P!\ec?6X/2p4vn}Ka+jIENDB`TPNG  IHDRZsIDATx @MN:@T)-="T!}oED_Θy"P-5\Kj@, Oi߬XQ#^i+}`4`1۸! IENDB`*SXx] |fg\#\`$!BDH$)! 98Z+*Z7گ-jkKճx"ZVhkk[JRqٙywf6 |*5{}gxjin+$JVKbV'@h'+"y\;p\W! @p(=, \qOr͠ޅt֣h=Sh]Iv?Hj[μԞ$ZEjtR{7mUOʹU }<}r>ioYRg'h}s e k; 7ÕKf ,\B>^L -6`*\]OV|! Bڮ-­?[ʾUvV;)~bO.z:p3Ķbc9xG{IaxQqA9V{[b~ӟ&5# %^F)Ǘ><2<-&%BR'A\rBUVȸKchou8 QKٻ+WP0 [I,N, 9-PIW-+& YlӤPt.B tWϗ KW⼃Oz25{C!{ Gg◲>&s?i<2`"+Yڔ\q>[pp^[64NUFW,&3e֖*(i=I@XhƩM>[_ H ďa=Af> +a.) E>"Z!P "6URP-g4Hڌ'A})\Piz\k;uO>L@BG݅YjGYRy T55*f4~2~iU5S]5_H~C}KMC`ޘEޥ_fs}m~C#uFHPvc]sY[jj[59`gF­ uY+?W͚ilm4f6Dj7y? g T.\6Sݸ1e^~*53/N8D׿5uP ?:[a A%F<} 7XOk:_!ôx:G5ѴuiZ뒩.)F-Y8{ՇIIf"?zB˒Yf{QX?+- Ҝ`&MlX}oAX5V3VY}Xz 6>Y}`SzBޞH9TH\RXHEV_C˳| V$,Nbj9Pq$T4'8]"`dD ˹p49la_h 8X2G瓔tٲ͠QD3VIާ:Ooi}PU}+渄*/TU;ޑBUUE< Gi !:mbxXu|'&7W;iÊiu Ps*̷29ZǒC !})#;`͸'R-)Ot8BUI[7Mi}kz1Fo˻PoO Š7/nFU9`U}a[ Hi&kZb)NU,[EY,-n@Z V(ѣ٣V;ewi+l$jp%KdWxGUew+H1pnC'V+|G0u ?Z \mIړ GS~a}V{CN ?e= ņ`mSiOCqqtLkP2?iO J,"F{H=jO_F:4c[F:\\^QWiF:,0H \c^w- |`Ojͩ,4nUaw>hUXo~@Džzz=~L=F9ǡM{pwb,6#.{,|_U ]N!}"F 8_ l` Fjf n}3PP ]ج&N rSSZ}rɓqS`ov:u.1 >ϑJ0>NeID x$l%w1˛/3+>"|%na0檆N":xgjb+&ޣ5wBx;2#LƄ܋˄+-?g!NHpb :N`>M M჏{Ced0_:EP!tB7uPLe1*8w{zr[p7u-c!g]qРޗ|Gȥ%I,bK:̀x_9͇v5А#iDCIV@M7݆OcmSjô pZE*<-:|i޽;x$&3u0#/5c ?~.UF[=hIrE0Ǟsؾ?raE@$ud tvgD2[G66!'c^@Ǵh1Zp"d\;tW0ĂXpl[x S%J$f 4XWZFICksKi x6@<\naJF`?o oS@dj%xd!V$a9#tMlɥbTrP׳t5hbzӟj{*.H*:ŭA* ;*](H ̏ZDn%oBE*igTڄ]CzKC]xYjz*J>Jмź~u-qiO2C+9oνgNBШovoԱ|8~_y(XF}lW ӱ*S${rMMQKk$)x /\PZ@Ɂ{7xTr;T4gݑW=JǶD_e edSsB@@q_HI&ay~r{2 TU:S؛YegCgX5w p Qeo u67J~EoIQqÝ b\7p#UQECifTYU\t,`*˺QExkaTQ󅷝UFk\8̨Rw|ܨ"9Q5QמQQEU$F(<̨R1FnUADzQEiT?)F FFW?ftb*ݨ"\1r[KzF(KXnU[SU\QEXȨ2NΌ*GF;F!ب"Ќ*IQE2U^Kèr٨2^tbTfmTѽUE΍*bƨ"k/#&}XU+{ۀWg$403M#Ji=NNP[<>]m|LqzbI0PzֵEsPẏ*a$PrQZJThvUB0+l^pn: 􉁀S-&S\|+ڢy<" KuS/aEQ9F 33N~:?|auB7U'BBπ*@ג S}c?Ϥerרkƾ o5\E7L!e0Er>k\Rz_"]rBnhLZ]U;jHa+M1!ENƪ>YVW_e{5 +wگ8{u + O0w~߹uƬYX+tʿMlџZ8G +d-~Iŋ?5E(o#o[4ךGc j1߃aX ݍ"w܇I!TT*ecwzAfX M6Wve|t'5RXrU*vJf`䉷_ rUx3oIy=}f^Ib3 D4}f^ %YLPa3-@ifZWqK9(sU[g)5X3fቆY< |>3og `_ˍIr0̼y>Jܶ3[˞N|fZ̤S?VYԭKy{)G̼-3#wݰgM5L KIav? ( ɇ3 ^R*t{Xj{仹wssW03I#uKs z5Zo^Ǧ[rR`|4szzσS ?I;p|W'Y7LazX雕zX=]ҷ$tqpI=,]G-0#$@ bU/{Xzisq t9yԟ>tvXKw 9N;,|LjAJS[Yg1YkYž:,b:,?Y:,:|1pI:,vtX(`ût&)8?tX v#Vaqbt8>c )Γ%OI'tX,I7:Nt$8H:֛9H:\naq,M:<%9ڹ"7p>xq&txq&:H:Qo>>@X%O7xdI)L/ZRXmjagӑ>  [ƞ !tZNA4ٛݞ1:KKgnn?*7 Ǻ n0nnaZnufhnnq/3>"KiݠĽVn70nn#0HϝL[p4ܢ۳!}?xޜn.~n0ImK?wm~UNϽG>'~rh{s{tNNL<>~nϢ4{x$p ͽS4_'HHϽGn-ܭlaVv~ə[ݑ[|;~n㺟uy)izCh sw槬[]pW^b<⦄2n[&=Hչ;p^.yJ--xsw-9LJi§L>M)ib>Moɧ92fz桓NiS,KO!OS>bΤ9z5|&ZH1*Wp&<0|+}dd 8:'-WYC-5J[b\4ޡ%&_H 5{'pMtsMC=pNܗ~8/g:>!6A\pԛOT *aTHx&UƒA0 $"wE.Zplі}-Myp&Y"WPMy`&}IgY߆sM^#]b䜷]jZEg9NV;/Ӷ>s&}8ViKJ{;eڃ>H4ا=pg$*ؓ"A&@ izxӴ4o"7$ՆGͣ_BlT&b|-;GFa G;q~['iSqg]\I-r =Bj M7vO\AGJ> y[Nos.y}IG:LJ$wSt&y{Rb!5g'yWQG砟kycR*I?/8;Y$m<հV&'6,msAK 7 _u&yϋV\HN$K*:.#ECX6(7PZơt<",T9l Z-nJVzEB krPƮg\PeRnJ般BF aIa x`IŠ@r3[OͭfWRc02HQaI׳J~f( ˮ}ϑ`AMpU6MBe *VrXqGX7=t۸o:~Lb:Úq"ܯ37̖ >RлV#p.(V){4ySb00 i/R9E^cuuM$|SݶHC+~kkM.PH^u6ҿ68tAuRr\"vr}/wme'xQE-( Mu* ¥^eYL![g1n{t0Dbrj39eYbY~d1X:uWVlD BE[b'64/'] 7E6g-\@Cg% C,Ji(WGifPz'N$JůCˢtt݈r:b3#qL9 `ԓ32nR6A6~o(l (lBZǶ͎>8 -T {<ƚ&̓Q l>a߅!إB]Q5#cZ\(O㸫\p7¨M[BwFec'BDHP open loop.vi IUVIDAQmx Start Task.viPTH09DAQmx configuretask.llbDAQmx Start Task.viDAQxDAQx 7 vPTH0PUPV DAQmx Read.viPTH0)DAQmxread.llb DAQmx Read.viDAQxDAQx +PTH0IUVI'DAQmx Read (Counter U32 1Chan 1Samp).viPTH0CDAQmxread.llb'DAQmx Read (Counter U32 1Chan 1Samp).viDAQxDAQx PTH0IUVIDAQmx Stop Task.viPTH08DAQmx configuretask.llbDAQmx Stop Task.viDAQxDAQx z PTH0IUVISimple Error Handler.viPTH06Utility ERROR.LLBSimple Error Handler.vi( ?PTH0PUPVDAQmx Write.viPTH0+DAQmx write.llbDAQmx Write.viDAQxDAQxPTH0IUVI'DAQmx Write (Analog DBL 1Chan 1Samp).viPTH0DDAQmx write.llb'DAQmx Write (Analog DBL 1Chan 1Samp).viDAQxDAQxPTH0PUPVNI_MAPro.lvlibBasic Averaged DC-RMS.viPTH09measure madcrms.llbBasic Averaged DC-RMS.vi+PTH0#measureNI_MAPro.lvlibIUVINI_MAPro.lvlib#Basic Averaged DC-RMS for 1 Chan.viPTH0Dmeasure madcrms.llb#Basic Averaged DC-RMS for 1 Chan.vi+PTH0#measureNI_MAPro.lvlibIUVI)DAQmx Read (Analog 1D DBL NChan 1Samp).viPTH0EDAQmxread.llb)DAQmx Read (Analog 1D DBL NChan 1Samp).viDAQxDAQx+PTH0PUPVDAQmx Create Virtual Channel.viPTH0FDAQmxcreate channels.llbDAQmx Create Virtual Channel.viDAQxDAQx PTH0IUVI(DAQmx Create Channel (CI-Count Edges).viPTH0ODAQmxcreate channels.llb(DAQmx Create Channel (CI-Count Edges).viDAQxDAQx PTH0uOxE7\U}d$a^@2Dr "*2 #YIDAE1, YIbD(+SfvU:u:%3rO`GԤCoK$ןE2H2CYMɱc _ַ e4mXTZE(QP?y[hQaKpVZ4Ӛ?CM bV-o"?3!R8GƚZqvn^shCT-"&}*(";wh^[hߐG,Cd3Fy k|N6md;г|Č.( o>j9?$\ i;>qi=62vs>oZ95 |^7.<(N2Ga e.'6(!+i<[%CcJo,E#.9@ZsօE&Rcr-fVELn+ɵ/*VUT##cZ֯*:h 3qbkH6TW_Y{aEɜ00%wudN&~ŅظXIGk@bD]T6k9oo*ospU߆ķa|[~nέF4n0oU/gB V!tӍ-Egߊd'r)+a2'W͚G3IQ=[厕-Kxd VYz4tݟY&ѱSp#W;lFkI _y)^#O,@cUm9BXׄjۘ-2q`:-n 5==JDh(߄?4ZE}Jmx)1/ 7s!nrwjL_ wyro{gf|jwbS E9-V y mv V)J{"Nqbm{q<%^8 :6.W'\jJdP`?Z6ďx96-$_"/:$ג :r+˭YlV&C+x$סZWޒt!GkV;A4"Î]zDcW5I==zv%g/'Hꤾ} ߮m\>$=PwgFЮqd<"[pZ vY ȍ6n-y˸β7h+5?vΞr6džd48U;Kdȫ &F6 Yl m te:'<\UCʼnzg9Xw/qE('ß;n|z!V<*S;u1sdBwd]dTz9AMD2:/}(^ emW&HVA zۣ' U:s3l''3=+$gz֓6LzK`et\ Fmv6dž/Mk3Wr0&+F''2ۘ `"L?Bds[ `r f C!Q:0ULfph4rh$ b*}áTjX6vFv@vh槩&sBt[0tSS{`S'-a5#Lm?LDsbt[Ȇ0S3TiŁɏn s@yH(fn0f4pjj0080M28y@M1R3* 1y,-Ü *Q*1UFI~L,7 D4~6 n˶a0*Wi99Arm96oh gq'*Q˼IOSхhB8MĵMf }cςn]cΒ]78j3LfTE;,Ng %6qP}A==6o@ V@TӬdO d[f_ۼf;5T`L[۴A@QCB Z`۠5U55~ R!z,lۘA}Q!N QC43g#lsƻ@54*-x,smb3T9R[sTў<6cP}3PvCa1btom6pVG@ 둀;t# +A;@;WC,I;q0ci= I j@Cx]r%ɳu5e@L\WГ/ya^Cꇩ!IM'I Y0k`jajIRY)ElK 2kQWҕzBWL`pD4J)/K/&PAJHIPi(iK#-&BjBLC?LLҘBc"@M.RԄ55' jj 5Us-l0a85Ls?L+g?@. I;Ot#uHȋ 6A- z4y%:O4h:'ZK'[jtoP`G7 =*%Ӭ*`_fKz4GQlDO! ffGBJa6|E H8`EqF?->w$4{ʶx%8JOغ C [ww[ٺ0mCri ; d/Rm]Cvƒ`W.L;Z ˣq[2`g낅օ ax>f óuօi70fdzuAօi/@P_E`C`g{/xx[54Ƴx j MU?8 WBji00=",^ .RS M臹ʳxj"5U~ .PܮL,^px Rsaz.XغZ'JJШY臹ճueցVL7*qsW[Z0]~z.u '!cj Nl]n%a"URi؅q(k 4OABNZ/$Hf hddE@& su_d$#w%d:1 T`>Y/Gf˫OqM}`PV2WK[36^1d˜)Җ5Nsi i˷6h;d̄˜?hZm SW蟢BPN7::WVWSӽ9]7gsV`㧌Y%%F?Aہ%'N7wg&gh>ߡTGEjmɭ-qr韦ҠVk 0;AH]|$J)q:䩛WyJ8x _/՜8* s`zr;}/}/=J\Ŷ,Fߢک3B!Ʊ͍9(( ,UqZJ3orN㒑U|֟-gAn?$v"aK683N=ւ퍮W?9;̯qEd>F)ztDEl(Y `}Y<̊`V r)`լvN0ŊzY0f%t`aF8#*V *Ѓȡ>VrGHvBvGv'4RCN07>@ ?tX[|Q{ !=>h4 EhzOGN 0uA@pi(S'Oĺpf4RsRP6:A$}.Vև=s4z6 "fXY != =isW %lX_ R r.*A>3PdvX_W&;ㄒ-Afp9a8$"d_TɮčBIko}`wٔ*|^_/yпn-9L,0}l?qeZzfw[A7[cY-}zf0_C/Xu/ﶾ]r16LX oluPіX\/aG)fVO1[>(!O[}iWL7@|e7Kنv B~`"l7W2t #i͕b|=0Jkf7WFۆ jqaF]@Wfl6݁)MoEZ$MIBw Rthρ:)QSs;g.!rzXzh]m;O$ yz^SOGO̝BvY+)t-th AF[_20<%2 %em@0/F9iТ?чڛysHR#"M?CHt _dMIBjHMz4Yxg%Db[ Q$B eGe"ӔDZi(U(5DUӎ!AZ5Mj?TZ^ɪ-M Imz&v'ZMV=l}WX|߻arMVku5z,>XCoݰz&+j5<j03V]vy¡ؠٹ+dy>sH:E`@G>I:>_;zhJɱXs6THr`Ω69r)ҵWa%Nsqqk7C'\`h C 'O z_eXռj+&O.8%f?_%L-2y z@9'9T} ??رŗO.P Svo%+XM n\5~ʸW?z[2ӏ锖&6R<ɑ*WA/(zM)ο\1fX)4wZb5" tE.tuv,`[/Mi'@x"NQSm]S{)" G.QnF:xi" Er:k(yt!xiri"Z_ r%2Qg"]Euhɕ%ŏKD Dz(+͏Dz 4 PGЌS5~^^r&[wDN=EӉ^Ԭւ UE;=M\$ _h+PpmpI/_h }OնpmpHgmԭK[J+]an 3#ahw@(b5(H>&2 NCďk0vet0pg$rXZm76qm郜h}hk0sE#E9EWk((ۤ-\ۅh9\lvp}# @0J e;iS\[;;BHDZh(DgiVc2%irmϮ"tû[{;Lh\&kSOڼ_9'@( 4#|@ڻ0sO2Q@.P !iobɀacm!wA}>3$ޟ̽d2 jPiOЉ4ƵXHϞ̸p퓼IP=$0OCBc_K Ƅʨ?((vgb7zԃ!~FQ='NP  p(ޮm$NeQF-xtZ0 o O H~i0M4I.4Q,֔T:pCP'$7pqb =1MɚX wLZU}M_S¸-bͧ;(,ޕ xq>Z F6%vMrh?X(p!Ͼ`3F[h`O ֊;%,4 |)3:`GK%yC:v5Kx b7Lt.'[l%fg?3uF7:˫=xU:UzKUI2ä3hJCtv,>MI~~}mEgZo5hd1elZBpLCֲXĽ+Ѯ#`nۜN^YBd?yZӘ5wH5igpӠ] nRTi!>7ag3ë4HU0BךUaVWlϓ[y +ePu;|_n8T^uT.kժ6hIU3^/6=]byUDj:p,M+iBU:T=ªժd5>f OɫR:Ìp6+MYy,OO{UBպX&VݬV^OfNj ~U͛ks mU)e^-A+"zdD8w5#KTy? y»' D1f`l8] w-1w P鈈@{WlbK2DD*{@!Zw!FeȀ>" p p(h%<&$PTHu5 vY5 ȽDH ox.uɊ-dCsknG"o8D64C4@4ENw V?r(E"^؍$` ŭ)06G,V[SXi݁ubݓSܚ,,ߚb}c7Z5Šub;Uҭ|}_K-*op6摝޵) (6%RW\E>ettv]e]e%/Ge_TVch[1̎4n'`{CJNҺ[H7!{D3EMJZCCޚuy"A߁l}}c=+nH3`k0CtVc'nH+``J0;Eky"A@mr7VXߋ;((;mo4vi:-X;((4 [m㗗R7z0VRDFQML(@SAWaL" "5?h0z>"L" "5?i0z{U\qEU6RSY] ЯGLo1&𧸍"Qգ Gvɿ(6 0 az`;C`qh|03s^FQ]]3](GopEq b7}HTe_HHR,v2c81}]=P_پE<@3*kǠ>qQs"3 Y>"Ef$!'!\%E!uT#: {YЕv,%8m'LcT* l}cMoT>ї.rr'8) Vb%XaO%ΒL%yMu/K24]$u$eIB= ;_7K2f dI~oI^LrYn.`4g!nMV-Ҫ`՝/Agl;i5Ѫ`.& -=!5Ѫ01!ԟfbD+|j|j 0?3P]W2{sP `u>:4ěK]\WM!MW#M;5!й\"4ZlLEj~TE tnoVQh4ME$GhE"t5h4B ܵPh7-;f=sYHw/O#JY ,Fz =ߪsnd - {,F5jBiz˖@>p١k"H =lI$m UR3oAKyFWA4g)6yzFa֛gĝg:\!Aֵ1mbM4uD+`BBEaKAg[Б\e<*W-s3Do=t<]ڠx 3NƠW#7W#_wNj3N@dٸdƩJ}іgL9mٰh@K@;t6w] =ҽIj VsPJ'8{=@?qz(o7ӿ/l`JQx /?QT1_sX_bˠRz3AaX< TL)So p0rw騖aEeD}XHFڊAȥh!e3E}(:54 ١l)a#B@1(_CyRξ]Piɑ(.c̠2Nvq|{C5 "wo5HMSkZ1GŪuDX}?ڍVoeET z(ID>PF/A5ZAMڷ 2_hQ x<q5ho` aSxÎ`x6ɐ> ׉:-Aj N.(#*u^ khj̨oū)u;;;6 =X<T#c,^] @ˋým0AjszI=nˁ!!o_e-0$1ZoN]l";Ʈ݌bub A]o^bG lnB`Ml<`W{p:amX̦8~:YqO:glN0"vLs^1/<6df 26t7EW*rr/xK̡ln< PT%Bq d{8[=&!Iz8NWę_h\GfN57ȋ>JDP%P{%kzkcxZh+fh'{1WF[Z p9nx$M,BAŗ3AU} ^I^3FK=3Z@+T/Vl>vƺq{#UqCHJKu jfVzKZ8ۤ NPq*rkgڗ#X s-^sN`n3Ry9kS^%ok7C2% 1~fw9E@f@9`O)GfA2FlE[ vY{@ZbL7|k fk5δLʙgfr4^fqĚ6"; D>x6+R`F"\ѲQ+2[$-$&l8&F)j3gNHƩDoߺncO{ןy wi??Jt&`5@=PI(@u./ϒ?-s]8A:Csp`Tf{3N&)rĕwBhpÌ*WntEד% 5<Z[;k\ͅ9_Y>5?Xck.` pI(PKX]d.wXmݙ -R~;0^b?a_Q~O$q|jD5$vHPavMV0F e*`0w[NEl4 W+-{}޸X{ƐuۗBioP4 F#MPgyXK_ HjI0xǮddKE4g4Aڦ:iled:g6ܯ^+yT8Ou! (7:˒qsim f CҦ~L-x<'+LmO]ROTz<oKGGDS<|Ĉ4J۪ akr!5cxZ&)F@O iʀ\,2dŝ88{ Y [&&lyj`\|V4G]mb$}̆÷Wh| Ԃ83ff6jzcs9Z[༔|cY\Vx4q] |cUlʷ=- %&F!sƷd|+4euTu ߬KWA,qgUh#DrDEm7W=/qSoxDys]U] R\ KNs4{PXu/<ݵ5],0"颸pܷ\K%3ȢҳYs#uJ1f^/qVd`~e`7a%-~ٝ$R @y-7@q@mOX]InYfnq _'+fMys3 7w3U7ʑf#pcfnJfzb'܌3׊ICB4/x@BV?;-E/g&}(Jy!*|J5[u-3KRp濋+5loWRǂiʘFQp?O[vZE]rvF ^5\iLn5$cVi) w2b ;|XjsGAN;U>TS}P> Xz|YUMu}⃬AUv:q|PG5B ̯2T'8k!W1~: "4IdgLZtLqE ln2unPADĪ8NLJĎ41 |S@+M'ԟꋱ Yy`e^cy# ];OG֔b=32?ANMCS7@7h߰?Up/b_gK@{ƿUtazeXc\H{8f\?-"=NT91ZSwi֖"[JK=@vzmNc[<9͝|[pGlCF {@HH9p$ANOa aa.fc|*Waā׹K0<*=Gx`Ӥўy]#-E$i>E0jK{B.q/HNXL5wF O>EnFn/,r?K90m9}$@7-9HaC8=o1;Op{Fw&]Eoz̍WhؤI.ʅ,FZH~Fa=9ʅ,F]埴ɿ5*H/d"#X:-΅,^ݟ ]Ae t4'rƈ/Bƙ@JOكTM4fq8[m.p Tk6GWfd;E&A 6z- er)[y̾IL.1 R,3ϗ"Ad.3[b%nY-5r5iwhd=>b3y`^Av b >/S|FӾxj Zo9kgI|P S\¿PV 2DyPA1f,# >C2JB~>kf΋l|7>g۫t\>7D8a3anz±_cȏélf%쥎Ѳ&쓴Wx+Agժs0jAIKq8[K^0V܃w=kAWK~)c9x(Zw9*SCWyZ`&qplS{+C해9}jqF{^WpܫYm ^()677A7ASa+j[M7u:`kެ !#J?k8=vt&"ի1w%S$mb[؀H["ח*~߅ܤJk%ƚd1i\ TlL*LzQ{Yb+n pcn8oީ]r7xB$fɖ%U4Ppp6uޗe#./DR}נ*)m^Dc7IW˫>Κk%U֨%U?O-IUxI&fʤqMR# ΟU%1 ?vyʦ.k{4Oԫ +AXϴmf J!|< *AgSU؇U* |aY ̮pnj!gi身rtYq#+tߔ '{.]&1\Tʛ 9*'孮eB[IyzoU{WI]];R^c4pZk\tf֔NP^"5 P;ԉN 'N+| ák6C{NX^'߅KcT^.r8m^aW\a[\a[̑Nl'uQImv7l* o>n-Lig7;8bB{q=(^'dhN&8'3eE~>H>m h[#Jn¦ J|xgA~"׈5"Z͜.B{Ƶ٨T. +&)g\-&}AjF/w4c )5cO3nOOӌT觽N-mAU3PU3FՌHh`49jSvJ(ff r]Õz;iZTZ uٓ2=g `۵GU 8S]4B^h!m CR,>k[.VNJ\o݌r1}ݦ&T)!09RmmMug\he?%HAʬ8?EVUvc۰7kYqz%Ro.UJOB.VaUD*+JCvS-VeQZ6I*MJOޫݢ{%19)_s IѲ";[b0x }E`!@gt8`#$֏0!H+{}x5Fg2("09݈wzr~P[ٻY(E #%Ģ{e/ ߱g"!Gnǽ '`e`Ħm@#< .6>c+ɯ54'Ns>7m]-;M]"^x+t뎣wf,^@[Ah6`-tD;9/үpuV&y\N(,|}'־rmߏ5bN7߼ws-bd̠X( |jyPU҇jCt7yzc %bcbk SYV3܄-zЍqJz6}Ku3] #%Ӈq|^)\2ByBEVF/10 ,͏˝:Z GpX $w{6fiቖm̨|cd5!*D';я˘j=}2useM[đ>sz=%sM2 v0mjG; tr\~ƨ8&h#7g^T ܺ V) '{o3pgZ5p=G6pSMd6}E2pcQ) ܽ:WHj@- ii\j<2,}ўJkҳOC8#ِU/U9NgS/#rZ[D 1q]?'/k]D;vXD?="zt_DO}2z[DdayF;[XoLޛiٹF gϴGq:]+?QWGEQWQ,8(L;xxrȣ!;ˤQ b;{3zyk$Y@:)oγ:)ktM5n_:A|km>1kg-1}<Smdc4Tc !ltNKF8yi?CގޟD;gjJ0SJlgιvnb ͖,sID8>rq9cΥb}gZpO lt+3fb7˯sK,|} l } 0otBͩ*zV܁9~6wU2{$٧9T2w$_cN}fny3mi4[&Holl)*m(a~ UW̹lhmPe v9{HA]&~s?$g;OO5{O=xc ޝANbSY .7Jq= RxþU>p55ާ%ANpDn"NUE"`RNd]\ 4x"B[8{m#DF_{U~$bLgujЅq7 )'o{z\? &A5y=q12A\??A Rχa5g3!_)+OB%HES߇sKBGBo+Kg0\Y qO\A uϨ}Akv-O ZȽ2tj-B%ȉ8ϠV>a1-ƯBCOrhԇbp-Y#u9}$Š;UIړjtǓ#IIR#I}Iڭɗzb= $i1~A IrNjsQ ec 3lc̰]|2`.L%*RJdV4 Ejr2c!4qQھbowjhHlTd2|]42FdxB,^EU_\ _W$S -|jq[Dɛc'(Pltp@cN(Q(RJTuO~~N%QR@xވTG$Ԇ9U'ILqI+b^QRX<3r;F4[ ~IV-\FXe]Y!lߦ m0_G>jIXj{YgZ Ҏ4xuĘe44c.#35fAѯS)gx&{s6{;b/_bowS5K j.AcCת t+ѴRNS o-;ld27̬gZw*2JCf 2i UuӅ:/9WaW,oxx((Li[BߟAa1ҭwg0/֟"?jNU3&H\`fo1QL̂ʯ8uG04}3sgvU}Kl2"{ ??A]?]x!.\݉69|yOm>"< _ivߏ `lh ]~|2)X"|^f|8HŻ!iۊmKvf2-em/ eǨ;}5SOmudڅ_”nuΎ e)6)3rƂ*p'ĕtdp2\sJ˕-:Wrr'=™aWJWiP.#UG{HUzo4e3Zʭ!RWM wuh]Վ2,*CyaY!n,45֭;nm6EGi@\#q囩{BlT5v`l% r%} 3:)L 几ݠ]#f_ ,&b:H.lw(zCJ/k"3TδC t q*5#MlO<5>S7~U6wk+ju{ÝƇY & ުxac {Iz̳ n S_ܰ ǂӐaD>V !uB6=J/z!Vn">Zd<)Ӝp9 aSCnZ /SEO; j Iw2UJfm (^]* aCi/iJ L׎&ݪiJ/S}B \tPW$"1=^zJ2k#ZfM:[gb#Z;[eH 8X-Qϸǘ6T՘Ƭ%kBYZV`ߪ&Hh}Ip"ާ)ɎKIt=3^wI^XJ~dI~qnl# eay<1Yk>VA% GVҧbpo]eCHv, ' e:C5;Ag\P ?C/V)| ٞt% ^*"dTmZm #l3nI .C*w[y6_ 'm1stE&CvWUMɕo|`\WIEZ%#$SK*+"29|7;AxEyp;^15oeUXKp k doTJn!YYmOZT8=B . Cݾfupz;(}I꒠Mx 6-ioQ@1b jo$)ŕr&*L7BTӝ`9򽏟3+0]cSk>Lkii5Rk89kMlhE4S'*-/.&EEOQHTtOY[CF,( v!7eUCFWT_!8 3Aj{cafłV.J_(m?N:A8T$*K/ysI}}O,8SէJZyANg9~~]) XbY\ͱ t.#^nOEBR`+l8VX%Õ@VpDF$Kyzt'jdd™NL, Yp:(@Ip':(9pS8G$tdNra@y2ʦ9!#Wn:v @r-Qsv*_ٹR)= .ph9P]exayfRJ*BJY;v/W2e9XHoAp/;݇η0{35uRjqNF, 7g du=<-AJӀKYi@J*fTjy (Q%i$ ?׽`ȣȾѓZԨU[wWז\'dt"qPz_+,b@q򧥦{'H;3:QuK('ANg8uUXd3ZTTEY|[u,$1C{zO|ib]#:;÷\hi,.oWOXգ.$"CKIHV3;$Ka>{і_#6ږ#ª#61_i>r=R >g< vTLo֔p]c*7ʱMpc'w&eKPq (ܬnfq8>7gO,e[ -%XpdHe:-2'buFoȒ؏& JdžG O(/PC,@^E'u=-H/7!D AZK"/̖l>H^HG+3`=,aQݗ mQ}?+ L%~cK](eQI@V?ʶ&H[-؇>ɻYSʏ8d5lއWܕYU\{ >l "M74[2"6,`7l*(2: |23Q1!:%'qop\Mݪթ{qfoU9uZOL+ -ocBԲzmmb JN ;aAg=n|PyG5X 00\zY. 8R%^f8plN#ϐP~2!^#O>O,8D^Gz:;hRjEh zy]^7 /E 3W AbD2C8dArmPsnG[:Dv|ʥ@CZGz -qm-li|ɇ/QOEQHcDiG*)Ųt.n4wN=n\D001]jì;hxpɁw8L0Ѝ=K=etXbrGnxr(HVlR/+L1˛*v2-_Q>I""wWy[}ذ}[*NBơC+CH.\̢.O? ӒI] H9(6jeOX:r {Tx˒=.3Mԣ9;!dž8P+C0k2/tj._[ɣrh- 4]!8DŽ>:1G(}̐|o1Cy6pAx@PSE5Cfʣ:wɱʏ (ۑbr@#{>-Ql!"\7&:4 2^>d VnZ N kOkeߐ X3=!|F8i;~墼$ds5f42X<%Lb{IHXl81y2,xX"Nҝ6!R&x#%H:_LE4R֦|O 4JXȞ&[.Pc<2s˲Q)9\ȲI*r?@Z goa i8T ?x6/@c~4'6BX2+H$f6X~FU5WW[$Y'AVmhՑЄD'C@ nsEh<6t`)Yڧc:C1ap@,t.,sX̣1 T59OoqRd}&-+.>O&\ T!S\pY"A81a6h:zm_27\GP-Ƕ aUިWW X/1gZߋ~tR 9C8Vu& >r 5IjOU םz{S`kDgUړU90$AZO lPlpYJNJy(S>,^3UNF{6A0TAuw mQeUʾD2UJsY۟~lا&xK. KKu@U[PSnKvĄ.B;WX}%O X^8}.xX͈waI8=Pᯇ2(uNJc&zk'qFcG^2Tyۂz@bODFf%>-or?L} e_*e-DM9+MV2ӷ&A>Q3bYw>bv!Y_}uሩ9ةVe -[ju1>00D"' '0"fɓyjGyg'/WyRBbd\ҕoV]YW[yW9.KJ% B4gzg \뤟ppQV? 9$(ОZqHPV<!AyaQɪk[9'B}\@5KR 5_?f$_Jy~ѱRZ3-7kk5eW_M{;BhB-f"Ek-Ba:Xj Jhc#٢6q[ݳ"/ҽZa\E\ΜcQ^,"91"D0tzo1ӏDeyr kG:j$d#o\jc,հE9u'7oSE_ZBQ~.!c:xRj۵*yFw&x֕ȣ;y/g[bc!"ԕbXgUx_aһ]&HTaqפ H/T;[6G۩t(k:QuInhb q:6vȰSa"&zRͿ3ׂUX fnw2ڒfb=fb6 43H| "1W#'Eb.h?"L6|HxPL5!1 =Cb>~)ws*-ꃮG ٲAN]&fۺ(r].ݒ=NygO}b*7}&XX5ofL"!&L림[7 B&&ĄYIzEF:hETKhN kWw2OEú w^T`Ŋo_԰bhE{sT0HtZOXNf10^6 >'eJ] cm[$XIu0-h$$50VNnj_hC4 35>у402yXK LdFщz Q}7Em_zz.!?NտJrxAOd~n?d&̞fNh1yY?;&h۲*5M5:HmXXυH6SїHmCIg^J `kBèvnF Dqè^O?b(tw>{'NԆڨBxbi2EJ:;+e!;ܬGR)~ M^hgd J^ADvґvMy!Ղr ;9Blt#맨NY|pܷlKOo;<߾~Wv}[j>@}k=ֺR֡<m&2}ӚR2gnp$,߰4'+CwNcH&]- zWѻ +z GYogéW~4k0ʍ`'Uoe'5Rpgw?pg)wsQ~K |1m:gܜۃ_ȽI]/K;3^CȚs.̗eK9L7-4L:ڂttTM/:;*;CO-B%5oSG:w4Nh 2P{nǙRGL4Pszӈ=0Rp1߼e0uf`vT͐6C-g?hJ?Cua: )36ўH`L20GH":kgmjkE"vc8-{ b}/E+aE9 ~ƕ•HRB=:ni^{E`#MD%p/}޻~x8 -$~$> ύzц-Aڄy%Xlnaaɱi>-W)Jqt"\nsŻJmf"/H3Z6{D6 Ƚyc }9Ѐ3,`-6WߥߓA)jI(Tgi^G*!H*U'< %bX~Ψq@ xyحZm\|› ҿ_x/[jbX6qm $N*#(-qھ}MB L@ ߫ou\֬ק|ِ.^B4'PI--T=33npnp%p)_=}0B?FZүrC0EJۂ^(@UI|:S Lk$ ^eE`(Y @4JG1`یjRیMbn mCOI׆Nk >FPvM҅C)AxPjxP}Kq .?vTpo7'0 pհ|~7½0'+BѩN   n DGs+΍Yڧ[Pg\x"L:;ZB PThRф]iG6Aҽ1#'ÂRab̉;+CdW>oV&N)#6EJ͂B}j>zP-ٓ%X-l)s Ap;0ݐO#1~h$ Pi~&z OהnV$ 5{ߠmh]ME3Db oy :K- N^kW,o0v^a/s׹ i1o]ݎm8{%bxRϔd#-PWJ;]8{zm 6Y c5RqʣS=E{ Ft1A&źX0ptA 1DSr9BjеpY|UEI ;c1uSl>XnqdZBR}V|hPǺ52o6U筩E(k          I%TahomaTahomaTahoma012002RSRC LVINLBVWwT w4 4LVSRTBDPWhLIvi|CONPTM80DFDSLIdsVICDversDLDRFPTDCPMp0STRGDICONXDTHPlLIfpTRecSTR PICC#DSIMFPHbFPSELIbdBDHb(BDSEhTP_@_A$_Cp_D`_El_Fhx_G_H _I`@_J|_Kp_L _MH_NDĻ_P_Q$_RT<_Sܻ_T_YP_[ĸ_\H_]h_^<___`Tܾ_a_d(_eH_h_i_j