PK Ј5 acm/graphics/PK Ј5QPacm/graphics/G3DRect.class-G()V(DD)V(DDDDZ)V acm/graphics/G3DRect Code(DDDD)V  acm/graphics/GRect  isRaisedZ  paint(Ljava/awt/Graphics;)V getAWTBounds()Ljava/awt/Rectangle;  isFilled()Z   getFillColor()Ljava/awt/Color;   setColor(Ljava/awt/Color;)V "#java/awt/Graphics% &$xI ()java/awt/Rectangle+ ,*y .) ,/width 1) ,2height 4) ,5 fill3DRect(IIIIZ)V 78 &9getColor ;acm/graphics/GObject= >< draw3DRect @8 &A setRaised(Z)V SourceFile G3DRect.java!   *')    *')   *')*  YM*M*++*!'+,-,0,3,6*:+*?'+,-,0,3,6*BCD * *EFPK Ј5kY acm/graphics/ArcRenderer.class-()V(Lacm/graphics/GObject;)V java/lang/Object targetLacm/graphics/GObject; acm/graphics/ArcRenderer java/awt/Polygon polyLjava/awt/Polygon;   cacheValidZ  Codedraw(Ljava/awt/Graphics;)V validateCache  acm/graphics/GFillable isFilled()Z "# !$ getFillColor()Ljava/awt/Color; &' !(setColor(Ljava/awt/Color;)V *+java/awt/Graphics- .,xpoints[I 01 2ypoints 41 5npointsI 78 9 fillPolygon([I[II)V ;< .=getColor ?'acm/graphics/GObjectA B@ drawPolygon D< .Eacm/graphics/GArcG drawPolyline I< .J@vacm/graphics/GOvalNacm/graphics/GRoundRectP getBounds()Lacm/graphics/GRectangle; RS BTgetFrameRectangle VS HW getStartAngle()D YZ H[ getSweepAngle ]Z H^oldStartD `a boldSweep da egetX gZacm/graphics/GRectanglei jhgetY lZ jmgetWidth oZ jp getHeight rZ js oldBoundsLacm/graphics/GRectangle; uv w getArcWidth yZ Qzround(D)I |}acm/graphics/GMath ~ getArcHeight Z Q@>haddPoint(II)V @VaddArc (DDDDDD)V @f@px0 8 y0 8 movePoly @v =pmax(DD)D java/lang/Math atan2  toRadians(D)D cos sin EPSILON ConstantValue SourceFile GArc.java  a 88uv`ada&**+*Y***!%S+*!)/+*3*6*:>+*C/+*3*6*:FD*H!+*3*6*:dK+*3*6*:F LIL9*O *Q*UL7*H:XL\I_9(*c *f*++k9+n9+q9 +t9    * *xq *xt-*:*Q*Q:{99*occc** cg* cg cg* cgN*  (*H5* occ occ*(c*f**3.g**6.g*+x*xk*xn*cc*+x*!o9 o9o9'c9)c9   c9  w9  L9 9 o6 o9 96Ckc9k kg9*ccc9bV*3.*dd>*6.*dd66#*3\.`O*6\.`O*:ױPK Ј5*acm/graphics/GArc.class-()V ARC_TOLERANCED@(DDDD)V (DDDDDD)V  acm/graphics/GArc Code acm/graphics/GObject  frameWidth   frameHeight  arcStart  arcSweep   setLocation(DD)V  !acm/graphics/ArcRenderer#(Lacm/graphics/GObject;)V % $&rendererLacm/graphics/ArcRenderer; () * setStartAngle(D)Vrepaint . / getStartAngle()D setSweepAngle getSweepAngle getStartPoint()Lacm/graphics/GPoint; getArcPoint(D)Lacm/graphics/GPoint; 78 9 getEndPointpaint(Ljava/awt/Graphics;)V getComponent()Ljava/awt/Component; >? @acm/graphics/GCanvasBgetNativeArcFlag()Z DE CFdraw H= $I getAWTBounds()Ljava/awt/Rectangle; KL MgetX O2 P@round(D)I TUacm/graphics/GMathW XVgetY Z2 [isFilled ]E ^ getFillColor()Ljava/awt/Color; `a bsetColor(Ljava/awt/Color;)V dejava/awt/Graphicsg hfxI jkjava/awt/Rectanglem nly pk nqwidth sk ntheight vk nwfillArc (IIIIII)V yz h{getColor }a ~drawArc z htoPoint()Ljava/awt/Point; acm/graphics/GPoint java/awt/Point l qdrawLine(IIII)V h getBounds()Lacm/graphics/GRectangle; cosDegrees(D)D X sinDegrees Xmin(DD)D java/lang/Math max  containsAngle(D)Z @V@f@pacm/graphics/GRectangle  contains(DD)Zabs atan2  toDegrees XsetFrameRectangle(Lacm/graphics/GRectangle;)V P [getWidth 2  getHeight 2  getFrameRectanglescale  setFilled(Z)VZ ]  setFillColor fillColorLjava/awt/Color;  n paramString()Ljava/lang/String; indexOf(I)I java/lang/String  substring(I)Ljava/lang/String; java/lang/StringBufferframe=((Ljava/lang/String;)V  append(D)Ljava/lang/StringBuffer; , ,(Ljava/lang/String;)Ljava/lang/StringBuffer; )toString valueOf&(Ljava/lang/Object;)Ljava/lang/String; , start=, sweep=   12  42  @v ConstantValue SourceFileacm/graphics/GFillableacm/graphics/GScalable GArc.java!  ]() *')  ; /**** * *')"*$Y*'+,- *'*012*3- *'*042*56 **:;6***c:<=  *AM,C,CG*++J*NN*Q*RocY6*\*RocY6*Y6*Y6*_+*ci+-o-r-u-x|+*i+-o-r-u-x*::+*`:: +  +-o-r-u-x  *RoH*RoJ*Q'c9*\)c9*'kc9 *)kg9 **c'kc9 **c)kg9  9  9 9 9* 'c9* )g9* 'g9* )c9*_'9999Ygcgc*Ro9*Ro9 '*Qcg9 )*\cg9   kko  kkoc9 *_  #cRoo9 g* w  ***')"! *++++ŶDZ$ Y*Q*\** %*Y'k*Y)k*0-*''˱ **0]E*Ьe *+*0`a* **հKL0$nY*QY*\Y*Y*Yװ*L++)`L*MY,,,¶,ŶNY-**NY-+78K ?*RoJ*Ro9*Q)c9*\c9 Y)'kc 'kg*** cJ* 9 ' 'w sg' sH) )w sg) sJ)c ')')c g') ')cPK Ј5X66acm/graphics/GMouseEvent.class-a()V1(Ljava/lang/Object;ILjava/awt/event/MouseEvent;)V getComponent()Ljava/awt/Component; java/awt/event/ComponentEvent getWhen()J java/awt/event/InputEvent   getModifiers()I  getX java/awt/event/MouseEvent getY   getClickCount  isPopupTrigger()Z ! "(Ljava/awt/Component;IJIIIIZ)V $ %effectiveSourceLjava/lang/Object; '(acm/graphics/GMouseEvent* +)Code getSource()Ljava/lang/Object; ./java/util/EventObject1 20java/awt/Component4toString()Ljava/lang/String;java/lang/StringBuffer8getClass()Ljava/lang/Class; :;java/lang/Object= ><getName @7java/lang/ClassB CAvalueOf&(Ljava/lang/Object;)Ljava/lang/String; EFjava/lang/StringH IG(Ljava/lang/String;)V K 9L[Nappend,(Ljava/lang/String;)Ljava/lang/StringBuffer; PQ 9R paramString T7 U] on W +0,(Ljava/lang/Object;)Ljava/lang/StringBuffer; PZ 9[ 67 9] SourceFile GCanvas.java +'(-3 '*- ------#&*+,./-*,-*3567-9-9Y*?DJMOS*VSXS*Y\^_`PK ш5QBLL"acm/graphics/GCanvasListener.class->()V(Lacm/graphics/GCanvas;)V java/lang/Object gCanvasLacm/graphics/GCanvas; acm/graphics/GCanvasListener Code mouseClicked(Ljava/awt/event/MouseEvent;)VdispatchMouseEvent acm/graphics/GCanvas  mousePressed requestFocus java/awt/Component  mouseReleased mouseEntered mouseExited mouseDragged mouseMoved focusGained(Ljava/awt/event/FocusEvent;)V focusLostcomponentResized"(Ljava/awt/event/ComponentEvent;)VinitOffscreenImage ' ( isShowing()Z *+ ,repaint . /componentHiddencomponentMovedcomponentShown SourceFilejava/awt/event/FocusListener5java/awt/event/MouseListener7"java/awt/event/MouseMotionListener9 java/awt/event/ComponentListener; GCanvas.java 68:<  **+ *+**+ *+ *+ *+  *+! *+"# $# %&%*)*- *01& 2& 3& 4=PK ш5hacm/graphics/GCanvas.class-G()V java/awt/Container java/util/ArrayList contentsLjava/util/ArrayList; acm/graphics/GCanvas   enabledList  whiteLjava/awt/Color; java/awt/Color  setBackground(Ljava/awt/Color;)V java/awt/Component  setOpaque(Z)V ! "setAutoRepaintFlag $! % setLayout(Ljava/awt/LayoutManager;)V '( )acm/graphics/GCanvasListener+(Lacm/graphics/GCanvas;)V - ,.gCanvasListenerLacm/graphics/GCanvasListener; 01 2addFocusListener!(Ljava/awt/event/FocusListener;)V 45 6addComponentListener%(Ljava/awt/event/ComponentListener;)V 89 :addMouseListener!(Ljava/awt/event/MouseListener;)V <= >addMouseMotionListener'(Ljava/awt/event/MouseMotionListener;)V @A BCodeadd(Lacm/graphics/GObject;)V getParent()Lacm/graphics/GContainer; GHacm/graphics/GObjectJ KIremove MFacm/graphics/GContainerO PN setParent(Lacm/graphics/GContainer;)V RS KT(Ljava/lang/Object;)Z EV WareMouseListenersEnabled()Z YZ K[conditionalRepaint ] ^(Lacm/graphics/GObject;DD)V EF a setLocation(DD)V cd Ke.(Lacm/graphics/GObject;Lacm/graphics/GPoint;)VgetX()D hiacm/graphics/GPointk ljgetY ni lo E` q MVjava/util/AbstractCollectiont us removeAllclear x y w {repaint } ~*(Ljava/awt/Component;)Ljava/awt/Component; E getSize()Ljava/awt/Dimension; widthI java/awt/Dimension height getPreferredSize setSize(Ljava/awt/Dimension;)V (Ljava/awt/Component;DD)Vround(D)I acm/graphics/GMath (II)V c  ,(Ljava/awt/Component;Lacm/graphics/GPoint;)V E (Ljava/awt/Component;)V M getElementCount()Isize  getElement(I)Lacm/graphics/GObject;get(I)Ljava/lang/Object;  getElementAt(DD)Lacm/graphics/GObject;/(Ljava/util/ArrayList;DD)Lacm/graphics/GObject; -(Lacm/graphics/GPoint;)Lacm/graphics/GObject; iterator()Ljava/util/Iterator;(I)Ljava/util/Iterator; createIterator0(Lacm/graphics/GContainer;I)Ljava/util/Iterator; acm/graphics/GCompound opaqueZ isOpaquegetWidth getHeightpaint(Ljava/awt/Graphics;)V Z offscreenImageLjava/awt/Image; initOffscreenImage   getGraphics()Ljava/awt/Graphics; java/awt/Image  getBackground()Ljava/awt/Color; setColor java/awt/Graphics fillRect(IIII)V  getForeground  paintObject K drawImage3(Ljava/awt/Image;IILjava/awt/image/ImageObserver;)Z update  autoRepaint getAutoRepaintFlagsetNativeArcFlag nativeArcFlag getNativeArcFlag sendToFrontindexOf(Ljava/lang/Object;)I   M  sendToBack(ILjava/lang/Object;)V E   sendForwardmin(II)I java/lang/Math  sendBackwardmax  dispatchMouseEvent(Ljava/awt/event/MouseEvent;)V hjava/awt/event/MouseEvent  n  lastObjectLacm/graphics/GObject;  ! "acm/graphics/GMouseEvent$1(Ljava/lang/Object;ILjava/awt/event/MouseEvent;)V & %'fireMouseListeners ) K* dragObject ,! -getID /java/awt/AWTEvent1 20 isConsumed 4Zjava/awt/event/InputEvent6 75consume 9 7: createImage(II)Ljava/awt/Image; <= >updateEnabledListcontains(DD)Z AB KC SourceFile GCanvas.java!P 01 !,!  #Di]** Y * Y **#*&***,Y*/3**37**3;**3?**3CEFDWC*M,+L +L+Q+*U*+XW+\ *+XW,ç,ÿ*_6;E`D *+b+(fEgD*+,m,prMFD?+*M,*+vW*+vW+U,ç,ÿ*_#wD:&*L+*z*z+ç+ÿ*|*EDOC*+W+M, ,++N, ,-, ,-+,+ED +(*+WED*+,m,pMD-*M,*+,ç,ÿ*_ D*D *KD **')D *+m+pD*D*Ű !D **_ZD*ɬD*D*D+M*Й@*** *ԶL*N+*+--+**N-*66*K+-ç-ÿ*Й*,**W*,Mv{D*+$!D*ZD*!D*ZD*FDJ6*M,*+6*W*+XW,ç,ÿ*_). FDJ6*M,*+6*W*+ ,ç,ÿ*_). FDWC*M,*+6#*W**`+ ,ç,ÿ*_6;FDQ=*M,*+6*W*d+ ,ç,ÿ*_05D**++MN,*#8*#%Y*#+(N*#-+,%Y,+(N,-+*,#*.*.M,V+36H@ *.1 *,.*.%Y,+(N,-+--8+;DQ=*L+*N- -**--?+ç +ÿ:+é.3]D **@DE9*z*<="*KN-\ *-XW߱Dc O*:+d6 &+ K:  (D  :  çÿ:é <BEFPK ш5()V acm/graphics/GObject java/util/ArrayList contentsLjava/util/ArrayList; acm/graphics/GCompound  completeZ  Codeadd(Lacm/graphics/GObject;)Vacm/util/ErrorExceptionFYou can't add objects to a GCompound that has been marked as complete.(Ljava/lang/String;)V   getParent()Lacm/graphics/GContainer;  !remove #acm/graphics/GContainer% &$ setParent(Lacm/graphics/GContainer;)V () *(Ljava/lang/Object;)Z , -repaint / 0(Lacm/graphics/GObject;DD)V  3 setLocation(DD)V 56 7.(Lacm/graphics/GObject;Lacm/graphics/GPoint;)VgetX()D :;acm/graphics/GPoint= ><getY @; >A 2 CKYou can't remove objects from a GCompound that has been marked as complete.E #,java/util/AbstractCollectionH IG removeAllclear L MgetElementCount()Isize QP R getElement(I)Lacm/graphics/GObject;get(I)Ljava/lang/Object; VW X getElementAt(DD)Lacm/graphics/GObject; OP \ TU ^contains(DD)Z `a b-(Lacm/graphics/GPoint;)Lacm/graphics/GObject; Z[ eiterator()Ljava/util/Iterator;(I)Ljava/util/Iterator; gi jcreateIterator0(Lacm/graphics/GContainer;I)Ljava/util/Iterator; lm npaint(Ljava/awt/Graphics;)Vcreate()Ljava/awt/Graphics; rsjava/awt/Graphicsu vt <round(D)I yzacm/graphics/GMath| }{ A translate(II)V v paintObject q scale getComponent()Ljava/awt/Component; acm/graphics/GCanvasgetAutoRepaintFlag()Z setAutoRepaintFlag(Z)V acm/graphics/GScalable 6 (D)V  getBounds()Lacm/graphics/GRectangle;acm/graphics/GRectangle  (Lacm/graphics/GRectangle;)V   6 getCanvasPoint,(Lacm/graphics/GPoint;)Lacm/graphics/GPoint;(DD)Lacm/graphics/GPoint;  6 > getLocalPoint markAsComplete sendToFrontindexOf(Ljava/lang/Object;)I #W  sendToBack(ILjava/lang/Object;)V   sendForwardmin(II)I java/lang/Math  sendBackwardmax fireMouseListeners(Ljava/awt/event/MouseEvent;)VareMouseListenersEnabled   :Pjava/awt/event/MouseEvent @P Zd  lastObjectLacm/graphics/GObject; acm/graphics/GMouseEvent1(Ljava/lang/Object;ILjava/awt/event/MouseEvent;)V   dragObject getID Pjava/awt/AWTEvent  isConsumed java/awt/event/InputEvent consume  java/lang/Exceptionacm.graphics.GIteratorforName%(Ljava/lang/String;)Ljava/lang/Class; java/lang/Class acm.graphics.GContainerTYPELjava/lang/Class; java/lang/Integer java/lang/Object(I)V  getConstructor3([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;     newInstance'([Ljava/lang/Object;)Ljava/lang/Object; java/lang/reflect/Constructor java/util/Iterator.Unable to create an Iterator on this platform. SourceFileGCompound.java!& !** Y *XD* Y*M,+" +"+'+*+*+.W,ç,ÿ*17<2 *+4+(89*+,?,BD#G3* YF*M,*+JW++,ç,ÿ*1&+K@,* YF*L+*N+ç+ÿ*1$OP*STU *YZ[_ K*:*]d6"*_:  ')c  :çÿ:é 8>Zd *+?+Bfgh*kgi*opqdP+wL+*x~*~*M,*S66*Y+,ç,ÿGL6 }*:66*]d65*_:'xk)k8') *1*''pYL*M,*S668Y*YL+*Y,ç,ÿ+*x*+Z_`axd'*xg9)*g9*:  *S6 6 %* Yc 6     ç ÿ:  é QW *+?+BB6*:!:'xcH)cJ":ݻ>Y') *+?+BB6*:!:'xgH)gJ":ݻ>Y')*J6*M,*+6*W*+.W,ç,ÿ*1).J6*M,*+6*W*+,ç,ÿ*1).WC*M,*+6#*W**S`+,ç,ÿ*16;Q=*M,*+6*W*d+,ç,ÿ*105*ϙ *+ѱ>Y+Շ*xg+ׇ*gM*,N:-*ݥ<*Y*+:*-Y-+:-*-**N-I+6;3 *-*Y-+:-+jV*ϙ*M,*S66#*Y:ϙ <,ç ,ÿ:,éFK lm`LMYSYSNY*SYY S:,- :WY@@PK ш5#RKKacm/graphics/GIterator.class-=()V(Lacm/graphics/GContainer;I)V java/lang/Object dirI acm/graphics/GIterator acm/util/ErrorExceptionIllegal direction for iterator(Ljava/lang/String;)V  contLacm/graphics/GContainer;  index  getElementCount()I acm/graphics/GContainer ! nElements # $CodehasNext()Znext()Ljava/lang/Object; getElement(I)Lacm/graphics/GObject; +, !- nextElement()Lacm/graphics/GObject; )* 1acm/graphics/GObject3remove(Lacm/graphics/GObject;)V 56 !7 SourceFilejava/util/Iterator:GCompound.java ;  # &OC** Y*+**+"%'(&**%)*&E9***%*YZ`dd.**YZ`./0&*245&cW*****%*YdZdd.8 ***YdZ.8*Y%d%9()V BACK_TO_FRONTI FRONT_TO_BACKadd(Lacm/graphics/GObject;)V(Lacm/graphics/GObject;DD)V.(Lacm/graphics/GObject;Lacm/graphics/GPoint;)Vremove removeAllgetElementCount()I getElement(I)Lacm/graphics/GObject; getElementAt(DD)Lacm/graphics/GObject;-(Lacm/graphics/GPoint;)Lacm/graphics/GObject; ConstantValue SourceFileacm/graphics/GContainerjava/lang/ObjectGContainer.java      PK ш5C޵acm/graphics/GDimension.class-V()V(DD)V acm/graphics/GDimension Code java/lang/Object myWidthD  myHeight  (Lacm/graphics/GDimension;)V(Ljava/awt/Dimension;)VwidthI java/awt/Dimension height  getWidth()D getHeightsetSize # $getSize()Lacm/graphics/GDimension; toDimension()Ljava/awt/Dimension;round(D)J *+java/lang/Math- .,(II)V 0 1hashCode()Ijava/lang/Float5(F)V 7 68 34 6:equals(Ljava/lang/Object;)ZtoString()Ljava/lang/String;java/lang/StringBuffer@(B(Ljava/lang/String;)V D AEappend(F)Ljava/lang/StringBuffer; GH AIxK,(Ljava/lang/String;)Ljava/lang/StringBuffer; GM AN)P >? AR SourceFileGDimension.java!   * * *'*)  *++ *++ ! *"! *#  *'*)#  *++%&' Y**() $Y*/*/234 , 6Y*9;6Y*9;<= <0++M*,*,>? 3'AYCF*JLO*JQOSTUPK ш5RTaacm/graphics/GFillable.class-()V setFilled(Z)VisFilled()Z setFillColor(Ljava/awt/Color;)V getFillColor()Ljava/awt/Color; SourceFileacm/graphics/GFillable java/lang/ObjectGFillable.java   PK ш5-Y Y acm/graphics/GImage.class-()V(Ljava/awt/Image;)V(Ljava/awt/Image;DD)V acm/graphics/GImage Code(Ljava/lang/String;)V(Ljava/lang/String;DD)V   acm/graphics/GObject setImage   setLocation(DD)V   loadImage$(Ljava/lang/String;)Ljava/awt/Image; acm/util/MediaTools "(Ljava/awt/Image;)Ljava/awt/Image;  !myImageLjava/awt/Image; #$ % determineSize ' (getImage()Ljava/awt/Image;paint(Ljava/awt/Graphics;)V getComponent()Ljava/awt/Component; ./ 0getImageObserver 2/ 3 getAWTBounds()Ljava/awt/Rectangle; 56 7getObjectColor()Ljava/awt/Color; 9: ;xI =>java/awt/Rectangle@ A?y C> ADwidth F> AGheight I> AJ drawImage5(Ljava/awt/Image;IIIILjava/awt/image/ImageObserver;)Z LMjava/awt/GraphicsO PNE(Ljava/awt/Image;IIIILjava/awt/Color;Ljava/awt/image/ImageObserver;)Z LR PSsetSizemyWidthD VW XmyHeight ZW [repaint ] ^(Lacm/graphics/GDimension;)VgetWidth()D abacm/graphics/GDimensiond ec getHeight gb eh U jgetSize()Lacm/graphics/GDimension;  en setBounds(DDDD)V(Lacm/graphics/GRectangle;)VgetX sbacm/graphics/GRectangleu vtgetY xb vy vc vh pq } getBounds()Lacm/graphics/GRectangle; t y q vscale(D)V  round(D)I acm/graphics/GMath (IIII)V  AsizeDeterminedZ !(Ljava/awt/image/ImageObserver;)I ajava/awt/Image g  SourceFileacm/graphics/GResizableacm/graphics/GScalable GImage.java!#$VWZW *+   *+ **+*(   *+(   *+"&*)   *+*+ *&,- nb*1M,4M*&P,L*8N*<: +*&-B-E-H-K,QW+*&-B-E-H-K,TWU *'Y*)\*_U`  *+f+iklm eY*Y*\opq  *Y*\*')pr ! *+w+z+{+|~ ( *)vY***Y*\ %*YY'kY*Y\)k\*_ *''56 4(*)AY***Y*\' A5**1L+4L**&+Y**&+\*PK ш5:v v acm/graphics/GLabel.class-()V java/awt/FontDefault(Ljava/lang/String;II)V    DEFAULT_FONTLjava/awt/Font; acm/graphics/GLabel  getImageObserver()Ljava/awt/Component; acm/util/MediaTools DUMMY_COMPONENTLjava/awt/Component;  Code(Ljava/lang/String;)V(Ljava/lang/String;DD)V   acm/graphics/GObject! " labelLjava/lang/String; $% &setFont(Ljava/awt/Font;)V () * setLocation(DD)V ,- ".getStandardFont (Ljava/awt/Font;)Ljava/awt/Font; 01acm/util/JTFTools3 42 labelFont 6 7repaint 9 ":getFont()Ljava/awt/Font; <= > decodeFont2(Ljava/lang/String;Ljava/awt/Font;)Ljava/awt/Font; @A 4BsetLabelgetLabel()Ljava/lang/String;paint(Ljava/awt/Graphics;)Vjava/awt/GraphicsI J*getX()D LM "Nround(D)I PQacm/graphics/GMathS TRgetY VM "W drawString Y JZgetWidthgetFontMetrics()Ljava/awt/FontMetrics; ]^ _ stringWidth(Ljava/lang/String;)I abjava/awt/FontMetricsd ec getHeight()I gh ei getAscent kh el getDescent nh eo getComponent q "r'(Ljava/awt/Font;)Ljava/awt/FontMetrics; ]tjava/awt/Componentv wu getBounds()Lacm/graphics/GRectangle;acm/graphics/GRectangle{ kM } \M  gM (DDDD)V  | paramStringjava/lang/StringBuffer F "valueOf&(Ljava/lang/Object;)Ljava/lang/String; java/lang/String   , string="append,(Ljava/lang/String;)Ljava/lang/StringBuffer; "toString F  SourceFile GLabel.java!" $%6 "Y *+$*#*+'*+*(/() *+58*;( *+*?C+<=*8D *+'*;EF*'GH++*8K+*'*OU*XU[\M *`*'fgM *`jkM *`mnM *`p]^"*sL+L+*8xyz) |Y*O*X*~g**F/#Y**'PK ш5&_1 1 acm/graphics/GLine.class-()VLINE_TOLERANCED?(DDDD)V acm/graphics/GObject  setLocation(DD)V  dx acm/graphics/GLine dy  Codepaint(Ljava/awt/Graphics;)VgetX()D  getY  !round(D)I #$acm/graphics/GMath& '%drawLine(IIII)V )*java/awt/Graphics, -+ getBounds()Lacm/graphics/GRectangle;min(DD)D 12java/lang/Math4 53acm/graphics/GRectangle7abs(D)D 9: 5;  8= setStartPoint getStartPoint()Lacm/graphics/GPoint; getLocation BA C setEndPointrepaint F G getEndPointacm/graphics/GPointJ  KLscale(D)V N Pcontains(DD)Z@distanceSquared(DDDD)D VW Xmax Z2 5[ paramString()Ljava/lang/String; ]^ _indexOf(I)I abjava/lang/Stringd ec substring(I)Ljava/lang/String; gh ei @A kjava/lang/StringBuffermstart=(o(Ljava/lang/String;)V q nr Kappend(D)Ljava/lang/StringBuffer; uv nw, y,(Ljava/lang/String;)Ljava/lang/StringBuffer; u{ n| K!)toString ^ n IA valueOf&(Ljava/lang/Object;)Ljava/lang/String; e, end=( ConstantValue SourceFileacm/graphics/GScalable GLine.java!  ' * *')*'g*)g8,*I*"9+((((*c(*c(./0J >***c6H*"*"*c6J8Y')*<c*<c>?1%*Y*'gc*Y*")gc*')@A*DE%*'*g*)*"g*HIA&KY**c*"*cMN%*Y'k*Y)k*HNO*''QRS*9*"9*c9 *c9 T9 *')Y *')  Y ' 6g' \c) 6g) \c f  f 'g gk)g gkc*  Yo9*') gkc gkcY ]^*`L++)f`jL*lMnYps,txz},~x}N*MnY-s},txz},~x}NnY-s+}VW  'g'gk)g)gkcPK ш5,UUacm/graphics/GMath.class-:()V java/lang/Object Coderound(D)I(D)J java/lang/Math   sinDegrees(D)D toRadians acm/graphics/GMath sin   cosDegreescos   tanDegrees    ! toDegrees@f@ !TD-distance(DD)Dsqrt * +(DDDD)D () .angleatan2 1) 2 # 4 0) 6 SourceFile GMath.java! * & & &  & &"o # &$k&o  &&k$o () &&k((kc, (- &g(g/ 0)$& ((w&35 0- &g(g789PK ш5;. . acm/graphics/GObject.class-()V java/lang/Object  isVisibleZ  acm/graphics/GObject mouseListenersEnabled  Codepaint(Ljava/awt/Graphics;)V getBounds()Lacm/graphics/GRectangle; setLocation(DD)VxcD  yc  repaint  (Lacm/graphics/GPoint;)VgetX()D #$acm/graphics/GPoint& '%getY )$ '*  , getLocation()Lacm/graphics/GPoint;  '0move movePolar@ !TD-@fcos(D)D 89java/lang/Math; <:sin >9 <? 2 AgetSize()Lacm/graphics/GDimension;  Eacm/graphics/GDimensionGgetWidth I$acm/graphics/GRectangleK LJ getHeight N$ LO H0contains(DD)Zround(D)I TUacm/graphics/GMathW XV RS LZ(Lacm/graphics/GPoint;)Z Z sendToFrontmyParentLacm/graphics/GContainer; _` aacm/graphics/GCanvasc(Lacm/graphics/GObject;)V ^e dfacm/graphics/GCompoundh ifjava/lang/ExceptionkgetClass()Ljava/lang/Class; mn ojava/lang/Classqacm.graphics.GObjectsforName%(Ljava/lang/String;)Ljava/lang/Class; uv rw^ getMethod@(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; z{ r|invoke9(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; ~java/lang/reflect/Method updateEnabledList   sendToBack e d i sendForward e d i sendBackward e d isetColor(Ljava/awt/Color;)VcolorLjava/awt/Color; getColor()Ljava/awt/Color; getParent()Lacm/graphics/GContainer; java/awt/Component getForeground black java/awt/Color  setVisible(Z)V()ZtoString()Ljava/lang/String;getName r acm.graphics. startsWith(Ljava/lang/String;)Z java/lang/String length()I  substring(I)Ljava/lang/String; java/lang/StringBuffervalueOf&(Ljava/lang/Object;)Ljava/lang/String; (Ljava/lang/String;)V  [append,(Ljava/lang/String;)Ljava/lang/StringBuffer;  paramString ] pause(D)V acm/util/JTFTools addMouseListener!(Ljava/awt/event/MouseListener;)V mouseListenerLjava/awt/event/MouseListener; add\(Ljava/awt/event/MouseListener;Ljava/awt/event/MouseListener;)Ljava/awt/event/MouseListener; java/awt/AWTEventMulticaster removeMouseListenerremove addMouseMotionListener'(Ljava/awt/event/MouseMotionListener;)VmouseMotionListener$Ljava/awt/event/MouseMotionListener; n(Ljava/awt/event/MouseMotionListener;Ljava/awt/event/MouseMotionListener;)Ljava/awt/event/MouseMotionListener; removeMouseMotionListener addActionListener"(Ljava/awt/event/ActionListener;)VactionListenerLjava/awt/event/ActionListener; _(Ljava/awt/event/ActionListener;Ljava/awt/event/ActionListener;)Ljava/awt/event/ActionListener;  removeActionListener  fireActionEventjava/awt/event/ActionEvent ((Ljava/lang/Object;ILjava/lang/String;)V    (Ljava/awt/event/ActionEvent;)V  actionPerformed java/awt/event/ActionListener  setParent(Lacm/graphics/GContainer;)VfireMouseListeners(Ljava/awt/event/MouseEvent;)VgetID java/awt/AWTEvent  mousePressed java/awt/event/MouseListener! "  mouseReleased $ "% mouseClicked ' "( mouseExited * "+ mouseEntered - ". mouseMoved 0"java/awt/event/MouseMotionListener2 31 mouseDragged 5 36areMouseListenersEnabledstart([Ljava/lang/String;)V 9: ;acm.program.GraphicsProgram=startGraphicsProgram?acm/util/ErrorExceptionA(Ljava/lang/Exception;)V C BDgetObjectColorGacm/graphics/GResizableIbounds=(K L%(D)Ljava/lang/StringBuffer; N O, Q L*)T ./ V location=(X, color=Z colorName$(Ljava/awt/Color;)Ljava/lang/String; \] ^acm/graphics/GFillable` , filled=bisFilled d ae(Z)Ljava/lang/StringBuffer; g h getFillColor j ak , fillColor=mequals(Ljava/lang/Object;)Z op qBLACKsblue u vBLUExcyan z {CYAN}darkGray   DARK_GRAYgray  GRAYgreen  GREEN lightGray   LIGHT_GRAYmagenta  MAGENTAorange  ORANGEpink  PINKred  REDwhite  WHITEyellow  YELLOW0xgetRGB  (II)Ljava/lang/String; java/lang/Integer  toUpperCase   paintObject   java/awt/Graphics     getComponent()Ljava/awt/Component;   dconditionalRepaint  d SourceFilejava/lang/Cloneable GObject.java!  _`  .** **'*)*!" *+(++-./'Y**1#$*)$*2**'c*)c-3+)4k6o9*'=k'w@kBCD!*FLHY+M+PQI$*FMN$*FPRS*F'Y)Y[R\ *+(++]^*b*bd*bd*gY*bi*bi*jA*bpLrYtxSMY*SN+y,}:*b-WW**8orl*b*bd*bd*Y*bi*bi*A*bpLrYtxSMY*SN+,}:*b-WW**8orl*b*bd*bd*Y*bi*bi*A*bpLrYtxSMY*SN+,}:*b-WW**8orl*b*bd*bd*Y*bi*bi*A*bpLrYtxSMY*SN+,}:*b-WW**8orl *+*!D8*L*+M, , L, ,++ * *!* G;*pL+ +LY+ɷζ*ն׶Ҷٰ*b'߱"**+** **+"**+** **+ **+ **+* Y*+ * *+*+b+T,@|h**+#{*t*+&g*`*+)S*L*+,?*8*+/+*$*+4**+78*9*<9:bN>xMtxNrY-SY+pS:Y*SY+S:,@}:W MBY,E@ClF*HL*JT*FMY+ɷL,MPR,SPR,MPR,PPUҶL7*WMY+ɷY,(PR,+PUҶL*"Y+ɷ[*_ҶL*aVY+ɷc*afiL*alM,',*Y+ɷn,_ҶL+ \]*rt*wry*|r~*r*r*r*r*r*r*r*r*r*rY*~Ҷٰ:.*+M* +**+*+,DZ3'*L + L+ + + *L+d +dα2&*L + L+ +d +dѱPK ш5#Y  acm/graphics/GOval.class-()V(DD)V(DDDD)V acm/graphics/GOval Code acm/graphics/GObject checkForArcRendering()Z  useArcsZ   frameWidthD   frameHeight   setLocation  acm/graphics/ArcRenderer!(Lacm/graphics/GObject;)V # "$rendererLacm/graphics/ArcRenderer; &' (contains(DD)Z@getX()D ./ 0getY 2/ 3paint(Ljava/awt/Graphics;)V getComponent()Ljava/awt/Component; 78 9acm/graphics/GCanvas;getNativeArcFlag = <>draw @6 "A getAWTBounds()Ljava/awt/Rectangle; CD EisFilled G H getFillColor()Ljava/awt/Color; JK LsetColor(Ljava/awt/Color;)V NOjava/awt/GraphicsQ RPxI TUjava/awt/RectangleW XVy ZU X[width ]U X^height `U XafillArc (IIIIII)V cd RegetColor gK hdrawArc jd RkfillOval(IIII)V mn RodrawOval qn Rr setFilled(Z)V G vrepaint x y setFillColor fillColorLjava/awt/Color; |} ~setSize(Lacm/graphics/GDimension;)VgetWidth /acm/graphics/GDimension  getHeight /  getSize()Lacm/graphics/GDimension;   setBounds(Lacm/graphics/GRectangle;)Vacm/graphics/GRectangle 0 3   getBounds()Lacm/graphics/GRectangle; scale(D)V  round(D)I acm/graphics/GMath n XisMac acm/util/Platform  SourceFileacm/graphics/GFillableacm/graphics/GResizableacm/graphics/GScalable GOval.java! G|}&'   *')  7 +******') *"Y*%)*+ h \*,o9*,o9 '*1cg9 )*4cg9   kko  kkoc56 *:M,<,<?*)+B*FN*M*I++*MS+-Y-\-_-bhf+*iS+-Y-\-_-bhlB*I'+*MS+-Y-\-_-bp+*iS+-Y-\-_-bstu  *w*zG *w{O  *+*zJK * *i* *'*)*z  *++ Y**  ***')  ! *++++ ( Y*1*4*c*c/ */ * %*Y'k*Y)k*z *''CD 0$XY*1*4** PK ш5{8acm/graphics/PenImage.class-()Vjava/lang/StringP4749463839614F006500F70000FFFFFF980098339999989800111111222222000054CBFFCB003298P0033660033CC0033FE00323266330066660000659800989800CC9900FE99329800659800CC0099FEP0098659898999999CC9900FE98009800329800659900CC9800FE3399CB3399FF9999339898659832 P0098650099339998659833CB9833FF9999CC0099FE00336699656698CC9898FF9999323200336600 P32003233006632009833339965009866339900663300983200666600986500CC3300FE3200CC6600 PFE65CCCC98CCFF99FFCC99FFFF993300CC3200FE6600CC6500FECC0033CC0066FE0032FE00653399P33339966669933669865CC00CCCB00FEFE00CBFE00FE6699CC6598FF9898CC9999FFCB9833CC9966PFF9933FF9865333333326532323265326565660033653232660066653265CC3300CC6600FE3200FEP65000066CC0099CC0066FE0098FE00CCCC00FECB00CCFE00FEFE33CC0033FE0066CC0066FE00CB33P98CC6699FF3399FF659866CC9965FF9898CC9899FF99CCCC00CCFE00FECB00FEFE00993333996633P9933669865659833CB9966CC9933FF9865FF33CBCB33FFCC33CCFF33FFFF99CB3399FF3399CC6698PFF65CC98CCCCCCCCCC99FFCBCBFFFF99CCFFCBCBFF99FFFFCBFF3333CB3366CB3333FF3366FF6533PCB6666CC6633FF6565FFCB3333CB6533CB3365CC6666FF3333FF6633FF3366FF656533CB3333FF33P33CB6633FF6666CB3366FF3366CC6665FF65CB33CBCC66CCCC33FFCC65FFFF33CCFF65CCFF33FFFFP65FF66CCCC65FFCC65CCFF65FFFF98CCCC99FFCC99CCFF99FFFFCBCB33CCFF33CCCC66CCFF65FFCC!P33FFFF33FFCC65FFFF65444444656532DDDDDDCBFFFFFFFFCBEEEEEE100000980000001000660000#P000098000066777777888888AAAAAABBBBBB5555556666660000100000224400005400000000CC00%P00DC0000EE0000FE00003200004400880000980000AA0000BA0000CC0000DC0000EE0000FE00CC00'P00DC0000EE0000FE0000004400005400006600007600220000320000AA0000BA0000002200003200)P7600008800000000AA0000BA00007600008800000021F90401000000002C000000004F006500C7FF+PFFFF980098339999989800111111222222000054CBFFCB0032980033660033CC0033FE0032326633-P0066660000659800989800CC9900FE99329800659800CC0099FE0098659898999999CC9900FE9800/P9800329800659900CC9800FE3399CB3399FF99993398986598320098650099339998659833CB98331PFF9999CC0099FE00336699656698CC9898FF999932320033660032003233006632009833339965003P9866339900663300983200666600986500CC3300FE3200CC6600FE65CCCC98CCFF99FFCC99FFFF995P3300CC3200FE6600CC6500FECC0033CC0066FE0032FE0065339933339966669933669865CC00CCCB7P00FEFE00CBFE00FE6699CC6598FF9898CC9999FFCB9833CC9966FF9933FF986533333332653232329P65326565660033653232660066653265CC3300CC6600FE3200FE65000066CC0099CC0066FE0098FE;P00CCCC00FECB00CCFE00FEFE33CC0033FE0066CC0066FE00CB3398CC6699FF3399FF659866CC9965=PFF9898CC9899FF99CCCC00CCFE00FECB00FEFE009933339966339933669865659833CB9966CC9933?PFF9865FF33CBCB33FFCC33CCFF33FFFF99CB3399FF3399CC6698FF65CC98CCCCCCCCCC99FFCBCBFFAPFF99CCFFCBCBFF99FFFFCBFF3333CB3366CB3333FF3366FF6533CB6666CC6633FF6565FFCB3333CBCP6533CB3365CC6666FF3333FF6633FF3366FF656533CB3333FF3333CB6633FF6666CB3366FF3366CCEP6665FF65CB33CBCC66CCCC33FFCC65FFFF33CCFF65CCFF33FFFF65FF66CCCC65FFCC65CCFF65FFFFGP98CCCC99FFCC99CCFF99FFFFCBCB33CCFF33CCCC66CCFF65FFCC33FFFF33FFCC65FFFF6544444465IP6532DDDDDDCBFFFFFFFFCBEEEEEE100000980000001000660000000098000066777777888888AAAAKPAABBBBBB5555556666660000100000224400005400000000CC0000DC0000EE0000FE000032000044MP00880000980000AA0000BA0000CC0000DC0000EE0000FE00CC0000DC0000EE0000FE000000440000OP5400006600007600220000320000AA0000BA00000022000032007600008800000000AA0000BA0000QP7600008800000008FF0001081C48B0A0C18308132A5CA81012248610234A640809DBBF2DD830E431SPD1451B868920432684C4022306483F5AB0E882ADE5968F226386C40026E38F479030E8C45072CB0FUP9940252EEB226265476D0CFE29C5F630A8538818B6B4C00869D9D3AB22B7FC636115ABD7AF60C38AWP1D4BB6ACD9B368D3AA5DCB166B450334E23280D916E48F2D1E7F406AA11792096D2CEA4A848491C5YP8FBE3FF23CFA81C10B5DC10A317089CAC221DF9C5E5E428EF8A30B06315D0C30D0267573C8652CA2[P3E36CDBAB5EBD7B063CB9E4DBBB6EDC1D80C6CD9D2F4B6418E09BAD0B04143B3EF81183A62435CA5]P4B8CC0C73B6364BCF3824E9FBE519BD49B27A76516CB6F57FFC4963AE70A315EC0E0DD52597C4B9D_P7A5B3844597235ED962CE2D2E8D245065E6C941C0700249E61D3C50CA46504C901020A74D7671D79aPD15B830E7A661C850661808D18D860E8E187208628E288249668E28928A6A8E28A6C2D13156F2326cP275C0C4C819887180CE8C7D28402A2C6400C5BD8E0455C5D74D5E00F167551194A5EF0C7608384BDeP601824BBC8971C76024615C305F275F74877D878F1D37184B177521E3AB160020BE859729C760A22gPF6C32E4876C1236D5191E7D04D7BE6D4451E6416261F75D571E8E66DA8BDA7174F8CB2B09591B60DiP95D1231718888D132C8077E16D26607381097ACD199F81F6D1462084CFB17041A65B743126996068kP5728DC51EBDD699B8618C4B5C58F5B00D95E83B8CEFADF931882975C71A086F81E035B98606B8382mP8057638C196D11E088E3C148A2815892F8CFB42C862BEEB8E4966BEEB9E8A6ABEEBAECB6EBEEBBF0oPC62BEFBCF4CA1B100021FF0B4D414347436F6E2004031039000000015772697474656E2062792047qP4946436F6E76657274657220322E342E33206F66204D6F6E6461792C204D61792032352C20313939s38003BuHEX_DATA[Ljava/lang/String; wxacm/graphics/PenImagez {yCodegetImage()Ljava/awt/Image; createImage%([Ljava/lang/String;)Ljava/awt/Image; acm/util/MediaTools  java/lang/Object  SourceFile GPen.java {wx}eY9YSYSY SY SYSYSYSYSYSY SY SY SY SY  SY"SY$SY&SY(SY*SY,SY.SY0SY2SY4SY6SY8SY:SYSY@SYBSYDSY FSY!HSY"JSY#LSY$NSY%PSY&RSY'TSY(VSY)XSY*ZSY+\SY,^SY-`SY.bSY/dSY0fSY1hSY2jSY3lSY4nSY5pSY6rSY7tSY8vS| ~}|}*PK ш5΅v#acm/graphics/EndRegionElement.class-7()V acm/graphics/PathElement Codepaint.(Ljava/awt/Graphics;Lacm/graphics/PathState;)VgetColor()Ljava/awt/Color; java/awt/Graphics   fillColorLjava/awt/Color; acm/graphics/PathState setColor(Ljava/awt/Color;)V  regionLjava/awt/Polygon;  xpoints[I  java/awt/Polygon" #!ypoints % #&npointsI () #* fillPolygon([I[II)V ,- . drawPolygon 0- 1 SourceFileacm/graphics/EndRegionElement4 GPen.java 5* VJ+N+,+,$,',+/+-+,$,',+2,36PK ш5="acm/graphics/SetColorElement.class-()V(Ljava/awt/Color;)V acm/graphics/PathElement myColorLjava/awt/Color; acm/graphics/SetColorElement Codepaint.(Ljava/awt/Graphics;Lacm/graphics/PathState;)VsetColor java/awt/Graphics  SourceFile GPen.java   **+ +*PK ш5K#acm/graphics/FinalPathElement.class-(()V acm/graphics/PathElement Codepaint.(Ljava/awt/Graphics;Lacm/graphics/PathState;)VregionLjava/awt/Polygon; acm/graphics/PathState  xpoints[I java/awt/Polygon ypoints  npointsI   drawPolyline([I[II)V java/awt/Graphics! "  SourceFileacm/graphics/FinalPathElement% GPen.java &* -!,+,,,#$'PK ш5L#U::acm/graphics/PathState.class-()VcxDcysxsyregionLjava/awt/Polygon; fillColorLjava/awt/Color; java/lang/Object  Code SourceFileacm/graphics/PathState GPen.java   *PK ш5<7%acm/graphics/StartRegionElement.class- ()V(Ljava/awt/Color;)V acm/graphics/PathElement myColorLjava/awt/Color; acm/graphics/StartRegionElement Codepaint.(Ljava/awt/Graphics;Lacm/graphics/PathState;)Vjava/awt/Polygon regionLjava/awt/Polygon; acm/graphics/PathState  fillColor   SourceFile GPen.java   **+ ,Y,*PK ш5Rt!!"acm/graphics/DrawLineElement.class-J()V(DD)V acm/graphics/PathElement deltaXD acm/graphics/DrawLineElement deltaY  Codepaint.(Ljava/awt/Graphics;Lacm/graphics/PathState;)Vsx  acm/graphics/PathState cx  round(D)I acm/graphics/GMath !sy # $cy & 'regionLjava/awt/Polygon; )* +drawLine(IIII)V -.java/awt/Graphics0 1/addPoint(II)V 34java/awt/Polygon6 75 updateBounds4(Lacm/graphics/GRectangle;Lacm/graphics/PathState;)VgetWidth()D ;<acm/graphics/GRectangle> ?= setBounds(DDDD)V AB ?Cadd E ?F SourceFile GPen.java   **'*)~r,,k">,%,(k"6,Y*c,Y(*c(,,k"6,%,(k"6,,+2,,89:w k+@+,,k,%,(kD+,,k,%,(kG,Y*c,Y(*c(+,,k,%,(kGHIPK ш5$%acm/graphics/SetLocationElement.class-3()V(DD)V acm/graphics/PathElement cxD acm/graphics/SetLocationElement cy  Codepaint.(Ljava/awt/Graphics;Lacm/graphics/PathState;)Vacm/graphics/PathState  regionLjava/awt/Polygon;  sx  round(D)I !acm/graphics/GMath# $"sy & 'addPoint(II)V )*java/awt/Polygon, -+ updateBounds4(Lacm/graphics/GRectangle;Lacm/graphics/PathState;)V SourceFile GPen.java   **'*)C7,*,*,",,*k%,(*k%./0,*,*12PK ш5WLurracm/graphics/GPen.class-()Vacm/graphics/FinalPathElement   finalElementLacm/graphics/PathElement;  acm/graphics/GPen Codeacm/graphics/GObject  penVisibleZ  java/util/ArrayList pathLjava/util/ArrayList;  acm/util/Animator animatorLacm/util/Animator; ! "setSpeed(D)V $% & erasePath ( )(DD)V  setLocation -+ .xScaleD 01 2yScale 41 5 regionOpen 7 8 regionStarted : ;repaint = >acm/util/ErrorException@EIt is illegal to move the pen while you are defining a filled region.B(Ljava/lang/String;)V D AE .delay H IdrawLinegetX()D LM NgetY PM Qacm/graphics/SetLocationElementS + TUadd(Ljava/lang/Object;)Z WX Yacm/graphics/DrawLineElement[ \U drawPolarLine@ !TD-@fcos(D)D cdjava/lang/Mathf gesin id gj K+ lsetColor(Ljava/awt/Color;)VIIt is illegal to change the color while you are defining a filled region.pacm/graphics/SetColorElementr o st no v setFillColorNIt is illegal to change the fill color while you are defining a filled region.y fillColorLjava/awt/Color; {| } getFillColor()Ljava/awt/Color;getColor startFilledRegion!You are already filling a region.acm/graphics/StartRegionElement tendFilledRegionCYou need to call startFilledRegion before you call endFilledRegion.acm/graphics/EndRegionElement showPenhidePen isPenVisible()Z &getSpeed M scalepaint(Ljava/awt/Graphics;)Vacm/graphics/PathState sx 1 sy 1 size()I get(I)Ljava/lang/Object; acm/graphics/PathElement.(Ljava/awt/Graphics;Lacm/graphics/PathState;)V drawPen  getBounds()Lacm/graphics/GRectangle;acm/graphics/GRectangle(DDDD)V   updateBounds4(Lacm/graphics/GRectangle;Lacm/graphics/PathState;)V contains(DD)Z setPenImage(Ljava/awt/Image;)V loadImage"(Ljava/awt/Image;)Ljava/awt/Image; acm/util/MediaTools penImageLjava/awt/Image;  getPenImage()Ljava/awt/Image;getImage acm/graphics/PenImage  getComponent()Ljava/awt/Component; getWidth!(Ljava/awt/image/ImageObserver;)I java/awt/Image  getHeight round(D)J g drawImage3(Ljava/awt/Image;IILjava/awt/image/ImageObserver;)Z java/awt/Graphics  getPenBounds()Ljava/awt/Rectangle;java/awt/Rectangle (IIII)V  getAWTRectangle(DDDD)Ljava/awt/Rectangle;min(DD)D gabs d g delayCountI SourceFile GPen.java!    !01417:{| Y 5)***Y*Y#*'**+ *,*')/(0$*Y*3*6*9*<*?-++*< AYCF*')G*#JK+z f*O9*R9*:  *<*TYVZW**9<*\Y')]ZW ç ÿ*'c)cG*#JHN^++)_kao9*'hk'wkkmnoJ6*< AYqF*M,*sY+uZW,ç,ÿ*+w(-xo#*< AYzF*+~*~ **~R>*9 AYF*9*<*L+*Y*~ZW+ç+ÿ"5:R>*9 AYF*9*<*L+*YZW+ç+ÿ*?"16**?*#J**?*#J*$% *#'M*#+*'3*)6*?~jYM,*3,*6*N-*66*:+,-ç-ÿ +,**+MR kYLYM+*3+*6*N-*66*:,+-ç-ÿ,3af *+ʵα* *յ*ΰcW*M,* *յ*,>*,6*O6*R6+*ldld,Wg[*L+ Y* *յ*+=*+>*O6*R6Yldld2 &Y''c))cPK ш5`ullacm/graphics/PathElement.class-()V java/lang/Object Codepaint.(Ljava/awt/Graphics;Lacm/graphics/PathState;)V updateBounds4(Lacm/graphics/GRectangle;Lacm/graphics/PathState;)V SourceFileacm/graphics/PathElement GPen.java *     PK ш5j acm/graphics/GPoint.class-W()V(DD)V acm/graphics/GPoint Code java/lang/Object xcD  yc  (Lacm/graphics/GPoint;)V(Ljava/awt/Point;)VxI java/awt/Point y  getX()DgetY setLocation # $ getLocation()Lacm/graphics/GPoint; translatetoPoint()Ljava/awt/Point;round(D)J +,java/lang/Math. /-(II)V 1 2hashCode()Ijava/lang/Float6(F)V 8 79 45 7;equals(Ljava/lang/Object;)ZtoString()Ljava/lang/String;java/lang/StringBufferA(C(Ljava/lang/String;)V E BFappend(F)Ljava/lang/StringBuffer; HI BJ, L,(Ljava/lang/String;)Ljava/lang/StringBuffer; HN BO)Q ?@ BS SourceFile GPoint.java!  * * *'*)  *++ *++ ! *"! *#  *'*)#  *++%&' Y**( !*Y'c*Y)c)* $Y*0*0345 , 7Y*:<7Y*:<=> <0++M*,*,?@ 3'BYDG*KMP*KRPTUVPK ш5W''acm/graphics/GPolygon.class-()V(DD)V acm/graphics/GPolygon Code acm/graphics/GObject clear  java/lang/Object  lockLjava/lang/Object;   setLocation  ([Lacm/graphics/GPoint;)V vertexListLjava/util/ArrayList;  acm/graphics/GPoint getX()D "# !$getY &# !' !add(Ljava/lang/Object;)Z *+java/util/ArrayList- .,markAsComplete 0 1rotationD 34 5xScale 74 8yScale :4 ; addVertexcompleteZ >? @acm/util/ErrorExceptionBFYou can't add vertices to a GPolygon that has been marked as complete.D(Ljava/lang/String;)V F CGcx I4 Jcy L4 MaddEdgeCYou can't add edges to a GPolygon that has been marked as complete.P addPolarEdge cosDegrees(D)D STacm/graphics/GMathV WU sinDegrees YT WZaddArc(DDDD)V@@v =p@vv =pvmax(DD)D hijava/lang/Mathk ljatan2 ni loabs qT lr toRadians tT Wucos wT lxsin zT l{ = }getCurrentPoint()Lacm/graphics/GPoint;isEmpty()Z .scalerepaint  (D)V  rotate setFilled(Z)VisFilled ?  setFillColor(Ljava/awt/Color;)V fillColorLjava/awt/Color;  getFillColor()Ljava/awt/Color;getColor  getBounds()Lacm/graphics/GRectangle;size()I .acm/graphics/GRectangle $ 'get(I)Ljava/lang/Object; .min i l ] contains(DD)Z getPolygon()Ljava/awt/Polygon; round(D)I W(II)Z java/awt/Polygon paint(Ljava/awt/Graphics;)V  setColor java/awt/Graphics xpoints[I ypoints npointsI  fillPolygon([I[II)V  drawPolygon recenter translate  ! cacheValid ? clone()Ljava/lang/Object;java/lang/Exception copyVertexList  Impossible exception polyLjava/awt/Polygon;  addPoint(II)V h ConstantValue SourceFileacm/graphics/GFillableacm/graphics/GScalable GPolygon.java!  4I4L474:434?>?? * &* **Y*') }i* **M,6#*!Y+2%+2()/W+,ç,ÿ*2*6*9*<*Y*<A= T@*A CYEH*:*!Y'))/W*'K*)Nçÿ5;O dP*A CYQH*:*YK'cK*YN)cN*!Y*K*N)/WçÿEKR nZ*A CYQH*:*YK')XkcK*YN')[kgN*!Y*K*N)/WçÿOU\] *A CYQH*:  )'o9 '^o9 )^o9*K Xkg9*N[kc9`b9df9')mp9svo6vo9v962c9 ykc9 |k kg9*~ ç ÿ **!Y*K*N) %*Y9'k9*Y<)k<* *'' *Y6'c6*  ** *  *+* * **  *< YI999*:  *9 *9*6[9*6X966*!: *9%k(kckc9*<(k%kgkc9I9996%(Im99m9*t ç ÿY((gg( *') TH**M*Ù#+*Ŷ+,,,ն+*+,,,նܱ HJ996 6 e* !:  # %H %J (9 (96 /' %H) %mJ (9 %m9  *')c^o9 c^o9 6*!: w w** -*L++WCYH  ** ***M,*9*9*6[9*6X9 *Y6 [* !: *9  %k (kckc9*<  (k %kgkc9*  ***L+,ÿ:,é0 *A G;*A CYH*.Y*K*N*6*9*<* :..YL=+*/W**+PK ш5AwKKacm/graphics/GRect.class-()V(DD)V(DDDD)V acm/graphics/GRect Code acm/graphics/GObject  frameWidthD   frameHeight   setLocation  paint(Ljava/awt/Graphics;)V getAWTBounds()Ljava/awt/Rectangle;  isFilled()Z  ! getFillColor()Ljava/awt/Color; #$ %setColor(Ljava/awt/Color;)V '(java/awt/Graphics* +)xI -.java/awt/Rectangle0 1/y 3. 14width 6. 17height 9. 1:fillRect(IIII)V <= +>getColor @$ AdrawRect C= +D setFilled(Z)VZ H Irepaint K L setFillColor fillColorLjava/awt/Color; OP QsetSize(Lacm/graphics/GDimension;)VgetWidth()D UVacm/graphics/GDimensionX YW getHeight [V Y\ S ^getSize()Lacm/graphics/GDimension;  Yb setBounds(Lacm/graphics/GRectangle;)VgetX fVacm/graphics/GRectangleh iggetY kV il iW i\ d p getBounds()Lacm/graphics/GRectangle; g l iscale(D)V w yround(D)I {|acm/graphics/GMath~ } = 1 SourceFileacm/graphics/GFillableacm/graphics/GResizableacm/graphics/GScalable GRect.java! HOP   *')  # ****') QE*M*"'+*&,+,2,5,8,;?+*B,+,2,5,8,;EFG  *J*M  *JN(  *+R*M#$ *R *B*RS *'*)*MST  *+Z+]_`a YY**cd  ***')de ! *+j+m+n+oqrs ( iY*t*u*c*cvUV *[V *w %*Y'k*Y)k*Mwx *''z 0$1Y*t*u**PK ш5<<acm/graphics/GRectangle.class-()V(DDDD)V acm/graphics/GRectangle Code java/lang/Object xcD  yc  myWidth  myHeight  (DD)V1(Lacm/graphics/GPoint;Lacm/graphics/GDimension;)VgetX()D acm/graphics/GPoint !getY # !$getWidth &acm/graphics/GDimension( )' getHeight + ),(Lacm/graphics/GPoint;)V(Lacm/graphics/GDimension;)V(Lacm/graphics/GRectangle;)V setBounds 1 2 getBounds()Lacm/graphics/GRectangle; 0 6 setLocation 8 9 getLocation()Lacm/graphics/GPoint;  != translatesetSize @ AgetSize()Lacm/graphics/GDimension; )=grow@isEmpty()Zcontains(DD)Z(Lacm/graphics/GPoint;)Z KL N intersects(Lacm/graphics/GRectangle;)Z intersection4(Lacm/graphics/GRectangle;)Lacm/graphics/GRectangle;max(DD)D TUjava/lang/MathW XVmin ZU X[union IJ ^add 10 a toRectangle()Ljava/awt/Rectangle;java/awt/Rectangleeround(D)J gh Xi(IIII)V k flhashCode()Ijava/lang/Floatp(F)V r qs no quequals(Ljava/lang/Object;)ZtoString()Ljava/lang/String;java/lang/StringBuffer{[}(Ljava/lang/String;)V  |append(F)Ljava/lang/StringBuffer; |, ,(Ljava/lang/String;)Ljava/lang/StringBuffer; |x] yz | SourceFileGRectangle.java! #   * ' * *'*)**   *') ! *+"+%,*,-.  *+"+%/  *+*+-0 ! *++++ *# *& *+ *1 # *'*)**1 ! *+"+%,*,-310 ! *++++345  Y*78  *'*)8.  *+"+%:;< !Y**>? !*Y'c*Y)c@  *'*)@/  *+*+-BCD )Y**EF =1*Y'g*Y)g*YG'kc*YG)kcIJ $**KL @4'*()*'**c)**cKM  *+"+%OPQ ZN*++c*++c+**c+**cRS g [*+YI*+Y9**c++c\9**c++c\9Y((gg]S {*_ Y+7+_ Y*7*+\I*+\9**c++cY9**c++cY9Y((gg`0 v+_*_ *+b**c++cYI**c++cY9*+*\*+*\*(*g**g` c W*_ *')3'*c'Y9)*c)Y9*'*\*)*\**g**gcd 4(fY*j*j*j*jmno L@qY*tvqY*tvqY*tvqY*tvwx \P++M*,*,*,*,yz MA|Y~****PK ш5N  acm/graphics/GResizable.class-()VsetSize(DD)V(Lacm/graphics/GDimension;)V setBounds(DDDD)V(Lacm/graphics/GRectangle;)V SourceFileacm/graphics/GResizable java/lang/Object GResizable.java  PK ш5!2acm/graphics/GRoundRect.class-m()V DEFAULT_ARCD@$(DD)V(DDDDD)V  acm/graphics/GRoundRect Code(DDDD)V (DDDDDD)V   acm/graphics/GRect aWidth  aHeight  acm/graphics/ArcRenderer(Lacm/graphics/GObject;)V   rendererLacm/graphics/ArcRenderer; "# $ getArcWidth()D getArcHeightpaint(Ljava/awt/Graphics;)V getComponent()Ljava/awt/Component; +,acm/graphics/GObject. /-acm/graphics/GCanvas1getNativeArcFlag()Z 34 25draw 7* 8 getAWTBounds()Ljava/awt/Rectangle; :; <round(D)I >?acm/graphics/GMathA B@isFilled D4 E getFillColor()Ljava/awt/Color; GH IsetColor(Ljava/awt/Color;)V KLjava/awt/GraphicsN OMxI QRjava/awt/RectangleT USy WR UXwidth ZR U[height ]R U^ fillRoundRect (IIIIII)V `a ObgetColor dH /e drawRoundRect ga Oh ConstantValue SourceFileGRoundRect.java! j"#  *')  *')   *')  / #*')* * *Y*!%&'*('*)**0M,2,26*%+9a*=N*C6*C6*F++*JP+-V-Y-\-_c+*fP+-V-Y-\-_iklPK ш557acm/graphics/GScalable.class- ()Vscale(DD)V(D)V SourceFileacm/graphics/GScalablejava/lang/Object GScalable.java  PK ш5>Ji==acm/graphics/GTurtle.class- ()Vjava/awt/Image turtleImage[Ljava/awt/Image; acm/graphics/GTurtle java/lang/String P47494638396144004400D50000FFFFFF989800111111222222003232666600659800639696999999 P99993396966399CC00636496323200336600CCCC98FFFF996699336496639898CC33333330633030P306330636398CC98CCCC0099CB3399CC66CCCCCCFFCBFF66CB33CBCB33CCCC66FFFF33FFFF654444P44636330DDDDDDFFFFCB100000001000777777888888AAAAAABBBBBB555555666666000010000022P000032000044EE0000002200003200000000C30000C30000C30000C30000C30000C30000C30000C3P0000C3000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C96C3A9F50P26C5A548143E9F42A311DD4AAA8D07686B8B3A6DB66D438B22A9B7A40269FE5E6F296A371A6D2EDAP1008247B693614786B0956050101200958201F22108F8C8C1F018A115A700D3604147D46680D8788P05090D018B979699AB8C19AC8B725B3114853624098D201B05654B6120060FB978B8C877CA9ECD84P0D28692428052E9E36167CA2DBDC42368B0FE1DADDE4E5E6E7E84B85B8DB36E20D35E94286355B2EPB8681687EBEB142486A5F00822344EDE214369E4CC51B0A68001588958F16AE02001094673FA15E4!PD62086344F78221628902141B84C1052524A04E20104478C12A9C9B58684015E1F1E2850106C490D#PFF2D5340D6C933D2D2485546676542B18C10471B1830F44C32C8068CAB5607791C54C3860B182E48%PB46C29559ED9B368D3AA5D6B161781B4261AEC04616DEA93060850396A26CFAB1B031515180051B5'P30D73D734884F574164D0D17D86C7834B46F269966FBD294BA865617B26761B514CD34D2CA2A1215)PB658D4437963943D44345B7BA3C5C1482C3131BD5AC50A16273203B9E90204D9CDA1A2A978997C90+P008402959112B914016251751723073598C392611F819A6B6E19193DC007102941C03409E1BCDEDF-P7812EACD0941DCEB349FE1A4DAEEDB34AAFF123D74071A75D9D5852373DC4306324C0D751453BF35/P68077EF8B0C31102835D634807F818A6FF86294C31151E415EE9734E2E691532472F2D3D00035B301PC628E38C34D668E38D38E6A8E38E333650C103A1A8E589020800294A032054649F596834A241001A3P7C104F172EB8D05C010A2C898E5C0A6C9080061BE464A0120D545926960C7565D66617B8104329835PE0A26140FC1416DF98E614E2020393DD22E77682DCD10C6D025DE31A3AB98477591A12DAF19B509A7PB9C15963F85936DE8A015CC44B6905540021196820C405A203D5818A0271ACE1DB68A824609B25979PC16901A27436B80B43B06492812BB9FAC68802BFC1260A369095B187862389561A7A38A987852CE6;PF1028B1D9759D887570848A0182983A2E2062BE831128E4BED3DF21C0801409BFFE982C7C2E3C994=P67F858AC036AC8818AAA01A4B4AB4B26982042262DF9AB1BBA6FE0A300060AA897C04E7852A59929?P47D99B6F161F34A712C0CFFDCBD2519625ACF0C23BC1EBC49D85A896CA6D582C0249CA9754CC2B27AP68C06041048AF082AA20F7691629091100ABCA22CA25421AD0406FA7051A196555D813921D24CD9FCPF55EA41B2D9B320234697A90722814362C4C4795485B0AA80374AC1101CFDF729775850D338DAE15EP36B4592C62F8E4F18C40920E182A3FE4D4C05C230D1050419555C627AA9C07C9F90F19B6226DAD70GP558C21AC1F7BE0D3952E9EA5562C059707A5183C0F1FE94EDBDDE82917CD1180DACE8B29E2358B53IP3C9209C320B1D76E07FBEDB8E77E56100021FF0B4D414347436F6E20040310390000000157726974KP74656E20627920474946436F6E76657274657220322E342E33206F66204D6F6E6461792C204D6179M2032352C2031393938003BO TURTLE_00[Ljava/lang/String; QR SP000032000044EE000000220000320000000078000078000078000078000078000078000078000078UP000078000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C96C3A871CWP15EAF2AC1639A39142451A55152357C35548911A366B95C21EC16C9498804D69A0EDF6023EEFA0D1YP1A7A0D27730D033631136A4A08761402367F80760E05092220011F1F202222091F01190A1020A005[P2005628D36362412060999200A0A354D2C2A1C0D31368D78056780059A1F05A1190101B105C609CD]PCC76AC272736298A45287A1467238F03767E76277B82D3D37B2728E3D4362314232D0D3524F4696A_P2A0D121815D6D7FEFF00030A1C48B0A0120505227C2A7082820A831D5C6851904083860F1A22A460aPC5D186804674F6D43933084D358842586C1C5747D01812818CC964962C19CD9B7B7A391A8180C390cPFF142C9AD8B090C2A4B471BD00296B402219080821323C85402AC127109C3E58D59AF3458C91B112eP90A87042D1461BEBC6D98109A829A800D09219D0034C924E01020C095440028481072708D47041D8gP5147568620BD786183718AC748588C6860A692581227516ADECCB9B3E7CF4CCC48E8650B7494A05FiPC29070062281A07E10539CD210404381D247549E3D2CCD246C8329B651A8500186510B2D1B7C2C24kPA857D28677989A7C94ABE046140304A825B776E64CB8F428D5AC57E7913D827696E3A1879066820CmPC86ADACC549319343BD959ADB57AF97C1216A875C0025ACAC1218C33C604F094535491A2D5070F98oP20C25B5691338D65C46075C66F46A4D0FF420B292010DC7679C0649F8222C0B509555825A8492C70qP81374D3D3630C0E1352D21660782269E58DF8934D5D44721780D4041411C0CD20B09149058A2036CsPA12009776B8D308D23372AC2C507F4B8D3820B144863647A8524B58794358CC18A0028D850830D2DuPBCA380421AD0F30005013A51C3031114B36696020215500344097A0D0770F807DAA28C36EAE8A390wP462AE9A49406A400057756EA440311607567759A1EC1174556817027A004A520400B233C54C51912yP20448202F21CB9D9A820C886C2131234D40A9393D990A741ED28A3093023A0A65B986B7AE4C8206A{PA1C511AA008D4A4204942450810368E035CD0086D4F10D77FA3530996F103540FF410D7580E9D123}PE84443A52F78AC6918B56AD860E405792D96D676CCD0639F7D15E4816039EA866B1D81F3E691205CP411AD3800362258350BD98290A50511F852948257CE961408CF225F8B07D545223000935D4700209P29F864C53B576AD79658347D101F313ACB07DF7C0104D3912B0A6095C02C0A68AC440A2C9D9B8730PCAB4A689A7543DF80004131A83091EBE327555A9A6C29C042B1404D7C15163022296520A3E70F453P2648F8E0531326A35520E29C50C1C015454099123688181C092ED8BC074E4E3D00CA8A55478DF55BPF5D9F195472F18F5D8B091B1DA40051E37E7705BC36815CA07971C9B60060932A5072B62C0319047PF2E2516190762763BE954D3E422CCE23D3E05B850AE71C4E4F0474DD943BC410AF9E68A20BEB5426P393EC6140109DC4AC935D9FA1A82B92271D4116C72B11F9E37390CD7FBCE000808A1820208A4AF06P0BABD1D3451DD44CD3CB08D951498121CC99D9261C85A387A9EA94B17B9000140968081BD4B54038P18821A76A8817630430201B88C17D510942346123AB1F4CE0A7B8A0508D2C1860E944D836CE80805P18C08027E06232C0A04709ADC00505700966BEA354141A72A9503D61283E0CA2108748C421060100P21FF0B4D414347436F6E2004031039000000015772697474656E20627920474946436F6E76657274D657220322E342E33206F66204D6F6E6461792C204D61792032352C2031393938003B TURTLE_01 R P000032000044EE0000002200003200000000DEAB00DE0000DE0000DE0000DE0000DE0000DE0000DEP0000DE000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C96C365D92P1449E2AC5A9D0AD7A841228D6CB6D4D58A6829129A48244172D85E8286DC3697DB1B854285D64814P0272277127843614452C122C63422914740D71725D24790119010109202022201FA01F0F10221F99P0909770D821411240901240D614B292F0323278F02607779957979A07E011F98A7C17FB09A36BA60P032D8B8C49BD140D1427AAAA2474DD7627036028601286235DCB090F2487571C29201A1A09348608PD3F8F9FAFBFCFDFEFF5D0A7C28A04056BB7F45B8814821471A111629C0F0A260CD4EB86C5C66D9E0PD5C0213F041406506000231C0C6D052A650A106C65A63F2C8345283087970D121836C042A5008402PFF1B64E450B4930CA628109B4641800042D30710104CADCCA3D1C5AC7D143878693607639F02AE68PB27C19CC409706282C9E6047670405170A2ADC2C97C263951A29BD6C69106E235F8A60BAA17841B8P2EC226B32A3CB061F7B0E3C790F571887CD8C6064E0AB029A0AC8F4405096CCE1E8CCC424548154DP1C8DEB05E644E0308DFB358D37905B0747AF05885C556756C54060863E7AE1CF86D50A2E44BE19A0PDB4E5A2E9560FDC9E3A700B1587720B9E6C325C107050ABE5479848263F67334F118B0B43241863FP984CBDCF242B50B8060A407D422A4B4C1586AC4D4215759F18F380529F780755299A6C925E03B76CPF48205B159D11A384469824726103C80FFCA53A47C02D325CAA4E79A4D8C3142810A2DA490820A29P7C818203B3C841958D236A32D67431E54553338F3C02D43FD61812881DF515250B0DDCD9D18C0D28P6403460B149110C1066A90F0C04FD36875CD2CBC1894D62E77FCB6D60035D860817F882CC2100C86P31C242034DF921000AB8B8909C214106C7266748D49042042074F127A0FA94A626A28C36EAE8A390P462AE93E201130D9A45668B5C14D4362CA84561FB29199A74B8C90022A9B3880C2A1A40EC1410315P90E042015274D4280B152251CF93521A02280B24ACA080004AB0206438CD7D33C01C86B0CA8F560APC8F38103241011915F148DB0D71DAE4D328B48BC8C70293F360CC0522820B8B2FFD120155504094AP19757B0D18B992418202331950035FCF2C7B245138B25181030EC094D28374847300050828B02F25PCE22C18E4521C52000057140A25251A700E2404C2C692324749C6C02DE674E94FB56B2DAE0C1A326P3CB287CC1FB2D024081D60698014548576CA040BBD7C59E32BC02813DF25C6ACD489297F98F24D8DPC92848C2095740940B515D28E0F253A684B25454A83C6002830D22FCC62373C479850D5B84644393P2E67B2F426509900B6C9108430D054720C208BAFFB40F2C8B2D46DA8C952987CBDD432A08C058841PACD1320644B842C495942E5BB761069C64F294278DCBACC97A1619E2B3852E20C08EAC71D078871FP9917980926A8BC6CC230208484A4DB6855A790CD0815A08D121B6235B063327C9B5D08C66C16E402P3E1059E3DABB94D094924B38B69C9D0D2D8C306B4F05E912716A8109F52ED604A7E78DD072EC8A02P05DAE26740824FD6BB04365CA9829157BC5D7342935F308434AC061DEBB0657C4A28D735BAE78267P4CCF0E71C0861CC2151804126133F960C1192831800B740F63454291006C42A148D9A0291B20C1C5P2A9082150C406DB721150714E31D8DA4A8554850C12B362001DEE1F0085AC198002CF8C3221AF188PFE08020021FF0B4D414347436F6E2004031039000000015772697474656E20627920474946436F6EL76657274657220322E342E33206F66204D6F6E6461792C204D61792032352C2031393938003B TURTLE_02 R P000032000044EE000000220000320000000022AB0022000022000022000022000022000022000022P000022000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C96C223995P548396E238AF5827A7E52291280D9B384B162A6CA054A1401AA6C4B6810D7CB235EE8D4285960FF8P4905780D27246176120A1F011F0A200F24364D1C14940C313103772877236B8106011901091F2022P1FA809090F262209A3A46B770385362965462D279C717705AA7D09A6AFA88AA301BFC80501240986P620314912C738F622C572C292C1C2A14996177768278857876D19B603616D8B8D9CD5E0D0328142DP2DD1EEEFFB4C1C1C2323D8F11B48B0A0412C1CD47C280082048D480709BE1120E0049875BB1A90A8P4369C08017108D48E086250505051A12188840428E8D18784E6C5A4342D9323FCA7026B81948DC20PFF3BBF9641BA45C664343C6CE43958564A110810104C4038F56A518635C802DCD925604EC82CD4BAP8A1110D05C0301BECCCACAAA2C4F843BB5EAA0B0215700178D581F9CA1C06FC480AE720AC9014717P8E8D17ED225E69A02081864214F4299E4CB9F21515562C47B4B12102880223CE681ED8C045E3040AP068DDEC7A282981375A0897BDD66320B172D462038C2425A344A787C0B3217675D401B2A5C74D108P42817312159C3C60A8C1294BD98332E6F1B52CE9D29C9E7A1A66FEF4832A679291A44E017D0405BFP31E66867D3DD4FD5AA37458030A64AD6BCC32F7C145919D4D8501139BBFC024801C590F2D4035329P228C0211FAD1DD33BBF045DA1DD26CB2FF9D277E4025C228A544A8085638D9379747D17CD5C16E65P48534738793443D32FA8D86753556669E2402D68790142029E81B04E7A45B0F0020229A8200102B9P8D0386203BB1546377C49DC549187574750B366F2840412144F1238D1D1765A4269AC111224699ABPA500D37B0035701C6186D9B2DA1227BCF25803F5C0B8272E5E908081688326AAE8A28C36EAE8A346PFC43810B4842AA84028890F0801D955A4A040743AAF2DC089D7ADA01095D244002085394EA290770P79A18B0DAE5ADA808C623C3307057042DA1B1CE4D8F9538B36B430016508B858C444BB0A92494670 PA075AB189410A100215ED8B042ADCBA6B002244648831625D00AC287AAC89030FFC239D0DAD14C79 P7A89D96B122928B041001ADCC14281684E394E4F4955B0544D1692439118CE1920CC2A10A83BEF11 P1478A2C1060A1810C6511B9553537F5981689350FEC98197274F85C1EDA40ABC55004CD41E350E20PF685871583A48812A256E4B05381467364F15E03359C65200CDA7137738AA888920185229CE2C742P3D35F002051CBD830F250109B24BBD0B22FD41D3119202210427E267880B613C9C4D8119FE2BCF1APC2EC9781235199605EDC0F9857F06C5D35A0B6CF59C386541E37399240061F40A0380443A6B8934AP0538C0E1582A0CC482B4DF70074C320140F0C0D3A68090C12BE15918089A714C3D446ABC726BC438P2778A479E9398602CC4B77B89B655118235860C1080E34E285022E68B804981DBCC6613951A3D831PEE069020391F39DB8575C5FB25A56C1114C4D0027B15A07AA0E48204A56A2005646073B0456B6243P051408100D096A144089EB29A480807630D06567AEC3411F4DB6C325916DA2055E1A0D0206A09DBFP8C235810FCDF8006552008AAE328223384EA1885B616D8492CB9FAC699BC422B478121292E18016EP6EE50239F02A32C67BD49840308AD811200AFE30156F5052C337E9100912A800F626F84324B0A00E!P0378C3DF8A48842532D15241000021FF0B4D414347436F6E2004031039000000015772697474656E#P20627920474946436F6E76657274657220322E342E33206F66204D6F6E6461792C204D6179203235%2C2031393938003B' TURTLE_03 )R *P000032000044EE000000220000320000000018AB0018000018000018000018000018000018000018,P000018000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C96C125D14.P4583C6E238AFD82BA7511991280D9B9842A6A814CB6A164BB10DC88D70BCE0A8340A8580BE70E7C70P6D6D270D2478790D146C0D098B0E0D03636F71837801947A1F1F099909200F1010987B950D026E022P6F6B472C2D24823628927D797A0F201F0198B78B099501B1BF80508384015F884D29362D62232EA54P36248EB10524D592D1BF92A52CA9DD43168723642D2D6F2E80DEE94E242924180F64EAF2F3F4F5476P1C0ABB8B35C7F6F66D6EFED89074C28D200A05473C42018B04275C0A6AB1BBC262848214091C90E88PC0C28680820304C521C46B56C90009326408B01253023F61DE88E1966AC4A11A0C46BCC8E6504121:PFF10223E64F8A00082894F1078E959CAB4C1090A8F1E8DE820A18102290AA064011367C0A33E0EE7<P14CA336B541CAE609E51A0E9AF0807310329608B83E284CD678F6CA4689B4551A60705E0F21D4CB8>PB05BC36D2382006195840DB688536D71F15241B47E915349816BA320578F50C5BCD84B84C5201057@P2D57E0DB51001C495CA945B326091A4012963FD8BAB5A10066261C28A4180099054001AEE7CCA994BP8084835985F4CC1569C302F2C7A95228D0902B4204375C1BC032894729CB59202004D5F37054E765DPE8B204BF48A202390A02628C148BC7C0524C9DA8A7CB620F64924749B5C1C5D61623B00059120085FPF715352F3D97876E20B4B41804B69414FF5D317C0012C608AC9000C2222014A300764DAC721618B1HP2DC2C72CB9B0F71225CE0D12464153A0F0580A66D8C0410A1C58919D18228131C01C0E15D0DC4864JP11F207057571519D3FCAA4D04E0A71C03090535FF2F8476D8E7C69C30B16648644326DE01590479CLP3DA866690E58160D332D0060E49C5A90F08026099C20279F585831240BA411AAE8A28C36EA680723NP10C0D1A3575453CD8A0D0C4A29113678879A14536D9A043B95DD292A125B48E05335339D6A04072DPP8C30028F487226860A0C20C1950BE72056019224D8B41F6887E4158F0B080C82226A20C4D3967162RPBCC18748C00830A64056E9D3C965FEB4F6542C82D070875261C502A718052860FF202787689AC45BTP7B12D146195F4A8247050E3870A321B2E1E1541B714460CD6F4EE825C56A427474C2094B3A75821FVPBD9065094A78DCF24B411EBDE0EE1283DC424D14D10E22EC30638952C02DBA8582D24BB17811DF1AXP2638A9C906CD891143BD2389629E501968929E0927BEE461189D0D9428162D6817816F6FC0508A1CZPD3F8A7A1089F04E5735199ECE1C74051B57018130A0CD0C25930BCB093784EB960D91DB864A29B27\P46D9F29F4A07B20CDA297A256CD5232F30010505FCE0CCA47315039532DC1C82309625D4105D4A19^P1438F0A789771EAD0AB4624C834D749CA88752CAB7885249E38788EC9123B845A00B3C042B311020`PAFF4B14834BCF40CC24A25BA1CA887C0B0C441434105A1E01A05B2525080C66B94731672FCED7B72bPE8A3FBEBEF5C7130CC623D1D75462D7FD334C0D24AD80CC4A3B80DC4D0BA3C6BC13E17CE2F85450DdP358DC81149056D582E4F0A68AA9042D20838136667D908E021424301E4B1661CCBC08783C080B3AFfP38E510C9094918D0D4A8EC894958000C8D8228158D1650606C445B1220D6B2B139E1671850100739hP0450C245B180049B981501C8102F5771840229AA44AB6C58840AE08613A8E0A11158B0B0111A5088jP8E0A020021FF0B4D414347436F6E2004031039000000015772697474656E20627920474946436F6El TURTLE_04 nR oP000032000044EE0000002200003200000000B70000B70000B70000B70000B70000B70000B70000B7qP0000B7000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C96C762E1CsP96734AAD0A152D498A446AD8BE6030652025561A89CF07047A90525627C546A134EE785AA3400AF8uP0B05115C7877272F5F7071422E0A2909050D297336772494807E7E097E6A6A09096D20101F9B019BwP053427021402032F70151420240A0A5E65470A7403352E2394840D248F7B99A20F9B6A9A01057E11yP78C00D0336B88A4873787627767705095C5DC17776362F16D6E8442A0D14232DEC03032DD4E9F54A{P0DB506201275F6FEFF00ADA4D8100104A85B01137640F1E5CE08425F4ED81870C7C6094B5F481450}P40AA19090A015980894708932966DE028050666A25332F0DD92932D1AC8006071507AC3AD10D50B3PFF00A4D43C8000C10451833E7D06E05280120989ED620853A1114635272C469C18806D0FA6474951P32CB54B1228D313614B26A41224B8A163180456397E7A2B430571536A9306C980D02040624D24BB8PB0E1C38A5C5852F0B11F62744CBFD93A9177090570B62A18B6E5A28144895C61D6616751950D86B4P3EA521A5E1046191132940C2C307D0A060BB8009B254D9DE9CD1C1F84428E02093B7660635E27931PE2293D6B2E5A902142E1C4369E9592D61CABF2810911204CFD9C4DE7CB2A225CBEBCE8DD81032D0DP1F348030508E62759E1A7F66000A2204510822A8564A069B9C62897594B46081621180A292022021PA102235D3CD40A30A9A0C11833A07C10FFA01FE01D655C4D849C21910D34D8A0C208834DC1011802PC4149C721AEDD78926C74102884376FC122140226543474F6075B3873080E0548044D03CF75A0A02P08601D0D5DF044913839B173E239868D3142752D7040C43C1611424E455FB0D0E2634958C00E1703P8C30800B2520C0A6152C70115E005EFC78A722F781C1DE9F84166AE8A18826AA440B9779C185A24DP34B0011BF85802E9122A80E00D09202044050B2C3422C9616F38B2D12FD448012A07628A69849EB5PD46229611C34504173E49409DA34608CDA99300699F20063AE1536428C4C5682911D7594E9994524P6C60C01AA474EA67422CA478A58C783C44C889653EF24901D786141B3457A6A4FF89573A7A41910DP028CF0C27A85CD314095D8155041050EE4A8D44B784C531D1DAF51A24D49803CC2DD1F9A1083C709P2E40954E0AAE0E015B2B9E1D790AC33F7D00E0879FFC71D744515E4B01A84C8C30C2030DD050C61CP3C69D5537E0AA7B1DF270F0C25024B3B8EF3C53489A86C0B634E1A610347CCC83A51305C300CD41AP00BA040A1B1F64D08C6A4D91F6C2182914800C7CF8107C0407058000DF06107E310676841890894AP6D14350A296FFF64CAB3303DD49C0263255074116328B081BE318C119730F8D9028887CA7C30D47FP2BA9F6071F776C1BDB68291C5D3112BE6C718705305044DE1E5DF4DB8CE30F7CF0B44BE26542821EP65A1C0D0A04B7050C90705354C53394FB585E5471B1D01851220CF08F33022FEA420527514E9EED5P375DF8B4DA58244273070A9E71195236BFA4EB136D3BBEAD114FDBF84C3B3A2F5ACF36E98F442088P57E10473EC9A7A4D12CDFAB38963254F34A0A0FD6B9378C32F8EE799CF988924F04A936132670104PA4400529E0910B02D5A380ED22460A7C0CFDA8639E8984811C28BBD410D8D1822FB5805113DCA0A2P28F0023E0C221E14B093088D7099F0A00D26E753D40ABE968006E45051796A810224400B1BFC6F86P465000070010428504010021FF0B4D414347436F6E2004031039000000015772697474656E206279P20474946436F6E76657274657220322E342E33206F66204D6F6E6461792C204D61792032352C2031 393938003B TURTLE_05 R P000032000044EE00000022000032000000004FAB004F00004F00004F00004F00004F00004F00004FP00004F000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C96C3A9FD0PE8B0A14A90488A91CD46A16CBF602EC1868D68409F04A8C19246B78D7843D0A0350AF840411FD017PE47103240D36276D45081D876E1D5E360372577E097D1F9696091F209B1F197B0978245B5A5C2331P2357820A4C0A7B05110E0D1430312771362D090A2478941F0F1010A01F01197E7F117F711571308BP8C482C2971142D02039077770524A0DD807236843629D04F14312D2A29230D1C442C5ED703140D23P032D5DE6FB4E2C0A2011126050D0E519BF8308131EA1206A17961352182A98A8E00109830A8534B0P76A2103838E2006DA120A010850A365E6434C2824BBD90DB0A50EA1540844D62A0F40C6A60ABE400PFF2E1D38D40098C00A41251452A4F846E6911C5B78F2500AA0099889606870BAFA38871C341227BAPD47031828EAC7A8064EE8CEA6A4FB100BC60CEB1B01289BC1327ECF00C89CD56839FB67E72C158D7P89B82B7109A0F05AB8B1E3C790997020C0A182BF77D0A4D920ACD09F830F3213D0B001A506894B09P20EC32D498430B0988C7C5E9484F16DE708F42F7DA0C99C362BF70E2844A20FC8FB2D96020B7AC2DP074F05120EDCF631D627D3D62FD806949B42F00A6329291E318F13602A5BAA2080411041ACBC013CP8428FCECC29044C0F224283069816F11C9385A6CD3875B9AD8148C0899F471CC567FE9F5C50814B0PC0D9115750A2411A5BD033805FE77D20FF4C796920080108D5B915811C28DCC21B23D54CD4C0050DPC0900D20DD18974725ECB5C7C71F8BDDF217690921100636B2C8C556730D0C12D54EB2CCF1025D90P09D9911C2F8123D26C1BDA50D276CAB1D011092A54E008720052E3942C911DC125122ED823CB0502PB4B0669A51308486011FF034219D4F88224E5273F229E8A084166AE8A1883606210962BA24050BCCPC41661632448B0891A75ECC952036980F00F08A234E64F511FEC62CF22D25CD1420B6DB4D1669220P909A46044016A6800B297833CE16B4C93726051D89B34BACBDE8E718078C26C96B58836879C28C7FP7E215C048318FB18415B0C721B8DC709C7132427C05092B58FA5301A05DDCAA4FF6000714410C0ABPE1C4D02CB985A520005A68D571474E6C69028A48E2E0B5A2100A08E6CC3E5EB81949850D28980131PED91EA8717039434AE101215F0C048D0D4530F54022AE8566AEB81F0F08071349B9D055CE41A2B31P0F4CEA4686B61C768CC3E565921E081080B687019410F2AC386DBA50211E072F2161112D7DEB1709PE5AD4B954D68E43C95D4A0D832EF08100AA2E9101C8CF0405EABB464164F345CE18A316AFC028109P2688D0335B472619C7682828021E09206850C03FB4CE67E51E1990AA8B7AEBE998470329A2E05749P5F2960890656CC77362A4A16A0898726537549D43F0F0296C7F79AC34203096C5040051096040E37PD0DD9880080F104BCC5551F005C2570DF44A11B6A9358CC03270C2ADB56F019E5862CC8D3B75F4F1P098132C2427E15D340474827A4B80D25A0D01D8A1EB1FCE1D709027CED461B2900C0D35973145723PEAAFECC464BE3524ED987C4FCD38E31D4C86036EB082F2C2946281966CC8C56E8E000A9F944201B2P04273E650AC7AEA2E7181BA02205EB6046845C5012713C220C5E305F4696438F141046051BC907D7P1AE082DE256A082C80C41508310031BD3009D3284A004005C01B4663102F238ECC7C780405986617PB0A1C00B4488280E38712541000021FF0B4D414347436F6E2004031039000000015772697474656E TURTLE_06 R P000032000044EE0000002200003200000000EEAB00EE0000EE0000EE0000EE0000EE0000EE0000EEP0000EE000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C96C3A8D9CP94AB814AB19ED861E35100750B34D59095B299CFA7C1C9DC2025120512C996AD0F3923DBA941D953P1A09010582058501201F8585246B3614660336291D12242009890F747642297E0D0D05808A01011FPA71F6F9881A58624A0A08D149C1D2D292970230A0936318EB071A1050920200F0F228982A98A0D34P28B10D79B4441CA014140323356A366A14027BC06E717072B00D2702DD029BD459650229081502B3 P0867EB1423232D0D2A08DE0974C2818402040924381A7165A0C3870E397460C142818A864F580002 P1120C183001B1A608478A7810B12270534B0D1660E1A74A15682F2D66D921117652CD87CE7E80F4B PFF6124042D0B00418408441F4A9532508865BE06305A8C686085E71A99A15A15C860CA1884AF5F41P707D3328429B99235E8CB4D32051020730B08583B5875C4C45A4400D2AE000D61F1A2F18904492E2PD1D59FA022ED39910DD64F496B071F61412132111871DCBC5AB353B2E7CFA0437F4E615081E90773P3EAB209142D7163E4FFE1834508C6C67C9C212B076C9A6279F743FDBB5636961C00BD15A5CE81187P8E441C05A12214980213548B136B660D3128C7A5652C2CD8F0D953A1818302069406E05AEA4DA957P7E0708284EE164044203BEC71EF087F9A056429D62CC034511D2CA2B2C3172C608B7D112DE2FA0C8P0187521F800016040924A3082BE85CD5FF0E4F380DF1C8003039D7407A199C624A85A724D31121D2PA153430D0DC23302080B9CA240248F9CD5866EE6FD1748862A1A22C866B04C331005DC55808D2FD7PA804CC308114A25701D0F9180B768E7846191964F8F5488F0D9058DD96AF3C021972458427C0708EPA5F3879A666453A368E15980400A2B4566CD542E1060839362B0C9891C88AC32476586BEC3820A0A!P342AE9A494566AA91D145D9A85040D98A6C0032269CAC48F151663D69D031140410D8FCC81AA1108#P28304C2A2A82E0CE601C54908202209856030A6B6994420B311466C30828D8400206964C18EA6824%P44F086692B49A2A63DFC4502DF197A4550CFAB0E1DE482397DE83193378C75A8FF477F2FBC301C72'PAF94572D3A3F99080C4CBD2078C25A0A38498102660844829A08D6FB9F2059E1E5D819FC3134840D)P20340082411480DB440DDE8802531C7B25C01E261C59C9639D2FD880804198A4C29A40E0FC018C03+P152490D57A482565882871249BCDB15275774E03029591EE94FF0969A1094531F322C23499D1820B-P2344F2504FFE09A5D458C41483087B0796E9580D994EDD8E1A27DC3C4C29154290A87A785939D34C/P16C3E38D94331B9DB60948AB9D0A1C83C047C3625D42145E5D2740E31C7A5757A840586A7774B6C61P7282721C357BF25903090FBA8CDD94A660980A57A8B067A5C666D0F0887E4EFCAB800654D26003B63PE27067E02161A5A2DBD45EB17893CE0B712F81E829310A10C30B54A453CE95EA1D92D450CD006E415PB8C34807B50D16D0A5975EBAE1DCB63090C342030C0F0DABC02B353CDD073AD0DC55081CA12410817P59F4F2E18D0DA863AA429967B4EA0889105617CCDB7F8884197A3710E6A4E31A58E98F78A8B08E3A9P518A32672041FA5662265820C827970A0F6B5C50329534620DEDE0437D1845A98A3188342490C818;PF824150A5C601F2950E1A452F0827DD80209FE1881890640800F890A092C80C62E02A081889DE087=P4BA8880D786580046CE0011478C1F3908884F19D80112BA3A2A182000021FF0B4D414347436F6E20?P04031039000000015772697474656E20627920474946436F6E76657274657220322E342E33206F66A.204D6F6E6461792C204D61792032352C2031393938003BC TURTLE_07 ER FP000032000044EE000000220000320000000083AB0083000083000083000083000083000083000083HP000083000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C96C3A5929JP9242015234482CA796C821202A14CAA39132A61AB6B4AD4141A74F8D8645F02A1F392ACAEB65CB6ELP8D562314277068710505018A8888010909201F01887168140236242E6C23240D7F4B36022368050DNP8D8A01191FAC8E098B8DA6340D84B43676A04A296B9587A6891F221F100F1092938B8A2405368536PP30B948241F0509062414312F9503BDA7A705CB88099E95850D9814D1EB442C99292E313608081469RP0D23821728602DECFFB958283803B0A0C183EC385C01010944810F3610DE211101520305244EDC8BTP6363C0466FDE0650187142C0283B12486CD0F0218102750059A0E0D5A681830A09C04982C05384B0VPFF04A8AA151050298D1F84BB885622914A112B103CA30A83152082A942F60A525831E243830706D2XP84B9726244382B8C80324AF48B529C01846E21E490118EC734291078EBC8C61C2F7CF8ECD9181151ZPA2160A035CB868818B480A1A245E1970E449EC51C39833237457834263CDFF1AB06AF9C0E265D05B\PB21C4071A522504F9F25D64BA1E0110812344664D925AA26DC5A6906744343548D91AF5F6D3C289C^P8B6E0ADA244814371727FAA90893187D2B6943B0F08E9D1E515251D04DDF36B3AA350DD092EA5A53`P1D3D0A403C22F6BF14F369C1599B6CD507100046924C00E534C05A5686A570C258E064F70A7B5199bP005524AF34120159A4A0915933021422FF8E220F4A224924AC64004B0334A070423727BCC0404136dPB89082041C74608F70C355074E22A940526253A6784383050645C1D2071A143080003028B59427D5fP440654250958D54B771AA521D12D183550830B8419B2E01A6B60B51756CDA0611F6A2CA880891A71hP9CA31F2DDDE4535F8DA8E97202095190704475CBD850839679EAC24414CA559180041EE956E8A390jP462AE9A494562A0407514CA1E0699626916980205CB866A744D4008923233247EA117A352041042ClP3102136A129C41A811355AE0991AF784B38C74A376C0E91F5174121D6E141C05851A97F0828D286AnPC4F026120D54700246DD45D3C0061150534565BC760712487450408247645C76FF02080E38B4DC3ApP7D8A076E4DF714E82B48599A64925C18AD240919098DE0420595C9790588BFB0D7522C1CB1619248rP161C4B0202367080273B24B480499CBCB0C5882A4D55A85D33DF89D2C200237824D14C14C0E7A54DtP0EF0F89F08218CD6E32286CC3BEC7D7C558208538B98A8C0032644F5410689BC52201A836E389837vP3CF2086202AC3C989D5BFA6934EB9661FC75B553C3801002D54039D2C8D20B7A869982C27578C5C7xPEC81204231454320203204C649023FAA222496CF5499F81F8076CB6D6276BD9CC01AC086B9430809zP36B026CE64190898C0E182AB15242D3A060B6FCFB5EC58CD533C3D603322262E43121BCF18448102|P27C007820DD2DA53C29D4B36A1D2D4BF6B79A391E74EA430426D4EF1268F81B544F68BCFCB5B7125~P471EED0C4ABF2C19D0D92506337FF515AF2DDDC69B7DFF6345021B3470811C1B17B5B82FDF8C4B03PC97849C4828CC20FD0190D1E95D51D052E60D9303A68585251DA103EC3E021057E60410BCC113A07PC44929237143775C20005289057C1C7BC348EC94828B55CA1E13AB40034E0398FE51800098B0540AP3C9382169C20360CB842745C5280B2582A38C18A42435AA2810D3C003FC02355B54810A65519F188P4808020021FF0B4D414347436F6E2004031039000000015772697474656E20627920474946436F6E TURTLE_08 R P000032000044EE00000022000032000000001EAB001E00001E00001E00001E00001E00001E00001EP00001E000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C96C2A6B0APC54301516C6CCEAC1669B179290DAFD8061B638B36500414789CB7C37421912890C0B686BE410AF8PFD05057F7401050D850961362E245E3570593614787A828001191F9A01099C827582117C36242815P6F904B5F797C248106011F1009100FB51F091F8505BA0E7B7A5EA94714082E1ABC0A14363131BF0DP86CF8176A0CFCECAC0C2D9688B2E2E31A81D0D1424AE79C1DAE8E9EAEBECED427C0A06207509E046P64E79004600F0DFD356FC44C12E70CDA2F815F2C50B040C2059F06EC1AB8F042100C8A060E1C7C0AP000182898E103E64E8E487C41E73F6D64902F3AC4FA04E1F407CB0D51144484F851AA0F832CA5D1CPFF4904F5908882511A28578614389334A6DDA1041B1A5C68C06062186593268261A90CE8D63C0E5DPF8DCB2A858CA38611E3C40A020CFD8B770E1D888F2A051DC740D12B0C9A5F7EC5D2704F228283038P0299240D30F8B3E1069DA22302BBA20C236E59C3AB5DDFA9D9051112850A0FF41698D28822B03CAEP9E4528E44950A09393C47453B64EA28451A428CE09E0EA4F00999DD8F8E934A700858B3600BE05B8P351A0992967081980EDDB5CEEB8B62BCF562D286A1D67E6475FC0841A6A74E118C7B4161772CD33DP7D766508FF9BD3265C96CAE55106633BEA3D8648B31B2704CA64083976EC81955F7229534318207CP0146232DD591D77316E6658749949994FF193B7369F081060EC43091057A0C64C3452CA5E8E24A7CP7435917B2E28E0C224927540CA49615078124F375E604305B4FD9584171220D059113110D6092CD3P61F04091460A2146955866A9E5965CAA935C3E5D3AD14014529413661369F0F5C06F0C9E29440D7APE90582206D9E39210624CC99407BC378D10F987799C14A030A013A843F0DCCD9185C8A7017238C57P75F7D8103584265C7FC200C45818DB0CD46225CE34DAD5A88C28400202751EE946680A80701A45ABP0C6A8743D524784D6CA43804C38DA92AE18F037A8DE9D017E4B0325480BFCD335D497CEC4459ACB5P15636369CEC4B74B02195852C7700674D21D34863A2691A3FB5542522C208820FF42BAF86DC46129P958DA5080586E45141058914A28B146A49A1CB2EAF5136A94FA6ED010A749CD041C8B5CC7A888D7BP030168897DB4A45B312E04F2664DAF90AC34E8C17EA46B0B79E51118A08261604AB038D790736E2EP204C618B5EFF52B394CAEEF054896F9DE4C2C97CAEF9C69BAD0DD480733BE63472516A82C4349D2DPB66CF24782950D9C738BAC24B88B6FD9069213D5405DE99E0D5D5C23D19E4A051C8D1E09449008CAP1FAA43413F1FF863C02AD8B5F20C21C561C8A11E3BC5ED65ABB16C90486CD50C5ACDDA4B0DEAB13BP63EA698043DF287ECD7B020FDADD1737FA64C25CA616ED420D5D51C8122B0E9844214A6151D0F958P9408CE94A0128A2131D1B81404C6F176A756B0E410133EF780AB8D1E6D242908F049447272CED32DP06E1066A01AA623EE8969BD867AF7D2A41000021FF0B4D414347436F6E2004031039000000015772P697474656E20627920474946436F6E76657274657220322E342E33206F66204D6F6E6461792C204D61792032352C2031393938003B TURTLE_09 R P000032000044EE000000220000320000000067AB0067000067000067000067000067000067000067P000067000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C96C165929P12680AD290524C28D6C965DA04279BD8763ABD28A446794011A7102D92E23AEA1A2F94C6A3004A34P1A637F80270D72058787018A098A018C01878284025B764D0A6102820D88058D011FA11F091F20A3P908A11056A03802F965D3680829E8D09197D100FBA22A190052491926EB04D508002797F659C7F9DPAB9B276C0D0362142E14C54C29230A731414D5292C421408E3622E29150D463105A4A509110A1227P1CDAF9FAFBC52995FC0091D490636014B006FF88CC21412241822B018FA4F8326D93454E6904D900P1766E346802938CD51E082841893B238C16B9401020413104040F8A008510314164F248CF8254F4APFF4F89404D7119D354869ABF36D5A0912D229189842C023BE400511A61C032DAA0D1A08D0DA71D04P2800014A4301182E6C0C88FA87828011025A5DECA8A9C108700450D8D80956090B0AFE5A90EB4BB8PB0531BDE1EA43931D8B0BE1309C892F2F4150902310F4E90A0D0D8F110049A1806ABE076A33F2335P1E4C5EE598438A1827FF5453134D8C00011429DC4DA6BBB336151C9B0A19932C0C2D540E1F052BE0P00908DC5627CC3022EA14F0260DC066DAA155494A8EBB502646426C6A982110DD2CACA9387EBD55AP19BC33EA14C040F34D940A7FF9F3333C28112EC1E4926449A1C08C1A2F3040580AC9D0120C4BA0D0P04C25140FD42D37DB39447581B0380F1FF4730CE38F24823CF58D44A35C2F5D5535751B9F0901F0DPBCF84B43D7E574825B7CFD36C272246850811831BCA0911A5C29C3DF915D75A50936D8E4A8CD8ED6P4540DA0817AC9552546564691B052AF8C341570C25F00008C054A0401B11B9A0809343B401D8082AP20C1820A2A2850430D74E2E3191263ECE9E79F80062A284F032134A8251CC831160852B279E85334P8E324A029525B1511829FE594364917D004FA54620209A688E829568031248E0D02A0922A1428F1AP8C428205818E30862C65C036C68D5F0DD600A307F939815779E0060E7F3190E042266A7538C08EE8P3510A7632A88D1A118170D43061BB8DD38820B2D08205D311C7499D0440D2629FF88B2CE34905403P34C862037A62D410500D149CF0400335D8A085BC5F68068D2753C403894A07B385020AA53281C203P369812D91CCEBD95517841D53222899BE0F4913E1CCC114104AB16902F5B9C30F26000B888E0B2CBP1F64009E30F2BA10434473B820412129ADC7950355811280020F8C39454DDC6D32C09D0D7731C75DP642CD38003159040E222C9FD829478CBD8808249844910F57657CB1C93083299E24824AB949107D8P846D64A44ADD89B08B80108870D4BBB4352040AB7D4D144E54F445488529310BDD08881A811A110BPEBCDF6E0217BD394400896D394C841B2A9E56FDC71D1828801FF1D3E852FAB0873C26DD68CCB0F54P483A83C82790F0A8BECA26E8B95918E475F5ADE87BB2FF715D467FC4DBCAE7FAD960C1A50E2EB7D2P54D0F087A5DC4D3B31E70828D43042040E7CE161B6E0B742481A64E4E182531CB4D0A559A3744581P90EEFB2D6F1BCB78459B1877B54001BEF981D44DAC1AA05A0360701B35DCE6467938506DC8B02312P8C404B576803AD40A6004F7C035F14D08B3FECA206E280033645789BD548170A0CA02920F3DA4C57 PF662291220A0017A2242064755B4344C6B502149410B04F3A82E40CE02E7E8A1108748C441050100  TURTLE_10 R P000032000044EE0000002200003200000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFP0000FF000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C96C0A498AP2824016AB0922EDBE9617B50AECE30F3602B9B4FB601C9D5300B2894512B4E4989EFC3547940D116P1A0D0505018401098385090124800D270D03231678481C36242429128C8F900D140D15158A018201P1FA81F2010201F86A57F348D0D022F93944D146FB32483828AA8220F10ACAABEB39F9F6FB861BA02P03030280368098817F828D688014686C17287D36762C29B7CC2C2C360A20051A05159F1428E3E536P08427A242A231CCCFF00030A1C48504C0D12201268F85080D1392315146C30902053C1242C469441P432D10B26CD338326A63030C400E9814246087C9CC8059BE107D1001C1040476AE4C111A09880689PFF921789D09B0648905142AD1E801886AA50A1020E1AF5116023E8107536FA9C40E1F19A51907F1A!P24A8880C8D0017032EB25021CD01421203D2740405884FB7470EB89E8063A703234C8434248890E0#P525004F898A418E0428549AB902353B21191535F8C7AB25E965C64D387B1093E07A88A44019408AE%P12C0E07C04410312180A28280087AA191B73C6B970F1D70A6B22EA5EEA3A417C961979DDCCA090F0'PBB831E691F018F0541289001427F5E722D53F0848206E1CAF569D411518104194EA10AE12ABD51F0)PDC00D5D84C8982840D093FF722B16D1B2007500D92DE679F29320829011810563223BC70112359A4+P01D321D885B64A4DC44020427AB02CD2FF1079E358A5471C6D00720822867C90C1582BA658482F7F-P9C20806D144446CD4B8D7C3588684E65534004D60032541B8F5DA48771D554345B20069270883670/P9014C90829205064413FA5011D32B2BCD491366750D0C208FB25F09A040F08A0024014AC90C2421F1P445003343050D58646E49935421C45DA50C377E35450C39A057100C20051B800475648B0704226273P3437107D92566AE9A598664A84045A50AAC49592A630023B20B4B4440A1428F0286995B2004542205PB4621112246CE264459E4AC68258D4C57A9E6F48D8004204D4FDA180A5DF91B0016A3FDAF0428D297P5C61D26C11984602A614C8C2532D1D9541013436BCB1E708E4822A9956653C33FFCD0B71851B57BB9P6DE466AE551CBCA00579C848F50871C4816286A46DC0D149BEA67CF86B1BFBD2100E6B2CE812E596;P11105220826395C2133565E44A89027C1171DBBD98E858484E288244CD23ACFEC329059844451235=P983CFA944C22D44C8C2BA5C0926F5CFF7040801EAD9C97C9088E0C7CDE794E2DA5542BD81D35D246?P6868DC0402BC6D70C858BC9581704F003690F329A0A548B2513468DDC60BF38A81D208A268F42535AP0D211D4006197CC04A86225077E2825A8042CF451C2850F696453935374D19B2D2CA8AE6B9EC082DCP3506F52D5D8DC0024C52B1BE629E2F3CBD2C3533658CD0C951A57088CA2A4A355514DF9F7067953AEP708C474221D76510D86B2B8A64F05E2FDAD4C5286429CCC80BEF5FCD9CCD7EB34CF5EDE7FF6C4470GP90D98CF5559EAFC545810B2B48166EBE6486EC1548F9D2424D0B0354D007F0CE464339DCE197E82DIPC60D901B8D0065933055CAE8FC148103CEC6004323D2D09A84FE639CAC7C021309D8C04240B001F3KPA58D092C40540318F2197940034C514299E788C081019CE7760F480123FC0110152044030B898001MPD8C0001750A50EF17BD9595250816B1D211D1DE00009B1343B4344A02E710155C36018B94CE1E627OP24484CA346808016304F53466081BD8A08C52A5AF18AAC09020021FF0B4D414347436F6E20040310QP39000000015772697474656E20627920474946436F6E76657274657220322E342E33206F66204D6FS(6E6461792C204D61792032352C2031393938003BU TURTLE_11 WR XP000032000044EE0000002200003200000000F80000F80000F80000F80000F80000F80000F80000F8ZP0000F8000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C95CAE488A\P0729D148291B52D027506834BFE08EABD150906DB61785E4B20904B6011A2D4055C2F8E329DEA090^P1B05010120090109815C88055D3464232814365679452C340F050A20200A2D670D27277F0E0E8B8B`P011FA91F2210222086A601245D673691944D1402147E366482850519A89B9BB08B0D0911247F0D72bP032E031CB85F68CDD705CC80D77D23A068DE6B24821A090A2427D3D442082D2B29A81A0605DE0CBAdP92422C432936242A27FAD6091C48B0A01116916C190C238184B14D8B485050328244381B0BBF446AfP40020E36640D1C502183A24149340117A614E22B942F45813280106102822641A602198840E6C480hPFF6F16D671E0A0C00688142EC6B4F145C60F20415C04CD04F1404B21A83867F5FC1969524621FC1AjP3025436256CE525D12A80529F6A733010D5CA02080C2168B395E07B2608626068C3F4E79F5DC2360lP040C155FC13CE0358682BA240857269E4C9909BF142C241BE1A7604DE7CA4838407910250108894AnP6C2848302FC544D046CC98330062510539D6FAEC5263A14F0B01B091A898C3C7592D1BA27CD96276pPA26EF0212D5ECCF9436BD1165306B8680325B6850DCD19230DB8372227A20F09567D18165596833FrP364EBE165A86040D1A7BD00CF0465616D442ABA1A7567A6BB125167C1851A2020529281001810994tP851C1903FC54415938A1F20104109850FFD326EB5D35CC76DF7C67D0500D5430E181801C524021E9vPAD6788080F88904A22DC8C27167803A5B04B2F1C29921D7AFF9942865A67884282352DA480405E05xPDD654B28A2909149845AB948CB277FC035C218274CE11006FB2DA45F0C3A96F447736D5DE3130244zPC4C0113A2C3420C14208D8D00527CC8C60430C2DEDD7932D6E908040033C52C60267B569B04C1F72|P80C782002D3CF9DCA59866AAE9A60225CAE912778DB1A4A78A56B086370922818038B52D066570AA~P69028169A91ED1190811D4964DA67B29904A7A819888040B0EF00985A6615A551B156AA4E01A3FC3P45628144D1BC1A5C59129CC38C052F54995F1C158E40E92EA44EB6D41CC9BD80FF9B2F148CC7145EP9A6ED480476371531772EFF92280B5934D004E28565A794A000D44F5227CA00810146C4BEA48DD2CP8608F81F54DAD43BDF64FC08E61620886085DE8B89D082CE1F7E56969035187251C82AAC40F0C075P2F06A28D003A92F042B94CDCE5A73E5292D50F54E7B1F24055AF60758C584C4572F33AFC8C70CEA0PB91D69DE1619A815B116C31CC2053748F3BB0407A212924D8409B178DF851D67C0724D1CDA98E1D6P4DAD7B3118235420C10687405116C0406673CA8B2C3FC02104AAE0244C44629D3C771E4369D34242P4E51178B86C5B01723C11C03E68C4219DDB50B75C90C0C4C2A8243F08A8B65D1D21C53E37D252505P0067334EC71F6881D3553602738306052D3C66E67891E7C4B179996B45C6E7E03C6EAAB0292C2C90P2EE3895292296551B756F5D7F432C2F61572478102298C5090BC7C399282EC9977590BD203B450D1P141A0420CF92BE0BC48F8EB00FB60D8572F8F11E8514D0C7185E44080528E042380B83940855A503PED613F7BE0487EE6E61A845486191130C0336806987A81C3059EA81F686C509102C46F031188812EP6230823D08865243B081DDAA902917A400041BD0C0C12A50035E08CB08927012A7C0B70803868F77P89FAD30BBC7629D728E053508CA214A7688420000021FF0B4D414347436F6E200403103900000001P5772697474656E20627920474946436F6E76657274657220322E342E33206F66204D6F6E6461792C204D61792032352C2031393938003B TURTLE_12 R P000032000044EE000000220000320000000017000017000017000017000017000017000017000017P000017000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C94C525214P0A4BC9692812894FE1D9EC7A3B0D1296A420352C360AA9751A0CD2034163D438A16CD3AFDEC878D9PFE0D812424011F5805010105888B05618F36288114167B4979422C36278F6109059F881F01581F1FP2010A9A6A4881901660D69026F14961D2E643665810D2DB136038136BCA18AAE1F222086898B8187PB1C1B1BD2336047F6D0F5CB645149B36B0BC9C0DCD0D14B3BC7F78DBB61CC19F1F1B0E142D140C35P69483616F4EBFDFEFFFE58BC7061250AC03D2E148050B8AC0126222C528C5033204AAD837AEEFCA1P7042DCB8668B5E390AC4498E8D141891748B72E2DB2745090A8930014121B344CFD09513A6CE120BPFF1A0AAC245050A69B0D6A27283470D028512264201E281855C8941672B1EC001BE0420087941D34P09B028AE000947681D3005158AD7AF5FC3D48839F560D043809AD20988E1B6CE309E4753A4B001B6P0B8B06291CA550306044E1C74552DC85FC6F443010A448BCF84AF9C8371020486C28B74482838524PA87536721844CC04AECD0AF0D3AD819BAD14468C453179B5100482BCF9FD256098B7BF9C5A5EF42DP84423012C3468654C4D629B87234CAF57CAC60A3D2402111E1B4EA2ABC4861C1DEBC4009D628A006P37036438057A19EC51A1100DE275FB4FEF2655985103607FB9E5C0598964904102A9404093325A38PF50A38B9FDB25C171C10500608116031FFD408488DE35623A03C65CA7CA83C10533309ECE7D61B03PB4404F4F14ACB7CD4ADF8D3388530618405D23E31C32122F464541D0080F14D2E209FF68624E1D0DP4802DE156280D7575F3D5920C0810E719692581501138894C6A5A154473608409002CC1941020511P9050518D7EC4D2820D320ED18D602DB42904074F4CA50116719613C57F1DB0E727158B36EAE8A39DP1509A91E9A94414236884E4A441544918099225EFA59811AE35C78C4612AC63942A8CC25A4C00349P82409A127295A3C2A29C2A93C522D0B130C513F3A4334F035D29DAA61AB065A145040214A7D71FCEPA6E35FA38791A1C0487F34D6D25F63A561C6093454D4A80B1A6D74E5B94AD160FF5C0C951C1B5771P7D2922EF8AE01458C176940D46C75F2361E19A844E398202382754305B672A00E39159558D874579PE245E04039492965C30BED8295703472F0B2C87CA7A4F2C0284D3123CD24BF646A4B37CD3E474848P19A002C103A031F3DA8F220AD3C61F29D5062521F292F214168540501F292F2932313AD3DAA2C944P6908EBF1226A91389F0833A5521F550564C06B20729863AA179552E922277FD1504105AF89F2C1CCP222F5388225686230EBE5D84015A7E24B444F074002B237806C940608A23625C67610B00B08AE844P977698820B1254400D303906C24C89E3258319C41FC1320C35BDE466140B16A9FC67071CB4CE8102PF7A6E1F147C514A2CC8C53098868964E6608404F37272C021B0636B0AA8739490DC309D024362F86P59437A94540B230C42F450299C603CA59877CC8B196695D12F9030A2F9470AB04C95801A15606494P1B74B8858B59E00BB3132C14842A85EAEB70E451378A43812466B1BC34C1807F60C9CB0062E0B340P44230A3CA1800B80B33DE62820027F80C16CD0018B8A4444132D5803B52A702043D8A60530984837PA6709716A8000A8B3A89025250954F54A0013558211252E007046284034721031666E80B1768AA0BP269847FE8EC8C4263A913941000021FF0B4D414347436F6E2004031039000000015772697474656E TURTLE_13 R P000032000044EE00000022000032000000007EAB007E00007E00007E00007E00007E00007E00007EP00007E000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C96C1E4923P50221150A59C58A782A4F80412D204E965B39D4E8D41994241931A27949A92AD27298206095D68E8PC10905010105818283110D7D707E0D34652C764C2C65958A8387545F091F22109F10205E8483248BP7E27360D142D140846169149366F62A6247B688A8D7E82058719019D2083016FBFBF7E037E66AA6CP2460242B0DB2924714650214236FBA67AACC362314CC0229290D1CD6EB422C34BF1A1B0E15230D35PD857ECFAFBFCFD1D2F6F1428B051CD1F960AB8486858A524058501161A8CB361B04E053DB85229E3PD52B909846CE50B0B191AF62116C6C1A21FBD5C913082984A85041668C63834A05ADB1D85969192FPFF1A15224CF9C5094408100FBC7C7890D45081086F18316BD062C400027EC04838A10E490B170D52PA8C0A580838276360650E8A6B280A95DC756728CEAC224166C36C80C8801EEE6897A36BA76608560P84DD26235CD0FA35C0C588B387F9EDA413B922A5065D3041AEDCAF82DB37DB381F492110E9879904PDBB1112060C08017372BA5163D84C55A400614246820E0C5B65465E0944935A082AABFA972567681PA212365EC50A4DC1E448CF54892F2C54A6F4AD178900C48A7D188F29107554DE789729C98F435A72PE2A01112040202D3301F5E869F8F296ADA3490F47399757FFCE2C07C0564D009281088E005271F20P838B4DEFB9F0900D14D83690724390B0FF5623F53032822ACBD0C41F79E389F000311924D3802152PDD340237D06CF08502AD24C10109368010C12F294850810B0294E1932EDE1563008212CEB70A1CA9PA44299052F5490A141B661F8904D8A40F359236A35924A0C86D1460477488609E6467EB091820D2DPA8708299A32960003978C060559148A044E71029B4F0400A1F68A041011BE0C286607F36EAE8A390 P46DA01256B702829129408D4801430307A699F5C2804825B147DCAC4380F44B0455890927406654B PA4E0580C14A8E028390A3CA01B081E2A37926F553D4483A591A5C08514E315328643C1156983B3CDPD8D01C7B9CB140822853241BC1882790A098967968C44B19DA99F906171B2CD2FF0C6CFF39E2D62EP36A9416C457E19E9532FC97C514A547ED443C34D0294CB59B47DB154CCC11282F4E44D28C4522C1AP489A32C5C4A765108C2F88F4A18A33B1CDE60F076A04D74B040783E152794CE2AB0C5E1EB717DC96PF852D18909F7513C8847C538808A6B0314396F1D94A8D5861E988817C6171F80A2D44C4EB6E92133PD4AE43F025F2FD6234042698104AB2E7714443C88D9580400AB2E0F5F399667CA8481F0E583DC878P9F3C60DFCDE379D107541CA1D4826B040427018F0028C1327022F785D021468BF285DCC4B8580833PDBA4D1CA323628108006B99DB099111E2AF092401E8A7C535B4469823479087629E693DAB4901078PBA92A0040B98BD34BE710A80BD874A238690F2B6797D78B99BC2C0A9E01D2E4D5CB0D6061BF01A68PBF283C92924AA65067B5CE6E39056523AC1001AB3F948639802E5F16007A206BA342CEBF18D2F95C P5ADD21A91248C19931420B0D344A29926D74FB2F23420B870048208140392A4B69514B91E095065D"P948A12247048A4D6D213D7386727056141C0061035DAD0CE73BB8941032CE0821AB4AC081D140DC8$P5E248C422D422DA53215111C2310CF0540206FF2940C8BC0010E98A05675D9A1108748C475040100& TURTLE_14 (R )P000032000044EE000000220000320000000057AB0057000057000057000057000057000057000057+P000057000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C96C761003-P852292A892482CA7D6C96A3C408A042861A30C29A7D3C0661BB847A486BC6113C0CCDBFC91CE2E9F/PE60D051F018405050186880106110D28747336277D297A4B246D0D6B050988871901091FA21F22261P1010A482198657098072360D23176C241F1F110A361C4D2C36237D7F930D028124860989011909193PB8CA050D249E056B14732E96431C23145859492C14B26E6F737F91D88036422927242A03DBF4432C5P34CA1A1A11D20D141408EA091C4870DB2F1B0AFE852BC850C9BF59C11A6E6910669486310528C0B07P11634D99698738C14A27ABC18917302A492C52B2E4A1008360828000620CA298CA943133048844BA9PFF7F78548EA3A0528BA47472A23968500866A90F63C44010B1B35F1C58C5E690487085CB37651FB6;PC611D0879D5664C88E29103B47801B3A274654A8D06BA52F727D6CC0705B876C51BBF43810BDA260=P5C5DC088136BF945E2412765241433A450832B096F78241B61F16BD2C2222C52B0B1802D2F9BCF8A?P539090A2AA0026369106F061A3260E5237272CA06E386EDA6A05D24ACE69D5C080814E8860C9163EAP9BC26E8268FCD9E0C9A90A295C9E3A19DA7E05901B0AD79E77E09CA7056D5886408980F065D4079ACP22407C78A6286D2C4D7C64B7A8804252030C1234701813A2B94156209E34754829A8B0F71808227CEPB01D716D8C30821B2DF826930235E841FF8E3F80D0404305C81062E228A19042C82BC9F4C3C72478GPFCF217138229D000576BBD168734EBCCB16221132E15888BFE3840031B9959C20126203890800A2EIPB41087021C88E616883D3640C31C236438477F1464D8C7372A8C30636AB0A923005274C8964292BFKPC4D08E6648D830461C23CCE20259E2D179040B033C90C218832420C5097DFAA9E8A28C364AE79BCEMP396A090C983446020C0A486A14059C0C624DA29A0E612309354570C500A086CA8D6A2EC46061AA89OPA5FA4F192ECC8AC299927D7345239112F1CB006E7954120D0290D5AB6236AC36D32822BD809724C0QPBA85862C5B96844D0D36E0CA100BCA8E82510415907585305AB988020A145420FFC709C5EA661789SPB88060EA2B691023473F9C8424CD2371C8B28E00D866BB120B354CA3491DB2F9989D89DB05606A70UPC3ACC36E192BB940405E8008A21322A04C4848C63CAEDB8744BF64D9800B0580606206EBA9AC4828WP0912E2C055FE4142B11114BCA02D1207215540048A94B2DE179DE01213CC2FB9C64E1B36B4E0C29BYPA751B056924C98F7102041B78C6202EBA172B42758C9418E856E11F08715BC6881C93F7F5C61E28F[PA140058109A744D8A9A70D988A4E2C400502C2712074B5986908E65BCD332288F0C0030ACCC79E84]P3C55D14FC26DB400C7562034C042A6797C785520726CA59D893561E7603543CA21DBB350267CEC16_P07F967EF314923B7D1224D40DEA8F4DEC5C09A041A22CE120B9B1927B84C35C94483950DBE23B10BaPA986A2E59324264BE336D8D6DB37393A1FD5339702F25591820415B440010A47FE93E71F2EA5E51AcP6444AE6992002EA89082E6DB10F08D045250C4C1801D104D19C0338CA344021027E85B028992AD37ePD1691CE4125BC2E6808D01FC61000111020BBA34809D01861CC5320705E464925800E039AF5B14B7gP22D0867FC0C002233892AA9C47915138A00217A8410DD6304323B4001E1A8049013630B5C8F4D057iP9653CD6AA46139231EF189508CA2141B12040021FF0B4D414347436F6E2004031039000000015772k TURTLE_15 mR nP000032000044EE00000022000032000000005F00005F00005F00005F00005F00005F00005F00005FpP00005F000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C954DA2824rPD0E75320A59AD8AC7648190D28029B6D406A9C1AE651A326BE6EB59C8622213590120DDB19DD2814tP027F80807F7E807C24057C360268038D14081C2A3657360F36245B29627B7D7D090120105209091FvP10261010530553207E05097E666714278C6889242C6F5C360D6568140D150E85B00182C97E0EB989xP68BFC0362E15BBBD422C140A2020B22E2E68241C1DD9625F7960C0C28E7CD094D7F058290D091A0BzP54090A0A0DBCF1FEFF009BB07013B0601309245C9080E1C2463F8358503C780022192812025EE869|PD042CC2F147E48040B07AD013B3427068421581001051462C23C6B052AC00711A340B5CA902C804E~PFF58ED0EFD1A718100300D741464D2828EC2805F8448182094CCD507293629EAFC84A7111F04FF52PBCA4010C8C9E32CFA2F5A91212ADC8670D5008387782020B1636462018F1F08D8A71D7CA25A0E1A8P0B8516239E405CCCB8B1E3379B6C287840C2D1E380D4B6758B40C20BCBCBF1360D6811C6A318BBA0P87DC8D46A96F8A13294F0F3387B25603B22712BF80813A200B17FABA5D9515C1C28B0131F2EC2960PA0A72112113CA180CDA7EE098F9F89B07831A2C9BC3E22F308A010CD4FB73FA078FA294528D0A076P27609E6E30A2028133A5129050A1654C50F7368960825601E0A48A0854F4D487029C4153D8786A88P44870D8069D11105189E508002CAD8D4FFD329AA40A0C00719E0F413490DD8E288180FF5059969BFPDCD180033539E75355A32C038C2C7029428141A6417346279FDC68882E7774E5CE198B58314F7658PA840C203DB28550038306238CC907CA0604650B79811CD8FBEBCE0621614A490026572548844647APA444410CE3D169C1134F41991A139D9912813115A4D8C09E6F509282022394A1409A6E12EAE8A390P462AE9A4589CD61AA55958A01422B2F08329136295614A0065D8F0E9124A61B229627C9DCA844B6AP7454439AAE1E81D70B1624B6D12F61BCF0420A673A062C12789137C653278991C71A5D686401038CPCD03DD06AFE45109274FCCA6161FB82987120D346017EC162CC8B1CD031FC842FF42052A9191877FP880C82485025D525A647BD2161C1B8431C3AA24FDC74AA51348894616421CB445000599EF031C017PE21AA1A59E432094A4021894FA9F7308C7120B8FB014D00C4A503082A10B2A8815C609246C20C109P0A08B48F699DF8916E2B377DB00C28A50CE2611542FAD802798ED481C009FC1E31C21E675C594045P36894291CE577143A2CE7FD0DB8E182350E0422C362915B316B690A096C2056490C14DA374538A2AP52E86C0AD6057056EA30798C3642A262F712837FED20C39329A688924A8E5789F05E2C60B6C1410BP30A0008F68628AB4CCE5695F35CAD4093C00C132212B82AD6F8B180B4C7B7D7478D5D574F4744C19P4FF121804178A1D8D44E3581801D004F6B83FC315CC3C0F482008D86B65149CE1C13B2015365EDC9P2C18BE2B400A0898FD0F0B93EC2A8CA0FF91003A3073BC8592A0A64D9F420B81FD52C3862984775DP4AF08DAF352D7C449F473F6A5A80612F0AFCA2C0C7FAA9800BBAC086F1D40543ECD8C89048E02541PB9EB049F1948606A3082FF290C01C0388258F41086D841833C2F605A5D92D60B0E10605D0DA098ADPE0543EF2C4C0056C20E1A4583087FF3184023578980C25B53E9C25C06E14E04FAD88E0023569860AP2468C1A0865804040CAD7D4C8CA214A748457804010021FF0B4D414347436F6E2004031039000000P015772697474656E20627920474946436F6E76657274657220322E342E33206F66204D6F6E646179 2C204D61792032352C2031393938003B TURTLE_16 R P000032000044EE000000220000320000000037000037000037000037000037000037000037000037P000037000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C934DA6C8FP87A2D15035AFD8EC3165A3909E545BE374A2342AE65703C64EA55857D67B494929408940A1402209PFE1403640D7B05797A0588887B018B546334661436232317368606200F0D5A080762248F248D891FP22100F1F79212626101020011F0FB27B54058F830D085A4A5C024F362784B96724898B7A0106850DP0A09A28F2E634F2C1427292E0329BE426234240A0A7C2414C1282836C1021481ED02C40D03ED3130P022F0223343670DEFF595C2858A1A08FB80EFE002A5CC8B0A1C3862A2AD4DAB0215AA511091F6A14PF3A7CB305C8FA8481B4346DE80311D8509E0C0A1C593110D364810F34BDC07102022442870C2C649PFF5C05F014F8F0215629A21F3264F8D02800210511A4F96C6046CC231ADDFE4D12F0B301893CC90AP05587A1329D2525E115131D3C0868B0A24B2361466559E1962B98CF1094992CA4F982D3232940017P6A54121CBC41F9A0C18001AF234E689C4CB9B2E5CB987DBD50508B6801046D333F94A06084A81693P84D5912B3ACE08AE7F0674ED6BBA018A47774F0C785247890D2E4C5848EDE2868BCF11C2702DD3E3P356A8406348A3DE24D7212854A1508D43094A0A0822436C6E149006295288ECA9717C850EA5053B1PB7F83E1A70DDEBD7684DE434A8313D39AE558D9C12CB2A45C1521E7B48DD9240027CF56443432CD4PF5485E013682202C0F0C9840866825B0FFD724FD090610186D51D19E030D94D2948563ADE28C3354P09D2451F29B4D00243115A259F74619552C857C684E10E15021091C2240BB1001331C1D8C5177A61P8C51A27CBF514615907868E31512C5D1E5257D66D450C300564C4680390D24F68F0443CDA281216EP90D0DA42ACCD69E79D78E6A9E79E7CE6790D6F29A8A0669F4CBCF085217A3C48E812D710E380061AP444302378B26C101152718648E6C148858A9110358E0424A35A496DA6F0CD4A92717B23D31803428P1043CC6D637C61033F743171CE080CA5D0513BBBADA30B4964CC560D5DAA0E01C549C1CDE1C430EDP84B187A4D04D685B5B30E1E6171523B8E0C639C39010E908C90A91023111E0F4FF412EF884B21550P8D80954C23A38C14929795A030C903B3805081A742D470C726371562410C36A80114230C17E27022PECC5C717720D8C40810B7D040082A2490877075309447A1E5F6D26920051CBB8170058CC1122CD09PFA44764225F6C5C504072990609E04E77135E18201A282C7CA388920025343B1E794875261FA8410PA97A73A93A1E89D4E6CA21406042790B82602053B3206D3591C296E150175212B2D37A1A43A00081P5E1B38162CF23A2C5F2F0D1927CFC2012A4D140422E0D488512B37E0A1C40EF41443270C5980765BP192FC3C88A613702C2D18B7888E9DE02A4800009D92874691781849248010EB0AC877B87EC816290P6D3DE1E01371794BBA278921D15083030F33CC5C2E05F541853A6C717CE46EBD8A517CD52467CC87P31244416524F549439598E62D8650C31120E9F3609B486710202002B746438061DEBEA75160782A9P3460AEC3BD4F1C3F0405093819AE400523B4D0891CC619868306211B84AD83023110D524CA059023P7DC53C2918C177F2F32D1018200505A801092E308F34510601E4DA405C0695854BA5882809D88002PCE55199CE1AD81330BD9063ED0161790F053CA7207B92688C31EFAF087400C626B82000021FF0B4DP414347436F6E2004031039000000015772697474656E20627920474946436F6E7665727465722032<2E342E33206F66204D6F6E6461792C204D61792032352C2031393938003B TURTLE_17 R P000032000044EE000000220000320000000084000084000084000084000084000084000084000084P000084000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C96C3A9FD0P26A5D1B0D51A2E129662B3726DAE468542B295ADDD6FF7D8B5354009852D5AEC56EDA44222B02F04P027E097E7E011F01795489366455530D1431734D360A0A0920200A18728B890D01207F1F22260F70P01A426100F011910107F050D8288540E5D2E15557446169D55547F800E0982B10583800D052496B2P9E5D65BC4E766A6D8B5C14535F8DD753312E178F0DD34C140FBAE5EAEBECEDEEEFEC6E36840508BB PF0463092EDD88B6D8E54486899224F0B953467DAB808376F0F887D49CC34E3832C41040BFADC2C13 PF627C10743803E82F818F223B25909A8A879F4AE93C6659F0879049441E4483E10E02093B5935B9BPFF0EB87CC5D368D00D174F3C3DA100F6F2A03F7C426C3C78A0A0009C85E4A2D4F8A0218086506BA0P8A1D4BB6ACD9B2D760643DBBCE4E830816156C81884FAA1B778BCE1844A1911136958D1A1DA5B070P6105026FF83CA8D1F60B37120904CA221181F233810E042A4A7406AB404B74235EEB9251A01D66B3P00F5D1C3A7181F40019629A85CD469E825352A59BA84496E536470F68880A0E0D4AB9C1E0B7C80C5P8CE7B3717778D57073E58EBF80B1328022FEC1E3ABA9AC02E48CD500F2338DB8484840E0E2F69336P890A2888059B3EC70C7B6037B0B4F7AFFB7282C107130A15E881CC6B24FC21D966808545D635E53DPF2DC41D04974903631701103032E7021FF9615FB551506565048F5C1061A24B041256BC123D50309P3800428B509C83801C34B2A5E38E3CF6E8E38F400629E4904416894417E001F29F911DC0301526A1P08E4E18353F2620306A69842820B30B437DD3591B4A10F0C648EC6C49518DCC50E0516B467C74B6E P2CB51460B68DB64807DAD8018201F60CE58B1B2E14808216362C250F538069936827D9486500080F"PE418853FFEC144C59C032E336122286CD3571690CDD8966097F6710C479A0A838C419EA804E81405$P30A68E1D6E3A128001F95564A06AC91814D985E338F85E011B60C24719D9C410503234D1979F28AA&PC62688208910B4241B53ADF2814EB218159F4E23ADB2076FAFDCE411082795F7FF9C192C9558C903(P8624600022D751E11A1F20AC125C02C741B0C7540964B053318FB841A8B251EC179C66D720136828*P560D07E3B9C7159700C07CA496EE1465B8800002D2F042010106C71741458570D41D04226CFBD125,PC714F34C9ED699F1F1B5A29581547D80C8244A7E2615E080A58984714F54C24E8A0D17022918E327.PB9BAE6870127292010BD8AB6DBD2D2064346450579F0CA5ACFCB6CC9D43621D7051FAB8E6C7A356A0P9E90B0D4BA3897538D530D02A3B7DEDA6868832F2E7CF9E09BEC2AAA0D097DF7A3D29F8B185D83362P63190C6A425FDA69F99E9638604079ED41A511A4B328200115092F63521C1D4205CC2582F44907A04P99C865025957BC5813F79179EA4832054CF6EEFBEFC0072FFC1141000021FF0B4D414347436F6E206 TURTLE_18 8R 9P000032000044EE0000002200003200000000A50000A50000A50000A50000A50000A50000A50000A5;P0000A5000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C96C3A9F1D=P8B0D5A4C9D4EA4C4E753203528024A87954AD96CB1534D40B2914E825AA3613BD90614DB9742D953?P4E09011F242A5447367988670D058D018E01918D8E938C11242405739B578554290D111A09930515AP579B8C5A911F2210201F5A222626AF20090F20920D599A5F0357671D1429898643676D9B050A9159CP0E0D8F92908FBEA9D77629C74F6667767370706036026788652C422C23995B812353DB4A1C2A14B9EP20110DF2FBFCFDFEFF00030AEC5006D30705848E2140A0C013820123F260D3930A15A36B74AE491CGPF12586187E125D2CEA12ED5186695B4088F870520B974C8C7CD59983A84283112DD22DB1A140C12DIPFF1020144868636E0E094991329C8C1420C3962D493F54CB0253DC958802CD842947714E1F8C34C1KPA522578E828B2F35FA0C1442410E426612785151815380B6B578F3EADDCBB72F5E0A0AFEA8E06088MP0F26982354E86CC28041A2337CC49029368C028A13BA70D530948C84865C9804B8488462939E0174OPF0801500914EB0135FD8614A4062B13C167706289AB9A9B40312117C1598668D26EA3E67EEFAB362QP4700EC984C4B454A104810D36A0DA88F9D53CED0E4A22FCAC69833FC7AAB57813E40580F4B50AE48SP8CB057144D82580A04F18EA420718F3A2CDA74FCB14900BA1470DE03B1A807C13DEEDC825D711135UP7082724F70B09F1A359050CE73D74C12FF1D52D70D6700232428400A6C883420400314FA93876AA8WP3442CA1C1594D208268D7082CA092FBC3080001750A0DB40DDCCC1111D5DA5725C6E5708504E030EYP54408A039720A4005EB8DD440126889C20C113281490425025E6554C2ED42560A55F203D00189B70[PC629E79C74D669E79D78E649852284E9D9440A1560109727544C66813EFC90611B1129706560040F]P6C068519B391420228232C3A441966BC60438F349CA19B396784E1C2A9351070C20306805026142C_PD883C928112810510B36D460030A5C9D254769D7DCA1A257C040E6420B14C83608A150B881891C2DaP4404CF4C275C56D115167132070D34CCA19B001CD5C7080AFF34FAC709EC8045FF5E03A575F15B71cPE06C4987737D02748793C85D04530106C0078954FB7A010E6C76D8D022483FB2D6000D0E84389C74ePD1959249010978BBC8170099110C45323E128823D529F5C85339F262CD576834408FA64EA4C04067gP5764224D002E4902147B5C0420428193C054113108A4D0420B071B71420559D0EC050531789A8A16iPD4B502542C0980B0DE2B1984F08A33D93D12D6C68BA4204512A09030B53B2772380775ACCC82A016kP56B317C9D6D590A2491E2BDAB1180B2C1351434FED2560C050906DE24201200CF781D50A9C148B08mP3B43A5D294EB2E4CCE5708EC592980482A4C9E87ACCC7C9D521F378290C09BAC88A877CA7180C008oP6164B44C35B447FCBAB0D7249EF55C1FD9F4BD4DA95F381BDD6F32534209EA18C131000A06033441qP0CC282F19C26DC3A006F71144526804736C010111F01D143CE2202EB21604633A136AC57522C0243sP05156C490C918B38C7CB17A944F61557A4A620CA071A18454F46E002BC14A960A432073A92508302uP6820001A485CD1ECC58B1414E02C2E18C1959EC00E15D86A04F522126CAA4631126470834F60C160wPFA528F13182801C141A19F8E20071B0C6582331CC20550B0C21CFAF087400C225F82000021FF0B4Dy TURTLE_19 {R |P000032000044EE0000002200003200000000B90000B90000B90000B90000B90000B90000B90000B9~P0000B9000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C96C3A9914PC92641523D930A67CAC61DD9048DC689D20087B9A701D7356A91D5D7A28B9415A60414DBE9C40D37P0A7F01820584840105010D89052409807E7E3614152362292C7143790D24036188831F21100A2009P091F10261020A61F2220838F61343603645E5712150AA509AD24240D5C649081860E8A09B28587C2PC365140231B79E611424994C297936610327900302B6C49849020A2B24E7DA4F140A8D1FA7241CEEPF7F8F9FAFBFCFDDA294458A418B022450569243604006123130B3D36508130A0A0C18811145070A1P01A998376F7F1C3820312B92472E00FD49B2E5A7808165820E21FAF00104AC0F825A6538D4C01121PFF68E1F85C6221B05D92132440CC2B04C85BB8300170CE841533C3879D38332C2BD44818C89346F5P3D9474269CB09290BE5E0B27801C89084A692282E3AF080B4E290ACCA9D0C05EDDBF1C085040F0B7PB0E1C3FCEEE0A98798DF586FF31E54F0DBD8080B0B5CDA72F9E24D1A85361706046BA4206C932DD8P1C05B37849088B6E95688D09F394B66D637CC6E0E386B49402BD6DFA1833F653514C927F4647D2D3P80426B7E14C6DDDAA30894F543A702EC8C5AB3D09F04C6920998830D818B8699B67C242B6C107741P0920C897AF5D3E4C403E1BA8F1E84E2048492F08F71D4CAF98F0C029A9C847134E357DF0533CC8D1P36C2734E2005022BBF68104153028403FF080932C124CB21D8B957DC70FA8D171D7A5A2857830208P5070004B2025679D481534525C49B50DA0064B3518504004F110B60F075EE0A10627650D77110564P9063434A4290E0C0071A68100F65867523064436D0700551950D91020A0E98724A0A2394A98F0D24PD8B001636ED669E79D78E6A9E79EF860A682697C32F19064DE04FA440AC18010410A3518BA448C61P269025082970892737C44892C7002EB031000A0214B00C080D007A98402FA4AAD130C444570617D6P5C144C018DF697020C0D0044A6112960568368B51513063964A040469CE434C789A5EF9070207CC1P606483045C68644B6D1F0DF30C8A6290410617F8D8A0C0036F45B041042440D9FF421F2768C48731P3470441253616CFBD42614DCE39F0471F2E2C267C36093861F2870428290CD9098DC86E0D106121FP23D4936F3E9952F02E23F322A2318922CAD4D223DE38A0D1842AA490420B2A4C1C070B2DFC687144PF0C94488885661271753F3A6C599C5230CF002954F3C46CE53A21EB2DD213589C0CA3C093C00C120P3DF1F4CD1EE0EEE3CD79DE1812532A4A8D3ADF03A680F0004E329F08651846F667C10BE4F8DC929AP5129DD754DF23DF0805535E547C833EBE51AC7169C04404504D2D4164676714330F68236B502D34EP7BAF36EC19CE5D910227BF34F84145D7FA01A2D151696774C78408F909095E18F385462A2F212E08P0A6497C00618C4C9CCD9271B260C4A4C093B83560330D8020303D10DE6840D23F432CF33B53C5563PE0D8CD6C0822AA3D53F03702F82C09A77C9DB7B20461E5B1075B4F61D7000D159C18C9197E0810E0P4809441081060928D042DAF904E86D37866F028D18CD19C7662401103815004BB100415DEEC2196FP3C830FD6B8461EA444A121DC25570CC98661FCB3193EACC706C6025A1254708B3F95493D1113C608P5C5007471DE158C148C02E34E842231CEB370E0A460D91A080319402041B60D10E8FC0AF1448C005P436402B392C8C4263AD10941000021FF0B4D414347436F6E2004031039000000015772697474656E TURTLE_20 R P000032000044EE0000002200003200000000D30000D30000D30000D30000D30000D30000D30000D3P0000D3000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C96C3A8B29P9BED94086814ACA7964979491B0DDBA04119501A28B01A2CCD6E893612A9F0011914230AA525B0ADPC1340D0E24060505018688018B866A05246A670D27521D291D6E6F4229617D7E608701091F0F2020P09A3262610A51975A78D72056C6794362C994C2C7EA686869062A08F88BE8C898705A801726A2790P657E771B1ABE149A49132D52D0270D237F61DBB9D7E4492C23240A0AA809201CE5F0F1F2F3E45129P0353E3F49A142C142914C4B838D3C2C50817B2C8EC3B1245400B3461065002D5604EA3477FA47CA3P04A31982149774016CA06048177C67FC2422962841061022407C58F400C2A204B350356A60068C00PFF7D6F029EE8E288CEA20F22444050902180AB998B14F99AB5E6048C3E021AD4F0668D0940750F5EP2500F6692218748748246810484D593D0DFA7485436205C885E6A6B49003A9C13BBC78590C1CF117PB06125210F1BF667474105098AE171E090A2020189554090981BF9C82E1B01B7F5942245C0B7872EP3A13F167E31BB8D76C048C017362008272FE28184AB17980000A156CA4F9D3EDCFA20C19663DC289PF38F83490210562091A2450CCE4728B8502007840207232C5818E18742F18AC790296B1AE0C3CCA9P38A90E90C8669E0A4F921C1430C03CAA2810100408C1071924508A310D50354937AD61774D140DB8PF0452838B5176058A32895947BFEFDA2FF0027E7859147192D041547031558F0C91A018010952BA3P203355328CF4559E195FC4304B040A0CE4153AACB493C01D0A9496D51AA12C538003D3CD41511860PC0451A2E606810C0061F3EC1C20A71C8714249268526892765F1B4861E36F491D81136DC161940A1P7D21052567A8460E0B816836164276DE19C603E94800669F84166AE8A188D2A3E208841596E81336P2880015F8F6A7906091A24A04003953281000569602ACA099D7A46620BA08E21C75840111A05695FPF0A491378C9E11C39A7DB2608117A499858FAA62A439C00887BE4AC250918451DCB267A4049A9DBAP9687461950AAD117389F7C62860A1CB09042AB88554441919764D1D0147EB896FFD5277320E22409P1124F38724ADB58080042AA480C00BE00A1190020F1003890B7CA080AEC113F5156F82A11CC2B0B5P541D59516B64F6D1EF2E649812413BCCF4519103C3597B533155B4F7014E168D45951FE83AB8C467P243C105016A0E1435A03631123CA2125BB3753023155915373B2BA7642896FB83944CDF309577287P87B8A7944C554C6D8C7260182C09A7F18096E624604855802B372105C12AA6B4271322CFF1A56019PFFC453CBCDC81CA59402A7B4A7542954FBFC4B732142D7463D7E90309B21275701B4090FA0E2734CP273B1580010C17E0DA7003C41003037A50E0A813FEBC30C00B5E1C9E4CCF303172D3EA5239495B40P310C4BC108D37132D5E812519080487353549B20234FAF74B592B3A0705E0C520C002F7F57C4FD32PCE8E9BA25938B14EA5F392B210F3E48260D80CAF8B1F680042010F341147290ACCF4810212845351P88C330C256050A2A4B46B0522466510A2044FAC474EAC01B2448E00217A840233762D71A5012093DPA0042808184141FA95846E41864DA2338350FA3291669D40006AEAD4B16E26AB39D9A202147CD4CDP282007827DAE5445E8C63A34E502AEC1904D3420C1F83E508014BCF0864288D4080A0082086CC006P40AC600A0251991F2691081C50C113A748C52A3E21080021FF0B4D414347436F6E20040310390000P00015772697474656E20627920474946436F6E76657274657220322E342E33206F66204D6F6E6461"792C204D61792032352C2031393938003B TURTLE_21  R  P000032000044EE0000002200003200000000E80000E80000E80000E80000E80000E80000E80000E8 P0000E8000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C96C3A3914P0AE1344A243E249673CBB5BC6C8DD3A0411150C28D866D9C5693592C05C7D66A45B55C246B7D6AA7P490D050581820501871F1F8505098569026669032D795F030A0D78146B6602608C09010519191F87P011F202610100F201F57A683240A2E7D28692F2F30670D2D031C79422C2F9E367D7EA882A18785A2PCF690527C803D336781D150D0A29365C51200A20205680082E1D51366B6765608069232427EB15C2PF7F84223DBE21111DEF9020A1C4850188501E41490B05790201C750D06AC4B63A74503120DB774A3PA0EDA09B060E481410D92081C8047EC0FCB1B18905856F141E84FA1041E1184FF2C8FC11D4EC54A2PFF57A1444020274AD0CE94EB28C00998420DBD4F861A595135141629538742190A00AF8D8D18EB48P24D800AB9109272E1B9063F441418175363CF9294922EB201A68DA5038E1095BC6807B6C9010A940P4283607F130FEB406084E2C7C35EA89BE617F2C0C05B4150406C191F0B0175288CA0E0627003339D P99045E37E00CBD78698EADAB9C3AF2A6D6BDE6EA0E732CB600170852B448A1C24B8A861462A4C1DB"P5B655D520102F971E4C7DAB57BC40A881E5D06C5B16978D3A0201121EB3365A82024C81000A5D846$P83BC6F52A3F11D08B10F1C445167ECE2D645828CC34A2BA97C20C22B828444D25C2CD510053A4F14&PF1CB1A1FF1D4DE071088038B81AC1C68FF0A7B060C92921A02F0D25A01350987CF2624ECD3062888(P1488DE7F8598160F2012D9A0000522A1028841179117DB5E840C3648518C38E0400546A5B41F4B47*PCCC199136790E08A15561836516C8FA834571FDAE5A8146436B8E0421A2F1DC1800A70C1F5945323,P8CD0C294B509F38E5B09A480519DF9B0A0864283EDC9E7A084165A5B0A2CA4100C9D865219130624.PE8D9A8302C9C7045020F90C0E8A448C055804CB034C0E9121C00D0C208130DA68003B48D9A4E99070P8526DA1916B8DAC16A718121518E9E6C72DCA8DDACB18E000D8C70022E6D9070065C9BD6E6854A142P7A292D32BDA901431A7AA6201C407FED41EC6E17256BA41F639030AC0BA8D261FFC3AF0D596083364PC7CE17488F23CD2BD58263F4F214BB0DB934AC4E0007728A2100A66192516BB041063E1C70A0A80D6P2A5080A80D2830F71A20212169458C580D028A88EDF4D242AB494451D748809026EF6ECF60894A228PA880F0C0C04D8A07C609248C8C968E759193C07D39A34AC627752119552A43BD124006E3C8528003:P8C9044219A4931411A260A60224107A8EE4AE429609F92C080AB28F041290716A28049BABD300203<P0E16BB041CFB7086EB8BED8972852B4471E80ACC8784481D3C319851470591EED8AC1207092011B1>P04C7C8CA9597025E54515D1DB4C91A4F63B9B041EBB4F05A66CC70084233ECD9C548330D204B8644@PFE24F28106DC7896C494442FC6B2F4D219689577CBF5A621C6317D75408203792A3002C973C72580BPBBC227DB8C854F8B45703468425235112C0C90C266402209083D2B1BB555510D54003597641C0425DP72056CF0F22BB498CB92B97E98366EC0ED17FF979E32335B00C8010814786700A83A816B24820C35FPA8444C96415CD6C40188CAA4E00BEC90CBD09E321105F08903CC13820222F6A489F06804DA589CADHPD271113C9D4985B6A2400DB0640539AC500F82C1C4381EE0C11B26018478D911847C482A221AF188JP48DC4210000021FF0B4D414347436F6E2004031039000000015772697474656E2062792047494643LP6F6E76657274657220322E342E33206F66204D6F6E6461792C204D61792032352C2031393938003BN TURTLE_22 PR QP000084000021F9040100001D002C00000000440044004506FFC08E70482C1A8F45160BC051209FD0SPA8748AA00C060D92B6F0A24CBFE0A4CD26B035AE9486BA71B29D4E0DF7DA364A91C61456186C81A3UPD4666B050183831F1F09058A592489058058032714362C295F2C360984010A24230D236371709B01WP9CA70109871026100F2020A901066B6B2703943614091B1F1A20051C7B4394272E708209A683A985YP8E8FB70D6995C4516920AB201F061B246DC96D1469BA5A736D0223D6EBEC1D36240A0DB11B0DEDF6[PF7F8F9490D091A090F2BF409546246D7980164F040B924B0488A74B6D6905844224284020926DA82]P1328CE307D9950FCE948838433531FB67D08F0E1C183958A1C647914E8D1001816D4904831C20592_PFF4CF01A2818A1AE430A1B0877096A7648C4AB07CB02644044C8D1C46827408913C28246830744D9aPB178F162449933661E297A644A5534846BAC546B28E49D82BB0A406839328C0307251D08D2518031cP851DBA8813D3B560C39304052D48E8519C2F9319051B02E8F542995D0A0A2E28B468416104E97A9DePC15826930BE91A50C6268506D520858A140818334C6C0185575C6C220ADA384721E54C69A6C13951gPC064AA066B972E423B227983C9FA8ECAD1A9E6E25A96555BCA3AB55691C649906A8CA3F0314A131BiP29A68D4BAA06CBCC66CBB441D8FF6A65D30F8B78C2060971C4904B0C1514B08102B92041493CBFFCkP53400AB9BCA0940D184555C054B164C3FF12084EA944DE29E6D882103C84B1A4800D5228C1593102mP08901416F86D9280084EADC449338324005D70039431D7101CECC68E3194D8A7068FE525E2400509oPAAF1461608BD4817051962C4C618DBBD26DC2868D1801D6227C003952A7A35E0824F1468771042CBqP8D42C1271534D09E626DA6A000606164224F230580A0426AF868610609A211AAE8A28C12BADA1B56sP36BAC738128060C05DA8493AA919A7E82599A660504800019A34424205A05251820B038C30801669uP58902A1499B48046032D54D7C0A0B33AB41A20D36C34460B4470D0C224AE469AD86AAE7DE3951AD6wPC501480C2DA42041642D08A0EC6263A0079770F50547020D6FC498C2988A5960FF61B0E06A01685CyP7058B74B6A969DF38803E6FD188D228E40AB1420E8EA83140534041288338414D264C2D1EC22C908{P01DF43096CB42DC22F46A71CB25206CD41A7D197098D71A7359928D9510423A2B4D23F108C470874}P197DD9530DAD3911EA082AD850B01C750A92702A20EC07E22937A6944800F0F878C2B34809104A16P0AB8C0EB4F3034A702813154E70681186AC1F05A0904DDCA7E2F21A2637952522063200E68508809P4F50909766094440820B16B4404A1B13A9A24A0644E7E7D47E216C2315791D437A86850680A0C12FP9E8C3C849F7791000205A852F042906A2FDD23D11FB40CCB321AEBD856C2711018C72EF1151635ADP16BE4302116AE351CC13799B8068022C232ABC96EA6C500029112C0CD0824F4702328A211EB29492P5B9FA3BEC6155C467C4F26658EF082208DC882513301E06B7734B68C33AF62DABD908C441529928AP46CF964FC9B620C91E01249408B74573E44327D79088995378087387317C23107002931A68330614P74E604FE38447E3C61031490E10D4A315F41120807170885327680854A7C842AE2B5864B283CD44EPAE6533C5D4C913B0DA030BE0E08944ECA55751F053364010810D1809870E1A073CDE813C204E8105P1CB8801197C8C4263A313541000021FF0B4D414347436F6E2004031039000000015772697474656E TURTLE_23 R P000032000044EE00000022000032000000008C00008C00008C00008C00008C00008C00008C00008CP00008C000021F9040100001D002C00000000440044004506FFC08E70482C1A8F428E12C96C3A9FD0P0EA532B03548A4C68015ED7A8D149B98726D98CD56AD99EC68D84E36CA772E4C9D4E8D30FE1A0814P0A01191F1F05190509050D89578B6970162335570A231C735C28363466598A7F9F7F1F1022262610P0F1F200981800558347B0D02365C0AB00F954D61360F050A24725236B30255147F011F09ABC9C919P7D010D09589D66236EC174516424118D636E670327B35714776259152496DA502CDC580D155C5F14P6153C023EEFCFDFEFFF0A4290371A5DEBF834358C411C3B08A9B612E025648A12205891136103261P0143D29A339DBA1D5234ED8F190179C8E00190A283C17F14049039978584013F01560D1A14080484PFF54841261B97632CC001209340CFAE584E39F69245C34906A639C959C37434100F10084B255CFFAP7C0A90C5CA892A193512097325469A332E024430032DE7223305C2D068A9B6888D0809062D03D1C9P854B972D5A60496190C535120ABE2A78D9B7B2652F2C5E5020210132891A0A2E6B14738204889C09P1AF015ED8E82D4112328246EA0E2088B14140654A1CC3A05C3706788B2456363840B0A2956B31642P1A8FC3339CEEAA31334E5C36CB2C04ECC193C8012012A040AD42B408C51E2B026814DBCC9B0E851AP03D0C4C77B28B09F045C4530FBE3008B7437328D5041011BA4D65E14C39871020A0D30E807207D7CP200204143EA04060CB3CF35F1E55FD05FF820205684098724DB040C20014C0C65616271C521734CBPE8048208227CF0E22A9D9C85072D45B0706042143C900C7E09E0668305BA39D409841F64302385FBPD565522278CCC40F47620C105A426FECF816495E81725F229B7C948700245A1686003038C71D748AP54A3201E248CB1A5681490871F640F9D40C618285601C76FE015E9C29D95D960DA87AA7CD0C08FB6P6DA20A082074B6DCA59866AAE9A67424F7A7A29C5E728F02182410C18790868A040B787C60402AC0PA81A856F281060832BF2A425AB1329B420C005645C63581369667A4F0B035C93DB00B350F012070DP8C40510B315C8729195AC4610D1AE7C551810A759EE063A6F064D9001CF39D35FFDF1B66C0424E1CP9BFA368B8E68C0099D15D8BA01070298FA66C59767945452228BE826400BD832C69A052FA0942F78P2665711728F792A11B4362F0AB9105289D712B098188D5CA279C2002E73D271957C33DA5FD531570P3630D80A3483D4080DC987C8491D0C0D5CD080020A207C25CFF39C51C05C633D43480215DA481E64P09B4E0480C30B0E18D1F887EA1501A0C9A118158CCF894807ECAE4F4D383269D1BA8188169901316PDAC80B9CD1F725930A85A67465634E6853298EA2564CE369173EA6F85B0334CC373232118E4D218DP5E8925B21B44C99410B22D40F1CB5117C5109B181829FA941F8250EA55603BED4D1E59D5A0656D17P9B8D170116F718C5E2D61F0630236185918BC93774CBDA502C1414FCB2CCA935586254827B8057B7P8434DA05087977E11B46AAC42A0A8C020D10914292BFB552761F6189D5DF80D2E5C6A33F5C684C04PAB569C0827E33393BC49C7C4618A712C8A7862C6C01E7344CCDAB19C17D8A002E718C62EE0F42F80PC1811C2DE81E6B14A22744A0E50C779889A08873052C48A00504AC0C0B1AD02810682002BFB00101P7681318CDD0374BF408A0A2428C2D2280002A8FBC067BCA0896514E0030E98CC654C6421A0FDE275P4F38410C15A028246A44210A7307072653010E102084BBCAA216B7C8C52E7AF10941000021FF0B4D TURTLE_24 R P000032000044EE00000022000032000000006B00006B00006B00006B00006B00006B00006B00006BP00006B000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C96C766C02PC2A051208D1A2D64AA35A2BC52CE309362B30D04A886BA7C6A50D66E755BDD3889EF448BADDD2EF8P031F0501802083867E6A0924056D692F310254111F1F2024247844647C346A24017E090995101026P26102095098382A0740203366099429E9797235C6664288B54A082949519AD0D09150E05746E0214PB57865022F2F6D14277BCCD7B236727B148B092E080AD04D290D1120EB1F8A0DE6F0F1F2F34A162FP140F1B0906200A360A2CE8091CC282820B0A6FA0EC61D340808D172E5290B01170E01216666C2464P962E428265053E225AD6200D9D13065BD4684042410B5AE63052A051460D4857198605C8302A0184PFF0FC14ECE214391C4CA1429106462C1A2463735531619DA59691D08513BA70A225907A10D732928P282001A20188AF425874E156D3A69FADC05A9158D36DA2464C168DB068002A81250C13518CD09822PC6CB061509A2A8A14041BF141538E42DC274B2E521124F90D05CEEB2C03620340448A0A06462CF99P38A4E8728182AE06294E73B884744458D448BA9161C951161D5F65349EC69D22F8948D9EB872DC3DP80CC44A2661AA8181E0F46278E6FA9BC1D49E2A34D3974F48C7051C06381CEF052546B206BCE5643PA340942A142C40CBB9759A3BA421AA8086C6CF98F3821AD7D021C847ACC8271F048E7D50CC2006F8P31170A9AD5419140C5C1E1D67653C597FF0A50A3FDE1C70927C8E2D03C668CD7421903F8E60A2B21P7D208229A9B0024A2B88D071CD2CE9754709692420F01051644CF1872A36F2B4D52FD8C952833C65P28805005E8A5850D4B313C652033556848971A15B0449C0015444052709EF0A25F191414D74D63A2P4440024C79D950C88FED9CA79413C53D570305045CB6D7038D9526016E8826AAE8A24828301DA34BP756183040990438264908651900D3EC67749A66114D746779714008312055197A80A14546003012EP347005A64460041B027AA88A1B022A6031C25A0E95A114056422908243742E9A4273C169E4461B5AP4AE390AEA8B19061035A36C747747474B3509B895ACB264B2472C4CC14D89281FF101DB1C54601B5PF12854A20073DC1252384CCAE14C897B0C50C308CDBDD100ADF16C522E1DF82990E31FFD29E7CC1AP314C795F80F130F042270237A0CC2B7C6D371215EED47B823314C0E0C0471FBC03E515E049551F25P22B06263010EB0E40E6F1A99A100250B80605BBC57CC8142276F8DB2958C0F3CB08E482C71454696 PA48D101252598055C34A069A7920202250A20A509414630015F8D1210BC529B88016342CBC309827 PE9F4C54A060B960281D24065F007C7DE62631114D8D6CB57887EC8E893DDAA1CA248D944C19B0951 P827FB2F768ED88320C88455341601DC98235181B73D5E5CA1F3326FDF58DAE705C871BCDC963ADACP2DC0D0109A36F861E0C0545E8B302320EF2D72A61B64C4C3C2007FC879D00016C492314B836035C8P8310D2DC409828D1E57813363C50403B961C5A1C3790FB5E78211C1E1847F5D88C40F05265E03296P267B9CD082B96A906766036375C9118936C42A4F0A7A48DB1144D5A2A7744339160ACE25B0D51012PB8C08103C3CD0B90872D8544227071F04A05DB2711A6A18653E170071B06808D66CD22312AA04101P40B0C2023C406593494148FC0202038CC50D6178C30B15601B12A860327BD940001E90A00420E60EP2C50014002B2BE81708A50859A13A89C60AD3444A48953CCA216B7C8C52EE221080021FF0B4D4143P47436F6E2004031039000000015772697474656E20627920474946436F6E76657274657220322E3482E33206F66204D6F6E6461792C204D61792032352C2031393938003B TURTLE_25 !R "P000032000044EE000000220000320000000030000030000030000030000030000030000030000030$P000030000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C9548E4E05&P4582446D308CA9532B95A2A49AE0F0D0D6A0901B0DC1802C409F4F6617C5FCB40D6894DA60C475B1(PC44B29362768850587050D011F018D8E870E0D52246E14023136206405270A14804836152824840D*P248D058D1F20101026100F22208C018894276A03275FA04A2C6664949B8D098E1FC821B3B5050E91,P350D9B6628BE47360F05200E2027442C29D10324142F6D85E7E7C136EBC20A20051F111B0DD56199.P8BC6200935F5FDFEFF0093441B41A202BD800893704831A2E1080A27D89962272058423114CB9CA30P52604A0344B612A143936B4E0D031F346C20A10020384A0D4C7D3C9480518646198CB1BA69E010252PFF14364A45FC73D1CC89A38640164396C0D8A354E846AC03C841850D0454A858A0304040C56868544PD14466EBA3539885229EAAE0620487804491A41040A200C768EC6C74B1D0E1AD353229245C44C2826P9702052452F81DCCB831C2B9291E6CD0501384BEC44A52ACB1E198890D0104E234187170088B06158PB0DAF8D499890039EC46534023C054A49848D1B420FA4DC562C682EC44A43132ECCC7340CF7DB6D0:PE042830D0924216461E7CC99420A3E1E37DE11D70914D130E9AD9540011F803056C71C6137408643<P8B903D7045EB4302442273AFE975115C031432CD84D32CAD58468B7B2141858645837501D1462119>PD3917D21B4425648AA14B29A198DD950FFC375A7042061061FB8F2CA030AB8A74A23758984C67E09@PD931C2002D08B0CE00BB6C029253386128961B1309D00209FF80B3884A2C752088575EAD13201A77BP4189D782EB9CD2D114985563064B271814CA67E27DB61A4C9FA993425CC0D090150904F1C7180588DPA41481046820D05A3DE04460200888B979E79F80062AE8A0013590820271111A060B520D20417920FP3C10949F4750FA27305592608C0122924083A529B4E0820B03B0A6E83A1FDA05D31154A4508AA581HPB640C1281750D0105E142080800D31B8E0AA0D892ABA90430DEC82DB391351A442B080DA20D56AA4JP91066421B3AD810E02C1D9811B09BF3D464644B3C504A2463181B51A216438EBFF02342C09329819LPE6945B88A6B71CA2DD390314F2420C149060C07D1F10899044669C534004D185D514BDA7A0451B0CNP6A14A001321A6459E42027E41B96BD62E1779FBD8815F0042573AC63C0030D7C30C20AA6FA030371PPE8AC881332FA3882E129F8E2B85A5F12A4E00267E8BD61437BB6A4B24A2C107C20022389D88B8E5ERP8C31F00221BBA0401C7CEE21C3CA225C8B988A5D24D506F460EA957B70828B8860227D173AE2B08DTPB0FE73C6C80D449060651080008B2BE4C1E7F41CBC0037C8B15763588C4EC8DCF448D3648C606387VPB38107A5D18BEC9978D13E1E6B49DCFD50779D001DAD3896086ABBB288BD0954705BB836A0C0AC3FXP0C956AA3CE338184C6754D368B980871B3CD566542A73CD4800B2494791D7CACE08EDFE26E900407ZP692DF5A3C24C0BCF68C766F012D2344811245285BC60D1D5AEABDD8A41811429AD2498928ED7F690\PC6C569589DFC27B0D4803E11705BCD35D73480B211B1B1D18B36839B8C2DC8465063949AF4519E2E^PD80914D479C10B28E01BB9948339E2AA92EF624329703C600EA92140F912F2922BE5EF3F07E8C0EB`P1455041B7C201BFA00012546C842239C461F0FA809324A53C35F50C21D8749CC0A7B88853C008B88bP484CA2129518040021FF0B4D414347436F6E2004031039000000015772697474656E206279204749dP46436F6E76657274657220322E342E33206F66204D6F6E6461792C204D61792032352C2031393938f003Bh TURTLE_26 jR kP000032000044EE0000002200003200000000CAAB00CA0000CA0000CA0000CA0000CA0000CA0000CAmP0000CA000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C92CDA6C98oP842101AA266AB6A38D8420659BE07091E2A23C6D0D52638D6EB46D663765CDB6C51AAE6901A46888qP99670D7169050D0501058919018C8887846C74667F623068736B8587090120109F26100F22208C09sP89097470939460700D286A69019CA81FA422A41F8DA76B73685E362E6BAD5A5D0A24654F66708174uP99CF8282CC4E0D0F4F35C5943688562057DAE1E2E3E4E5E67F4F0466C3C36714CC67F1AC42CB6E82wPE74ECD28CF24090924054ED1EA45420D9A7DCD6C1878D0E083350AE660D4900690442346870E65E0yPF48113A746857C3DC147A4CD1C3516692532E5CF1F2253A8A28D24D961D9137B3662CDEAF4AD0A22{PFF43C8D8146486A7CF37070CB5D978B0C79A1F2D702CA88AF785A6381B05483C50C0F5A9D5AF60C5}PD89BE80A8185AA618958BAD900C4837F6A20166950A10BDAB449C890C17313CD96340E2249DBB2ACP868B8924B8DA304173551B378FE92482A6CA909C390936ECE273F7EA2B4C6B124448652864E906C8P120C9363E36C67737D3101BCF8E18328515540ECD2A4060561375F2D452BFDF1C337510A1EE8FE48PABE065E0565FF13345CB388404A4AE7704697ADAEB726CDB245A19E0C3D607E815947F94A042057BP058846170F8CD6148C1F0B6C241F40D6D4640AB8808057E1C0E1020C7804F38E1C9084E402405311P15CF1A7C2470CD35C5C0C0C8370F6433FF445F690CF20E1C284D18D64DD7C091C416A78040020671PE1A554296F7504C2773286810D8E39F6E8E38F400689CE4C3FBAA10002E8F9A5843008B8C0637414P3C80814F06D0A24001311CD10002121019645F599130871331B860A69740C251810D17EC05CF33BFP3DE6454DCBBCE342804F86C30E83733083499FC28C1887300C347041031B7042206C4E92E89D3490PFA02CB25989CE5420C0E68F081060AE4B90D1BA041830A40E35146470C31C0A1C007056820A05CE0PBD62D01A050594893FFD18F24F217F8D68C38D0D6031CF38F244865A69A49E9248605CF907A8A7C5P34035A456A14601C2DD8AA54AA690641DB0A5B7438B0DE211D99775B0210EC62FF4022CEB1E62D25P96FC82554A01ED521B27A5EC124006E4F9D7CC57BD3EB14F461C41E0C9270F18B78BB2FD853422C0P24F806470111A8C4D1C1A17CA22F2A0118020C9AE7D850412C7F55CC7140D8D6F6C122876014C9C3P569579102C8638624A6E096C6C0AA9D298E161637ED191122D19D806CA27D816E04060FBF409D930P8D61010B05016DD248293997029245BD3C118C1A12407D0E165B34DA804035BB8451CB8DF8670F05P00F9B3C7BB2B92D1A863926584F22111F006D9545B24B7878515C0DA4A1A095A4081E236812B5934P7DC2F3E1440C31440101C594164004203C55271A0FA6FACBDFEE486EC44DC43ED009E79D51B5D684PF05880D7524B358034C1A26AD9D0F7957DD880F98F4F58B2840DA75061405042BAF2CD76DFE09EBCP161B280041725CFDFCFC925A2976FDF6DC779F63100021FF0B4D414347436F6E2004031039000000 TURTLE_27 R P000032000044EE00000022000032000000003C00003C00003C00003C00003C00003C00003C00003CP00003C000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C9342A384BP566A7A4A35AFD8624A40E98E1A23DBA9D1A0881BE386AD2168A0D6ED827AD0567C0A0992AA05CD2EP6D361465646405240D05890119018D018989880D346B032736567E580C2F6984888A1F2210A426A4P221F8D90726865669A593114636BA08D0919A2222022A88C8F0501879F64232424097711122E7DB0P4214035D145F36020274809EC49780028024CF5829C7C75D2E49368F202009ED0DE2F1F2F3F44D53PF57E2C022418EC011AC28615B1F1E21B20408446B4A020A046973224002648E10C5F0A6967C86C5BP1520811C3C240A085233CB8C0D7C4658D8B0C4854CC80C8A1C2D4A1020D52245C75A75C184722009PFF1A9E481800F6E85682A3AA2091A8D04AA3B5162414F4EC90C2060A426382456AC42E19CD08ACD0P98BCC402DAD507802AC853802840041035884C39684D0631AB07A6A24CD1208202100A4850D44BB8PF0541B085A08286B1809071223143C004CE2C34F0B4E2A2020C1F30820411414B838598FC1142956PDB8C583D4B1B313463BA08F004E8C5080A0E347C580022CC54176C10561B548855584234805EB371PEC84601553559E1860F553C86161133968109855AD06D4194FAD0A884E9A480D6A7E0041EA012A54P010C280ACB85B45E842E0DA94AF6A13F7B1093F5C7C82A1A81D7D97D648C044A2234AD074102BBF8P52D423091023000A125464110DAF6915FF0A600F3C0001081D01B3DD206B8033023308C0838F196EP1012934C34C9144C47898C318C36C7B493C00355A0400F0D06A9A106870B4AD24048AF95C1857842PB000E55AC54066D035D435E0020931D4C21042664CA121611654F68106794077C416211D258104DCP358604793050B0040547B5B35E6012C8390F793564E2E7A084166AE8A1F5D8D025A2CFA440410A2DPB43025A11C9C70420DCF55D1C1A47BA850810D9312818002A0852A4E18122430946E092850400C5AP08D0820BA361B25359E449034654C68C098B35240C40461E869020880A55B574091919A131007581PB8D04505F225A001647BD9400301D2AC868618698C045A8A0A9261810D230890FFC006BB29406A4FPB46A49D227B5B4D164530DC010C30B36E446C276E90A4A8F0BB7AD348CBD328604894B05924107BFP761696C2182720ECD251A01CC52477C80C431C758D59B3A4914B4650E1821E41120028AF592A704FP66606329310CD2D8DF073029F50975118FE71A210A3BD29F08223E707389377ADC867D87ADE18903P8B385200230DBAF3418D45A1278D002FE3C3000A48AEA1722319B0C31E29ECD8C4E0713B11C60921P80A0A07283A34060CA88574BCD4A1A801406C3094406A25F893479A55E2A370273DC3755F82ACF16PC4383014511DA5DDCE800538B0DD55B32C09C808157C81924A238C71D5552AE7428ADDBDFC228C21P729CF179C7200D36D00F42DF9180743036E5ADB82A9F5C72C208292870D47A294830C29F60031E47P30064C5EA2DE88E4845F376B60FA4003DB2390973C2CBCE1DC68963A704848C078A43021B3ED1408P112C84718254890A10C66774CC712F315B0362AA45F6BBCD6D64630D8358026E3C3BC4FD0630A811PA8202A0918011402710D9209805F74A14BA104108C76800005A1AACA0B2850AC080C0301862287C6P8E413F234CCC23C9780B09E272A840700F132844820DAE96B7FE30AD50FFD34244D8E12E123C8051P5860015B8CA800E221F189508CE21383000021FF0B4D414347436F6E200403103900000001577269P7474656E20627920474946436F6E76657274657220322E342E33206F66204D6F6E6461792C204D61792032352C2031393938003B TURTLE_28 R P000032000044EE0000002200003200000000C2AB00C20000C20000C20000C20000C20000C20000C2P0000C2000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C96C0E6D29P922D991A51062345CA66723653140988441A17488D56C3C63E35DE701B45D040B9DDEF9340606B90P585E8143297836746F64116F0505018E8E098E050D67937927271482815B789467928E1F22221026P261010201F918F09706F7C58240A9B4C57350370349F8D191F2022ABAB018C8F937D6F6C14232835PB43680B64815286C369903BA86C9790D7A23DF50D2D3811C2F8E201120231C482C36C5AC01C00D29PE5F8F9FAFBFCFD1C0A7E5464AAA0A98880112EE6B08135A28F9C180DC279F890218102172EFA7500PD382428B866EAE786A9080448104092691A185664D9C681A8D5C1B90EC8CC946AC3EE88C44F151B1PFF93DE48F0894984C58B3714F034F2690C65CE00191A1570000BDB1A1B2649A02CA040C20015FAE0P394473F2A481492741A0FC69A901853734EF112D9202CB08122D06506043F32A5F0A9524A04130F7P169B172FC82179CB75CC8AC290234F1B60E185DC251CDC495EA28204180AD238C8DD62436F0D3F1AP12805030659F14051154B34AD98070070E08689EC0BA3B1385B7B01A0898434101089234460850BC P0906857B7B5110C0E27199DB64BAE030A284663789130332F1B93C97828B85DE28955C64899103B4 P6DFB646213796F7038248A454AF0E1C103100006108954DDB9350779FD9026077E057C50CC23AC80 PF0DF03C01C93922585B446140C346407FF4B53F48000C1283A39B894801554209C5BDF9C4042052EP44E1D93E0CD061D51B11E8D714800FA002420692E4D7521E7CD1A256020FB875803E2F9CE7D222C7P48D28A24EC7D33001F50D045540A28F0A28C556431D21625447253DC6642D4E5C20877094093216EP92A09C7CD7B031029A453C5740041A9020411247A504426A0938500B9E8390D1800214104405091FP28F080710021AA0F829666AAE9A69C6E4A5AA7B6A410E308CC1921907905711A450A15647944696FPD1A2404A29685658A942BC888014509486147123A87181019168A000090360BA09079990306919AFPC440D7352E85B446526B08F0C26F277D508006233C30803E27549080060110BBFF921FA4C142552CPE1D9D1802E93C010C342118C50430AB80A62C35DF27D135138E294B65037F70577C5BD1AC6044FA3P02B860208BF789B91D1967C0E1214D91B130024D0709D78D9891603C95AC6312A92C3FBFCD31921FP406D67B1C5DCC1211E4C8561836D4DEB8909244FC41860802493F8B64661A4BD750899C68C928A2A!P3B41C54849267D73901C7389D5477626FD146588ABE824A031948474E05C72ECE6E152276590815A#P4F3F408A83C7A46C030D2AD8CA0F3C28B885097C27D1534A2A26949200905289191C1B128F50ABDE%PE530F0021EBBA1001F4F250AB8D68324D5E1B732EC1EFB2D1A99E1F35B1E748032F552C000A8964F'P29556D333351A004DC607128E4B3E01B04272ECAD31088D0D383C5E0B7177A2CFDF6673E5CC2D137)P0DC6102D762852AD770D260501921456095AE549D7539E64FB070628128B81F46D26070D27784949+PF1F9B105B3C2BAE129968B2D38D477C271D86C430C1340140B8853A72B1D0F1B7A400A96AEA2A97F-PC5A0656EBA121FDC20941778EF1B28B08DA538709763DD69231D60410A3E6383A344A00063D8001A/PFA05190E748D15ACA1827A00A49A5768EA05B3FAC04A0E75040A384527ABF9430315708207604D091P36D880A414A000C7714A842C2C0A0B3E62830AAC0C5458CCA2168912040021FF0B4D414347436F6E3P2004031039000000015772697474656E20627920474946436F6E76657274657220322E342E33206F5066204D6F6E6461792C204D61792032352C2031393938003B7 TURTLE_29 9R :P000032000044EE000000220000320000000032000032000032000032000032000032000032000032<P000032000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C95CB25C88>P160599B20D060DD2269100915CD3A6B8536950B28E8685E81234DE6F8AC0D640C11B343BC56AB385@PC780292E2A237B02240D36270D055C6F059001925C1906060592888B667B2C80807B74676F0E0119BP921F191F2020102610102209A78D05241565A3892724245CBF140F281C9F457B287D702492019801DP1F222120091F0519908C052356723629C5E02C36346F247B890D27739B67577D7D9EE0F243142A01FP115E7F47365CAC0A0F0ABECD1B48B0A0C183088F28188180449F73E91CA6B311C34F960F240A2422HP567044850D5EBC3418D1A24503378B4ED07904A911A35E0932C23931C29D8D8446AA9C18B589E507JPFF68201E8448F0ECE787000922694497080505120A708AD37362113946CD906AA5B64A81D666CB10LPBD1991A8CF0972E648204C31601BD32C982E41FA692BCB9D772F26E074D29642A10102AE0CA8FA6ENP40462E111424A8C171EF121B0F462870182F090B1629285476CCB973932A4C14D8F832E04163CF54PP2820D85639DE9E1A144CBA30E0219586142B289C46DD41458C6D741651181E074E8C8AFCA22654D0RP2085E2A331C5865AA90BCE52B17778FA3958C54F770202FC9EE4B90952D298D91CB47C89FD64A2CDTP08A574AB4E2242C648CF58B13A9A35E952E17B0894100B7B9CE1C623CB3033C92A41EDA7A0244B69VP27400B5FA4808873BB8D210E16E5D9D2FF8C3301B0020108461195950328CEF4C6262E28304D2F24XPD440100C2B1D58400410B684142B2698200208394AF2C64A6678268700348C620788CE9897DF3D69ZP1437875ABC755747035830925436D8DC655822FAF036440D73BC63C31C03584142212F2852CE1B08\P8869840D6409F20D7C438CD6C834F93580A7671C08808A7D9329414104F60134C29F62FAE18D9C90^P462AE9A494428A800B0256DA410A2FBC1026114F98E19C4C246428A7002A4881C41E23D460860144`P690082022DC419E953120CE7C913830DA7D20831500058041B14A0412F1464CA9B02150852E64C07bPBE71C51C14188088049D71A0996645BCB3621F2DA8B4221C670ED0E64D38A590FF05402432A7DBA6dP4462278A75BB9015581C36300A0E09032826C916BD14A2121DC960C94836EC25E0C28A8B48F46841fP2C08F040192A2549406C02F464061C4905E08B4669F4D2654A86281B0E0CF154111B050BBB095116hP882CD5D2CC5C46385C788E71E0429A592AD365460A3A08A1C7325901A66316F581C22630CE15222CjP10FCA4604B091C8C2FBA3815AC8BCCCF5083CA070F084DF31D69D2F98685A67ED2870081D1017456lPCDFCD40A2C0F88C01F26340BB74B160A2870E306E6A800CE3BF792C28C33D0403DA2DDA740984005nP3490539543A335CD8AB02EA4BDC41E1A5BD70C513FD94D1417A87CB81EB96E664442640FCB63C10BpP760CB964232632C3DFCA030F8CD878936F827959667E683E0603A39971429638D68209D8B188C078rPC7E8A9F3CEA70845DC9E583A4E02E4D45DC2216CBE9E89236D1EE57CC50C35A4F7427628CAA10603tP4AB1D712E487F4A633E408C2E3242C0D7414900C917718522250023E4985A22A581ACEF71491A645vP98C90628B095A436348243786A0E7320170CCEE0370C20A27DB7F2CB08CCE1A800E58B02AFF34517xPBA508D114C0A11F501410394A0AEB871A55092C20A08F0D100CDB1A001D38040DF0A31290BB80048zP3294C000246804F191203315D0976732730617604D5380B80C16B7C845D404010021FF0B4D414347|P436F6E2004031039000000015772697474656E20627920474946436F6E76657274657220322E342E~633206F66204D6F6E6461792C204D61792032352C2031393938003B TURTLE_30 R P000030000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C94C52584EP1BA5314D043E0B904AE56A7ABF8DD1C8663B9D062D1BEAD46037688DC1A011977E9BA441E2B327D1P5B2E0336746D8405877E8701017B010601050124938454143629775F97025484938B918B7C101026PA5221F1990010D05958464656F342414249A47162F830D9DAEA0A1A31FAA8BC606AF84149723B9CEP4264036E0D83BDB236BCD483937E1CCFDF422C0D93112035504A141109240F1234E8E0F2F3F4DF1CP1C99F5DF2C022963E82DE65063636380000A0206382031C29B3E220A3AF821E16000820E2C7AF929P64E85501760A481C6A8082D0894E36E27DB36061480A2E2A28089A52894404578A4094B2428C58A8PFF432395B53941A285823D09D82D73A8E99A1C3A0544024D7AE503A30420403C806095D5226DB254P3E0C7782028D01144AD221714C11A46474A4D8C234F60B0A29026CA14D4866590A18234466BDAA20P62DD250C063CC0AAE0840DA687234B96ACC00689C28846B0103B99C88814CB8E5CAAD1C202951A11P367C2CF0B8B3111614103094158B0E85642F2E85758DD10819656505BA82456DDC08C774EB897900PC22AB711602FD58C34E99003A0C082B25966071CA6CA640810B0D1A2CD20416C48B0C3B9684F5611P0156BD8D54BB8E0D310D5CA450EFC7450B4D2A1CA4DB5D9528424C021F25A0C0030F88D09C318854P505F4124A4B060486348E04C0AB23C35FF8E03108E224229CD1D380A2B6C6DB45177FA64D44B716FPD0D19E159128880A7C19D07888635408225946D410380E548AB8F5111F08BA100B72CDF0C60C1DD3P4C8220541B4169902C17F0F69A2CC825248834748C815682111C358E964464D4420C45FD978F1153PF091556115A239C42D0580C058034B40C1C29B761271CB142F7016E8A18826AAE8A24388D3423F0APDCC3E8122D2C73D906018010521E906949012F867640460B35544082011A58A54103A0851A193F08P84D628461C4A018300E5A9A74003E71C2A8E0A15A4049B1B675462430CB224E0AA6B0854E04F1983PC834054D505E22880036244A1B1D820CA2D6407151EB18059251C0614B43B840FF93035042B59648PEBD52607B6CB6A52410547E9B9910AD7CC32C75409AC354E2294282353B6F2E4A1C03A06B0C31074P2FC6011582EB0165B12892404914B6E47E930706019F40435ACB8C30C708344595885B8B34976391P905432850DB5A4D0406191F6A6848B4F64344005958E41ED5A232982D5563E1983602470D926CB2DP12A4504004A96D40810A77A4E082001CD7044A4F59811DB6313FBDF2A26381BDA2A7562454908B74P3255898828561153CADDA9289D400415A8757618523D70CB37057147B457AA7C00C1882426CDF475P511162725F9B8106E8DBBF55729D305664955552492940B65B24649E5C3D3E47399CC58CB072F456P791BED8714DDD6EBCACC2570D41741D991280E41894C373D85207C4666412F14F038F04F085ED17APA6A1C4826D0C9D8EC5020C9F58F606CB6413938C766D74EC5A5AC67EF2112452354D0DB62C6A6901PB6249114B149DCC645866316059A110D6AB950C653D76288005ED009916060126E3B540AEE72BF82P44035A64E84404F29494E6342081685213054660816E5D62332E6900820EF4814DE94F00D09944F5P8A700B3E3C804EB6ABCB1602508ECAACB0511A4909A25CD1B29BB9A00B935AC2321E600305A82B88P5E90820E91C8C426DE21080021FF0B4D414347436F6E2004031039000000015772697474656E2062P7920474946436F6E76657274657220322E342E33206F66204D6F6E6461792C204D61792032352C20 31393938003B TURTLE_31 R P000032000044EE00000022000032000000004D00004D00004D00004D00004D00004D00004D00004DP00004D000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C96C0E5914P4AA35148683E8114A935727A9B5A49C5469E46A5035B83361D48A7A7938DF5FD726C24C7C0D5A190PE527530D24240109540589018B01890989540D6A0D146936020D120A09091F09240D2A492969747EP142A2D7E6A6F825305011FB01F1F101026B620B28A05068584939229754CA781539328BD8B558A19P9D9E8BB2A0700D2373C4D9422C3623030D272828926A93642324D76E05B40620EF99DAF21D2C03E8P9C35C3F3FBFCFDFE471CF4FD934721C60B0A47FC9C10F0E2451A01343E081CE885C20B320E90BD9AP4228818202915C9D39C58F900203014028B036C2851B4ADF1A7002992843CA072062D1C2D28859A2PFF0A70D41C3BC6C6C6C43ADC5E9621B1AC11276920121802F10057CE4789124D92D38062110B0246P700D44828DA24506A83402896C15990108BC3A614143809F11950608B04181CE131B09723E78A040P0142B94B56764AA9C028E2C790FB49290C4B813D0A7C2267B381C285140A0E3AADACE15773111B2AP489CD00705946A57300E0AB074D8741112155CEC95934CD0318D6D07A439FA98432B57541EB982C4P8B1A384AAB14102291A201824F0A2A50E89284458D4D9E088DC0FB5B50569A8CDEE5B489152B7229P5CA7135E59FB48260C876CD02060A3450B1B27383748044CB1038208BAC4A2004E22D0D253004C21P478924F535C1C01123D8D5C000E511B2FF562C19D4624B83862CC6C8896DCCE6D83F299031891489P14C8CC89298100812EBB64E54A1A037020173734A080067205C2F2E02220401294147CD9E6C70040P01370809CA552389460548074A05B60DE1470DE350B31719BBB9F8023AEC78F20161A2742944146EP9040818F4BC02856855DB290023B0944F0400524B8290F37869D6081A08826AAE8A28C76908E5DD4P055A5AA347ACE482021B707285020870416911490D50C305BD5CC18E03DC21BAA2112DD6D0420C27PB8604D9F36D089A80B29E04A440AFFFD77E50B02C0E062938952D0428B29B0C00D32ACB472C22995PF035A969512090C2355C5D2340792320778D8BD34646825E27742B5C30831440FF82AC8204F32C49PA6A9A0461EC841E2D174541002521C1BC2894D113EB2C001029935A1AC0D87BEC9D1376A64355301P0E9C672484D404E3E2002D542001AE0938A0920204D80A90BCF7B65B461A8270A29C9181F1040B2FPF56AD411539C18C625122C349002081A18F00928DF4A49CD59814585C5538FF4A49C50C8B8712953P857595C408157442E52504747BF224452A4295089DB49C13338F2450010D34F8C12C1951244B5C11P1490D0D8B715B440095F44CA3D8B27B33C608B2D1FD8C44C0311ABCB1132E12A6151697418E7591AP28701549212FD728C22D0846130B234616C01BDBFEAC820905C730C5797AEF40A072027E07FEA174 P0046416CE897E02DD548211F4A95748D7E2368939266449BF83C2E4ADEAD2B8BCC240D04244A2315 P5BE47423578B9CB9D2B0873E3D9FBCCAD6ECDBC6BF3F0A3B09CACE9D65C859C0476FC301D49E7938 P1B1CD14C93E1666C58C6142243B6EC95C7B452CE980310DF20B013154AD8060A65084401AE51090A PCC6628368052048A168B9FB9C92DC33A17E99EA5AC1615A2131F330CA25AE48211A8822F6FA3071E P36209D07C443502910807FD2913F24502005385454CE083141100CE2534BC8192C40801B09080088 P4A60800D1400822546018941E48B0DA048C52A1E21080021FF0B4D414347436F6E20040310390000  TURTLE_32 R P000032000044EE00000022000032000000003B00003B00003B00003B00003B00003B00003B00003B P00003B000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C96C922829 PC5A6F0592448A35673CBEDB00696119133209D288D7421DDA0A0D3B6B88DD2AD2353B60689AD4E24 P0A050E80010606010587886B7C6C7114237B35340D364C0A14201F06200559232E0270277A24110D P881FA9542210262610221F0901011FB4888769036E3624764B72796C806B6BB3C48819B387092009 P7C360271041CBFBF2C1436030DA127A30D27362703E4E494712F2F247FCD0F200A97D6F2422965EB PEF7AD5F3FBFCFDFEFF008D50A041C1C20B176E1A685010B00E8B060852B8109707CDB76224F630A2 P04AE0C2F1A15468C68E0C2851F3F7B24704951A1410C042CE29C3911EA143244CD20D44A65EB1633 PFF8D8BF450A2D36504050936F0CC9138229A0D1434BE91C08593164F1001DA4180650B5084A07258 !P341492CD468D6D6D38EE99842BAB01621AF3843B454281B36735C62AC1F6748000A3D28826614158 #P6F973DCD9E287861B8B1E32D0878155080A50505158F7FB9A9D1E08201071B3EACA9901949612479 %PE20CB011235B8C17614B1369918244D214D9DA240497E69B37381D29ACA620D6080705B83352B830 'PAFC1889ABAD4A44940D9E6A00019370A9749C2458175F09AEAB386166D9AA97F4ED102112B4086AC )P7F140162F33B58712E1C54D870965164368BA31470854D593D0041061F80E08E08B1BC778B03CBEC +P118C0DF759A247336B1080C2002DB430FFC746C3F8C4DE56EDF9A16026872492861BD960B6D20B82 -P0DC1411CBC35B0DA796D0DE2478A011818CB329C68C4C66A15FA539630948C82025D11D0C2E32DB8 /PF021C06A48FA621803307CB3E41E287C435750D2F4428100025800488209204859690CC421000D79 1P98E1666049558807091B4440021EB21561C308307497429FFC401200081AE85109A1F2E0910DA390 3P462AE9A48EA5600207F9753028A54B34004F02096E00820A0A08B029A763A4D540041AA462C00734 5P14892A1E0318A5DB3D368C87EA108EBAE6D784A7124A018C7652E00D92944C0923388EC8DAD80008 7P7858DC1B73190B0D1B24EC324738C126A1800BDD76519B04158443A3702820CBFFC8246CB0F82B71 9P1D1CB747461F9000424608C8A34203293495875FD065041E46F3D1479F1C68D4652F4A50CC93020C ;P713860911A41DDE4242220A6D1D40919C173EF031430244F648D507C0532B56405A580F3AD91DA48 =PDECC35C7695C60334436E60EC34E03CB24284B563D5145420592BCD1C670D628C07223BFF1B10820 ?PEF89E0CE7A3EFB11A503823CC3488C5B54008F2CD979F88DB55315B34A26CA80B015571910730B09 APB4244B66525D24D5E4070A5072011AEA5E083715B620A8762BB1C8D213940150F6CD8D5D9C20C106 CP721210521BD1188C6D8A1F20C80A2B402B088B7B050FB99A055D3CD2300B2954D3AFADBD384D458A EP3BA69C955D10A0E8DCE45BC0B561470ACE6AEA481B027859F62038E1E2F3CF568FE0321ABB3474A4 GP397A8CC2964FC4B7255A5036CA8102D7FD28258EAA15A5E1C01E6D256080758C08A380042438C06F IP432C184463034B7A791EDC87C4250EC42F0C20E05DB2408EAE00F2B0B4D0601B63E3CDF7A4C1A164 KPF5021099680665C215106C082037BC79C219A8D40D7861E314580181821AA092D264034E72F08605 MP5633020A762037366841EF1C1393478C6085BB62821B2031951ACC30872CE018DC12108107E42D5F OP3934020BA662954BC02B89476813091E10071742710834BBA2167715040021FF0B4D414347436F6E Q TURTLE_33 SR TP000032000044EE000000220000320000000027000027000027000027000027000027000027000027 VP000027000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C9545246A3 XP00480352A55288A676DB4CD91ADFC1EB35107C1B8D93CD66B6A58E9C5523957024488D0AB7C89A23 ZP5C6B0D0314030D05680578058B0601058E8B918B0D1460686D2C7B463616596B67688609888F1020 \P095210AA22201F09A801198E8EA182022F2D5C0A361B206036832D2E14C4270378A1240E8F920109 ^P91B18F01D301B5C63627091824AF78999A4C2C0C2F361424143469960D0E140202039F836F462C57 `PE0F849290D24DC1F11FD6CE41B48B0A0C183088DA8185023CF087E0A34084CA889530B0A43529C40 bP5328D49787B5426DDC18CADD9A1323FA29E8C76FE24015B5BE242A304ADA879B1F32DCA4268DDD22 dPFF5A6A80ADD1A4F243807E2D46B4C0167292216A1974B63A2505C4031146A77D4884E6041E1B2AF6 fPD8B3A084C5276024BF7CA9544BD2333C14D6041C446251820F204028D845319C171A035C34B040E1 hP5BDFC319CBC5C588B8B1E3260ACC22E0F078204A12113468306AA0809ECAE0E2D670114340DCB36B jP0A736101332E017C2C0C0FA190024AC8745F46861A440CDE9A0A0D5CB420A1E05537949435B1A04D lPA2DCA7E00D50A0E9C7ADAE21692C4386CCBD865E4112656CA46BFB2AD25DA3519D3D9B96A842BA43 nPD6181F14F02B94249B101EDC7D004204849DD0CC72D43A6684A549031FACF4C408279C50C9001BD5 pP5553003BE98417045839631586394102FF1F18CDC9C6840AC4A1028283288CE08219229194084FD3 rPA082CA2319F477D32BAE58F3C9460A6CF1046D4678911A050E6A874804D408C8DE75C860F30509AD tP68308D5E2A88884F0AA7D950037D97E84692216904424898E5301057030980B0413FAA3D86250C66 vP0840C348D80C60C150A00DC48200175587820D3DE63910058FBCA5800BDE09AAE8A28C36EAE8A390 xP56C60173FD8CA0400A83449A04897BE118800605B8A469111C50828601066C7647A0A316014C520D zP8CC0961D40E683809506A5609A00319416433C160CE2A41BB816B117091B5C914542F63015D220D3 |P0D324021E1D5BA521E2E70739755285CB9866C9588F9A548D185429F0DB29AF4FF09142E1CC29F02 ~P0FD890DC1E14200093405EA041080A5F16908222FD70F5E1B82D9593520334A0D02638369020C139 P0234184832772882087B90C404069DDD1DA4820B1530D824296838B04C92CC40B3880382D4126EA2 P050582CC75024B03020431CA92A43311A0314A1A41D9502C388269F7CC8469FE27552B3BCDF20809 PD370D49BBCF918E6059D95D44CD3CD216490F403A664E535C6771450645C1380C302326CD117AECF PCF8892D7331FF867820958BD925786937CF8C9D049F4710A4B234C4B49C4D345F00C8D8F7CA08A2A PA7E0F500DE204833604CF26951C3031F18E0CB09045462CCCCF641FD133538157AB308B09407A650 P3610E0C216FD24A0D8011E2884FE503CCFD9773AC6854AA3D38C37F97D1A3F78D450E5120A9C2081 P04B4C59505316C7134B12133A70C8980D2C027FA0933A5D98A020D306146E0591EDE15D0D847000D P2A8DB428000C2FC440E8D67A2B68D01AF184742EF2E341535D1C809B3508660D2F18C1D1A4F08007 P90E0330669D6181A7602E998AA41875343034CC306B5C84648C03901CC28822536C4AA2316FC0A30 PE221801142AA5936F853079F601AC0B58A18B222810B22D3AA2594A3010A88405EAEB5AC1E92EA5F P14D2CB08DC604438A0015E5F69E212EC6143295AF18AA30A020021FF0B4D414347436F6E20040310  TURTLE_34 R P000032000044EE000000220000320000000079AB0079000079000079000079000079000079000079 P000079000021F9040100001D002C00000000440044004506FFC08E70482C1A8FC8A472C9542A522A P0A45C06A5AAF4D964DE062C0A4B6F040D0B095B7A7B02DC5EE345CA38A24D14824480A520A4BA4C4 PA4551D29270D53368405248A24050D0D0501010593948C15288E8E240D69367C4C038EA18E949319 P011010A720A910201F1F7620221F91949984027B9F2924B18A23236599C48F90B59294099401CB91 P0D929B0D2F36301694AF20DA200D124A2C022F4C146A362828669934349936EC24E43631036B9FF6 PF7471424CD8D2714BBF8020A1C48B0A0401523146CD090E08306470AF0D97820019E412283CC5070 P84421AC7629C0811DB18320CC0802C5A8C40908282C834A4EC3063952000AC48CE20E98CA4281DB9 PFF01015330E0D081DC89502710319A14A956810FB3B4D54AA08D16CE3B23C390A868274185884958 P0C5060E70C8511295D6C24538864031266CC3472C42ED19D46EC1A08485AAF088B14812EF26121C1 P460B182E16A54320B8B1E3C790234B668240808D0020347C7051462007152A1C176A70C1458D4406 P3EB0016C85438AC405A82AF8D7388500CB0206A411204513A70603A4E80353AEC10812891BA013AC PC251184784CC70D6B42F91C7762E7D96A14070009B727C6DB86DE48069B348FC20E12C503EC0A634 PC1F782154802C6A1624CCD7FB00A352AB20CB1D82209316A1494C221BB9122CD24FB7DF0D42CA974 P05C20326D0020908054C275E18983086FF050B1438B009059C99014F3A24D0E18824E7A157937A37 P35A5222E27C4968001016400421E271951C3031F180082782804430F872035206226EAD9D2A40173 PE146C20861BCB0A2361B1440A5131454D4E3102D81E7084964C4D5000D2265E74F3CE44CB6040B0C P1C18069B358471DB08160C109A9B03A5745C040968E000273604C6A73D0A30104F5F8736EAE8A390 P462AE9A493B16028A5DF98F0D6082020F00077982281801ECB681600431504540809043806CF260E P1810810620E8F109072C142068AD24D4D0186F358C095C3996CDD9C611795490182C76B8341F4120 PA220C50B02C0F0C718D8DDD6D61696D5C9DB1B05289047B09E08A64592474127FF92BA2341B70549 PB6D666DC462E39570C23A43C92A4BB260DD4126B423437265B31E16BDE3E2F1A838B6F695CFAC91A P2974160621D36592E2529340A9537E0554404A3F6A58062A3E67A950910B08F6A6702931E6889E7A P4A46A0DE5C48317A0F0BCD55502F31932C68132C404BF54106CC241380027315124641CF39B79122 P74A83761360FB4625524199C32093122154A100724A5B3F23EA83CD04C2A2654D8CC07555FCD5331 P27AC4454504D33B9CC230DD502202BA988D0CC84AE20034200EDA82152B05D5E81099969A21801D2 P4D020860CB1F40408B1DB1243D468D11CCB14D1E4CE471873423689B64222CEE54D33290102DE080 PBF1D62E32BB22930C9C29743E0B17A23049C852D743CCFCC0CC7384189EF21603C3D494D3B0EA944 P0308A4460701030443CE5A4A8BBD755D8AC84C3CC836D4BC5A3C0D54102F120A9C50C10670853102 P071CB430F1BBE9B06566288AE4A52F5FE4DC1686C358380B05002884BFD829297023C4087443880A PB0831ED7BBCDC882C2002BFC25051680010C6EE30F8F018710088449E90618AA22C4494EE6E0C25B P5AA0000910B0844290420B1A302B6D3C00030280E11106A1089BD890363A3C82261EF080A5059109 P2F3CA21297C8C42606010021FF0B4D414347436F6E2004031039000000015772697474656E206279  TURTLE_35 R R TURTLE_IMAGE[[Ljava/lang/String; Code acm/graphics/GObject acm/graphics/FinalPathElement  finalElementLacm/graphics/PathElement; setSize(I)V  turtleVisibleZ penDown  directionD acm/util/Animator   animatorLacm/util/Animator;   ?setSpeed(D)V  erasePath  (DD)V  setLocation   java/util/ArrayList   pathLjava/util/ArrayList;   sx  sy ! delay $  %movegetX()D ( ) *getY , ) -acm/graphics/SetLocationElement /  0 1add(Ljava/lang/Object;)Z 3 4  5acm/graphics/DrawLineElement 7 8 1 '  :forward cosDegrees(D)D = >acm/graphics/GMath @ A ? sinDegrees C > A D movePolar F  G getTurtleSize()I I J K < M setDirection getDirectionleftturn R Sright isPenDown()ZpenUpsetColor(Ljava/awt/Color;)Vacm/graphics/SetColorElement [ Z \ ] Y Z _isTurtleVisible showTurtlesetTurtleVisible(Z)V c d e hideTurtle  getSpeed i )  j turtleSizeI l m npaint(Ljava/awt/Graphics;)Vacm/graphics/PathState r s s  s !size w J  xget(I)Ljava/lang/Object; z {  |acm/graphics/PathElement ~.(Ljava/awt/Graphics;Lacm/graphics/PathState;)V p   drawTurtle q  getBounds()Lacm/graphics/GRectangle;acm/graphics/GRectangle (DDDD)V  updateBounds4(Lacm/graphics/GRectangle;Lacm/graphics/PathState;)V  contains(DD)Zmain([Ljava/lang/String;)V"program=acm.program.GObjectProgram acm/program/Program start startGraphicsProgram,(Lacm/graphics/GObject;[Ljava/lang/String;)V acm/program/GraphicsProgram  getComponent()Ljava/awt/Component; createTurtleImage(D)Ljava/awt/Image; getWidth!(Ljava/awt/image/ImageObserver;)I  round(D)J java/lang/Math  drawImage3(Ljava/awt/Image;IILjava/awt/image/ImageObserver;)Z java/awt/Graphics 5(Ljava/awt/Image;IIIILjava/awt/image/ImageObserver;)Z getTurtleBounds()Ljava/awt/Rectangle;java/awt/Rectangle  getHeight  (IIII)V @$(D)I A  createImage%([Ljava/lang/String;)Ljava/awt/Image; acm/util/MediaTools repaint   DEFAULT_SPEED turtleSpeed delayCountTURTLE_IMAGE_SIZED ConstantValue SourceFile GTurtle.java! 3              l m m   m  QRRR)RnRRRERRRRWRRR(RmRRR8R{RR RPRRR!RjRRR9RRR R SR R R " %%$ " YSYSYSYSYSYSYSYSYSY  SY "SY $SY &SY (SY*SY,SY.SY0SY2SY4SY6SY8SY:SYSY@SYBSYDSYFSYHSYJSYLSY NSY!PST& YSYSYSYSYVSYXSYZSY\SY^SY `SY bSY dSY fSY hSYjSYlSYnSYpSYrSYtSYvSYxSYzSY|SY~SYSYSYSYSYSYSYSY SY!SY"SY#SY$SY%S& YSYSYSYSYSYSYSYSYSY SY SY SY SY SYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSY SY!SY"SY#SY$SY%S' YSYSYSYSYSYSYSYSYSY SY SY SY SY SYSYSYSYSYSYSYSYSYSY SY SYSYSYSYSYSYSYSY SY!SY" SY#"SY$$SY%&SY&(S+& YSYSYSYSY-SY/SY1SY3SY5SY 7SY 9SY ;SY =SY ?SYASYCSYESYGSYISYKSYMSYOSYQSYSSYUSYWSYYSY[SY]SY_SYaSYcSY eSY!gSY"iSY#kSY$mSY%Sp' YSYSYSYSYrSYtSYvSYxSYzSY |SY ~SY SY SY SYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSY SY!SY"SY#SY$SY%SY&S' YSYSYSYSYSYSYSYSYSY SY SY SY SY SYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSY SY!SY"SY#SY$SY%&SY&(S' YSYSYSYSYSYSYSYSYSY  SY  SY SY SY SYSYSYSYSYSYSY SY"SY$SY&SY(SY*SY,SY.SY0SY2SY4SY6SY 8SY!:SY"SY$@SY%BSY&DSG& YSYSYSYSYISYKSYMSYOSYQSY SSY USY WSY YSY [SY]SY_SYaSYcSYeSYgSYiSYkSYmSYoSYqSYsSYuSYwSYySY{SY}SYSY SY!SY"SY#SY$SY%S# YSYSYSYSYSYSYSYSYSY SY SY SY SY SYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSY SY!SY"S& YSYSYSYSYSYSYSYSYSY SY SY SY SY SYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSY SY! SY" SY# SY$SY%S' YSYSYSYSYSYSYSYSYSY SY SY  SY "SY $SY&SY(SY*SY,SY.SY0SY2SY4SY6SY8SY:SYSY@SYBSYDSYFSYHSY JSY!LSY"NSY#PSY$RSY%TSY&VSY' YSYSYSYSY[SY]SY_SYaSYcSY eSY gSY iSY kSY mSYoSYqSYsSYuSYwSYySY{SY}SYSYSYSYSYSYSYSYSYSYSY SY!SY"SY#SY$SY%SY&S' YSYSYSYSYSYSYSYSYSY SY SY SY SY SYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSY SY!SY"SY#SY$SY%&SY&(S& YSYSYSYSYSYSYSYSYSY SY SY SY SY SYSYSYSYSYSYSY SY SY SYSYSYSYSYSYSYSYSYSY !SY!#SY"%SY#'SY$SY%S*' YSYSYSYSY,SY.SY0SY2SY4SY 6SY 8SY :SY SY@SYBSYDSYFSYHSYJSYLSYNSYPSYRSYTSYVSYXSYZSY\SY^SY`SYbSY dSY!fSY"hSY#jSY$lSY%SY&So' YSYSYSYSYqSYsSYuSYwSYySY {SY }SY SY SY SYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSY SY!SY"SY#SY$SY%SY&S& YSYSYSYSYSYSYSYSYSY SY SY SY SY SYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSY SY!SY"SY#SY$SY%S" YSYSYSYSYSYSYSYSY SY  SY  SY SY SY SYSYSYSYSYSYSY!SY#SY%SY'SY)SY+SY-SY/SY1SY3SY5SY7SY BSY!DS:& YSYSYSYSYSY@SYBSYDSY FSY HSY JSY LSY NSYPSYRSYTSYVSYXSYZSY\SY^SY`SYbSYdSYfSYhSYjSYlSYnSYpSYrSY tSY!vSY"xSY#zSY$SY%S}' YSYSYSYSYSYSYSYSYSY SY SY SY SY SYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSY SY!SY"SY#SY$SY%&SY&(S' YSYSYSYSYSYSYSYSYSY SY SY SY SY SYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSY SY!SY"SY#SY$SY%SY&S & YSYSYSYSY SYSYSYSYSY SY SY SY SY SY!SY#SY%SY'SY)SY+SY-SY/SY1SY3SY5SY7SY9SY;SY=SY?SYASYCSY ESY!GSY"ISY#KSY$MSY%OSR' YSYSYSYSYSYTSYVSYXSYZSY \SY ^SY `SY bSY dSYfSYhSYjSYlSYnSYpSYrSYtSYvSYxSYzSY|SY~SYSYSYSYSYSY SY!SY"SY#SY$SY%&SY&(S' YSYSYSYSYSYSYSYSYSY SY SY SY SY SYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSY SY!SY"SY#SY$SY%SY&S' YSYSYSYSYSYSYSYSYSY SY SY SY SY SYSYSYSYSYSYSYSYSYSYSYSYSYSY SY SYSYSYSY SY!SY"SY#SY$SY%SY& S#' YSYSYSYSY%SY'SY)SY+SY-SY /SY 1SY 3SY 5SY 7SY9SY;SY=SY?SYASYCSYESYGSYISYKSYMSYOSYQSYSSYUSYWSYYSY[SY ]SY!_SY"aSY#cSY$eSY%gSY&iSl# YSYSYSYSYnSYpSYrSYtSYvSY xSY zSY |SY ~SY SYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSY SY!SY"S' YSYSYSYSYSYSYSYSYSY SY SY SY SY SYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSY SY!SY"SY#SY$SY%SY&S' YSYSYSYSYSYSYSYSYSY SY SY SY SY SYSY SY SYSYSYSYSYSYSYSYSYSY SY"SY$SY&SY(SY*SY ,SY!.SY"0SY#2SY$4SY%6SY&8S;' YSYSYSYSY=SY?SYASYCSYESY GSY ISY KSY MSY OSYQSYSSYUSYWSYYSY[SY]SY_SYaSYcSYeSYgSYiSYkSYmSYoSYqSYsSY uSY!wSY"ySY#{SY$}SY%SY&S' YSYSYSYSY%SYSYSYSYSY SY SY SY SY SYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSY SY!SY"SY#SY$SY%SY&S' YSYSYSYSYSYSYSYSYSY SY SY SY SY SYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSY SY SY  SY! SY" SY# SY$ SY%SY&S ' YSYSYSYSY SY SY SY SY SY  SY  SY  SY  "SY  $SY &SY (SY *SY ,SY .SY 0SY 2SY 4SY 6SY 8SY :SY SY @SY BSY DSY FSY HSY  JSY! LSY" NSY# PSY$ RSY%6SY&8S U' YSYSYSYSY WSY YSY [SY ]SY _SY  aSY  cSY  eSY  gSY  iSY kSY mSY oSY qSY sSY uSY wSY ySY {SY }SY SY SY SY SY SY SY SY SY  SY! SY" SY# SY$ SY%TSY&VS ' YSYSYSYSY SY SY SY SY SY  SY  SY  SY  SY  SY SY SY SY SY SY SY SY SY SY SY SY SY SY SY SY SY SY SY  SY! SY" SY# SY$ SY%SY&S $ YTSYSYSY+SYpSYSYSYGSYSY SY SY YSY SY SY*SYoSYSYSY:SY}SYSY SYRSYSYSY#SYlSYSYSY;SYSYSY SY! USY" SY# S   G;* * Y *D * * * * Y  *  *    * *')   "* Y  * * "   *') #*  & '  l X* F* +9* .9* :  *  0Y 2 6W*  8Y') 9 6W ç ÿ*') ;*  &@F <  ~ j* U* +J* .9* :*  0Y) 2 6W*  8Y'* Bk'w* Ek 9 6Wçÿ*'* H*  &OU <  ** L N O  *'  P ) *  Q  *' T U  *'w T V W *   *  X *  Y Z 9%* M,*  \Y+ ^ 6W,ç,ÿ*+ ` a W *  b * f g * f   * ' h i ) *  k  * o I J * o p q ye sY tM, u, v* N-*  y66*  } :+, -ç-ÿ* +, * *+ GL   k sY tL Y    M+*  u+* " v* N-*  y66*  } :,+ -ç-ÿ,3af    4(*` L= +*2S*+* S+   *   *+  q }q* M,** N-, 6* + 6* . 6* o+-ldld, W$+-* old* old* o* o, W  _S* L+ Y Ű** M,+ >,+ 6* + 6* . 6 Yldld ˰  B6' o > $t$pd>$p> 2  2 S 2 R  *Y 'c * ٱ c d * * *  &  PK ш5acm/gui/PK ш53 acm/gui/DoubleField.class-()V(Ljava/lang/String;DD)V  acm/gui/DoubleField Code(D)VvalueOf(D)Ljava/lang/String; java/lang/String (DD)V(DDD)V javax/swing/JTextField whiteLjava/awt/Color; java/awt/Color ! setBackground(Ljava/awt/Color;)V #$javax/swing/JComponent& '%setHorizontalAlignment(I)V )* +minValueD -. /maxValue 1. 2setText(Ljava/lang/String;)V 45javax/swing/text/JTextComponent7 86exceptionOnErrorZ :; <getValue()DgetText()Ljava/lang/String; @A 8Bjava/lang/NumberFormatExceptionDtrim FA G&(Ljava/lang/String;)Ljava/lang/Double; Ijava/lang/DoubleK LJ doubleValue N? LO$Value is outside the specified rangeQIllegal numeric formatSacm/util/ErrorExceptionU 5 VWEnter a numberYjava/lang/StringBuffer[&(Ljava/lang/Object;)Ljava/lang/String; ] ^ \W between aappend,(Ljava/lang/String;)Ljava/lang/StringBuffer; cd \e(D)Ljava/lang/StringBuffer; cg \h and jtoString lA \m greater than o less than qdialogLacm/io/IODialog; st uacm/io/IODialogw(Ljava/awt/Component;)V y xz readDouble(Ljava/lang/String;DD)D |} x~setValue   formatterLjava/text/DecimalFormat; format java/text/NumberFormat  getFormat formatStringLjava/lang/String;  setFormatjava/text/DecimalFormat WsetExceptionOnError(Z)VgetExceptionOnError()ZgetPreferredSize()Ljava/awt/Dimension; java/awt/DimensionwidthI max(II)I java/lang/Math height (II)V   MINIMUM_WIDTH<MINIMUM_HEIGHT ConstantValue SourceFileDoubleField.java! :;-.1.st  **' *') *') 2&**"(*,*(0*3*+9*=>?*CLMJ+HMPJ)*0 )*3RMWTM*= VY,XZ:*0Z*3/\Y_`bf*0ikf*3in:K\Y_`pf*0in:+*3 \Y_`rf*3in:*v*xY*{v*v*0*3J*)) ),E''N* *'N*-9A*5C/*+*+ Y+**CHMPW*-E*=*=+*LY<++PK ш58acm/gui/HPanel.class-"()V(II)V acm/gui/HPanel Code acm/gui/TablePanel acm/gui/TableLayout(IIII)V  setHorizontalAlignment(I)V  setVerticalAlignment   setLayout(Ljava/awt/LayoutManager;)V java/awt/Container  SourceFile HPanel.java!  * , * YN--*- !PK ш5X> > acm/gui/IntField.class-()V(Ljava/lang/String;II)V acm/gui/IntField Code(I)VvalueOf(I)Ljava/lang/String; java/lang/String (II)V(III)V javax/swing/JTextField whiteLjava/awt/Color; java/awt/Color  setBackground(Ljava/awt/Color;)V !"javax/swing/JComponent$ %#setHorizontalAlignment ' (minValueI *+ ,maxValue .+ /setText(Ljava/lang/String;)V 12javax/swing/text/JTextComponent4 53exceptionOnErrorZ 78 9getValue()IgetText()Ljava/lang/String; => 5?java/lang/NumberFormatExceptionAtrim C> DparseInt(Ljava/lang/String;)I FGjava/lang/IntegerI JH$Value is outside the specified rangeLIllegal integer formatNacm/util/ErrorExceptionP 2 QREnter an integerTjava/lang/StringBufferV&(Ljava/lang/Object;)Ljava/lang/String; X Y WR between \append,(Ljava/lang/String;)Ljava/lang/StringBuffer; ^_ W`(I)Ljava/lang/StringBuffer; ^b Wc and etoString g> Wh greater than j less than ldialogLacm/io/IODialog; no pacm/io/IODialogr(Ljava/awt/Component;)V t sureadInt(Ljava/lang/String;II)I wx sysetValue { | formatterLjava/text/DecimalFormat; ~ format(J)Ljava/lang/String; java/text/NumberFormat  getFormat formatStringLjava/lang/String;  setFormatjava/text/DecimalFormat RsetExceptionOnError(Z)VgetExceptionOnError()ZgetPreferredSize()Ljava/awt/Dimension;java/awt/Dimension height +  PREFERRED_WIDTH< ConstantValue SourceFile IntField.java! +78*+.+~no   *   *   *   *  1%** &*)*-*0*+6*:;< *@LM>+EK>*- *0MMWOM*: QY,SU:*-X*0/WYZ[]a*-dfa*0di:IWYZ[ka*-di:)*0 WYZ[ma*0di:*q*sY*vq*q*-*0z>*} $'B{ (M* *M*,6> *2 @,*+*+ Y+**@EK}W'*B *: *: Y<*PK ш5w@acm/gui/TableConstraints.class-\()Vjava/lang/Stringanchorbottomcolspan fill  gridwidth  gridheightgridxgridyheightipadxipadyleftrightrowspantop!weightx#weighty%width' LEGAL_KEYS[Ljava/lang/String; )*acm/gui/TableConstraints, -+CodeI2(Ljava/lang/String;)V 14 -5acm/util/OptionTable7 toLowerCase()Ljava/lang/String; 9: ;((Ljava/lang/String;[Ljava/lang/String;)V 1= 8>(Ljava/util/Map;)V 1@ -A 1java/awt/GridBagConstraintsD EC 8A getOption&(Ljava/lang/String;)Ljava/lang/String; HI 8JparseXYConstraint(Ljava/lang/String;)I LM -N 0 EP 0 ERparseSpanConstraint TM -U 0 EW 0 EYparseFillConstraint [M -\ 0 E^parseAnchorConstraint `M -a 0 Ec getIntOption(Ljava/lang/String;I)I ef 8g 0 Ei 0 EkgetDoubleOption(Ljava/lang/String;D)D mn 8oD #q Er %q EtinsetsLjava/awt/Insets; vw Ex 0java/awt/Insets{ |z 0 |~ !0 | 0 | '0 - 0 -acm/util/ErrorException9TableConstraints: Cannot specify both width and gridwidth 5;TableConstraints: Cannot specify both height and gridheight (Ljava/awt/GridBagConstraints;)V getAnchor()IgetFillgetGridXgetGridY getGridWidth getGridHeightgetIPadXgetIPadY getInsets()Ljava/awt/Insets; getWeightX()D getWeightYgetWidth getHeighttoStringgetClass()Ljava/lang/Class; java/lang/Object getName :java/lang/Class java/lang/StringBuffervalueOf&(Ljava/lang/Object;)Ljava/lang/String;  5[gridx=append,(Ljava/lang/String;)Ljava/lang/StringBuffer; (I)Ljava/lang/StringBuffer; ,gridy= : ,fill=VERTICAL,fill=HORIZONTAL ,fill=BOTH ,anchor=NORTH ,anchor=SOUTH ,anchor=EAST ,anchor=WEST,anchor=NORTHEAST,anchor=NORTHWEST,anchor=SOUTHEAST,anchor=SOUTHWEST,anchor=PAGE_START,anchor=PAGE_END,anchor=LINE_START,anchor=LINE_END,anchor=FIRST_LINE_START,anchor=FIRST_LINE_END,anchor=LAST_LINE_START,anchor=LAST_LINE_END ,gridwidth= ,gridheight=,ipadx=,ipady=,left=,right=,top=,bottom=,width=,height=]relativeequals(Ljava/lang/Object;)Z java/lang/NumberFormatExceptiondecode'(Ljava/lang/String;)Ljava/lang/Integer; java/lang/Integer intValue   )TableConstraints: Illegal grid coordinate  remainder)TableConstraints: Illegal span constraintcenternorthsoutheastwest northeastne northwest!nw# southeast%se' southwest)sw+ page_start-page_end/ line_start1line_end3first_line_start5first_line_end7last_line_start9 last_line_end;.TableConstraints: Illegal anchor specification=none? horizontalAverticalCbothE,TableConstraints: Illegal fill specificationG MY_PAGE_START MY_PAGE_END MY_LINE_START MY_LINE_ENDMY_FIRST_LINE_STARTMY_FIRST_LINE_ENDMY_LAST_LINE_STARTMY_LAST_LINE_END ConstantValue SourceFileTableConstraints.java!-E '00I0YJK0YLM0YNO0YPQ0YRS0YTU0YVW0YX)*/{oYSYSY SY SYSYSYSYSYSY SY SY SY SY  SY"SY$SY&SY(S.1/*3614/*8Y+<.?B1@/F:*F+8 +8 8Y+GM**,KOQ**,KOS,KN- , KN,K: , K:**-VX**VZ**, K]_**,Kbd*,hj*,hl*,$ps*,&pu*y,h}*y,h*y,"h*y,h*,(h*,h*X* Y*Z* Y1/*F*+QQ*+SS*+XX*+ZZ*+__*+dd*+jj*+ll*+ss*+uu*y+y}}*y+y*y+y*y+y+-+-M*,*,/*d/*_/*Q/*S/*X/*Z/*j/*l/*y/*s/*u/*/*:/*LY+*Q*SL*_^G0Y+L1Y+öLY+ŶL*d O}f5LczY+ǶL\Y+ɶLEY+˶L.Y+ͶLY+϶LY+ѶLY+ӶLһY+նLY+׶LY+ٶLY+۶LvY+ݶL_Y+߶LHY+L1Y+LY+L*XY+*XL*ZY+*ZL*jY+*jL*lY+*lL*y}!Y+*y}L*y!Y+*yL*y!Y+*yL*y!Y+*yL*Y+*L*Y+*LY+L+LM/9%+++  WYTM/E1++++  WY%%`M/#+ + + ++ ++ +  +" +$+& +(+* +,+.+0+2+4+6+8+:+<Y>[M/K?+ +@+B+D+FYHZ[PK ш5R))acm/gui/TableLayout.class-()VNONEI HORIZONTALVERTICALBOTHCENTER LEFT RIGHT TOP BOTTOMFILL(II)V acm/gui/TableLayout Code(IIII)V   java/lang/Object" #!nRows % &nColumns ( )hGap + ,vGap . /horizontalAlignment 1 2verticalAlignment 4 5 defaultFill 7 8java/util/HashMap: ;!constraintTableLjava/util/HashMap; => ? layoutTable A> BsetColumnCount(I)VtargetContainerLjava/awt/Container; FG H invalidate Jjava/awt/ContainerL MKgetColumnCount()I setRowCount getRowCountsetHorizontalAlignmentgetHorizontalAlignmentsetVerticalAlignmentgetVerticalAlignmentsetDefaultFillgetDefaultFillsetHgapgetHgapsetVgapgetVgapsetStrictGridBagModel(Z)VuseStrictGridBagModelZ _` aisStrictGridBagModel()ZsetConstraints4(Ljava/awt/Component;Ljava/awt/GridBagConstraints;)Vclone()Ljava/lang/Object; ghjava/awt/GridBagConstraintsj kiput8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; mn ;o)(Ljava/awt/Component;Ljava/lang/String;)Vacm/gui/TableConstraintsr(Ljava/lang/String;)V t su ef wgetConstraints0(Ljava/awt/Component;)Lacm/gui/TableConstraints;lookupConstraints3(Ljava/awt/Component;)Ljava/awt/GridBagConstraints; {| } (Ljava/awt/GridBagConstraints;)V  saddLayoutComponent)(Ljava/lang/String;Ljava/awt/Component;)V)(Ljava/awt/Component;Ljava/lang/Object;)V removeLayoutComponent(Ljava/awt/Component;)Vremove&(Ljava/lang/Object;)Ljava/lang/Object; ;preferredLayoutSize*(Ljava/awt/Container;)Ljava/awt/Dimension;getComponentCount P Mjava/awt/Dimension  processLayout+(Ljava/awt/Container;I)Ljava/awt/Dimension; minimumLayoutSizelayoutContainer(Ljava/awt/Container;)Vfill  kjava/lang/Stringacm/util/OptionTable toLowerCase()Ljava/lang/String;  LEGAL_KEYS[Ljava/lang/String; s((Ljava/lang/String;[Ljava/lang/String;)V  (Ljava/util/Map;)V  s isSpecified(Ljava/lang/String;)Z anchoracm/util/ErrorException TableLayout: Illegal constraints umaximumLayoutSizegetLayoutAlignmentX(Ljava/awt/Container;)F?getLayoutAlignmentYinvalidateLayout getTreeLock hjava/awt/Component layoutInProgress ` toStringgetClass()Ljava/lang/Class; #getName java/lang/Class java/lang/StringBuffervalueOf&(Ljava/lang/Object;)Ljava/lang/String; u[rows=append,(Ljava/lang/String;)Ljava/lang/StringBuffer; (I)Ljava/lang/StringBuffer;  ,columns= ,hgap=,vgap=]get ;D(Ljava/awt/Component;Ljava/awt/Container;)Lacm/gui/TableConstraints;computeLayoutTable getMinimumComponentSize*(Ljava/awt/Component;)Ljava/awt/Dimension; isScrollbar(Ljava/awt/Component;)Z getMinimumScrollbarSize getMinimumSize()Ljava/awt/Dimension;  getPreferredComponentSizegetPreferredSize  java/awt/Scrollbar javax/swing/JScrollBar java/lang/Exception ScrollbarLikeforName%(Ljava/lang/String;)Ljava/lang/Class;   isInstance(Ljava/lang/Object;)Z  getOrientation getMethod@(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;  invoke9(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;  !java/lang/reflect/Method# $"java/lang/Integer&intValue (P ')width + ,max(II)I ./java/lang/Math1 20height 4 5(Ljava/lang/Exception;)V 7 8%getIntProperty(Ljava/lang/String;)I ;< =( getComponent(I)Ljava/awt/Component; @A MBgridx D kEgridy G kH+4 L  Nipadx P kQinsetsLjava/awt/Insets; ST kUleft Wjava/awt/InsetsY ZXright \ Z]ipady _ k`top b Zcbottom e ZfweightxhgetDoubleProperty(Ljava/lang/String;)D jk lweightyngetSize p q getInsets()Ljava/awt/Insets; st Muround(D)J wx 2y gridwidth { k| gridheight ~ kjava/awt/Rectangle computeCellBoundsX(Ljava/awt/Rectangle;Ljava/awt/Dimension;Lacm/gui/TableConstraints;)Ljava/awt/Rectangle;  x  y   , 5 setBounds   yz $TableLayout: Too many rows specifiedgetFirstAvailableColumn([I)I   s,setMaxProperty(Ljava/lang/String;I)V   s5D h k(Ljava/lang/String;D)V   n k;TableLayout: Illegal to use gridwidth=RELATIVE in first rowTableLayout: Overlapping cellsmin / 2/TableLayout: Illegal to use gridheight=RELATIVE arraycopy*(Ljava/lang/Object;ILjava/lang/Object;II)V java/lang/System setIntProperty    k(DD)D . 2setDoubleProperty   E 'java/lang/Double(D)V   doubleValue()D  LAYOUT_CONTAINER_MODEMINIMUM_LAYOUT_SIZE_MODEPREFERRED_LAYOUT_SIZE_MODEMINIMUM_SCROLLBAR_SIZEd ConstantValue SourceFilejava/awt/LayoutManager2TableLayout.java!#       FG=>A>_``%(147+.1* * G;*$*'***-*0* 3* 6*9*;Y<@*CDE ***I *INOP**QE *'*I *INRP*'SE *3*I *INTP*3UE *6*I *INVP*6WE *9*I *INXP*9YE *-*I *INZP*-[E *0*I *IN\P*0]^ *b*I *INcd*bef(*@+,lpW*I *INeq*+sY,vxyz#*+~M, sY,*,+$*@+W*I *IN$+ Y*+$+ Y*+ *+I*+W,sYvM,s*9Z,BY,NsY-M-/,s-*9,k Y*@+,pW*I *IN Yîî0+M,*͚*C,ç,ÿ*ҶLY+ݷ*'**L*-Y+ݷ*-L*0Y+ݷ*0LY+ݷL+{| *@+k{E1,:*C*,*C+sN -ÿ:é &&*+ *++*+ *++ 2+ + +WnZ+M+N-ֶ:+#%'*6,,-d3-,,6d36 NY-9,KN/tN+:**C*+*:>6*?>6 : : +6 6 + C: *C s:  F6 I6*YJ>6*YK>6F *b* M-6* O-6 Rh V[` V^``6F *b* M66* O66 ah Vd` Vg``6  .3O.3O   *-6 *06 ::996:  .*-``6 *YimR1c96: .*0``6 *YomR1c9^+r:+v:Y-[^`d-Y6dg`d6- d66 d6[6d6*3} _}}}}}}}}C=R6=l`66.`66!96 Rp*6iK / )>6=l`66.`66!96 R :*-`66NO01koz6 \.`Od61g9 .*-``6 :*0`6 6!N! O0!1koz6"!\."`O"d6!1g9 !.*0``6 !!6",+"C:#*C#s:$$F6%$I6&%.$V[`6'&.$Vd`6( %.6)6*) %*`.*-``6)**$} %*`)$V[$V^`d6)&.6+6,+&,`.*0``6+,,$ &,`+$Vd$Vg`d6+*b *#M *#O:-*Y'()+-$:.#...."" ӧY  N*çÿ- hnM>6**6+66*;Y<C6+C: * :  F  F6 I  I>*'N*'FY3,6 , . , \.dO  ,*,6,, ,. F I6 *YJ *YK *Yi *Yo 6  }H)6 Pd6 FYdd6 6' }6 ** }`**6  2,.6 , .Y  , `6  (6 Y 6  L, ` M#, `,: ` M,6 , O `  }  *C  pW `6<6,"6,. ,\.dO,*,66   N6*?*:` +6+6+6+6- - ,-6- - ,66+L-E %%666%+dl`6+d`6+V-O /OO/@@@/+dl`6+d`6Y*+*+>3*+(*+m±*C+'YĶpW;<#*C+M,,'**C+Y(ɶpWjk#*C+M,,ƶͯ0$*b++=+d.PK ш5~2acm/gui/TablePanel.class-S()VNONEI HORIZONTALVERTICALBOTHCENTER LEFT RIGHT TOP BOTTOMFILL javax/swing/JPanel Code(II)V(IIII)V acm/gui/TablePanel !acm/gui/TableLayout# $ setLayout(Ljava/awt/LayoutManager;)V &'java/awt/Container) *(setHorizontalAlignment(I)V getLayout()Ljava/awt/LayoutManager; ./ *0 ,- $2getHorizontalAlignment()I 45 $6setVerticalAlignment 8- $9getVerticalAlignment ;5 $<setDefaultFill >- $?getDefaultFill A5 $BsetHgap D- $EgetHgap G5 $HsetVgap J- $KgetVgap M5 $N ConstantValue SourceFileTablePanel.java!! PPP  P  P PPPPP * *"!**$Y%+,- *1$345 *1$78- *1$:;5 *1$=>- *1$@A5 *1$CD- *1$FG5 *1$IJ- *1$LM5 *1$OQRPK ш5Lacm/gui/VPanel.class-"()V(II)V acm/gui/VPanel Code acm/gui/TablePanel acm/gui/TableLayout(IIII)V  setHorizontalAlignment(I)V  setVerticalAlignment   setLayout(Ljava/awt/LayoutManager;)V java/awt/Container  SourceFile VPanel.java!  * , * YN--*- !PK ш5acm/io/PK ш5}acm/io/ConsoleReader.class-?()V(Lacm/io/ConsoleModel;)V java/io/Reader  consoleModelLacm/io/ConsoleModel; acm/io/ConsoleReader bufferLjava/lang/String;  Codecloseread([CII)IreadLine()Ljava/lang/String; acm/io/ConsoleModel java/lang/StringBuffervalueOf&(Ljava/lang/Object;)Ljava/lang/String;  java/lang/String" #!(Ljava/lang/String;)V % & (append,(Ljava/lang/String;)Ljava/lang/StringBuffer; *+ ,toString . /length()I 12 #3getChars(II[CI)V 56 #7 substring(I)Ljava/lang/String; 9: #; SourceFileIOConsole.java  **+* z*1***Y*[$')-0*4*+8**<*4>*+8*=>PK ш5T--acm/io/SystemConsole.class-()VcreateConsoleModel()Lacm/io/ConsoleModel;acm/io/SystemConsoleModel  Codeacm/io/IOConsole  SourceFileacm/io/SystemConsoleIOConsole.java   Y  * PK ш5n<acm/io/SystemConsoleModel.class-s()V acm/io/ConsoleModel textLjava/lang/String; acm/io/SystemConsoleModel  Codeclearprint(Ljava/lang/String;I)VoutLjava/io/PrintStream; java/lang/System (Ljava/lang/String;)V java/io/PrintStream java/lang/StringBuffervalueOf&(Ljava/lang/Object;)Ljava/lang/String; !"java/lang/String$ %#  'append,(Ljava/lang/String;)Ljava/lang/StringBuffer; )* +toString()Ljava/lang/String; -. /readLineflush 2 3java/io/IOException5 inputScriptLjava/io/BufferedReader; 78 9inLjava/io/InputStream; ;< =read()I ?@java/io/InputStreamB CAjava/io/BufferedReaderE FAlength H@ %Iclose K FL(C)Ljava/lang/StringBuffer; )N O Q  SgetText(II)Ljava/lang/String; substring WV %X getLengthgetConsoleModel()Ljava/awt/Component; getTextPanesetFont(Ljava/awt/Font;)V setInputStyle(I)V setInputColor(Ljava/awt/Color;)V setErrorStyle setErrorColorcutcopypaste selectAllisPointSelection()Z(Ljava/awt/PrintJob;)VsetInputScript(Ljava/io/BufferedReader;)VgetInputScript()Ljava/io/BufferedReader; SourceFileIOConsole.java 78  **  -!+ Y*[&(+,01.4 L*: >D= *:G=+J*:MW*:$  Y+&(P0LW*:* Y+&(R,0T+.586 ff6U.*UV *YZ@*J[\]\^_ `a bc da ec f g h i jkl mn*+:op*:qrPK ш5ܛ36!6!acm/io/ConsoleModel.class-()V OUTPUT_STYLEI INPUT_STYLE ERROR_STYLE java/lang/Object javax/swing/JScrollPane(II)V   scrollPaneLjavax/swing/JScrollPane; acm/io/ConsoleModel javax/swing/JTextPane  textPaneLjavax/swing/JTextPane;  addKeyListener(Ljava/awt/event/KeyListener;)V !"java/awt/Component$ %#addFocusListener!(Ljava/awt/event/FocusListener;)V '( %)setViewportView(Ljava/awt/Component;)V +, - getDocument()Ljavax/swing/text/Document; /0javax/swing/text/JTextComponent2 31documentLjavax/swing/text/Document; 56 7line.separator9 getProperty&(Ljava/lang/String;)Ljava/lang/String; ;<java/lang/System> ?= lineSeparatorLjava/lang/String; AB C#javax/swing/text/SimpleAttributeSetE F outputAttributes%Ljavax/swing/text/SimpleAttributeSet; HI JinputAttributes LI MerrorAttributes OI Pacm/io/CharacterQueueR S bufferLacm/io/CharacterQueue; UV W inputLockLjava/lang/Object; YZ [ outputLock ]Z ^base ` aCode setConsole(Lacm/io/IOConsole;)VconsoleLacm/io/IOConsole; fg h getConsole()Lacm/io/IOConsole;print(Ljava/lang/String;I)Vinsert(Ljava/lang/String;II)V no plength()I rsjava/lang/Stringu vtsetCaretPosition(I)V xy zreadLine()Ljava/lang/String; getLength ~s  inputScriptLjava/io/BufferedReader; java/io/IOException |}java/io/BufferedReader acm/util/ErrorException(Ljava/lang/Exception;)V  close  getCaretPosition s getSelectionStart s getSelectionEnd s delete  deleteSelection s  selectAll  max(II)I java/lang/Math copy  min  printConsole acm/io/IOConsole save  paste  cut  valueOf(C)Ljava/lang/String; vselect  dequeue()C SgetText(II)Ljava/lang/String; setInputScript(Ljava/io/BufferedReader;)V isWaiting()Z Sjava/lang/StringBuffer&(Ljava/lang/Object;)Ljava/lang/String; v(Ljava/lang/String;)V append,(Ljava/lang/String;)Ljava/lang/StringBuffer; toString } enqueue SgetInputScript()Ljava/io/BufferedReader;isCommandEnabled(Ljava/lang/String;)ZhasFocusZ clearsetText javax/swing/JEditorPane } %javax/swing/text/BadLocationExceptionjavax/swing/text/Document getConsolePane()Ljava/awt/Component; getTextPane 3 3setSelectionStart y 3 3 3&javax/swing/text/DefaultStyledDocument setCharacterAttributes%(IILjavax/swing/text/AttributeSet;Z)V     3isPointSelection 3(Ljava/awt/PrintJob;)V getPageDimension()Ljava/awt/Dimension; java/awt/PrintJob  getGraphics()Ljava/awt/Graphics;  getFontMetrics()Ljava/awt/FontMetrics;  java/awt/Graphics" #! getHeight %sjava/awt/FontMetrics' (&height *java/awt/Dimension, -+ countLines(Ljava/lang/String;)I /0 1getLineY(Ljava/lang/String;I)I 34 5 translate 7 #8width : -;setClip(IIII)V => #?paint(Ljava/awt/Graphics;)V ABjavax/swing/JComponentD ECdispose G #H setInputStyleBConsole styles and colors cannot be changed after I/O has started.K Bold NZjavax/swing/text/StyleConstantsP QOjava/lang/BooleanS(Z)V U TV addAttribute'(Ljava/lang/Object;Ljava/lang/Object;)V XY FZItalic \Z Q] setInputColor(Ljava/awt/Color;)V Foreground aZ Qb setErrorStyle setErrorColor focusGained(Ljava/awt/event/FocusEvent;)V findMenuBar()Lacm/program/ProgramMenuBar; hi j deacm/program/ProgramMenuBarm nl updateMenuBar(Lacm/program/ProgramMenuBar;)V pq r focusLostkeyTyped(Ljava/awt/event/KeyEvent;)V getKeyChar wjava/awt/event/KeyEventy zx(C)V | S}consume java/awt/event/InputEvent  keyPressed getKeyCode s z keyReleased requestFocus  ECut setEnabled(Ljava/lang/String;Z)V  nCopyPaste Select AllSaveSave AsScript Print Console insertString5(ILjava/lang/String;Ljavax/swing/text/AttributeSet;)V  remove   3z 3indexOf 4 vendsWith  vjava/lang/Exception modelToView(I)Ljava/awt/Rectangle;  3y java/awt/Rectangle  +Internal error: ,(Ljava/lang/Object;)Ljava/lang/StringBuffer;  acm/program/Program getMenuBar i javax/swing/JFrame getJMenuBar()Ljavax/swing/JMenuBar;   getParent()Ljava/awt/Container;  % ConstantValue SourceFilejava/awt/event/KeyListenerjava/awt/event/FocusListenerIOConsole.java   UVHILIOI56AB`fgYZ]Z* c**Y *Y * *&* **** .** 48*:@D*FYGK*FYGN*FYGQ*SYTX* Y\* Y_*bdec*+ijkc*ilmcC/*_N-*+*bq*Yb+w`b**b{-ç-ÿ&+|}cA*\M,**b*g:*::Y7**bq**bw`q*Ybw``bL+*W***b{=**b **{*6 \\**b*d*6*6}*d*b6k*6a*`*6O*i6B*i65*6+*6!* *6*q**{*XY6  **bd6**b*b`:**b`q*Yb``bL+,ÿ:,é"%jqtcS?*+*Xՙ2*M*XY,ڷ MY,14c*c*c * }c* c,*8dNY-~sc *8c*c* c **Wc* csg* *8*<* * * *8*8 *8 *8 M,* d*Nc* c#* * lc *M+N+:$:)6-.l6*,26dl`6 6 6 L  +:*, h`66  t9 -<  d@* FI 6   JycWK*YLM*NRTY~W[*N^TY~W[_`c**YLM*Nc+[dycWK*YLM*QRTY~W[*Q^TY~W[e`c**YLM*Qc+[fgc(**kM,,*io*,stgc*uvc*X+{~+vcH<+3%'3'*X~*X~+vc+c* * pqcMA++++++++nocT@*K:'*N: *Q:*8+W;>c/*8d NY- xyc * sc* c *  sc* sc* sc2&*b*<*=*b**/0c7+=>+*D`Y>+*D34ct+w>68+*D6* :`*Dw`>* :YYM XXhicMA*iL6+ +İ+ƙ+ƶM,n ,n+L+PK ш5??acm/io/CharacterQueue.class-F()V java/lang/Object bufferLjava/lang/String; acm/io/CharacterQueue  Codeenqueue(C)Vjava/lang/StringBuffervalueOf&(Ljava/lang/Object;)Ljava/lang/String; java/lang/String (Ljava/lang/String;)V  append(C)Ljava/lang/StringBuffer;   toString()Ljava/lang/String; "# $ notifyAll & ',(Ljava/lang/String;)Ljava/lang/StringBuffer; ) *dequeue()Cjava/lang/InterruptedException. isWaitingZ 01 2wait 4 5length()I 78 9charAt(I)C ;< = substring(I)Ljava/lang/String; ?@ A()Z SourceFileIOConsole.java  01 ** >**M,»Y*[!%*(,ç,ÿ!&>**M,»Y*[++%*(,ç,ÿ!&,-iM*M,§*3*6*3W*:*>6**B<,ÿ:,é/DD0C*3DEPK ш5.E""acm/io/ConsoleWriter.class-7()V(Lacm/io/ConsoleModel;)V java/io/Writer  consoleModelLacm/io/ConsoleModel; acm/io/ConsoleWriter Codecloseflushwrite([CII)Vjava/lang/String   substring(II)Ljava/lang/String;  print(Ljava/lang/String;I)V acm/io/ConsoleModel  "LINE_SEPARATORLjava/lang/String; $%acm/io/IOConsole' (&length()I *+ ,indexOf(Ljava/lang/String;I)I ./ 0(I)Ljava/lang/String; 2 3 SourceFileIOConsole.java   **+  eYY+:6)*!*#!)-`6)1Y6*4!56PK ш5%5!5!acm/io/IOConsole.class-()Vacm/io/SystemConsole  SYSTEM_CONSOLELacm/io/IOConsole;  acm/io/IOConsole  java/awt/Font Monospaced(Ljava/lang/String;II)V   DEFAULT_FONTLjava/awt/Font;  line.separator getProperty&(Ljava/lang/String;)Ljava/lang/String; java/lang/System LINE_SEPARATORLjava/lang/String; !" #Codejava/awt/Container& 'createConsoleModel()Lacm/io/ConsoleModel; )* + consoleModelLacm/io/ConsoleModel; -. / setConsole(Lacm/io/IOConsole;)V 12acm/io/ConsoleModel4 53whiteLjava/awt/Color; 78java/awt/Color: ;9 setBackground(Ljava/awt/Color;)V => ?blue A8 ;B setInputColor D> E setInputStyle(I)V GH Ired K8 ;L setErrorColor N> O setErrorStyle QH RgetStandardFont (Ljava/awt/Font;)Ljava/awt/Font; TUacm/util/JTFToolsW XVsetFont(Ljava/awt/Font;)V Z[ \java/awt/BorderLayout^ _ setLayout(Ljava/awt/LayoutManager;)V ab 'cgetConsolePane()Ljava/awt/Component; ef 5gCenteriadd)(Ljava/awt/Component;Ljava/lang/Object;)V kl 'mjava/io/BufferedReaderoacm/io/ConsoleReaderq(Lacm/io/ConsoleModel;)V s rt(Ljava/io/Reader;)V v pwreaderLjava/io/BufferedReader; yz {java/io/PrintWriter}acm/io/ConsoleWriter t(Ljava/io/Writer;)V  ~writerLjava/io/PrintWriter; exceptionOnErrorZ clear  5print(Ljava/lang/String;)V ~(Z)VvalueOf(Z)Ljava/lang/String; java/lang/String (C)V(C)Ljava/lang/String; (D)V(D)Ljava/lang/String; (F)V(F)Ljava/lang/String; (I)Ljava/lang/String; (J)V(J)Ljava/lang/String; (Ljava/lang/Object;)V&(Ljava/lang/Object;)Ljava/lang/String; println  ~ ~ showErrorMessage(Ljava/lang/String;I)V 5 readLine()Ljava/lang/String;   requestFocus  5java/io/IOException pacm/util/ErrorException(Ljava/lang/Exception;)V  readInt()I(Ljava/lang/String;II)I (II)I(Ljava/lang/String;)Ijava/lang/NumberFormatExceptionparseInt java/lang/Integer java/lang/StringBufferValue is outside the range [  append(I)Ljava/lang/StringBuffer; :,(Ljava/lang/String;)Ljava/lang/StringBuffer; ]toString Illegal numeric format Retry:  readDouble()D(Ljava/lang/String;DD)D (DD)D(Ljava/lang/String;)D&(Ljava/lang/String;)Ljava/lang/Double; java/lang/Double  doubleValue   (D)Ljava/lang/StringBuffer;    readBoolean()Z(Ljava/lang/String;)Z  truefalse9(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z  End of file encountered equalsIgnoreCase  Illegal boolean format! getReader()Ljava/io/BufferedReader; getWriter()Ljava/io/PrintWriter;setExceptionOnErrorgetExceptionOnError inputStyleI )* + 5I getInputStyle inputColor /8 0 5E getInputColor()Ljava/awt/Color; errorStyle 5* 6 5R getErrorStyle errorColor :8 ; 5O getErrorColor getTextPane ?f 5@java/awt/ComponentB C? setForeground E> CF C\getFont()Ljava/awt/Font; IJ CK decodeFont2(Ljava/lang/String;Ljava/awt/Font;)Ljava/awt/Font; MN XOsetInputScript(Ljava/io/BufferedReader;)V QR 5SgetInputScript U$ 5Vcut X 5Ycopy [ 5\paste ^ 5_ selectAll a 5bsavefileLjava/io/File; ef ggetEnclosingFrame&(Ljava/awt/Component;)Ljava/awt/Frame; ij Xkuser.dirmjava/awt/FileDialogoSave Console Asq&(Ljava/awt/Frame;Ljava/lang/String;I)V s pt setDirectory v pw setVisible y CzgetFile | p} java/io/File getDirectory  p'(Ljava/lang/String;Ljava/lang/String;)V  java/io/FileWriter(Ljava/io/File;)V   d close java/io/Writer TEXTttxtsetFileTypeAndCreator5(Ljava/io/File;Ljava/lang/String;Ljava/lang/String;)V acm/util/Platform acm/io/IODialog(Ljava/awt/Component;)V   getMessage java/lang/Throwable  saveAs d getText  5write   printConsole getToolkit()Ljava/awt/Toolkit;  CConsole getPrintJobM(Ljava/awt/Frame;Ljava/lang/String;Ljava/util/Properties;)Ljava/awt/PrintJob; java/awt/Toolkit (Ljava/awt/PrintJob;)V  end java/awt/PrintJob   5script Input Scriptjava/io/FileReader #(Ljava/io/File;Ljava/lang/String;)V    SgetPreferredSize()Ljava/awt/Dimension;getMinimumSize  java/awt/Dimension(II)V   5MINIMUM_CONSOLE_WIDTH2MINIMUM_CONSOLE_HEIGHT( ConstantValue SourceFileacm/io/IOModelIOConsole.java! ' !"**-.yzef/8)*:85*B%."Y Y  $%*(**,0*0*6*<@*CF*J*MP*S*Y]*_Y`d**0hjn*pYrY*0ux|*~YY*0*%*0% *+% *% *% *'% *#H% *% *% *+%*% *+% *% *% *'% *#H% *% *% *+% *0+*0%*°%8$+*+*0*|M,MY,ο% *Ҷլ%*լ% *+Ҷլ%lX:*+:6 Y:W:*+L @C% *%*')% *+%s _:*+: 9(Y(:W:*+L GJ%*% *+%\P*+:Y, - *Y"*"+L#$%*|%&%*'%*(%*GH%*,*0-.%*,D>%*+1*0+234%*1QH%*7*089%*7N>%*+<*0+=>4%*<=>%#*0AM,,+D*+DE>%#*0AM,,+G*+GZ[%(+YL*0AM,,+H*+HZ% *+*LP]QR% *0+TU$%*0WX%*0Z[%*0]^%*0`a%*0cd%L*hM*lM,n NpY,ru:-x{~:*YhY*hL*++*hMY*N-,+tx{% *h*d%-+*0 MY,ο %2&*lL+*+M,*,,ű% *0+DZ%|h*lLpY+uM,n x,{,N,~:9YYY-з:*pYxҧ:Yο1X[%*0ű%*װ% Y2(ܰ)*%5YݰPK ш5~7bbacm/io/AWTIconCanvas.class-$()V(Ljava/awt/Image;)V java/awt/Canvas myIconLjava/awt/Image; acm/io/AWTIconCanvas CodegetMinimumSize()Ljava/awt/Dimension;java/awt/Dimension(II)V  getPreferredSize  paint(Ljava/awt/Graphics;)V drawImage3(Ljava/awt/Image;IILjava/awt/image/ImageObserver;)Z java/awt/Graphics  SourceFile IODialog.java   **+ Y00*+**!W"#PK ш5]<acm/io/AWTDialog.class-f()VWIDTHIHEIGHTd6(Ljava/awt/Frame;Ljava/lang/String;Ljava/awt/Image;Z)V&(Ljava/awt/Frame;Ljava/lang/String;Z)V  java/awt/Dialog java/awt/BorderLayout   setLayout(Ljava/awt/LayoutManager;)V java/awt/Container java/awt/Panel java/awt/FlowLayout acm/io/AWTMessageCanvas  messageAreaLacm/io/AWTMessageCanvas; "#acm/io/AWTDialog% &$Center(add)(Ljava/awt/Component;Ljava/lang/Object;)V *+ ,initButtonPanel(Ljava/awt/Panel;Z)V ./ &0 initDataPanel(Ljava/awt/Panel;)V 23 &4acm/io/AWTIconCanvas6(Ljava/awt/Image;)V 8 79West;South= getBounds()Ljava/awt/Rectangle; ?@java/awt/ComponentB CAx Ejava/awt/RectangleG HFwidth J HKy M HNheight P HQ setBounds(IIII)V ST CUvalidate W XCodeactionPerformed(Ljava/awt/event/ActionEvent;)V setMessage(Ljava/lang/String;)V ]^ _ ConstantValue SourceFilejava/awt/event/ActionListenerc IODialog.java & daa"# Z *+,*YY:Y:Y:YYY* Y!'*')-*1*57Y-:<-)-*)-*>-+D:ILl`6 ORl`6 * d 2ddV*Y./23[\]^Z *'+`bePK ш5l>Vacm/io/AWTDialogModel.class-()Vjava/lang/StringP47494638396120002000F70000FFFFFF980098339999989800111111222222000054CBFFCB003298P0033660033CC0033FE00323266330066660000659800989800CC9900FE99329800659800CC0099FEP0098659898999999CC9900FE98009800329800659900CC9800FE3399CB3399FF9999339898659832 P0098650099339998659833CB9833FF9999CC0099FE00336699656698CC9898FF9999323200336600 P32003233006632009833339965009866339900663300983200666600986500CC3300FE3200CC6600 PFE65CCCC98CCFF99FFCC99FFFF993300CC3200FE6600CC6500FECC0033CC0066FE0032FE00653399P33339966669933669865CC00CCCB00FEFE00CBFE00FE6699CC6598FF9898CC9999FFCB9833CC9966PFF9933FF9865333333326532323265326565660033653232660066653265CC3300CC6600FE3200FEP65000066CC0099CC0066FE0098FE00CCCC00FECB00CCFE00FEFE33CC0033FE0066CC0066FE00CB33P98CC6699FF3399FF659866CC9965FF9898CC9899FF99CCCC00CCFE00FECB00FEFE00993333996633P9933669865659833CB9966CC9933FF9865FF33CBCB33FFCC33CCFF33FFFF99CB3399FF3399CC6698PFF65CC98CCCCCCCCCC99FFCBCBFFFF99CCFFCBCBFF99FFFFCBFF3333CB3366CB3333FF3366FF6533PCB6666CC6633FF6565FFCB3333CB6533CB3365CC6666FF3333FF6633FF3366FF656533CB3333FF33P33CB6633FF6666CB3366FF3366CC6665FF65CB33CBCC66CCCC33FFCC65FFFF33CCFF65CCFF33FFFFP65FF66CCCC65FFCC65CCFF65FFFF98CCCC99FFCC99CCFF99FFFFCBCB33CCFF33CCCC66CCFF65FFCC!P33FFFF33FFCC65FFFF65444444656532DDDDDDCBFFFFFFFFCBEEEEEE100000980000001000660000#P000098000066777777888888AAAAAABBBBBB5555556666660000100000224400005400000000CC00%P00DC0000EE0000FE00003200004400880000980000AA0000BA0000CC0000DC0000EE0000FE00CC00'P00DC0000EE0000FE0000004400005400006600007600220000320000AA0000BA0000002200003200)P7600008800000000AA0000BA00007600008800000021F90401000096002C0000000020002000C7FF+PFFFF980098339999989800111111222222000054CBFFCB0032980033660033CC0033FE0032326633-P0066660000659800989800CC9900FE99329800659800CC0099FE0098659898999999CC9900FE9800/P9800329800659900CC9800FE3399CB3399FF99993398986598320098650099339998659833CB98331PFF9999CC0099FE00336699656698CC9898FF999932320033660032003233006632009833339965003P9866339900663300983200666600986500CC3300FE3200CC6600FE65CCCC98CCFF99FFCC99FFFF995P3300CC3200FE6600CC6500FECC0033CC0066FE0032FE0065339933339966669933669865CC00CCCB7P00FEFE00CBFE00FE6699CC6598FF9898CC9999FFCB9833CC9966FF9933FF986533333332653232329P65326565660033653232660066653265CC3300CC6600FE3200FE65000066CC0099CC0066FE0098FE;P00CCCC00FECB00CCFE00FEFE33CC0033FE0066CC0066FE00CB3398CC6699FF3399FF659866CC9965=PFF9898CC9899FF99CCCC00CCFE00FECB00FEFE009933339966339933669865659833CB9966CC9933?PFF9865FF33CBCB33FFCC33CCFF33FFFF99CB3399FF3399CC6698FF65CC98CCCCCCCCCC99FFCBCBFFAPFF99CCFFCBCBFF99FFFFCBFF3333CB3366CB3333FF3366FF6533CB6666CC6633FF6565FFCB3333CBCP6533CB3365CC6666FF3333FF6633FF3366FF656533CB3333FF3333CB6633FF6666CB3366FF3366CCEP6665FF65CB33CBCC66CCCC33FFCC65FFFF33CCFF65CCFF33FFFF65FF66CCCC65FFCC65CCFF65FFFFGP98CCCC99FFCC99CCFF99FFFFCBCB33CCFF33CCCC66CCFF65FFCC33FFFF33FFCC65FFFF6544444465IP6532DDDDDDCBFFFFFFFFCBEEEEEE100000980000001000660000000098000066777777888888AAAAKPAABBBBBB5555556666660000100000224400005400000000CC0000DC0000EE0000FE000032000044MP00880000980000AA0000BA0000CC0000DC0000EE0000FE00CC0000DC0000EE0000FE000000440000OP5400006600007600220000320000AA0000BA00000022000032007600008800000000AA0000BA0000QP7600008800000008E5002D091C28909DC1830813B22348D0202D85D5AA294C185121872EEC1E4E44SP18B1E34676EBD85DB48430E4C793074736CC88F22387861A377A3438F3A04991186352AC08916742UP950339B404F9B30BC3A30E87A63C5A90A55297057572F43955A2C59C2D3B529D78D1A94C9F350DDEWPEC2A95A6D58F5B71067DBA112853A11CE2CA9D4BD72853A41969E9DDCB77AFC8BB2BCBB67CC93429YPDB9F810F43F55A156D5AB236779E353B1921E4931EC35E657C53F260AC982B6A2ECAB2F341CDA30D[P5EF6FCB5324EC68A23ABB5243476D1A3B5893E5DE716B76CB16DED020EDAA5B8F1E3C8EF06040021]PFF0B4D414347436F6E2004031039000000015772697474656E20627920474946436F6E7665727465_B7220322E342E33206F66204D6F6E6461792C204D61792032352C2031393938003Ba ERROR_IMAGE[Ljava/lang/String; cdacm/io/AWTDialogModelf geP7600008800000008A0002D091C48B0A0C1830809F659B8F09F43870C17268C4891E2C38A18FB4C8CiPF81062C484200536F418D260C691FF4E6A44A8F2E2C9920531C29CC9706648861D534AB46909634EkP992C55F671A932A650A22F830AADC8B3274A8F2B9B9ADC291564D4AA072962353A14EA568E1D3FF2mPACF8536BC98C65992A450B3523D7966D933A3D1AD7AD42B83AE54EF559B7E659B27D9B8245FA15A5oPDFAD22C5228EC933200021FF0B4D414347436F6E2004031039000000015772697474656E20627920qP474946436F6E76657274657220322E342E33206F66204D6F6E6461792C204D61792032352C203139s3938003Bu INFORM_IMAGE wd gxP7600008800000008A9002D091C485060AE83080F165C383021C27F1021268C28D1612E831633E6A2zPA8D121C68E1B2B82BCB8502345911E0982E478F024484B235BA27C593263C48E0C6BC64C98F3E3C4|P934033AAB4E952E64DA13B1FB24CDAF1E84E98319D8E2CD874A9D09E0D9F62659874EB50A608B112~P053A5321558B568B5ACC8A56ADDA9426DD5AE50936A4D4BA3FEFE2555A762F5FA65047EAD5C8D66FPCAC26D07F3E43AB6AF59B175BD325EBB35200021FF0B4D414347436F6E2004031039000000015772P697474656E20627920474946436F6E76657274657220322E342E33206F66204D6F6E6461792C204D61792032352C2031393938003BQUESTION_IMAGE d gCode(Ljava/awt/Component;)V java/lang/Object  myComponentLjava/awt/Component; g imagesReadyZ g popupMessage(Ljava/lang/String;)V createImages  ggetEnclosingFrame&(Ljava/awt/Component;)Ljava/awt/Frame; acm/util/JTFTools acm/io/AWTMessageDialogMessage informImageLjava/awt/Image; gG(Ljava/awt/Frame;Ljava/lang/String;Ljava/awt/Image;Ljava/lang/String;)V  setVisible(Z)V java/awt/Component popupErrorMessageError errorImage gpopupLineInputDialog'(Ljava/lang/String;Z)Ljava/lang/String;acm/io/AWTLineInputDialog questionImage g6(Ljava/awt/Frame;Ljava/lang/String;Ljava/awt/Image;Z)V getInput()Ljava/lang/String; popupBooleanInputDialogL(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/Boolean;acm/io/AWTBooleanInputDialogZ(Ljava/awt/Frame;Ljava/lang/String;Ljava/awt/Image;Ljava/lang/String;Ljava/lang/String;Z)V ()Ljava/lang/Boolean;  createImage%([Ljava/lang/String;)Ljava/awt/Image; acm/util/MediaTools  SourceFileacm/io/DialogModel IODialog.java gcdwddUI/YSYSY SY SYSYSYSYSYSY SY SY SY SY  SY"SY$SY&SY(SY*SY,SY.SY0SY2SY4SY6SY8SY:SYSY@SYBSYDSY FSY!HSY"JSY#LSY$NSY%PSY&RSY'TSY(VSY)XSY*ZSY+\SY,^SY-`SY.bSh.YSYSY SY SYSYSYSYSYSY SY SY SY SY  SY"SY$SY&SY(SY*SY,SY.SY0SY2SY4SY6SY8SY:SYSY@SYBSYDSY FSY!HSY"JSY#LSY$NSY%PSY&RSY'jSY(lSY)nSY*pSY+rSY,tSY-vSy.YSYSY SY SYSYSYSYSYSY SY SY SY SY  SY"SY$SY&SY(SY*SY,SY.SY0SY2SY4SY6SY8SY:SYSY@SYBSYDSY FSY!HSY"JSY#LSY$NSY%PSY&RSY'{SY(}SY)SY*SY+SY,SY-S**+*3'***MY,*+3'***MY,*+;/***NY-+*:ʰ@4***:Y+*,-:԰0$*hڵ*yڵ*ڵ*PK ш5}:acm/io/DialogModel.class-()V popupMessage(Ljava/lang/String;)VpopupErrorMessagepopupLineInputDialog'(Ljava/lang/String;Z)Ljava/lang/String;popupBooleanInputDialogL(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/Boolean; SourceFileacm/io/DialogModel java/lang/Object  IODialog.java   PK ш5acm/io/AWTMessageCanvas.class-^()V java/awt/FontDialog(Ljava/lang/String;II)V    MESSAGE_FONTLjava/awt/Font; acm/io/AWTMessageCanvas  CodeMARGINI java/awt/Canvas setFont(Ljava/awt/Font;)V java/awt/Component  setMessage(Ljava/lang/String;)VmessageLjava/lang/String; !" #paint(Ljava/awt/Graphics;)VgetFontMetrics()Ljava/awt/FontMetrics; '(java/awt/Graphics* +) getAscent()I -.java/awt/FontMetrics0 1/getSize()Ljava/awt/Dimension; 34 5width 7java/awt/Dimension9 :8java/util/StringTokenizer< >((Ljava/lang/String;Ljava/lang/String;Z)V @ =A nextToken()Ljava/lang/String; CD =E stringWidth(Ljava/lang/String;)I GH 1I getHeight K. 1Lequals(Ljava/lang/Object;)Z NOjava/lang/StringQ RP drawString T +U hasMoreTokens()Z WX =Y ConstantValue SourceFile IODialog.java [ !"Y  ** *+$%& x+,M>,2`6*6;d6=Y*$?B:BF:,J6`>,M`6?S+V`>Z\]PK ш5acm/io/AWTLineInputDialog.class-\()V6(Ljava/awt/Frame;Ljava/lang/String;Ljava/awt/Image;Z)VInput acm/io/AWTDialog  setMessage(Ljava/lang/String;)V CodegetInput()Ljava/lang/String;inputLjava/lang/String; acm/io/AWTLineInputDialog  setVisible(Z)V java/awt/Component textLineLjava/awt/TextField;    requestFocus " #initButtonPanel(Ljava/awt/Panel;Z)Vjava/awt/Button'OK)  (+okButtonLjava/awt/Button; -. /addActionListener"(Ljava/awt/event/ActionListener;)V 12 (3add*(Ljava/awt/Component;)Ljava/awt/Component; 56java/awt/Container8 97Cancel; cancelButton =. > initDataPanel(Ljava/awt/Panel;)Vjava/awt/TextFieldB  CD C3SouthG)(Ljava/awt/Component;Ljava/lang/Object;)V 5I 9JactionPerformed(Ljava/awt/event/ActionEvent;)V getSource()Ljava/lang/Object; NOjava/util/EventObjectQ RPgetText Tjava/awt/TextComponentV WU  SourceFile IODialog.java  =.-.*+- *,** *!$%&MA*(Y*,0*0*4+*0:W!*(Y<,?*?*4+*?:W@A**CYE!*!*F+*!HKLMJ>+SM,*0 ,*!**!X*Y,*? **YZ[PK ш5C"acm/io/AWTBooleanInputDialog.class-V()VZ(Ljava/awt/Frame;Ljava/lang/String;Ljava/awt/Image;Ljava/lang/String;Ljava/lang/String;Z)VInput6(Ljava/awt/Frame;Ljava/lang/String;Ljava/awt/Image;Z)V acm/io/AWTDialog  setMessage(Ljava/lang/String;)V  trueButtonLjava/awt/Button; acm/io/AWTBooleanInputDialog setLabel  java/awt/Button  falseButton  CodegetInput()Ljava/lang/Boolean;inputLjava/lang/Boolean; !" #initButtonPanel(Ljava/awt/Panel;Z)VTrue'  )addActionListener"(Ljava/awt/event/ActionListener;)V +, -add*(Ljava/awt/Component;)Ljava/awt/Component; /0java/awt/Container2 31False5Cancel7 cancelButton 9 : initDataPanel(Ljava/awt/Panel;)VactionPerformed(Ljava/awt/event/ActionEvent;)V getSource()Ljava/lang/Object; @Ajava/util/EventObjectC DBjava/awt/ComponentFTRUE H"java/lang/BooleanJ KI setVisible(Z)V MN GOFALSE Q" KR SourceFile IODialog.java  9!"."*+- *,** *$%&k_*Y(***.+*4W*Y6***.+*4W!*Y8*;*;*.+*;4W<= >?UI+EGM,**L$*P,,**S$*P,*; *$*PTUPK ш5 acm/io/SwingDialogModel.class-()Vjava/lang/StringP4749463839613D003D00E60000FFFFFFE5E5E5FFCBFF8C8C8CA7A7A7ADADAD8D8D8D929292818181P8585856F6F6F7373738888888B8B8B9A9A9A9D9D9D616161646464757575787878C2C2C295959597P97976666666868687E7E7E808080565656575757E6E6E6E7E7E79F9F9FA0A0A05E5E5E5F5F5F6B6B P6B6C6C6C6D6D6D6E6E6E7979797A7A7A7C7C7C7D7D7D5A5A5A5B5B5B5C5C5C5D5D5DE1E1E1E2E2E2 PE3E3E3E4E4E4AEAEAEAFAFAFB0B0B0B1B1B1E8E8E8E9E9E9EAEAEAEBEBEBECECECEDEDEDEEEEEEEF PEFEFB2B2B2B3B3B3B4B4B4B5B5B5B6B6B6B7B7B7B8B8B8B9B9B9BABABABBBBBBBCBCBCBDBDBDBEBEPBEBFBFBFC0C0C0C1C1C1F0F0F0F1F1F1F2F2F2F3F3F3F4F4F4F5F5F5F6F6F6F7F7F7F8F8F8F9F9F9PFAFAFAFBFBFBFCFCFCFDFDFDFEFEFED1D1D1D2D2D2D3D3D3D4D4D4D5D5D5D6D6D6D7D7D7D8D8D8D9PD9D9DADADADBDBDBDCDCDCDDDDDDDEDEDEDFDFDFE0E0E0C9C9C9CACACACBCBCBCCCCCCCDCDCDCECEPCECFCFCFD0D0D0C5C5C5C6C6C6C7C7C7C8C8C8C3C3C3C4C4C4000000ED0000ED0000ED000021F904P01000002002C000000003D003D004607FF800282838485868788898A8B863E1D6B53009293949596P97925C1E6B8C853A3098A10825A1672DA72D6EA195566A863C655BB2B3B4B5B6B7B235A7273CB8BEPB23B6D833D676256C7C8C9CACBC91A171ACCD1D25176378D1D5F446852DCDDDEDFDD0D21E3E303E0PE7DE3D4B7B6B3B9D853C376D60784C4334457166393EFDFEFF007DBCA120E78C0C1D3EDE295C08CFP8399396474309C28286180356B3AE0E011E50A972E5AA83CD18103869A36387A5044A4234D965597!PA2E80171E0C003253C6056D2C146118F345D820A1D4A746804542DD4142582CA41D1A742A3701A94#P234C96AB58B36ADDAAD5CB29025CC38AED41266145187AD85059CBB6ADDBB754FFF628E060620FDC%PBB709B8C91A828D89C2442D640194CB8B0E1C3880BEFB803C40E190F665726F2D183C70E1D9873E4'PB8C1A64E131B667888268343B2E9D3A853ABEEA4E3469A363E74AECAE2010D8C1CA86FA0A122BBF7)P2A193DDFE93073C537003C103298A1E466042A03BE63C448D40106D4EB68901A783A031583EB45B1+P94F154A6CAAF5F2F947CB97523C4A906E76FADB126E891D8FB628F9C4A3005FF7D2C60F0E5C11D57-P1468E081082688A0062D68A0E083105E71061A7CE910C31E6D54A1E1861C76E8E1872086E8A11365/P9446480E6CEC81C7142CB6E8E28B2F1A20C28C330E00E38D30DE3004181D28E21A1E407C11C590441P1669E4901494B001FF094E1CE92491391881041831F0F50E0E318C71871133EC11C313608629E6983P6486D9C31840D4D0C41C6B7860256A385487461872DC410113491C7184117C1651001C3D042AA8185P55AE865A0E01988147113FB431460086462A000EB8496AE9A589E890830731BCC0C6A76CB40143007P37BC8929213D04A0860C4F70E1DB1528B25169A439ACF14271C6ADB2031A32A0D6031B38E49AEB159P6D52D4411A5808ABAC2439A8616A223BB864DC0D158880810A291C750A0A4DF896C30B8BE8B0466C;PBE7911820597DC60022A09F886067D8DA47105784551E182016028F5940AA87C40EF503298588819=P56FC4B540748B570465148B06BB0506DC05BDF0D5C546CF1FFC5185F0C042A1564CCC501A8D4E1F1?PC8158F37880E61C4A7B22D069CB280142BD312000C83ECA0861638E7ACF3CE3CF7AC4510A7480085APCF44E73CC519837460867F4C5FE5850B2D80D0B458557CC1570E7360A1F5D65C77ED75D7206BF0F5CPD8646321C31966DD00870711B67D20830EBAEDB61B6DF0E5035AD2E4BD0C011710A0F7DFADD4F1A6EP07615020E2E18827CE610C4ED45D480E621CD1038E94B738060B34B63046E59517FE426484783086GP1160708EE304E48C7382E930F64004DDCF0EC2430C720C71C693B8CBC102392B7881BB933C30D1C4IP3EA023A25B1E41D8C1D1EFCC371F451B362CF145A10BC1F005053FE8D14199DC773FE6183F1CF1C6KP82BBC52BA443076AD4A14711F880814340F0C3FF850D3628E1C61830087C9A0FF1BC30861C7B6082MP118050001A0C01097BB0031EF6D0384139F00B6638884A3045120FC8A00D6A288318C0E0853A7810OP804220420744239A479D8A213C08C018ECD0981CEC8034279C486BD4400726FC600E908A21457C90QP0318C880073A0C222102010021FF0B4D414347436F6E2004031039000000015772697474656E2062SP7920474946436F6E76657274657220322E342E33206F66204D6F6E6461792C204D61792032352C20U 31393938003BWAQUA_QUESTION_IMAGE[Ljava/lang/String; YZacm/io/SwingDialogModel\ ][Code(Ljava/awt/Component;)V `java/lang/Objectc db myComponentLjava/awt/Component; fg ]h iconTestedZ jk ]lgetLookAndFeel()Ljavax/swing/LookAndFeel; nojavax/swing/UIManagerq rptoString()Ljava/lang/String; tujavax/swing/LookAndFeelw xvAquaLookAndFeelzindexOf(Ljava/lang/String;)I |} ~ inputIconLjavax/swing/Icon; ]javax/swing/ImageIcon createImage%([Ljava/lang/String;)Ljava/awt/Image; acm/util/MediaTools (Ljava/awt/Image;)V `  popupMessage(Ljava/lang/String;)VshowMessageDialog)(Ljava/awt/Component;Ljava/lang/Object;)V javax/swing/JOptionPane popupErrorMessageError<(Ljava/awt/Component;Ljava/lang/Object;Ljava/lang/String;I)V popupLineInputDialog'(Ljava/lang/String;Z)Ljava/lang/String;)(Ljava/lang/Object;IILjavax/swing/Icon;)V `  setWantsInput(Z)V OKN(Ljava/lang/Object;IILjavax/swing/Icon;[Ljava/lang/Object;Ljava/lang/Object;)V `  setInputValue(Ljava/lang/Object;)V Input createDialog=(Ljava/awt/Component;Ljava/lang/String;)Ljavax/swing/JDialog;  setVisible java/awt/Component  getInputValue()Ljava/lang/Object; UNINITIALIZED_VALUELjava/lang/Object; popupBooleanInputDialogL(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/Boolean;Canceljava/lang/StringBuffervalueOf&(Ljava/lang/Object;)Ljava/lang/String;  ` /append,(Ljava/lang/String;)Ljava/lang/StringBuffer;  question vshowOptionDialogt(Ljava/awt/Component;Ljava/lang/Object;Ljava/lang/String;IILjavax/swing/Icon;[Ljava/lang/Object;Ljava/lang/Object;)I TRUELjava/lang/Boolean; java/lang/Boolean FALSE  SourceFileacm/io/DialogModel IODialog.java ]dYZ jk fg_ *YSYSY SY SYSYSYSYSYSY SY SY SY SY  SY"SY$SY&SY(SY*SY,SY.SY0SY2SY4SY6SY8SY:SYSY@SYBSYDSY FSY!HSY"JSY#LSY$NSY%PSY&RSY'TSY(VSY)XS^`a_H<*e*+im/syM,{ Y^m_ *i+_ *i+_x lY+N--dYS:Y+2N---*i:-:æ_ zd:S d:,S-SY,ͷѶ-׶ն:*i+26ⰲPK ш5ٲacm/io/AWTMessageDialog.class-9()VG(Ljava/awt/Frame;Ljava/lang/String;Ljava/awt/Image;Ljava/lang/String;)V6(Ljava/awt/Frame;Ljava/lang/String;Ljava/awt/Image;Z)V acm/io/AWTDialog  setMessage(Ljava/lang/String;)V  CodeinitButtonPanel(Ljava/awt/Panel;Z)Vjava/awt/ButtonOK  okButtonLjava/awt/Button; acm/io/AWTMessageDialog addActionListener"(Ljava/awt/event/ActionListener;)V  add*(Ljava/awt/Component;)Ljava/awt/Component; !"java/awt/Container$ %# initDataPanel(Ljava/awt/Panel;)VactionPerformed(Ljava/awt/event/ActionEvent;)V getSource()Ljava/lang/Object; +,java/util/EventObject. /- setVisible(Z)V 12java/awt/Component4 53 SourceFile IODialog.java *+,- * +*Y** +*&W'( )*+0**678PK ш5_ғ55acm/io/IODialog.class-()V(Ljava/awt/Component;)V acm/io/IODialog Code java/lang/Object  myComponentLjava/awt/Component;   createModel()Lacm/io/DialogModel;  modelLacm/io/DialogModel;   outputLineLjava/lang/String;  exceptionOnErrorZ ! " allowCancel $! %print(Ljava/lang/String;)Vjava/lang/StringBuffer)valueOf&(Ljava/lang/Object;)Ljava/lang/String; +,java/lang/String. /- ( *1append,(Ljava/lang/String;)Ljava/lang/StringBuffer; 34 *5toString()Ljava/lang/String; 78 *9(Z)V(Z)Ljava/lang/String; +< /= '( ?(C)V(C)Ljava/lang/String; +B /C(D)V(D)Ljava/lang/String; +F /G(F)V(F)Ljava/lang/String; +J /K(I)V(I)Ljava/lang/String; +N /O(J)V(J)Ljava/lang/String; +R /S(Ljava/lang/Object;)Vprintln popupMessage W(acm/io/DialogModelY ZX V \ V( ^showErrorMessagepopupErrorMessage a( ZbreadLine&(Ljava/lang/String;)Ljava/lang/String; de f myConsoleLacm/io/IOConsole; hi jgetInputScript()Ljava/io/BufferedReader; lmacm/io/IOConsoleo pn pfacm/util/CancelledExceptions t popupLineInputDialog'(Ljava/lang/String;Z)Ljava/lang/String; vw ZxreadInt()I(Ljava/lang/String;II)I z~ (II)I(Ljava/lang/String;)Ijava/lang/NumberFormatExceptionparseInt java/lang/Integer Value is outside the range [(I)Ljava/lang/StringBuffer; 3 *:] signalError ( Illegal integer format readDouble()D(Ljava/lang/String;DD)D (DD)D(Ljava/lang/String;)D&(Ljava/lang/String;)Ljava/lang/Double; +java/lang/Double  doubleValue (D)Ljava/lang/StringBuffer; 3 *Illegal numeric format readBoolean()Z(Ljava/lang/String;)Z truefalse9(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z  ppopupBooleanInputDialogL(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/Boolean; Z booleanValue java/lang/Boolean setExceptionOnErrorgetExceptionOnErrorsetAllowCancelgetAllowCancelsetAssociatedConsole(Lacm/io/IOConsole;)VgetAssociatedConsole()Lacm/io/IOConsole;isSwingAvailable acm/util/Platform java/lang/Exceptionacm.io.SwingDialogModelforName%(Ljava/lang/String;)Ljava/lang/Class; java/lang/Class java.awt.ComponentgetConstructor3([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;  newInstance'([Ljava/lang/Object;)Ljava/lang/Object; java/lang/reflect/Constructor acm/io/AWTDialogModel acm/util/ErrorException 1 SourceFileacm/io/IOModel IODialog.java!  !$!hi) * ."* *+****#*&'( &*Y*[02+6:';  *>@'A  *D@'E  *'H@'I  *#L@'M  *P@'Q  *T@'U  *+00@V **[*V(  *+@*]V;  *>_VA  *D_VE  *'H_VI  *#L_VM  *P_VQ  *T_VU  *+00_`(  *+cd8 *gde th*k*kq *k+r+ **Y*02+6:L**& tYu*+*&yYM,z{  *|}z *z  *+|}z~ ]I*+g:6 %**Y266:W*??  * *')  *+ d P*+g:9( &**Y2(66:W*FF *  *+ }q*k*kq*k+,-+ **Y*02+6:L**& tYu*+,-*&Y:Ŭ; *# *#; *& *& *+k *k cOҙ@ָLY޸SM Y*SN+,:-ZWY*밻Y*66( '*# Y+*+cPK ш5 dTl88acm/io/IOModel.class-%()Vprint(Ljava/lang/String;)V(Z)V(C)V(D)V(F)V(I)V(J)V(Ljava/lang/Object;)VprintlnshowErrorMessagereadLine()Ljava/lang/String;&(Ljava/lang/String;)Ljava/lang/String;readInt()I(II)I(Ljava/lang/String;)I(Ljava/lang/String;II)I readDouble()D(DD)D(Ljava/lang/String;)D(Ljava/lang/String;DD)D readBoolean()Z(Ljava/lang/String;)Z9(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z SourceFileacm/io/IOModel java/lang/Object" IOModel.java!#             $PK ш5 acm/program/PK ш5/S// acm/program/ConsoleProgram.class-5()V acm/program/Program  getConsole()Lacm/io/IOConsole;   Center add)(Ljava/awt/Component;Ljava/lang/Object;)V java/awt/Container validate  CoderunsetFont(Ljava/lang/String;)V acm/io/IOConsole getFont()Ljava/awt/Font;  java/awt/Component" #!(Ljava/awt/Font;)V % #&getStandardFont (Ljava/awt/Font;)Ljava/awt/Font; ()acm/util/JTFTools+ ,* & createConsole  SourceFileacm/program/ConsoleProgram2ConsoleProgram.java!3***  * #* M,,+*,$'%%* M+-L,,+.*+'/ Y014PK ш5x!acm/program/DialogProgram.class-()V acm/program/Program Coderun getInputModel()Lacm/io/IOModel; getDialog()Lacm/io/IODialog; getOutputModel SourceFileacm/program/DialogProgramDialogProgram.java!*   * *PK ш5- !acm/program/GraphicsProgram.class-()V acm/program/Program acm/program/GProgramListener (Lacm/program/GraphicsProgram;)V  listenerLacm/program/GProgramListener; acm/program/GraphicsProgram  createGCanvas()Lacm/graphics/GCanvas;  gcLacm/graphics/GCanvas;  addMouseListener!(Ljava/awt/event/MouseListener;)V java/awt/Component needsMouseMotionListeners()Z !" #addMouseMotionListener'(Ljava/awt/event/MouseMotionListener;)V %& 'Center)add)(Ljava/awt/Component;Ljava/lang/Object;)V +,java/awt/Container. /-validate 1 2Coderuninit getGCanvas(Lacm/graphics/GObject;)V +8acm/graphics/GCanvas: ;9(Lacm/graphics/GObject;DD)V 9 setLocation(DD)V ?@acm/graphics/GObjectB CA.(Lacm/graphics/GObject;Lacm/graphics/GPoint;)V(Lacm/graphics/GPoint;)V ?F CGremove I8 ;J removeAll L ;MgetElementCount()I OP ;Q getElement(I)Lacm/graphics/GObject; ST ;U getElementAt(DD)Lacm/graphics/GObject; WX ;Y-(Lacm/graphics/GPoint;)Lacm/graphics/GObject;getX()D \]acm/graphics/GPoint_ `^getY b] `c Yiterator()Ljava/util/Iterator; fg ;h(I)Ljava/util/Iterator; fj ;kaddMouseListeners(Ljava/util/EventListener;)Vjava/awt/event/MouseListenero"java/awt/event/MouseMotionListenerqacm/util/ErrorExceptions#addMouseListeners: Illegal listeneru(Ljava/lang/String;)V w txaddKeyListenersaddKeyListener(Ljava/awt/event/KeyListener;)V {| } waitForClickresetClickListener  java/lang/InterruptedExceptionwait java/lang/Object  clickOccurred " repaint   removeAllComponents M setBackground(Ljava/awt/Color;)V  startGraphicsProgram,(Lacm/graphics/GObject;[Ljava/lang/String;)Vacm/program/GObjectProgram setStartupObject(Ljava/lang/Object;)V start([Ljava/lang/String;)V  ; startHookendHook isStarted " getSize()Ljava/awt/Dimension; widthI java/awt/Dimension height  BORDER_PIXELS ConstantValue SourceFileGraphicsProgram.java! 4SG** Y* **** *$**(***0*354 64 74*+84 *+<+=4 *+>+(D+E4 *+>+,HI84 *+KL4*NOP4*RST4 *VWX4 *')ZW[4 *+a+defg4*ifj4 *lm4** **(mn4E9=+p*+p =+r*+r(= tYvyz4 **~z|4 *+~4N2*L+**W*+ç+ÿ).4 **4*4!*+* *+ 4YM,*,+4;Y4 4*"4<0* **L++ +PK ш5 z, acm/program/GObjectProgram.class-o()VrunHookgetStartupObject()Ljava/lang/Object; acm/program/Program acm/graphics/GObject getSize()Lacm/graphics/GDimension; getWidth()I  ()D acm/graphics/GDimension @ getHeight    add(Lacm/graphics/GObject;DD)V !acm/program/GraphicsProgram# $"java/lang/Exception&getClass()Ljava/lang/Class; ()java/lang/Object+ ,*getName()Ljava/lang/String; ./java/lang/Class1 20.4 lastIndexOf(Ljava/lang/String;)I 67java/lang/String9 :8 substring(I)Ljava/lang/String; <= :>setTitle(Ljava/lang/String;)V @A BrunD getMethod@(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; FG 2Hacm/util/ErrorExceptionJjava/lang/StringBufferLvalueOf&(Ljava/lang/Object;)Ljava/lang/String; NO :P RA MS has no run methodUappend,(Ljava/lang/String;)Ljava/lang/StringBuffer; WX MYtoString [/ M\ KSinvoke9(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; _`java/lang/reflect/Methodb ca(Ljava/lang/Exception;)V Re KfCode R $i SourceFileacm/program/GObjectProgramlGraphicsProgram.java m$h* L+M*+*,go*,go%+-N-3:5;`?:*C-E2I:KYMYQTVZ]^+,dW NKY-g.'Rh*jknPK ш5^"acm/program/GProgramListener.class-k()V (Lacm/program/GraphicsProgram;)V java/lang/Object  myProgramLacm/program/GraphicsProgram; acm/program/GProgramListener java/lang/ExceptiongetClass()Ljava/lang/Class;  java/lang/Classacm.graphics.GPointforName%(Ljava/lang/String;)Ljava/lang/Class;  java/lang/NoSuchMethodException mousePressed getMethod@(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; !" #mousePressedHookLjava/lang/reflect/Method; %& ' mouseReleased)mouseReleasedHook +& , mouseClicked.mouseClickedHook 0& 1 mouseMoved3mouseMovedHook 5& 6 mouseDragged8mouseDraggedHook :& ;acm/util/ErrorException=(Ljava/lang/Exception;)V ? >@CodeneedsMouseMotionListeners()ZresetClickListener clickFlagZ FG H clickOccurred(Ljava/awt/event/MouseEvent;)Vacm/graphics/GPointLgetX()I NOjava/awt/event/MouseEventQ RPgetY TO RU(DD)V W MXinvoke9(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; Z[java/lang/reflect/Method] ^\ notifyAll ` a mouseEntered mouseExited SourceFilejava/awt/event/MouseListenerf"java/awt/event/MouseMotionListenerhGraphicsProgram.java gi %&+&0&5&:&FG Bt**++MYSN*, -$(W*,*-$-W*,/-$2W*,4-$7W*,9-$<W M>Y,A&)*589DGHSVWbe iiCDB *7*<EB*IJDB*I.KBl P*26YMY+S+VYSM*2*,_W N>Y-A*M,*I*b,ç,ÿ -0>GLKBO ;*(6YMY+S+VYSM*(*,_W N>Y-A -0)KBO ;*-6YMY+S+VYSM*-*,_W N>Y-A -0cKB dKB 3KBO ;*76YMY+S+VYSM*7*,_W N>Y-A -08KBO ;*<6YMY+S+VYSM*<*,_W N>Y-A -0ejPK ш5(L&JJacm/program/Program.class-$()VNORTHLjava/lang/String;NorthSOUTHSouthEASTEast WESTWestCENTERCenter javax/swing/JApplet registerApplet(Ljava/applet/Applet;)V acm/util/JTFTools shownZ acm/program/Program! " parameterTableLjava/util/HashMap; $% "&java/util/ArrayList( ) finalizersLjava/util/ArrayList; +, "- isAppletMode / "0macMenuBarFlag 2 "3getClass()Ljava/lang/Class; 56java/lang/Object8 97getName()Ljava/lang/String; ;<java/lang/Class> ?=myTitle A "B.D lastIndexOf(Ljava/lang/String;)I FGjava/lang/StringI JH substring(I)Ljava/lang/String; LM JNacm/program/ProgramAppletStubP(Lacm/program/Program;)V R QS appletStubLjava/applet/AppletStub; UV "W setAppletStub(Ljava/applet/AppletStub;)V YZ "[getContentPane()Ljava/awt/Container; ]^ _initContentPane(Ljava/awt/Container;)V ab "c setVisible(Z)V efjava/awt/Componenth ig createConsole()Lacm/io/IOConsole; kl "m setConsole(Lacm/io/IOConsole;)V op "qcreateDialogIO()Lacm/io/IODialog; st "umyDialogLacm/io/IODialog; wx "y myConsoleLacm/io/IOConsole; {| "}setAssociatedConsole pacm/io/IODialog  createMenuBar()Lacm/program/ProgramMenuBar; " myMenuBarLacm/program/ProgramMenuBar; " setProgram Racm/program/ProgramMenuBar Coderuninitprint(Ljava/lang/String;)VgetOutputModel()Lacm/io/IOModel; " acm/io/IOModel valueOf(Z)Ljava/lang/String; J "(C)V(C)Ljava/lang/String; J(D)V(D)Ljava/lang/String; J(F)V(F)Ljava/lang/String; J(I)V M J(J)V(J)Ljava/lang/String; J(Ljava/lang/Object;)V&(Ljava/lang/Object;)Ljava/lang/String; Jprintln  "showErrorMessage readLine&(Ljava/lang/String;)Ljava/lang/String; " getInputModel " readInt()I(Ljava/lang/String;II)I "(II)I  readDouble()D(Ljava/lang/String;DD)D "(DD)D(Ljava/lang/String;)D  readBoolean()Z(Ljava/lang/String;)Z "truefalse9(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z " started  "acm/util/ErrorException0You can't call isAppletMode from the constructor   getConsole getDialog l " getReader()Ljava/io/BufferedReader; acm/io/IOConsole  getWriter()Ljava/io/PrintWriter;  getRegionPanel((Ljava/lang/String;)Ljavax/swing/JPanel;equals(Ljava/lang/Object;)Z  J northPanelLjavax/swing/JPanel;   "  southPanel  " westPanel  " eastPanel  " centerPanel  "java/lang/StringBuffergetRegionPanel: Illegal region  append,(Ljava/lang/String;)Ljava/lang/StringBuffer;  !toString #< $add;(Ljava/awt/Component;Ljava/lang/String;Ljava/lang/Object;)V)(Ljava/awt/Component;Ljava/lang/Object;)V &(java/awt/Container* +)add: Illegal region -addActionListeners"(Ljava/awt/event/ActionListener;)V /0 "16(Ljava/awt/Component;Ljava/awt/event/ActionListener;)V /3 "4setTitle programFrameLjava/awt/Frame; 78 "9 6java/awt/Frame< =;getTitle getMenuBarstart([Ljava/lang/String;)VcreateParameterTable(([Ljava/lang/String;)Ljava/util/HashMap; CD "E getParent G^ iHinitApplicationFrame J "Kvalidate M "N +NgetComponentCount Q +R programBoundsLjava/awt/Rectangle; TU "VgetSize()Ljava/awt/Dimension; XYjava/awt/Rectangle[ \ZcircumventFrameSizeBug'(Ljava/awt/Frame;Ljava/awt/Dimension;)V ^_ "`  "binstallMenuBar/(Lacm/program/ProgramMenuBar;Ljava/awt/Frame;)V de "fstartRun h "iexitsize l )mget(I)Ljava/lang/Object; op )qjava/lang/Exceptionsk getMethod@(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; vw ?xinvoke9(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; z{java/lang/reflect/Method} ~|(Ljava/lang/Exception;)V  terminateAppletThreads   kjava/lang/System  addExitHook & )pause   mouseClicked(Ljava/awt/event/MouseEvent;)V mousePressed mouseReleased mouseEntered mouseExited mouseMoved mouseDraggedkeyTyped(Ljava/awt/event/KeyEvent;)V keyPressed keyReleasedactionPerformed(Ljava/awt/event/ActionEvent;)VcreateProgramFrame()Ljava/awt/Frame;acm/program/ProgramFrame ?< " java/awt/BorderLayout  setLayout(Ljava/awt/LayoutManager;)V  +SYSTEM_CONSOLE | (Ljava/awt/Component;)V   getPreferredSizecomputeProgramBounds()Ljava/awt/Rectangle;  "getWidthgetCentralRegionSize Y "widthI java/awt/Dimension  getHeightheight   getParameter toLowerCase < J&(Ljava/lang/Object;)Ljava/lang/Object; ojava/util/HashMap  java/applet/Applet isRootPaneCheckingEnabled    getLayout()Ljava/awt/LayoutManager;  + setBackground(Ljava/awt/Color;)V javax/swing/JComponent  iaddImpl*(Ljava/awt/Component;Ljava/lang/Object;I)V+(Ljava/awt/Component;I)Ljava/awt/Component; & + 9 & +  remove  +  +  removeAll  +repaint  i currentThread()Ljava/lang/Thread; java/lang/Thread  mainThreadLjava/lang/Thread;  " AB "destroyjava.lang.ThreadforName%(Ljava/lang/String;)Ljava/lang/Class;  ? stop maincode java.main getProperty  getCommandLine < "readMainClassFromCommandLine  ".classendsWith  Jlength  J!(II)Ljava/lang/String; L# J$replace(CC)Ljava/lang/String; &' J( java/lang/ClassNotFoundException* java/lang/IllegalAccessException, java/lang/InstantiationException. newInstance()Ljava/lang/Object; 01 ?2setStartupObject 4 "5program7%Main class does not specify a program9 Cannot determine the main class.;setParameterTable(Ljava/util/HashMap;)V => "? A "A menuAction QuitE k "GPrintIgetEnclosingFrame&(Ljava/awt/Component;)Ljava/awt/Frame; KL M getToolkit()Ljava/awt/Toolkit; OPjava/awt/WindowR SQ getPrintJobM(Ljava/awt/Frame;Ljava/lang/String;Ljava/util/Properties;)Ljava/awt/PrintJob; UVjava/awt/ToolkitX YW getGraphics()Ljava/awt/Graphics; [\java/awt/PrintJob^ _]printAll(Ljava/awt/Graphics;)V ab icend e _fCuthcut j kCopymcopy o pPasterpaste t u Select Allw selectAll y zSave|save ~ Save AssaveAs  Scriptscript   Print Console printConsole  setMacMenuBarFlaggetMacMenuBarFlag getBorder((Ljava/lang/String;)Ljava/awt/Component; northBorderLjava/awt/Component;  " southBorder  " eastBorder  " westBorder  "Illegal border specification - getArgumentArray()[Ljava/lang/String;ARGS[Ljava/lang/String; isStarted iZ isShowing  i startHookendHooksetStub Z  getAppletStub()Ljava/applet/AppletStub;getParameterTable()Ljava/util/HashMap; startupObjectLjava/lang/Object;  "getStartupObject getPlatform acm/util/Platform getShellCommandLine < "acm/program/DOSCommandLine "acm/program/ProgramStartupListener  getRootPane()Ljavax/swing/JRootPane;  addComponentListener%(Ljava/awt/event/ComponentListener;)V  i iN@@java/lang/InterruptedException,wait  9  " i]update b igetDefaultCursor()Ljava/awt/Cursor; java/awt/Cursor  setCursor(Ljava/awt/Cursor;)V  i initFinished  "  "runHook  "  "  " indexOf(I)I  Jput8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;  java/io/IOExceptionjava/io/StreamTokenizerjava/io/StringReader (Ljava/io/Reader;)V    resetSyntax     wordChars(II)V   quoteChar  whitespaceChars   nextToken  sval  - startsWith  J!-jar#-cp% -classpath'readMainClassFromManifest ) "*javax/swing/JPanel, -acm/gui/TableLayout/(IIII)V 1 02java/awt/GridLayout4  56isButton(Ljava/awt/Component;)Z 89 ":hasActionListener <9 "=java.awt.event.ActionListener?addActionListenerA getComponent(I)Ljava/awt/Component; CD +Ejava/awt/ButtonGjavax/swing/JButtonI ButtonLikeK isInstance M ?Njava.lang.ClassP getListenersR[Ljava/util/EventListener;T  "VsetFrame(Ljava/awt/Frame;)V XY QZ!acm/program/ProgramWindowListener\ ]SaddWindowListener"(Ljava/awt/event/WindowListener;)V _` Sa getInsets()Ljava/awt/Insets; cd +e \left hjava/awt/Insetsj kiright m kn \top q krbottom t kux w \xy z \{ setBounds }1 i~isMac  createOldStyleMenuBar()Ljava/awt/MenuBar;   setMenuBar(Ljava/awt/MenuBar;)V  = setJMenuBarpack  SdecodeSizeParameter " APPLICATION_getField-(Ljava/lang/String;)Ljava/lang/reflect/Field;  ?java/lang/reflect/Field java/lang/IntegerintValue  *100%%parseInt G @Yround(D)J java/lang/Math getDefaultToolkit P Y getScreenSize Y YWIDTH  "HEIGHTXY \2 Y  setSize  ijava/util/zip/ZipFile META-INF/MANIFEST.MFgetEntry,(Ljava/lang/String;)Ljava/util/zip/ZipEntry;  java/io/BufferedReaderjava/io/InputStreamReadergetInputStream/(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;  (Ljava/io/InputStream;)V    <  Main-Class:trim < Jcommandargsbash-cps -p $PPID -o  getRuntime()Ljava/lang/Runtime; java/lang/Runtime exec(([Ljava/lang/String;)Ljava/lang/Process;  waitFor java/lang/Process getErrorStream()Ljava/io/InputStream;  read java/io/InputStream    STARTUP_DELAY STARTUP_CYCLE, THREAD_BUFFER  DEFAULT_X DEFAULT_Y( DEFAULT_WIDTHDEFAULT_HEIGHT optionTable ConstantValue SourceFilejava/lang/Runnablejava/awt/event/MouseListener"java/awt/event/MouseMotionListenerjava/awt/event/KeyListenerjava/awt/event/ActionListener! Program.java!" "&         78%+,UVA$%      {|wxTU/2s***#*'*)Y*.*1*4**:@C**C*CEK`OC*QY*TX**X\*`L*+d*j**nr**vz*z*~****   *+f * * *' *# * * *+ * *+f * * *' *# * * *+ *+<*ư *+ *ζѬ*ѬG *+ζѬ *+ *ضܯ*')ܯ *+ضܯ*+(* *+ *+,-/"* Y*1op*+~l*~t*z****k_+ * +  *+ *+  *+ *YY+"%&', * +-,p,  *+-,[, *+-,F,  *+-,1, *+-,YY.,"%/**2/0 **`+56!*+C*: *:+>?<*C@*AB*' *+F'*I*L*O*j*:Z*:P*S=* S`=*S`=*S`=*S`=*:j*#**:*W]a**c*:****:g*O*jkq*.L+*.n>6A*.r:::u?y:9W:Y+ç+ÿ**1 ADtY^-*.M,*.+W,ç,ÿ'           %Y*L+Y+klst Y*`YY*]**Ŭ0$M*'*'+ɶJM,,*+Ұ$*ՙ*+*+ֱ *ՙ *ڰ*ڰ!*ՙ *+*+*ՙ,*+W{,* +We, *+WO,*+W9, *+W#,*+W *+,*#!*:*:j*# *+,$*ՙ**$*ՙ*+*+"*ՙ **M*ՙ *`P*P*ՙ *`*AL@**I1*1&*$**O*j**j*C/** L+ ?yM,*9WW'*t  B*FL+JMN:,MW,:M,/,,,"d%M,/.)M, NW-]-3:"":6?+8JM,Y:, 3":6W WWY<+@B #tZ_b+j-j/j+C*~M**DM,*~M,+F *H+J 3*NN--T-*CZ:-`dg+i ,lw+n ,qf+s ,vU+x ,{D+} ,3+ ,"+ ,+ ,f*4*4]Q+ *+  *+  *+ *YY+"%%*'*'@4*L++I+M+, ,Ś  YZ *+X*+*X=>*+'*'4*+1* <2&!ðưh}YL*M,>,+,Ӹ+N-§+׶ۧW*ݙ-ç-ÿ,,޶,****,*`*H*14'?D* CD*YL)Y*M>D*2:=6'%:`O:+W ,W*,nJ:6,rJS,n+W+ *<YY* M, ,!,",',  ,  >,6,:-/+"/'/I"1$ <& ( ,W +>wWab+Y*-Y. *-Y.*-Y.*-Y.*-Y.* 0Y3*0Y3*0Y3*0Y3*5Y7+* ,+* ,+* ,+*,+*,/3y*+;F*+>k?Y@ SN9Y,S:+:B-y:+W:NY-++)++N-S66*-F,5>At892+H +JL +OWt<9XD?YQ SM9Y@ SN+:S,y:+-U:WAAtJ{**W:*XQ*:[*:*,*:]Y*^b**W*:fL*Wg+l`+o`=*Wp+s`+v`>*:*Wy*W|dep\*4,+F,:N?Y+:S:9Y+S:-y:,WW,+,HKt*+:Q*::Y+"%:: J J:W :$"d%6ok WWtuiL*+=*+ŷ>*++6*+š(+ŷ6\YY*** **: * *:L+Y*ôd+Y*ôd+Y* ôd+Y*ôd+^_rf*`N-:,Ě Ś+:Y,d`Y,d`+Ŷ+P )r^Y*L+̶M,YY+,ط۷N-:#""O-:W[[ <o KJYSYSYY*"%SL+M,W,YY,۷N-W-ްWllt#PK ш5Zֺ\\ acm/program/DOSCommandLine.class-()Vjava/lang/String@504B03041400080008001C4205330000000000000000000000000A0000004743@4D444C4E2E444C4CEDBD0B605355B6307CD2A4252D2909D042C50201AAE28098@366993347DA4D0948A14022929155AA83498D6D2D6F49C429562EB69B5E9218A @8E33E39DAB73EDA05E67F48EDC511966E46A4AB1056490878F2A8C96B1EAC120 @14A9A540ECF9D6DAE7A40F1F33DEFFCE7FFFC770CACA7EADBDF6DA7BAFBDF65A @FBEC84BC3B7650728AA214008240517B28F1B1527FFFE10126CCFCD304EA95C8@3FCFDA235BFAE759F9EEB21A6DB5A7EA2E4FC926ED8692CACA2A5A7BA74BEB61@2AB56595DAECE50EEDA6AA52D782E8E8A80489C685E7A3C25F3D58EA0C414ABB@D9B99BC45DCEAF20DCF5E6DDCE36125A9C1748A820E5BBDE34395F2161060957@966D7063FD1FE2D56EA3A8A53205F5ABC77F9E15CAEBA126CC1A2F1B1745D911@41CC6B9F081F1A80F524A921718D383E14351252BB243C78C2245431AD19CE27@646A296A1384A67B286AEEDF1ACCA70127E26F8F373E47AB292A7774C67A711E@7EE85940BBB6D0103E9E2731641FE13BF46881CA024F69095D42517F9E22D2C4@4C690C861F2BFC5B20A25169384E0D12AD86EFE0F917785C15551BA05D95D837@82B7E33B780BFF06EBD79E6BCFB5E7DA73EDB9F65C7BAE3DD79E6BCFB5E7DA73!@EDF9073EABB8B3422C387A1A3B97A7E427404ED13E257578F881F215DEBC2067#@5302427005B72AC885093B9E049797FBB4689F02EB7336153B2873AA9B7BA0F6%@9EC7E1839F02DE1ED7EFEC8AC09410AB04FACD7E75934106D9CB34DEE8382FA5'@E172143B1330742ABDB1733152AB6AFC4CB89FA2D8CB61DEE478C8A1558D47D0)@B91453ED3D4AF9BE72D94E2DC4F9D3C06AB3BF50DD848DF2EF86638A89E2AF57+@53D4993F63D68C09D832F66CA7E151A870161CD19D0AACDA310E91B72EE08D2A-@12D1F2572349646A39540B237499F1423805C8671E435A8F40397F879CA202BF/@8256E69B49D1B632211A4373783E7C32E1FC2C40E04B11F5568CED0006024E761@308CC9766F072AE532FE6170F0B9BEE681C2427ABE53483634501A21B6D48B833@E3A463F858A85628C42A8067769942F04604A6F25F40CF0AF5FE80861D94334A5@60F03505C9B0FA5CC1E2A27D2AAA5CE5E6A1027F170C39647B6DBD1CA3D20B967@4B8CCA9C8EFCA99B5E86D6BDF5414B1F1DCE0E8531896D2618104B17AD12188D9@536094C251A865AEEF553735E3748999FCEC2141807CC0F370451A07C9BB02C3;@0B79EC908C9960E962A21C05983BF88D00ED21713973B388F82964C150C9BDF5=@48989E1C6A32CA31DC209B1714385B6F601A673BCB29B948FB0ABE01C8171676?@702E1E0BF57EFECF90017D6C53413F40C6E868A039814DD7405206239E3909D8A@A51314FC1BD079B740644D07830A34DC8A121CDC182279F414773F8AB810AB11C@D311584B384A3E63559077B85CC9D74F86D63B20F2C6248C38B9BEC0782E02B0E@C384A36CA7C24227283DE78B3BDA748F121AE3441A85CE823FAAA0CD37E2E043G@EFB7BCCD5DA8990A6C6672139A0F42D56358F592E74B141C77E64C98A91B6328I@EA75106B0DD7F986B20187A5B0463DBAA14B9E0B7AFFBA6260C5AD815EF0DB41K@9280ADBF205B7A0166523F90634E5E8D52A7C1D18C8D173B1707813719A5B1D5M@A6F9B51D65B35EC518CDE97381637A665B02042C0FAB0EE7221C333D511C05B3O@F2A9703470DAAD055EF6C4C3072F1304A1D03D17D30998BE00A2508853C2C7C1Q@189BEB35CC2C2F691FA7FA3128D40BC852BD8656029F0D1371F8F889C0754739S@883D8C938AD7014976BFAAA35C0659143F4B4A0AB15A601AF4481B2E067650A0U@274047DC38DDD164799CF90BAA92EC044597357F3D647459634089501D2047B1W@73A1AAB88AB86E21763DAA10585CCC6DA1E536533EBCDC6EF9D672A3E3BB7244Y@7A3984DE9855A72CD7F05E10E04287109BB01EE7A9784D47B9C6ADC5C9104069[@708C125798BA49850A2D270186709C9DCF04D551C8E5CC17538962CA20A6E688]@A93431152BA6B2C5D43831952BA62ECB482A3F1DB9C30C1E33CAA3F98F60200A_@61F2B99CF5E2B29C2C2819B525FC804FC4F3231E992416BBAFE2FF032B74D982a@D83F2EA7D46BEB814A7982D2BC653E1DCEE5CE1722CD5B0C1833604C87311DC6c@AC18B30A915CEE52C1FB0A54B684071F803626A53F8FC178B38981E63C1343CDe@6901C5C96761F37C3C8C0ECCA65E8021029E195CD01D1857F165629C4C2B7B59g@A0E7E0ACC2AA18B7429C3B3BFF2F2049E5D4E889EAE07F46F43C88D9499810BDi@BFC359E02E1D5ED9DC60B340DFCD25E3AA76AF86EC02E13DF7520C77AE45E97Ck@CF6D2589F562C24412A524C1A66326B513458D99DB66C07D0273DA7418439CB6m@F910EB0A4742F7C7401E62BA6F8EC5B6D7127524EC4446E92CBD40046E7101FFo@3B6A58E0E67D5BE0A64902E7DD16335AD8B8AEC0385E0862DF70C5ABDC5B50C8q@7E194584AC79805ECDA62B76501A39632D57F02727E098BB8230DC67A6A034D8s@7A8172A4D3CE874F45CD49A6633C30C1D6F752CC74589D8128A8763E9AE8331Cu@5A6A07B264C20DE39E285C9F1A770B3678B3D8A0FA2546E5657A6011C97250D3w@80A6EFD9EC0AB1B098ED54B39FF579191557D46399FE0A08DE663DD0CF46B666y@D5071D7CD20C912BC2C8121C8DFA5E98A24902D3534E15F0B7CE02D6F6AB9A05{@26D559AE0C719326CD24738339BD9783119DEEE43F05A12A0493A1B916144560}@026C69D0CE4DA41F5C17BF1B36D90EF66CAEE3B506D80D1D7CDD6C71D356B207@40618020EED4EEC0B953C2274AA7AF05F1023358A5C0AE57529D560540781417@8D68AC3FA1B11DCB2DED9E8F56390B7CD90931A0839602571BD9AD093994BAE9@0C4574502EDA307FC1B8C9E756F814B77AB313347B2825541DDC1AC60D9AD3B1@C1FA65AF2740E0E03F9945B8A24DACC8883742E263CAB7F998003CC8DF82F63F@03F52F52D9FA4620822331FDC966615B3934AFE1285490F9AD79D440BB8C5E3A@D0AE64C603A7B9E29E96C6BDC575B03D337D0A7FFBE5704EE5C3CEF90C8D624D@6F44AB8D6AC951F87254EEA76125DAF9495AC25E21BD40C851B280A45864B37C@BCF5E7FA93E2B8F81427A1369B213055CD273B73148D4C54F9C0EA801AC63850@C775E45EEABEDECFFABF0606B2C904B2824067160CB363B801F763307FBC194C@44C33285351089268C02A2CA11267C3325267E034C04A2081EA2342C62AFCAD5@DB3D30FB42B2928889753DEEAFEB8A8BD6B0FB73410FBC8E4C7219205E89BE87@C8B84E63EF575274946FB10A98B22353116C57423899DB41CF5F8514FE495868@EC8DB0863A158D435AD800B7BE0EABCEA13F699E3E1F52CE02302A6E0633804B@464B1174FC4566524097964ECB163BF94498CF421F1D216B8D48ED60BEF029FE@0B5F06D9F9ABD0076ED072B5D09B6E2296208ED06A91C4AAC04F9CFC208C34C7@DB1A32D20BE9EB56F16F01BEA5A3D03B8E36C2CA3D3993ACDC2E85FC6BD30CE6@B840AAF117AF82F1351DA3DE995DE1C8296A71BDBFB0681DEC45423236C41F21@4818C5167BD1547770452AFD71F32A6581770A77B94B8EB5E84830ED599B52E1@353798663313F4079B8FAB1F6FB772C7FE7376E01621024630BC55D9A25EDCAA@54EFFEC03AC09E8685AD00EB502C896B99B9D8DA741008D349CDC799BD0D97B5@7478C3E548E6F750ACE85C2C50A8911A4CB04EDE83D65A95C30811D6C085DCC0@6952F41AD14ACAD1CC0872FDC945FAE38130EBC206D35AFA323277E3C03E1933@93AD0F52B4CA972B6B30CF66145C7B204C7F527FD09C1704B6C11939F645F371@3005B1F5716B170B114B988BADCAA683742ED663A2B0FD74689F36359FA41700@DA75EADDC7061E107B1501FDB40A11A4BF01B57AF7C18146B1400EB94284F58C@1B244E244D0169E8F519B455C0FF019996B35A4A90AF5B73B003C77A85C359A0@17CCE92839203717D00655C080BF5EED4551EA0CA75B61871162F34112DB0CC4@FEF526E7A25B330E8684EB66C2B88F7CB6A0BDC0C70CEA0F721DBC05F63F8E01@5F6BB0FDB33079A79D6F9B8E92256A4C22553720BE4F958155A0421456B00573@0B77CE07B2207F3AAFB84680C3152BDAB640FB0ED0685CBA1BD7CE49FD80A5A3@3CAC88B945789FEBB35CA4555DE18882321298219A53ECE01626927B7327E607@C20905B0BB997A58084AA956DD46F30CAE939E207F73A3398EB92C065F71E9A5@50DDE170CCEB741C1BB4DA9D0E07684703D4E12D013A6915FF6EBC28F5A068E8@390EC72A3B9885098025BC8F363D2434FCD020D85CDEB5A0AE00C0BE5B8F4BB8@2360B7BC492B2D1DB402DCA06CD87C311719E933CDA0A3ACA638E62A7E0CCCEB@B472FC2A7E53BCB41A19855E088C87EEF3CA1964DB018AABB16E17EA10701160@B37D02F7BE5BC04CECB2F5CEBF87D234D693A066368A3438271C28277A3C58C7@E3C0B50AF925ACAD571178974F94E3FEA9723F8F34CE84111A069186E1C7D2F8@320C37B2747487C39868361DFDE1708F0211CBE5AB3BF47E33D848E594FA71BF@1B5FA0825AAB26DA7527EE9CF44FF87634A307E53B717F6666B807D1EF7C48F4@8C1975687FAD208AB303898676F232A2F25E04C15FC5DD82D6C0369B934BDE05@6910161AE5A053E5C6F7B36E7C712BA408EFBBD10F2F2751A156316C4ABCCB76@C62CB2104A5B8FAC2B16088D91D2A235A399E8387CF8703AF6A366C2A56EF97E@D6AF68A61EE7287BC70ADFD20465E3192CBA053F9A6522DAD97907B8FDCD32EE@34F88756859DAC3A5874BC7011E4BE5EC9F571CEFCB65EB4FF0F99CD74B42FDE@CAB6AB7CF1BFB4BCE539EF53587D8A072C076A145014063AEFA0BA69129AEB85@CAE693DE22A5BA09D72A7B359C51B1254A749DCF0451475D95A99B3E2516F36A@AF0DD6A2CA9BB39ACB52B0834A75F31B981FDB0D0DB69D820FF93ECBD1FA9B7C@8A95ED3D61DCB67CB6D4A4A4B8742CE6A663F942F9C7AC5F6539B1F5AF5C1138@B88D971FA6283FB76D2D13D995B3168DF44069E3E51D9047321A31C3D178F9D1@504613662C6CBCFCD350067AE781C4C6CBBE50C60398A16DBCFC4828E341CC50@375E7E0C33C641462BFA36B56BC1D83A51E8DDB636300EFB6A174E80D628848E@A14E8914189510BB05E687E88D3D1B6A36F5A0D831D1B0289576FE2174FE0A3B@44090267FCF06177CB6C4A53DA86C74776B42EBC15091A1FC0BC1E981CD05E5E@176F8706C0F5C0EDDB6B1BF4D9FA4A77227A0797D757EA8DC66821B6B6A2C3B9@2849B77A914E0753CB9E5542FD5541D0B9A06E2F5915781D42DDFC029E5ED806@399B06E6C307D41705B91A15779FD2C1179185AD18EFA7EF638704BADEA7AAE5@B21FC174A17395EF6E547907F5C7F5037A41385A540C74A124734B2EA9AB9F4E@EA0296D3C1BB494209F5CB654041C90750F32A1EF12E526172341DA88CCD181E@096C277765027380593657A1DC43F4682CB65B2E38F858916411C9C65D9BFBB4@080418049DBB99CB8AB773597176BE2F5E44C28334DF8B09340C57E359742ADB@ACCD20453E3C3E7338BDCD2DB8F91F2FD0FB2DAA3779743A22ACECE064CF05AE@AFFD33B9E561CC5237C7623DE9A444DDF4313A6EFB50A990D31275D311C868BC@8C32AE6EFA8292F62A9FADC1BEB2E5674DC405CE27BA85D140A6FB19177A6419@C4ADF0D537705DE0D182F30FCDA615D6CEC6E4EC3854B480CBF29672B97CD0FD@345429E00333B14B1009837261F759E29DF35F03215FB63CBE90F5CB0BD99E20@DF0FB60B77CADDE4424BF97D70660A1C7C0F04EE0692F3EE945065077F10B335@5A19E55E4DCA7690599F1F98BBD2D78C0364F7114430EF1E4176ED424A79BF68@9482BEDC0A81EF591C58CE87A3C83F0DC618CC46E39BE8B31DEC1873B4F493D0 @D1D22C378E13EF06D16FDBDA8AA352888733E488895F890B020C50FDC01B0DB8 @3FA67DDDD4889566F8145F3740CC6B22C6ADA063BBE2F8176324035795C30E25 @6C3D0E6B082C4E36816082D6095C7070D3D15675BE8E3905C4A09DCC6E530047@05C28902FECC8590C9AA6C1C7A1A1CF0ADA708E63A72621489988C1C56F448F9@676021926359A56078135185D80668A008CF93FC30827C5A10ED0CA5CF409880@9D6006E3298FE3F5B178F2005B2713CDB7C02C765178772790591EC5DF890BD6@5B14044CB17305FC093C2D03178D9953C0DB80477ED57095720116BC9D9F3C8D@6CBBD0C7A9DE8CC0B8027EC685D03152243166ADFC9720051D403F0F0F9C24A6@9D3E916B36836226DBF9C5688FA16F573E91EF0F001A6C41B14DD09FE2A20EF0@B1F1148BDF81DE22178DE75A5C5F1B6671C7E61D65F7292C5FD52CFB2371D02E@D4847147E44756D8F9DD33C41961A6B29D9A1085B6506658718748685E3416EC@C48FF6CB613E558B97647BCD6C38860AAEABB8C3DD80F2707532A94B50194579!@DCEA0E30130917E4A40D142758094771E03BAEC0383D069D20A641BD92B710FD#@D83B3C26602EF01F005207CF00568778B60938E86B5DEA2E04B787039DCCE5A4%@81E169095FBD1D34C1064B17BD8ECB996F3631ABC5E3A67888C659C29FC67321'@58C3CF9F0702B569FC51745F0AB91CDD08CA33124AB384B28CA008B5F3F91A29)@E7EEF3A8FCB91CAB25FC49449E0195A741E52976DE0E455C4EF62D43C4095A28+@21DA2DE1F9C8563C20C699F7E0F111032D94CEC47DC8CE5F4FD09CFC640C6121-@3879FD5920D3C72D2BB544E32993BAE959A2EB2C87E85BB9ACF942A4651FAC3C/@259765084574A1883514592AB4603B6D58DF9B534A42414C9AEDF3E928CE3A7F1@3869C0A46138A9C3A46E3869C5A4554A72D6A5420339FF3A444F364F64605F253@0760E356F00CAA002EA7949CD8ACBF0BA69607DBB55CC59BF1D81067979FFD3D5@538B062ED4E08B8328EEB73C03E61A3D9BE515F454968FA655B9B41C84658F027@DCCA8E3D93C8A742899F13315E506E05FFEF8D1E98868B2FFC56EFDFD9FB30489@D86148EEDC0F1F6FF441F285175E5887CBA8F16C5CB8B489C0A6E9F4D978BB90;@8CF842EC0E62E5CB5EA764B8B946CB7021B63485F3D023ABA5D3D3DF6A3BD7E4=@EF6CC6B4964E71F8569D2F50EF8E52EFF65BDA374F9F77208BFBA0FD4C986F2F?@A9B0470BCFC517B8B7D8D3F28BBF5DD81AB6B0C9CF1C5BB7060D40E4C9D7CC5FA@41071E5BB63B7D84A8BD5CC6BF318BD892241F7261CC9CC3C54EB12AFFC99C31C@38C1D1386EBC7229E1BD3607B5CC5ABD7F23B7DD86CDE1D9C8948616F4EA34ADE@DBC3917A4B0BF508F833F103ED61B4462CD26211100D7CD2D9808514767E6F20G@5BEF6707B33CD7B183776C8E091139D0D0AE9548CC64074B3C93D9C17B374F08I@D139D070461BE81945E5752E2F58CC9BA6E1F642CC9A7832110E271E1B9FB45CK@8419295037E5E3C8C37660DE656D02A172B17EDDC2F43E1014CF97385DCEE199M@5237CF02549C7CB69E970D0B80978C8C773A0E82FAC1B350B1A1FE1C6CED7FC2O@F3AEBCF3AD139B8EAB9BFE0377FBDD59827AF7F1338F52229510059F6A65FB69Q@85B7A8F7B7BE7FB1030BAD72EE62E0E656A7ACE9387D23CCB77AF7154BD7E618S@6E556FEB63262857EEC0FE5A2D5DB55FE7E4B446C04C9F1040BE3B946C7DAFC2U@D30E9A9B486457388A241A3DFCF530F43E6F36D4E52E10F17CF65922AACF06D6W@8983A780255CDB9F95D55027802CDE06A2A23F98C5B58B854A6B3A6EB760E474Y@F2C760A648556F34520F4478A763A8F787A43E106D9E7E0ACF0E27F0EF002E3F[@484E5403723070613660BFE79F8FC3F9288F7157E372357F0D4A38AF47288FE6]@1FBC0C8B91BC56F1A6230934E7068798495DE198125F0E6C87A908CC6307BF19_@9BDD82D931EC6090518F64B73DB11D579DD2128EC3219E7C70C9784AEF654E59a@2ED10A7306AD716B4182F9763CD0E4FAC4FCFBF165CA61D41FE4A49EA9F266B4c@9129CE51B46167BD39CA36320439B0A5A266190CAFD76CE454361C828DDEA539e@1A6B802725E932E0A33EBAB50527BA65A92EDE1A382316E0A2AFD7B412596ED9g@AE9B0E496BE0332FE18EADEF1198180B89D32A275F7D065809C8BDF53DA37458i@0F9FDA8F3A2C9AFFE525D4612C39FDA09849E5DFF04FA352EC0A9F3F7C58D5E1k@B6CAC4453C72D00BBE2BBA888CAC034C61057BC3F390A0D81BD081A476EE2173m@EA8DC693E5AEF0BDB8F88090B5A30D8B7DAA86B65D246C094CE2F21314F3ECAAo@C62BE89F7A22597F8CA5DDF3053449169C86CB836D41030B4E55C00DCDAB53B1q@9DC1F6F36AEEEDB2830A1877DF76593630E6CDEBE326DC06EAC29B175437BF0Fs@050E5F7C2237D9BBAA9F7306BDAB06B955FD03FB64DE221543B75F512C61AF64u@D6CACB33EFE06E57586E57320BD92B5A9CDB869AEBB8432702BEA5618A4B2766w@ADDD933D14C9CC0106665D1788F72DE9192E7972CF7EC086C2082C2C54A09BE3y@50726B1420A0F2BC7EEF1D0A6E958A83CF954AAF4389EFDC8F8D69B56890FD04{@98E9573783BB47CD630621A7FDAAA23CD3CBA86E2FB67C541BC67D24CF1B146B}@59DE030290F39EE543BA98CB5371F7282CF728190B7B55FB3AE1792AF7D68973@97DE9B4503BF4BE50A661632951898E6BBBD87E4BF22728B4584DF7B14848A92@BB4DE15D26C615DC6D4AEF32250C72400E0E2E5BDF4F314ACB87EA26B48AC0D1@F3A98E718580ADF4162BBC80BD0C3E95F06959A664D6B7C2A0B4E4A987DA6114@5B205E734343BD9A62267087C8989E0840A391D7913819DDEC3DD99171819B09@920686751456A102D27F22E92F7C4D84EF4858C5416F84375B071E7C9F00AEFB@255C99286C78867F0A198CF6438A4BC6D30E72D4D17E5A2DCF55BD86E71C8E15@C27B6239A922D18EB42B4992B36AC442F699166C8C0AE50EE52E12A3B99A86BA@451413C9AE570C911C768B5260CA1CB014AA55C27B244BA8D68C7D2143849C8B@2522AE68C02385030471DE01DFD2896757F87263C078F5E1513228A8FD2A211A@F12DE18852AB60372963C8EA206B087531E67BD391CD35EB8A0F8A4B888BC635@85B6633B63F0657BEDD08A5D3CB32908B1F2C47A3CA864147AFFBA0E565C8364@C54A0430EA74EFCFC237D2621560D667681457B7A5CB9BA3C1BA8145E50A377E@87801C201508B18F4BA52A6692503BD21A763C70945DA614BC19DE6D0A219CB4@92A3619502D759BC4E3C6725AB5909FBE73DC0FBC980FC58CFA2667FFD65AEA3@CC4F9673930E97332C04DBE01D5EABD26B55B07EE512A6BF5CC15D25E766ED9F@ABE5752A728425B182AF14F165D153B85BFE82AA0623EF8A775570F322EED0BC@B7DBCFA87C8B35596CEEA0C0B69C4557CEB72388371F341082E1DA650DF661D2@AEE86AE0218289706CE736E62DBC20631B0C1F44DF7AB9CA9BABF066297D4B20@A2F46629D8D25F65537A61B177EFAF50705A7316B51E186A6FF2C37CB52C5BC4@C823B72888ACC1DAFCE2D2F1597625D741CE64885253894A0DCD087013EB55DC@FBF35680629BDAFE859A3BF42DC5D6CF2D0FB29FF5DD66B9E0DB6A0E7233BD79@1AF0DED40FAF82D2810E30296C10917F60B9A87EC482676279C1F6CB8ADBD8CB@99DEBCC1DA88F2CC4208B9750ACB3A25B388BD2CA9B969B8DC067D4B6544CFED@403D77A3A8E766B2ED3DA30B9FDCF12D55B75C09D4BC185170F72BBD754A2E4F@33EF882C2F8827F6EA879F256F0A83A055DA05C57256C8F42D4D0CA2D65BC715@F5FBE2AF7A8B34A027B17E91C65BA8F4DEAE40C572BB123E2D854AA6A075E938@502693419908A04CC6296AE21BEA27A332797BB432F165EFC8E6DE0E684999C6@B7FC5B3AA489300DD9A1E5AE417D9C17F4652705BD4AEF525910D4DC2A952F47@E65D18F466270D9E4923C6F319135AD2BE5B711C8B543703E56532EFED41DF5A@7D1066AA7D48B18C1DCA844D04F2B04BC503B6204C00D1914C502A2605303896@E5B8AF0C0DEF2B4740F3D111A1F19E30B2AF2C23FB4AC4F70E36EC2B30DE9B89@CEDDAC04AAA876198D9C097A87F9111BCCEBF7A92E70753894DEFBC8F8DE0E9F@4A698383618D9074F4100C6B041956A2A38FBC4186E83C8E9C990CEB111C56A2@9A97F58C2AAC1B1ED665A386D5A6F1CABDD9714172161212EF18C01FA502D9F6@A9ECE93E07ECD120994ED03105209E5A5FDA0360A7D58F678F0827CEB1798342@201A440F16B27EE0040FCBBF8D68BF6E2FD36FF9381003FDE02C73F206E70C8D@7F9B19CF76C4588A82DE22A5E773089904EEC3C0C431185188D18D08BCA55BDD@84474BDEE984E0220DA761AF08A020E8186E3BE910B7754776A8620A47B2E6AC@1A44CFCF979BCD25CE61FAC7BFC731FDCC54EED126B14CB005D9760567862AEF@D367504F7C77D52EDD91AD17E61C613649AD400BE5DA758162F63E25457A00DC@01F39EF3D8831BA10791A46484F33E4B37338157831BC47593636E3ACEC1FFE1@0A7AABB76BBC32E8096B12D4CD09686AFBCFDC0BCD1E3BBDB8F9202853683DFF@B2828B9A0756D18590D4E60D6E4341C1AB2E6853724B1496254A662D2C3322A1@F537726FE3FA09FAB69A4014BD4567E7AC6DC9F6020CA9193D977716CC8259E3@03F361518968DBC9862962CFBA6E480D3598F178389E7776D6ED0AC98C188476@94DCBD0A6F9D021AE4EE457DA16EF211A32224B04B945E40588108DE154A89AF@625160C70F0B6CFD9C86FAF13070442261319D8FB48C92DD60E4D6966C342900@257A446E23EF438BCCB7B745925B622F9D38176904FDD67C901EEF8DF22E9D88@BA005424D3273F86CB1DB29260B5F7E39D2F5F9DCC9BC14CB34CC71D989904B4@2CC45A60C649D62EE47895BE850A22FB6D3D1C795DAE166F93E1412379FD03A6@2CB97F0986AE0A2DE5E6E3F472BDBF353B4159C05D66AF283C89973E00AF9B56@CD3BD6328EED92B16764CC007700EF48B663A081E010FB573938EB74C4C517A0@7A9488F705E20199751D78FFA643BC02F724794564DDA7A4CA35EEE7D1418AE3@05A18D27BC3146F10D958C4E1875F706788E756FBD6BF856DD4E09396A0F952A@A57035E0CB05F1C25F4F20016FFA511CDE20945E8535D6F74EC557154A3026C8@552B7072D1D978F7737250E2DE83ACF83E27C795A177570B2CC9E4E6C98DE50A@FE50403A6E71F27FB84A3C27F1C0452F1EB8E0E924B9CB22D695D111E20D16E7@589F84DF88CDE12D2505DFF105716BB626287A36CF26E76F8C740039C50CA346@6B485ECE9098F7114C93908C9756F05D09FFA6405E951C1EF514705B1394814A@DF33E40BAF9C80735970A91DBF724B4F6E95B1EDB2263F9D2E6630E7A15CF627@6168689BFC28DB27E8F781C2F80D259335D23C971504C4394DBDF4B4DF804142@D1137E832E281D16F8B3AF0ED4A0AF6E28A0F4D57D1390FBEA82D0884A6A637A@EB446CE338BDB1652A4CBFD4D01781702F2415A42D4E26B5C64D1C6EEF34D430@340DD0375DDA475A9B842169AECB3B55149F8D62A4737118359C58D7D12285A1@FE637F25561242DD5D16EA6E388E893434A111FA9BFD4F82FE2788FD9F3CD2FF@2C32AAF3DA3B7C5943C3B16F8663412916BACF5C807E211820F806B19D3B26EF@B40CD52A2D83EA07B6828ABBD445588B817503AB87BDACF4DC7CF15921E16769@19F8E6F84F58C89E5178546C8F5C7E404868B6A7C3DC27F89642F10E088F4272@C77AF8D80EB00B60CEB1D6889671AD39B296C5B2D69C3020DBB2388CED94B35D @84F8E161E2BEDBA8615C8225633BC3D8AE30C47A6E186B8788C376220E2E6728 @6D194D430F8116200E4003A004A0000681973E002EFBE15E6FF623BD10F210F2 @109E85F02C847D10F641D80F613F8483100E4208C6CE23419F02153025EF930F@864643C04EE703AC07A03388DB51BCEE60C70EE470745CECBD94033C8E191118@8E10AE8F4E0CA2BD2ACD41C2C81C447F73F1D920B4DB9D89ED5EFA0046BA2593@F437342797C539998773722A83CC0922EF388BE3001113406B8E7CCEB196C572@F61C19BDF364F47E3F8A34F226E18CCCD539C024B3D0320A73C7283C401A99B3@7372F63CB2AC7EC009CA602CEDED103C0EF024C033002F02BC02B017E0ED4C32@37F130D6F110C6411807610C8431106A20C47215842A0895102A215440A8183B@37E218F1F0D9978927929426C63A6A6E72E4C0F5A8B920E9B1F3303A6FCCDC89@EB075FD2E2255E77AE55BC019C337DE40D2759EF59E4D52D79F349AB511FC02E@A6F186EDC199EAC077C4D9091A7BF990DB0E044A4113C353EABD812CFFEC042D!@B75AC955ABF085EE020B9D9040CFF5196A39D5CBDEA5094A6FAE8ADDFAB28262#@26B9893D92FDB292B7A21EC87F5919E8287D842814708EF19294DE5FCA9137CD%@8D750A6C88D1702B54DC4A9579859209DF235E225EF19AAE191CD02829022628'@9AC28B14DEBB55856BC46F37B067B5E4E4962B560E74C899EB4BDBF00EB4D7A6)@8431E17295960FBC79418FCAB25A51330E2CAA3EA05BC06D53B1020C0CDE29F8+@881CF37A57812BC729F1DAABD27248CDA2FBC56E5150B45CB02917E22581F76B-@7BC8F5A8182E67D0620BAA1F980D2816D8ADA6E15BDD3E3C97BCDAF839D50776/@DB40B37FDB2473DAAB831C1E2FE2EB971C4BDFD673E5F13E5B8FDD21C43E2F7D1@DB623DD46C046B8AA2C0DF70A0E767EB3F4C3BB9BCDE8D8DE6BC3BD4CD9938843@5969F2F64613FE3C82BA7901646C6CDC12371E2A60FBF33ED8C86E89A0D47FC85@8D01CF2E4EFD6034A9A1B2747BD4DC0AA5FCA8E5C39A8881AC9B1A98CDE532B77@693B6EA8CF88AD370B7837291A196F3EC81DDB361984B41F126613AD5CC2F2609@CFDCDFDF7C9CB9A55CBDC6F2D6FD61DC07FAE3CD27B74EF2297E86DDE2740B2D;@27BC266E68DB39F6B2A67E5C96975002991B69E4CC5343E48CF7FEE601F5C38F=@626BD3313BC4C80964E25EC896468A5E4046D1572D340F6CD58432E5CBEAFA9B?@07EA35ECA0A63EC2BA53C20884D171FA838007FCF8083F9A2CCB11E0E7CAB673A@211E4E9C990EC4C1F518716134E4564DDA76729170937BAE1B597D915C8EB45CC@5537FD941C0493BBCAF16E7257B9D9BF13B1E9AD6E9598E11EBC0BAF285BB78BE@5794C9BDA09DD9DBC9E59E537785EA2CC53AD1EEFD62C6CE5C48B6E1075E0245G@13929EEECB0BAE2857F9F2FA5694CBF02EAB581831601B9431D789D78C149EA8I@86BC49DAC0CD3084C910530466B65945BC29C251F41EE8096DD96246B8037304K@FCB6015A732063C836E9389A1A0578B706BF28E374701F707442CCA54E397191M@1234CC78D08BEA667273E5A65630BF64216B959E07FBF9AD2226F32979ABC494O@B09FC8C12A1A46030C231B90315FA2C25853BCAE43DC19E8292122EAA627A8E1Q@3DFB0B91082D1642B58135C5A231426C1D6CF3DF4483272264F04C613B2503E3S@14183CF3C1E09921193C2AD1E061F67BA706E21AFF8A3F8D02B10910A3484C01U@8B1AA982C10A74F1447E9CD80633009D50376FC61B0712D7E54AB709E697DF7FW@4A7CF38B5F8AE037E2EDFCC23197C2CAE5D297512CD1F8C28891759CC10B5EBCY@E66DA8E757E2CB8B5CA4B3F514B9FEA43F69B9CA4C8029E1EBBE06BBF34C132E[@4E4665B9C8A80AF8DF1FC3AC2AD433A2DD2CAE6E6F115EE9563F74015F0629F8]@D61E349A8B8205FCBFF0D28B870E75D333F8CE5334B2973A0BEC7CFD97E4CB1A_@2808DEFADE80C9C92FE9138D6D4B07FD136E7130D76B3B65E9F484719DF60281a@E9E57F312008057C0E8F6F407B80C05D3C12883317F532B7037B11FA811C2FA3c@1ABE4DEE748CB6C645B273BE87AC15C90A4C0F3F95D08B21A6FE7260D65CD4C3e@CC06C272203C42B5C031FA4C13BF18859499F5E6E9E496F96A277FFF57D00DD4g@139FC2520ED8F427D130AC473760EF47E806C0E40EF56C9E2251FE164120152Bi@918A76F20691147358EFE7A79E44EF45E35E8D93F5F687C0ABE4BAA402E5A91Fk@4B2E0BEC294E7EF6E7E2B0E31541AE36C89E8BF432BDE05B32A21F8326315BDFm@43319305FCF257A8F95DE40A24D7C9FFC787C471E905BA518463723F00146253o@A30C5FB82BF8DFBE8D2FF295FCAF49A8E27F49420DFF180963F85612C6F10F60q@98C2DF47925ABE868409FCDD249CCB6F20E17C7E0D0975BC838406FE7612C6F3s@8B4868E22D6F8BF706F428B2FBAD42AD959F4BB2B2792D0973F938122E25528Du@57029424CCE72912AEE6078F60B896EF23E17A9E276129DF434237DF4DC20AFEw@2809ABF90324A4793F09B7F07B48B895DF75446461371EB5F1BFC6DCDD7814C3y@FF8244C965A0ED248A3781F84612C55FA8E16B49947C91F16E124525C3AF27D1{@2731BA8A449FC6E81212C515C36792E8F3183590B6E71787E683CEE722B8E817}@1F02A991D16A4BF8D687C4EFECA88E907B040AA92C4B81850D52E1F93F6361AD@B28D94552BA12CB9899439F91358563C32DD8750DFE6A842745448A745A2F3EF@844E8E2654A8C1C2ED5261AB5818132A8CC1C21D52E126B1302E541887858F4B@8576B1303E54188F854F48857AB1501B2AD462E19352E114B1630952C712B063@4F4B1DBB7298746CF4F74F9D7ABF5D7AF0FC156CD6B028BCF9B44FA67E419110@B88067030705C807EFB235821475CAD43B150935E7B87676BFB6F8E0288F1C5F@1CE225BC4BFBC89E91C685A5CA980550E9C6D412197343542F3DBD9DD7A46685@31D741E6C4D41239A3012F94DDA788EA658E73F815A41DD7FB8FF5B07E59C7A5@7DC4C28D6B0D035E80CCE7C000543A75691FFE2214FDCC460E0A90FE11C8ED44@FA6F02FDFF62DBC3022DC3FC6427A0625D827C8161FC156E9AE3DF07B78736FD@86509FD83A2155CDAC862EE1AEC6CBC0A39FD03AD5748CB1B52E93B516C82066@4137119C453E8CF9645D710777001C213CF79977F1DFE99BB86541AE2008581A@D3D78CAAFD8CA6FD0B0DA4C24C5F93EB8BD7FBD7B1DD427107F0B09F9BC2A94D@87A01BD04ABCE91CF3114626379EC60DB1F1AFF86939C61C844CFCA652BCFB89@4A506F7DEFA2456A4E7E1A8D94649FADD7AE171617B81FAF44DB24D62F1E1429@BDE9581E881DB9641ED5158E5938506D186107C3C46B8960F336FD15D51EDE7C@209B2D73CACBF49899384629BD5A8F733A455B44EF37335AF5CFFC3EC59B3856@7681891362F71283CB5BDFDD2CA89BF0F08E1CCAC667721DAC5F8E570FEB4EC0@BEE4E2B97E2FF38EA39C72F24F9C25FB1B6ADC40ACB41FF3255160B80F902FA9@02A901666A417918FFE743E496531FACE8BBBA6C3DD86881C44BB96CB875E8F1@448189B193AFBA9231808D0CD5380AF8754882B39D0A547245F1968F98086E7A@0BF48AAB8F6B1620918E5D74F0CBC6E337BD0605F22E0DBF2738033D2E5F9E66@0534652FE0EF198F7E4E1CE1E42F5EB4CA62469B677BC4AF540D6083CF1FC406@BB7CAE03FCB67760BB383CE621E7210E2E4FF3C94D60BBD52BB94B7AFF57BFBB@F481FC2D6E0876C38BCFB5E608FA83A98B85CDE174387B26ECD231AE7D8DE40B@FEF8F5C9096461AA420BF3822F47105766B9C9FD3CCAD1F33029683D1F403932@391CB8DF122972E39D05E8D2819028251FF8AE281D9044C95C14B3ED7A2E2F86@B3696E33C5D14AABE52DB0C70EA2993EAF5D668B693B1012B553E85E81ADF38E@4C12B52174D4046FFD3BDEA203DEA2C3E622EDB0BC691D0E717C41DE8A12C6C8@9B56923730388E5A2EAA9BD0AF94BE72E953A44802A73C260ADC7EE97832707D@48C882E3A0D193689411397B87638EA291140F75EDFCCE40C8C8127DB92EDB01@A40B52D52BB28322A70D899CBAE933287438C46272E84AC60C97C23BE87E7451@E801462BE85BCC45F1C029AEB5FA78F5232F113B371EA4F7DB55CFE01608BD09@23BDC9947A937A74B8373D637BB340EA4DCFE8DEF4307150D7CEBFFB45C8C0A4@AD5DB6C364E9802DF7ED36618A67391CC021A370380211226388E8207D2D253D@32171DA623D1103CDC0944CD450730D5CBBFDE4924FDCC1A62E876C36C16ED37@1729611E5BC42B396326154F2E3E1F47BEAFE8C79586EE3BDEB4B2D8B4EAA673@642C7D7931B0DE3438CFBC308EAC38AFAD1B7AF00E91087B88F1FD92089C4211@F835EAACA2A0345AAAB7C5D10A7AEBF73A1D05FC7C62BAAA029AD0A05D0EC741@D30B386660CFCF119853FC6FF0EA0D3A8D742224A1D6C0E7A456976D3FB978C4@9C2A2012D03D9A0134963B405F0C046E1447CD673B85763374D4CF678D93F4C5@A58FAE1FB8F4115A987BCC45FBE939057CCB9B78CF679A5867B41E09F5CB5CD4@8DE3DBCD172326D7E973BDC81B8E4A9AE4FFEA79EA76C7F79FA73EBD929CDD3D@E910CF53B518EE82BC530094E3479EA722F1BF7F9E8A583F7C9E2AD16021A806@7003AC07580D6007C805B03AFE51E7A9643404ECF43300BB00F63BFE37CE53E7@AE1A3E4FEDCEFFC1F3D4F9F9644E1079471AC4D703B4E4FF9DF354C4FE71E7A9@84EE7FEB3C55A27D0A78E805380BD00F10045040910A60E6AA7FD479AA384626@F8B402D8014A57FD83CE53C55323723B147F50227DD967D6D798654E9F6DD02E@C476E3E263827A6650887D075F8DF589DF1BC7F02809F196BD107B18F16CFD7A@5B9FBECF9B4C0E0E6047C410C9C116EB8E8375E8AEAE865D762158D7D2ADE0DE@B6C3A007F5072DEDF44C2FE81EE93D9DF825F2334A72B58168A8C039E036979E@F2C652A0D0D5DC0DAEF2135594E6F577F04C27E68D2D55A1DC6ED8AD5FFF23E4@B6E4F5885F2E693E85B775570C7FB36432F95A8994CD9FEE4563CAF714A6B80E@3B7FEC53F48CFDE3D9C1B4DA1B30C3FF29BEC616D1593E51DE5D2E275F3271F0@0F921309883C85757CD93A95A46E9F3A28D976054EBE11E8BF815F27817833C4@DD878141277F2F441D4EBE060228A880407815D977F2EB1169F88B264EFE2662@17A695CBF9E4FF128431F6123927D8257002583549E4C0AAF526501FA6FDF4B9@F95969D3A61D6C38AD0D6B57643DD8332669EAA18F4CF3C70BEAD7FD6B860560@A9C35950AE58CD9F3E00DDEDC763DC6EBCFE2B1EE3D29BB9A2533EDB2B30D13D@38D1797BDAF054D057275C7A7FCED0BCCB5CDF3254E9EC6717D8CE89EA972EC8@2F5A86BC79831E2B7EA7652DEC43AFE1C52491A8C00487C96A395BAFCC166C2E@E2E9BF0ED8BE0489ECF6DA8274384C3AD89B83356877A6593A6BE45E2658AE80@DD6E90D4C6BB538401BC181A24DF01BF01BF64ECCBEB5F61B587B04EE1976E5C@CF93034267016FDF0B1DDB526A49273F23318E3F009B073708AEAB8ABD7FAE4C@BD3B62DB84722518B5AE3072781F88E296E7AA772BB2D81EF2A5DB9C40B77AF7@841CF6F22DDC31B0412FCF631498D6FBD9CBBAAD51EC65F3FD6098EA0272B4F3@2E0BB40A2FA429B21025F017F6CA2DEB8A99B04BDDD21D2A22FCE511E49B64FD@76B74283BBA9B2D3768512625F1185947CD1360A8B792BBECFE5F282FCDD2009@C456F5E32A0A1E18594568321E86BD9DB3C57071DE22BFB77E3F2C178B4DA56E@AA21E37274859D4BC6ABDC78744B6BD9FAA332669ACF7694180F98154DB2C649 @7BBBB97E3F3D8DBD2AD00AEE62007FA087FFD35F9189BE1C2F7300B7ED0380C1 @4C2B28704806A072C4023D60B944AF866919B13C1FEE1497C3296FD11EB4290B @1CFC0B1F8F383B53434608FD0DF90D9793C470033A1F33339CE0EE7CF45FC4DD@E986345A47AF1073702F3142A179FF580ED00465490FE2686D41816452E22F04@A944BB0DFABA91B381057538508C9D985200CF6804AE0F3AB0C8592EE35DA461@C004CF270990ECA3D12C5D78EA79987F7B2F5A94F587031AB6DE2FD05160F77B@657887648FB97E2F3DCEC1FF6E2F71B50E83C1C2E5F5F2CF8105CADFD705860B@DE2AE46CF805F3C6CB14B9FFA6DC1CC9DD96ABFE83222B90EFE48EB65F511670@7520845F0D646F9635AC2BA6D5E5612DB66F5A56053B6D43D4EA40548B2DA8F7@77DABEA1AC3004F7C408F7287C791356D8F1FBD9C0FF477D38C8F1204D61073B@D47FB04D9863D3882E13791BB6147CFC037872CE44E2258C4BA7F7816D73E934@D78DA5974A1362E462ECB4FCC41A28FA5E7F6DFC413A0F3DAB7AD51FB25EBE63!@B716F79E1BA37A5BC7D137814E9A239E1798829E08D3A9CD61619F990621D60D#@B14ED37E663C9E531FD31F047515F947FC8EA627ECD20763FDBAD0E3044662C6%@FB99B9C8341E56E88F5FBA20317A81EBE33A805D0D7780EBC4507E2CB018E2F8'@0D6EBCB60238C7CE1C3B79EC8B63DDE30F32FD972E82F9099D038CEC04CDA5CF)@E4C73C132C80B759E9515B00B73672D93C28B83E3F21467F12624A88A92E7D78+@A99BFD90E20E7127C03F85768AC70E886FA1B0A6237485A0348112EFC838B8EE-@F61E7CEB289DF3D0B1AD51E08F9A3EA0DF6E3A48AF900E7F02E3BB0BB88EF64F/@34CEF1DD5CD41BE4D5403B38C06FC1CE7F99BD20E03B82B7F59DEC3E45E3697C1@49C0C4DF40DE159CC040C6281BD1E36A60F617AF5BA3F777700B83A66E3AA5C93@4F9F379DA26F6AEAA53F6FE73590150B59A7202B02B2DE09FCBC789DC8F3C2215@A807C1376210C440B8E1E9F5DFFE75EE6BCFB5E7FFBE27D743517700540334007@3C0CF034C02B0007004E01F0008300CA1A8A9A04A0055800900A9003B01AC00D9@500BD002F034C06E80A3003C40184D5171004900568065006B01F087E99B009E;@047805E075804300EF017C06D00FA061282A1E20096021C04A8062806A800700=@9E00F82DC09F000E01F402F40344D5525402404AADD84FD472EC244AF338C0A2?@2A8F6D4B196DF7546D70D5007F9B6A3654795CAE05A51515040FF17362C47518A@4A3BA7C00E2EC54B219E535193037528081D2EDA5952C190F8E251F1AC0AF20BC@F81475B7CB53E9AAD0279106A8117E303C3D756C3BCFC58DA4E7CEA434F3678EE@A42B205E0DE0612AE9B24D2EADCBE3A9F268292A3A8AA2F2972E7738C41C4C52G@8EDB962D1E95A4B297E765DDB66C2467658A2EC91C1D758B96FC970D25D5D515I@651B4AE8B2AACAD07FDB80FF670353535679979676BBB4251BE8B25A97B6D6E5K@A9419CAA8D2437AF6C83A7AAA66A23AD5DB0CC96AF5D29F21565AF7095D4B8B4M@1BAA2A69A827D61F69E0A61A6D0D535D5DE5811257C926ED46E8C326187F6D59O@254437119C058469E4D1843C3295257756B8B47415E094D165251565F7BAB46EQ@5749B5D837C433221EF2EDAAAC62EE726B6BAA4B36B808ED8AAACD65A32A12FAS@23F5527EB05E0D5DFA37EA2563BD6A06D8AE2DF3D04C4985762353B9411AC08AU@8A61FE0D3F487F5D55A50BA4F0D6121A032D8D5D1CA69F681EDBEFAA6A57250EW@684D15A44B5DB5651B46E14A63E4DA52EDDA40BB4AC9C88C9E7BC4317E0B6713Y@534197D16E8FABA4144668C3DDDFC6FFE171912AE1FF0301E8D151DF11207749[@8DD6E3BA8771D5604338FB92606047689767535925F4590B7D2EABD496809455]@323538809B4BEA16FC23654767FEC13EB82A61D6AA2A37B92A69C0465CD30FE2_@9678EE6210B166986E12E26EACA882E6607954579555D2A42AE494BA4AC5311Ca@591ACE32D2BB45F3E60D8FC3D2B23B3D259E3AC48BC2B52865DB700A664545D9c@C5FF4025159636B560C1022A2DF43FAA5496001653797765D5E6CA8CB17A84BDe@71AC1EF9C54D625AFBAD3F373557FAFB76C9F7FDE592FF00E587FF9ABEE76F2Cg@46A36CE4EFC73EA3EB3F201BF90BFB917FA1BA387EB230B9223C629C32326ABCi@2A7A825A3371D2E498D82953E3AE9B767DFCF41933B5B366CF49B8E1C69BE6DEk@FC9379F36F5970AB2E31496F484E319ACCA996B4F48C4C6BD6C245D9B69CC5B9m@B72DB97D69DEB2E5F6152B1DF9AB9C05AB0BEF58B3B6A878DDFA923B3794BA36o@DEE52E2BBFBB62536555F53D9E1A9AA9DDBCA5EEDEFBB6D66FBB7F783E3C378Fq@9D9F940594E6B66165B6C80331D01B0E1751215995A58EEAB2CA45552018A3F6s@8B4DA994E6BED4B174A22C9406361D692F2B28AB2CADDAECA0C942A0207F558Du@CBB3FCCE72207BDBC80AC9827A50B6B4A486CE227ADD5E55CD54933C312D92A1w@F28062C95DAE85555BB22806088DDEC1B0FD461B3875B6B1FCA8168F4D77403Ay@373775D3A654DC6961EF8467BE360F1E2D46EAE0A1F2F26E2D2DBDB58EAC077B{@1E45650164BB36B836DDE9F260DEB2AADAE1F8F20D7415461DAE6A3A9499C5DC}@C5D4C0402D612A088D25A0E730CCAAF69421BB79259E0D6EDCD35D777A1869DD@2D29A924516807E9235DA489B4900ED2807A754803EB635DAC43394A68C6535A@4268E478CA482CDFCD786AA4BC025769A54B4AE433622CAFAA92643818292CA1@B12ED6437CC4431C2CA7FED99FEFEAA0B9FFDB1A6BD49FEC47FE8DD158A3FEC2@7EE4DF688DF5CFFE7C774EFFB9F6ACFFE9DFDFEB3FFEC550316352A3CB7E7497@A57E8F4DFFD8FE8EF4FBDB3978B15BDC3F26E6519AD8BC91FDA46E05A5A95F21@FA61B5CB29CDBDCBC578B61DF61880D1765396F64E66E34697470B7B87077D19@B44AEF7481155DEAA2451378B3BB6C839BE483FBE761AA43D6AA646DDD541305@861DB86E60BCD5C08EEA5AA00567C9F5EDFFDEAEA664A3ABA28E18AC65950C38@655B5C1B1862079754A2995D434781B986FF0BDEB0E95BBA200A7CD931DC8598@9A155A0559DA1AA00366419DE4E681CB25597ED032ECC67FAB43513FD021ED8F@EF50D4DFE890F6FB3A04CF2A89BF61CE37969455A08B34AA77385FD73B29CD4C@00D8EF60DB83DD0F3641D80B614BC49D91ECCDB0DDC2AE0B9B2FECC1B015C38E@0C1B33ECCFB04DC36E8D9BB6F420BDA1424A137687282763FE6FBCFFE68347FA@DA7BC49B24A1A76536D824D6EFE2AEBF67249E83670CEBBF9FE63FCBF98A5206@D6E3A2AA4D9B4048969655BAB2A80C92C3783CE03BE5139FF1B6528AFA18739D@E231820DECCA97A8D147314FC8245B36ABB4D443CE6636634E5E552953E1CA05@D21540985A2ECF0F49DEF0194EEAA8D64299F9F2FCE15398EBE50ED1E2254E16@4595C9168F49AF425C72A25380B1E1331D27A6864F755461B9E05B13342A82C4@45F25391BAC89F64B4FF27D277D0A562268C29A673CA2A5CF975D52EEA25B1B4@C44333D568986751F782255A01CBE45B9E00C58CF41F6B2F030F1046E04B0A79@B08D78B10EDA03BE684D169587F8DF2DA0CEFD408D02EA21794159A96B91BBC4@935F9587A7020BEB6817B5FCFBE914C0CC937E678377EFA9AAA39424B508A617@2A51B572A7781A428668BD7C55A59BF4BFD4B6650318ECD021E8048D46FBE3F2@02E829E913B5386CA9ABA4F63B5DA71EA16CA8AFBE93FF35F15416D9F1DB8210@5B6ECBC378107317D97138A99A101FD2EC6B08972B5D62F2BAB01FF4BCA84361@2BE98A55959BC103A266021EB48FC723A407D097BB5CD47D21DA2B1817FA12B9@614BC1EF975C7A989B49A42D07D0A6A80A22655540DF254E33F57B71E6713051@1220E7EEB0E151CFAF0A4D05F5EA583C18F7D4B0A58BF28030C9837A96D16928@FF451861C8EEF21047AF7283288A30D8EF22ADFCB20D774BB269F9EE5A81A5E9@272DD6D5805B955F06525643A41562545DA8C7808C8A9CA25E1BC125E37DBB6D@E532DBD2B1279C234FE8FF5C7D0C74056EEE216881F476801DA843407BFF9AE8@92514A84905BB7A4A4B6645DC9864DEBA48D6A5DF672C728A47577C110436835@FDF7B4FDB5E7DA73EDB9F65C7BAE3DD79E6BCF3FEF53BF8A1ABE73927E13A5C9@5C40FDE01D947531E2990B3E0D517F9B2E1209A728FF78293D1DE20A29FEF351@71FC3D7BA5147F7854FC9151F11DA3E28F8E8A3F362AFED35171BCE0330E600B@00B2893EBDCE4569B05C0121FE9C657729A5C1326BA9F843933110E27F6BDFBB@81D24C82D00FE164081F8710BFF4BF16C2EB203440380DC2E09D94E67A08F743@180FE19310421FA9C1124A83EDF210E27B806E08EF85F00084F8BBE2FBF14774@207CA5441C6799C47328A4BE95FE7BF93F54FEDFC5FFA1F2FF279F4552F86378@0AF915A31FFCA6E5E8F48E724AB3E741310F7FCDF9C7D25EF4F751FE579EFFB7@F0210B5390A586BF61BDFE81BA07420797CF7D2C866DCF8A61E3BFF5A0C853D6@6D0D247C1EF0DB777EB853FB03741B87C4D02A85AFFE48FC2C29DC0DF86FFFBA@F7D7D3A84F7FCDFF7ACD0FD3DFD646622B4041ADF8B0F8432DB5EEC3F20F93BE@8B7FA2FBA39ECB1495B84DACA90DFFE975A3CBF18E3D862843532851CF20C8A5@10751CEA0EFC6512FC3512FC6114D43DA89BF0B7F295521829855152D9F85165@53A4BA18AA25BA1A290FF5D52409307F96949F2CA5B3A4F422296D97EAAC94F2@1D525820D12F94DAAE90F237619F01AA0150C779245E2324FC0689E746297C40@2A67A5F226890EFEFAF4CD00BF92D26D123FCF48EDFDBB94FF0789BF2352F9FB@5279DC38712C426B777B19A5690168026800D80AB0058006A8002805580B6007@C8064803D001CC07980B9000A005880788038801D000A80094000A000A60D04D@69CE02F4029C728BF8EF407818603FC01E805D00CF003C01F038C00E8026806A@80528048C5888E41FDF35805A55900F12DA09BECDBFF3EDC2F3DA8CBBE4F772F@A046E837548BF1BE0BE2FB77BB239FFA9F3CF6ECFF59FD1EE059DB3272770E9F@6FC767406801B88312F7EB5F00BC0A80DF30B90830113AA4035806B049365227@9512E5753345EC090AEFA79F00F80A00070A7F92334F86A770FFA32E5C7BAE3D@D79E6BCFB5E7DAF3FFBF07ACA952D81FC3752E5DAD6E9BEE21DDBFE8FE5DF7B2@EE635DAFEE9CEEFAC494C48CC4ECC4AD890F24FE34717FE247895F27BA939E4B@7A35E958D207491F27F149E793E47ABDDEA65FA2AFD46FD1DFAFFF37FD9FF46F@EA0FEB8FEB3FD47FAA3FABEFD75FD18F37680CD71BB4865443A3C16BF899E15F@0D2F1AF61AF6190E1902860B86A02132599B3C3FF997C9FB926F4CB925C593F2@60CAE329BF4C7939E58F296FA61C4A399ED29DF271CAA7296753BE4AB9924219@C71955C689C629C6EB8DB38C37187F62BCD5986C4C37AE35DE69DC64AC353E6A@DC693C6FFCDA1866BAD16431D59B58D323A6F74D7F310D99AE332F33AF326F34@3F6EFE95B9C37CD23C25353B7565EA33A9BF4D7D2DF583D4ABA9919638CB32CB@1ACB6396A72CCF5AFE60D9678949FB224D9EBE283D3F7D6DFA8674777A757A57@FA91F453E99FA50BE9E333A666CCC85892F164C6EF33CE650C6544654ECC5C98@B92C73556673E6C399BB32FF90D999F997CC4F32FB3283996840E38F84CB752A@DD645DAA2E4767D7ADD6DDA973EBF6E9F489A6C49589AB139549C9494FE87F0F@637754FF895E658833DC6E586FB8DFF0A8E129C37F183A0D1F187A0CB2644DF2 @ECE48C645BF2F2E4BAE4E6642EF977C9AF261F49EE49FE2CF97CF250F2CF5376 @A7F8530EA79C480933C6C2F8688DF38D06E3EDC64263B1D16DDC6BFCD0F88DF1 @27268769BBE9B0E91DD349D317A6CB26A579AA79817991F93FCDAF99FDE637CD@87CC7F3107CC17CC85A9AED4FAD4C753DB52F7C2E87C9EDA9FAAB0CCB0FCC492@665962D968612DFF6AF9BDE5354BBBA5DF12917663DAFCB4BC3447DA9D696569@D56975693F4F7B21ED3FD3FE98E64F7B2BEDABB409E9F1E937A6EBD3D3D397A4@3B6024DDE9BF4A7F2EFD77E91DE97F491F488FC898949195B13263634645464D@4643C64319BE8C9F65FC6BC67319BFCBA07414C583887EA9BBAA93255E9FA84D@BC1546CB96684FBC3391496C487C30914B7C34F15789AF25B6271E4E3C96F841@E2C7896712CF272A92C6274D4C9A997443D24F92744919494B92DC497549F727@ED48BA98F430C8D6DB295AE31A90844A73A339227572EAF4D49B526F4D4D4ECD@48B5A52E4975A4AE4EE5527F95FA62EAABA97CEA9554CA926D999B6E4D5F9CBE!@1C246135F4A039FD85F483E947D3DF49EF0669E849EF4DE7D3CFA6A764A46558#@33B2337281F33F66BC937132A327A33783CF88CCD467BA322B32AB33E9CC2D99%@5B331B329B325B328F6776679ECAECC9ECCD840E5A29AA1782345DBDEE331D95'@1899F81CF4E944E2ED492B92D62555243D96F49BA45D49BB93FE9CF44ED2A749)@6793AE244DD0CFD61BF42BF56BF425FA7BF4B5FA06FD43FA47F43FD33FA5DFA9+@FFADFE15FD6BFA0EFD01587F5FEBA30D330C46C35DC93B927F91FC52726FF2B4-@94969487C97AFA3A45674C315A61E5DC657CC9F8AAB1C25C6B6E31FFD4FC8CF9/@25F351581F5F9A07CD51A9B1303649B05296A796A4568044B4A45AD272D30AD21@8AD3DC30D7F7A535A5FD2EED789A3DFDCEF4A6F447D3DF4B673376643C95F19B3@8C97335ECBE8CC389F3103564507AC04743CF107B5E374DB752F412F2FEA6C895@9D89D393B6C0ACFC22E9DF929E497A3EE9C5A47793AE265DA7D7EA13F473F5F37@F53AE8A3499FA67F50BF5DBF43FFB8FE09FD903ED290609867D0190C0693A1D09@C01A5E054DE237EC371C301C361C35BC63E836CC4E9E0BDA44976C486E029DF2;@1CAC91DDA0598E2677279F49BE987C35795E4A724A56CAED291B53AA5276A5F4=@805E9962FCA5F105E3CBC60BC65B4D06D32AD326539F69BCF956B3196464BF39?@27F52EE8F54BA93BD2F18E4F36F4E1ACAE4F17973837D10032B823F1C9C4A713A@5F4CDC9578005A701BB7185F34EE32FA8D6926ABC96E5A6F7A32E3E98C173376C@65ECC9D89BB13FE340063AD2314083D66DD1EDD71DD0A9123589E844A3EFA2D0E@6974313A9DEEACAE5F17D4291255893189F1890989F3A1A534D0C24B13F313D7G@2696265624D2A0917B92FA92FA938249BB52F6A4EC8575BF3FE500ACFDA329EFI@80BE3C05FDEA4DE1A16F7D29FD29832941D09B0AA31234A7C618638C33C6836EK@4830CE05FDA0030D6132A6811C641B738D4B8D7663BE7135C8C47A63B591366EM@3536189B8C2DC6EDC61DC6C78D4F189F343E0DFD5B6F2ABDF6AEFDDA73EDB9F6O@5C7BAE3DD79E6BCFB5E7FFA3CFFF01504B07086CDD77F6A744000000A0000050Q@4B010214001400080008001C4205336CDD77F6A744000000A000000A00000000S@0000000000000000000000000047434D444C4E2E444C4C504B05060000000001U00010038000000DF4400000000Whexjar[Ljava/lang/String; YZacm/program/DOSCommandLine\ ][CodegetCommandLine()Ljava/lang/String;java/lang/UnsatisfiedLinkErrorb GCMDLN.DLLd loadLibrary(Ljava/lang/String;)V fgjava/lang/Systemi jhjava/lang/Exceptionl user.homen getProperty&(Ljava/lang/String;)Ljava/lang/String; pq jrgetHexInputStream*([Ljava/lang/String;)Ljava/io/InputStream; tuacm/util/MediaToolsw xvjava/util/zip/ZipInputStreamz(Ljava/io/InputStream;)V |} {~ getNextEntry()Ljava/util/zip/ZipEntry;  {java/lang/StringBuffervalueOf&(Ljava/lang/Object;)Ljava/lang/String;   |g  \GCMDLN.DLLappend,(Ljava/lang/String;)Ljava/lang/StringBuffer;  toString a java/io/FileOutputStream read()I !java/util/zip/InflaterInputStream write(I)V  close  load g jacm/util/ErrorException(Ljava/lang/Exception;)V | getLine a ]UNCOMPRESSED_SIZEI |java/lang/Object  ConstantValue SourceFile Program.java ]YZ_cW*YSYSY SY SYSYSYSYSYSY SY SY SY SY  SY"SY$SY&SY(SY*SY,SY.SY0SY2SY4SY6SY8SY:SYSY@SYBSYDSY FSY!HSY"JSY#LSY$NSY%PSY&RSY'TSY(VSY)XSY*ZSY+\SY,^SY-`SY.bSY/dSY0fSY1hSY2jSY3lSY4nSY5pSY6rSY7tSY8vSY9xSY:zSY;|SY<~SY=SY>SY?SY@SYASYBSYCSYDSYESYFSYGSYHSYISYJSYKSYLSYMSYNSYOSYPSYQSYRSYSSYTSYUSYVSYWSYXSYYSYZSY[SY\SY]SY^SY_SY`SYaSYbSYcSYdSYeSYfSYgSYhSYiSYjSYkSYlSYmSYnSYoSYpSYqSYrSYsSYtSYuSYvSYwSYxSYySYzSY{SY|SY}SY~SYSYSYSY SY SYSYSYSYSYSYSYSYSYSY SY"SY$SY&SY(SY*SY,SY.SY0SY2SY4SY6SY8SY:SYSY@SYBSYDSYFSYHSYJSYLSYNSYPSYRSYTSYVSYXSYZSY\SY^SY`SYbSYdSYfSYhSYjSYlSYnSYpSYrSYtSYvSYxSYzSY|SY~SYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSY SY SYSYSYSYSYSY SY SY SY SY  SY"SY$SY&SY(SY*SY,SY.SY0SY2SY4SY6SY8SY:SYSY@SYBSYDSY FSY!HSY"JSY#LSY$NSY%PSY&RSY'TSY(VSY)XSY*ZSY+\SY,^SY-`SY.bSY/dSY0fSY1hSY2jSY3lSY4nSY5pSY6rSY7tSY8vSY9xSY:zSY;|SY<~SY=SY>SY?SY@SYASYBSYCSYDSYESYFSYGSYHSYISYJSYKSYLSYMSYNSYOSYPSYQSYRSYSSYTSYUSYVSYWSYXSYYSYZSY[SY\SY]SY^SY_SY`SYaSYbSYcSYdSYeSYfSYgSYhSYiSYjSYkSYlSYmSYnSYoSYpSYqSYrSYsSYtSYuSYvSYwSYxSYySYzSY{SY|SY}SY~SYSYSYSY SY SYSYSYSYSYSYSYSYSYSY SY"SY$SY&SY(SY*SY,SY.SY0SY2SY4SY6SY8SY:SYSY@SYBSYDSYFSYHSYJSYLSYNSYPSYRSYTSYVSYXSYZSY\SY^SY`SYbSYdSYfSYhSYjSYlSYnSYpSYrSYtSYvSYxSYzSY|SY~SYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSY SY SYSYSYSYSYSY SY SY SY SY  SY"SY$SY&SY(SY*SY,SY.SY0SY2SY4SY6SY8SY:SYSY@SYBSYDSY FSY!HSY"JSY#LSY$NSY%PSY&RSY'TSY(VSY)XS^ `a_yekoWosK^yL{Y+M,WY*NY-:6,- KY* c hkm a|_*PK ш5VC'acm/program/DefaultActionListener.class-t()V java/lang/Object CodeactionPerformed(Ljava/awt/event/ActionEvent;)V getSource()Ljava/lang/Object; java/util/EventObject  java/awt/Component findProgram+(Ljava/awt/Component;)Lacm/program/Program; !acm/program/DefaultActionListener countActionListeners(Ljava/awt/Component;)I  java/lang/Exceptionjava/lang/Classjava.awt.event.ActionListener!forName%(Ljava/lang/String;)Ljava/lang/Class; #$ %getClass()Ljava/lang/Class; '( )removeActionListener+ getMethod@(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; -. /invoke9(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; 12java/lang/reflect/Method4 53acm/util/ErrorException7(Ljava/lang/Exception;)V 9 8:No ActionListener is attached<java/awt/Button>java/lang/StringBuffer@valueOf&(Ljava/lang/Object;)Ljava/lang/String; BCjava/lang/StringE FD(Ljava/lang/String;)V H AI to button Kappend,(Ljava/lang/String;)Ljava/lang/StringBuffer; MN AOgetLabel()Ljava/lang/String; QR ?StoString UR AVgetTextX 8I getDialog()Lacm/io/IODialog; [\acm/program/Program^ _]showErrorMessage aHacm/io/IODialogc dbjava.lang.Classf getListenersh[Ljava/util/EventListener;j getParent()Ljava/awt/Container; lm n SourceFilejava/awt/event/ActionListenerq Program.java r* +M*,N-F,> Y"&S:Y*S:,*,0:,6W:8Y;=:,?&AYGJLP,?TPW:G,*Y 0:AYGJLP,6FPW::8Y;- 8YZ-`eII O;"&L Yg&SM**i,0NY+S:-*6k:W88'+_+_+ *+opsPK ш57w(acm/program/ProgramStartupListener.class-()VcomponentHidden"(Ljava/awt/event/ComponentEvent;)VCodecomponentMovedcomponentResizedcomponentShown "acm/program/ProgramStartupListener  notifyAll java/lang/Object    SourceFile java/awt/event/ComponentListener Program.java   *+ %*M,*,ç,ÿ *PK ш5yMM'acm/program/ProgramWindowListener.class--()V(Lacm/program/Program;)V java/lang/Object ownerLacm/program/Program; !acm/program/ProgramWindowListener Code windowClosing(Ljava/awt/event/WindowEvent;)V getSource()Ljava/lang/Object; java/util/EventObject java/awt/Component setVisible(Z)V  exit acm/program/Program ! windowOpened windowClosedwindowIconifiedwindowDeiconifiedwindowActivatedwindowDeactivated SourceFilejava/awt/event/WindowListener* Program.java +  **++*"# $ % & ' ( ),PK ш5/ 'acm/program/ProgramRootPaneLayout.class-K()VaddLayoutComponent)(Ljava/lang/String;Ljava/awt/Component;)VCoderemoveLayoutComponent(Ljava/awt/Component;)VpreferredLayoutSize*(Ljava/awt/Container;)Ljava/awt/Dimension; getTreeLock()Ljava/lang/Object; java/awt/Component  getSize()Ljava/awt/Dimension;  minimumLayoutSizelayoutContainer(Ljava/awt/Container;)V getInsets()Ljava/awt/Insets; java/awt/Container leftI java/awt/Insets !top # !$width &java/awt/Dimension( )'right + !,height . )/bottom 1 !2 getComponent(I)Ljava/awt/Component; 45 6 setBounds(IIII)V 89 :getComponentCount()I <= > @java/lang/ObjectB CA SourceFile!acm/program/ProgramRootPaneLayoutFjava/awt/LayoutManagerH Program.java GCI   .+N-+M,-ÿ:-é .+N-+M,-ÿ:-é s+M,+:+:"6%6*"d-d60%d3d6 6 + 7 ;  +?,ç,ÿjo@*DEJPK ш5npww#acm/program/ProgramAppletStub.class-()V(Lacm/program/Program;)V java/lang/Object appletLjava/applet/Applet; acm/program/ProgramAppletStub CodesetFrame(Ljava/awt/Frame;)V enclosureLjava/awt/Frame;  isActive()ZgetDocumentBase()Ljava/net/URL; getCodeBase  java/net/MalformedURLException java/net/URLjava/lang/StringBuffer!file:#(Ljava/lang/String;)V % "&.(getCanonicalPath&(Ljava/lang/String;)Ljava/lang/String; *+ ,append,(Ljava/lang/String;)Ljava/lang/StringBuffer; ./ "0toString()Ljava/lang/String; 23 "4 &acm/util/ErrorException7 Error: Illegal document base URL9 8& getParametergetAppletContext()Ljava/applet/AppletContext; appletResize(II)VrecursiveResizeCheckZ AB Cresize E@java/applet/AppletG HFvalidate Jjava/awt/ContainerL MKsetSize O@java/awt/ComponentQ RP getAudioClip'(Ljava/net/URL;)Ljava/applet/AudioClip;getNewAudioClip VU WgetImage (Ljava/net/URL;)Ljava/awt/Image;java/io/IOException[ getContent()Ljava/lang/Object; ]^ _java/awt/image/ImageProducera createImage0(Ljava/awt/image/ImageProducer;)Ljava/awt/Image; cd Re getApplet((Ljava/lang/String;)Ljava/applet/Applet; getApplets()Ljava/util/Enumeration;java/util/Vectork lelements nj lo showDocument(Ljava/net/URL;)V => Hs qrjava/applet/AppletContextv wu#(Ljava/net/URL;Ljava/lang/String;)V qy wz showStatusoutLjava/io/PrintStream; }~java/lang/System println %java/io/PrintStream |% H setStream*(Ljava/lang/String;Ljava/io/InputStream;)V"setStream: unimplemented operation getStream)(Ljava/lang/String;)Ljava/io/InputStream;"getStream: unimplemented operation getStreamKeys()Ljava/util/Iterator;&getStreamKeys: unimplemented operation java/io/File &getAbsolutePath 3  substring(II)Ljava/lang/String; java/lang/String valueOf&(Ljava/lang/Object;)Ljava/lang/String; %20(I)Ljava/lang/String; indexOf(I)I java/lang/Exceptionjava/lang/Classjava.applet.AppletforName%(Ljava/lang/String;)Ljava/lang/Class;  java.net.URL newAudioClip getMethod@(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; invoke9(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; java/lang/reflect/Method java/applet/AudioClip SourceFilejava/applet/AppletStub Program.java w AB **+*+*<( Y"Y$'*)-156W8Y:;<+=>*?@H<*'*D0*D*I*N*D*S*NTUM, *+XM,YZ/+`M,b*,bfW\ghij lYmpqr!**t+xqy"**t+,{|%&* + *+ 8Y; 8Y; 8Y;*+L@Y+M&"Y,'1,`15M, Y>,VUn R*N-::+S:S:M,WM,-ÿ:-éAAIIPK ш5==acm/program/ProgramFrame.class-()V(Ljava/lang/String;)V java/awt/Frame Codeupdate(Ljava/awt/Graphics;)Vpaint java/awt/Container   SourceFileacm/program/ProgramFrame Program.java  *+  *+PK ш58*acm/program/OldStyleCheckBoxMenuItem.class-]()V"(Ljavax/swing/JCheckBoxMenuItem;)VgetText()Ljava/lang/String; javax/swing/AbstractButton (Ljava/lang/String;)V  java/awt/CheckboxMenuItem  twinLjavax/swing/JCheckBoxMenuItem; $acm/program/OldStyleCheckBoxMenuItem addActionListener"(Ljava/awt/event/ActionListener;)V java/awt/MenuItem addChangeListener%(Ljavax/swing/event/ChangeListener;)V  getState()Z !javax/swing/JCheckBoxMenuItem# $"setState(Z)V &' ( isEnabled *!java/awt/Component, -+ setEnabled /' 0getAccelerator()Ljavax/swing/KeyStroke; 23javax/swing/JMenuItem5 64createShortcut0(Ljavax/swing/KeyStroke;)Ljava/awt/MenuShortcut; 89 : setShortcut(Ljava/awt/MenuShortcut;)V <= >CodeactionPerformed(Ljava/awt/event/ActionEvent;)VdoClick(I)V CD E stateChanged"(Ljavax/swing/event/ChangeEvent;)V getModifiers()I IJjavax/swing/KeyStrokeL MKjava/awt/MenuShortcutO getKeyCode QJ MR(IZ)V T PU SourceFilejava/awt/event/ActionListenerX javax/swing/event/ChangeListenerZProgramMenuBar.java Y[@RF*+ *+******%)**.1*7M, **,;?AB@ *FGH@#**%)**.189@(+N~=PY+SVW\PK ш5v,,"acm/program/OldStyleMenuItem.class-S()V(Ljavax/swing/JMenuItem;)VgetText()Ljava/lang/String; javax/swing/AbstractButton (Ljava/lang/String;)V  java/awt/MenuItem  twinLjavax/swing/JMenuItem; acm/program/OldStyleMenuItem addActionListener"(Ljava/awt/event/ActionListener;)V  addChangeListener%(Ljavax/swing/event/ChangeListener;)V   isEnabled()Z java/awt/Component! "  setEnabled(Z)V $% &getAccelerator()Ljavax/swing/KeyStroke; ()javax/swing/JMenuItem+ ,*createShortcut0(Ljavax/swing/KeyStroke;)Ljava/awt/MenuShortcut; ./ 0 setShortcut(Ljava/awt/MenuShortcut;)V 23 4CodeactionPerformed(Ljava/awt/event/ActionEvent;)VdoClick(I)V 9: ; stateChanged"(Ljavax/swing/event/ChangeEvent;)V getModifiers()I ?@javax/swing/KeyStrokeB CAjava/awt/MenuShortcutE getKeyCode G@ CH(IZ)V J FK SourceFilejava/awt/event/ActionListenerN javax/swing/event/ChangeListenerPProgramMenuBar.java OQ6G;*+ *+******#'*-M, **,15786 *<=>6 **#'./6(+D~=FY+ILMRPK ш5ř%acm/program/ProgramMenuListener.class-(()V(Lacm/program/ProgramMenuBar;)V java/lang/Object menuBarLacm/program/ProgramMenuBar; acm/program/ProgramMenuListener CodeactionPerformed(Ljava/awt/event/ActionEvent;)V getProgram()Lacm/program/Program; acm/program/ProgramMenuBar getActionCommand()Ljava/lang/String; java/awt/event/ActionEvent  menuAction(Ljava/lang/String;)V acm/program/Program! "  SourceFilejava/awt/event/ActionListener%ProgramMenuBar.java &  **+*+#$'PK ш5\  acm/program/ProgramMenuBar.class-9()V javax/swing/JMenuBar acm/program/ProgramMenuListener(Lacm/program/ProgramMenuBar;)V  listener!Lacm/program/ProgramMenuListener; acm/program/ProgramMenuBar init  Code addFileMenu   addEditMenu  FilepatchModeInEffect(Ljava/lang/String;)Z  !javax/swing/JMenu#(Ljava/lang/String;)V % $& setMnemonic(C)V ()javax/swing/AbstractButton+ ,*addFileMenuItems(Ljavax/swing/JMenu;)V ./ 0add((Ljavax/swing/JMenu;)Ljavax/swing/JMenu; 23 4Edit6addEditMenuItems 8/ 9Save;createStandardMenuItem+(Ljava/lang/String;)Ljavax/swing/JMenuItem; => ?0(Ljavax/swing/JMenuItem;)Ljavax/swing/JMenuItem; 2A $BSave AsD addSeparator F $GPrintI Print ConsoleKScriptMQuitOCutQCopySPasteU Select AllWequals(Ljava/lang/Object;)Z YZjava/lang/String\ ][isMac()Z _`acm/util/Platformb cacreateStandardItem,(Ljava/lang/String;I)Ljavax/swing/JMenuItem; ef gExitiCut (x)kCopy (c)m Paste (v)o Save As...qPrint...s Script...uacm/util/ErrorExceptionwjava/lang/StringBufferyIllegal menu item: { z&append,(Ljava/lang/String;)Ljava/lang/StringBuffer; ~ ztoString()Ljava/lang/String; z x&setActionCommand % ,addActionListener"(Ljava/awt/event/ActionListener;)V , getProgram()Lacm/program/Program; activeProgramLacm/program/Program;  setConsole(Lacm/io/IOConsole;)V activeConsoleLacm/io/IOConsole;  getConsole()Lacm/io/IOConsole; setEnabled(Ljava/lang/String;Z)V getMenuCount()I getMenu(I)Ljavax/swing/JMenu; )(Ljavax/swing/JMenu;Ljava/lang/String;Z)V createOldStyleMenuBar()Ljava/awt/MenuBar;java/awt/MenuBar createOldStyleMenu$(Ljavax/swing/JMenu;)Ljava/awt/Menu;  (Ljava/awt/Menu;)Ljava/awt/Menu; 2  setProgram(Lacm/program/Program;)Vjavax/swing/JMenuItem & getKeyStroke(II)Ljavax/swing/KeyStroke; javax/swing/KeyStroke setAccelerator(Ljavax/swing/KeyStroke;)V (I)V ( ,java/lang/ExceptiongetClass()Ljava/lang/Class; java/lang/Object getName java/lang/Class  lastIndexOf(I)I ] substring(II)Ljava/lang/String; ]valueOf&(Ljava/lang/Object;)Ljava/lang/String; ]JMenuforName%(Ljava/lang/String;)Ljava/lang/Class; java.lang.StringgetConstructor3([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;  newInstance'([Ljava/lang/Object;)Ljava/lang/Object; java/lang/reflect/Constructor charAt(I)C ]acm.program.ProgramMenuBar2 MenuItemsaddViaCallback getMethod@(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; invoke9(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; java/lang/reflect/Method  java/awt/MenugetText  , & getItemCount  $getItem(I)Ljavax/swing/JMenuItem;  $createOldStyleMenuItem'(Ljava/lang/Object;)Ljava/awt/MenuItem;  ((Ljava/awt/MenuItem;)Ljava/awt/MenuItem; 2 java/awt/MenuItem- &javax/swing/JCheckBoxMenuItem $acm/program/OldStyleCheckBoxMenuItem""(Ljavax/swing/JCheckBoxMenuItem;)V $ #%acm/program/OldStyleMenuItem'(Ljavax/swing/JMenuItem;)V ) (*Unsupported menu item type,-(Ljavax/swing/JMenuItem;Ljava/lang/String;Z)V . /getActionCommand 1 ,2(Z)V 4 5 SourceFileProgramMenuBar.java! !** Y* * **2&*"$Y'L+F-*+1*+5W2&*7"$Y7'L+E-*+:*+5W./WK+*<@CW+*E@CW+H+*J@CW+*L@CW+*N@CW+H+*P@CW8/9-+*R@CW+*T@CW+*V@CW+*X@CW=>6*M+P^ d*PQhM*jhM+R^*dRlXhM+T^*dTnChM+V^*dVpVhM+<^*<ShM+E^*rhMm+J^*tPhMX+L^*LhMD+N^*vhM0+X^*XAhMxYzY|}+,+,*,**+*-!*>6**+6*YL*=>+**W+*+ef3'Y+Nd-ç--  *ζM,,.`NzY-߷}:YS:Y+S::$:+-YSYS: Y*SYzY}+S:  :   W*5WW=1Y+  M+>6,*+W,\P+Y+$ *+$+!#Y+!&+(Y++xY-=1+:66: *,0.,+3^+678PK ш5 acm/util/PK ш5nҟacm/util/SpeedBarListener.class-u()Vregister((Lacm/util/Animator;Ljava/lang/Object;)Vacm/util/SpeedBarListener  animatorLacm/util/Animator;  speedBarLjava/lang/Object;  getClass()Ljava/lang/Class; java/lang/Object addAdjustmentListener!java.awt.event.AdjustmentListenerlookForListenerQ(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/reflect/Method;  addChangeListener  javax.swing.event.ChangeListener"ChangeListener$java/lang/Exception&getValue(java/lang/Class* getMethod@(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; ,- +.Ljava/lang/reflect/Method; (0 1 getMinimum3 30 5 getMaximum7 70 9FakeChangeListener;forName%(Ljava/lang/String;)Ljava/lang/Class; => +?getConstructor3([Ljava/lang/Class;)Ljava/lang/reflect/Constructor; AB +C newInstance'([Ljava/lang/Object;)Ljava/lang/Object; EFjava/lang/reflect/ConstructorH IGinvoke9(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; KLjava/lang/reflect/MethodN OMacm/util/ErrorExceptionQIllegal speed bar objectS(Ljava/lang/String;)V U RVsetSpeed X YCodeadjustmentValueChanged#(Ljava/awt/event/AdjustmentEvent;)V stateChanged"(Ljavax/swing/event/ChangeEvent;)Vjava/lang/Integer`intValue()I bc ad(D)V Xfacm/util/Animatorh ig(Ljava/lang/Exception;)V k Rl  SourceFile!java/awt/event/AdjustmentListenerp javax/swing/event/ChangeListenerr Animator.java qs (03070 [ ûY M,* ,++N6-: -!#:-!%:6,-)+/2,-4+/6,-8+/:Y,S:,<@:+Y@S:D:  JS+PWWRYTW,ZE'\][*Z^_[*ZX[xd*6*Pae<*:*Pae=*2*Pae>ddo9* j LRY+mVY' [*+Y,@SN*+-/W'[*notPK ш5+;acm/util/Animator.class-()VINITIALIRUNNINGSTEPPINGCALLINGSTOPPINGSTOPPEDFINISHED TERMINATING java/lang/Thread  animatorState acm/util/Animator  currentDepth   callDepth ! " delayCount $ %? animatorSpeedD )* + initAnimator - .Code(Ljava/lang/ThreadGroup;)V.(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;)V 2 3(Ljava/lang/Runnable;)V 5 6rungetAnimatorState()Ipause(D)V terminate = > ;<acm/util/JTFToolsA B@ startActionstart(I)V EF G stopAction stepAction callAction buttonAction(Ljava/lang/String;)ZStartNequals(Ljava/lang/Object;)Z PQjava/lang/StringS TR D VStopX I ZStep\ J ^Call` K bsetSpeedgetSpeed()Dtrace gF h currentThread()Ljava/lang/Thread; jk lacm/util/ErrorExceptionn8trace() can be called only by the animator thread itselfp(Ljava/lang/String;)V r osdelay u v breakpoint x y=breakpoint() can be called only by the animator thread itself{ breakHook } ~suspendAnimator  ?@@?@i?sqrt(D)D java/lang/Math i@X\(@V delayHook  registerSpeedBar(Ljavax/swing/JSlider;)Vregister((Lacm/util/Animator;Ljava/lang/Object;)V acm/util/SpeedBarListener (Ljavax/swing/JScrollBar;)V(Ljava/lang/Object;)VrequestTerminationcheckForTerminationyield   resumeHookcontrollerHook getApplet()Ljava/applet/Applet; BregisterApplet)(Ljava/applet/Applet;Ljava/lang/Thread;)V B     E resumeAnimator  resumedZ java/lang/InterruptedExceptionwait java/lang/Object  notifyAll  java/lang/ThreadDeath Illegal call to terminate SLOW_DELAY CLIP_DELAY FAST_DELAY ConstantValue SourceFile Animator.java!     ***!$)*!00$*** *#*&*',*/102&*+4** *#*&*',*/501%*+7** *#*&*',*/202&*+,4** *#*&*',*/80 9:0*;<0**?'CD0*HI05)*$*J0*HK0** #*HLM0PD+OU *W5+YU *[%+]U *_+aU *cd<0*',ef0*,g0*igF0sm* oYqt* *X*181XXQ*w**z#*#* *w*z *?x0+m* oY|t***u0PD<I*,*,okcI*,*,gokcI*,kg 6;Nas<*& p<*&p<u*&p<c*&p<Q*&p<?*&p<-*&p<*&p<<**&`p& *(C0*+0*+0*+0*0 * *?0 }0 0 0 E0*H-0L++*EF0eY*T,TTTT@,********0C'*L+*ç*ʧW*Ù+ç+ÿ #0**L+**+ç+ÿ =0%m* YпoYҷtPK ш5$F!acm/util/CancelledException.class- ()V java/lang/RuntimeException Code SourceFileacm/util/CancelledException CancelledException.java! *  PK ш5|Gacm/util/ErrorException.class-2()V(Ljava/lang/String;)V java/lang/RuntimeException Code(Ljava/lang/Exception;)Vjava/lang/StringBuffer getClass()Ljava/lang/Class; java/lang/Object getName()Ljava/lang/String; java/lang/Class valueOf&(Ljava/lang/Object;)Ljava/lang/String; java/lang/String  :  append,(Ljava/lang/String;)Ljava/lang/StringBuffer; "# $ getMessage &java/lang/Throwable( )'toString + , SourceFileacm/util/ErrorException/ErrorException.java!0 *+  1%* Y+!%+*%-.1PK ш5<acm/util/JTFTools.class-()VfontFamilyTableInitializedZ acm/util/JTFTools fontFamilyTableLjava/util/Hashtable;  java/util/Hashtable    appletTable  mostRecentAppletLjava/applet/Applet;  java/lang/StringSerifTimes TimesRoman Times-Roman!SERIF_SUBSTITUTIONS[Ljava/lang/String; #$ % SansSerif' Helvetica)Arial+SANSSERIF_SUBSTITUTIONS -$ . Monospaced0Courier2Monaco4MONOSPACED_SUBSTITUTIONS 6$ 7CodecreateEmptyContainer()Ljava/awt/Container;acm/util/EmptyContainer< =getEnclosingFrame&(Ljava/awt/Component;)Ljava/awt/Frame; getParent A;java/awt/ComponentC DBjava/awt/FrameFgetStandardFont (Ljava/awt/Font;)Ljava/awt/Font;initFontFamilyTable J K getFamily()Ljava/lang/String; MN java/awt/FontP QOtrimFamilyName&(Ljava/lang/String;)Ljava/lang/String; ST Uget&(Ljava/lang/Object;)Ljava/lang/Object; WX Yequals(Ljava/lang/Object;)Z [\ ]!getFirstAvailableFontSubstitution'([Ljava/lang/String;)Ljava/lang/String; _` agetStyle()I cd QegetSize gd Qh(Ljava/lang/String;II)V j Qk decodeFont#(Ljava/lang/String;)Ljava/awt/Font;2(Ljava/lang/String;Ljava/awt/Font;)Ljava/awt/Font; mo pindexOf(I)I rs t substring(II)Ljava/lang/String; vw x(I)Ljava/lang/String; vz { toLowerCase }N ~*plainbolditalic bolditalicacm/util/ErrorExceptionIllegal font style(Ljava/lang/String;)V  java/lang/NumberFormatExceptionvalueOf'(Ljava/lang/String;)Ljava/lang/Integer; java/lang/Integer intValue d Illegal font sizeDefaultgetName N Q HI  decodeColor$(Ljava/lang/String;)Ljava/awt/Color;desktopequalsIgnoreCase(Ljava/lang/String;)Z Ljava/awt/SystemColor; java/awt/SystemColor  activeCaption activeCaptionText activeCaptionBorder inactiveCaption inactiveCaptionText inactiveCaptionBorder window  windowBorder  windowText menu menuText text textText  textHighlight textHighlightText textInactiveText control  controlText controlHighlight controlLtHighlight  controlShadow  controlDkShadow   scrollbar   info  infoText  blackLjava/awt/Color; java/awt/Color blue  cyan! ! #darkGray% % ' DARK_GRAY)gray+ + -green/ / 1 lightGray3 3 5 LIGHT_GRAY7magenta9 9 ;orange= = ?pinkA A CredE E GwhiteI I KyellowM M Odecode Q RIllegal color valueTregisterApplet(Ljava/applet/Applet;)V currentThread()Ljava/lang/Thread; XYjava/lang/Thread[ \Z)(Ljava/applet/Applet;Ljava/lang/Thread;)V V^ _put8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; ab c getApplet()Ljava/applet/Applet;java/applet/Appletgpause(D)Vjava/lang/InterruptedExceptionkA.round(D)J opjava/lang/Mathr sqsleep(JI)V uv \wterminateAppletThreadsjava/lang/Exceptionzjava.lang.Thread|forName%(Ljava/lang/String;)Ljava/lang/Class; ~java/lang/Class stop getMethod@(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;  elements()Ljava/util/Enumeration;   nextElement()Ljava/lang/Object; java/util/Enumeration isAlive()Z  \ isAnonymous(Ljava/lang/Thread;)Z  java/lang/Objectinvoke9(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; java/lang/reflect/Method hasMoreElements   \Thread- startsWith  charAt(I)C  isDigit(C)Z java/lang/Character length d java.awt.Toolkit getFontListgetDefaultToolkit()Ljava/awt/Toolkit; java/awt/Toolkit $serif sansserif monospacedjava/lang/StringBuffer&(Ljava/lang/Object;)Ljava/lang/String;   (C)C } append(C)Ljava/lang/StringBuffer;  toString N   SourceFile JTFTools.java!   #$-$6$9j^ YYSYSY SY"S&Y(SY*SY,S/Y1SY3SY5S8 :;9=Y> ?@9$*EK* *G*G HI9L* **RL +VZ*+^ +^ &bL++(^ /bL+1^ 8bL*+*QY+*f*il mn9*q mo92*M> 6*-u6*yM*`|K*-u6t*y:^+ +f>I^>:^>+^>^> Y*`|K*^+ +i6*6WY,^++M'L  ,VZM,MQY,l 9N:******öŰ*Ƕɰ*˶Ͱ*϶Ѱ*Ӷհ*׶ٰ*۶ݰ*߶********** *  **** *"$*&(**(*,.*02*46*86*:<*>@*BD*FH*JL*NP*SWYU).. VW9 *]`* V^9 +*dW ef9#]ZhK*K* ij9Q=]ZhM,M],dW&>&gmkt6xW 8;l yW9m]L}M,N:?\:+-%*Zh-WWhk{ 9=1*L+=++ J9K*L+MY > ,2V,2dW, Ʋ&bdW Ȳ/bdW ʲ8bdWW ~{ _`9/#< *2VZ*2* ST9J>L=.*> -Y+ѷնٶL*+9*ݱPK ш5*ڱacm/util/EmptyContainer.class-()Vupdate(Ljava/awt/Graphics;)Vpaint java/awt/Container Code    SourceFileacm/util/EmptyContainer JTFTools.java  *+  * PK ш5óYrracm/util/HexInputStream.class-,()V([Ljava/lang/String;)V java/io/InputStream hex[Ljava/lang/String; acm/util/HexInputStream  arrayIndexI   charIndex  Coderead()Ilength java/lang/String   charAt(I)C ! "digit(CI)I $%java/lang/Character' (& SourceFileMediaTools.java   **+**u*****2*Y`****2*YZ`#)x<**2*YZ`#)<*+PK ш5O}} } acm/util/SunAudioClip.class-()V(Ljava/io/InputStream;)V java/lang/Object  initializedZ acm/util/SunAudioClip initStaticData  java/lang/ExceptionaudioDataConstructorLjava/lang/reflect/Constructor;   newInstance'([Ljava/lang/Object;)Ljava/lang/Object; java/lang/reflect/Constructor getDataLjava/lang/reflect/Method;  invoke9(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; "#java/lang/reflect/Method% &$ audioDataLjava/lang/Object; () *audioPlayerClassLjava/lang/Class; ,- .player0getField-(Ljava/lang/String;)Ljava/lang/reflect/Field; 23java/lang/Class5 64get&(Ljava/lang/Object;)Ljava/lang/Object; 89java/lang/reflect/Field; <: 0) >java.io.InputStream@forName%(Ljava/lang/String;)Ljava/lang/Class; BC 6DgetClass()Ljava/lang/Class; FG HstartJ getMethod@(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; LM 6NaudioPlayerStart P QstopSaudioPlayerStop U VCodeplayaudioDataStreamConstructor Z [audioDataStream ]) ^loop$continuousAudioDataStreamConstructor a bcontinuousAudioDataStream d) esun.audio.AudioPlayergsun.audio.AudioStreamiaudioStreamClass k- lsun.audio.AudioDatanaudioDataClass p- qsun.audio.AudioDataStreamsaudioDataStreamClass u- v#sun.audio.ContinuousAudioDataStreamxcontinuousAudioDataStreamClass z- {getConstructor3([Ljava/lang/Class;)Ljava/lang/reflect/Constructor; }~ 6 SourceFilejava/applet/AudioClipMediaTools.java  ,- k- p- u- z-  Z a 0)()])d)PUXx* Y+SM,N*!-'+*/17=?6YAES:**?IKOR**?ITOWWsvYXD0Y*+SL*\+_+*_S*R*?+'WW+.`XD0Y*+SL*c+f+*fS*R*?+'WW+.SXT@L*f+*_S*W*?+'W*_+*fS*W*?+'WW;> XrhE/jEmoErtEwyE|6YAESKm*m6O!6YrSLw+\|+cWmpPK ш59>>acm/util/NullAudioClip.class-()VplayCodeloopstop java/lang/Object  SourceFileacm/util/NullAudioClip java/applet/AudioClipMediaTools.java     *  PK ш5N''acm/util/MediaTools.class-C()VcachingEnabledZ acm/util/MediaTools java/util/HashMap    imageTableLjava/util/HashMap;  audioClipTable    getClass()Ljava/lang/Class; java/lang/Object RESOURCE_CLASSLjava/lang/Class;  CodeDEFAULT_IMAGE_PATHLjava/lang/String;.:images#DEFAULT_AUDIO_PATH.:sounds&   loadImage$(Ljava/lang/String;)Ljava/awt/Image;6(Ljava/lang/String;Ljava/lang/String;)Ljava/awt/Image; )+ ,get&(Ljava/lang/Object;)Ljava/lang/Object; ./ 0java/awt/Image2.gif4endsWith(Ljava/lang/String;)Z 67java/lang/String9 :8java/lang/Exception<java/lang/StringBuffer>images.@(Ljava/lang/String;)V B ?Clength()I EF :G substring(II)Ljava/lang/String; IJ :Kappend,(Ljava/lang/String;)Ljava/lang/StringBuffer; MN ?OtoString()Ljava/lang/String; QR ?SforName%(Ljava/lang/String;)Ljava/lang/Class; UVjava/lang/ClassX YW newInstance()Ljava/lang/Object; [\ Y]getImage_ getMethod@(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; ab Ycinvoke9(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; efjava/lang/reflect/Methodh iggetDefaultToolkit()Ljava/awt/Toolkit; kljava/awt/Toolkitn omjava/util/StringTokenizerq:s'(Ljava/lang/String;Ljava/lang/String;)V u rv nextToken xR ry.{equals(Ljava/lang/Object;)Z }~ :valueOf&(Ljava/lang/Object;)Ljava/lang/String; :/ getResource"(Ljava/lang/String;)Ljava/net/URL; YopenConnection()Ljava/net/URLConnection;  java/net/URL getContentLength Fjava/net/URLConnection  getApplet()Ljava/applet/Applet; acm/util/JTFTools  getCodeBase()Ljava/net/URL; java/applet/Applet java/net/MalformedURLException#(Ljava/net/URL;Ljava/lang/String;)V java/lang/SecurityException java/io/File CcanRead()Z _* ojava/io/IOException getContent \ java/awt/image/ImageProducer createImage0(Ljava/awt/image/ImageProducer;)Ljava/awt/Image; o (Ljava/net/URL;)Ljava/awt/Image; _ o hasMoreTokens racm/util/ErrorExceptionCannot find an image named  C"(Ljava/awt/Image;)Ljava/awt/Image; ) put8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; java/awt/MediaTrackercreateEmptyContainer()Ljava/awt/Container; (Ljava/awt/Component;)V addImage(Ljava/awt/Image;I)V java/lang/InterruptedException waitForID(I)V !Image loading process interrupted defineImage%(Ljava/lang/String;Ljava/awt/Image;)V flushImageremove / ([III)Ljava/awt/Image; java/awt/image/MemoryImageSource (II[III)V '(Ljava/io/InputStream;)Ljava/awt/Image;java/io/ByteArrayOutputStream read Fjava/io/InputStream write  toByteArray()[B ([B)Ljava/awt/Image;  o Exception: ,(Ljava/lang/Object;)Ljava/lang/StringBuffer; M ?%([Ljava/lang/String;)Ljava/awt/Image;acm/util/HexInputStream ([Ljava/lang/String;)V     loadAudioClip+(Ljava/lang/String;)Ljava/applet/AudioClip;=(Ljava/lang/String;Ljava/lang/String;)Ljava/applet/AudioClip;  java/applet/AudioClip.ausounds. getAudioClipjava/io/FileInputStream(Ljava/io/File;)V !  "createAudioClip.(Ljava/io/InputStream;)Ljava/applet/AudioClip; $% & Cannot find an audio clip named (defineAudioClip,(Ljava/lang/String;Ljava/applet/AudioClip;)VflushAudioClipacm/util/SunAudioClip-(Ljava/io/InputStream;)V / .0acm/util/NullAudioClip2 3 ,([Ljava/lang/String;)Ljava/applet/AudioClip;getHexInputStream*([Ljava/lang/String;)Ljava/io/InputStream;setCachingEnabled(Z)VisCachingEnabledgetImageObserver()Ljava/awt/Component;beep = o> ConstantValue SourceFileMediaTools.java!!"@$%"@'    2& Y  Y Y  *( )* *$- )+  *13M,,*5;F?YAD**HdLPTZN-^:-`Yd:j3WpNrY+tw::z:|?YDPT::6?YDP*PT::  : 6W>:4:  (Y ?YD*PT:WBY?YD*PTe-?YD*PTMJWF: 2:  - M -MW, Ě,Y?YȷD*PTɿ,W *,W,YY==%]`d ) :&YַL+*+WYɿ*   *+W B  *W  pY*  XDYL*= +*=p+LY?YD+ Tɿ**=     Y*  *'    ײ*1M,,*;H?YD**HdLPTZN-^:-Yd:jWrY+twN3-z:|?YDPT::6?YDP*PT::  : 6W>:4:(Y?YD*PT:W;Y?YD*PT:[ Y#'MKWG: 3: M'MW, -Ě,Y?Y)D*PTɿ *,W,\\=="SV=Z *+  *+W ,B  *W $% &.Y*1W3Y4 = $5   Y*' 67   Y* 89  :  ;< ְ = p?ABPK ш5Wͯ` ` acm/util/OptionTable.class-()V(Ljava/lang/String;)V((Ljava/lang/String;[Ljava/lang/String;)V acm/util/OptionTable Code java/util/HashMap java/io/IOExceptioncreateTokenizer-(Ljava/lang/String;)Ljava/io/StreamTokenizer;   nextToken()I java/io/StreamTokenizer acm/util/ErrorExceptionjava/lang/StringBufferIllegal option string:   !append,(Ljava/lang/String;)Ljava/lang/StringBuffer; #$ %toString()Ljava/lang/String; '( ) !svalLjava/lang/String; ,- . keyExists((Ljava/lang/String;[Ljava/lang/String;)Z 01 2Unrecognized option: 4put8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 67 8:(Ljava/util/Map;)VkeySet()Ljava/util/Set; => java/util/Map@ A?java/util/IteratorCnext()Ljava/lang/Object; EF DGjava/lang/StringIget&(Ljava/lang/Object;)Ljava/lang/Object; KL AMhasNext()Z OP DQ isSpecified(Ljava/lang/String;)Z containsKey(Ljava/lang/Object;)Z UV W getOption&(Ljava/lang/String;)Ljava/lang/String;8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; Y[ \ Mequals _V J` getIntOption(Ljava/lang/String;)I(Ljava/lang/String;I)I bd edecode'(Ljava/lang/String;)Ljava/lang/Integer; ghjava/lang/Integerj kiintValue m kngetDoubleOption(Ljava/lang/String;)D(Ljava/lang/String;D)D pr svalueOf&(Ljava/lang/String;)Ljava/lang/Double; uvjava/lang/Doublex yw doubleValue()D {| y}java/io/StringReader !(Ljava/io/Reader;)V   resetSyntax   wordChars(II)V  quoteChar(I)V whitespaceChars  SourceFileOptionTable.java!  *+  **+N-6YY "+&*+-/:,&*,3YY5"&*+-6=J-6)""'YY "+&*+*-/9W-6 *;9WTWYY "+&*+< E9*+BDM!,HJN+-NJ:*-9W,RܱST *+XYZ *+]Y[ (*+^JN- -;a,-bc *+fbd **+]N- -;a-lopq *+tpr ."*+]: ;a(z~ NBYY+M,,!<,>~,",',  ,  ,01 (>+,2a,PK ш5Sacm/util/Platform.class-()VplatformI acm/util/Platform CodeUNKNOWNMACUNIXWINDOWS getPlatform()Ios.name getProperty8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; java/lang/System  toLowerCase()Ljava/lang/String; java/lang/String! " mac$ startsWith(Ljava/lang/String;)Z &' "(windows* microsoft,ms.unix0linux2isMac()Z  6 isWindowsisUnixsetFileTypeAndCreator9(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V 45 <java/lang/Exception> java/io/File@(Ljava/lang/String;)V BC AD5(Ljava/io/File;Ljava/lang/String;Ljava/lang/String;)V :F Gcom.apple.mrj.MRJOSTypeIforName%(Ljava/lang/String;)Ljava/lang/Class; KLjava/lang/ClassN OMcom.apple.mrj.MRJFileUtilsQjava.lang.StringSgetConstructor3([Ljava/lang/Class;)Ljava/lang/reflect/Constructor; UV OW java.io.FileY: getMethod@(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; \] O^java/lang/Object`java/lang/StringBufferbvalueOf&(Ljava/lang/Object;)Ljava/lang/String; de "f cD iappend,(Ljava/lang/String;)Ljava/lang/StringBuffer; kl cmtoString o cp substring(II)Ljava/lang/String; rs "t newInstance'([Ljava/lang/Object;)Ljava/lang/Object; vwjava/lang/reflect/Constructory zxinvoke9(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; |}java/lang/reflect/Method ~compareVersion(Ljava/lang/String;)I java.version&(Ljava/lang/String;)Ljava/lang/String;  '(Ljava/lang/String;Ljava/lang/String;)I java/util/StringTokenizer.'(Ljava/lang/String;Ljava/lang/String;)V B  nextToken  parseInt java/lang/Integer  hasMoreTokens 5 isSwingAvailable swingCheckedZ  1.2 javax.swing.JComponentisSunAudioAvailablesunAudioChecked sun.audio.AudioPlayer isJMFAvailable jmfChecked javax.media.Player areCollectionsAvailablecollectionsChecked java.util.ArrayList  areStandardFontFamiliesAvailable fontsChecked java.awt.Toolkit getFontListgetDefaultToolkit()Ljava/awt/Toolkit; java/awt/Toolkit [Ljava/lang/String;Serifequals(Ljava/lang/Object;)Z " SansSerif Monospaced  B a ConstantValue SourceFile Platform.java!a         v#K*%) Y*+) Y*-) Y*/) Y*1) Y*3) YY 45  7 85  7 95  7 :; -=AY*E+,HW? :F =JPNRP:OYTPS:-X:OYZPSY-SY-S:[_:aYcY+ghjnquS:  {: aYcY,ghjnquS:  {: aY*SY SY S:  WW?   *  maY*MY+N),6-6, -,- 5 E1*PW&)? 5 =)"P W ? 5 =)"P W ? 5 =)"P§ W§¬ ? 5 ƚxȸPK*O_L+aM>6-,2Զؚ,2ڶؚ,2ؙܶ,ާ Wާެ ps?B *PK ш5eacm/util/RandomGenerator.class-.()V java/util/Random CodenextInt(I)I(II)I acm/util/RandomGenerator   nextBoolean()Z?(D)Z   nextDouble()D  (DD)D nextColor()Ljava/awt/Color;java/awt/Color  (III)V " # getInstance()Lacm/util/RandomGenerator;standardInstanceLacm/util/RandomGenerator; '( )  SourceFileRandomGenerator.java! '(*  *d* d`*k` ')'g*kc*')Y*!*!*!$ %& * Y+**,-PK ш5acm/util/SwingTimer.class-()V#(ILjava/awt/event/ActionListener;)V javax/swing/Timer Code SourceFileacm/util/SwingTimer SwingTimer.java!  *,  PK Ј5 acm/graphics/PK Ј5QP/acm/graphics/G3DRect.classPK Ј5kY acm/graphics/ArcRenderer.classPK Ј5*2acm/graphics/GArc.classPK Ј5X66 !acm/graphics/GMouseEvent.classPK ш5QBLL"&acm/graphics/GCanvasListener.classPK ш5h,acm/graphics/GCanvas.classPK ш5Ji==*acm/graphics/GTurtle.classPK ш5qacm/gui/PK ш53 acm/gui/DoubleField.classPK ш58acm/gui/HPanel.classPK ш5X> > acm/gui/IntField.classPK ш5w@acm/gui/TableConstraints.classPK ш5R))*acm/gui/TableLayout.classPK ш5~2 Tacm/gui/TablePanel.classPK ш5LYacm/gui/VPanel.classPK ш5[acm/io/PK ш5}[acm/io/ConsoleReader.classPK ш5T--_acm/io/SystemConsole.classPK ш5n<)aacm/io/SystemConsoleModel.classPK ш5ܛ36!6!iacm/io/ConsoleModel.classPK ш5??Uacm/io/CharacterQueue.classPK ш5.E""͏acm/io/ConsoleWriter.classPK ш5%5!5!'acm/io/IOConsole.classPK ш5~7bbacm/io/AWTIconCanvas.classPK ш5]<*acm/io/AWTDialog.classPK ш5l>V.acm/io/AWTDialogModel.classPK ш5}:acm/io/DialogModel.classPK ш5acm/io/AWTMessageCanvas.classPK ш5(acm/io/AWTLineInputDialog.classPK ш5C"-acm/io/AWTBooleanInputDialog.classPK ш5 acm/io/SwingDialogModel.classPK ш5ٲ`acm/io/AWTMessageDialog.classPK ш5_ғ55 acm/io/IODialog.classPK ш5 dTl88acm/io/IOModel.classPK ш5 S#acm/program/PK ш5/S// }#acm/program/ConsoleProgram.classPK ш5x!&acm/program/DialogProgram.classPK ш5- !(acm/program/GraphicsProgram.classPK ш5 z, 6acm/program/GObjectProgram.classPK ш5^"<acm/program/GProgramListener.classPK ш5(L&JJFacm/program/Program.classPK ш5Zֺ\\ *acm/program/DOSCommandLine.classPK ш5VC'>acm/program/DefaultActionListener.classPK ш57w(Facm/program/ProgramStartupListener.classPK ш5yMM'Iacm/program/ProgramWindowListener.classPK ш5/ 'Lacm/program/ProgramRootPaneLayout.classPK ш5npww#Qacm/program/ProgramAppletStub.classPK ш5==`acm/program/ProgramFrame.classPK ш58* bacm/program/OldStyleCheckBoxMenuItem.classPK ш5v,,"hacm/program/OldStyleMenuItem.classPK ш5ř%macm/program/ProgramMenuListener.classPK ш5\  apacm/program/ProgramMenuBar.classPK ш5 acm/util/PK ш5nҟ݅acm/util/SpeedBarListener.classPK ш5+;acm/util/Animator.classPK ш5$F!acm/util/CancelledException.classPK ш5|GҠacm/util/ErrorException.classPK ш5<Σacm/util/JTFTools.classPK ш5*ڱϾacm/util/EmptyContainer.classPK ш5óYrracm/util/HexInputStream.classPK ш5O}} } acm/util/SunAudioClip.classPK ш59>>}acm/util/NullAudioClip.classPK ш5N''acm/util/MediaTools.classPK ш5Wͯ` ` Sacm/util/OptionTable.classPK ш5Sacm/util/Platform.classPK ш5eacm/util/RandomGenerator.classPK ш5Bacm/util/SwingTimer.classPK``Z