PK [\4 META-INF/PK Z\4dLjjMETA-INF/MANIFEST.MFManifest-Version: 1.0 Ant-Version: Apache Ant 1.6.5 Created-By: 1.6.0-ea-b57 (Sun Microsystems Inc.) PK BX4com/PK BX4com/sun/PK BX4com/sun/animation/PK BX4com/sun/animation/timing/PK |X4O}@$com/sun/animation/timing/Cycle.class1; %&' % () *+ ,-. / 0 123durationI resolution(II)VCodeLineNumberTableLocalVariableTable errorMessageLjava/lang/String;this Lcom/sun/animation/timing/Cycle; getResolution()I setResolution(I)V getDuration setDuration SourceFile Cycle.java 4Errors: java/lang/StringBuilder 56 duration 57 cannot be negative 89 resolution "java/lang/IllegalArgumentException :  com/sun/animation/timing/Cyclejava/lang/Object()Vappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;(I)Ljava/lang/StringBuilder;toString()Ljava/lang/String;(Ljava/lang/String;)V!o*VN$ Y- N Y-  N Y- * *. <>ABC:F>G[JdLiMnN*Pooo/*Q  >* UV!/* Y " >*  ]^#$PK |X42pzQ\\3com/sun/animation/timing/Envelope$EndBehavior.class1D - ./ 0 123 4 57 8 9 :;HOLD EndBehavior InnerClasses/Lcom/sun/animation/timing/Envelope$EndBehavior;RESET$VALUES0[Lcom/sun/animation/timing/Envelope$EndBehavior;values2()[Lcom/sun/animation/timing/Envelope$EndBehavior;CodeLineNumberTablevalueOfC(Ljava/lang/String;)Lcom/sun/animation/timing/Envelope$EndBehavior;LocalVariableTablearr$len$Ii$nameLjava/lang/String;(Ljava/lang/String;I)Vthis Signature()VALjava/lang/Enum; SourceFile Envelope.java  <= ">? @A"java/lang/IllegalArgumentException $B $%C-com/sun/animation/timing/Envelope$EndBehavior $%  java/lang/Enumclone()Ljava/lang/Object;()Ljava/lang/String;java/lang/Stringequals(Ljava/lang/Object;)Z(Ljava/lang/String;)V!com/sun/animation/timing/Envelope@1 @@" 0 y1L+=>+2:*Y*0*$!  ! 1"#$%1*+0 &'()(N. Y  Y   Y SYS1 20'*+,  6@PK |X4(vFvv6com/sun/animation/timing/Envelope$RepeatBehavior.class1D - ./ 0 123 4 57 8 9 :;FORWARDRepeatBehavior InnerClasses2Lcom/sun/animation/timing/Envelope$RepeatBehavior;REVERSE$VALUES3[Lcom/sun/animation/timing/Envelope$RepeatBehavior;values5()[Lcom/sun/animation/timing/Envelope$RepeatBehavior;CodeLineNumberTablevalueOfF(Ljava/lang/String;)Lcom/sun/animation/timing/Envelope$RepeatBehavior;LocalVariableTablearr$len$Ii$nameLjava/lang/String;(Ljava/lang/String;I)Vthis Signature()VDLjava/lang/Enum; SourceFile Envelope.java  <= ">? @A"java/lang/IllegalArgumentException $B $%C0com/sun/animation/timing/Envelope$RepeatBehavior $%  java/lang/Enumclone()Ljava/lang/Object;()Ljava/lang/String;java/lang/Stringequals(Ljava/lang/Object;)Z(Ljava/lang/String;)V!com/sun/animation/timing/Envelope@1 @@" < y1L+=>+2:*Y*<*$!  ! 1"#$%1*+< &'()(N. Y  Y   Y SYS= ><'*+,  6@PK |X4'com/sun/animation/timing/Envelope.class1V 89: 8 ;< => ?@A BCD E F G H IJKLRepeatBehavior InnerClassesM EndBehavior repeatCountDbeginIrepeatBehavior2Lcom/sun/animation/timing/Envelope$RepeatBehavior; endBehavior/Lcom/sun/animation/timing/Envelope$EndBehavior;f(DILcom/sun/animation/timing/Envelope$RepeatBehavior;Lcom/sun/animation/timing/Envelope$EndBehavior;)VCodeLineNumberTableLocalVariableTable errorMessageLjava/lang/String;this#Lcom/sun/animation/timing/Envelope;getRepeatCount()DgetBegin()IgetRepeatBehavior4()Lcom/sun/animation/timing/Envelope$RepeatBehavior;getEndBehavior1()Lcom/sun/animation/timing/Envelope$EndBehavior; SourceFile Envelope.java %NErrors: java/lang/StringBuilder OPbegin OQ cannot be negative RSendBehavior cannot be null 3cannot have zero or negative value of repeatCount ( OT) "java/lang/IllegalArgumentException %U   !" #$!com/sun/animation/timing/Envelopejava/lang/Object0com/sun/animation/timing/Envelope$RepeatBehavior-com/sun/animation/timing/Envelope$EndBehavior()Vappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;(I)Ljava/lang/StringBuilder;toString()Ljava/lang/String;(D)Ljava/lang/StringBuilder;(Ljava/lang/String;)V! !"#$%&'?*''|:"Y   :Y  :'('"Y ' :Y*'***(>_aef#gBjGk]mkortuvwx)>u*+,- !"#$./'/*({) ,-01'/*() ,-23'/*() ,-45'/*() ,-67@@PK |X4:0:com/sun/animation/timing/KeyFrames$InterpolationType.class1H 0 12 3 456 7 8: ; < = >?LINEARInterpolationType InnerClasses6Lcom/sun/animation/timing/KeyFrames$InterpolationType;DISCRETE NONLINEAR$VALUES7[Lcom/sun/animation/timing/KeyFrames$InterpolationType;values9()[Lcom/sun/animation/timing/KeyFrames$InterpolationType;CodeLineNumberTablevalueOfJ(Ljava/lang/String;)Lcom/sun/animation/timing/KeyFrames$InterpolationType;LocalVariableTablearr$len$Ii$nameLjava/lang/String;(Ljava/lang/String;I)Vthis Signature()VHLjava/lang/Enum; SourceFileKeyFrames.java  @A %BC DE"java/lang/IllegalArgumentException 'F '(G4com/sun/animation/timing/KeyFrames$InterpolationType '(   java/lang/Enumclone()Ljava/lang/Object;()Ljava/lang/String;java/lang/Stringequals(Ljava/lang/Object;)Z(Ljava/lang/String;)V"com/sun/animation/timing/KeyFrames@1 @@@" 2 y1L+=>+2:*Y*2 *$!!"# $#1%&'(1*+2 )*+,+eA Y  Y   Y  Y SYSYS6 ;@'2*-./  9@PK |X4dfmm(com/sun/animation/timing/KeyFrames.class1x J K L M NOP Q R S T UVW X OY ZO[ N\ ] ^ _ N` Za NbcdeInterpolationType InnerClasses keyValues$Lcom/sun/animation/timing/KeyValues;keyTimes#Lcom/sun/animation/timing/KeyTimes; keySplines%Lcom/sun/animation/timing/KeySplines;interpolationType6Lcom/sun/animation/timing/KeyFrames$InterpolationType;'(Lcom/sun/animation/timing/KeyValues;)VCodeLineNumberTableLocalVariableTablethis$Lcom/sun/animation/timing/KeyFrames;](Lcom/sun/animation/timing/KeyValues;Lcom/sun/animation/timing/KeyFrames$InterpolationType;)V(Lcom/sun/animation/timing/KeyValues;Lcom/sun/animation/timing/KeyTimes;Lcom/sun/animation/timing/KeyFrames$InterpolationType;)V(Lcom/sun/animation/timing/KeyValues;Lcom/sun/animation/timing/KeyTimes;Lcom/sun/animation/timing/KeySplines;Lcom/sun/animation/timing/KeyFrames$InterpolationType;)V(Lcom/sun/animation/timing/KeyValues;Lcom/sun/animation/timing/KeySplines;Lcom/sun/animation/timing/KeyFrames$InterpolationType;)VL(Lcom/sun/animation/timing/KeyValues;Lcom/sun/animation/timing/KeySplines;)VinitiI numKeyTimes keyTimesArray[FtimeValFgetType()Ljava/lang/Class;setValue0(Ljava/lang/Object;Ljava/lang/reflect/Method;F)Vt1tobjectLjava/lang/Object;methodLjava/lang/reflect/Method;fractionintervalt0 SourceFileKeyFrames.java 'f g& 30 h&i jk!com/sun/animation/timing/KeyTimes 'l !"  #$ %&"java/lang/IllegalArgumentException+NONLINEAR interpolation requires KeySplines 'm,keyValues and keyTimes must be of equal sizenLkeySplines must have a size equal to the one less than the size of keyValues ;< op qr s& =t uv =w"com/sun/animation/timing/KeyFramesjava/lang/Object4com/sun/animation/timing/KeyFrames$InterpolationType()VLINEAR NONLINEAR"com/sun/animation/timing/KeyValuesgetSize()I([F)V(Ljava/lang/String;)V#com/sun/animation/timing/KeySplines getInterval(F)IgetTime(I)FDISCRETE0(Ljava/lang/Object;Ljava/lang/reflect/Method;I)V interpolate(IF)F2(Ljava/lang/Object;Ljava/lang/reflect/Method;IIF)V! !"#$%& '()K**+*MNO+,- '.)S **+,*WX Y+  ,-   %&'/)] **+,-*no p+* ,-   !" %&'0)h**+,-* +4,- !"#$%&'1)] **+,-* +* ,-   #$ %&'2)U**+,*+ ,- #$30) ,U+6: 8Q6d dnb8Qd Q*Y*,*+ *- * - Y +* Y--*d Y*^ %18>FSV[`ekw+\ "45 I65C78@9:,- !"#$%&;<)2* *+ ,-=>).*%6*8* ,% * +,Y* +,*dD*`8%ffn8* * 8* +,`*: %03EHUakx+RU4?:a(@:,-ABCDE: F5uG:HI @PK \4"")com/sun/animation/timing/KeySplines.class18 &' & ( ) * +, -./splinesLjava/util/ArrayList;%([Lcom/sun/animation/timing/Spline;)VCodeLineNumberTableLocalVariableTablepoints!Lcom/sun/animation/timing/Spline;arr$"[Lcom/sun/animation/timing/Spline;len$Ii$this%Lcom/sun/animation/timing/KeySplines;getSize()I interpolate(IF)FindextFspline SourceFileKeySplines.java 0java/util/ArrayList 12 3 45com/sun/animation/timing/Spline 67#com/sun/animation/timing/KeySplinesjava/lang/Object()Vadd(Ljava/lang/Object;)Zsizeget(I)Ljava/lang/Object;getInterpolatedValue(F)F!  4**Y+M,>6,2:*WD6E#F-E3H># "44 2*K ^*N-$  U V* !" #$%PK |X4ĕ]HH'com/sun/animation/timing/KeyTimes.class1N 34 3 567 89: ; < = >? @ABtimesLjava/util/ArrayList; Signature(Ljava/util/ArrayList;([F)VCodeLineNumberTableLocalVariableTabletimeFarr$[Flen$Ii$this#Lcom/sun/animation/timing/KeyTimes;prevTimegetTimes()Ljava/util/ArrayList;getSize()I getInterval(F)Iifraction prevIndexgetTime(I)Findex SourceFile KeyTimes.java Cjava/util/ArrayList "java/lang/IllegalArgumentExceptionFirst time value must be zero DLast time value must be one'Time values must be in increasing order EF GH I( JKjava/lang/Float LM!com/sun/animation/timing/KeyTimesjava/lang/Object()V(Ljava/lang/String;)VvalueOf(F)Ljava/lang/Float;add(Ljava/lang/Object;)Zsizeget(I)Ljava/lang/Object; floatValue()F!v**Y+0 Y++d0 Y E+N-660-08$ Y * WEϱ:"#$!',(6+8,N-U._1l2o,u4HN!:;>7 A4! v"#v8>$%&/*7 "#'(2* ; "#)*2=>* $* 8#="BCDE&H(J*C0L4 ,+ 2"#2,0- ./C* P"#0 12PK |X4TQ(com/sun/animation/timing/KeyValues.class1R 9: 9 ; <= >? @A BC DE FG HIJvaluesLjava/util/ArrayList; SignatureLjava/util/ArrayList;()VCodeLineNumberTableLocalVariableTablethis$Lcom/sun/animation/timing/KeyValues;LocalVariableTypeTable)Lcom/sun/animation/timing/KeyValues;getSize()IcreateKeyValues(([I)Lcom/sun/animation/timing/KeyValues;[I(([F)Lcom/sun/animation/timing/KeyValues;[F7([Ljava/awt/Point;)Lcom/sun/animation/timing/KeyValues;[Ljava/awt/Point;;([Ljava/awt/Dimension;)Lcom/sun/animation/timing/KeyValues;[Ljava/awt/Dimension;;([Ljava/awt/Rectangle;)Lcom/sun/animation/timing/KeyValues;[Ljava/awt/Rectangle;7([Ljava/awt/Color;)Lcom/sun/animation/timing/KeyValues;[Ljava/awt/Color;getType()Ljava/lang/Class;()Ljava/lang/Class<*>;setValue2(Ljava/lang/Object;Ljava/lang/reflect/Method;IIF)V0(Ljava/lang/Object;Ljava/lang/reflect/Method;I)V(Ljava/lang/Object; SourceFileKeyValues.java java/util/ArrayList  K"%com/sun/animation/timing/KeyValuesInt L'com/sun/animation/timing/KeyValuesFloat M'com/sun/animation/timing/KeyValuesPoint N+com/sun/animation/timing/KeyValuesDimension O+com/sun/animation/timing/KeyValuesRectangle P'com/sun/animation/timing/KeyValuesColor Q"com/sun/animation/timing/KeyValuesjava/lang/Objectsize([I)V([F)V([Ljava/awt/Point;)V([Ljava/awt/Dimension;)V([Ljava/awt/Rectangle;)V([Ljava/awt/Color;)V! T**YA;C   !"D*I   #$3 Y*T  %#&3 Y* [  '#(3 Y* b  )#*3 Y* i  +#,3 Y*p  -#.3 Y*w  /0123435678PK |X4fF -com/sun/animation/timing/KeyValuesColor.class1y D E FGH FI J? K L M NO PQR STU DV W X Y Z[\]([Ljava/awt/Color;)VCodeLineNumberTableLocalVariableTablevalueLjava/awt/Color;arr$[Ljava/awt/Color;len$Ii$this)Lcom/sun/animation/timing/KeyValuesColor;valuesgetType()Ljava/lang/Class; Signature()Ljava/lang/Class<*>;setValue2(Ljava/lang/Object;Ljava/lang/reflect/Method;IIF)Vv0v1redgreenbluealphaeLjava/lang/Exception;objectLjava/lang/Object;methodLjava/lang/reflect/Method;i0i1fractionF0(Ljava/lang/Object;Ljava/lang/reflect/Method;I)Vindex6Lcom/sun/animation/timing/KeyValues; SourceFileKeyValuesColor.java ^ (_` abjava/awt/Color cd ef gf hf if jjava/lang/Objectk lmjava/lang/Exceptionn opjava/lang/StringBuilder,Problem invoking method in KVColor.setValue: qr qs tuv wx'com/sun/animation/timing/KeyValuesColor"com/sun/animation/timing/KeyValues()VLjava/util/ArrayList;java/util/ArrayListadd(Ljava/lang/Object;)Zget(I)Ljava/lang/Object;getRed()IgetGreengetBluegetAlpha(IIII)Vjava/lang/reflect/Methodinvoke9(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;java/lang/SystemoutLjava/io/PrintStream;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;-(Ljava/lang/Object;)Ljava/lang/StringBuilder;toString()Ljava/lang/String;java/io/PrintStreamprintln(Ljava/lang/String;)V )*+M,>6,2:*W-./".(1>  "!" #$ %$)&')(")*.7 &'+,-. *:*:*:djbc6    djbc6    djbc6    djbc6 Y    :,+ YSW:Y>BCDE#F1GOImKMORVSTW #/ 10 Ok1$ mM2$ /3$ 4$ 56&'789:;$<$=>/ -?5,+ Y*SW:Y_c`a4d4565&'57859:5@$+ABCPK |X41com/sun/animation/timing/KeyValuesDimension.class1k = > ?@A ?B C? DE FGH IJK =L M N O PQRS([Ljava/awt/Dimension;)VCodeLineNumberTableLocalVariableTablevalueLjava/awt/Dimension;arr$[Ljava/awt/Dimension;len$Ii$this-Lcom/sun/animation/timing/KeyValuesDimension;valuesgetType()Ljava/lang/Class; Signature()Ljava/lang/Class<*>;setValue2(Ljava/lang/Object;Ljava/lang/reflect/Method;IIF)Vv0v1eLjava/lang/Exception;objectLjava/lang/Object;methodLjava/lang/reflect/Method;i0i1fractionF0(Ljava/lang/Object;Ljava/lang/reflect/Method;I)Vindex:Lcom/sun/animation/timing/KeyValues; SourceFileKeyValuesDimension.java T %UV WXjava/awt/Dimension YZ [! \!java/lang/Object] ^_java/lang/Exception` abjava/lang/StringBuilder,Problem invoking method in KVFloat.setValue: cd ce fgh ij+com/sun/animation/timing/KeyValuesDimension"com/sun/animation/timing/KeyValues()VLjava/util/ArrayList;java/util/ArrayListadd(Ljava/lang/Object;)Zget(I)Ljava/lang/Object;widthheightjava/lang/reflect/Methodinvoke9(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;java/lang/SystemoutLjava/io/PrintStream;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;-(Ljava/lang/Object;)Ljava/lang/StringBuilder;toString()Ljava/lang/String;java/io/PrintStreamprintln(Ljava/lang/String;)V )*+M,>6,2:*W-./".(1> "  ! "!)#$)%&'.7 #$()*+O *:\*:*:Ydjc`Y   djc` ,+ YS W: Yl{~ . A BC D.EMFlI{L~JKMf L,.>-./#$01234!5!67 *85,+ Y*S W: Y UXVW4Y4./5#$50152359!(:;-com/sun/animation/timing/KeyValuesFloat.class1n ; < = >? @ >AB CD EFG HIJ ;K L M N OPQR([F)VCodeLineNumberTableLocalVariableTablevalueFarr$[Flen$Ii$this)Lcom/sun/animation/timing/KeyValuesFloat;valuesgetType()Ljava/lang/Class; Signature()Ljava/lang/Class<*>;setValue2(Ljava/lang/Object;Ljava/lang/reflect/Method;IIF)Vv0v1eLjava/lang/Exception;objectLjava/lang/Object;methodLjava/lang/reflect/Method;i0i1fraction0(Ljava/lang/Object;Ljava/lang/reflect/Method;I)Vindex7Lcom/sun/animation/timing/KeyValues; SourceFileKeyValuesFloat.java S $T UVW XY Z[ \]java/lang/Float ^_java/lang/Object` abjava/lang/Exceptionc dejava/lang/StringBuilder,Problem invoking method in KVFloat.setValue: fg fh ijk lm'com/sun/animation/timing/KeyValuesFloat"com/sun/animation/timing/KeyValues()VLjava/util/ArrayList;valueOf(F)Ljava/lang/Float;java/util/ArrayListadd(Ljava/lang/Object;)ZTYPELjava/lang/Class;get(I)Ljava/lang/Object; floatValue()Fjava/lang/reflect/Methodinvoke9(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;java/lang/SystemoutLjava/io/PrintStream;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;-(Ljava/lang/Object;)Ljava/lang/StringBuilder;toString()Ljava/lang/String;java/io/PrintStreamprintln(Ljava/lang/String;)V ,*+M,>6,08*W+,-%,+/> % "  ! ,"#,$%&.5 "#'()*7 y*81*8*8fjb8,+ YS W: YGY\ . @BCD)E:FGIYL\J^KxMp )+: ,^-.y"#y/0y12y3 y4 y5G2)65,+ Y*S W: Y UXVW4Y4-.5"#5/051257 '89:PK |X40x+com/sun/animation/timing/KeyValuesInt.class1o < = > ?@ A ?BC D?E FGH IJK <L M N O PQRS([I)VCodeLineNumberTableLocalVariableTablevalueIarr$[Ilen$i$this'Lcom/sun/animation/timing/KeyValuesInt;valuesgetType()Ljava/lang/Class; Signature()Ljava/lang/Class<*>;setValue2(Ljava/lang/Object;Ljava/lang/reflect/Method;IIF)Vv0v1eLjava/lang/Exception;objectLjava/lang/Object;methodLjava/lang/reflect/Method;i0i1fractionF0(Ljava/lang/Object;Ljava/lang/reflect/Method;I)Vindex9Lcom/sun/animation/timing/KeyValues; SourceFileKeyValuesInt.java T $U VWX YZ [\ ]^java/lang/Integer _`java/lang/Objecta bcjava/lang/Exceptiond efjava/lang/StringBuilder*Problem invoking method in KVInt.setValue: gh gi jkl mn%com/sun/animation/timing/KeyValuesInt"com/sun/animation/timing/KeyValues()VLjava/util/ArrayList;valueOf(I)Ljava/lang/Integer;java/util/ArrayListadd(Ljava/lang/Object;)ZTYPELjava/lang/Class;get(I)Ljava/lang/Object;intValue()Ijava/lang/reflect/Methodinvoke9(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;java/lang/SystemoutLjava/io/PrintStream;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;-(Ljava/lang/Object;)Ljava/lang/StringBuilder;toString()Ljava/lang/String;java/io/PrintStreamprintln(Ljava/lang/String;)V ,*+M,>6,.6*W,-.%-+0> % "  !,"#,$%&.6 "#'()*= *67*6*6djb b6,+ YS W: YM_b . ACDE)F:GMJ_MbKdL~Np )$+:,d-."#/0123456M2)75,+ Y*S W: Y VYWX4Z4-.5"#5/051258'9:;PK |X4pR-com/sun/animation/timing/KeyValuesPoint.class1o > ? @AB @C D E? FG HIJ KLM >N O P Q RSTU([Ljava/awt/Point;)VCodeLineNumberTableLocalVariableTablevalueLjava/awt/Point;arr$[Ljava/awt/Point;len$Ii$this)Lcom/sun/animation/timing/KeyValuesPoint;valuesgetType()Ljava/lang/Class; Signature()Ljava/lang/Class<*>;setValue2(Ljava/lang/Object;Ljava/lang/reflect/Method;IIF)Vv0v1eLjava/lang/Exception;objectLjava/lang/Object;methodLjava/lang/reflect/Method;i0i1fractionF0(Ljava/lang/Object;Ljava/lang/reflect/Method;I)Vindex6Lcom/sun/animation/timing/KeyValues; SourceFileKeyValuesPoint.java V &WX YZjava/awt/Point [\ ]^ _" `"java/lang/Objecta bcjava/lang/Exceptiond efjava/lang/StringBuilder,Problem invoking method in KVFloat.setValue: gh gi jkl mn'com/sun/animation/timing/KeyValuesPoint"com/sun/animation/timing/KeyValues()VLjava/util/ArrayList;java/util/ArrayListadd(Ljava/lang/Object;)Zget(I)Ljava/lang/Object;clone()Ljava/lang/Object;xyjava/lang/reflect/Methodinvoke9(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;java/lang/SystemoutLjava/io/PrintStream;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;-(Ljava/lang/Object;)Ljava/lang/StringBuilder;toString()Ljava/lang/String;java/io/PrintStreamprintln(Ljava/lang/String;)V )*+M,>6,2:*W-./".(1> "  !" #")$%)& '(.7 $%)*+,U *:\*:*:Ydjc`Y   djc` ,+ YS W:Yr . ABC&D4ESGrKNLMOf &L-4>./0$%12345"6"78+95,+ Y*S W:Y WZXY4[4/05$%5125345:");<=PK |X4X X 1com/sun/animation/timing/KeyValuesRectangle.class1q ? @ ABC AD E? F G HI JKL MNO ?P Q R S TUVW([Ljava/awt/Rectangle;)VCodeLineNumberTableLocalVariableTablevalueLjava/awt/Rectangle;arr$[Ljava/awt/Rectangle;len$Ii$this-Lcom/sun/animation/timing/KeyValuesRectangle;valuesgetType()Ljava/lang/Class; Signature()Ljava/lang/Class<*>;setValue2(Ljava/lang/Object;Ljava/lang/reflect/Method;IIF)Vv0v1eLjava/lang/Exception;objectLjava/lang/Object;methodLjava/lang/reflect/Method;i0i1fractionF0(Ljava/lang/Object;Ljava/lang/reflect/Method;I)Vindex:Lcom/sun/animation/timing/KeyValues; SourceFileKeyValuesRectangle.java X 'YZ [\java/awt/Rectangle ]^ _# `# a# b#java/lang/Objectc dejava/lang/Exceptionf ghjava/lang/StringBuilder,Problem invoking method in KVFloat.setValue: ij ik lmn op+com/sun/animation/timing/KeyValuesRectangle"com/sun/animation/timing/KeyValues()VLjava/util/ArrayList;java/util/ArrayListadd(Ljava/lang/Object;)Zget(I)Ljava/lang/Object;xywidthheightjava/lang/reflect/Methodinvoke9(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;java/lang/SystemoutLjava/io/PrintStream;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;-(Ljava/lang/Object;)Ljava/lang/StringBuilder;toString()Ljava/lang/String;java/io/PrintStreamprintln(Ljava/lang/String;)V )*+M,>6,2:*W-./".(1> " ! "# $#)%&)'!().7 %&*+,- *:*:*:Ydjc`Y   djc` Y   djc` Y   djc` ,+ YS W:Y6 A BC D.EMFlGHKNLMOf ..|/01%&23456#7#89 ,:5,+ Y*S W:YWZXY4[4015%&5235455;#*<=>PK Z\4,E)com/sun/animation/timing/LengthItem.class1#     !lengthFtfraction(FFF)VCodeLineNumberTableLocalVariableTablethis%Lcom/sun/animation/timing/LengthItem;(FF)V getLength()FgetT getFraction setFraction(F)V totalLength SourceFile Spline.java "   #com/sun/animation/timing/LengthItemjava/lang/Object()V     l**#*$*% *    Y**#*$    /*  /*  /*  C **#n    PK BX4&ְ"com/sun/animation/timing/Notes.txt Interpolation: Seems like there is serious overlap between my new PropertyRange classes (which take a prop name and from/to values of a given type) and my new Interpolator classes (which take keyTimes, keyValues, and keySplines). Maybe PropertyRange should take the key* parameters instead of the from/to values? Then what is the overlap between PropertyRange and ObjectModifier? Should Interpolator be exposed as a public class that the developer needs to create and use? Or is it just an internal utility created from the key* values and called at runtime to calculate setValue()? pseudocode: User wants to linearly interpolate location on component between 50 and 100 over a period of 2 seconds. Now: PropertyRange pr = PropertyRange.creatPropertyRange("location" , 50, 100); ObjectModifier om = new ObjectModifier(component, pr); TimingController tc = new TimingController(2000, om); tc.start(); With Interpolators: KeyValues kv = new KeyValues(50, 100); PropertyRange pr = new PropertyRange.createPropertyRange("location", kv); ObjectModifier om = new ObjectModifier(component, pr); TimingController tc = new TimingController(2000, om); tc.start(); Actually, we should have simplified constructors for the base case of linear interpolation between two values, so we could probably still have the original code above. It gets more interesting when there are keyTimes to consider: Suppose we want to vary location from 50 to 60 to 100 at times 0, .5, 1.0. Then we will have something more like this: KeyValues kv = new KeyValues(50, 60, 100); KeyTimes kt = new KeyTimes(0, .5, 1.0) PropertyRange pr = new PropertyRange.createPropertyRange("location", kt, kv); ObjectModifier om = new ObjectModifier(component, pr); TimingController tc = new TimingController(2000, om); tc.start(); It becomes even more interesting when there is nonlinear interpolation, specified by keySplines (four control points for every time interval, or one less than the number of keyTimes specified): KeyValues kv = new KeyValues(50, 60, 100); SplineControlPoints cp[] = { new ControlPoints(x, y, x, y), new ControlPoints(x, y, x, y) }; KeySplines ks = new KeySplines(cp); KeyTimes kt = new KeyTimes(0, .5, 1.0) PropertyRange pr = new PropertyRange.createPropertyRange("location", kt, ks); ObjectModifier om = new ObjectModifier(component, pr); TimingController tc = new TimingController(2000, om); tc.start(); Romain was suggesting we embed all of the time/value/spline information into one object, which I'll call KeyFrames (plural because it is holding the data for all keyframes). This way we can better guarantee that the data provided aligns better (appropriate number of values or splines for the times, etc.). There's also an issue of telling either the PropertyRange or the ObjectModifier how we want to interpolate. I think we can assume linear or non-linear depending upon values or splines, but there's also this "discrete" option offered by SMIL which isn't handled by these. Maybe I just ignore this for now... Let's think about the KeyFrames object: public class KeyFrames { private KeyValues keyValues; private KeyTimes keyTimes; private KeySplines keySplines; // private InterpolationType interpolationType; // do we need this? public KeyFrames(KeyValues keyValues); // simple case: linear interpolation public KeyFrames(KeyValues keyValues, KeyTimes keyTimes, InterpolationType interpolationType); public KeyFrames(KeyValues keyValues, KeyTimes keyTimes, KeySplines keySplines); // can we assume non-linear interpolation here? public KeyValues getKeyValues() { return keyValues; } // etc. } public class KeyValues { ArrayList() values = new ArrayList(); // how to generify this? // For this one, use factory methods to create appropriate subclasses public KeyValues createKeyValues(int x0, ...) // etc. } public class KeyTimes { ArrayList() times = new ArrayList(); // how to generify this? public KeyTimes(float t0, ...); } public class KeySplines { ArrayList() controlPoints = new ArrayList(); PK r\4. . -com/sun/animation/timing/ObjectModifier.class1 G H I JKLM GN O PQRS T U VW VXY VZ P[ \] ^ _ P`a bcd e fghij propertyRange(Lcom/sun/animation/timing/PropertyRange;objectLjava/lang/Object;propertySetterLjava/lang/reflect/Method;=(Ljava/lang/Object;Lcom/sun/animation/timing/PropertyRange;)VCodeLineNumberTableLocalVariableTablee!Ljava/lang/NoSuchMethodException;this)Lcom/sun/animation/timing/ObjectModifier;setupMethodInfo()V propertyNameLjava/lang/String; firstChar remainderpropertySetterName propertyTypeLjava/lang/Class; Exceptionsbeginend timingEvent(JJF)VLjava/lang/Exception;cycleElapsedTimeJtotalElapsedTimefractionF SourceFileObjectModifier.java (2 $% "# 12java/lang/NoSuchMethodException"java/lang/IllegalArgumentExceptionjava/lang/StringBuilderBad property name ( klm no): could not find .an appropriate setter method for that property po (qr st suset vo wx yxjava/lang/Class z{ &' |}java/lang/Exception~ 'Problem in ObjectModifier.timingEvent: k q'com/sun/animation/timing/ObjectModifierjava/lang/Object%com/sun/animation/timing/TimingTargetappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;&com/sun/animation/timing/PropertyRangegetPropertyName()Ljava/lang/String;toString(Ljava/lang/String;)Vjava/lang/String substring(II)Ljava/lang/String;(I)Ljava/lang/String; toUpperCasegetType()Ljava/lang/Class;getClass getMethod@(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;setValue0(Ljava/lang/Object;Ljava/lang/reflect/Method;F)Vjava/lang/SystemoutLjava/io/PrintStream;-(Ljava/lang/Object;)Ljava/lang/StringBuilder;java/io/PrintStreamprintln! !"#$%&'()*?**+*,*,NYY ,   +"IJ KMRNO>S,*(-.?/0?$%?"#12*T* L+M+NY , - :*:**YS+abcd1f:gSi,>T/0L34E54?641#74:89:;2*++t, /0<2*++{, /0=>*1***:Y +0,4-?1/01@A1BA1CDEFPK |X4 c5 ,com/sun/animation/timing/PropertyRange.class1Z ? @ A BCD EF G BH BI BJ BK BL M NO propertyNameLjava/lang/String; keyFrames$Lcom/sun/animation/timing/KeyFrames;9(Ljava/lang/String;Lcom/sun/animation/timing/KeyFrames;)VCodeLineNumberTableLocalVariableTablethis(Lcom/sun/animation/timing/PropertyRange;createPropertyRangeInt>(Ljava/lang/String;[I)Lcom/sun/animation/timing/PropertyRange;values[I keyValues$Lcom/sun/animation/timing/KeyValues;createPropertyRangeFloat>(Ljava/lang/String;[F)Lcom/sun/animation/timing/PropertyRange;[FcreatePropertyRangePointM(Ljava/lang/String;[Ljava/awt/Point;)Lcom/sun/animation/timing/PropertyRange;[Ljava/awt/Point;createPropertyRangeDimensionQ(Ljava/lang/String;[Ljava/awt/Dimension;)Lcom/sun/animation/timing/PropertyRange;[Ljava/awt/Dimension;createPropertyRangeRectangleQ(Ljava/lang/String;[Ljava/awt/Rectangle;)Lcom/sun/animation/timing/PropertyRange;[Ljava/awt/Rectangle;createPropertyRangeColorM(Ljava/lang/String;[Ljava/awt/Color;)Lcom/sun/animation/timing/PropertyRange;[Ljava/awt/Color;getPropertyName()Ljava/lang/String;setValue0(Ljava/lang/Object;Ljava/lang/reflect/Method;F)VobjectLjava/lang/Object;methodLjava/lang/reflect/Method;fractionFgetType()Ljava/lang/Class; SourceFilePropertyRange.java P  Q RS"com/sun/animation/timing/KeyFrames T&com/sun/animation/timing/PropertyRange  RU RV RW RX RY 34 ;<java/lang/Object()V"com/sun/animation/timing/KeyValuescreateKeyValues(([I)Lcom/sun/animation/timing/KeyValues;'(Lcom/sun/animation/timing/KeyValues;)V(([F)Lcom/sun/animation/timing/KeyValues;7([Ljava/awt/Point;)Lcom/sun/animation/timing/KeyValues;;([Ljava/awt/Dimension;)Lcom/sun/animation/timing/KeyValues;;([Ljava/awt/Rectangle;)Lcom/sun/animation/timing/KeyValues;7([Ljava/awt/Color;)Lcom/sun/animation/timing/KeyValues;! Y**+*,DE FG h+MY,NY*-TUV* ! "#h+ MY,NY*-^_`*$ ! %&h+ MY,NY*-hij*' ! ()h+ MY,NY*-rst** ! +,h+ MY,NY*-|}~*- ! ./h+ MY,NY*-*0 ! 12/* 34W *+,%  *  56 78 9:;<2* =>PK Z\4绯& %com/sun/animation/timing/Spline.class1z JK J LMN O P Q R S<# T U V WXY Z [ \ ] ^@@` Z a b cdex1Fy1x2y2lengthsLjava/util/ArrayList;(FFFF)VCodeLineNumberTableLocalVariableTablexyFloat InnerClassesLjava/awt/geom/Point2D$Float;length lengthItem%Lcom/sun/animation/timing/LengthItem;tiIthis!Lcom/sun/animation/timing/Spline;prevXprevY prevLengthgetXY (F)Ljava/awt/geom/Point2D$Float;invTb1b2b3getY(F)FgetInterpolatedValue proportionfractionlengthFraction interpolatedTprevT SourceFile Spline.java &fjava/util/ArrayList $%"java/lang/IllegalArgumentException+Control points must be in the range [0, 1]: &g  ! " # :; h i j kl#com/sun/animation/timing/LengthItem &m no pq rs tuvjava/awt/geom/Point2D$Float wx yx @Acom/sun/animation/timing/Splinejava/lang/Object()V(Ljava/lang/String;)Vxyjava/lang/Mathsqrt(D)D(FF)Vadd(Ljava/lang/Object;)Zsize()Iget(I)Ljava/lang/Object; setFraction(F)Vjava/awt/geom/Point2D getFraction()FgetT! ! " # $%&'( **Y# /# )$ #$ % %   Y*#*$ *% * 8 8 8 8 k* :  f fj f fjbb8 Y : * W 8 8 8 b86**:  ܱ)f=4>ABKFPGUHZI`LcMfNiOtP|QTUVWXO]^_]a*|V+. )/ 01 mo2 01 '3456 ! " # c7 f8 i9 :;(M #fF#j%%jj8##jj%j8##j#j8Y*j* jbb* j* jbbM,)vwxyzK}*HM56M2 K+.I< ?= 5> .? @A(2 #fF#j%%jj8##jj%j8##j#j8* j* jbb)*>25622 .< $= > ? BA($ h E F 86*O*:88##ffn8 % %fjbE*$8F*$)>$+29EOUY\b*f EC $801+1D 2*2  X34h56hE fF dG a9 HI- _, PK 0Y4cWoo1com/sun/animation/timing/TimingController$1.class1-      8$SwitchMap$com$sun$animation$timing$Envelope$EndBehavior[I()VCodeLineNumberTableLocalVariableTableexLjava/lang/NoSuchFieldError; SourceFileTimingController.javaEnclosingMethod!# %& '( )*java/lang/NoSuchFieldError +(+com/sun/animation/timing/TimingController$1 InnerClassesjava/lang/Object)com/sun/animation/timing/TimingController,-com/sun/animation/timing/Envelope$EndBehavior EndBehaviorvalues2()[Lcom/sun/animation/timing/Envelope$EndBehavior;HOLD/Lcom/sun/animation/timing/Envelope$EndBehavior;ordinal()IRESET!com/sun/animation/timing/Envelope    l( OKOK #&p'"$@PK 0Y4JZ9com/sun/animation/timing/TimingController$Direction.class1D - ./ 0 123 4 57 8 9 :;FORWARD Direction InnerClasses5Lcom/sun/animation/timing/TimingController$Direction;BACKWARD$VALUES6[Lcom/sun/animation/timing/TimingController$Direction;values8()[Lcom/sun/animation/timing/TimingController$Direction;CodeLineNumberTablevalueOfI(Ljava/lang/String;)Lcom/sun/animation/timing/TimingController$Direction;LocalVariableTablearr$len$Ii$nameLjava/lang/String;(Ljava/lang/String;I)Vthis Signature()VGLjava/lang/Enum; SourceFileTimingController.java  <= ">? @A"java/lang/IllegalArgumentException $B $%C3com/sun/animation/timing/TimingController$Direction $%  java/lang/Enumclone()Ljava/lang/Object;()Ljava/lang/String;java/lang/Stringequals(Ljava/lang/Object;)Z(Ljava/lang/String;)V)com/sun/animation/timing/TimingController@0 @@" A y1L+=>+2:*Y*A*$!  ! 1"#$%1*+A &'()(N. Y  Y   Y SYSB CA'*+,  6@PK 0Y4N;com/sun/animation/timing/TimingController$TimerTarget.class1 A B C DEB@ FG FH FI JK FL MN 9O MP QR FS FT UV WX FY FZ M[ \] U^ F_ F` Wabcdthis$0+Lcom/sun/animation/timing/TimingController;.(Lcom/sun/animation/timing/TimingController;)VCodeLineNumberTableLocalVariableTablethis TimerTarget InnerClasses7Lcom/sun/animation/timing/TimingController$TimerTarget;actionPerformed(Ljava/awt/event/ActionEvent;)V endFractionFfractioneLjava/awt/event/ActionEvent; currentTimeJcycleElapsedTimetotalElapsedTime currentCycleDe[(Lcom/sun/animation/timing/TimingController;Lcom/sun/animation/timing/TimingController$1;)Vx0x1-Lcom/sun/animation/timing/TimingController$1; SourceFileTimingController.java #$ !" #fg hij kl ml nop qr stu vw xy z|} ~r    f  5com/sun/animation/timing/TimingController$TimerTargetjava/lang/Objectjava/awt/event/ActionListener+com/sun/animation/timing/TimingController$1()Vjava/lang/SystemnanoTime()J)com/sun/animation/timing/TimingController access$100.(Lcom/sun/animation/timing/TimingController;)J access$200 access$300M(Lcom/sun/animation/timing/TimingController;)Lcom/sun/animation/timing/Cycle;com/sun/animation/timing/Cycle getDuration()I access$400P(Lcom/sun/animation/timing/TimingController;)Lcom/sun/animation/timing/Envelope;!com/sun/animation/timing/EnvelopegetRepeatCount()D8$SwitchMap$com$sun$animation$timing$Envelope$EndBehavior[IgetEndBehavior EndBehavior1()Lcom/sun/animation/timing/Envelope$EndBehavior;-com/sun/animation/timing/Envelope$EndBehaviorordinal access$500.(Lcom/sun/animation/timing/TimingController;)Z access$600 Directionb(Lcom/sun/animation/timing/TimingController;)Lcom/sun/animation/timing/TimingController$Direction;3com/sun/animation/timing/TimingController$DirectionBACKWARD5Lcom/sun/animation/timing/TimingController$Direction;java/lang/Mathmin(FF)F access$7001(Lcom/sun/animation/timing/TimingController;JJF)VstopgetRepeatBehaviorRepeatBehavior4()Lcom/sun/animation/timing/Envelope$RepeatBehavior;0com/sun/animation/timing/Envelope$RepeatBehaviorREVERSE2Lcom/sun/animation/timing/Envelope$RepeatBehavior;FORWARD access$602(Lcom/sun/animation/timing/TimingController;Lcom/sun/animation/timing/TimingController$Direction;)Lcom/sun/animation/timing/TimingController$Direction; access$102/(Lcom/sun/animation/timing/TimingController;J)Jmax  !"#$%4 *+*&d'  (+,-% mA *e7 *e7* o9*  * * .yj** 8  8  * n8 * ** * * u* M** *W* *W* Xm* * XU 8 * 7* n8 *  f8  8  8 * &(fhij/lPp|twz{|~ %03?JSVbknq'f ./ ./ &./ qO0/ (+12345464/78#;%D*+&d' (+<"=>?@**F)9FQM{@UF@\M@PK 0Y4A/com/sun/animation/timing/TimingController.class1 8 8 8 8 8 8 8 8 9 8 8 > 8 8      8      #  B@    8  3 3 3 8 InnerClasses TimerTarget DirectiontimerLjavax/swing/Timer;targetsLjava/util/ArrayList; startTimeJcurrentStartTime currentCycleI direction5Lcom/sun/animation/timing/TimingController$Direction;intRepeatCountZenvelope#Lcom/sun/animation/timing/Envelope;cycle Lcom/sun/animation/timing/Cycle; accelerationF decelerationINFINITE ConstantValueF(Lcom/sun/animation/timing/Cycle;Lcom/sun/animation/timing/Envelope;)VCodeLineNumberTableLocalVariableTablethis+Lcom/sun/animation/timing/TimingController;m(Lcom/sun/animation/timing/Cycle;Lcom/sun/animation/timing/Envelope;Lcom/sun/animation/timing/TimingTarget;)Vtarget'Lcom/sun/animation/timing/TimingTarget; timerTarget7Lcom/sun/animation/timing/TimingController$TimerTarget;tkLjava/awt/Toolkit;+(ILcom/sun/animation/timing/TimingTarget;)VdurationsetAcceleration(F)VsetDecelerationgetAcceleration()FgetDeceleration addTarget*(Lcom/sun/animation/timing/TimingTarget;)VgetCycle"()Lcom/sun/animation/timing/Cycle; getEnvelope%()Lcom/sun/animation/timing/Envelope;setCycle#(Lcom/sun/animation/timing/Cycle;)V setEnvelope&(Lcom/sun/animation/timing/Envelope;)Vstart()V isRunning()Zstop timingEvent(JJF)VicycleElapsedTimetotalElapsedTimefractionbeginendtimingEventPreprocessoraverageRunRatetdecpdec oldFractionrunRate access$100.(Lcom/sun/animation/timing/TimingController;)Jx0 access$200 access$300M(Lcom/sun/animation/timing/TimingController;)Lcom/sun/animation/timing/Cycle; access$400P(Lcom/sun/animation/timing/TimingController;)Lcom/sun/animation/timing/Envelope; access$500.(Lcom/sun/animation/timing/TimingController;)Z access$600b(Lcom/sun/animation/timing/TimingController;)Lcom/sun/animation/timing/TimingController$Direction; access$7001(Lcom/sun/animation/timing/TimingController;JJF)Vx1x2x3 access$602(Lcom/sun/animation/timing/TimingController;Lcom/sun/animation/timing/TimingController$Direction;)Lcom/sun/animation/timing/TimingController$Direction; access$102/(Lcom/sun/animation/timing/TimingController;J)J SourceFileTimingController.java } IJ KL MN OP DE FE W^ Wxjava/util/ArrayList BC GH J QR SR  5com/sun/animation/timing/TimingController$TimerTarget Wjavax/swing/Timer W @A  com/sun/animation/timing/Cycle W!com/sun/animation/timing/Envelope  W"java/lang/IllegalArgumentException1Acceleration value cannot lie outside [0,1] range Wg367= >%j*k/l8oPs[tluw|[>}\]}OP}MN}_`["ab|cdWeYa *Y Y !",Z [ \]fH_`ghYy1# # #Y$%# *f #Y&%*#Z !+0[1\]1QRihYy1# # #Y'%# *f #Y(%*#Z !+0[1\]1SRjkY/*Z[ \]lkY/*Z[ \]mnYk* YM* +W,çN,-Z[\]_`opY/*Z[ \]qrY/*Z[ \]stYM*+*+)Z[\]OPuvY>*+Z [\]MNwxYZ$**+m*a***-Z#[ $\]yzY2*.Z[ \]{xY> */*0Z [  \]|}Y E* Y:6* 1"* 23:!4ç :  9<<A<Z%06D [>% _` +~HE\]EEEEERxY9* YL=* 1* 23N-5+ç :+.1151Z'() *&(,,8-[  _` #~H9\]xY9* YL=* 1* 23N-6+ç :+.1151Z456 7&5,98:[  _` #~H9\]}YO * * 8 * nf* nfn8**nj n8j8P *f6 *ff8*n8  * nf*f  fj nbj8* nfj8*!7Z:FIJ)L3MANHOWQbSkTVWZ[[\ ARb%RkR R)oR\]EERY/*Z-[ ]Y/*Z-[ ]Y/*Z-[ ]Y/*Z-[ ]Y/*Z-[ ]Y/*Z-[ ]YQ *!Z-[* ] E E RY;*+ZZ-[]JY;*]Z-[]E<*:88=>8?@@@PK SX4Sc+com/sun/animation/timing/TimingTarget.class1    timingEvent(JJF)Vbegin()Vend SourceFileTimingTarget.java%com/sun/animation/timing/TimingTargetjava/lang/Object PK [\4 AMETA-INF/PK Z\4dLjj+META-INF/MANIFEST.MFPK BX4Acom/PK BX4Acom/sun/PK BX4Acom/sun/animation/PK BX4A?com/sun/animation/timing/PK |X4O}@$vcom/sun/animation/timing/Cycle.classPK |X42pzQ\\3com/sun/animation/timing/Envelope$EndBehavior.classPK |X4(vFvv6J com/sun/animation/timing/Envelope$RepeatBehavior.classPK |X4'com/sun/animation/timing/Envelope.classPK |X4:0:4com/sun/animation/timing/KeyFrames$InterpolationType.classPK |X4dfmm(W com/sun/animation/timing/KeyFrames.classPK \4"") /com/sun/animation/timing/KeySplines.classPK |X4ĕ]HH's3com/sun/animation/timing/KeyTimes.classPK |X4TQ(:com/sun/animation/timing/KeyValues.classPK |X4fF -Bcom/sun/animation/timing/KeyValuesColor.classPK |X41Lcom/sun/animation/timing/KeyValuesDimension.classPK |X4>-/Vcom/sun/animation/timing/KeyValuesFloat.classPK |X40x+K_com/sun/animation/timing/KeyValuesInt.classPK |X4pR-lhcom/sun/animation/timing/KeyValuesPoint.classPK |X4X X 1qcom/sun/animation/timing/KeyValuesRectangle.classPK Z\4,E)Z{com/sun/animation/timing/LengthItem.classPK BX4&ְ"'com/sun/animation/timing/Notes.txtPK r\4. . -com/sun/animation/timing/ObjectModifier.classPK |X4 c5 ,com/sun/animation/timing/PropertyRange.classPK Z\4绯& %com/sun/animation/timing/Spline.classPK 0Y4cWoo1com/sun/animation/timing/TimingController$1.classPK 0Y4JZ9com/sun/animation/timing/TimingController$Direction.classPK 0Y4N;com/sun/animation/timing/TimingController$TimerTarget.classPK 0Y4A/com/sun/animation/timing/TimingController.classPK SX4Sc+Acom/sun/animation/timing/TimingTarget.classPKT O