BLENDER_v237REND l1SRt$ [$k SR4 vues\)  T  e  7DATA\)\IDATAI\\)DATA\$f IDATA$f \ DATA \ $f DATA \\  DATA\ \  DATA \ \ DATA \4  HDATA4 \|  HDATA| \ 4 DATA \  | HDATA  \ DATAT ] IDATA ] T \)$f DATA ],  \) DATA, ]t   $f DATAt ] ,   DATA ] t I\ DATA ]L   DATAL ]  \  DATA ] L  4 DATA ]$    DATA$ ]l  \ 4 DATAl ] $   DATA ] l  | DATA ]D  \ | DATAD ]  4  DATA ] D   DATA ]  |  DATA ]d    DATAd ]    DATA ]d   DATA_K \)  $f J I DATA^l3OutputRender>DATAl3^ RenderRender@>DATA ^ l3AnimRender>DATA ^  FormatRender>DATA ^|  Link and MaterialsEditing>DATA| ^T!  MeshEditing@>DATAT! ^," | Mesh ToolsEditing>DATA," ^# T! Mesh Tools 1Editing>DATA# ^# ," ArmatureEditing@>DATA# ^$ # Armature BonesEditing>DATA$ ^% # Anim settingsObject>DATA% ^d& $ DrawObject@>DATAd& ^<' % ConstraintsObject><' DATA<' ^( d& EffectsObjectDATA( ^( <' PaintEditing>DATA( ^) ( Texture faceEditing>DATA) ^* ( PreviewMaterial>DATA* ^t+ ) MaterialMaterial@>DATAt+ ^L, * RampsMaterial@>* DATAL, ^$- t+ ShadersMaterial>DATA$- ^- L, Mirror TranspMaterial>L, DATA- ^. $- TextureMaterial>5 DATA. ^/ - CameraEditing@>DATA/ ^0 . PreviewWorld>DATA0 ^\1 / WorldWorld@>DATA\1 ^42 0 Mist / Stars / PhysicsWorld>42 DATA42 ^ 3 \1 Amb OccWorld>DATA 3 ^3 42 Texture and InputWorld>DATA3 ^4 3 Map ToWorld> 3 DATA4 ^5 3 Map InputMaterial>5 DATA5 ^l6 4 Map ToMaterial>DATAl6 ^D7 5 PreviewTexture>DATAD7 ^8 l6 TextureTexture@>DATA8 ^8 D7 ColorsTexture@>D7 DATA8 ^9 8 ImageTexture>DATA9 ^: 8 Anim and MovieTexture>DATA: ^|; 9 PreviewLamp>DATA|; ^T< : LampLamp@>DATAT< ^,= |; Shadow and SpotLamp>DATA,= ^> T< Texture and InputLamp>DATA> ^> ,= Map ToLamp>,= DATA> ^? > ScriptlinksScript>DATA? ^@ > HooksObject@>% DATA@ ^dA ? Particle InteractionObject><' DATAdA ^DATADATAC ^C DATAC ^D C BlendTexture>DATAD ^E C MusgraveTexture>DATAE ^tF D Distorted NoiseTexture>DATAtF ^LG E YafRayRender@>l3DATALG ^$H tF YafRay GIRender@>l3DATA$H ^H LG SoftbodyObject><' DATAH ^I $H CloudsTexture>DATAI ^H VoronoiTexture>DATAJ L333?DhC侰D"9ODATAN ^dO M View PropertiesView3dT>"DATAdO ^N Background ImageView3dT>"DATAh|(G

=1??3?3G?F<31n;\=ꉖ|s=1?5?5-Bh  B??=CG>8|=`s =$p$p ||>||>||>4TԿ"??DATA

X>o?III tW Z # # ,V ,V DATA,V ^Transform PropertiesView3d6Y>"DATAhW GY 333?,U ???h?wW$ 3@??%?? 3hɿwW$??^o^>XڤX>o!>v? 3}@]3&@7 3hɿwW$??^>X>o????h?wW$ 3@??~@h  B?? #<C 3@h?wW$8|=`s ='G'GDATAY PZ W 333?,U CC?`=r??DATATZ NY 333?,U SELECT IMAGE/Documents and Settings\Yann\Mes documents\Mes images\Gimp\Azde.jpgjpg jDATA \ _e ,U | \ 4  :<(Y=o?GGG Ht] Dd ] ] DATA ] ^Transform PropertiesView3d>9ODATAh] G|` 333? \ ???G>????G?:<(Y=ogc̹?ZBAG?:<(Y=o????G>??ZBh  B? A=CG>8|=`s =$e$e DATA|` Oa ] 333? \ @̌A\;\;BA( A@CC #<@(ta ta DATA,ta rOB`Ah DATA a S$b |` 333? \ DATA$b K"DATAhg Gw Y M0?잾T?3S?6&j -@!>>W믾7bA-eAd*?>TpӻL4;%X:pBTן^b#Bfm)x^@)@?.@AHMU?B= Y ?o ?E3Sߎj}?mL0p.-e?8 ?9 a+=oR@h  B?? #<C7=A̎t 8|=`s =,,DATADATAt ^u s RenderRender@>DATAu ^\v t AnimRender>DATA\v ^4w u FormatRender>DATA4w ^ x \v Link and MaterialsEditing>DATA x ^x 4w MeshEditing@>DATAx ^y x Mesh ToolsEditing>DATAy ^z x Mesh Tools 1Editing>DATAz ^l{ y ArmatureEditing@>DATAl{ ^D| z Armature BonesEditing>DATAD| ^} l{ Anim settingsObject>DATA} ^} D| DrawObject@>DATA} ^~ } ConstraintsObject>DATA~ ^ } EffectsObject} DATA ^| ~ PaintEditing>DATA| ^ Texture faceEditing>DATAT L333? D hCSDaaCC(BDC??DATA\ _\ r |m l \l m DATA\ _ \ l |m Tn n =s=o?OOOPP4 4 \ \ DATA\ ^Transform PropertiesView3dCR>"9ODATAh4 Ġ 333?\ ?SqSqtdrr?tdJ,@˿??RqlWe?Rq݅dI:ʿ,?=0ݡp;t=2b>0O;? >Aj3 A9C*;I:ʿ,?=s=o??SqSqtdrr?tdJ,@˿?D5?D544 >Ah  B?=CI?,@(/(/ DATȦ OĈ 4 333?\ @̌A\;\;BA( A@CC #<@(DATA Ĉ S ̇ 333?\ DATA K, Ĉ 333?\ zC AzC A #< #<`jFzD OBDATA, L4  333?\ DdCDv@CC(BDC??DATAT4 N, 333?\ Save AsRARY PATHD:\Blender\Makehuman\Main\h180.blend\Text\Object\t\ions//lend/Armature/mh180b.blendeta13.blendip verts.blendjDATA _\ n Tn m 4m !>>o?QQQ 9 DATA ^Transform PropertiesView3dA>"DATA t 333?\ ?zDzDBCFzD #<HB DATAht G 333?\ )X僾>'>B^ =`?3w4w?O= )(>N@B??)X(>4w僾P^ =4w?>`?O=<"˿F!?w Hvǚ=;>Eջ<>T?pުmA@ÿ@q>th@jMo<<"˿F!?!>>o?)X僾>'>B^ =`?3w4w?O= )(>N@B??o>2訽1*0 @h  B?=Cݽ"?E!@AA DATA S\ t 333?\ DATAx\ R 333?\ E P'  D?IK9kDATA P \ 333?\ CC???DATA K  333?\ zC AzC A #< #<`jFzD OBDATA L 333?\ DdCDv@CC(BDC??DATAT N 333?\ TLoad Body settingd:\Blender\Makehuman\lab\h180.blend\Text\nder\scripts\provasetting.txtget.blendSRt [ $k SRDetail< | Ě L  7DATA< \ DATA \̘ < DATA̘ \ DATA \\ ̘ DATA\ \  DATA \ \ DATA \4 DATA4 \| DATA| \4 |DATAĚ ] ̘ DATA ]T Ě <  DATAT ] < \ DATA ] T  DATA ], \ DATA, ]t DATAt ] , ̘ 4 DATA ] t 4 DATA ]L 4 DATAL ] \ DATA _ < \  d l DATA ^l Anim settingsObject>DATAl ^D DrawObject@>DATAD ^ l HooksObject@>l DATA ^ D ConstraintsObject>DATA ^̢  EffectsObject DATA̢ ^ Particle InteractionObject> DATA ^| ̢ OutputRender>DATA| ^T RenderRender@>DATAT ^, | AnimRender>DATA, ^ T FormatRender>DATA ^ܧ , Link and MaterialsEditing>DATAܧ ^  MeshEditing@>DATA ^ ܧ Mesh ToolsEditing>DATA ^ Mesh Tools 1Editing>DATAd Ll 333? DdCaJ¦D;rdCC(BDC??DATATl Nd 333? /9DATA _ ̘ 4 DATA _ \ 4 z=z]>o?P DATAh G333? ?>]]?>J<]?Up??>س]?0س]>J w?z=z=:?>]H5;у>dC8?A!@ @5CyHw?z=z]>o??>]]?>J<]?Up?]? Ah  B? #<CJ<? w?))SRt [ SRMontage4 L \  7DATA4 \| DATA| \IJ 4 DATAIJ \ | DATA \T IJ DATAT \ DATA \ T DATA \, DATA, \t DATAt \ , DATA \ t DATA \L dDATAL \ dDATA ]ܵ | IJ DATAܵ ]$ 4 DATA$ ]l ܵ 4 T DATAl ] $ DATA ] l T DATA ]D | DATAD ] IJ , DATA ]Է D , DATAԷ ] T t DATA ]d Է t DATAd ]  , DATA ] d DATA ]< t DATA< ] t  DATA ]̹ <  DATA̹ ] L DATA ]\ ̹ , L DATA\ ]  L DATA _ 4 T  , DATA ^| OutputRender>DATA| ^T RenderRender@>DATAT ^, | AnimRender>DATA, ^T FormatRender>DATA L 333?& DdCaJ¦DF?sbCC(BDC??DATAT N 333?& /9DATA _ | IJ , DATA _ T t 8=i>o?   DATA Ml 333?. zCAzCA A@FB= A DATAhl G 333?. ????????8=i>o?fffAD&@??fffAh  B? #<CDATAT Nl 333?. AVE TARGA/t1.blend9DATA _  L , 8=H>o?eee  DATA Md 333?<4 zCAzCA1||1 A@FB= A DATAhd G 333?<4 ????????8=H>o?fffA*@??fffAh  B? #<C>>DATAT Nd 333?<4 AVE TARGA/t1.blend9DATA _ t L  8=>o?cccd 4 DATA K 333?9 B̽̌?B̽̌?## #< #<`jFzD SQB̽̌?DATAh G4 333?9 ????????8=>o?fffA@??fffAh  B? #<CzzDATAT4 N 333?9 OAD FILE/9SC ESC1h V V G 4!ֿ#?GD!ֿ>LN%"ֿy\?=w dd??< 2@=fff?=fff?d@@????L?fff??@ A d?fff?????o:?L=////render\//#D$ DATAV >7 ,$ DATA7 >Ҳ V ml DATAҲ > 7 T DATA > Ҳ 9D DATA > <4 DATA >Į   Dx DATAĮ >  $x DATA >Į A$ DATA>   0Tx DATA >l  9 DATAl >D  4x DATAD > l  Zw DATA > D utt DATA > [ DATA>  $h DATA(w =,xd'=A@IM(" IMAzde.jpg/Documents and Settings\Yann\Mes documents\Mes images\Gimp\Azde.jpg y  $0 l CAl CACamera=B B@?LA\  LALamp?????A4B>??? B4B?@@???LA " \ LALamp.001?????A4B>??? B4B?@@???LA"  $ LALamp.003?????A4B>??? B4B?@@???LA $  " LALamp.007?????A4B>??? B4B?@@???LA  $ LALamp.008?????A4B>??? B4B?@@???IPPdr Oo IPAction.handACIPPOo dr IPConstCOWO <WOWorldٗ?ٗ?u??k;>?A@pA A'7?L=d DATAXd  ??????????TXdE |w TXGui.pyD F DATAD  ] FREEDATA  D (DATA  L FREEDATA d ק FREEDATAd   FREEDATA  d , %FREEDATA < lf FREEDATA<  ] FREEDATA  < |Y FREEDATA  FREEDATA \ X FREEDATA\   7FREEDATA  \ >#FREEDATA 4 L 4FREEDATA4 | W FREEDATA|  4 b FREEDATA  | FREEDATA T FREEDATAT  DS FREEDATA  T a FREEDATA , R FREEDATA, t  ;FREEDATAt  , 'FREEDATA  t t FREEDATA L ī FREEDATAL    FREEDATA  L l FREEDATA $ FREEDATA$ l FREEDATAl  $ FREEDATA  l ,P FREEDATA D D 8FREEDATAD  h FREEDATA  D FREEDATA  \׭ #FREEDATA d  FREEDATAd   L FREEDATA  d 1 FREEDATA <  %FREEDATA<  -FREEDATA  < $ FREEDATA  FREEDATA \ FREEDATA\   DATA  \ < FREEDATA 4 FREEDATA4 | ̃ FREEDATA|  4 Y FREEDATA  | Y .FREEDATA T \Z FREEDATAT  FREEDATA  T Z FREEDATA , Z FREEDATA, t []DATAt  , <[ DATA  t [ FREEDATA L e FREEDATAL   [ 3FREEDATA  L ,i FREEDATA $ 4\ e(fuDATA$ l \ BFREEDATAl  $ 4 e(fuDATA  l 7 %FREEDATA D \ -FREEDATAD  W 1FREEDATA  D lW FREEDATA  W nPatDATA d X 8FREEDATAd   < FREEDATA  d L "FREEDATA < tX )EDATA<  FREEDATA  < h FREEDATA  g FREEDATA \ X FREEDATA\   | FREEDATA  \ Y >FREEDATA 4 tY FREEDATA4 | Y FREEDATA|  4  FREEDATA  | Z FREEDATA T dZ FREEDATAT  d#FREEDATA  T \ (FREEDATA , $FREEDATA, t Z FREEDATAt  , d\ )FREEDATA  t FREEDATA L \ )FREEDATAL   $] FREEDATA  L t] FREEDATA $ ] ,FREEDATA$ l ( FREEDATAl  $ $^ 6FREEDATA  l w "FREEDATA D  #FREEDATAD   l FREEDATA  s D ^ 4FREEDATA s  r  ^ RFREEDATA r > s |_ OFREEDATA> L; r  FREEDATAL; ; > d (FREEDATA;  L; Ĵ FREEDATA ̃ ;  OFREEDATà  FREEDATA t ̃  FREEDATAt  ,&sitiDATA , t W !sitiDATA,  FREEDATA < , ̗ FREEDATA<  ܵ FREEDATA ڰ < , FREEDATAڰ \ڰ | FREEDATA\ڰ Dװ ڰ ̶ FREEDATADװ L_f \ڰ  DATAL_f 4^f Dװ d FREEDATA4^f ]f L_f FREEDATA]f ]f 4^f FREEDATA]f [f ]f 2FREEDATA[f Ƕ ]f \ FREEDATAǶ Tƶ [f FREEDATATƶ \Ŷ Ƕ < FREEDATA\Ŷ dF| Tƶ -FREEDATAdF| lE| \Ŷ FREEDATAlE| $R dF| | FREEDATA$R P lE| T #FREEDATAP <3 $R < FREEDATA<3 T2 P FREEDATAT2 T <3 FREEDATAT l T2 FREEDATAl $ T FREEDATA$  l FREEDATA T $ FREEDATAT  FREEDATA t T  FREEDATAt lh d FREEDATAlh $h t $ 'FREEDATA$h h lh 'FREEDATAh Th $h ܇ FREEDATATh ) h FREEDATA) <) Th FREEDATA<) ( ) $Mo 'FREEDATA( D <) 4>j FREEDATAD  ( FREEDATA  D FREEDATA l L FREEDATAl t FREEDATAt , l [ FREEDATA, 䁛 t Ă FREEDATA䁛  , \ FREEDATA T 䁛 d\ FREEDATAT  \ FREEDATA d T f #FREEDATAd ,< , FREEDATA,< ; d ] FREEDATA; ; ,< L] FREEDATA;  [ ; ] FREEDATA [ ] ; ] *FREEDATA] Z [  FREEDATAZ tT ] L^ FREEDATAtT  Z ^ FREEDATA f tT ^ FREEDATAf T $P &FREEDATAT $ f { FREEDATA$ ̫ T 4_ FREEDATA̫  $ |_ FREEDATA } ̫ |8 'FREEDATA}  : %FREEDATA | } ty FREEDATA| T) _ s():DATAT)  | \ڻ )FREEDATA $ T)  FREEDATA$ < ڻ FREEDATA< ֭ $ ۻ FREEDATA֭  < \ۻ >FREEDATA  ֭ ۻ 1FREEDATA 4 w FREEDATA4 ( 4ܻ (setDATA( $ 4 ܻ )FREEDATA$ , ( ܻ 7FREEDATA, P $ Lݻ FREEDATAP F| , ݻ FREEDATAF|  ƶ P < #(setDATA ƶ _z F| ݻ %FREEDATA_z  ƶ D޻ -FREEDATA  _z _ FREEDATA %  $` 0FREEDATA% 1  ` 2FREEDATA1 & % |v FREEDATA& | 1  (setDATA|  & ` )(setDATA t| Ta "FREEDATAt ^  a FREEDATA ^ , ta FREEDATA, F ^ Lb /FREEDATAF  \ FREEDATA>  'FREEDATA  > FREEDATA '   'FREEDATA' l l FREEDATAl $g ' dm FREEDATA$g |( l ) FREEDATA|( $g WFREEDATA |( < WFREEDATA   WFREEDATA  L WFREEDATA L  VFREEDATAL |L  k FREEDATA|L L L \ 'FREEDATAL  M |L $ FREEDATA M 8 L t FREEDATA8 9 M İ FREEDATA9 L9 8  #FREEDATAL9 4? 9 FREEDATA4? |? L9 l &FREEDATA|? ? 4? ?  FREEDATA,> t> = d FREEDATAt>  ,> ,FREEDATA  t>  (FREEDATA L | *FREEDATAL <%  < rnamDATA<% % L slidDATA% % <% h FREEDATA% $ % g FREEDATA$ l % ܳ 1)EDATAl  $ $ FREEDATA  l t -FREEDATA D : 4FREEDATAD  g FREEDATA ԅ D <; FREEDATAԅ  ; FREEDATA  ԅ ; FREEDATA Ԅ  FREEDATAԄ  < FREEDATA d Ԅ d< <FREEDATAd   d FREEDATA  d < -FREEDATA < _ FREEDATA<  4= FREEDATA ̆ < |= NFREEDATĂ  T FREEDATA \ ̆ = REEDATA\   D> REEDATA  \ > 4rm =DATA  4 FREEDATA < > @FREEDATA<  t? +FREEDATA  < $FREEDATA  $` 6FREEDATA \ \1 FREEDATA\   FREEDATA  \ ܲ FREEDATA 4 ` 9t|QUDATA4 | ` 2FREEDATA|  4 da FREEDATA  Q | a FREEDATA Q TQ lV FREEDATATQ Q Q a FREEDATAQ Q TQ Db &FREEDATAQ ,R Q b 'FREEDATA,R tR Q b FREEDATAtR R ,R Dc FREEDATAR S tR c .FREEDATAS LS R c FREEDATALS S S ̘ FREEDATAS S LS 4d .FREEDATAS $T S d FREEDATA$T D S d FREEDATAD  $T FREEDATA  D -FREEDATA  T FREEDATA d FREEDATAd   -DATADATA  d  = 0DATA < D %FREEDATA<  FREEDATA  < $FREEDATA  < (FREEDATA \ FREEDATA\   (FREEDATA 4 \ D 'FREEDATA4 L4 +FREEDATAL4 4 4 +FREEDATA4 4 L4 \ FREEDATA4 $5 4 4, FREEDATA$5 l5 4 , 2FREEDATAl5 5 $5 , FREEDATA5 5 l5 <- :FREEDATA5 D6 5 - FREEDATAD6 6 5 - :FREEDATA6 6 D6 l. "FREEDATA6 7 6 . FREEDATA7 d7 6 / 8FREEDATAd7 ׭ 7 |/ FREEDATA׭ ׭ d7 T^ DATA׭ Dح ׭ $ DATADح ح ׭ / ent DATAح ح Dح 0 .i+1,DATAح ٭ ح l0 JerHeDATA٭ d٭ ح 0 @d1DATAd٭ ٭ ٭ ip)DATA٭ ٭ d٭ w |LDATA٭ <ڭ ٭  FREEDATA<ڭ ڭ ٭ 4w &T GUDATAڭ ڭ <ڭ T GUDATAڭ ۭ ڭ w FREEDATAۭ īx ڭ ܫw )FREEDATAīx  x ۭ FREEDATA x Tx īx #This if-else is to make the scriptDATA8L #available under Windows without install full pythonssDATAW DATA bimport sysDATA if sys.platform == "win32":DATA  import ntDATADS else:7DATA a import osDATAR  32DATA< ############IMPORT OF SOME MODULES#########################DATA'import BlenderDATAt from Blender.Draw import *DATAī from Blender.BGL import *DATA from Blender import WindowDATAl import MorphFilesEEDATAimport MorphingDATA import MHsymmetryEEDATA #import PreviewerEEDATA,P DATA<D ############SOME GLOBAL VARIABLES#######################tDaDATAh DATA WinSize = Buffer(GL_FLOAT,4)namDATA$\׭ glGetFloatv(GL_SCISSOR_BOX,WinSize)DATA buttonWidth = 120EEDATAL buttonHeight = 18EEDATA 1Border = 90DATA( nColumn = int(WinSize[2]/buttonWidth)DATA0 nRows = int((WinSize[3]-Border)/buttonHeight)DATA$ idxOfGroup = 0DATA pathOK = 0DATA mainPath = ""DATA MenuButton = Create(0)DATA< MenuButton1 = Create(0)DATA MenuButton2 = Create(0)DATà MenuButton3 = Create(0)DATAY MenuButton4 = Create(0)DATA0Y message = "OSI Certified Open Source Software"DATA \Z paintMode, riggingMode = 0,0DATA 32DATAZ nameOfGroups = []EEDATAZ targetsPaths = []EEDATA buttonList = []DATA<[ buttonTooltips = []DATA[ buttonNames = [] EEDATAe  32DATA4[ ############ PATH FUNCTIONS #######################DATA,i  32DATA 4\ def startSequence(fullPath):DATAD\  global pathOK, positionOfButtons ,Morph, nRows, nColumn, mainPathEDATA 4  pathOK = 0DATA(7  if fullPath.find("base.mesh") != -1:DATA0\  mainPath = fullPath.replace("base.mesh","")DATA4W  print "mainPath from browse function", mainPathEEDATA lW  MorphFiles.saveIni(mainPath)DATAW  makeButtons(mainPath)DATA<X  positionOfButtons = makeButtonPosition(nRows, nColumn),MoDATA$<  MorphFiles.buildMesh(mainPath)EDATA$L  Morph = Morphing.Morph(mainPath)EDATAtX  Blender.Redraw()EDATA  pathOK = 1yDATAh  DATAg  32DATAX def makeButtons(path):DATA|  32DATA@Y  global targetsPaths, nameOfGroups, buttonList, buttonTooltipsDATA tY  if sys.platform == "win32":)DATA Y  fileList = nt.listdir(path)~DATA  else:DATA Z  fileList = os.listdir(path)orDATAdZ  for fileName in fileList:DATA$d if len(fileName.split(".")) == 1:DATA,\  targetFolder = fileName.split(".")[0]DATA(  nameOfGroups.append(targetFolder)[0DATA Z  if sys.platform == "win32":DATA,d\  fileList2 = nt.listdir(path+fileName)`DATA  else:EEDATA,\  fileList2 = os.listdir(path+fileName)DATA $]  for fileName2 in fileList2: DATA t]  if sys.platform == "win32":DATA0]  localPath = targetFolder+"\\"+fileName2DATA ( else:DATA8$^  localPath = os.path.join(targetFolder, fileName2)DATA$w  targetsPaths.append(localPath)EDATA$  buttonList.append(Create(0.00))DATAl  67DATA8^  if len(fileName2.split(".")[0].split("-")) == 2: lDATAT^  buttonTooltips.append(fileName2.split(".")[0].split("-")[1].replace("_"," "))"DATAP|_  buttonNames.append(fileName2.split(".")[0].split("-")[0].replace("_"," "))DATA   else:DATA,d  buttonTooltips.append("no tooltip")DATA Ĵ  buttonNames.append("???")-DATAP  print "WARNING: target name "+fileName2.split(".")[0]+" have wrong sintax"DATA  7DATA  32DATA(,def makeButtonPosition(rowns,columns):DATA$W  global buttonHeight, buttonWidthEEDATA  positionsList = []DATA̗  x=10DATAܵ  for i in range(columns):DATA,  y = int(WinSize[3]-80)1rDATA|  for i2 in range(rowns):eDATA ̶  positionsList.append([x,y])lDATA  y -= buttonHeightDATAd  x += buttonWidth DATA  return positionsList DATA  32DATA4 ############ MAKEHUMAN FUNCTIONS #################EDATA\ 32DATA def saveTarget(targetPath):DATA<  global mainPath, messageutDATA0  MorphFiles.writeTarget(targetPath, mainPath)DATA  message = "Saved" + targetPathDATA|  32DATA$T def applyTarget(targetPath, value):DATA<  global Morph, messageDATA$  Morph.doMorph(targetPath,value)REEDATA  32DATA def makeSymm():DATA global messageDATA  MHsymmetry.MHsym()DATA  message ="Symmetry done"DATA  DATA def saveVGroup():EEDATAd  global mainPath, messageDATA($  MorphFiles.save_vertexgroups(mainPath)DATA(  message ="VGroup Saved in " + mainPathDATA܇ DATA def loadVGroup():EEDATA  global mainPath, messageDATA($Mo  MorphFiles.load_vertexgroups(mainPath)DATA$4>j  message ="Auto Vertex Group OK"evtDATA  DATA def autoUV():DATAL  global mainPath, messageDATA  MorphFiles.applyUV(mainPath)DATA[  message ="Auto UV OK"DATAĂ DATA\ def saveUVcoo():REEDATAd\  global mainPath, messageDATA \  MorphFiles.saveUV(mainPath) DATA$f  message ="UV saved in " + mainPathDATA,  DATA] def buildBase():REEDATAL]  global mainPath, messageDATA ]  MorphFiles.buildMesh(mainPath)DATA,]  message = "build mesh in cursor position",DATA DATAL^ def saveBaseFaces():DATA^  global mainPath, messageDATA ^  MorphFiles.saveFaces(mainPath)DATA($P  message = "Saved faces in "+ mainPathDATA{ DATA4_ def saveBaseVerts():DATA|_  global mainPath, messageDATA(|8  MorphFiles.writeOriginalMesh(mainPath)DATA(:  message = "Saved mesh in "+ mainPathDATAty  32DATA _ def saveSettings(settingPath):DATA,\ڻ  global buttonList, targetsPaths, messageDATA   vList = []DATA ڻ  for eachButton in buttonList:gDATA ۻ  vList.append(eachButton.val)DATA@\ۻ  MorphFiles.saveTargetsValue(settingPath, targetsPaths, vList)0DATA4ۻ  message = "Saved Body setting in "+ settingPathEEDATAw  32DATA 4ܻ def loadSettings(settingPath):iDATA,ܻ  global buttonList, targetsPaths, messageDATA8ܻ  settingData = MorphFiles.loadTargetsValue(settingPath)DATALݻ  for line in settingData:PDATA ݻ  tpath = line.split(",")[0]DATA$<  tval = float(line.split(",")[1])DATA(ݻ  for i in range(len(targetsPaths))::DATA0D޻  if targetsPaths[i] == tpath and tval != 0:DATA _  buttonList[i].val = tvalh aDATA4$`  applyTarget(mainPath + targetsPaths[i],tval)DATA4`  message = "Load Body setting from "+ settingPathEDATA|v  32DATA def resetAll():DATA,`  global buttonList, targetsPaths, messageDATA$Ta  for i in range(len(buttonList)):EDATA a  if buttonList[i].val != 0:enDATAa  buttonList[i].val = 0.00DATA0Lb  applyTarget(mainPath + targetsPaths[i],0.00)DATAb  message = "Reset Done"DATAt  32DATA,b ############DRAW FUNCTION#################DATAs  32DATA <def draw():DATAԎ  global pathOKDATA$Tc  glClearColor(0.0, 0.0, 0.0, 0.0)##DATA c  glClear(GL_COLOR_BUFFER_BIT)##DATAc  if pathOK == 1:REEDATAH  global buttonTooltips,positionOfButtons,WinSize,message,buttonListgeDATA<t  global buttonWidth, buttonHeight, idxOfGroup,nameOfGroupsDATAD䗟  global MenuButton,MenuButton1,MenuButton2,MenuButton3,MenuButton4DATA \  global paintMode, riggingModeDATAdr  ##DATA  #Generation of menu stringslsDATA  menuOfGroups = "Anatomy %t"DATAL  for name in nameOfGroups:DATAH  menuOfGroups += "| " + name + " %x" + str(nameOfGroups.index(name))DATA  if paintMode == 0:DATA(\  paintCommand = "Paint mode "+ "ON"DATAp  else:DATA(  paintCommand = "Paint mode "+ "OFF"DATA  if riggingMode == 0:DATA$$  riggCommand = "Rigg mode "+ "ON"DATAdo  else:DATA(|  riggCommand = "Rigg mode "+ "OFF"DATA`Ԑ  commands1 = "Edit %t|Symm%x0|Build%x1|"+paintCommand+"%x2|"+riggCommand+"%x3|Reset All%x4"DATA,d  commands2 = "Auto %t| UV%x0| VGroups%x1"DATATđ  commands3 = "Advanc %t|Save Groups%x0|Save UV%x1|Save faces%x2|Save vertex%x3"##DATA\L  commands4 = "File %t|Save Target%x0|Save Body Setting%x1|Load Body Setting%x2|Exit%x3"DATAn 50,DATA,ܒ  #Buttons background and buttons title#DATAT  glColor3f(0.5,0.5,0.5)DATA,<  glRectf(0,WinSize[3],1000,WinSize[3]-45)DATA  glColor3f(1,1,1)EDATA(䓟  glRasterPos2i(10,int(WinSize[3]-15))DATA  Text("File")DATA(<  glRasterPos2i(90,int(WinSize[3]-15))DATA  Text("Anatomy")EEDATA(d  glRasterPos2i(170,int(WinSize[3]-15))DATA  Text("Edit")DATA(  glRasterPos2i(250,int(WinSize[3]-15))DATA Text("Auto")DATA(  glRasterPos2i(330,int(WinSize[3]-15))DATAl  Text("Advanced")EDATAdm  DATA ) #ButtonsDATAX  MenuButton = Menu(menuOfGroups, 1000, 90, int(WinSize[3]-40), 80, 18, MenuButton.val)DATAX<  MenuButton1 = Menu(commands1, 1001, 170, int(WinSize[3]-40), 80, 18, MenuButton1.val)DATAX  MenuButton2 = Menu(commands2, 1002, 250, int(WinSize[3]-40), 80, 18, MenuButton2.val)DATAXL  MenuButton3 = Menu(commands3, 1003, 330, int(WinSize[3]-40), 80, 18, MenuButton3.val)DATAX  MenuButton4 = Menu(commands4, 1004, 10, int(WinSize[3]-40), 80, 18, MenuButton4.val)DATAk  i = 0DATA(\  groupToSee = nameOfGroups[idxOfGroup]DATA$  sliderTtip = "no tooltip"DATA t  for eachPath in targetsPaths:DATA İ  if sys.platform == "win32":kDATA$  pathData = eachPath.split("\\")DATA  else:DATA(l  pathData = os.path.split(eachPath)DATA  if sys.platform == "win32":DATA8>  targetPathFull = mainPath + targetsPaths[evt-1]DATA 4  else:DATAD>  targetPathFull = os.path.join(mainPath,targetsPaths[evt-1])REEDATA,t?  if MorphFiles.fileExist(targetPathFull):DATA $ try:DATA8$`  applyTarget(targetPathFull,buttonList[evt-1].val)DATA \1 except:DATA  passDATA ܲ  else:DATA<`  PupMenu("Warning%t|Target not found, check console" )DATA4`  print "The file ", targetPathFull, "not exist"EDATAda  if (evt == 1000):DATA a  idxOfGroup = MenuButton.valDATA lV  Draw()DATAa  if (evt == 1001):DATA(Db  if MenuButton1.val == 0: makeSymm()DATA(b  if MenuButton1.val == 1: buildBase()DATA b  if MenuButton1.val == 2: elDATADc  if paintMode == 0:DATA0c  applyTarget(mainPath+"paint.target",1.00)EDATAc  paintMode = 1EDATA ̘ else:DATA04d  applyTarget(mainPath+"paint.target",0.00)EDATAd  paintMode = 0EDATAd  if MenuButton1.val == 3:DATA  if riggingMode == 0:DATA0  applyTarget(mainPath+"rigg.target",1.00)EEDATAT  riggingMode = 1DATA  else:DATA0  applyTarget(mainPath+"rigg.target",0.00)EEDATA  riggingMode = 0DATA(D  if MenuButton1.val == 4:resetAll()oDATA  if (evt == 1002):DATA(  if MenuButton2.val == 0: autoUV()DATA,<  if MenuButton2.val == 1: loadVGroup()DATA  if (evt == 1003):DATA,  if MenuButton3.val == 0: saveVGroup()DATA(D  if MenuButton3.val == 1: saveUVcoo()DATA,  if MenuButton3.val == 2: saveBaseFaces()DATA,  if MenuButton3.val == 3: saveBaseVerts()DATA\  if (evt == 1004):DATA4,  if MenuButton4.val == 0:DATA4,  Window.FileSelector(saveTarget, "Save Target")EDATA ,  if MenuButton4.val == 1: ndoDATA<<-  Window.FileSelector(saveSettings, "Save Body setting")eDATA-  if MenuButton4.val == 2:DATA<-  Window.FileSelector(loadSettings, "Load Body setting")DATA$l.  if MenuButton4.val == 3: Exit()EDATA.  if (evt == 10000):DATA< /  Window.FileSelector(startSequence, "Select BaseMesh");DATA|/  Window.RedrawAll()DATAT^  DATA  DATA/ def event(evt, val):DATA0 0  if (evt== ESCKEY and not val): Exit(); returnEDATALl0  else: return # this is important: only re-register if an event was caught DATAD0  Register(draw, event, bevent) # re-register to stay in the loopideDATA  )DATA w Register(draw, event, bevent)DATA  32DATA(4w ############START GUI#################ADATA ###DATA w mainPath = MorphFiles.readIni()DATA,ܫw print "mainPath from ini file: ",mainPathDATA try:7DATA DATAdRRRt 6DATARRdR DATARDATA $а ĵ t m>DATA$а lа < v)?DATAlа а $а , 98'?DATAа а lа DATAа DѰ а  `7~DATADѰ Ѱ а d  DATAѰ Ѱ DѰ t1 DATAѰ Ұ Ѱ  DATAҰ dҰ Ѱ DATAdҰ Ұ Ұ a DATAҰ Ұ dҰ  DATAҰ <Ӱ Ұ 4 ,DATA<Ӱ Ӱ Ұ `7~DATAӰ Ӱ <Ӱ D DATAӰ ԰ Ӱ | JDATA԰ \԰ Ӱ t s!DATA\԰ ԰ ԰ BBDATA԰ ԰ \԰ | DATA԰ 4հ ԰ , DATA4հ |հ ԰ D DATA|հ հ 4հ  DATAհ  ְ |հ  DATA ְ  հ \ DATA  ְ =DATA T ' s}DATAT   {DATA  T {DATA , L DATA, t %DATAt  , 2`7~DATA  t \ DATA L D DATAL   %DATA  L % DATA $  DATA$ l T DATAl  $ | oDATA  l M`7~DATA D d `7~DATAD  $ K`7~DATA  D , DATA  DATA d | DATAd   캶 DATA  ( d L DATA ( T( 4 !DATAT( ( (  _DATA( ( T( ! {UDATA( ,) ( yDATA,) t) ( DATAt) ) ,) ȑDATA) * t) |9 dDATA* L* )  /DATAL* * * D% PxDATA* * L* | mDATA* $+ * 9 QWDATA$+ l+ * : nDATAl+ + $+ \: q8?DATA+ + l+ : DATA+ D, + : iDATAD, , + 4; DATA, , D, ; DATA, - , ; DATA- d- , < DATAd- - -  ջDATA- - d- d< `7~DATA- T) - < `7~DATAT) ) - D `7~DATA) ) T) d `7~DATA) ,* ) < 2ջDATA,* t* ) \= L?DATAt* * ,*  DATA* + t* = DATA+ L+ * = DATAL+ + + < DATA+ + L+  DATA+ $, + 42 DATA$, l, + Կ DATAl, , $, L> DATA, , l, > EDATA, D- , 1 DATAD- - , ? ADATA- - D- 0 ZľDATA- . - 0 ȑDATA. d. - DATAd. . . d0 -DATA. . d. 4 DATA.  =  (DATA<> > = l2 `7~DATA> > <> l `7~DATA> ? > ]DATA? \? > d `7~DATA\? ? ? MDATA? $ \? + `7~DATA$ l ? L a0DATAl  $ ;?DATA  l :]n?DATA D 4 ML?DATAD  ? @DATA  D \ @DATA  &֐&@DATA  DATA,d # Adapted from symetry.py by vnd@seznam.czDATAT # This is stripped down to help with target creation...NO UV or coloring done hereDATA4L # Use the original for a more robust symetry applenDATA4 #yDATAL# Craig SmithsDATAl pyDATALimport BlenderDATA from Blender import NMeshanDATA from Blender.Draw import *rDATAT from Blender.BGL import *urDATA pyDATA adjustVertexCoords = Create(1)xDATAdelta = 0.001DATA delta2 = delta * deltaDATAl pyDATA < def MHdist2sym (verts, v1, v2):DATA  DATA  x1, y1, z1 = verts[v1].conDATA  x2, y2, z2 = verts[v2].conDATA DATA Ta x2 = -x2DATA DATAT_ dx = x1 - x2DATA_ dy = y1 - y2DATA^ dz = z1 - z2DATA< DATA$,  return dx * dx + dy * dy + dz * dzDATA DATA@, def MHmakeSymetry (verts, faces, left, right, centr, corresp):gDATAt DATA  moved = [0] * len(verts)inDATA   for i in range(0, len(right)):DATA& vi = right[i]DATA<  cvi = corresp[vi]DATA  if (cvi == -1):DATA $ continueDATA DATA0  if (MHdist2sym(verts, vi, cvi) >= delta2):DATA,  moved[vi] = 1DATA  DATAt  x, y, z = verts[cvi].cokuDATAD  DATA  verts[vi].co[0] = -xDATA   verts[vi].co[1] = yDATAT  verts[vi].co[2] = zDATAT  DATA$  for i in range(0, len(corresp)):liDATA  if (i == corresp[i]):DATA<  x = verts[i].co[0]DATA$  if (x < -delta or x > delta):.pyDATA  moved[i] = 2DATA$  verts[i].co[0] = 0DATA  return movedDATA\ DATA l def MHcreateEdgeDict(faces):t.bDATA DATA 4,  edges = {}DATA   for i in range(0, len(faces)):DATA   numf = len(faces[i].v)latDATAl  for vi in range(0, numf):DATA  v1 = faces[i].v[vi].indexDATA,  v2 = faces[i].v[(vi + 1) % numf].indexDATA8l  if ((v1,v2) in edges and edges[(v1,v2)] != (i, vi)):DATA4  print "edge in 2 faces, this should not happen"DATA<  edges[(v1,v2)] = (i, vi)DATA DATA  return edgesDATA  DATAL DATAH def MHcheckCorrespFace(faces, corresp, correspfaces, f1, f2, offset):V?DATA  DATA  numf = len(faces[f1].v)>DATA DATA T  if (numf != len(faces[f2].v)):DATA $ return 0DATA+ DATA  for vi in range(0, numf): DATA  v1 = faces[f1].v[vi].indexDATA$D  vi2 = (numf - vi + offset) % numfDATAl+ DATA  v2 = faces[f2].v[vi2].indexDATA*  DATA\  c1 = corresp[v1]DATA) DATA  if (c1 != -1 and c1 != v2):DATA  return 0DATA   return 1DATA(  DATAD< def MHsetCorrespFace(faces, corresp, correspfaces, f1, f2, offset):DATA& DATAp  if (correspfaces[f1] != -1 and correspfaces[f1] != f2 or correspfaces[f2] != -1 and correspfaces[f2] != f1):DATA,T  print "corresp face already set", f1, f2DATA  return 0DATA% DATA$  correspfaces[f1] = f2;DATAl  correspfaces[f2] = f1;DATA  numf = len(faces[f1].v)xDATAL% DATA  for vi in range(0, numf): DATA T  v1 = faces[f1].v[vi].indexhDATA$  vi2 = (numf - vi + offset) % numfDATA  v2 = faces[f2].v[vi2].indexDATA$  DATA\L  if (corresp[v1] != -1 and corresp[v1] != v2 or corresp[v2] != -1 and corresp[v2] != v1):DATA4  print "corresp face already set", f1, f2, v1, v2DATA 9  return 0DATA"  DATAD  corresp[v1] = v2DATA  corresp[v2] = v1DATA  return 1DATA! DATA8 def MHfindCorresp(verts, left, right, ylist, corresp):DATA DATA <  for i in range(0, len(ylist)):DATA  y0, vi0, side0 = ylist[i]DATA  DATA  if (corresp[vi0] != -1):DATA 8  continueDATAt  DATAt  i2 = i + 1_?DATA<  DATA<,  while (i2 < len(ylist) and ylist[i2][0] - y0 <= delta):>DATA  y, vi, side = ylist[i2]DATA  DATAd  DATAt1  i2 = i2 + 1DATA  DATA  if (side == side0):DATAa continueDATA  DATA04  if (MHdist2sym(verts, vi0, vi) < delta2):DATA  corresp[vi0] = viDATAD  corresp[vi] = vi0DATA |  breakDATAt  DATAD def MHfindCorrespFaces(faces, left, right, corresp, correspfaces):DATA| DATA,  notchanged = 1DATAD  DATA$  edges = MHcreateEdgeDict(faces)DATA  DATA \  for i in range(0, len(faces)):DATA  if (correspfaces[i] != -1):<=DATA ' continueDATA  DATA  numf = len(faces[i].v)DATAL  for vi in range(0, numf):DATA(  c1 = corresp[faces[i].v[vi].index]DATA4  c2 = corresp[faces[i].v[(vi + 1) % numf].index]DATA \  if (c1 != -1 and c2 != -1):DATAD  DATA(  if ((c2,c1) not in edges):DATA% continueDATA   cf, offset = edges[(c2,c1)]DATA T  offset = offset - vi + 1DATA|  DATAP  if (not MHcheckCorrespFace(faces, corresp, correspfaces, i, cf, offset)):s\DATAd  continueDATAL$  if (not MHsetCorrespFace(faces, corresp, correspfaces, i, cf, offset)):DATA,  continueDATA  notchanged = 0DATA |  break~DATA캶  return notchangedDATAL DATA$4 def MHfindSymetry (verts, faces):DATA DATA !  left = []DATA  right = []DATA  centr = []DATA  corresp = []?DATA|9  correspfaces = []DATA  DATA D% ylist = []DATA|  DATA 9  for i in range(0, len(verts)):DATA:  corresp.append(-1)q=DATA\:  x, y, z = verts[i].coDATA:  if (x <= -delta):DATA:  left.append(i)DATA4;  ylist.append([y,i,'l'])DATA;  elif (x >= delta):DATA;  right.append(i)DATA<  ylist.append([y,i,'r'])DATA  else:DATAd<  centr.append(i)DATA<  corresp[i] = iDATAD DATAd ylist.sort()DATA4<  MHfindCorresp(verts, left, right, ylist, corresp)?DATA\=  correspVerts = corresp[:]?DATA DATA =  for i in range(0, len(faces)):DATA=  correspfaces.append(-1)~DATA< DATA  DATA42 DATA Կ  res = 0DATAL>  while (res == 0):DATAH>  res = MHfindCorrespFaces(faces, left, right, corresp, correspfaces)DATA1 DATAD ?  return (left, right, centr, corresp, correspVerts, correspfaces)_DATA0  DATA0 DATA def MHsym():ΧDATAd0  """DATA4 DESCRIPTION:>DATA<?  Attempts to make the both sides of the mesh symmetrical.DATA<t  This code has been adapted from the original symetry.pyDATAD  from vnd@seznam.cz. The homepage is http://sweb.cz/vnd/symetry/@DATA,0  DATA _  SYNOPSIS:DATA  MHsym()1DATA/  DATA\_  PARAMETERS:DATA/  NoneDATA/ DATAj  RETURN VALUES:DATA-  NoneDATA-  """DATA- DATA\  global adjustVertexCoordsDATA(  Objects = Blender.Object.GetSelected()DATA,  DATA  mesh = Objects[0].dataDATAl2 DATA l  left = []DATA  right = []DATA d  centr = []DATA corresp = []DATA+ DATAdL  left, right, centr, corresp, correspVerts, correspFaces = MHfindSymetry (mesh.verts, mesh.faces)?DATA DATA  if (adjustVertexCoords.val):H>DATAP4  moved = MHmakeSymetry (mesh.verts, mesh.faces, left, right, centr, corresp)DATA? DATA\ mesh.update()DATA(  Objects[0].makeDisplayList() # addedDATA  Blender.Redraw()TXd\ DATAJ J TJ :DATAJ ,K J ---DATA,K tK J \ DATAtK K ,K ---DATAK L tK  #---DATAL LL K DATALL L L  ---DATAL L LL ܤ DATAL $M L \ 2---DATA$M lM L  3DATAlM M $M T 6DATAM M lM %DATAM DN M , 8DATADN N M Ÿ )DATAN N DN |Ÿ # 34 DATAN O N Ÿ 0DATAO dO N <ß DATAdO $@ O ß DATA$@ l@ dO ß DATAl@ @ $@ $ğ )DATA@ @ l@ ğ  DATA@ DA @ DATADA A @ ğ 'DATAA A DA N DATAA B A ,ş 0DATAB dB A / DATAdB B B ş 'DATAB B dB Ĩ_DATAB  (f.uDATAC C DATA\vvv )7>DATAvv\v\  0=DATAv4wv\* r=DATA4w|wv G|DATA|ww4w% CY=DATAw x|w %R>DATA xTxw +(j>DATATxx xld DATAxxTx DATAx,yxd DATA,ytyxL DATAtyy,y| DATAyztyh DATAzLzy DATALzzz $DATAzzLz< 2DATAz${zԭ DATA${l{zT DATAl{{${ DATA{{l{\h DATA{D|{ DATAD||{ 0?DATA|$p D| "mpDATA$p lp | DATAlp p $p impoDATAp p lp L a2 =DATAp Dq p T 2 DATADq q p 4" e(0,DATAq q Dq $ cDATAq r q  foDATAr dr q D  movDATAdr r r acesDATAr r dr #, thDATAr DATA& L& % I DATAL& & & l DATA& & L& 쵫 'DATA& $' & D CDATA$' l' & WDATAl' ' $' , DATA' ' l' DATA' D( ' h DATAD( ( ' d DATA( ( D(  DATA( ) ( D DATA) d) (  DATAd) ) ) 4jDATA) ) d) .DATA) <* ) cDATA<* * ) DATA* * <* T P,DATA* + * ܸ "nnnDATA+ \+ *  sssDATA\+ + + 4 0sssDATA+ + \+ lF sssDATA+ 4, + 3sssDATA4, |, + $g sssDATA|, , 4,  sssDATA,  - |, FREEDATA - T- , DATAT- - - %DATA- - T- T DATA- ,. - L DATA,. t. - DATAt. . ,. DATA. / t. x DATA/ L/ . DATAL/ / / < 'DATA/ T L/ ZDATAT 4U / DATA4U |U T $ DATA|U U 4U  DATAU  V |U t /DATA V TV U  DATATV V V $DATAV V TV Է DATAV ,W V | DATA,W tW V $ VDATAtW W ,W #DATAW X tW  TDATAX LX W « DATALX X X 3DATAX X LX DATAX $Y X < ;DATA$Y lY X DATAlY Y $Y DATAY Y lY D DATAY DZ Y DATADZ Z Y ܻ DATAZ Z DZ , DATAZ [ Z D DATA[ d[ Z  DATAd[ [ [  DATA[ [ d[ | =DATA[ <\ [  DATA<\ \ [ DATA\ \ <\  DATA\ ] \ ܘDATA] \] \ < DATA\] ] ] DATA] ] \]  DATA] 4^ ] 'DATA4^ |^ ] ܽ DATA|^ ^ 4^ \ DATA^  _ |^ DATA _ T_ ^  DATAT_ _ _ ! DATA_ $ T_ L &FFFDATA$ l _ l" DATAl  $ 4# DATA  l DATA D ܾ DATAD   DATA ԑ D d DATAԑ  DATA d ԑ $P "DATAd   |P DATA  d t# DATA < P DATA<  # DATA ̓ < DATA̓  Q DATA \ ̓ ,$ DATA\   lQ DATA 씮 \ l$ DATA씮 4 Q DATA4 | 씮 Q DATA| ĕ 4 DR v)DATAĕ  | $ FREEDATA T ĕ R FREEDATAT  L& PPPDATA 䖮 T R PPPDATA䖮 , 4S 6PPPDATA, t 䖮 S ;DATAt  , T DATA  t & DATA L TT DATAL   T DATA ܘ L T DATAܘ $ ( DATA$ l ܘ U +DATAl  $ lU DATA  l ) DATA D * DATAD  U DATA Ԛ D + DATAԚ $ U &DATA$ l Ԛ + DATAl  $ d1 DATA  l 4V DATA D! lV DATAD! ! V DATA! ! D! V DATA! " ! 4W DATA" d" ! lW "DATAd" " " W DATA" " d" 1 DATA" <# " X "DATA<# # " 6 DATA# # <# lX DATA# $ # X DATA$ \$ # X DATA\$ $ $ 8 DATA$ $ \$ 4Y $DATA$ 4% $ 8 DATA4% |% $ Y DATA|% % 4% Y DATA%  & |% Z DATA & T& % dZ DATAT& & & Z DATA& & T& 9 DATA& ,' & Z DATA,' t' & l; DATAt' ' ,' 4[ DATA' ( t' DATA( L( ' #DATAL( ( ( T DATA( ( L( DATA( $) ( ; DATA$) l) ( DATAl) ) $) C DATA) ) l) < DATA) D* ) |D DATAD* * ) ,DATA* * D* F DATA* $p * LG DATA$p lp * 䖤 (1)DATAlp p $p , FREEDATAp p lp d FREEDATAp Dq p FREEDATADq q p 엤 FREEDATAq q Dq < FREEDATAq r q FREEDATAr dr q ܘ FREEDATAdr r r  FREEDATAr r dr L FREEDATAr   return 0rDATADƟ  sourceVertexList = []PDATA DATA<Ɵ  #Open the base file to read the points init coordinates" DATA Ɵ  file = open(path+"base.mesh")bDATA Lǟ  vertexData = file.readline().bDATAǟ  while vertexData:tDATA$ǟ  vertexCoo = vertexData.split(',')DATA4<ȟ  sourceVertexList.append([float(vertexCoo[0]),\e(1DATA ȟ  float(vertexCoo[1]),\171DATA ȟ  float(vertexCoo[2])]) flDATA Dɟ  vertexData = file.readline()+DATA file.close()2]DATA  DATA$ɟ  #Write the comments, if retriviedcDATAɟ  for comment in comments:edDATA(  try:DATA$<ʟ  fileDescriptor.write(comment) uDATA 4  except:DATA+  passDATA4Z DATA ʟ  #Write the points of target 0DATAʟ  epsilon = 0.001 12DATAL$  targetVertexList = None DATA  try:DATA,$  targetData = Blender.Object.Get("Base")DATA0$  targetVertexList = targetData.getData().vertsDATA |n  except: 14DATA$\%  print "No target object in scene"DATA |5 return0 RDATA,%  for index in range(len(sourceVertexList)):DATA,&  sourceVertex = sourceVertexList[index]ssDATAt&  if targetVertexList:DATA,&  targetVertex = targetVertexList[index]sDATAH'  if abs(normcube(sourceVertex)-normcube(targetVertex.co)) > epsilon:DATA$'  # write to the target file #7~DATA T) try:DATAp'  fileDescriptor.write("%d,%f,%f,%f\n" % (index,targetVertex.co[0],targetVertex.co[1],targetVertex.co[2]))DATA(  except IOError:DATA4(  print "Error in writing data in %s" %filenameDATA  DATA<)  # for file flushing #DATA)  fileDescriptor.close() DATA s  return 1DATA4Q DATA ) def writeOriginalMesh(path):DATAh  """DATA  DESCRIPTION6DATA8$*  Create the base.mesh, an indexed list of all vertexDATA8*  of baseMesh, in their original no modified position-DATAlǶ  DATA l  SYNOPSISDATA*  writeOriginalMesh(path)DATA<#  DATA PARAMATERSDATA(D+  path : the path where save the fileDATA,  DATA+  RETURN VALUES:?DATA(+  Return 1 if success, 0 otherwise. DATAj  """ DATA$} DATA4 DATA<,  # Get Raw mesh data #DATA  try:DATA$,  obj = Blender.Object.Get("Base")DATA,  obj_mesh = obj.getData()DATA ` except:DATA ,-  print "Base obj not in scene"DATA T` returnDATA DATA(|-  sourceMeshVertexData = obj.getData()DATA0-  sourceVertexList = sourceMeshVertexData.vertsDATA  try:DATA04.  fileDescriptor = open(path+"base.faces", "w")DATA Ŀ  except:DATA$.  print "error to save mesh file"EEDATA,.  for index in range(len(sourceVertexList)):DATA,$  sourceVertex = sourceVertexList[index]FZ@DATA4+  try:DATA@  fileDescriptor.write("%f,%f,%f\n" % (sourceVertex.co[0],\DATA$  sourceVertex.co[1],\T@DATA$L  sourceVertex.co[2]))DATAL/  except IOError:DATA4  print "Error in writing data in %s" %filenameDATA  fileDescriptor.close() DATA & return 1~DATA DATA\ def saveFaces(path):wDATA\* DATA  """DATA% DESCRIPTIONDATA  Save an ascii file:?DATA,  each line is a the index of the vertex in DATA ld  a face.DATA DATA d SYNOPSISDATAL  saveFaces(path)DATA| DATA h  PARAMATERSDATA  filename: the name of fileDATA(  path: the path where save the files DATA4<  SourceObject: the object in Blender scene to saveDATAԭ  =DATAT  RETURN VALUES:DATA  NoneDATA\h  """DATA  DATA  try:DATA$  obj = Blender.Object.Get("Base")zDATA  obj_mesh = obj.getData() DATA  except: * DATA L  print "Base obj not in scene"DATA T  return faDATA4"  DATA(  file = open(path+"base.faces", "w")a.DATA  for f in obj_mesh.faces: DATAD  nfaces = len(f)acDATA  if nfaces == 3:2)DATA$  file.write(str(f.v[0].index)+",\DATA ,  "+str(f.v[1].index)+",\1 =DATA |  "+str(f.v[2].index)+"\n")uDATA  if nfaces == 4:[fDATA$  file.write(str(f.v[0].index)+",\DATAl  "+str(f.v[1].index)+",\DATA  "+str(f.v[2].index)+",\DATA  "+str(f.v[3].index)+"\n")i0DATA?  file.close()i2DATA# DATAQ DATA\ def buildMesh(path):(faDATAD  """DATA  DESCRIPTION= -DATA(  Build the mesh reading two ascii file:DATA(  a vertex list and a faces list, namedcDATA$T  Basedata.vertex and Basedata.facesDATA(  If the Base object already exist, theaDATA(  function only print a short messagep) DATA$  DATA  SYNOPSIS rDATA\  buildMesh(path)codDATA܎ DATA  PARAMATERSDATA  filename : The list of facestsDATA  filename2 : The list of vertexDATAT6 DATA,7 RETURN VALUES:DATA,D  Return an object named Base, using a mesh DATA$j  named Base.DATAl#  """DATA(  #test if an obj named Base or Base.***DATA  #is already in the scene.DATA L  allObjs = Blender.Object.Get()DATA  obAlreadyInScene = 0DATA  for ob in allObjs:DATA,  if ob.name[:4] == "Base":DATA|  obAlreadyInScene = 1DATA  if obAlreadyInScene == 1:DATA(  print "Base object already in scene"DATA  else:DATA l  newBaseMesh = NMesh.GetRaw()DATA  file = open(path+"base.mesh")DATA  vertexData = file.readline()DATA\  while vertexData:DATA(  vertexCoo = vertexData.split(',')DATA$  vx,vy,vz=float(vertexCoo[0]),\A@DATAT  float(vertexCoo[1]),\@DATA  float(vertexCoo[2])03 DATA  vertex=NMesh.Vert(vx,vy,vz)rDATA$D  newBaseMesh.verts.append(vertex)DATA  vertexData = file.readline()DATA file.close()DATA$  file = open(path+"base.faces")DATA D  faceData = file.readline()DATA  while faceData:DATA(  vertexIndex = faceData.split(',')DATA4  newFace=NMesh.Face()DATA|  for i in vertexIndex:DATA  index=int(i)7@DATA0  newFace.v.append(newBaseMesh.verts[index])DATA(t  #newFace.smooth=1 # addedDATA(  newBaseMesh.faces.append(newFace)8-FDATA $  faceData = file.readline()DATA file.close()DATA(D  newBaseObj=NMesh.PutRaw(newBaseMesh)DATA $E  newBaseObj.setName("Base")DATA<tE  #newBaseMesh.setMode('SubSurf', 'Optimal') # addedA@DATA,E  newBaseMesh.update(1) # added-DATADDF  newBaseObj.setLocation(Blender.Window.GetCursorPos()) # addedDATA0F  newBaseObj.makeDisplayList() # addedDATA G  Blender.Window.RedrawAll()DATA DATA$ DATAlG def saveIni(path):pDATADZ  """DATA` DESCRIPTION100DATA G  Save a text file makehuman.iniDATAԴ  DATA % SYNOPSIS DATAJ saveIni(path)eDATA DATA 9 PARAMATERSDATA(H  path: the path where save the files"baDATA8 DATAT RETURN VALUES:DATA\]  NoneDATA&  """DATA,6  try:DATA$\H  file = open("makehuman.ini", "w")DATAH  file.write(path)DATA file.close()DATA H  print "saved new ini file"PatDATA  except:DATA$LI  print "problem to save ini file"DATA DATA4DATA_def readIni():DATA W  """DATA_ DESCRIPTIONDATA I  Read a text file makehuman.iniDATA  DATA & SYNOPSISDATA $ readIni()DATA? DATA d PARAMATERSDATA$ no parameterDATAd, DATA  RETURN VALUES:DATAI  the path of targets libDATAD  """DATA  try:DATA DJ  file = open("makehuman.ini")DATA J  targetsPath = file.readline()DATA  file.close()DATAJ  return targetsPathDATA  except:DATA(,K  print "problem to retrieve ini file"DATA\ DATA< DATAD( 32DATAӭ  DATA4K def save_vertexgroups(path, names_to_save = []):DATA  """DATA  DESCRIPTIONDATA K  save the vertexgroup of a meshDATAo DATA  SYNOPSISDATA4DATAɲ ɲ lɲ L 0MDATAɲ Dʲ ɲ DATADʲ ʲ ɲ )DATAʲ ʲ Dʲ L #DATAʲ ˲ ʲ 0DATA˲ d˲ ʲ {DATAd˲ ˲ ˲ D 9g?DATA˲ $ d˲ | UDATA$ l ˲ A}e>DATAl  $ < A`7~DATA  l $DATA D  DATAD  "DATA  D d DATA  DATA d  DATAd   l DATA  d cDATA < < cDATA<  ,Ao cDATA  < aDATA  Ao @`7~DATA \ DATA\   DATA8  morphFactor = Value - self.targetUsed[targetPath]DATAd  else:DATA  morphFactor = ValueDATA DATA(  self.targetUsed[targetPath] = ValueziDATA,t  actual_obj = Blender.Object.Get("Base")RDATA(  actual_mesh = actual_obj.getData().blDATA, DATAd  try:DATA(  fileDescriptor = open(targetPath)ps[DATA$  except IOError, (errno,strerror):DATA4L  print "I/O error(%s): %s" % (errno, strerror)DATA  try:DATA,  stringData = fileDescriptor.readline()#@DATA$L  except IOError, (errno,strerror):DATA4  print "I/O error(%s): %s" % (errno, strerror)qh>DATA DATAD  DATA|  while stringData:DATAD  if stringData.find("#") == -1 and stringData.find(",") != -1: ~DATAD<  #The second condition above is to check the line is not emptyDATA(  listData = stringData.split(',')DATA   try:DATA$  pointIndex = int(listData[0])pDATA$d  pointX = float(listData[1])endDATA$  pointY = float(listData[2])endDATA$  pointZ = float(listData[3])ascDATAl DATAd  actual_mesh.verts[pointIndex].co[0] += (pointX-self.originalPoints[pointIndex][0])*morphFactorDATAd<  actual_mesh.verts[pointIndex].co[1] += (pointY-self.originalPoints[pointIndex][1])*morphFactorDATAd,Ao  actual_mesh.verts[pointIndex].co[2] += (pointZ-self.originalPoints[pointIndex][2])*morphFactorDATA  except ValueError:DATADAo  print "the target file", fileName, "have some imperfection"DATA  else:DATA0[>=7?9ӹ1i@;`y???yG.7?[>=[>7?99-fB?DATA $ x |F   L upper leg3UK?C ]J??&$\`@ ??????????e9 f.Ƴ?Ro犲 ų?LC_ͳK3??U303:XE3?B4.#6!2?^4;YTQ4?P?JN>\lNsU@PF\@P?ʬL2?P?iNGFN>s[@P?]S@P{oK?q55? DATA  Ԕ Ԕ L forelegu&?=@>? ??????????!3"R0?J2R 3Q?H3-_43??gv2 Pt2?40 Q@4?2T5?} V>D<౾kM1D1>?d?P?} <౾D\>k1>DL1??ݬP@? DATAԔ  0??????????`rl43?2Z1%Q 2?QN4e4??<Ϸ3%?3!z4?yzôxn4?˽|">^N8\q( ̾2j?>7g?>?@?Ͻ|=q>">& ̾7g?L82j?>A@D? ^d=@? DATA0??????????PճEZ^4?QJG2H (3?h4B4G??Bݷt4߳?g3̋ȳz?4?h7/5?~=3k8]?^=X%}?=5"@ A?~1k^==B]Y%}?߅?=J@K3t@? DATA$ x (x |F L"x L"x R upper leg<8KBJ?A$`@ ??????????޿2έ#3?s,87Y31?. 31??;2Q2T|?>2pγr%3?g 4?P?h;>/i>NpYl>hKplVk1 D?u1>?dOڿ?N |> D?䱾kv1>D?1?ݬd@? DATAt$x L"x &x &x R foot`?0r? ?j>0??????????aw3u?!2劖R?<7 @{)3u4??w+( 2?14p²O3?O(3ح3k?|!oHL="̾]c@?|?L=Ѓ!&̾VLg?o?nj?>U Ag? u=@? DATA&x t$x R toe4=LH ?h>0??????????TY$4?hj1ʞ!:?x%Rк29\W4?? 3 3?:`46R02??4r 9J5?L ~rh=6źP$?1}?ڧ=A+e֜{I A?L ~-źP1}?-=$?⧥=JKIt@? DATA(x  $ x |F < < lower back P'ܰ_;?d0???????0FݠG'?t쬱oZZ?f.3zű??#ʟ!Q'Y.?R25%1?/G%\2??_.a.S?%=%U?9ӹ*@K???_..aerT?%Pѩ%=U?996, ?DATA< (x d d mid back߄=?!-0???????-cH?*t̲<J,Q2?*.Q2w??\͔-2,-?,IzT>- (?6/Wn??nJ׷~J9F w?L>׷LE w?7YH:????J9׷lJC w?Lz׷L>D w?99[팿?DATAd < upper backrx8@8>0??????????tI)p?o]@. /?j71K??ʹ,+%1-?`mTO- V0?/m??< ?<9?zH(=?H(?̒?+Ѭ???<9?<?H( ?H(=?6b9v?DATA  d chestZnBۢ:P]T#@0??????????I@9?$$3.jZ3?j."s302??.9ᡯ?nW,x3?(={23??9B3k?QykQ?5YcHؾ?ϼ??yk9=Q?A3kQ3U|=p?鱿?DATA  d ܤ ܤ neckYC9ec?A> ??????????-T-?R2B=.&?z٬3f0??P.W-J.?ȳp+.i^?t/n^~??>p9/I("%pp?8'>p?V9ńӾ(???%p8'Cp9p?>&I(p?[|=p?鱿?DATAܤ  headI@G?:Z<?Rн?1??????????QO-#Z-?j...?O. Oc254??/׮﷮?Beгt.r?G=*0 ?+-:):-:R_2 f?%2N12??j2+3$;?߳?2? ݔڴ?>7i?f]>1i.U_>о?6-?є>?>a]>,U6i?1_>1iоSu=p?鱿?DATAD  l l L upper armǿNgӺ??0??????????/t`2ŗ?'"2ѱ 3?Z0hxٳ??*q3JI2`3?0#3?4YEMS?!D>,֟þi!t,!>8??Lv>1%??!֟þq,E>i!>,!8?3Щ?DM0?4Z?DATAl D   L forearmF0@kvЯ?W?0??????????렯2m?3V`</4޳?f,+??}3GKIJߺ?V[7'#4?4 ??h)=o)4(\4(\?OE)??E))O)=4(\?(\O@-%տZ?DATA l D L handaU@ B?ǒ>0??????????ղG1Q2?2ƲT3?&O352??0*43V3d?>AQ3?`6]lY? ~(YiU ?T񽼖 ?MS?I@=*D?? ~iS:Y}U ?񽦖 ?GS?A @L3??DATA e  |a |a L pinky 1ƿҊFAV0Giʾ ??????????m>2q0R0?0۳3[3?CdP?s(R}s}?R=hft8rs}?&8=> @a8??DATA|a  c c L pinky 2>?;(%>Ʈ0??????????0)Ĥ!?Œ,361?"4O4W3??2Dr4'D? ! =˳2b3?8 /r?3])=v?(K)<v?@>~vlQ*?K)v?])=v?<@>v@xi.??DATAc |a L pinky 3@ <> ܣ;0??????????CfuS%?h/2?ʢ`>3g??8Z5444Ĥ3?=ij if2?n3}ӹ@?p;.=#j. ~s#jo&<^>b^@t}V??u;߻.s#j.=w&<#j~U>)@Kt??DATAe   g g L ring 17,@ьȒ^/c4k=t ??????????2sβk3?243?g䳵Rx4?? 43ճܳ?i- X4?[ G˹?2~r?'=â'w|â|>CWjpr}" ??7~r?_'âG'=w|>â |ӻ0??????????y1NLj?\W213MG2?3γȯ??頏44/]?oUd$ F4?&@1D?Ez?u@p y6ˏ??Kz?9.K@Kbp9u@?o~??DATAj g L ring 31V: ȭ>y;0??????????[y3Q2?w2i3?>L30a3뫲?? s44r,?3(ZY4?R!aH$ε?Pz?<~T$v싾B~T>tpwMט??Pz?#*~T?<#v>~T싾tp@mzx??DATA , e  ܕ ܕ L pointer 1كR@zz=>;KRX>U{=">)f> ??????????3x0' %1?a\2 $]3?=3:G??Q43,3? R9s*4?G4X?Ru&?UKv?> =?*Akmx?WKv? =>%%A;@aV|@?DATAܕ    L pointer 2DPo0.;H1>:0??????????h 4SԶ?do2Թ?x(4j4J3?? 3'4W2? 1F^4?Uj4?,?z?ڋ.N>=DL#N>2?Z/FAl[}n\?z?=6N> ۋ8L0?1N>W/F@l`ݲ @?DATA ܕ L pointer 3ڟ"=f>%=0?????????? !3y۲?]ưNe&?:0h3??1|4p4T24?h8N4?]5^HҴ?_aw?AQ}>@=9v[}>?RT Δ ?`aw?^=}>`-v[?Y}>R7@g_.@?DATA, D  T T L index 1VA@Wr>>j̼0??????????ᄳ_3*y? )2~y13??x3Y'??,ƃ4)A2QF?Ԛ>%4?T($ig7`??,-' 87Cf߾08>Cf4` [>??f7:8#.Cf>$8߾Cf@`??DATAT ,   L index 28m)/Z>l3<0??????????uUB? /2,3? 2c 43??3 2[4?ȡuFšS4?Y3|ܕgc5??Y{29.8In".9">In!KG=M ???//8w.92mIn">29"In@lxk@?DATA T L index 3~v]5L><0??????????&ă3T̵?c͑J2K8? d4??-'>4hv33?U(i+6?:3UĶW ??[?d9@8kȾ9>ke!4I>??$8$9kل>*}9ӄȾk@s@?DATAD ,  l l L thumb 1B)[@">q)\>t(Q>> ??????????Z2F{2?βgDZ n?xB??/ 9353?f 51%4?c3,δ?*m?^>F>$^> XhKE>ۢh?qfm1?*m?0^>NE>^Wآh?hnR @ 6?? DATAl D L thumb 2 E'>&>I3;0??????????U242f3?RKR2oe22?(Q33 "{4??$14C2?_3"2[3?l4ݴ?2T?V>n>\׾ZZZ>Z?D{'j??5T?p>[>S׾Z?W>VZDʱ@ȕ>R@? DATA l L thumb 3C%)<>╼0??????????J38s2 3?E/}3(`2?Ӳ 4 4??S@c4n%K3?:=a=3H1?(h3x9?ZV?AG>rC>8^F> ^?[;PF?[V?rC>F>A8 ^?G>^[f@d? ??????????&R2?3L'^?62̽+3??L-2qO2?P{e2,2Q2?,3}ϒ?zоi`>0|i? U >x> ,?Õ?zо> Ui0 >/|i?x>p=p?鱿?DATA$ LLR upper arm:@OeP">?0??????????/0l3? x?~\:3z3??203!޷2?r536)4V'1?n4T!1? .?> {i".?ǝ">6?{D>F?? >.?{iȝ">.?"6?9ᪿ"M0?Y?DATAL$ttR forearms@ip?u?9?0??????????W 23 0?q21RcX?"I3%??'134 Q2?U2٧@4?Yk\??#?&x=~&=>\=>\?7x@n̾?#?~&==&>\?{=>\7 %տ*~?DATAtL$ R hand2<@%N ={B?X>0??????????~c3ڲ?c m P3#Z3?E|땴1??'>̓27?ek@433 ?15B4W?~=d =&=U ?h= ?S?`-D??~&=z= =U ?^ = ?S?03ш??DATAE tĘĘR pinky 1u?9Niű?2dg?<U=Z|Vc~L8P|_8=Ȭ>a\??DATAĘdC dC R pinky 2 dpD!e%>r!0??????????KNj10??93?>|y??WCCV?_332?NH4L!"R?zg,tW,= x<tMWj>ks? lg+?{W,=tg, Mtx&i??DATAdC ĘR pinky 3lw@h _>;0??????????;3?uk0?SZ3?wHͳ??GG~cG?+&134&U?3zⲷ?lԾn1h?1=h?<>q}3a?? lԾ1=h?{1<h?> /t??DATAE L tG G R pointer 1?@^{a;LCX>'鎽#>f> ??????????bA2vf^3?x80Ǽ3t?x3cF3??R|[9?S4` ?L5sN?A;v?z=2hAK<fn?|A,X@m?E;v?뛵f|=`AKe?49|Al_Vz@?DATAG E I I R pointer 2lo=N.0>G:0??????????C~ڳz03?[8YDt3±?$EK3~# ??q$oٳ?4@ -M?{4@`]L!?z?c=OpLǤO?v&F!@3b}d[?z? pӤOc=L?Ox&FXO0R`K @?DATAI G R pointer 3 %=0??????????aѲI?o\43o r?`2z^63ۗ??k2#?֕4i 3+?N`<4?Zw?= ~4y[7~?3R @A?Zw?4~=~y[? ~34RIgb@?DATAL t$ E t$ $ R ring 1Qe@8=Ȓ{/5=k=jt ??????????A)It2g2?333Xh?@گ1hE)=Dw|F>|>j?}??Gr?QE)=A>M)>w|>!>|jb??DATA$ L L" L" R ring 2Ք;oyC>aӻ0??????????w3-?E3?->3U2D0d3?WmŲ~Q4??VD4 +?(S4lP4˘"?0^׵f4?z?M><+>uC%M>>oO@rx1??z?<M> &>u>M>>o!#o??DATAL" $ R ring 3P<xYǭ> ;0??????????ME3.?Ư:73ײ?6<L3^F??qa4?h4m3?N4۵V_y4?3z?{IV><"v=V>>:Vp7@\Lİ??3z?h"v>OV>78Vp}z??DATAt$ $ L t& & R index 1P@o t;>>V̼0??????????M3j~H3?Su4?3Ƴ@] 4??)tJ3U?oi34`2?4C???ȷ8%7Df|߾8|>DfL@4Z`_>??"7j8ǷDfz>y8y߾DfY`.??DATA& t$ ( ( R index 2IP\7CZ>;3<0??????????3͸2?-n32N? R4=`3Y??uE1?Y3%4? 3.Z˴??g* 9>vMnY=Z>sMn@A ???4=>W 9sMnW>>VqMn/\k\@?DATA( & R index 3-Ӹi6N>0<0??????????0(ܤ1?8H2ELq3?4` x$4??{A4?#.4Ca/4I2?A4Ñ}۳??*9W5"kqȾDWq>!k@H/N>??5 AW(*9 kq>WqȾkNs!@?DATA$ t$ tL L R thumb 16@.")Z\>Qn븾> ??????????4s/3R?CjQ17?ys4ĴB۳??_D4X52?i 4Pg4.?2y 5?l?R_>_khh?_cM?+1?l?_T_>kh?hfc 5F?? DATAL $ t t R thumb 2j6'< &> ;0??????????e)%B3` ?SȰSN2o!׾,Y:N`Y?@c???Y]T?58N&>h!׾\Y?N%YMN|>C@? DATAt L R thumb 3^;A:->Mᕼ0??????????3e3ʲ?I1@w3C3U?30??VD&5B?8O4N3"%?Xٰ]v$4?rV?>W+^s^?(Z ?̼s6F?sV?>Wn^?$^ƦgY79?/k> ??????????SJ2 ?(@3?6'$S??4)<4?òQA34?n4Rx3$(4?P?FN>ZeNsU@PD[@P?Ɂ́jD?P?hNEHN>s[@P?[W@P>f5? DATA  L glutevH@B!I>۶ ?]½V ???????xD7˭? vIb1 0?v2r 3 |??a33(az3?2w3Z53?U4:Y#v3?v?D < D ??|34?(|@?at-=??fD c1D <?2(4O>u}䀿?DATA$p  |F Lr Lr R glute IK<ӾƦgY79/k> ?????????? P8o@oø?hyUT@9U8?n^_}??=8B?9Ǹ?Xp?Y8?/H8> ?P?JN>&N>s_@P+>\@P?`?QoD?P?[>>[rb>P?>]>P㞾 Ҿf5? DATALr $p R glute<7=>Rx ƽU ???????>-6`.?4̃1j΂/?vDZe13??8?9Ǹ?йX ?Y8?s|8?< <3 = ?f3d3?׏+|?a>4Y8?><_8"|}^〿?AC@*x ACAction\+x \+x | DATA<\+x dr +x +x hand.lDATA,+x Oo ConstOBh 7[ OBCamera  QA_@*????:?A)d????OB[ 7 h OBArmaturet Ho B?????<???<#=?@???DATA| L ?????tI)p?o]@. /?j71K?upper backDATAL | ?????I@9?$$3.jZ3?j."s302?cheststDATAdiL ?????QO-#Z-?j...?O. Oc254?headDATAdit ?????}^2ܧ2<2?/>_2 f?%2N12?L shoulderDATAt  di?????/t`2ŗ?'"2ѱ 3?Z0hxٳ?L upper armDATA D t ?????렯2m?3V`</4޳?f,+?L forearmDATAD A ?????ղG1Q2?2ƲT3?&O352?L handDATAA $ D ?????m>2q0R0?0۳3[3?3g?L pinky 3DATA D ? ?????2sβk3?243?g䳵Rx4?L ring 1DATAD ̔  ?????y1NLj?\W213MG2?3γȯ?L ring 2DATA̔ I D ?????[y3Q2?w2i3?>L30a3뫲?L ring 3DATAI L ̔ ?????3x0' %1?a\2 $]3?=3:G?L pointer 1DATAL dI ?????h 4SԶ?do2Թ?x(4j4J3?L pointer 2DATAdd L ????? !3y۲?]ưNe&?:0h3?L pointer 3DATAd q d?????ᄳ_3*y? )2~y13??x3Y'?L index 1DATAq F d ?????uUB? /2,3? 2c 43?L index 2DATAF V q ?????&ă3T̵?c͑J2K8? d4?L index 3DATAV lX F ?????Z2F{2?βgDZ n?xB?L thumb 1DATAlX \ V ?????U242f3?RKR2oe22?(Q33 "{4?L thumb 2DATA\ _ lX ?????J38s2 3?E/}3(`2?Ӳ 4 4?L thumb 3DATA_ Č \ ?????&R2?3L'^?62̽+3?R shoulderDATAČ  _ ?????/0l3? x?~\:3z3?R upper armDATA  Č ?????W 23 0?q21RcX?"I3%?R forearmDATA  ?????~c3ڲ?c m P3#Z3?E|땴1?R handDATA \  ????? nK1?6&)OH!?Fg3`3?R pinky 1DATA\ L[ ?????KNj10??93?>|y?R pinky 2DATAL[ D^ \ ?????;3?uk0?SZ3?wHͳ?R pinky 3DATAD^  L[ ?????bA2vf^3?x80Ǽ3t?x3cF3?R pointer 1DATA  D^ ?????C~ڳz03?[8YDt3±?$EK3~# ?R pointer 2DATA \ ?????aѲI?o\43o r?`2z^63ۗ?R pointer 3DATA\4  ?????A)It2g2?333Xh?@گ13U2D0d3?WmŲ~Q4?R ring 2DATAd x 4 ?????ME3.?Ư:73ײ?6<L3^F?R ring 3DATAx 4 d ?????M3j~H3?Su4?3Ƴ@] 4?R index 1DATA4 d x ?????3͸2?-n32N? R4=`3Y?R index 2DATAd T 4 ?????0(ܤ1?8H2ELq3?4` x$4?R index 3DATAT  d ?????4s/3R?CjQ17?ys4ĴB۳?R thumb 1DATA  T ?????e)%B3` ?SȰS-6`.?4̃1j΂/?vDZe13?R glute001DATAt | OB 7l [ OBCube4 нj>????;??n?;0 !3?;ni!3нj>?????*>V? I=j}?x=v ?AT?EA6>f7A?DOBdA? #=?>=?@???DATA OBl 7tt  OBCube.001v t t 2A@GC>GC>GC>??GC>GC>GC>2A@?????d @E8@#-!>qE@6@&=CI8ö ?DOBdA? #=?>=?@???Dl DATA DATAt k BCqG=L==/="?L=?zCHBHBHB< DATA,Dl 9B=L> ף=?@???OBw 7$x tt OBLamp.001 C'Az K?????????C'Az K??????U?p ?ߎB=Gj}? Y ?3S> 1.?DOBdpA? #=?>=?@???OB$x 74x w OBLamp.002 $ lXO*@????????lXO*@?????U?p ?B=Fj}? Y ?2S}A?(V?DOBdA? #=?>=?@???OB4x 7Dx $x OBLamp.003 "  A"<@???????? A"<@?????U?r ?B=Ej}? Y ?1Sh;+?DOBdA? #=?>=?@???OBDx 7Tx 4x OBLamp.004 ~klXn@????????~klXn@?????U?p ?B=Gj}? Y ?2SA?C?DOBdA? #=?>=?@???OBTx 7$ Dx OBPlane dx I.>RE@<????????I.>RE@<?????U?p ?B=Zj}? Y ?2SA^=%??DOBdA? #=?>=?@???DATAdx OB$ 74 Tx OBPlane.001 įf įf  ?bE@ ]??????????bE@ ]??????U?w ?yB=1j}?Y ?6Si@^=eM?DOBdA? #=?>=?@???wW=DATA OB4 7D $ OBPlane.002ݲ l =?@???DATAl DATA,l 4"= Y ?}n3S?`FA =+%A?DOBdA? #=?>=?@???DATA| DATA, 4 FenetreDATA, 4 Vitre1OBT 7$ D OBPlane.004ܲ d G:-BcA????????G:-BcA?????U?o ?B=`j}?Y ?GSR8BE]p?DOBdA? #=?>=?@???t DATAd DATA kBHB <L=??HBHBHBHB< DATA,t 9=L> ףɰμ? DOBdA? #=?>=?@???DATATo DATA8 l #<??-?i; A?MAĴ ! MAMaterialm?d????????????L?A>?? ?????@?=?==??? ?DATAX  ???w?/s?uW??????L>MA !d Ĵ MAMaterial.001q`>(>H<??????????n?>?? ?????@?=?==???t ?DATAXt ,N (?\?\??>X>?????L>MAd !t  MAMaterial.002xr<>=??????˴??????+>??u ?????@?=?==????MAt !z d MAMaterial.003L?L?L??????????}>L??<>??Z#?????@?=?==??? ?DATAX dKo ??????????L>MAz !$ t MAMaterial.004???????????? #MA$ ! z MAMontagne??????????i???  ?????k??=?==?#??t+ + ?DATAXt+ #BBB8;=<???t??0>DATAX+ 4 ????????FTA?L>MA ! $ MAriviere>z> ??????????>?L?A>?h h@?1 ?????@?=?==???̮ ?DATAX̮ |5 ????????x_@?L>MA ! MAVitresUvO?wI?m????????rA??=B>????@?1 ?????@?=?==????TE 4 TETex>@???????@@????? @??<TE4   TETex.001>@???????@@????? @ ??<FTAL DATAL 1<>=?t???????????????????????????????????????????????????????????????????????TE ,N  TETex.003_k?@???????@@????? @??<TE,N  TETex.004>@???????@@????? @ ??<TE ,N TETex.005'>@???a?V>??@@????? @??{<t?" d DATAd ???%????????????????????????????????????????????????????????????????????????????TE dKo TETex.0060<@???????@@????? @ ??u<?TEdKo |5 TETex.007>@???????@@????? @??<TE|5 dKo TETex.008os>@???????@@????? @??<x_@ME4 + 8 MEMesh.0010 h h ԟ LӲ Vyp{?u/??-j?,X?DATAԟ Ĵ  DATA 0V7?@:?耔 sJC:?耔 s=?dA?t֢Bh/?-:?q/?@ s-J;:?q/? s-JgA?nբBhp2K>?ZăG>?ă>C>?x2?A>?n2jQ??IIăG>?ă>C>?@(3??>?(lQ??II(I>?Z=?>?ă>wn?ă>x۾?ă>K?Z?n?K?Z2?>?ă>&?ă>y۾?ă>K?Z?n?K?Zăk۾?ăՋ?v2K?IăK?Zăl۾?ă?"(K?IăK?Zo1?dQ??II@n?>?P?>?k1?>?ZZE?dQ??II@n?>?P?>?A?>?ZZP?_ ?P?K?Za1?K?IIP?`?P?K?Z7?K?II@n?C ?@n?D?f2pQ?Ii1?lQ?IIr2Ki1?KI(pQ?I??lQ?II(K??KIP?_ ?fk^EP?=?RkQEP?>?GiC@n?S ?E\^`XMM?S ?d!OAn?>?]Y U@n?i@>?[*Wq?>?cJă>n:?ă>x۾?ă>C>?C"q۾?ăp۾?ZZă¿=?ăI>?ZC"=E>?ă>.5?ă>y۾?ă>C>?o۾?ăo۾?ZZăf>?ăI>?Z=C>?@o۾?ăo۾?ZZăf>?ăI>?ZDATAt LӲ ,y  F/@            !  !#""$%$"#'&&()(&'*%$,*+*,%-)(/-.-/)0#01'10+*+01.-.1342435 "" 53,@%3"@3%,@54 5 5 5 ,+5 5+ 4 2@ 4@4@ "2"32"$786879 && 97/@)7&@7)/@9 8 ! 9 9 !9 /.9 9. 86@8@8 @&6"76&$CKJ@JBC@LDB@BJL@NME EFN CEM!MKC&POG@GHP@FGO@ONF@PHI IQP DLQ QID SRM MNS KMR!UTO@OPU@NOT@TSN@UPQ :;;<=>:>?@=@?A<AME + 4 MEPlane ???DATA d ME +ܲ MEPlane.001a   4 lu $m c A46@ BőBE@PDATA4 $ DATAU$m 0AđBÑB&SđBđ&Ső‘&S'n ƑB@A6őB&Sq6?f)n Ҽ6@AÑ&SđB&S66&SVVƑAđB&SJőB@Ađ&S(n ȑA@AđAđ&SƑ‘&SđB‘A&SW Bđ̿tt~‘6&S0?CAJ@ ~‘&S頊AƟ5̿h~đAÑ&Sđ&SȑA̿ MvLlACAD@;ođB&SđBő&S Az/6̿, +}A&S5&S&SAđ&SÑAđ&SđA‘&SVVAđ&S, +}đA‘&SđA&S‘&SǑ‘&S6&Sp Ҍ6@Ađ¢&Sđ»&SX_đ‘&Ső&SÑ&S&S(n ªA@A;{o(n ˑA@AɃ>ȑA̿..}}8?AJ@4Y7knőB@AVőB@A‘̑A&SAB)A..zǑA&Sh~JA@AAđB&SɑAđB&SđBA&SđBA&SACA"h@MlAAD@<.nđAđA&SAÑA&SAÑA&SƑAƑA&SAA"h@WA@AZ("MʑA&S}pɑA@Ayyz&S‘&SƑ&SđA&SđA&SAđ̿6}A&S&SnA@AyAA&SđBLA&SđB@&SA‘A&S6AđA&S}đAő@&SđALA&S7@e5A4&S..}}A&SALA&SA‘A&S5AđA&SA‘@&SǑ@P6&S~PA5̿VVt@CA۫y@WACAjV@Ƀ>̑@̿}`6LA&SOdLAőA&S Aȑ@̿~A?WA"h@_oɑ@ǑA&Sh~0?AJ@?ov6A&SƑAA&S7G7dMlAAD@LAđB&Sϑ@đB&SAA"h@u@Aګy@*~WAAiV@A/A"h@^>qo7L\őB@AtőB@Aq6?fJA@AJ7A@A._hMƑA&SZYuUHȑA̿Xa}8L\A@AyzWA@A8A&SA&Syz‘ӑ@&S‘LA&S}6&SL6&SusLA̿[['UɑA̿~LˑA&SБ@&S36&S[O Ҥ6@AȑA@ANyV1yAS@NGV4(n ®LA@A(n ё@@A2̑A&SD;KhpΑ@@AnLA@A̽ǓʑA@AđžL&S*n ¹@A&S5&S‘&SđL&SL&S&SZg4&Sp@AZ("Mđ‘&SL‘&S5&S5L&SL&S‘&SÑL&S&S3&S&SƑ&Sđ2&SL‘&Sɑ‘&Ső2&SǑ&SL&SƑ&SLAđ&S@đ&SđA&SđA4&Sđ@‘&SLA‘&SLA&SđA&SđA4&SÑ@&S頊A̿}đAL&SđAL&Ső@&SLA‘&SđA&S<Ađ̿VV5Ađ&SVVđBL&S~đBǑ&SZŬAÑ̿O^~Ađ&SAL̿Ađ&SđB&SW B5̿H6~Ađ&S5Ađ&SA5&SA&S5A&SA&S‘&S7‘&Sđ&Sđ1&S6&S&S1&S&S(n A@A(n 9A@A|޷őB@AnőB@Af{AS@2 rqAƋAnA@A2K~nA@AAđB&S6AđB&SđBA&SđB3A&S6AA&S//}AA&SA4A&SAA&SA4A&SAAh3@W<]6AA&SnA@AKiwAB)A c-wAB)Ar =|1&S61&S6&S5A&S5A5&SA5&S}AL&SXa}5AL&S }ZŬAÑ̿~LA&S~LAL&Sđ@L&Sđ@3&SLA4&SLA&SL&SL2&SƑ3&S‘L&SLL&SL&S4&Syz4L&SL&SLA@A2LA&S H0~Oȏ@@A[h)OLё@&SVHLA̿~&ULA̿Xa}8A&S)}L8A&SZg8L\A@AWA/AiV@aAB)ANy*AB)AɊKr3b*AB)ABm(n A@A(n rȻA@A8~pwAB)A#z-?AB)A'zOx-AB)A @| 8A@A'zOxđ&SđjȻ&S&S¢&SjȻ&S&S&S&SjȻ&S1&S1&S&S&SnȻ&SnȻ&S&Sđ&SđjȻ&SnȻ1&S6&S6jȻ&S2&SƑ&SƑ&S&S&S‘&SpȻ‘&S6&S&SoȻ&S6&SAđ&SnȻAđ&SA&SA&SnȻA&SA&SđA&SđA&SnȻA&S5A&S5A&SA&SđA&SđAmȻ&SA&SVVAnȻ&SAđ&SnȻAđ&S~5AnȻ&SA4&SnȻA5&S5A&S;Bđ̿Ađ̿}B&SA&SW B̿đBnȻ&S}A5&SVV<A̿}AnȻ&SVV;B5̿, +}đBn&S99{đB6*&SBđ&SAđ&S~An̿~A5*̿~A5*&SBL&Sh~AL̿..}}<An̿h~A‘&S }׽Ađ̿đAn&SđA3*&S׽AL̿O^~5An&SO^~ZŬA4*̿ }AL&SVV頊A̿VVđA&S}Aő&SA&S..}}!A_5̿Xa}nȻA&SZŬA̿[[!A‘̿VVnȻAđ&S6}ZŬA̿6}bsA5̿.Az6̿~đA&S~đA&SnA‘&S5*A‘&S5*A&SVVPA̿, +}LA&SnA&S, +}đAn&SđA2*&SnA‘&S5*A‘&SLA2*&SnAL&S5*AL&SLAn&Sđ@‘&S@‘&SǑ@&S@&S4n&S@51*&S@L&Sđ@n&Sđ@1*&Ső@L&S&S@lȻ&S@&S@&SđA&SđAlȻ&Sđ@lȻ&SÑ@3&S@4&Sđ@&S5*A&SnA&S5*A4&SLA&SLAmȻ&SnA4&SđA&SđA&SnAđ&S4*Ađ&SLA&SnA&S5*A&SLA&Sn‘&S8*‘&SƑ&SƑ&S7*&Sn&S8*&SL&SL&Sn&SƑjȻ&Sđ&Sn‘&S5*‘&SLjȻ&Sn2&S6*2&SL&Sđ‘&S‘&Sɑ&S&S2&Ső&SƑlȻ&SǑ3&S&S&S‘0*&Sđn&S‘1*&SL&SL&SÑn&S3*&Sn&Sđn&Sđ/*&S4*L&SLn&SL0*&SnL&S‘&S‘&S‘&S‘&Sn6&S2*6&SL&Sn&S2*&SL&S6&Syz8 Ҁ6@ADKh&SZgp@AyzlȻ&S&SlȻ&SGM4&SDKh4&S&S-*&Sn&S4.*&SL&SmȻL&S4n&S&Syz¼&S:ađn&Sđ,*&SL&Sn&S-*&SžL&S(n nA@A(n <*A@AʑA@A ʑA@An:*A@A'<pqAB)A$ y;*A@A ­LA@ALA@A >nA@A >6ȑA@A[h)ȎA&SnA̿ }‘=*A&SVV6LA@AOvuKiqAB)AxjF2>*A&S'<pLA&SAz‘@&S‘@&Sp@@Apב@@A2@&S[h)Oԑ@&SD;Kh8͑@@Ayyzoԑ@@A[O@&SVVۑ@&S1*ʑA&SVVn̑A&S1*Б@&SLޑ@&SL@&Snґ@&Sus;*A̿}usnA̿Xa}jȑA̿~0*ȑA&SXa}L<*A&S~jLA̿, +}&LA̿~UHnA̿vCAx@jƑA&SʑA̿, +}1ȑA̿[[(?vAJ@GТɖiP69*A&STTܢuLA̿h~nA&S@|x&U:*A̿LA&Sxu0?AJ@}0?AJ@~tA&SGMA&SШ:upȻA&SZgA&SpȻA&S8A&S!6h8A&SA&Sgvt':A@AZgp~A@A/*8A&SyzLA&Sh~9L\oȻA@AZ("Mn8A&SZ("MWA@AyzWB@Ap~őB@A':őB@A8L\A@Ap~A@A':A@A7L\B@AnAđB&S:*AđB&SA]A"h@ȑAB&SF>o+'8AAR_@ HwAA M@+'8A/AR_@_=oLAB&SS =~pWA]AiV@ HwA/A M@(!DdAA"h@AA"h@HwACA M@*'8ACAR_@WAAiV@HwAA M@*'8AAR_@WAAjV@g@CA:@h @CA~p@j @A~p@g@A:@8P4sj @A~p@t@A۫y@t@A۫y@g@A:@@ƑA&Sϑ@ȑA&SXa}ƑA7*A&SIoAvA"h@ʑ@8*A&S=5ng@?WA:@抸gh @?WA~p@^ Aos@vA۫y@6*AƑA&SnAđA&SKlAvAD@Nf`đA5*A&Sh})'8A?WAR_@`"pWAvAjV@LA6*A&SVjýpHwA?WA M@'LeđAǑ@&SXa}đA@&S AΑ@̿VVƑA@&S~LA@&SnAƑ@&Sh~.Aȑ@̿Xa}PAˑ@̿h~A@&SA@&SnȻAđA&SAđA&SnȻAÑ@&S5Ađ@&S5A@&SAđ@&SA4*A&SAnA&S5A4*A&SALA&S}nȻALA&S6AnA&SA‘A&SB‘A&SđBnA&SđB2*A&SALA&SAnA&SA3*A&SBLA&SđB@&SđB@&SA`&SBе&SA@&SB@&SA‘@&SA@&Sˑ@h6&S~@86&S, +}6ԑ@&S}Ƀ>@̿[[@@ɑ@̿h~^ΐ@ё@̿~^ΐ@@̿Xa} @ˑ@̿VV6A&SE92s6B&Syz@đB&Sۑ@đB&Sv@]Aګy@8b6iّ@A&St}j @/A~p@kFgΑ@B&SU}ʽőB@AXFőB@AV^#̽A@AyztB@ADKhA&SGMA&SDKh6&S6&S@&S, +}͑@&S}ϑ@&Sؑ@&S Ҙ6@A  Ұ6@A(n ´@@A(n ݑ@@AΑ@@Aڑ@@A@@A Б@@A*n œ@A=Lc*n ­@A@AZ("Mº@A@AZg@A5&S5&S&S&S&S&S&S൧&S‘&S͑‘&Sȑ&Sˑ&S&Sȑ&S@đ&S@đ&S@&S‘@&S‘@&S@&SƑ@&Sɑ@&S@&SƑ@&SđB&SđBˑ&SAő&SAȑ&SA&SBƑ&SđB&SđB&SBđ&SAđ&SA&SB&SA&SA&S‘&S‘&Sđ¦&Sđ&S&S&S&S&S(n ªB@A(n A@Az| őB@AőB@AAƋAr A@AS}A@A}޷B@ABđB&SAđB&SđBB&SđBA&SAA&SAB&SAA&SBA&SBA&SAA&SAB&SB@AA@AѢSr A@A;2*A&Sv60{qAB)A1?snA@ANy;*A@A <*A@A-*&S-*&Sn&SmȻn&SmȻ.*&S.*&S&SlȻ&Syz8@A[O2*&S3*&Sn&Sn/*&S4*0*&S4*n&Sn&S1*&S1*&SȑlȻ&SkȻ&S&S6*&S6*jȻ&SnjȻ&Sn&S7*&S8*&S5*A&S5*A&SnA&SnAmȻ&S5*AmȻ&S5*A&S@&S@lȻ&S‘@lȻ&SƑ@1*&S@1*&S@n&S5*An&S5*A2*&SnA3*&SnA&SVV5*A&S5*A&S, +}nȻAđ&S~׽A̿..}}!A̿}A4*&SO^~׽A4*̿VV׽An̿}An̿[[A5*&S6}B5*&SBnȻ&S~AnȻ&SA&S}nȻA&SnȻAnȻ&SAmȻ&SA&SnȻA&SnȻA&SoȻ&SoȻ&S&SjȻ&SnȻjȻ&SnȻ&S&SjȻ&SjȻ&S3b°AB)A0.rAB)Adv~?AB)A..z.ijAS@!!v6pȻA@Ai\pȻA@Ay\A@A6A@A6B@AnȻAB&SnȻAA&SAA&S5!q4AAT1<@T<6cnȻAmȻA&S1}nȻAA&SD9}AA&SAlȻA&SBlȻA&SBA&S4AAT1<@<*_cAB&S\B@AW>AB)AhhF A@Ar =|&S&S&SA&SA&S;B̿VV;Bn̿Xa}An&S!A̿bsA̿~nAn&Sđ@n&Sđ@&SnA&SnA&Sn&Sn&SƑ&S‘n&Snn&Sn&S&Sn&Sn&S nA@AnA&SPP0c@&SDKhnߑ@&SjnA̿VVnA&S%ǩOcvAx@#inA&SRQsp~B@AnAB&S3]sHwAA M@g@A:@g@vA:@"0~HwAvA M@{bsAʑ@̿Xa}AƑ@&Sh~AnA&S5rBnA&SB@&S @ӑ@̿, +}ڑ@B&SB&S[O֑@&SVV ۑ@@A ®@A&S̑&S@&Sʑ@&SBʑ&SB&S¦&S ©B@ABB&SDATAPlu ,9@; 1?3 )>+ !=# <;:  9 87654 321'0/-@.- ,k+*q1) (7 G'a&M q%gg$kI#a"OO!%Q I =W g7m%qw       w {mq ag W[ MQ  AG 7;-1!';$"P%#@(&@&.P/%>20@>08@P9/9<:3DBOEC 8HF8FNOOE6RP 6PXOYO/\Z)dbNec.hf.fnNoe,rp,pxNyo%|zM$$M" "ML""L! !LK!!K##KJ##J$$J &I,x,rI++I H  ++H --H' ((&G)'-*-*G/).n0.0hG5/*86 0@>FA?6XB6BRFGA@5JH5HPFQG(&R'X EYW 5PZ5ZJE_Y7b`7`h Ei_1lj 2tr@ Dus 7hv7vbD{u 8N|8|HD{4: C>8>2C==C2r1lB==B~?}?|B{zyAx?w?vAu@.t@s(Ar<q<pAonmBl1k2j Ci:h4gDsf 2et1jdEWci'bX(RaF?`Q0_@*6^ G']5(\('[H ZY X IW& V UJT SRKQPOLNML"MK$J%zI*NcHy),Gd/ZF2OCEY34DD9:C:P#B9;<A$@A< ?A@$A??B# =B?9B==C: >C=:C>8D47D8DD77EC5E7YE5 5FZ@ 6F52F60G,/G0dG//Hc-H/yH--Iz.I-*I.(J$'J(J''K%K'K%%L&L%"L& MM MNNNOOXO]PPPQQQRRRS SSTTTUUUV VVW WW  XX  XYY YZ ZZ[[}[\\(\ ]' ]@5] ^6 ^^__@_`?`Q`aRaa}bbXbcWcic djdadheeD ztezfs@f@xfxggrg lh h ph piininjjhjakkfk flldldmm]mXnn\n\ooZoZppRpQqqZqZrrYrYssS(sTt.tYtYuu[u[vvVv Uww[w[xx\x\yyWy ^z  z dzd{ {c{c| |U|V} } c}c~ ~ e~ e `_ ee   ff  blgr nn mm _` mm oo j2i8@ oopp  kqxxw{w|sHtN@  w|w{@}@yu}y}v~}vb~uzhyzyvyyyuwyzswzwtxwgrx@bplopjooimo_m m` nmuhnvfbef`ee_ceYccZdc|Jd{^P]^Z]]Y[]W[[X\[~ \V&@ UV RUUQSU@GS@ SHTS@{PT|NJMN HMMG@KM@AK@ KB LK@RLFXEFBEEACE?CC@DC>D<8;<6;;59;/990:9h:4n34033/13)11*212.-.*--)+-'+@+(@,+@&,@~$ #$##!#!!"!"          rx^W        |zy}o}}p~}x~vruvpuuosuessftsntlhklfkkeikciidjibj`\ _` Z__Y]_O] ]P^]X^VRUVPUUO SU ES SFTStNTsLHKLFKKEIKCIIDJIBJ@<?@:??9=?/==0>=i8>j6256 055/35%33&43T.4S,(+,&++%)+#))$*)"**!,*S',T4-64j16i>7@>;@JALJsGLtTM VTQV!^W `^[`jaljgltmvtqv~ w ~{              W^wq  "$"~$,%.,.242m4:g<:7<D=FDWFL Q@N L@|I N{T!OV!T@%!V ~\"^"\{O"^|d#If#dva#fun$g p$nbk$pgx%qz%xug%z@v~&a&~tM&@s'G'q'k( ( i7(j)1 )`)_* *gq*b+k +_+`, ,V,U-  -^-W..U.V//T-/S0'0Q0R11X1]2 2a2h33l3r4 4@h4a55}5666777}8889 9 9:: :;;];X< << &=!(=&#=(.>)0>.+>06?18?63?8>@9 @@>;@@MEܲ +4 MEPlane.002 D D l $ u救{m?FAFAν ?DATAz DATA$$ 0u)ш%?P&fx?pp0?dvpA0AD*?{pA_f@s>YnqPAA?}+4AܯA?n0]? v@0A?/)r@ӈGA=&*? &=4`s?~nI*A??ռx4A^IdA6??4_A| ?:@/A?bRx@ЉAy?^FA]iA ?qZAZA6?7:$AAq?2sPAA? opAu4Ao ?}Ɋs|g>+O{4ZIdo^?HGֲ? R>0I|DxЉݯ?}!ZZa'>Lm|dqN? CPzr?ǻnP?: E ?)KID?| ?8uKRfL>wۨP{?ORAjLAg?AU{AiW)?B䞵@AS ?-AEA2?C֞? xvKG5?h3Cd>{7$ ?_4;, ?q]$,>p>)<}wT ? F%]X|?ZZ ?>~op2?Z ~R*1?VR8ہ ?b>~˽E8?\i4,&dC?C`sX4:?xal@b-? :pru?a8 ?$?}~j>=4Qa ?*U=$?y7%Vpū>W3@ Z>^~> aA$@<?F%A]@0?ZAZ Ar? |A$=>A ?uRA*A?VRA;A(>4~CAZA)9>CՎAoAE?ҽAEAx?ai4A0&A<>FCAdsXA*? xaAo@A%?9=pArA>C`A֜A! ?2uF@mA>6O@ٲ;AB ?@$AV?AAvi!?@UA7?)<%AYpA ?sz? kAh>p)yO6@^SAX(?k ;=(9AGn>%AǵAN>v  r@A!)>m@A?+ @A0?zN˝A3uAB?"A@?beA{)A$ ?F %V:AQCA"?}BpAr@ ?  AoAW>\ϤN?F?4L ԝ? ?L!?X!? N?Hn?BGHϔ ?h?&0~z,Ɂ:?m#|dէz?X+9A@? tLaAAA?^(A'OAS{?9AAZ? Y@kyA ?"PgDAt&?U%w?R-A :?m㨖@V@aS?x}MAJA# ?M.3@aAZ?}t%AAs?nAfA!?z_CA6A{? ^s%A*g2Ae,?,IJ>K Xn%0>M"yb^> e0g_C25n!?^s%&g2C?W-}E[z>'%#[>VLCVK?17ޤa~ ?X&C ?aA~A>*CAA> ~g?jF!?}T;4!?7ɵėF?Dّ ?~IC4>B݅67>?RA?|r)co :L5?CY;T? r}TR=?Tn(xmW>}XgZ*?  VR2 ?&ʪ?yxTQߤ ? _/2?y÷)]?" ƌ?0?UU_M ?&r8 ? + ? n{O?A&@?#Ah@?fA A?2 uuAZAw ?LFOAd? AY#?wkhAR}@G ?)o"A@ ?D-ZA@f ?ewA@&?,pA^@?4wAx/A(0>CGpA}0#A? baAW!AL ?fhAH@"?XpA]A?VFYA>A!?}~{AGA>?)6ʎAnANW?AWVA` ? "~AK0Aܮ?6AHoA[?A{AC?8A!A ?YA@̟A& ?b_@MA? -@ZA"_ ?w w06@:rA&>}@#A?>~ c@IYA?g}N Ssac@VA w>r@dfA(?:9?eA+?]}DIPK$A?y=y?.LA ? }hp"&AX>`l1A?޾?A? 3=XA?w KS5@4A>Py>=3A$?K };?X@A1 ??g'As ?Ֆ@A'?@5A? @֝AA?.@A ?E,|S@Aq ? ,w`q@(ABQ?Pc@)A?@A?N@*A )?#x@A.?~@A> ~ %ABCQA(?n2pA7+Aa,?x$AX vA?i-A[4jA?.@BA? ~iA7hA>#ĒA;]A>6{A!(DA ?h! AOA&?s@ 7AKn?N ~W7A&ۆAT?-A)A$.?)@[A"?^=@NAd?gL@0tAD!?O<@gA>5zAhA%?X AFPACA9?HApeA$?}ڒAszAH?AׂA."?ǎaA_AE ?hAr:A%?`|YAlFA׶?ckxAlA6?~vOAyA-?"pASA$?vdA`A?~\%AA>1uCAM9A?A3@?k4lRAR-A?FvJA8A@?n ';A3 A?x .ES4AA(?ZEAoA9>ҽ@EAt?A!KAgRA&?{ p3,A-|,AV#?' 8~fA aA(?s}4AHmEAse??UA'R8A_ ?| CA@P?: hA@@? BX:AQ@??^@1l?d 5?W%>CQm?;D-p7+?` $R v%>aa ~e-Y4j( ?@ac2hM)?c ~8]>w(D?w ~ O>u +~ 7!??Y|-&y ?`P7#ۆن ?L+t6?R%}0?ACՃk& ?M5>h? *F-D+?Ga_ ?1ׂ ?-xYiFwx? $ho:^Q?{|ߵޠ>ɜPpS" ?.A+Z൰:> }uCJ9?\%0?K,B?3Y>> 0lRP->_J5Q ?o;/ u?uAS4w?Ao,@?,#ʽE(>bCKcR:?v<]^^un?.,)|,O ?wf a'?'x4DmEk?$R8 "?uC2?7 >b|0%O??'?\ev?bS:Q?Brn>  o21? X|/!?YC~ bM?Sex%?Vb&?e esr ?cX,0/Dj ?~ '4?6?Y/shV=u ? ;G?3KD%2?c~a٭?p|lPi?'#~Bxi;%? y~eR|yk4 ?=)ZL5kw? ixf ?HTpˆ%?` dUZd1?CLig&D?p<U~? ˵??x"5#?W8¬??; ? S(T +?\O ^?Д<~M?Aw!?X^YVz9?G ?RwZu?/yG%?,g)?$Ԧ& 8'?x&e1ZAeAH?E=KAdqA=k?i@? Sg &n'| ?&9Vƃ?yv%'M?U?|J-AXKo_ ?;G?]?k vZ?O~, \X?_JM3i ?/^YS'}d> :~Ե2&?^23 iYm?z"u$:5s3?\ JU)z?5!/n,? W5cd>0 ~ ;.W?r*A'@4"?=@@T?  ~N-AEXKA(?[;AK?A`?AvAF?F,A A?/$JAP3Ag?`YAT'AR> aPxAMA4 ?E iAYAӨ>qAA L>QwCA4^A}(?6U@.zAq?nX;!A4nAg?gM@HA?Q@A8cA ?@ A>.WA?<v˥@A6?d ~އ@"A ?VYb?CFA|@?N^?RA ?sn ,A<?>T@OlA}?||~P|@.A`?#[ i@CA >qMA1IAy?[/0@/4AF?J#AB\AT ?A66Ag?LU{A BA!?!zhA[A?}wA`*A !?3z:eAeTAW?I hA@8?BC|.?O }hC<?\At?1OG?VWtCAk?YVJ;c+*?wAa@?^͇AhA"?6bfAOOAd ?R,7@y`A]"?A c @m:AL?v S@.A?}.@ A' ?}@"1Ak$"?Ym#@TA(?4 AsA;|?mZ`A L%A-"?f@@4b+?"1?G/o;p# ? Y[L%s>y{{5-?Prݫ,ϟ[?| ;&6iZ ??ZX+?y!yV@B?;~-6iA^A(S ?ZDF?3?nCɪ?Q{-S.?O}"?a > 4s2A?viW^W+?bzU]Z ?Dܵ$?k(?N%){XhjAYAT6?W{1eA2A8?)PZUqAϐAvN&?"KtA_A~"? J&))AC?%~4" ?9\7]6?W~X0W ?9D$0?)ܤ!yJ?/c|T ?- ~E>C ˨(M?%~9/"?;S ?+U`?6,>j<4Χ>z-?G$f~Fk&>"? l~U@RA&F2?9 @HA,?+Y@q Ar/?-@A\?\tAA_?y A(Aw?RAb"A?5sA-A:N?]E}AF}A)??ApAAh?gWAiwA?S@DA8 ?3 P ]@)]~m@~7A>D?-ld@JA>?&|~hT9@CAX>X(@7ABB>/3@]A ?^~u@WA&?;,1A;AC?f8T%A&­A/&?Fm!ABԧAs?_.A1A(?N ~A(jA ?,A:pA@?&~aAh~Ao?@vA @1\ ?B{A\%@5%?-yApAÏ@n?kAp@?CGB?79G}P?O*}"nD>/As|{}Gx$?V"~uoE %?nd9 ?<8?U- ZPޢ!?  8:'?=lEGK?w? jxm<?E+5g& ?#2/?[na"?ZB[?& )DMy?WAk AX> =~A8A?A@,j? I)>^A0P@6 ?GAA2J?nlA7AZ]?~%An-Ao> czA3FA%t?~/At- AP?IAAL!(?{<ٜ{A Aۂ?\iA~+A?^ p?=eA,A ?qA$AB?~ tA12A%>Y{vAs9A>VAuoEAv?PxA?A)? 'WAÜ'A? A2AI?uʇA0+A ?/gA lAj ? AdA;$?aAYA.?D}ApB`A ?2$@A&?sS@Ax ?E GA@ߘA5?eY@~A?{ @ҎA ?xIAA ?@KA?t@^Ap?0^@A!>@_A ?VO~7@hA(??H@lA?hSp@As ?' e~@A5$?I YU @\A5?R8K4@;cA?A ~fE@nA9?|n|g@pBiA?4~.?iYbA?fu?N\AD?:N(Hm1AHlA<?( %?AVxA)#?m*@b+3A? .@.?A >Fo=|?@W8A?u#@ EA?]>@>Aw?jVA3AN? ~!AwA/?n|AelAW?<R:@_5}A?]@A?&8@?A?-AAԦ*?c A A&?ǖAOAu?}氁AAĄ>Is{PԇAA ?!A[AA#?YlVAK JA'?1}`A`PA>pdA}\AmH> m~{YAs@VAR>z1|A"KAl?ӚoABoDAC? YlA7A2$?uaA|0A?X]AH$A,?-nKA_- ;"A9A>\ ,AQA>C A1Au?n ;ɥNAeOA?C~,CAHAz?,Qg?A%9 /Aq@?A QA&@? @ A{@e.?R~$AR@[6?]61f7? )9d$a?*|!3 T ?Yb-T[?PJsc0? H -e?.Ny|l>E h~xRn?.}!C~, ? ~ y$D ? p5L"l?~WQ} ?bH9́ ?; [Mg ?[ =?QØ!w?Qׅ?8qV]I?[BXb@Q.>GLie\?_i}/[T?a$?| }F>jJCu<H?鸥DWQFWbz1x? *a?8Y.pIIC>:GC6 ?OuR<.>ɩ?1&d ?](-? ~Ha ? u!WC?*"? vIe?N[O|&>AnX2CI@??<?3(=N?\QC4U;?:8a?yl$Y?v?7T5 ?C|. b2 ?X> -ysϿXl?}n>| {3? Ek(?y|@aeJ>Gr!$׿>">?/5>lvu?Q8 ?.m~#W'}l"?;(w?.v~D@hb?=eGKt<?=/n?]ձbl?f ~fSH[$x ?> Xj,>?B >Ɗ݄>~{FUG?xH!!^> h~'K3֞*o>}G/֘K ?*SXқ6?V>|r>&CXw? jb)@?yo ?;z' ?z~4t>NxBA iAH?CFAsAa?}0=AnA?aAh]AlUbAJ?UPSA7[A4J?PAuÍAK?^~cA\A >-f7|A]AAB ?}J@AU]zA-?A 4ArA'-?+T >ـ>gu4}٘(? 3 ,?rV>|/Z?zXc?]PY]?bFol?wK0?-=x-_@"?O}?aovö6?/hǂ>#~eF]-=? =w?= q*@=? )? Ey}Z?_!٦h>a}|m"RƠB ?}/t˦ ?cnvir~'?Q'*?kv~(|B"6!?.LD? UꦶD ?[ /~ L# ? OH>?V -J ?Fг|?C+Gؔ ?a"K6y?6[1?w?tNگ?KY{c?~>o/d?I?u/D%,ZK?8k6?& =\?x?%.$?}o?WN"d>fg?N|NAsAa ?}}BA5Ad?7LJA!ȀAF-%?  E~$K8A#A3?j~GA莉AK?/G)AlAC?Y~??.AxAt>G0C}KwA?A_>tALkAĊ?gȈAA?%@aGeA{AB,> ~pAA8 ?D1AjA@AY>A_wA{A4?yR'lAuA?PaA3oA\?hA jA}?kYA^$tA>uOUAhA߂ ?uFA%UA?{jJAaAt?7NAWnAn+?2 %R, @A)[A&? 5]AMA^?{}VQA. zAK?goUAuAH ?!5O@?_tC]>]԰K`>=Ӊ/?im8e 4 ?wFt ?F0a)m?"2_-vyh>^0H%&?!"?sI>\g?ŒH!?> qp5@w?Q7.VՌ˚?W8s ?f_DYo?z\=;t*?{J?O+[ ?]_?kJ[ȶ?o$wJA?Mj{tk3?T{̐d ?d#x_ex{ ? pK_?VWj89?yV~Gxc{g?Ԟlv?EaPo?/_ށii >ǎZu7? `VhE,?sJ\GUv ?AK'Mb ?s NlsnC ?"x?J{[?K]w\ ?[(S2z%?.Vw?`d+Z>5/|/0Ho?yU~% !wc>$M?LU}|?S, ό?Te38F'?/3wUR?`[|`(OT?N b.?@<c^ӿP/?t^{pp&? t~u󣠿q?gCx}́!mi2?W ~PF"?{ϴaO?)U\?7\1 ?&WD|6>z~Ko?AHX}>Jzh:c9? $e> F ?c @ƽ?Wi+>P1R~#f>g"Ŕ ?yys ?  }n!RV?k~'#;e?>/?Y_~$K ?1} d |?<%M;ci0?z% @ ?:5HR?U&.a;1>\~,0\H:?P!d5|?Gs:u>O$?V8B ?,))/?Bc*5 7?Lg<"1V>00) ?GzF$<#?1J-%6>F4 hN(?+3 ?J W~7< ?)͂-3 ?0 ?9A?cZ ?84 p} ?D ?vC[+i??jK'$?~8NG0?R$]TTCy'?(B8UYg6#?VE*~>hZ}e}=.?F"8C?1^RU8?歋8)_x?&7AwS OS ?_yJnj> }ȍ]̫[>xs)}*?ZK\8V?&,Clf )Q`~?o?wL? xϸ>iJ>0/RlC9W ?o@\·/FD>_GxT|G%Btwߘ2>CB|0qG!?p~.$^*?; eIL>}| ̋U?Y)?S {yp s B> x!#.y? nߎ[ ?%{עw?1kvI~C;?nqؠ ?s/VR~?BwcSX> F~w!ݱ_U,?y TZ? ):`n>`%M>_~4M9e ?fVQZ? =f ,F( ? XBrNM?&kA@#?r !Ah+@5?vFA@(?NMk%A@K?w@iOA ? >1y@@^? Af AW>~~An:A ?&ABA?CAGAE?nـ,AzPA[(A!?AaAk?$A:Af? L?eA-A@5 ?$h0A8 A9 ?@A4WAݦ? Wp5A9AyL? !9#;ALA+Y ?l `7A #AҲ?" }BAx)AQC?aN>IA\#A?NAv0A?]A_CA' ?Lc|YA{7A:'?c=UVAL*A?b dA)>A2'?`F]FAA?Jx Z RApAu?p _ZA]qAf?5gNA9AA>{.yA^Ap?HDAk XA"?B.ARAz?4svA{]A?K jtA=QA? tnAcA?ljAIA%?'lAVA?Y,z{AiA ?kIܶqAGdA?~tAhoA?Xl^~A vA7? 8 A1?pAZ[?66A|A>fo{ A AK?vwAҧAB?<*A܈A)?#%A%ÎA$? !Aa5A9"?|"AJAk?HAAc?U AA ? @ A5ZA7"? xAAO ?4K@H.jA>@fpA?i~@w'vA>@ƐkA?j@xAkF?@omdAN>W ~X@~Ae?J@qAH?h AA?@_A\?'9r~l@weA{?A^A4>>@XAj?> =GT@#?QA8&?ao'@MA5 ?OQ\@yWA2?=~ѻ@KA?In@8Aw?32,@RFA+?s"u@w,A?7 F1@zT:A>?|Ŝ@G'A?eqAJMAc ?}v@1GA>l~A@A ?Y@RA?AYA ?k -ARA>k{A `A? {!AsA?(MHAFfA?|AZAt ?& ,~ AMGA.?+~A#3NA ?łA͆AA? W#@A>:9|-@YA}?{G@O A2Y?w~)@0-A+" ?K~z@Aa?#4H@92A6?v~@2m%A~h?n>6A9? FZv?;An>C">AA=?X ?5A ?4 C?ׄCAi ?%|1>UA(?+?̥gA ?y[t,8BA)q#?OkeHA_?"ԾIOA?AJH;Ai?Lgg4A-* ?0 G)Ad ?Sn/A|?Y\D ~)(@>A;?>~Ȗ@+Ag?&@ÇA>V~f@ځA,?菮@܇Ai?@l Ax ?@֙AV&?Z@τAZ ? -|qr@ ARx?S C@YvA/?\~e@!|AS>c@]@pA7>-AA?WA)A?{A!A?D@鱗A?+ A+rA?;9@ A ?Q@"A?bmAA^? u@EA ?4'@RA$?lQ@-A~?5|&A;akAR ?TU3AV_A ?4~џA7rA`?,XAKAp#?z>ASA +?txGAXA?h -wAKA7>'w|AEA-?`1~AL@A)?'qëAL:AJ?  oA/EA0L ?rXOA 8A >?8vUA*8&ACv ?B}AAj??0{A+Af> |AZ@RA6F?[#XWAWKA5?8^ASXA;?f6 ~UA A4$>}`AA.?% ~hAS A?><SlAA#? A^AQAg? tsxAWA? ~MtAFA$?dAB@%&?`׷pAA$?.wA?AD?4lAQ@?, M~rtA@?cA@b ?HaFA$@?+A| A?"q{AV@?~ԌAA>DA Ab>RhA>@ ? ~rAJA`N>~A@_?' At@?j=A@M?_{A@?%3?)PX #?kMz^i‡#?3 & ?>u.P? {H?d]s'˟Ƽ?D J̊?}F$3s"?LuӜ$?T d;Ir? eL ? 'V?iF?PXl-e?4 ?l'?Xo>erUZ ?pW}%e[ >8L{ˆ?D^?E>Hx>W3$ϔj? 8=K>N{'N?|D?r?`}R ?~}"@H;TBSK 2u>DfmAk-@?Aé@ׁ?7xAc@@?>tA^k@ ?6eAe@ ?:_}iAi@eM?zAT^AZ?A%ΊA? dA??fvmAAWeA?kɛA{wA?A╱AR?x4AvA̝?}&*AOA ?\l}A'A ?>AAdn?N WA=ޡA ?ea@YjA/?D~.f@dA=]> _YЎ@cAgX)?6E@ PAx?x |h~\@%=A ?2 `w?/*A ? WE?1A%?Ϗ@E>Al?Pd@B+A"?{@? A+s>~>@N A3?nlFA :AY.?]AZ4A(?^D `@3AcP?~1E@+QAq?ā@^A>! >x&AwA5?N1~Aq.A-?`A,jAV> 84Az!A?D-A`}A?R BAv^/Ag$?@4O@'"?rO~n%;nM? 1o/ ،5̮0? ?@3?~V3~ ?XN~l B>b~{pf,de?W%|TC }?y_[8&?Z(??"t"@?}}Y>ao~6@-? ?Z|'fc7 ? dN >`c% ?n-,\; ?I 0{?xc:et?VLd`/V? ZXcp?lO@?~{[zI'?}zuV_F?S ~6QeŚk?g(Q5r()? d@S2?L(@ ?=fl@?$ x@%\?]eqaAtAf?}YAA`&? }lAGxA ?:{AǓAr?C)~Jnz?ZG|rt5@$C>a9R/ȃ>-'?u$?UAxÅT?G?}4Fb ?$[z? ~+#? ׊`'A<?d6yqy@?SП t6u@A$%?/v냼k?+^S8@"%A?Z"{2@6?T??׀ a: US@1[AǤ?~@f+HA ?db@t*A?MA=Al?}8 A7A?~vI@XA&] ?3y@I%5Az ?X?$3AK?1 E1-'@AFA ? +~_c@_YA?:uȏ@{lA@? Zо@~gAl&?c~AA?>"AA ?,O/"AA ? )A`nA^ ?PnzAC[AL?,A@aA?N. dlACɗ@N ?g}p{A}ս@w?GuA@?HpNl? ~rtD?r&F!59?}^C ?Do?w?TUv2?<'#q=4 ? c=?ok hT ?60)?gdk?2 ?m?CX3?[t$?mA @?_n>A@?frČAA ?-y~#A A@?~老A@?M0){A@&?t tAԱAiC?^yFlAМ A??{AA?!tA"A7?,}eA·Ab?Ka]ArA?+_A#NA)?< >A&HA?7A5AI>}TA /A' ?~ڌA(BA9?S~lA+~c@A?7|Q@[A:P ?|x#}@tA?6@A) ?@IA?~yc@uxAz?b~Ҁ@xrAj? VrE@\_AZ"?mґ8A?+2AS?<_>EAR?lf{xKKA?H=?5^A?O}x@ @>LA#?K~6?!9AL??~Ds A{A?%AAY?h){ A!A?Z3A*)AD?.~A7LsAr?}{A47yAQ?k~lA1fA?vMtAF`A%?m$ 4}OAeA?MA4 ?.  {}lATGAv? I{A[ZA?!A pTA ?YVA]Am>l 8NAH!A ?]AN4A?r64VA9:Aϭ? W~a(GA3'A?R 3?A-Ah ?)B~0AA!?zn}8A-Ag?1/s)A'AU?$AA?qh`!A%A{?y%)A A$??|28A 3A,D?F}ض0A8A[ ?O?AKA}?@ !H8AQAFi?l |;)A>Ak5?A|!ADAD?QrA@ ? 0AB@?)IEJN6?]P ?]!Ȧch?d[őie>N VH>~v\?GwR{+ ?=4nWܞ}!?Qm,L ?"|r?|})T?_> ipބ(?!-C >?_ԪJAe?M ?~bӄug?$#xvC^0:>Uxvy%l? F} s~;T7?q#nwNH!?x]N4? A4V9:nc?nS](G3' ?/?- 4 ? v09 ? ~8--?n)'Q?R5}?*x!DaO? ]on5 ?o~B?;  6"j ?f}R{ ? ~7ebT?ee p4?H[PYb?[A<?q'J ?H|wE?z- }Q!) ?:K(LO?9JH0B?o~y7&ſ&?(䶾 # ?%}N}? aV w?HLTGd|?N_k?SW8]r޿? FfWel ?Ukh~ct."ݖ?l?p&{ 3?wXxBV՚?ˀGR ?>@Gp?3%0Ċ?^oTt8χS-?Whg)|? O 0v?f?لJ ?K@ IjGi ?_NA }Ad>?NaVAwAf?}TGAdA ?NA_A4 ?R>=]ArA?Zx ~kWeAlAi?ctA1"A?UTlAAF?-{A A2W ?-0AvA*?y}?AلA+? jGAA? s~:Vo?:~S\PB?eC͡ex?9a؞-?,dRp[?sQ Ie?F{aC?Kk~ޱ2?yGBad?e~?'~ln;?6Cְ01 ?M H*~7??7 su l?x50.q?Y{ M^är ?D{b}<^8ApA,?-A(A? }JVAYA~ ?mj?AjA?8^8pv?l !pAΩ?]Oʝ? }*%~?aJVY<) ? e?j&?t;!I":,V?-~ i+ ?1Of8 = ?w}ɇ ?183 s?L0W0?r}x>GF ? C?S@! ?FN$@V?`nnc? ~E{("?|]*S?q6Hr? 1[?2 e guC? ~6|o?a)zQ)˻]A? d·A@?M & A@|t ? 0AWA+?4|>GAFA ?n~A AA>`F!AA ?P~NA$@AI?)3+eAc.A?V7tAjAAU?4"]A*SAi> ~uAAN?}~AlA"a?@^Ai1?Fe AguA}?P@lU X~AA ?IAA??}QA@& ?3 iIډ? E - ?q E?V '}O? ~? ?~>sAH@7 ?LlA]tAm ?(G4)AA*R?⥀@bTAڦ?E@D@Ab ?(c@F;AmR ??@[A`?\{}X@w$A>?$=@dNA?V xAZ|zAe ? LAzA2?.6@^ A?ycXt$ ?Ho~8 ?w?> ~S(ۖ?&$|t0.$?eu}l*?;Ze .?UlAA?. ԗL ?A|oӥ~? |DATApl ,tsrq p o nm  lk jih g fe d c ba` _# ^&]))\,(-[0 1Z4 5Y8 &9X< &=W9@VCCUF &GT=JSM %NRQ RQUUPX%YON \N_  `Mc cL\fKiiJl mIp$qHtlGwwFf$zEqXDCRB#AF@?@#>=<#; p:987 "6"544 "3!2,1 0&!/.- !,+*)( ' &%!$#" "!  # m'  j    gcf fdd  ! b# $@E% '( *T+ ,I-/02 M34M46 70K9:K:<=7E'?1@BCE?FG ?GI JC=LM=MOPJ:RS5TVWY9Z[9[]^W7`a7acd^1Bf,gijl+mn+omqs-tu-uwxq*z{*|z0./ 27c7`66/.~66~88~34}88}I9]=L| <<<> {?I?F{2B CD zK< K9zJJzCByJJyLLyFGxLLxM6M3xHR w  NOvR RvSSvP!"Q#%u&(S)S)u+&T-.T.+u0+D2t36Q%7P8!W:<s=?V@A UBDrEGW<HWHKrLEVN~@qP}RYS|TYT{VqWzPZYyZZZx\q]wWOv_N`upbtd Z\se ZerYpgqb[ipj\kom onnp _qmr_rlt oukn^wjx ^xizo{huGg}F~fne ^zd^cwnb`a ``m_a^a] m\][eZeYjXlWiViUlT4S3RkQiP)OkNC3M]LmKAJG}I opH{\GkXFpdEND`O_CqRB]VANVA@s?=P>8Q7= D2<u(;0Q:#P"9v8O7H6x5G4C3z2D1C02/{.;-3,~+.*/) (2'.&%*$|*{#"x)!1f Yd5T:SEP1@@E?2=I-b$!cg hs v vu  u q j  o o m! m$ h a  e- e2c= c? _ [  ] N Z@ ZE XPXSV P  TT TY RdR f N ! ! H! H" "Fx" F#{ #<# <$$ A|$ A% %?% ?& &,& ' ' 9' 9( (7( 7) )3) ,** 1*1++/+/, ,, - - - . ../ //0 0 0 1 1  1  2 2 2  3334 4 4 5 55 6 66  7 7  7 8 88 9"  99  : : #: ;( ;0; <2  << =7 = =>> 8> ? ? =? @A @@ AA NA BR B]B C_ CCD D `DEdEE F FF G G kG HpH{H I} II"J J" JK KK L !LL! %MM% M N NN O $OO$(P P( P Q QQR'RR' +S S+ ST TT U *UU*/V V/ VWWWX .XX. Y 2Y Y2 Z Z Z7[ [7[\\\ ] 6]]6 ;^ ^; ^___ ` :``: ?aa? a b bbc >cwc> Bdz dB deee f~ AffA Eg |gE }g||h{yh|uhy yix DiyziDIjwvjI xjvvkuskvnksslrHlstlH Lmq omL rmoonnlnopnllokKolmoK Ppi hpP jph hqg fqhbqf freOrfYrOTs\ csT escctbatcdtaau`SuauS Wv ^vW _v^^w][w^Ww[ [xZ Vx[\xV[yYXy[ ZyXXzWUzXPzU U{T Z{UV{Z^|S Q|^T|QQ}PO}QR}OO~N]~O@~]ML IM EI IH JIKJ b< Fb HFFECFGC CBaCDa e@>e A>>=;>?; ;: d;<d98g9 !g k% 4k 7443 5465 o 1o 2110/1+/ /.n/+n s- ,s .,,+*,&* *) r*r v 'v )''&$'($$#u$%uy! y"     xx||  {{ ~  ~ }}                 3 6                               9  <           FI          ! ! " " L#]  ' 'C I(B ( % &  (() ) I //. . &% ..0 0 * + 0011- 2  776 6+* 668 8 4` 5c 8899;  2- ??> >: @ } A}A}|~}=z~ =zy F{yFyxvyEqv Evu vCw Bt r EurErqprGsp Gpo pDm Dmk Jnk Jkj hkKlh Khg hIi MB eRfeRedbeQ^b Qbab5c4`_ Qa_Q_^\_SW\ S\[ \#]$Z X S[XSXWUXTYUTUTUOV UR Q XSQXQPNQWJN WNM N O LK WMKWKJHKYCH YHG HIFD YGDYDCADZEAZA@AMB^' ~> c?>c>=~;>b7; b;: ~; <9}8 b:8b87}58d05 d54 }563|1 d41d10|.1e2.e.-|.`/  +{)  f, ) f) ( {& )g* & g& % { &^' i # z"  m$ "m" !z "l l z   yllynny x nnxooxk p w  u u  w  t  t  w   wpk x yzi^ {m` |} ~^M    ! !! " "U"O# #$##$$4$5%%M%I& &D&D''B'C( (=(:))-)2**:*+ +5+4,,*,+- -2--..+.*//%/&0 0&01, 1&1O%22#233344 4 4555 6667778 889 99:p : :;;;<<<===>>>? ?@?@F @@AAABBBC CRC}DX ~D}D~{Ez |E{qE|xFw yFxfFyuGl vGuwGvrHqsHrtHsnImoInpIojJi kJj lJkgKfhKgiKhdLceLd\LeaM` bMacMb]N\^N]_N^ZOY[OZNO[VPU WPVXPWSQRTQSUQTORNPROQRPKSJ LSKMSLHTG ITH=TIDUC EUDFUEAV@BVACVB>W=?W>9W?:X9;X:<X;6Y5 7Y68Y72Z1 3Z24Z3.[- /[.0[/*\) +\*,\+']&(]')]($^ %^$^%!_  "_!#_"```a aab  bbcccdd de ee  f  f f  g g  g h hhi iijj jk kkll,l3mmm,nn<n<oooNppPpVq qNq_r rarhs sjsqt tst \    '    \  ,LrhrME4 +ݲ ܲ MEPlane.0034' Og Og To G H1 d] H xèm?Z??DATATo  DATAH1 0H υ?P4?3@?>??(4υ E?L>???>>?>><44 >d4/k?υ=>>?>?>_ >@32?>>>?>?>>> ?@?@?  ?@υ %?/k%? ?` ? ?>>=>_ >>> >>??/?/[?/{?υ 5?υ ?/[%?/k?/{ %??@0?@?O ?pF ?P?`?/?@?0@??0? ?0?0?  ?@?߾?߾?0? ?߾ ??>?>>>߾>>>>>>߾@>=@>=2߾2@>>߾>=/>/>=/=?>=>?>?>>>/>>O?߾?߾?߾F424?߾Z4/n4υ=>O>?>?>_ >/{=>O>/k;>/>>>/>>>>=@>?@>? =@>>/>==߾> >= @>߾ >?4 4`3 3???>?=@>>@>?=?????O@>?=߾ @>=/=/@>@>>/>/>O>O>o >?@߾?>O>O>/>/>@>?>/=/=@>@>߾>߾>>?0?0?߾P?pR0?0?0?/?P/{ 5?/[?/?/{???߾>߾=߾=>߾߾/{<>=߾==߾2=5=7=ρ<>ρ?߾1߾>>>?<==?>߾>???߾??/{ ?ρ?υ ?7?/?7?M?M??G?P?H?80?@?8?߾>>>>>>߾>`>߾@>`>@>`>2=`>>>?>/>/>?>G>O?___?>G>O>G>G>7>/>/>>>`>/`>+=-=@>>?(=G@>_??__?3_?_=_>_@>_@>>>>_=03?__?߾ > > > >==== >740=:=/<='i4/==? =/ >? > >`> >>>>>>/>?>/>?>>]">/c?W>G>O>W>W>_ >m#>g >?@Ͼ ߾ϾϾ`߾?2>?>O>O>?>?'>/>>/>>>>>> > >@>=_>?>'_>/='=='=/' > >`>@>Ͼ>Ͼ>Ͼ >߾>>>߾>Ͼ>Ͼ>>>>>?>>??? ???(?0?(?8?@?Ͼ(?߾(? ?0? ?@?0?(8?0@?( ?((?@0?8 ?8?'? ?X?P?X?` ?Hρ %?ρ 5?/k?/c?/[?/c%?/k ?/{?υ ??????߾?Ͼ>Ͼ>߾>==Ͼ@2Ͼ==>>Ͼ߾߾ϾϾϾA4ρ=>===߾=P3=>H?ov ?hHυ =? JϾϾϾϾ>>==>>Ͼ>Ͼ??ρ ?/c??X(???>>> > >Ͼ`>Ͼ<'='W>G>>.==____G>>G`>>ρ ???>>K4==U4υ<>/{<>==߾??/[ ??@?/?78?8?@?0?>`>==@>>>>7>7>7_?-4U">?>7>7>>>@>`>?`>7@>=߾ `>_#4_=O`> =?`>?`> >? > >=?== =??4>Ͼ @>Ͼ >'='>7=7>'@>'>@>>>>'>'>7>'>/k<>O>e">_ >u$ϵ>_>G>G>'>'>7>'>'>>>>>/=>==@>>>>>0?Ͼ ?Ͼ ?(?(? 8? (?0?0?@?/{ -?υ -?/s?/s?/s%??Ͼ=߾@_4/{<>υ=>/s<>Ͼ=4 ==>߽>=߽==H3߽X3 =?߽??߽߽m?w?==߾=߾====Ͼ=_<0@=߾d<߾2@=Ǿ>4׾C4׾b<Ǿ`<Ͼ1=n<8@===s<:@=8@=9@=8=========f>t>l>t>σ=>0=>σ<>0<>ρ<>߽߽  ߽߽߽?'?߾;߾?Ǿ׾E?׾Ͼ@Ͼ?Ǿ߽߾߽߾Ǿ׾ϾǾ׾Ͼ߽߽߽߾߾Ǿ׾Ǿ׾߽׾߽ϾϾǾ?߾?߾`2Ǿ 2׾?ϾǾ׾Ͼ@ @   ??>>>>>>>>>>>>>>>>>>> >> >>> >>>==== ==>> === ===========<?=<?=?=?=<=Ǿ=׾=Ͼ>Ǿ>׾=Ͼ>>=====>>>߾>߾>>>>>>>Ǿ>׾>Ǿ>׾>>>׾>Ͼ>Ͼ>Ǿ>>>߾>߾?Ǿ?׾>Ͼ>Ǿ>׾>Ͼ?߾ ?߾? ??׾?Ǿ?Ͼ???߾?߾?Ͼ????????? ?? ? ? ??? ? ? ??????? ?? ? ????υ !?υ ?σ ?0?/{ !?/{?σ %?0 %?ρ ?σ ?0 ?ρ !?/k!?/k?/s?/k ?/k?/{ ?/{?/s ?/g?/_?/g?/_?/g?/g ?/c ?/[!?/[?/g%?/_%?/c?/g?/_?/c!?σ 5?0 5?ρ -??D?L?P?P ?D ?L?L?L?H ?\ ?T?\?T?`?`?T?X?X?\?#?+?#?+ ?#?#?' ?$ ?,?( ?< ?4?<?4?8$?@,?@0?<0?4,?<$?<(?80?$0?,(?(>>>>>>>>>>>>>>>>>>>>>Ǿ>׾>߾>߾>Ǿ>׾>׾>׾>Ͼ>߾>߾>׾>׾>Ͼ>>>>>>>>>0>@>@>>߾0>߾0> > >>@>Ǿ@>׾>0> >׾>Ͼ0>Ͼ >Ǿp>P>p>߾P>߾P>Ͼ`>Ǿ`>׾p>Ͼp>P>`>>0> >>>@>@>>0> >=======22=#+#?>+>'o>O>o>/O>/O>#O>+_>'p>P>@>@>P>P>`>>0>0>> >> > >>>> >>>>>>>>>>>/>/>'>/>/>'>?>?>7>?>?>/>/>7>'>/>/>+>#>'>O>O>C>K>K>C>G>O>O>G??߽????_Ǿ׾p߾P߾@Ǿ@׾p׾P׾`Ͼ߾0߾0׾׾ Ͼ/??///߽߽߽O?9444?Jc >k >j>[>S>O>O>[>S>_ >_ >S>W>W>[>O>O>[>S>S>S>W>C>K>C>K>?>?>K>G>G>C>?>?>C>K>C>C>G>d>V>Z>`>>>/>/>'>;>3>3>;>7>/>/>7>>>'>>>/>/>'>>>>>>>>>>>>>>>>>0>>0> >>0> >p>P>p>P>`>/p>/P>'`>/>/0>' >?>?0>7 >? =? =/ =/=7 ='=/x</<@=#f4+k4+v<#t<';=Z<.@===.=\</@=/=== > >==== > >===== > 0>߾ >߾ 0>Ͼ >@>@>0>0> >?c???߽?oOoOO_߽_oo?O?_//oO?o?O_oO߽??O߽O_/߽//???83(3/?/==/ =>>/=>o>O=o=O=_@>o@>O >_@>@>/ >>>/`>>o>O`>_3o3O=_?O_?_ooOoOO__o_Oo_Y?o?O?_C>K>C@>K@>G`>?P<?(@=U<,@=_*=>> `>,=7p>7P>P>p>>>>?>?>7>/>/>;?3?3>3>7>Fs?TX[?J>G>C>K>G>oO_Oo_22?>?>?>O>O?C?K>G>C>K>G>7>?>?>7>>>p>P>`>=>>P>p>`>>>`>p>P>`>>>>>>>>>>>>4?>>>>>11= < ?= <>>> >@@ ?1???ワρ<>i<6@=6=4=D?!oL?2pg ?dI; ?lGυ A?VKυ 9?ݖH4@=6@=0<>?@? @ @> > >=>>>? ? ? ? ? ? σ?0?0 ?TX[ ?8? >>>P>P>p>=P>>>7>7>K>K>C??O?K>K>C>O[P\[>7>>,@= `>_*@=K`>oOOOOo?o?OO =O`>O`>/ >/ >O=O=/ =//?/?OOoOO߽?Ͼ 0>===0@=.@=[<'=7=70>'0>'P>P>0>0>>>>'>'>7>'>B[B>sUs>C>K>K>[>S>S>O[p][>L??߽//_??>G>'>7>7>'>'>>>+=+=+=#?=#?=+<+==0>P>p>׾P>׾P>Ǿ0>Ǿ0>׾>׾>0>0>>>>>>>>>>>? ? ????$?,?,?,?Ͼ,?(?8?(?,?4?,?\?T?T0 -?/_!?/_?/g?/s?/s?0 !?0?σ ?? ? ?? ? ??Ͼ>׾>׾>Ǿ>Ǿ>׾>׾>>>=׾=׾==== = =>> > >>>  @׾?׾?ǾǾ׾߽׾߽׾߽׾ǾǾ?׾?׾=?0<>=Ͼ==??߽? ===߽ =߽߽߽r=Ͼ=Ͼ1@=p<==/s<>σ=>߽"ǾBǾ߽߽߽ǾǾ>>>==<=Ǿ=Ǿ=>>Ǿ>Ǿ ?Ͼ?Ͼ????σ !?/s!?/s ?/_ ?/g!?σ -??D?\?+?#?<(?4(?$8?$8?(?(? $?$?Ͼ4?Ͼ$???>>>>Ǿ>Ǿ>>>Ǿp>Ǿp>> >==<#=#>#o>'p>>0>>>>>'>'>7>7>'>'>G>G_`ǾǾ߽߽Gses>[>[>C>K>O[`\[>i*fu*>'>7>7>'>'>>>>>p>'p>'>7>7 ='=';@=]<==Ͼ >>h߽o߽ooo ===o >o >`>`>o=oooo_^C`>_R<`>W<>7>;>sEs>C>To_>C>7>7>p>=`>p>>>8??DFs ?;?σ ???>=<>6,σ<>k<f<DATAG , G ssF E :D llC VB bbA YP@ BY? > VJ= PD< JB; D:: < 9  8 7 *6 &%65 #4 3 2 1  0 / .  - , + O*  )  ( '  &  %  $  #  " ,0!            +  A * * A  " @w ! {!{ xz ll @(  + "?\ [ X?5 O 8F D> J8  5>'  **>'"= = =\<< <Rp:v:9  9!!0&q&t~8&t&q8c'f'f8cb]7'H'H7?7?"30-/*"*"6))6%$5)55 ((4#44,439..3 /32w{ /r0N1Te]bW1T0HN#@39,*3,*4#"(5 $6" 7%$8#" 9[:vz<pg ; d 6\cV SU0>J E9@?50+@("AHG!~#} D!|*,{/@1z4B3y7:=><8?>?@BDGCFHGHIKCNDMONOP?MxQRTTU>WwZ]`a_[babc;^vf:huklt=osmqrnnqwypo{oxxnmy\lkjihgfedpcba `_R^]\[ZgYmXW}V}UT{S(R'QgPOkNkM  Li K i JI \H !! "$G'&),(+-,-.U/F+2E0Z4D1:1=2<>=>?X;CACB<RABGJ@IM?KJO>LM=VX<[^X`W\a`abI^;Ud:_Hf9c O8moqtpsutuvOp7xz6qP|5y A@ 4 3 2103/.^-, `+`*)a$(a'&]%]$#i"i!  h kflss r r  eA!#& %'&'(C*+,../-2v5 4 8 6{ 7{7 > 8z@=@GIELFKMLMNPRSQITSTURWXVYXYZV[\\[]^`a`ab_egjGlmdposuxwyz|}|}~urq1P wqS     #&%)+.b01(4379<;=>AB@ECBCDEHF9GG6NHPMVMYWUZZY[]`_bca#dcdejgh)kimojnluvwyyz}||x#xwvrusqp}u~tnogZgebc/-_^.USRq~MH{FEi ?  B %el fe !"!"#$$%3())*+-,o.-./-1237468789EY;KZG=JRBC0CUE/U(E)\K\KgQXZ[\[\]gQRCcwZpWcmnmonop jq Yr t~u;}v};t} v}t~tB~ u~BYE; r;jmqmonponpmomomnmnkcjkjjhjhhihWigZfgffdfddedceaC`a``^`^^_^Q_\[]\[]\\wZ[Z[pWXWUQTU!T!TRT R RSRKSOKNO$N$NLN#)L#L(ML"EM"IE~HI&/H&H0~FH%CF%FB~GFCG)A=}@A(J@(@K}>@'Z>'>Y}?> ;?+87,98*7964,86+48C3+73*71D.20.-1/./-/o,1.o0,.M+0-+/-Q)*2)*Q)2)T'4('V$%5$%V$5$8"!6#"7!#6"8"c 8! 7!<|;;|::|9? {>>{=={<A6@d6A%A@%q*C *l PD Pif9 lGl{~I/zKKzJJzIByNNyMMyLQOP OQQP OTVZxYYxXXxWD[]*\C*]]\W ` a-a- b/ b/FdFb f c hijVgojgioninVSwltluwk~k}wQLvoovnnvmmbrbtsvpuwxunnuzzuy#|z{z|x|{x|}o|}|||o|~k~yz{yz@wy{wyum~vmstrsinrirotprjppitqp~mq)jkjg,h,edcedce#ad#eadb_ecb_c] _`_YZ[YZ[UWZUWZMVYMVYTPsSTMSSNsQSHQQGsRQ6RL9rKLGKKHrIKdFIdIErJIJCBDCBDE@CE@CA>BA>B;K=K9 ;<;3676(3430+1++-a.-%()(#%&%!q !  q q ``^       \\\ D]][[pXXppooYYoS nUUnnqwmmmlllM9kkNNk1r J~uuJJ}|~}H|~#}}Qz|Hz|wy~uwxworsrdopolgmggiEji_deda`ba`b$aa^`^`[\][\]%\\}V[V[YXZYXZ}VYVYWRXWRXTSUTDSU|IQTIQTRPSRDPSMLNMLNKFMKFM|EILEILz@FGFD@jCD=CC >jA C8 AA 7jB A B< i; <7 ;; 8i9 ;6 99 5i: 94 :-q1216.t/./u,6.,.*t#+#'&@('&(% @'% 't#&#&r ! rh==h  hg  gg f    f >>f  e::eek  ;;e;d)dhd d  !d! !"c""#c##$c$$%b%%&b&&'b''($a(()a))*a**+`++,`,,-`--5-[5.^..V///3,33V30Z:00:T111SW222   /  L  W33234W4 4 #@@XAA 5|_5y56z_}6q6}}7p_~7}x7~utvu1tvOspuspuqotq1otJ8Ol8 m8lj9f^i9jc9ii:d^g:i_:gg;^^h;gU;ha`ba`b\Wa\WaIX^`X^`I<XZ<'[<Z=MIU=V=US>O]R>SL>RR?M]P?R(K?P(P@J]Q@PI@QGA\FAG%BAF%FBC\DBF<BDDC;\ECDACE>=?>=?<2><2>Z1:=1:=8D4[7D81D77E2[5E7&0E5&5F/[6F5 +F6#-, .-!,.U+( -+#(-)&#,)!&,aG$&G!'G&" !$" !"("!!\$ " "HZH H IZI# I#J ZJJK YK# K#L YL$L$MYM MNXN$N$OXO!O!PXP%P&%&m&QsQQpRR'R)){)SWS)S)TWT*T*UWUUVVV*V*WVWWXVX&X%YUYYZUZ+Z+[U[[,++,,\T\,\,]T]]^T^^/_S__`S`.`.aSa-a bb  0b(cRccdRd1d1eReefQf1f1gQg2g2hQhh3iPi2i2jPjjkPk/k6l\OllmOm5ym5nxOn4n8o{N~o5xo~5~pyN|p~7op|7|qnN}q|wq}urqMtru7nrt7tsoMrstmsrrtlMstr9=ts uhju  kuj v^ev <fve=ba6cb;ac[_6b[=_b`]=a`;]awWYw ZwYTUTU<RTRTxM1x@Qx1AON?PONPMD?OMADOCKANCKNAHGIH GIFCHFACHDBAGD BG9?>@?>@8<?89<?=:9>=:>y36y7y6z13zB4z3{,.{C/{.|!)|*|)y'}#L&}'D }&D&~!L$~&F~$F$L%$E%E GHGGEE%L'%y"' D* (*/+C-/- @40B2422B72579;@;A  IAEIPJ?LPLL?QL@0QESUSU>ZV XZX\^;c^] ;f]<df:kg ik i9s<Muspu}vN}8z4O6[/P3QR(w 0-S/T+U%&VWw ('uu's%XY Z"$"a'#!%'_%_%!.% *. 6*[8638?9;?X;E@\GEGQH]SQNSJLVLTV[W'Y[EYD]_b_hT^jhejmNkmFk Kn1vnrv~w_~{Q X   2K W YYYY9Z43__^5`a#bc djj)jje f   ghdA!!t("@$(n$o)C+)"+-/-t/u,2,02:3i<:<BjDB?DG?EG|ENHJNxJyODUOHU|QZQZW]Wlf_b_^e^cejfEhjyhxkGmkfmpcnpnnsnqsxtvxvvyvy{H~{tq0kMPlmvpnRop[\     ^` q!!&"$&$$)$').*a,.,/ b1 /* 14 '2 4 22 7 25 7< 8: < :: = :J = F? D ?J rL J8 LR 5sT RO TN [ NX ` \^ ` ^^ e ^" ef jh f+ hk (i k i~q lts q st lv t~l vx{zxz} {k}  } o }{ { wz  y "u x x w   w u v p o n r v u s   s t q r n o p m m v L Q w S V jf  fZ h   g c a e af c! dE! ! E0b0,a, _" `" " # ^# W# $ \$ *$ .% [% % W& x& Z& ' U' V' S( T( ( ) R) O) * * P* L+ y+ B+ I, z, /, Qz- H- zI- F. Gk. x. kyh/ E / h9/ ? 0 DO0 y0 OB 1 C)1 o1 )n$2 @2 $62 <3 {3 ? 3 94 |4 <4 d5 5 7#5 [5%%V6 3(6 4&6 (K2**//7 1n7 /K7 nB08 -28 0.8 2*99 ,59 9B9 5 ?: :}A: ?)<: AG; B~I; G"D; I"M< DO< MJ< OS= JU= SP= Um> X> V> X]? Y? ]m? _@ Pa@ _B@ aeA bgA eYA giB VkB ibB kpC llC pC liD  qD ilD qXE  rE X :E r uF s AF uF A:G vG : sG vIww[IxxJyy2JzzN{K{ |K|FMEݲ +v 4 MEvitre1 B| B| <| v ) 8@d;1;杆>Kv>A;DATA< DATAv 0 ƨz>QsМ;ԕ*j現Qs+*f現rz>1]+Tdƨz>rz>B@2Դ,8Qs.NΞrz>2k吲Fi_*{<!aFρf>9{<2-ˁf>9{ǁf>9{l_*{Kv>A;DATA߲  DATAv 0 ƨz>QsМ;ԕ*j現Qs+*f現rz>1]+Tdƨz>rz>B@2Դ,8Qs.NΞrz>2k吲Fi_*{<!aFρf>9{<2-ˁf>9{ǁf>9{l_*{>rؘ>DATAv t DATA,e 0>G8rؘ>~G8rؘ>hrؘ>h x縦>rؘ> ~>J8rؘ~I&48rؘhIxrؘh IG縦>rؘ ~IDATAxv ,@ @ GLOBt`$    DNA1[$0 SDNANAMEP*next*prev*first*lastxyzwxminxmaxyminymax*newid*libname[24]usflagpadid*idblock*filedataname[160]totcurvecurblocktypeshowkeypostyperttotelem*dataname[32]sliderminslidermax*refkeyelemstr[32]elemsizecurvalblock*ipo*fromtotkeyslurphactkey**scripts*flagactscripttotscript*line*formatlenblen*nameflagsnlineslines*curl*sellcurcselc*undo_bufundo_posundo_len*compiledsizeseekclipstaclipendlensortho_scaledrawsizeYF_dofdistYF_apertureYF_bkhtypeYF_bkhbiasYF_bkhrotscriptlink*anim*ibuf*mipmap[10]oklastframelastqualitytpageflagtotbindxrepyreptwstatwendbindcode*repbind*packedfilelastupdateanimspeedreserved1texcomaptomaptonegblendtype*object*texprojxprojyprojzmappingofs[3]size[3]texflagcolormodelrgbkdef_varcolfacnorfacvarfacdispfacwarpfac*handle*pname*stnamesstypesvars*varstr*result*cfradata[32](*doit)()(*callback)()versionaipotypedata[16]*ima*cube[6]imat[4][4]stypenotlaycuberesdepthrecalclastsizepad1noisesizeturbulbrightcontrastrfacgfacbfacfiltersizemg_Hmg_lacunaritymg_octavesmg_offsetmg_gaindist_amountns_outscalevn_w1vn_w2vn_w3vn_w4vn_mexpvn_distmvn_coltypenoisedepthnoisetypenoisebasisnoisebasis2imaflagcropxmincropymincropxmaxcropymaxxrepeatyrepeatextendcheckerdistnablaframesoffsetsfrafie_ima*plugin*coba*envfradur[4][2]modetotexenergydistspotsizespotblendhaintatt1att2bufsizesampshadspotsizebiassoftray_sampray_sampyray_sampzray_samp_typearea_shapearea_sizearea_sizeyarea_sizeztexactshadhalostepYF_numphotonsYF_numsearchYF_phdepthYF_useqmcYF_bufsizeYF_padYF_causticblurYF_ltradiusYF_glowintYF_glowofsYF_pad3YF_glowtypeYF_pad2*mtex[10]layspecrspecgspecbmirrmirgmirbambrambbambgambemitangspectraray_mirroralpharefspeczoffsaddtranslucencyfresnel_mirfresnel_mir_ifresnel_trafresnel_tra_ifilterpad0ray_depthray_depth_traharseed1seed2mode2flarecstarclinecringchasizeflaresizesubsizeflareboostrgbselpr_typepr_backpr_lampseptexpad4pad5diff_shaderspec_shaderroughnessrefracparam[4]rmsdarkness*ramp_col*ramp_specrampin_colrampin_specrampblend_colrampblend_specramp_showpad3rampfac_colrampfac_specfrictionfhreflectfhdistxyfrictdynamodepad2YF_arYF_agYF_abYF_dscaleYF_dpwrYF_dsmpYF_presetYF_djitname[256]scale*bbi1j1k1i2j2k2selcol1selcol2quat[4]expxexpyexpzradrad2s*mat*imatelemsdisp**mattotcolloc[3]rot[3]wiresizerendersizethreshvec[3][3]alfas[3][2]h1h2f1f2f3hidevec[4]s[2]mat_nrpntsupntsvresoluresolvorderuordervflaguflagv*knotsu*knotsv*bp*beztnurb*bevobj*taperobj*textoncurve*path*keybev*orcopathlenbevresolwidthext1ext2spacemodespacinglinedistshearfsizexofyof*strfamily[24]*vfontmaxrcttotrctadrcodevartypetotvertipoextrapbitmask*tpageuv[4][2]col[4]transptileunwrapeffect*mface*dface*tface*mvert*medge*dvert*mcol*msticky*texcomesh*derived*decimated*oc*sumohandletotedgetotfacecubemapsizesmoothreshsubdivsubdivrsubsurftypev1v2v3v4punoedcodecreasedef_nrweight*dwtotweightco[3]no[3]co[2]pntswtypeutypevtypew*defdvec[3]max**obpartypepar1par2par3parsubstr[32]*pardata*parent*track*action*pose*activeconconstraintChannelsnetworkdefbasedloc[3]orig[3]dsize[3]drot[3]dquat[4]obmat[4][4]parentinv[4][4]colbitstransflagipoflagtrackflagupflagipowinscaflagscavisflagboundtypedupondupoffdupstadupendsfctimemassdampinginertiaformfactorsofttimerdampingsizefacdtdtxactcolpropsensorscontrollersactuatorsbbsize[3]dfrasactdefgameflaggameflag2softflagdummyanisotropicFriction[3]constraintsnlastripshooks*pd*soft*lifelbufporttoonedgemat[4][4]cent[3]falloff*indexartotindexcurindexactiveforcedeflectforcefieldpdef_damppdef_rdamppdef_permf_strengthf_powermaxdistpdef_sbdamppdef_sbiftpdef_sbofttotpointtotspring*bpoint*bspringnodemassgravmediafrictrklimitphysics_speedgoalspringgoalfrictmingoalmaxgoaldefgoalvertgroupinspringinfrictefrainterval**keystotpointkeymistypehorrhorghorbhorkzenrzengzenbzenkambkfastcolexposureexprangelinfaclogfacgravityactivityBoxRadiusskytypemisimiststamistdistmisthistarrstargstarbstarkstarsizestarmindiststardiststarcolnoisedofstadofenddofmindofmaxaodistaodistfacaoenergyaobiasaomodeaosampaomixaocolorphysicsEnginehemiresmaxiterdrawtypesubshootpsubshootenodelimmaxsublamppamapamielmaelmimaxnodeconvergenceradfacgammaselcolsxsy*lpFormat*lpParmscbFormatcbParmsfccTypefccHandlerdwKeyFrameEverydwQualitydwBytesPerSeconddwFlagsdwInterleaveEveryavicodecname[128]*cdParms*padcdSizeqtcodecname[128]mixratemainpad[3]*avicodecdata*qtcodecdatacfraimagesframaptoframelenblurfacedgeRedgeGedgeBfullscreenxplayyplayfreqplayattribrt1rt2stereomodedimensionspresetpad[2]maximsizexschyschxaspyaspxpartsypartssafetyborderwinposplanesimtypebufflagqualityscemoderendererocresrpad[2]alphamodedogammaosafrs_secedgeintsame_mat_reduxgausspostmulpostgammapostaddpostigammaposthuepostsatdither_intensityzminfocuszgammazsigmazblurGIqualityGIcacheGImethodGIphotonsGIdirectYF_AAYFexportxmlYF_nobumpYF_clamprgbyfpad1GIdepthGIcausdepthGIpixelspersampleGIphotoncountGImixphotonsGIphotonradiusYF_numprocsYF_raydepthYF_AApassesYF_AAsamplesGIshadowqualityGIrefinementGIpowerGIindirpowerYF_gammaYF_exposureYF_raybiasYF_AApixelsizeYF_AAthresholdbackbuf[160]pic[160]ftype[160]col[3]framename[64]*camera*world*setbase*basact*groupcursor[3]twcent[3]twmin[3]twmax[3]selectmodeproportionalprop_modeeditbutsize*ed*radioframingaudiomarkers*theDagdagisvaliddagflagszoomblendximyim*rectspacetypeblockscale*areablockhandler[8]viewmat[4][4]viewinv[4][4]persmat[4][4]persinv[4][4]winmat1[4][4]viewmat1[4][4]viewquat[4]perspview*bgpic*localvdlocalviewlayactscenelockaroundcamzoomgridgridviewnearfarmxmymxomyogridlinesviewbutgridflagmodeselectmenunrtexnrtwtypetwmodetwflagtwpadtwmat[4][4]verthormaskmin[2]max[2]minzoommaxzoomscrollkeeptotkeepaspectkeepzoomoldwinxoldwinyrowbutv2d*editipoipokeytotipopinbutofschannellockmedian[3]cursenscuractaligntabomainbmainbo*lockpointexfromshowgrouprectxrectycurymodeltypescriptblockre_aligntab[7]*filelisttotfiletitle[24]dir[160]file[80]ofssortmaxnamelencollums*libfiledataretvalmenuact(*returnfunc)()*menupoopsvisiflagtree*treestoreoutlinevisstoreflagdeps_flags*imageimanrcurtile*texttopviewlinesfont_idlheightleftshowlinenrstabnumbercurrtab_setshowsyntaxunused_paddpix_per_linetxtscrolltxtbar*scriptredrawstitle[28]fasesubfasemouse_move_redrawimafasedirslidirsli_linesdirsli_sxdirsli_eydirsli_exdirsli_himaslifileselmenuitemimasli_sximasli_eyimasli_eximasli_hdssxdssydsexdseydesxdesydeexdeeyfssxfssyfsexfseydsdhfsdhfesxfesyfeexfeeyinfsxinfsyinfexinfeydnsxdnsydnwdnhfnsxfnsyfnwfnhfole[128]dor[128]file[128]dir[128]*firstdir*firstfiletopdirtotaldirshilitetopfiletotalfilesimage_sliderslider_heightslider_spacetopimatotalimacurimaxcurimay*first_sel_ima*hilite_imatotal_selectedima_redraw*cmap*arg1outline[4]neutral[4]action[4]setting[4]setting1[4]setting2[4]num[4]textfield[4]popup[4]text[4]text_hi[4]menu_back[4]menu_item[4]menu_hilite[4]menu_text[4]menu_text_hi[4]but_drawtypeback[4]header[4]panel[4]shade1[4]shade2[4]hilite[4]grid[4]wire[4]select[4]active[4]transform[4]vertex[4]vertex_select[4]edge[4]edge_select[4]edge_seam[4]edge_facesel[4]face[4]face_select[4]face_dot[4]normal[4]vertex_sizefacedot_sizebpad[2]syntaxl[4]syntaxn[4]syntaxb[4]syntaxv[4]syntaxc[4]tuitbutstv3dtfiletipotinfotsndtacttnlatseqtimatimaseltexttoopsttimespec[4]dupflagsavetimetempdir[160]fontdir[160]renderdir[160]textudir[160]plugtexdir[160]plugseqdir[160]pythondir[160]sounddir[160]yfexportdir[160]versionsvrmlflaggameflagswheellinescrolluiflaglanguageuserprefviewzoomconsole_bufferconsole_outmixbufsizefontsizeencodingtransoptsmenuthreshold1menuthreshold2fontname[256]themesundostepscurssizetb_leftmousetb_rightmouselight[3]tw_hotspottw_flagtw_handlesizetw_sizevertbaseedgebaseareabase*scenestartxendxstartyendysizexsizeyscenenrscreennrfullmainwinwinakthandler[8]*newvvec*v1*v2panelname[64]tabname[64]ofsxofsycontrolold_ofsxold_ofsysortcounter*paneltab*v3*v4*fullwinmat[4][4]headrctwinrctheadwinwinheadertypebutspacetypewinxwinyhead_swaphead_equalwin_swapwin_equalheadbutlenheadbutofscursorspacedatauiblockspanels*curscreen*curscenedisplaymodefileflagsglobalfname[80]*se1*se2*se3nrdone*stripdataorxory*newseqstartstartofsendofsstartstillendstillmachinestartdispenddispmulhandsize*strip*curelemfacf0facf1*seq1*seq2*seq3seqbase*soundlevelpancurpos*effectdata*oldbasep*parseq*seqbasepmetastackedgeWidthangleforwardwipetypefMinifClampfBoostdDistdQualitybNoCompbuttypestaendlifetimetotpartseednormfacobfacrandfactexfacrandlifeforce[3]dampvectsizedefvec[3]mult[4]life[4]child[4]mat[4]texmapcurmultstaticstep*keysheightnarrowspeedminfactimeoffs*obpremat[4][4]postmat[4][4]vec[3]faclenoalphaoeff[2]iterlastfralimbbaseeff[3]effg[3]effn[3]memslowtotytotxxyconstrainttotdefdef_scrolllimb_scrollused*idusedelemdxdylinkotypedataold*poin*oldpoinresetdistlastval*makeyqualqual2targetName[32]toggleName[32]value[32]maxvalue[32]materialName[32]damptimeraxisdelaypropname[32]matname[32]axisflag*fromObjectsubject[32]body[32]pulsefreqtotlinks**linksinvertfreq2axisfbuttonbuttonfhathatfprecisionstr[128]*mynewinputstotslinks**slinksvalvalotime*actblendinprioritystridelengthstrideaxisreserved2reserved3sndnrmakecopycopymadepad[1]trackvolume*melinVelocity[3]localflagforceloc[3]forcerot[3]linearvelocity[3]angularvelocity[3]addedlinearvelocity[3]anotherpad[4]butstabutendminvisifacminloc[3]maxloc[3]minrot[3]maxrot[3]distributionint_arg_1int_arg_2float_arg_1float_arg_2toPropName[32]*toObjectbodyTypefilename[64]loadaniname[64]goaccellerationmaxspeedmaxrotspeedmaxtiltspeedrotdamptiltdampspeeddamp*sample*stream*newpackedfile*snd_soundpanningattenuationpitchmin_gainmax_gaindistancestreamlenloopstartloopendchannelshighpriopad[10]gaindopplerfactordopplervelocitynumsoundsblendernumsoundsgameengine*gkeypadfokeygobjectgkey*activechildbaserollhead[3]tail[3]parmat[4][4]defmat[4][4]irestmat[4][4]posemat[4][4]boneclassfiller1filler2filler3bonebasechainbaseres1res2res3chanbase*achan*pchanactnrname[30]enforceoffset[3]orient[3]roll[3]*tartoleranceiterationssubtarget[32]cacheeff[3]cachemat[4][4]lockflagfollowflagzmaxvolmodeplaneorglengthbulgeactstartactendstridelenrepeatblendoutTYPEcharucharshortushortintlongulongfloatdoublevoidLinkListBasevec2svec2ivec2fvec2dvec3ivec3fvec3dvec4ivec4fvec4drctirctfIDLibraryFileDataIpoKeyBlockKeyScriptLinkTextLineTextPackedFileCameraImageanimImBufMTexObjectTexPluginTexCBDataColorBandEnvMapLampWaveMaterialVFontVFontDataMetaElemBoundBoxMetaBallBezTripleBPointNurbCurvePathIpoCurveTFaceMeshMVertMEdgeMDeformVertMColMStickyDerivedMeshDispListMeshOcInfoMFaceMDeformWeightBoneLatticebDeformGroupLBufbActionbPosebConstraintChannelPartDeflectSoftBodyLifeObHookSBVertexBodyPointBodySpringWorldRadioBaseAviCodecDataQuicktimeCodecDataAudioDataRenderDataGameFramingTimeMarkerSceneGroupDagForestBGpicView3DSpaceLinkScrAreaView2DSpaceInfoSpaceIpoSpaceButsSpaceSeqSpaceFiledirentryBlendHandleSpaceOopsTreeStoreSpaceImageSpaceNlaSpaceTextSpaceScriptScriptSpaceTimeSpaceImaSelImaDirOneSelectableImaThemeUIThemeSpacebThemeSolidLightUserDefbScreenScrVertScrEdgePanelFileGlobalStripElemStripPluginSeqSequencebSoundMetaStackEditingWipeVarsGlowVarsEffectBuildEffPartEffParticleWaveEffDeformLimbIkaTreeStoreElemOopsbPropertybNearSensorbMouseSensorbTouchSensorbKeyboardSensorbPropertySensorbCollisionSensorbRadarSensorbRandomSensorbRaySensorbMessageSensorbSensorbControllerbJoystickSensorbExpressionContbPythonContbActuatorbAddObjectActuatorbActionActuatorbSoundActuatorbCDActuatorbEditObjectActuatorbSceneActuatorbPropertyActuatorbObjectActuatorbIpoActuatorbCameraActuatorbConstraintActuatorbGroupActuatorbRandomActuatorbMessageActuatorbGameActuatorbVisibilityActuatorFreeCamerabSamplebSoundListenerSpaceSoundGroupKeyObjectKeyGroupObjectbArmaturebPoseChannelbActionChannelSpaceActionbConstraintbKinematicConstraintbTrackToConstraintbRotateLikeConstraintbLocateLikeConstraintbActionConstraintbLockTrackConstraintbFollowPathConstraintbDistanceLimitConstraintbRotationConstraintbStretchToConstraintbActionStripTLEN  0PDtdl(XP4@l<0P<  L, @,,\(PD$h$x$T x Ht8th  8( ,@0,HhH,(lDLP@< <@Lx0848l(@0pP<`|,,,8,<48STRC                    !" #$%& '()*+,-./01234 567 89:;<=>? @!AB6 "CDEFGHIJKL(M#$N%O%PQRSTUVWXYZ[!\]^_&`abc'd(efghijklmnopqrstuvw) xyz{| }~ *nop+*,'d##CDQR(43t(#)+,-2mnopqCD&(M.(/]mnop     `a++ !"#&($%&'()*+,-./012M0341!\222356789:;<=>?@ABCD3EF435 G H(/IJlKkLMNO5 PQRSTUVWX6YQZUX777[X\]^_`abcde6f5g8'35 h H'i'j'k(9lm/I noKkLlpJqrst^_38uvwxyz{|}0~:::6f5g  &; <$35  H(m/I   =>?@A<oBCD lKkLJE[>FG?F_=[@nopAH \]6(mIII DkJ''X ''(9l35KL M    H /IKkL>JM        NOPJJQQQ' N      RYOST *R!"*U7m#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN(&MVOPQRSTUVWXYZ[\]WWW^_`'dX a bcdefghijklY m no*pZqrs[aXtYuvwxyz{|}~A]\*!]]]^'U^# W_ V \[nZM `a #(ez{Ab2ccd'abQEj     ecccdfccdgccd*e  ! "()#$%& '(hccd)*+,e - $. / 01234567*8i ccde -*jccdk9:;<=>?@AlBCDE FGmccde  H$I / JnKLMNoccde #O$PQz{'p ccd 'e qccd RST6 UVWXYZ[\]^_r ccds`*6 tccde auQccdbcdefghijklmnopqrstuvwxyz{|}~vvww*% F x*yzzz xyyyyyyyyyyyyyy{Y|' {    }   ^~~~~ ~~ !"#$%&'()ddd~~ ~*~+},-./0123456789:;<M = > ? @ ABCDE%OFGHQI 3JK<LM 3 xy| } &N 3OPQRSTUVWXYZ(^$N[\]^_ `abcd e fg h ` ijklmnopqrstt3tuvwx*yz{|}~trw ' 3 ('In X      * /  * k0 y 0'* '  R*! ' Kuv _ uvauv '< ^' ' KL uv ' uv _y'*uv  '   !\!  ( 6ccde az{'*v ''(KkL>' _ ! "#GGGG $ %&'Kk>()*+,-./ 0 1234  Kk> _L 5(  _K 567ccde K$_8'*MMM(9 (_9:;<='>?@AB_C'>_A'>_A'>_A'>OvKA'>DA'>E'>A*;   F'>GHIJA_(KOvKLMNOENDB