ColorEditDialog.st
author Patrik Svestka <patrik.svestka@gmail.com>
Wed, 14 Nov 2018 12:07:51 +0100
branchjv
changeset 3630 5e718e0a754e
parent 3194 86cf12ddc8fd
child 3519 4fbc55af0d28
permissions -rw-r--r--
Issue #239: Fix all Smalltak/X source files to be in unicode (UTF8 without BOM) and prefixed by "{ Encoding: utf8 }" when any unicode character is present

- All source *.st files are now Unicode UTF8 without BOM
Files are in two groups (fileOut works this way in Smalltalk/X):
- containing a unicode character have "{ Encoding: utf8 }" at the header
- ASCII only are without the header
     1 "
     2  COPYRIGHT (c) 1995 by eXept Software AG
     3               All Rights Reserved
     4 
     5  This software is furnished under a license and may be used
     6  only in accordance with the terms of that license and with the
     7  inclusion of the above copyright notice.   This software may not
     8  be provided or otherwise made available to, or used by, any
     9  other person.  No title to or ownership of the software is
    10  hereby transferred.
    11 "
    12 "{ Package: 'stx:libtool2' }"
    13 
    14 "{ NameSpace: Smalltalk }"
    15 
    16 SimpleDialog subclass:#ColorEditDialog
    17 	instanceVariableNames:'red green blue hue light saturation colorNameHolder
    18 		htmlColorNameHolder colorDefinitionStringHolder previewBox
    19 		brightnessStringHolder'
    20 	classVariableNames:''
    21 	poolDictionaries:''
    22 	category:'Interface-UIPainter'
    23 !
    24 
    25 !ColorEditDialog class methodsFor:'documentation'!
    26 
    27 copyright
    28 "
    29  COPYRIGHT (c) 1995 by eXept Software AG
    30               All Rights Reserved
    31 
    32  This software is furnished under a license and may be used
    33  only in accordance with the terms of that license and with the
    34  inclusion of the above copyright notice.   This software may not
    35  be provided or otherwise made available to, or used by, any
    36  other person.  No title to or ownership of the software is
    37  hereby transferred.
    38 "
    39 !
    40 
    41 documentation
    42 "
    43     An edit-dialog for colors.
    44 "
    45 !
    46 
    47 examples
    48 "
    49                                                                                 [exBegin]                                      
    50     |editor color|
    51 
    52     editor := ColorEditDialog new.
    53     editor color:(Color green).
    54     editor open.
    55     editor accepted ifTrue:[
    56         editor color inspect.
    57     ]
    58                                                                                 [exEnd]
    59 "
    60 ! !
    61 
    62 !ColorEditDialog class methodsFor:'help specs'!
    63 
    64 flyByHelpSpec
    65     "This resource specification was automatically generated
    66      by the UIHelpTool of ST/X."
    67 
    68     "Do not manually edit this!! If it is corrupted,
    69      the UIHelpTool may not be able to read the specification."
    70 
    71     "
    72      UIHelpTool openOnClass:ColorEditDialog    
    73     "
    74 
    75     <resource: #help>
    76 
    77     ^ super flyByHelpSpec addPairsFrom:#(
    78 
    79 #pickColor
    80 'Pick a Color from the Screen'
    81 
    82 )
    83 !
    84 
    85 helpSpec
    86     "This resource specification was automatically generated
    87      by the UIHelpTool of ST/X."
    88 
    89     "Do not manually edit this!! If it is corrupted,
    90      the UIHelpTool may not be able to read the specification."
    91 
    92     "
    93      UIHelpTool openOnClass:ColorEditDialog    
    94     "
    95 
    96     <resource: #help>
    97 
    98     ^ super helpSpec addPairsFrom:#(
    99 
   100 #brightness
   101 'The Color''s brightness value (0..1)'
   102 
   103 #colorDefinitionString
   104 'A Smalltalk expression to construct the color'
   105 
   106 #colorName
   107 'The standard colorname (as used in the X-Window System), if known'
   108 
   109 #copyToClipboard
   110 'Copy the color to the clipboard'
   111 
   112 #hlsMixer
   113 'Mix color from hls (hue-light-saturation) components'
   114 
   115 #htmlColorName
   116 'The color as used in an HTML page'
   117 
   118 #pasteFromClipboard
   119 'Paste color from the Clipboard'
   120 
   121 #rgbMixer
   122 'Mix color from rgb (red-green-blue) components'
   123 
   124 )
   125 
   126     "Modified: / 09-08-2012 / 09:35:29 / cg"
   127 ! !
   128 
   129 !ColorEditDialog class methodsFor:'image specs'!
   130 
   131 hueGradientImage
   132     "This resource specification was automatically generated
   133      by the ImageEditor of ST/X."
   134 
   135     "Do not manually edit this!! If it is corrupted,
   136      the ImageEditor may not be able to read the specification."
   137 
   138     "
   139      self hueGradientImage inspect
   140      ImageEditor openOnClass:self andSelector:#hueGradientImage
   141      Icon flushCachedIcons
   142     "
   143 
   144     <resource: #image>
   145 
   146     ^Icon
   147         constantNamed:'ColorEditDialog hueGradientImage'
   148         ifAbsentPut:[(Depth8Image new) width:400; height:50; bits:(ByteArray fromPackedString:'
   149 J%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$QH(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE
   150 ''I2\''KZ6]AHRD''=(ZG<ZF!!*GV8][!!3^IC0<OTG1<@@AXKE!!X&9.Y&7U5]X>O#8>OLC@0LC@0LCA:NW):^''):^(UCP8VE!!XT<##0<OH:NK2</K2</K2=9^W%9
   151 ^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:.''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3
   152 +;F/+1 XFA"R$+"8.K!!&''"N^''''@I\@%WVU$TEAPA(:N#"(*J"(X_G1-,[F0UEQUOS6]OR;]K\WM1\R8.K"9>_''9>_''9>''Y46''Y6]M#Z************4-KR4
   153 -KR4-B,+J2,+J2,+J0-LS@-LSD1APTEAPTEAPTFK"8.K"8.K"5YVU")VU(HFA  HMCR_]7^9.;-ST4A@%&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JB<S)@?JV%)
   154 Z6.WQ125G$%IDRJM#S,;OZ!!B!!HRD,%22, 8NC 9QTYRT%IRTAR4EAY2\''I26-''PRD!!I?ZF!!?F!!(Z!!5.GV8\7"P<OC5A<_@@@VB1XVI.[&Y-5]WVO#8>O#3@0
   155 LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH8<OC2N#"</K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL
   156 #D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HATUJZ&)FM#XVF3,:>1+;DX[V4X*Z&8Y&Y&Y"L#''"M0BP$IVU%Y@PDA@ZN#^3 8"# _G1<[[A,[E1\WY6]''
   157 Y;^7R7M3\7M/K"9/@ HB@ I>@#Z]M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1LE$EAPTEAPQYA"8.K"8.K"8-VU"(*U%ZBA XHBCP4
   158 ''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5MZB /D:PO2%)ZV-+%4\\-Q9IRQD"#X4;N36(P(RD!!KI\,+HNC 8NTUFT%IRT%@T-APV\''I2\-+Y4D!!HR
   159 _6!!(_1(ZF(][!!5.GM8$OC0=P_G0@@E ,VE"[&9&[]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE!!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.
   160 +&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF- XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,[F1[V5-[Z&)
   161 Y&Y&Y&X#H2L#BP$IBU%YVPDA@PE;^7,8NC 8G1<_F1,[F1\WE6]''Y6^7-;]3\7M3[6=/[0HB@ HB@ H6M#Z]''Y46M************+R4-KR4-KR4J2,+J2,+
   162 J2,+B41LB41LSAYAPTEAPTDVPX.K"8.K"8.KU%X*J%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"N#*Z&#NCA0]6MSV (D9N$I@)ZV%+Z9^WGA8^RT$"
   163 H(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE''I2\''KZ6]AHRD''=(ZG<ZF!!*GV8][!!3^IC0<OTG1<@@AXKE!!X&9.Y&7U5]X>O#8>OLC@0LC@0LCA:NW):
   164 ^''):^(UCP8VE!!XT<##0<OH:NK2</K2</K2=9^W%9^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:.''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LC
   165 Z&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3+;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA(:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.
   166 K&<B@ HB@''8BM)46''Y6]M#Z************4-KR4-KR4-B,+J2,+J2,+J0-LS@,KB0,VPQXVPQXVE!!ZKHB@ HB@ HB(*J")VU(HFA  HMCR_]7^9.;-ST4A@
   167 %&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JB<S)@?JV%)Z6.WQ125G$%IDRJM#S,;OZ!!B!!HRD,%22, 8NC 9QTYRT%IRTAPTEAY2\''I26-+XRD!!I?_7=?F!!(Z!!8^G
   168 !!8\7M0=PTE@@@@@@VE!!XVI.[&9-5]WVO#8>O#3@0LC@0LC@0^''):^''):^''*E!!XVE!!XVEOH8<OC2N#"</K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%
   169 QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL#D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HATUJZ&)FM#XVF3,:>1+:<XFA X$)J8.K"8Y)8#'')90
   170 BW@IU5%YEAPT@ZN#(8*J"(*FG1<[[F1,EQTUS4=''S4.7R7E3\WD.K"8._''9>_''9>_)6]M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1L
   171 E$EAPTEAPQYA"8.K"8.K"8-VU"(*U%ZBA XHBCP4''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7Z"("\''/K0?O2%)ZTQ+Q4\J-[T$IAD"$YD;N36(P(RD
   172 !!KI\,+HNC 8NTUFT%IRT%@T-APV\''I2\-+Y4D!!HR_6!!(_1(ZF(][!!5.GM8$OC0=P_G0@@E ,VE"[&9&[]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE
   173 !!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.+&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF- XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0L
   174 W%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&).FY&Y&X#H98#\@$IBU%YVPDA@PF#(7,8NH(8G1<_F60[F1\WE6]''Y6^7-4-3\7M3[28.[0HB@ HB_ H6
   175 ''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB0,KB1YAE!!YAE!!XVE(, HB@ HB@ J"(*J%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"
   176 N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$QH(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE''I2\''KZ6]AHRD''=(ZG<ZF!!*GV8][!!3^IC0<OTG1<
   177 @@AXKE!!X&9.Y&7U5]X>O#8>OLC@0LC@0LCA:NW):^''):^(UCP8VE!!XT<##0<OH:NK2</K2</K2=9^W%9^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:
   178 .''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3+;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA
   179 (:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.K&<B@ HB@''8BM)46''Y6]M#Z************4-KR4-KR4-B,+J2,+J2,+J0-LS@-LSD0VPTEAPTEAE$FK
   180 "8.K"8.K"5YVJ")VU(HFA  HMCR_]7^9.;-ST4A@%&9.,KAHRBD!!X#(:&)(3 0\G]*J"I2^</C<?JV%)QF-GQ0*5-RP$DRJQ$S,;OZ!!B!!HRD,%1\, 9 XF@P
   181 TZ^T%IR''KR4EKTYFQ$Y4]GP%IRU?ZF!!(*1*+!!5-[V5.I"P<OC5A<_@A<KB0,KI&Y&Y.H"H"OST6OSS@YFQ$0FQ$YNS$9NS%:^'')CP4MCP8VE#(8<OC2N#"</
   182 K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL#D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HAT
   183 UJZ&)FM#XVF3,:>1+;DX[V4X*Z&8Y&Y&Y"L#''"M0BP$IVU%Y@PDA@ZN#^3 8"# _G1<[[A,[E1\WY6]''Y;^7R7M3\7M/K"9/@ HB@ I>@#Z]M)6]''SX6****
   184 ********-KR4-KR4-KP+J2,+J2,+J2,KSD0KB0,KE$DVE$DVE!!XV"2@ HB@ HB@*J"(*U%ZBA XHBCP4''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5
   185 MZB S$:P$B%)ZV-+%9\\G!!9IRRH"#X4;N36(P(RD!!KI\,+HNC 8NTUFT%IRT%@T-APV\''I2\-+Y4D!!HR_6!!(_1(ZF(][!!5.GM8$OC0=P_G0@@E ,VE"[&9&[
   186 ]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE!!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.+&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF-
   187  XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&).FY&Y&X#H98#\@$IBU%YVPDA@PF#(7,8NH(8G1<_
   188 F60[F1\WE6]''Y6^7-4-3\7M3[28.[0HB@ HB_ H6''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB0,KB1YAE!!YAE!!XVE(, HB@ HB@ J"(*
   189 J%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$QH(6MN3,=*DJD!!HR2WE22C&A XAAQ)9RT%J\-KPT-
   190 Q$YFQ''Q4]BT%IW=(ZF"+F*.GV5-[V8&IC0<OTG1<@G0,KB0,&Y&Y&8"H"H=MSX=MLA$YFS@YFQ$9NS$9NW):^$MCP4MC!!XVN##0<OH:NK2</K2</K2=9^W%9
   191 ^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:.''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3
   192 +;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA(:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.K&<B@ HB@''8BM)46''Y6]M#Z************4-KR4
   193 -KR4-B,+J2,+J2,+J0-LS@-LSD0VPTEAPTEAE$FK"8.K"8.K"5YVJ")VU(HFA  HMCR_]7^9.;-ST4A@%&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JB<S)@?JV%)
   194 Z6.WQ125G$%IDRJM#S,;OZ!!B!!HRD,%22, 8NC 9QTYRT%IRTAR4EAY2\''I26-''PRD!!I?ZF!!?F!!(Z!!5.GV8\7"P<OC5A<_@@@VB1XVI.[&Y-5]WVO#8>O#3@0
   195 LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH8<OC2N#"</K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL
   196 #D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HATUJZ&)FM#XVF3,:>1+;DX[V4X*Z&8Y&Y&Y"L#''"M0BP$IVU%Y@PDA@ZN#^3 8"# _G1<[[A,[E1\WY6]''
   197 Y;^7R7M3\7M/K"9/@ HB@ I>@#Z]M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KB0,KE$DVE$DVE!!XV"2@ HB@ HB@*J"(*U%ZBA XHBCP4
   198 ''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5MZB S$:P$B%)ZV-+%9\\G!!9IRRH"#X4;N36(P(RD!!KI\WKHNXFA DEF''%IRT)24-AR5FQ$YF]GQ4IRT%
   199 _6!!(ZJ,Z*8][V5-["X$OC0=P_G0@_B0,KB2Y&Y&["H"H#45M#440FQ$YLA$YFS$9NS$9^''):P4MCP4NE!!X:NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.
   200 +&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF- XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&)
   201 .FY&Y&X#H98#\@$IBU%YVPDA@PF#(7,8NH(8G1<_F60[F1\WE6]''Y6^7-4-3\7M3[28.[0HB@ HB_ H6''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+
   202 J2,+B41LB41LSDEAPTEAPTEAPX.K"8.K"8.KU%YVJ%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"N#*Z&#NCA0]6MSV (D9N$I@)ZV%+Z9^WGA8^RT$"
   203 H(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE''I2\''KZ6]AHRD''=(ZG<ZF!!*GV8][!!3^IC0<OTG1<@@AXKE!!X&9.Y&7U5]X>O#8>OLC@0LC@0LCA:NW):
   204 ^''):^(UCP8VE!!XT<##0<OH:NK2</K2</K2=9^W%9^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:.''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LC
   205 Z&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3+;F1,V5-[V6)*VY&Y&Y&H2L#H0$IBP%YVU$A@PDA^7-;NC 8NA<_G1,[F1,WE1]''Y6]''-;^7\7M3\6=/
   206 [6<B@ HB@ HBM#X6''Y6]M#Z************4-KR4-KR4-B,+J2,+J2,+J0-LS@-LSD1APTEAPTEAPTFK"8.K"8.K"5YVU")VU(HFA  HMCR_]7^9.;-ST4A@
   207 %&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JANS)BPJV%)Z6.W%10^G$%IH"JM#S,;OZ!!B!!HRD,%22, 8NC 9QTYRT%IRTAR4EAY2\''I26-''PRD!!I?ZF!!?F!!(Z!!5.G
   208 V8\7"P<OC5A<_@@@VB1XVI.[&Y-5]WVO#8>O#3@0LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH8<OC2N#"</K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%
   209 QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL#D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HATUJZ&)FM#XVF3,:>1+;DX[V4X*Z&8Y&Y&Y"L#''"M0
   210 BP$IVU%Y@PDA@ZN#^3 8"# _G1<[[A,[E1\WY6]''Y;^7R7M3\7M/K"9/@ HB@ I>@#Z]M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1L
   211 E$EAPTEAPQYA"8.K"8.K"8-VU"(*U%ZBA XHBCP4''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5MZB /D:PO2%)ZV-+%4\\-Q9IRQD"#X4;N36(P(RD
   212 !!KI\,+HNC 8NTUFT%IRT%@T-APV\''I2\-+Y4D!!HR_6!!(_1(ZF(][!!5.GM8$OC0=P_G0@@E ,VE"[&9&[]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE
   213 !!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.+&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF- XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0L
   214 W%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&).FY&Y&X#H98#\@$IBU%YVPDA@PF#(7,8NH(8G1<_F60[F1\WE6]''Y6^7-4-3\7M3[28.[0HB@ HB_ H6
   215 ''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB0,KB1YAE!!YAE!!XVE(, HB@ HB@ J"(*J%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"
   216 N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$QH(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE''I2\''KZ6]AHRD''=(ZG<ZF!!*GV8][!!3^IC0<OTG1<
   217 @@AXKE!!X&9.Y&7U5]X>O#8>OLC@0LC@0LCA:NW):^''):^(UCP8VE!!XT<##0<OH:NK2</K2</K2=9^W%9^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:
   218 .''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3+;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA
   219 (:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.K&<B@ HB@''8BM)46''Y6]M#Z************4-KR4-KR4-B,+J2,+J2,+J0-LS@,KB0,VPQXVPQXVE!!ZK
   220 HB@ HB@ HB(*J")VU(HFA  HMCR_]7^9.;-ST4A@%&9.,KAHRBD!!X#(:&)(3 0\G]*J"I2^</C<?JV%)QF-GQ0*5-RP$DRJQ$S,;OZ!!B!!HRD,%22, 8NC 9Q
   221 TYRT%IRTAR4EAY2\''I26-''PRD!!I?ZF!!?F!!(Z!!5.GV8\7"P<OC5A<_@@@VB1XVI.[&Y-5]WVO#8>O#3@0LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH8<OC2N#"</
   222 K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL#D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HAT
   223 UJZ&)FM#XVF3,:>1,[E-[V5-*Z%&Y&Y&Y"L#H2LIBP$IVU%Y@PDA@W-;^3 8NC _G1<[F1,[E1\WY6]''Y;^7-7M3\7M/[6=/@ HB@ HB@#X6M)6]''SX6****
   224 ********-KR4-KR4-KP+J2,+J2,+J2,KSD0KB0,KE$DVE$DVE!!XV"2@ HB@ HB@*J"(*U%ZBA XHBCP4''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5
   225 MZB /D:PO2%)ZV-+%4\\-Q9IRQD"#X4;N36(P(RD!!KI\,+HNC 8NTUFT%IRT%@TEAPV\''I2\-+Z6D!!HR_7=?_1(ZF(^G!!8^GM3\OTEAP@@@@@E!!XVE"[&9.[
   226 ]WU5#8>O#8<0LC@0LC@0LG):^''):^''):!!XVE!!XVE!!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.+&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF-
   227  XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,[F1[V5-[Z&)Y&Y&Y&X#H2L#BP$IBU%YVPDA@PE;^7,8NC 8G1<_
   228 F1,[F1\WE6]''Y6^7-;]3\7M3[6=/[0HB@ HB@ H6M#Z]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB41LSAYAPTEAPTDVPX.K"8.K"8.KU%X*
   229 J%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$QH(6MN3,=*DJD!!HR2WE22C&A XAAQ)9RT%J\-APT-
   230 Q$YFQ''Q4-"T%IW=?_6"+F*.G!!5.GV8$7C5APT@@@@G0,VB0,&Y&[&8"H"H=MSX=MLA$YFS@YFQ$9^#$9NW):^$NE!!TMC!!XVN##0<OH:NK2</K2</K2=9^W%9
   231 ^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:.''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3
   232 +;F1,V5-[V6)*VY&Y&Y&H2L#H0$IBP%YVU$A@PDA^7-;NC 8NA<_G1,[F1,WE1]''Y6]''-;^7\7M3\6=/[6<B@ HB@ HBM#X6''Y6]M#Z************4-KR4
   233 -KR4-B,+J2,+J2,+J0-LS@-LSD0VPTEAPTEAE$FK"8.K"8.K"5YVJ")VU(HFA  HMCR_]7^9.;-ST4A@%&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JB<S)@?JV%)
   234 Z6.WQ125G$%IDRJM#S,;OZ!!B!!HRD,%22, 8NC 9QTYRT%IRTAPTEAY2\''I26-+XRD!!I?_7=?F!!(Z!!8^G!!8\7M0=PTE@@@@@@VE!!XVI.[&9-5]WVO#8>O#3@0
   235 LC@0LC@0^''):^''):^''*E!!XVE!!XVEOH8<OC2N#"</K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL
   236 #D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HATUJZ&)FM#XVF3,:>1,[E-[V5-*Z%&Y&Y&Y"L#H2LIBP$IVU%Y@PDA@W-;^3 8NC _G1<[F1,[E1\WY6]''
   237 Y;^7-7M3\7M/[6=/@ HB@ HB@#X6M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1LE$EAPTEAPQYA"8.K"8.K"8-VU"(*U%ZBA XHBCP4
   238 ''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5MZB S$:P$B%)ZV-+%9\\G!!9IRRH"#X4;N36(P(RD!!KI\,+HNC 8NTUFT%IRT%@TEAPV\''I2\-+Z6D!!HR
   239 _7=?_1(ZF(^G!!8^GM3\OTEAP@@@@@E!!XVE"[&9.[]WU5#8>O#8<0LC@0LC@0LG):^''):^''):!!XVE!!XVE!!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.
   240 +&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF- XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&)
   241 .FY&Y&X#H98#\@$IBU%YVPDA@PF#(7,8NH(8G1<_F60[F1\WE6]''Y6^7-4-3\7M3[28.[0HB@ HB_ H6''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+
   242 J2,+B41LB41LSAYAPTEAPTDVPX.K"8.K"8.KU%X*J%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$Q
   243 H(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE''I2\''KZ6]AHRD''=(ZG<ZF!!*GV8][!!3^IC0<OTG1<@@AXKE!!X&9.Y&7U5]X>O#8>OLC@0LC@0LCA:NW):
   244 ^''):^(UCP8VE!!XT<##0<OH:NK2</K2</K2=9^W%9^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:.''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LC
   245 Z&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3+;F1,V5-[V6)*VY&Y&Y&H2L#H0$IBP%YVU$A@PDA^7-;NC 8NA<_G1,[F1,WE1]''Y6]''-;^7\7M3\6=/
   246 [6<B@ HB@ HBM#X6''Y6]M#Z************4-KR4-KR4-B,+J2,+J2,+J0-LS@,KB0,VPQXVPQXVE!!ZKHB@ HB@ HB(*J")VU(HFA  HMCR_]7^9.;-ST4A@
   247 %&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JANS)BPJV%)Z6.W%10^G$%IH"JM#S,;OZ!!B!!HRD,%22, 8NC 9QTYRT%IRTAR4EAY2\''I26-''PRD!!I?ZF!!?F!!(Z!!5.G
   248 V8\7"P<OC5A<_@@@VB1XVI.[&Y-5]WVO#8>O#3@0LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH8<OC2N#"</K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%
   249 QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL#D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HATUJZ&)FM#XVF3,:>1+:<XFA X$)J8.K"8Y)8#'')90
   250 BW@IU5%YEAPT@ZN#(8*J"(*FG1<[[F1,EQTUS4=''S4.7R7E3\WD.K"8._''9>_''9>_)6]M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KB0,K
   251 E$DVE$DVE!!XV"2@ HB@ HB@*J"(*U%ZBA XHBCP4''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5MZB /D:PO2%)ZV-+%4\\-Q9IRQD"#X4;N36(P(RD
   252 !!KI\,+HNC 8NTUFT%IRT%@T-APV\''I2\-+Y4D!!HR_6!!(_1(ZF(][!!5.GM8$OC0=P_G0@@E ,VE"[&9&[]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE
   253 !!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.+&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF- XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0L
   254 W%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&).FY&Y&X#H98#\@$IBU%YVPDA@PF#(7,8NH(8G1<_F60[F1\WE6]''Y6^7-4-3\7M3[28.[0HB@ HB_ H6
   255 ''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB0,KB1YAE!!YAE!!XVE(, HB@ HB@ J"(*J%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"
   256 N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$QH(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEAPTE''I2\''KZ6-!!HRD''=?_7<ZF!!*G!!8^G!!3\7C5APT@@@
   257 @@AXVE!!X&9.[&7U5]X>O#8>OLC@0LC@0LCA:^''):^''):^(VE!!XVE!!XT<##0<OH:NK2</K2</K2=9^W%9^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:
   258 .''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3+;F1,V5-[V6)*VY&Y&Y&H2L#H0$IBP%YVU$A@PDA
   259 ^7-;NC 8NA<_G1,[F1,WE1]''Y6]''-;^7\7M3\6=/[6<B@ HB@ HBM#X6''Y6]M#Z************4-KR4-KR4-B,+J2,+J2,+J0-LS@-LSD0VPTEAPTEAE$FK
   260 "8.K"8.K"5YVJ")VU(HFA  HMCR_]7^9.;-ST4A@%&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JANS)BPJV%)Z6.W%10^G$%IH"JM#S,;OZ!!B!!HRD,%22, 8NC 9Q
   261 TYRT%IRTAR4EAY2\''I26-''PRD!!I?ZF!!?F!!(Z!!5.GV8\7"P<OC5A<_@@@VB1XVI.[&Y-5]WVO#8>O#3@0LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH8<OC2N#"</
   262 K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL#D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HAT
   263 UJZ&)FM#XVF3,:>1+:<XFA X$)J8.K"8Y)8#'')90BW@IU5%YEAPT@ZN#(8*J"(*FG1<[[F1,EQTUS4=''S4.7R7E3\WD.K"8._''9>_''9>_)6]M)6]''SX6****
   264 ********-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1LE$EAPTEAPQYA"8.K"8.K"8-VU"(*U%ZBA XHBCP4''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5
   265 MZB /D:PO2%)ZV-+%4\\-Q9IRQD"#X4;N36(P(RD!!KI\,+HNC 8NTUFT%IRT%@T-APV\''I2\-+Y4D!!HR_6!!(_1(ZF(][!!5.GM8$OC0=P_G0@@E ,VE"[&9&[
   266 ]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE!!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.+&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF-
   267  XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>/FA XFIJR.K"8.FZ^H9:^\@%0BU]YVQPTE@F#(:NJ"(*J!!!!<_
   268 F61,[ATUET=OY4=K-4-1\7E1K"8.K''9>_''9>_'':]''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB41LSAYAPTEAPTDVPX.K"8.K"8.KU%X*
   269 J%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$QH(6MN3,=*DJD!!HR2WE22C&A XAAQ)9RT%J\-KPT-
   270 Q$YFQ''Q4]BT%IW=(ZF"+F*.GV5-[V8&IC0<OTG1<@G0,KB0,&Y&Y&8"H"H=MSX=MLA$YFS@YFQ$9NS$9NW):^$MCP4MC!!XVN##0<OH:NK2</K2</K2=9^W%9
   271 ^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:.''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3
   272 +;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA(:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.K&<B@ HB@''8BM)46''Y6]M#Z************4-KR4
   273 -KR4-B,+J2,+J2,+J0-LS@-LSD0VPTEAPTEAE$FK"8.K"8.K"5YVJ")VU(HFA  HMCR_]7^9.;-ST4A@%&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JANS)BPJV%)
   274 Z6.W%10^G$%IH"JM#S,;OZ!!B!!HRD,%22, 8NC 9QTYRT%IRTAR4EAY2\''I26-''PRD!!I?ZF!!?F!!(Z!!5.GV8\7"P<OC5A<_@@@VB1XVI.[&Y-5]WVO#8>O#3@0
   275 LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH8<OC2N#"</K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL
   276 #D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HATUJZ&)FM#XVF3,:>1+;DX[V4X*Z&8Y&Y&Y"L#''"M0BP$IVU%Y@PDA@ZN#^3 8"# _G1<[[A,[E1\WY6]''
   277 Y;^7R7M3\7M/K"9/@ HB@ I>@#Z]M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1LE$EAPTEAPQYA"8.K"8.K"8-VU"(*U%ZBA XHBCP4
   278 ''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5MZB S$:P$B%)ZV-+%9\\G!!9IRRH"#X4;N36(P(RD!!KI\,+HNC 8NTUFT%IRT%@T-APV\''I2\-+Y4D!!HR
   279 _6!!(_1(ZF(][!!5.GM8$OC0=P_G0@@E ,VE"[&9&[]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE!!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.
   280 +&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF- XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&)
   281 .FY&Y&X#H98#\@$IBU%YVPDA@PF#(7,8NH(8G1<_F60[F1\WE6]''Y6^7-4-3\7M3[28.[0HB@ HB_ H6''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+
   282 J2,+B41LB41LSDEAPTEAPTEAPX.K"8.K"8.KU%YVJ%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"N#*Z&#NCA0]6MSV (D9N$I@)ZV%+Z9^WGA8^RT$"
   283 H(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEAPTE''I2\''KZ6-!!HRD''=?_7<ZF!!*G!!8^G!!3\7C5APT@@@@@AXVE!!X&9.[&7U5]X>O#8>OLC@0LC@0LCA:^''):
   284 ^''):^(VE!!XVE!!XT<##0<OH:NK2</K2</K2=9^W%9^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:.''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LC
   285 Z&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3+;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA(:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.
   286 K&<B@ HB@''8BM)46''Y6]M#Z************4-KR4-KR4-B,+J2,+J2,+J0-LS@-LSD0VPTEAPTEAE$FK"8.K"8.K"5YVJ")VU(HFA  HMCR_]7^9.;-ST4A@
   287 %&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JB<S)@?JV%)Z6.WQ125G$%IDRJM#S,;OZ!!B!!HRD,%22, 8NC 9QTYRT%IRTAR4EAY2\''I26-''PRD!!I?ZF!!?F!!(Z!!5.G
   288 V8\7"P<OC5A<_@@@VB1XVI.[&Y-5]WVO#8>O#3@0LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH8<OC2N#"</K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%
   289 QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL#D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HATUJZ&)FM#XVF3,:>1+;DX[V4X*Z&8Y&Y&Y"L#''"M0
   290 BP$IVU%Y@PDA@ZN#^3 8"# _G1<[[A,[E1\WY6]''Y;^7R7M3\7M/K"9/@ HB@ I>@#Z]M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1L
   291 E$EAPTEAPQYA"8.K"8.K"8-VU"(*U%ZBA XHBCP4''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5MZB S$:P$B%)ZV-+%9\\G!!9IRRH"#X4;N36(P(RD
   292 !!KI\,+HNC 8NTUFT%IRT%@T-APV\''I2\-+Y4D!!HR_6!!(_1(ZF(][!!5.GM8$OC0=P_G0@@E ,VE"[&9&[]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE
   293 !!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.+&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF- XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0L
   294 W%82L%)Z+HB@UER&)*Q#X6E!!,;N/,[F1[V5-[Z&)Y&Y&Y&X#H2L#BP$IBU%YVPDA@PE;^7,8NC 8G1<_F1,[F1\WE6]''Y6^7-;]3\7M3[6=/[0HB@ HB@ H6
   295 M#Z]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB41LSDEAPTEAPTEAPX.K"8.K"8.KU%YVJ%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"
   296 N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$QH(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE''I2\''KZ6]AHRD''=(ZG<ZF!!*GV8][!!3^IC0<OTG1<
   297 @@AXKE!!X&9.Y&7U5]X>O#8>OLC@0LC@0LCA:NW):^''):^(UCP8VE!!XT<##0<OH:NK2</K2</K2=9^W%9^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:
   298 .''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3+;F/+1 XFA"R$+"8.K!!&''"N^''''@I\@%WVU$TEAPA
   299 (:N#"(*J"(X_G1-,[F0UEQUOS6]OR;]K\WM1\R8.K"9>_''9>_''9>''Y46''Y6]M#Z************4-KR4-KR4-B,+J2,+J2,+J0-LS@-LSD0VPTEAPTEAE$FK
   300 "8.K"8.K"5YVJ")VU(HFA  HMCR_]7^9.;-ST4A@%&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JANS)BPJV%)Z6.W%10^G$%IH"JM#S,;OZ!!B!!HRD,%22, 8NC 9Q
   301 TYRT%IRTAPTEAY2\''I26-+XRD!!I?_7=?F!!(Z!!8^G!!8\7M0=PTE@@@@@@VE!!XVI.[&9-5]WVO#8>O#3@0LC@0LC@0^''):^''):^''*E!!XVE!!XVEOH8<OC2N#"</
   302 K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL#D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HAT
   303 UJZ&)FM#XVF3,:>1+;DX[V4X*Z&8Y&Y&Y"L#''"M0BP$IVU%Y@PDA@ZN#^3 8"# _G1<[[A,[E1\WY6]''Y;^7R7M3\7M/K"9/@ HB@ I>@#Z]M)6]''SX6****
   304 ********-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1LPTEAPTEAPTEA"8.K"8.K"8-VU%X*U%ZBA XHBCP4''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5
   305 MZB /D:PO2%)ZV-+%4\\-Q9IRQD"#X4;N36(P(RD!!KI\,+HNC 8NTUFT%IRT%@T-APV\''I2\-+Y4D!!HR_6!!(_1(ZF(][!!5.GM8$OC0=P_G0@@E ,VE"[&9&[
   306 ]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE!!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.+&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF-
   307  XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>/FA XFIJR.K"8.FZ^H9:^\@%0BU]YVQPTE@F#(:NJ"(*J!!!!<_
   308 F61,[ATUET=OY4=K-4-1\7E1K"8.K''9>_''9>_'':]''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB41LSAYAPTEAPTDVPX.K"8.K"8.KU%X*
   309 J%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$QH(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEAPTE
   310 ''I2\''KZ6-!!HRD''=?_7<ZF!!*G!!8^G!!3\7C5APT@@@@@AXVE!!X&9.[&7U5]X>O#8>OLC@0LC@0LCA:^''):^''):^(VE!!XVE!!XT<##0<OH:NK2</K2</K2=9^W%9
   311 ^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:.''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3
   312 +;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA(:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.K&<B@ HB@''8BM)46''Y6]M#Z************4-KR4
   313 -KR4-B,+J2,+J2,+J0-LS@-LSD0VPTEAPTEAE$FK"8.K"8.K"5YVJ%YVU(HFA  HMCR_]7^9.;-ST4A@%&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JB<S)@?JV%)
   314 Z6.WQ125G$%IDRJM#S,;OZ!!B!!HRD,%22, 8NC 9QTYRT%IRTAR4EAY2\''I26-''PRD!!I?ZF!!?F!!(Z!!5.GV8\7"P<OC5A<_@@@VB1XVI.[&Y-5]WVO#8>O#3@0
   315 LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH8<OC2N#"</K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL
   316 #D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HATUJZ&)FM#XVF3,:>1,[E-[V5-*Z%&Y&Y&Y"L#H2LIBP$IVU%Y@PDA@W-;^3 8NC _G1<[F1,[E1\WY6]''
   317 Y;^7-7M3\7M/[6=/@ HB@ HB@#X6M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1LE$EAPTEAPQYA"8.K"8.K"8-VU"(*U%ZBA XHBCP4
   318 ''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5MZB /D:PO2%)ZV-+%4\\-Q9IRQD"#X4;N36(P(RD!!KI\WKHNXFA DEF''%IRT)24-AR5FQ$YF]GQ4IRT%
   319 _6!!(ZJ,Z*8][V5-["X$OC0=P_G0@_B0,KB2Y&Y&["H"H#45M#440FQ$YLA$YFS$9NS$9^''):P4MCP4NE!!X:NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.
   320 +&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF- XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&)
   321 .FY&Y&X#H98#\@$IBU%YVPDA@PF#(7,8NH(8G1<_F60[F1\WE6]''Y6^7-4-3\7M3[28.[0HB@ HB_ H6''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+
   322 J2,+B41LB0,KB1YAE!!YAE!!XVE(, HB@ HB@ J"(*J%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$Q
   323 H(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE''I2\''KZ6]AHRD''=(ZG<ZF!!*GV8][!!3^IC0<OTG1<@@AXKE!!X&9.Y&7U5]X>O#8>OLC@0LC@0LCA:NW):
   324 ^''):^(UCP8VE!!XT<##0<OH:NK2</K2</K2=9^W%9^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:.''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LC
   325 Z&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3+;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA(:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.
   326 K&<B@ HB@''8BM)46''Y6]M#Z************4-KR4-KR4-B,+J2,+J2,+J0-LS@-LSD0VPTEAPTEAE$FK"8.K"8.K"5YVJ")VU(HFA  HMCR_]7^9.;-ST4A@
   327 %&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JB<S)@?JV%)Z6.WQ125G$%IDRJM#S,;OZ!!B!!HRD,%22, 8NC 9QTYRT%IRTAR4EAY2\''I26-''PRD!!I?ZF!!?F!!(Z!!5.G
   328 V8\7"P<OC5A<_@@@VB1XVI.[&Y-5]WVO#8>O#3@0LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH8<OC2N#"</K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%
   329 QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL#D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HATUJZ&)FM#XVF3,:>1+;DX[V4X*Z&8Y&Y&Y"L#''"M0
   330 BP$IVU%Y@PDA@ZN#^3 8"# _G1<[[A,[E1\WY6]''Y;^7R7M3\7M/K"9/@ HB@ I>@#Z]M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1L
   331 E$EAPTEAPQYA"8.K"8.K"8-VU"(SU%ZBA XHBCP4''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5MZB /D:PO2%)ZV-+%4\\-Q9IRQD"#X4;N36(P(RD
   332 !!KI\,+HNC 8NTUFT%IRT%@T-APV\''I2\-+Y4D!!HR_6!!(_1(ZF(][!!5.GM8$OC0=P_G0@@E ,VE"[&9&[]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE
   333 !!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.+&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF- XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0L
   334 W%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&).FY&Y&X#H98#\@$IBU%YVPDA@PF#(7,8NH(8G1<_F60[F1\WE6]''Y6^7-4-3\7M3[28.[0HB@ HB_ H6
   335 ''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB41LSDEAPTEAPTEAPX.K"8.K"8.KU%YVD5YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"
   336 N#*Z&#NCA0]6(*H''I;2<O3<)ZV%DZ4]GB+V5IBPQH)FQN3,=*DJD!!HR2WE22C&A XAAQ)9RT%J\-KPT-Q$YFQ''Q4]BT%IW=(ZF"+F*.GV5-[V8&IC0<OTG1<
   337 @G0,KB0,&Y&Y&8"H"H=MSX=MLA$YFS@YFQ$9NS$9NW):^$MCP4MC!!XVN##0<OH:NK2</K2</K2=9^W%9^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:
   338 .''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3+;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA
   339 (:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.K&<B@ HB@''8BM)46''Y6]M#Z************4-KR4-KR4-B,+J2,+J2,+J0-LS@,KB0,VPQXVPQXVE!!ZK
   340 HB@ HB@ HB(*J!!MVU(HFA  HMCR_]7^9.;-ST4A@%&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JB<S)@?JV%)Z6.WQ125G$%IDRJM#S,;OZ!!B!!HRD,%22, 8NC 9Q
   341 TYRT%IRTAR4EAY2\''I26-''PRD!!I?ZF!!?F!!(Z!!5.GV8\7"P<OC5A<_@@@VB1XVI.[&Y-5]WVO#8>O#3@0LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH8<OC2N#"</
   342 K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL#D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HAT
   343 UJZ&)FM#XVF3,:>1,[E-[V5-*Z%&Y&Y&Y"L#H2LIBP$IVU%Y@PDA@W-;^3 8NC _G1<[F1,[E1\WY6]''Y;^7-7M3\7M/[6=/@ HB@ HB@#X6M)6]''SX6****
   344 ********-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1LPTEAPTEAPTEA"8.K"8.K"8-VU%X*U%ZBA XHBCP4''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5
   345 MZB /D:PO2%)ZV-+%4\\-Q9IRQD"#X4;N36(P(RD!!KI\,+HNC 8NTUFT%IRT%@T-APV\''I2\-+Y4D!!HR_6!!(_1(ZF(][!!5.GM8$OC0=P_G0@@E ,VE"[&9&[
   346 ]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE!!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.+&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF-
   347  XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&).FY&Y&X#H98#\@$IBU%YVPDA@PF#(7,8NH(8G1<_
   348 F60[F1\WE6]''Y6^7-4-3\7M3[28.[0HB@ HB_ H6''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB41LSAYAPTEAPTDVPX.K"8.K"8.KU%X*
   349 J%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"N#*Z&#NCA0]6MSV (D9N$I@)ZV%+Z9^WGA8^RT$"H(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE
   350 ''I2\''KZ6]AHRD''=(ZG<ZF!!*GV8][!!3^IC0<OTG1<@@AXKE!!X&9.Y&7U5]X>O#8>OLC@0LC@0LCA:NW):^''):^(UCP8VE!!XT<##0<OH:NK2</K2</K2=9^W%9
   351 ^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:.''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3
   352 +;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA(:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.K&<B@ HB@''8BM)46''Y6]M#Z************4-KR4
   353 -KR4-B,+J2,+J2,+J0-LS@-LSD0VPTEAPTEAE$FK"8.K"8.K"5YVJ%YVU(HFA  HMCR_]7^9.;-ST4A@%&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JB<S)@?JV%)
   354 Z6.WQ125G$%IDRJM#S,;OZ!!B!!HRD,%22, 8NC 9QTYRT%IRTAPTEAY2\''I26-+XRD!!I?_7=?F!!(Z!!8^G!!8\7M0=PTE@@@@@@VE!!XVI.[&9-5]WVO#8>O#3@0
   355 LC@0LC@0^''):^''):^''*E!!XVE!!XVEOH8<OC2N#"</K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL
   356 #D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HATUJZ&)FM#XVF3,:>1,[E-[V5-*Z%&Y&Y&Y"L#H2LIBP$IVU%Y@PDA@W-;^3 8NC _G1<[F1,[E1\WY6]''
   357 Y;^7-7M3\7M/[6=/@ HB@ HB@#X6M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1LPTEAPTEAPTEA"8.K"8.K"8-VU%ZBU%ZBA XHBCP4
   358 ''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5MZB /D:PO2%)ZV-+%4\\-Q9IRQD"#X4;N36(P(RD!!KI\WKHNXFA DEF''%IRT)24EAR5FQ$YF]GR6IRT%
   359 _7=?ZJ,Z*8^GV8]["S\OTEAP@@@@_B1XKB2Y&Y.["H"H#45M#440FQ$YLA$YFS%:NS$9^''):P8VEP4NE!!X:NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.
   360 +&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF- XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&)
   361 .FY&Y&X#H98#\@$IBU%YVPDA@PF#(7,8NH(8G1<_F60[F1\WE6]''Y6^7-4-3\7M3[28.[0HB@ HB_ H6''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+
   362 J2,+B41LB0,KB1YAE!!YAE!!XVE(, HB@ HB@ J"(*A%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$Q
   363 H(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEAPTE''I2\''KZ6-!!HRD''=?_7<ZF!!*G!!8^G!!3\7C5APT@@@@@AXVE!!X&9.[&7U5]X>O#8>OLC@0LC@0LCA:^''):
   364 ^''):^(VE!!XVE!!XT<##0<OH:NK2</K2</K2=9^W%9^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:.''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LC
   365 Z&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3+;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA(:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.
   366 K&<B@ HB@''8BM)46''Y6]M#Z************4-KR4-KR4-B,+J2,+J2,+J0-LS@-LSD0VPTEAPTEAE$FK"8.K"8.K"5YVJ#QVU(HFA  HMCR_]7^9.;-ST4A@
   367 %&9.,KAHRBD!!X#(:&)(3 0\G]*J"I2^</C<?JV%)QF-GQ0*5-RP$DRJQ$S,;OZ!!B!!HRD,%22, 8NC 9QTYRT%IRTAR4EAY2\''I26-''PRD!!I?ZF!!?F!!(Z!!5.G
   368 V8\7"P<OC5A<_@@@VB1XVI.[&Y-5]WVO#8>O#3@0LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH8<OC2N#"</K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%
   369 QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL#D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HATUJZ&)FM#XVF3,:>1+;DX[V4X*Z&8Y&Y&Y"L#''"M0
   370 BP$IVU%Y@PDA@ZN#^3 8"# _G1<[[A,[E1\WY6]''Y;^7R7M3\7M/K"9/@ HB@ I>@#Z]M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KB0,K
   371 E$DVE$DVE!!XV"2@ HB@ HB@*J"(b') ; colorMapFromArray:#[108 168 80 124 90 170 164 90 170 92 122 170 92 164 170 144 168 80 164 96 90 168 132 80 164 98 90 116 90 170 164 152 80 164 90 120 92 110 170 92 152 170 156 168 80 112 166 80 152 166 80 164 158 80 132 168 80 164 88 90 124 88 170 144 88 170 164 90 110 144 90 170 100 88 170 92 166 90 124 168 80 140 90 170 168 152 80 92 126 170 168 154 80 136 90 170 164 90 100 164 122 90 168 158 80 112 90 170 164 156 80 132 166 80 92 114 170 164 138 80 92 116 170 168 144 80 164 90 90 164 90 130 104 166 80 144 166 80 160 88 170 92 166 130 92 168 90 92 146 170 92 106 170 164 130 80 164 100 90 168 136 80 164 90 160 116 168 80 132 90 170 92 166 100 164 126 90 168 162 80 92 168 120 168 164 80 92 138 170 164 142 80 164 112 90 164 92 110 164 166 80 92 166 110 164 148 80 92 166 170 140 166 80 164 150 80 164 120 90 168 156 80 92 130 170 152 88 170 164 92 120 92 166 80 168 140 80 148 88 170 112 168 80 152 168 80 92 158 170 164 110 90 92 98 170 92 140 170 164 92 90 120 88 170 104 168 80 120 90 170 92 104 170 120 166 80 160 166 80 92 148 170 92 108 170 92 150 170 156 166 80 92 90 170 164 124 90 92 92 170 92 134 170 92 166 160 108 90 170 148 90 170 128 166 80 168 146 80 92 120 170 168 148 80 140 88 170 100 90 170 164 116 90 160 90 170 116 88 170 156 88 170 92 128 170 156 90 170 136 166 80 96 168 80 164 134 80 164 104 90 92 154 170 92 166 140 92 168 100 128 90 170 108 166 80 92 118 170 164 88 170 128 168 80 92 100 170 92 142 170 164 94 90 168 130 80 164 168 80 92 168 110 136 88 170 120 168 80 96 166 80 116 166 80 132 88 170 164 92 100 92 132 170 168 160 80 92 166 120 92 168 80 168 142 80 164 160 80 104 88 170 92 160 170 148 168 80 92 162 170 164 114 90 168 150 80 92 124 170 100 166 80 164 128 80 100 168 80 140 168 80 164 88 160 112 88 170 164 102 90 168 138 80 92 112 170 164 136 80 128 88 170 92 94 170 92 136 170 92 96 170 148 166 80 168 166 80 104 90 170 164 90 150 124 166 80 92 102 170 92 144 170 92 166 150 96 88 170 164 118 90 96 90 170 160 168 80 92 88 170 164 90 140 164 154 80 136 168 80 152 90 170 108 88 170 164 106 90 92 156 170 164 108 90 164 140 80]; yourself]
   372 !
   373 
   374 pickColorIcon
   375     ^ ToolbarIconLibrary pipette16x16Icon
   376 ! !
   377 
   378 !ColorEditDialog class methodsFor:'interface specs'!
   379 
   380 windowSpec
   381     "This resource specification was automatically generated
   382      by the UIPainter of ST/X."
   383 
   384     "Do not manually edit this!! If it is corrupted,
   385      the UIPainter may not be able to read the specification."
   386 
   387     "
   388      UIPainter new openOnClass:ColorEditDialog andSelector:#windowSpec
   389      ColorEditDialog new openInterface:#windowSpec
   390      ColorEditDialog open
   391     "
   392 
   393     <resource: #canvas>
   394 
   395     ^ 
   396     #(FullSpec
   397        name: windowSpec
   398        window: 
   399       (WindowSpec
   400          label: 'Define Color'
   401          name: 'Define Color'
   402          min: (Point 440 360)
   403          bounds: (Rectangle 0 0 440 360)
   404        )
   405        component: 
   406       (SpecCollection
   407          collection: (
   408           (VerticalPanelViewSpec
   409              name: 'RGBLabelPanel'
   410              layout: (LayoutFrame 0 0 0 0 90 0 76 0)
   411              horizontalLayout: fit
   412              verticalLayout: spreadSpace
   413              horizontalSpace: 3
   414              verticalSpace: 3
   415              component: 
   416             (SpecCollection
   417                collection: (
   418                 (LabelSpec
   419                    label: 'Red:'
   420                    name: 'RedLabel'
   421                    translateLabel: true
   422                    adjust: right
   423                    useDefaultExtent: true
   424                  )
   425                 (LabelSpec
   426                    label: 'Green:'
   427                    name: 'GreenLabel'
   428                    translateLabel: true
   429                    adjust: right
   430                    useDefaultExtent: true
   431                  )
   432                 (LabelSpec
   433                    label: 'Blue:'
   434                    name: 'BlueLabel'
   435                    translateLabel: true
   436                    adjust: right
   437                    useDefaultExtent: true
   438                  )
   439                 )
   440               
   441              )
   442            )
   443           (VerticalPanelViewSpec
   444              name: 'RGBSliderPanel'
   445              layout: (LayoutFrame 90 0 0 0 -177 1 76 0)
   446              horizontalLayout: fit
   447              verticalLayout: spreadSpace
   448              horizontalSpace: 3
   449              verticalSpace: 3
   450              component: 
   451             (SpecCollection
   452                collection: (
   453                 (SliderSpec
   454                    name: 'RedSlider'
   455                    tabable: false
   456                    model: red
   457                    orientation: horizontal
   458                    stop: 255
   459                    step: 1
   460                    backgroundColor: (Color 100.0 0.0 0.0)
   461                    extent: (Point 173 16)
   462                  )
   463                 (SliderSpec
   464                    name: 'GreenSlider'
   465                    tabable: false
   466                    model: green
   467                    orientation: horizontal
   468                    stop: 255
   469                    step: 1
   470                    backgroundColor: (Color 0.0 100.0 0.0)
   471                    extent: (Point 173 16)
   472                  )
   473                 (SliderSpec
   474                    name: 'BlueSlider'
   475                    tabable: false
   476                    model: blue
   477                    orientation: horizontal
   478                    stop: 255
   479                    step: 1
   480                    backgroundColor: (Color 0.0 0.0 100.0)
   481                    extent: (Point 173 16)
   482                  )
   483                 )
   484               
   485              )
   486            )
   487           (VerticalPanelViewSpec
   488              name: 'RGBFieldPanel'
   489              layout: (LayoutFrame -173 1 0 0 -130 1 76 0)
   490              horizontalLayout: fit
   491              verticalLayout: spreadSpace
   492              horizontalSpace: 3
   493              verticalSpace: 3
   494              component: 
   495             (SpecCollection
   496                collection: (
   497                 (InputFieldSpec
   498                    name: 'RedField'
   499                    model: red
   500                    type: numberInRange
   501                    numChars: 3
   502                    minValue: 0
   503                    maxValue: 255
   504                    acceptOnPointerLeave: false
   505                    extent: (Point 41 20)
   506                  )
   507                 (InputFieldSpec
   508                    name: 'GreenField'
   509                    model: green
   510                    type: numberInRange
   511                    numChars: 3
   512                    minValue: 0
   513                    maxValue: 255
   514                    acceptOnPointerLeave: false
   515                    extent: (Point 41 20)
   516                  )
   517                 (InputFieldSpec
   518                    name: 'BlueField'
   519                    model: blue
   520                    type: numberInRange
   521                    numChars: 3
   522                    minValue: 0
   523                    maxValue: 255
   524                    acceptOnPointerLeave: false
   525                    extent: (Point 41 20)
   526                  )
   527                 )
   528               
   529              )
   530            )
   531           (VerticalPanelViewSpec
   532              name: 'RGBFieldPanelHex'
   533              layout: (LayoutFrame -130 1 0 0 -100 1 76 0)
   534              horizontalLayout: fit
   535              verticalLayout: spreadSpace
   536              horizontalSpace: 3
   537              verticalSpace: 3
   538              component: 
   539             (SpecCollection
   540                collection: (
   541                 (InputFieldSpec
   542                    name: 'EntryField4'
   543                    model: red
   544                    type: hexIntegerInRange
   545                    numChars: 3
   546                    minValue: 0
   547                    maxValue: 255
   548                    acceptOnPointerLeave: false
   549                    extent: (Point 28 20)
   550                  )
   551                 (InputFieldSpec
   552                    name: 'EntryField5'
   553                    model: green
   554                    type: hexIntegerInRange
   555                    numChars: 3
   556                    minValue: 0
   557                    maxValue: 255
   558                    acceptOnPointerLeave: false
   559                    extent: (Point 28 20)
   560                  )
   561                 (InputFieldSpec
   562                    name: 'EntryField6'
   563                    model: blue
   564                    type: hexIntegerInRange
   565                    numChars: 3
   566                    minValue: 0
   567                    maxValue: 255
   568                    acceptOnPointerLeave: false
   569                    extent: (Point 28 20)
   570                  )
   571                 )
   572               
   573              )
   574            )
   575           (VerticalPanelViewSpec
   576              name: 'HLSLabelPanel'
   577              layout: (LayoutFrame 0 0 86 0 90 0 163 0)
   578              horizontalLayout: fit
   579              verticalLayout: spreadSpace
   580              horizontalSpace: 3
   581              verticalSpace: 3
   582              component: 
   583             (SpecCollection
   584                collection: (
   585                 (LabelSpec
   586                    label: 'Hue:'
   587                    name: 'Label1'
   588                    translateLabel: true
   589                    adjust: right
   590                    useDefaultExtent: true
   591                  )
   592                 (LabelSpec
   593                    label: 'Light:'
   594                    name: 'Label2'
   595                    translateLabel: true
   596                    adjust: right
   597                    useDefaultExtent: true
   598                  )
   599                 (LabelSpec
   600                    label: 'Saturation:'
   601                    name: 'Label3'
   602                    translateLabel: true
   603                    adjust: right
   604                    useDefaultExtent: true
   605                  )
   606                 )
   607               
   608              )
   609            )
   610           (VerticalPanelViewSpec
   611              name: 'HLSSliderPanel'
   612              layout: (LayoutFrame 90 0 86 0 -177 1 163 0)
   613              horizontalLayout: fit
   614              verticalLayout: spreadSpace
   615              horizontalSpace: 3
   616              verticalSpace: 3
   617              component: 
   618             (SpecCollection
   619                collection: (
   620                 (SliderSpec
   621                    name: 'HueSlider'
   622                    tabable: false
   623                    model: hue
   624                    orientation: horizontal
   625                    stop: 359
   626                    step: 1
   627                    keyboardStep: 1
   628                    extent: (Point 173 16)
   629                  )
   630                 (SliderSpec
   631                    name: 'LightSlider'
   632                    tabable: false
   633                    model: light
   634                    orientation: horizontal
   635                    step: 1
   636                    backgroundColor: (Color 67.0 67.0 67.0)
   637                    keyboardStep: 1
   638                    extent: (Point 173 16)
   639                  )
   640                 (SliderSpec
   641                    name: 'SaturationSlider'
   642                    tabable: false
   643                    model: saturation
   644                    orientation: horizontal
   645                    step: 1
   646                    backgroundColor: (Color 67.0 67.0 67.0)
   647                    keyboardStep: 1
   648                    extent: (Point 173 16)
   649                  )
   650                 )
   651               
   652              )
   653            )
   654           (VerticalPanelViewSpec
   655              name: 'HLSFieldPanel'
   656              layout: (LayoutFrame -173 1 86 0 -130 1 163 0)
   657              horizontalLayout: fit
   658              verticalLayout: spreadSpace
   659              horizontalSpace: 3
   660              verticalSpace: 3
   661              component: 
   662             (SpecCollection
   663                collection: (
   664                 (InputFieldSpec
   665                    name: 'EntryField1'
   666                    model: hue
   667                    type: numberInRange
   668                    numChars: 3
   669                    minValue: 0
   670                    maxValue: 359
   671                    acceptOnPointerLeave: false
   672                    extent: (Point 41 20)
   673                  )
   674                 (InputFieldSpec
   675                    name: 'EntryField2'
   676                    model: light
   677                    type: numberInRange
   678                    numChars: 3
   679                    minValue: 0
   680                    maxValue: 100
   681                    acceptOnPointerLeave: false
   682                    extent: (Point 41 20)
   683                  )
   684                 (InputFieldSpec
   685                    name: 'EntryField3'
   686                    model: saturation
   687                    type: numberInRange
   688                    numChars: 3
   689                    minValue: 0
   690                    maxValue: 100
   691                    acceptOnPointerLeave: false
   692                    extent: (Point 41 20)
   693                  )
   694                 )
   695               
   696              )
   697            )
   698           (ViewSpec
   699              name: 'PreviewBoxFrame'
   700              layout: (LayoutFrame -100 1 4 0.0 -3 1.0 -39 1.0)
   701              level: 1
   702              component: 
   703             (SpecCollection
   704                collection: (
   705                 (LabelSpec
   706                    label: 'Preview'
   707                    name: 'PreviewBox'
   708                    layout: (LayoutFrame 2 0.0 2 0.0 -2 1.0 -2 1.0)
   709                    level: -1
   710                    translateLabel: true
   711                    postBuildCallback: postBuildPreviewBox:
   712                  )
   713                 )
   714               
   715              )
   716            )
   717           (LabelSpec
   718              label: 'Brightness:'
   719              name: 'Label5'
   720              layout: (LayoutFrame 0 0 175 0 90 0 197 0)
   721              activeHelpKey: brightness
   722              translateLabel: true
   723              adjust: right
   724            )
   725           (InputFieldSpec
   726              name: 'EntryField8'
   727              layout: (LayoutFrame 90 0 175 0 -277 1 197 0)
   728              activeHelpKey: brightness
   729              model: brightnessStringHolder
   730              isReadOnly: true
   731              immediateAccept: false
   732              acceptOnReturn: true
   733              acceptOnTab: true
   734              acceptOnLostFocus: true
   735              acceptOnPointerLeave: true
   736            )
   737           (LabelSpec
   738              label: 'Color Name:'
   739              name: 'ColorNameLabel'
   740              layout: (LayoutFrame 2 0 214 0 135 0 236 0)
   741              activeHelpKey: colorName
   742              translateLabel: true
   743              adjust: right
   744            )
   745           (InputFieldSpec
   746              name: 'ColorNameField'
   747              layout: (LayoutFrame 135 0 214 0 -122 1 236 0)
   748              activeHelpKey: colorName
   749              model: colorNameHolder
   750              immediateAccept: false
   751              acceptOnReturn: true
   752              acceptOnTab: true
   753              acceptOnLostFocus: true
   754              acceptOnPointerLeave: true
   755            )
   756           (LabelSpec
   757              label: 'HTML Color Name:'
   758              name: 'HTMLColorNameLabel'
   759              layout: (LayoutFrame 2 0 240 0 135 0 262 0)
   760              activeHelpKey: htmlColorName
   761              translateLabel: true
   762              adjust: right
   763            )
   764           (InputFieldSpec
   765              name: 'MLHTColorNameFieldField'
   766              layout: (LayoutFrame 135 0 240 0 -122 1 262 0)
   767              activeHelpKey: htmlColorName
   768              model: htmlColorNameHolder
   769              immediateAccept: false
   770              acceptOnReturn: true
   771              acceptOnTab: true
   772              acceptOnLostFocus: true
   773              acceptOnPointerLeave: true
   774            )
   775           (LabelSpec
   776              label: 'Color Definition:'
   777              name: 'Label4'
   778              layout: (LayoutFrame 2 0 266 0 135 0 288 0)
   779              activeHelpKey: colorDefinitionString
   780              translateLabel: true
   781              adjust: right
   782            )
   783           (InputFieldSpec
   784              name: 'EntryField7'
   785              layout: (LayoutFrame 135 0 266 0 -122 1 288 0)
   786              activeHelpKey: colorDefinitionString
   787              model: colorDefinitionStringHolder
   788              isReadOnly: true
   789              immediateAccept: false
   790              acceptOnReturn: true
   791              acceptOnTab: true
   792              acceptOnLostFocus: true
   793              acceptOnPointerLeave: true
   794            )
   795           (ActionButtonSpec
   796              label: 'Copy Color'
   797              name: 'CopyColor'
   798              layout: (LayoutFrame 12 0 298 0 120 0 320 0)
   799              activeHelpKey: hlsMixer
   800              translateLabel: true
   801              resizeForLabel: true
   802              tabable: true
   803              model: copyColor
   804            )
   805           (ActionButtonSpec
   806              label: 'Paste Color'
   807              name: 'PasteColor'
   808              layout: (LayoutFrame 122 0 298 0 240 0 320 0)
   809              translateLabel: true
   810              resizeForLabel: true
   811              tabable: true
   812              model: pasteColor
   813            )
   814           (ActionButtonSpec
   815              label: 'pickColorIcon'
   816              name: 'Button1'
   817              layout: (LayoutFrame 285 0 298 0 312 0 325 0)
   818              activeHelpKey: pickColor
   819              hasCharacterOrientedLabel: false
   820              translateLabel: true
   821              resizeForLabel: true
   822              tabable: true
   823              model: pickColor
   824            )
   825           (HorizontalPanelViewSpec
   826              name: 'HorizontalPanel1'
   827              layout: (LayoutFrame 0 0.0 -32 1 -16 1.0 0 1.0)
   828              horizontalLayout: okCancelBox
   829              verticalLayout: centerMax
   830              horizontalSpace: 3
   831              verticalSpace: 3
   832              reverseOrderIfOKAtLeft: true
   833              component: 
   834             (SpecCollection
   835                collection: (
   836                 (ActionButtonSpec
   837                    label: 'Cancel'
   838                    name: 'CancelButton'
   839                    translateLabel: true
   840                    resizeForLabel: false
   841                    tabable: true
   842                    model: cancel
   843                    useDefaultExtent: true
   844                  )
   845                 (ActionButtonSpec
   846                    label: 'OK'
   847                    name: 'OKButton'
   848                    translateLabel: true
   849                    resizeForLabel: false
   850                    tabable: true
   851                    model: accept
   852                    isDefault: true
   853                    defaultable: true
   854                    useDefaultExtent: true
   855                  )
   856                 )
   857               
   858              )
   859              keepSpaceForOSXResizeHandleH: true
   860            )
   861           )
   862         
   863        )
   864      )
   865 ! !
   866 
   867 !ColorEditDialog class methodsFor:'startup'!
   868 
   869 openOn:aColor
   870     ^ self new
   871         color:aColor;
   872         open;
   873         yourself
   874 
   875     "
   876      self openOn:Color red
   877     "
   878 ! !
   879 
   880 !ColorEditDialog methodsFor:'accessing'!
   881 
   882 color
   883     |colorName|
   884 
   885     colorName := self colorName.
   886     colorName notEmptyOrNil ifTrue:[
   887         ^ Color name:(colorName asSymbol)
   888     ].
   889     ^ Color redByte:(red value) greenByte:(green value) blueByte:(blue value)
   890 !
   891 
   892 color:aColor
   893     aColor isNil ifTrue:[
   894         ^ self
   895     ].
   896 
   897     aColor isSymbol ifTrue:[
   898         self colorNameHolder value:aColor
   899     ] ifFalse:[
   900         self red value:aColor redByte.
   901         self green value:aColor greenByte.
   902         self blue value:aColor blueByte.
   903     ]
   904 !
   905 
   906 colorName
   907     ^ colorNameHolder value
   908 !
   909 
   910 colorNameOrColor
   911     |colorName|
   912 
   913     colorName := self colorName.
   914     colorName notEmptyOrNil ifTrue:[
   915         "/ ^ Color name:(colorName asSymbol)
   916         ^ colorName asSymbol
   917     ].
   918     ^ Color redByte:(red value) greenByte:(green value) blueByte:(blue value)
   919 !
   920 
   921 htmlColorName
   922     ^ htmlColorNameHolder value
   923 ! !
   924 
   925 !ColorEditDialog methodsFor:'actions'!
   926 
   927 colorChanged
   928     |clr nm|
   929 
   930     clr := self colorNameOrColor.
   931     clr isColor ifTrue:[
   932         "not a symbol"
   933         self setPreview:clr.
   934         self htmlColorNameHolder value:(clr htmlPrintString) withoutNotifying:self.
   935 
   936         nm := #(white red green blue black) detect:[:nm | clr = (Color perform:nm)] ifNone:nil.
   937         nm notNil ifTrue:[
   938             self colorDefinitionStringHolder value:('Color ',nm).
   939         ] ifFalse:[
   940             self colorDefinitionStringHolder value:('Color rgbValue:16r',(clr rgbValue hexPrintString leftPaddedTo:6 with:$0)).
   941         ].
   942         self brightnessStringHolder value:((clr brightness asFixedPoint:3) printString).
   943     ].
   944 
   945     "Modified: / 27-01-2011 / 12:54:04 / cg"
   946 !
   947 
   948 colorChangedTo:clr
   949     "compute rgb and hls (if possible)"
   950 
   951     |h|
   952 
   953     self red   value:clr redByte withoutNotifying:self.
   954     self green value:clr greenByte withoutNotifying:self.
   955     self blue  value:clr blueByte withoutNotifying:self.
   956 
   957     h := clr hue.
   958     h notNil ifTrue:[
   959         self hue        value:(h rounded) withoutNotifying:self.
   960     ].
   961     self light      value:(clr light rounded) withoutNotifying:self.
   962     self saturation value:(clr saturation rounded) withoutNotifying:self.
   963 
   964     self colorChanged
   965 
   966     "Modified: / 27-01-2011 / 12:48:28 / cg"
   967 !
   968 
   969 colorNameChanged
   970     "compute rgb and hls (if possible)"
   971 
   972     |clr|
   973 
   974     clr := Color name:(self colorName) ifIllegal:nil.
   975     clr isNil ifTrue:[
   976         ^ self
   977     ].
   978     self colorChangedTo:clr.
   979 !
   980 
   981 copyColor
   982     self window setClipboardObject:self color
   983 !
   984 
   985 copyColorName
   986     self window setClipboardText:self htmlColorName
   987 !
   988 
   989 hlsSliderChanged
   990     "compute rgb"
   991 
   992     Color withRGBFromHue:hue value light:light value saturation:saturation value do:[:r :g :b |
   993         red    value:(r * 255 / 100) rounded withoutNotifying:self.
   994         green  value:(g * 255 / 100) rounded withoutNotifying:self.
   995         blue   value:(b * 255 / 100) rounded withoutNotifying:self.
   996     ].
   997     colorNameHolder value:'' withoutNotifying:self.
   998     self colorChanged
   999 !
  1000 
  1001 htmlColorNameChanged
  1002     "compute rgb and hls (if possible)"
  1003 
  1004     |clr|
  1005 
  1006     htmlColorNameHolder value isEmptyOrNil ifTrue:[
  1007         ^ self.
  1008     ].
  1009 
  1010     clr := Color rgbValue:(Integer 
  1011                                 readFrom:(htmlColorNameHolder value copyFrom:2)
  1012                                 radix:16
  1013                                 onError:nil).
  1014     clr isNil ifTrue:[
  1015         ^ self
  1016     ].
  1017     self colorNameHolder value:'' withoutNotifying:self.
  1018     self colorChangedTo:clr.
  1019 !
  1020 
  1021 pasteColor
  1022     |copyBufferColor|
  1023 
  1024     copyBufferColor := self window getClipboardObject.
  1025     copyBufferColor isColor ifFalse:[
  1026         UserPreferences current beepInEditor ifTrue:[                
  1027             self window beep.
  1028         ].
  1029         ^ self
  1030     ].
  1031     self color:copyBufferColor
  1032 !
  1033 
  1034 pickColor
  1035     |color|
  1036 
  1037     color := Color fromUserWithFeedBack:[:clr | self setPreview:clr].
  1038     color notNil ifTrue:[
  1039         self color:color.
  1040     ]
  1041 !
  1042 
  1043 rgbSliderChanged
  1044     "compute hls"
  1045 
  1046     |r g b|
  1047 
  1048     r := self red value.
  1049     g := self green value.
  1050     b := self blue value.
  1051 
  1052     Color withHLSFromRed:(r * 100 / 255) green:(g * 100 / 255) blue:(b * 100 / 255) do:[:h :l :s |
  1053         h isNil ifTrue:[
  1054             "/ achromatic
  1055         ] ifFalse:[
  1056             self hue    value:(h rounded) withoutNotifying:self.
  1057         ].
  1058         self light      value:(l rounded) withoutNotifying:self.
  1059         self saturation value:(s rounded) withoutNotifying:self.
  1060     ].
  1061     self colorNameHolder value:'' withoutNotifying:self.
  1062     self colorChanged
  1063 !
  1064 
  1065 setPreview:color
  1066     previewBox isNil ifTrue:[^ self "called before setup"].
  1067 
  1068     previewBox backgroundColor:color.
  1069     previewBox foregroundColor:color contrastingBlackOrWhite.
  1070 ! !
  1071 
  1072 !ColorEditDialog methodsFor:'aspects'!
  1073 
  1074 blue
  1075     blue isNil ifTrue:[
  1076         blue := 0 asValue.
  1077         blue addDependent:self.
  1078     ].
  1079     ^blue
  1080 !
  1081 
  1082 brightnessStringHolder
  1083     brightnessStringHolder isNil ifTrue:[
  1084         brightnessStringHolder := 0 asValue.
  1085         "/ brightness addDependent:self.
  1086     ].
  1087     ^ brightnessStringHolder
  1088 
  1089     "Created: / 27-01-2011 / 12:48:00 / cg"
  1090 !
  1091 
  1092 colorDefinitionStringHolder
  1093     colorDefinitionStringHolder isNil ifTrue:[
  1094         colorDefinitionStringHolder := '' asValue.
  1095         "/ colorDefinitionStringHolder addDependent:self.
  1096     ].
  1097     ^colorDefinitionStringHolder
  1098 
  1099     "Created: / 27-01-2011 / 12:38:12 / cg"
  1100 !
  1101 
  1102 colorNameHolder
  1103     colorNameHolder isNil ifTrue:[
  1104         colorNameHolder := '' asValue.
  1105         colorNameHolder addDependent:self.
  1106     ].
  1107     ^colorNameHolder
  1108 !
  1109 
  1110 green
  1111     green isNil ifTrue:[
  1112         green := 0 asValue.
  1113         green addDependent:self.
  1114     ].
  1115     ^green
  1116 !
  1117 
  1118 htmlColorNameHolder
  1119     htmlColorNameHolder isNil ifTrue:[
  1120         htmlColorNameHolder := '' asValue.
  1121         htmlColorNameHolder addDependent:self.
  1122     ].
  1123     ^htmlColorNameHolder
  1124 !
  1125 
  1126 hue
  1127     hue isNil ifTrue:[
  1128         hue := 0 asValue.
  1129         hue addDependent:self.
  1130     ].
  1131     ^hue
  1132 !
  1133 
  1134 light
  1135     light isNil ifTrue:[
  1136         light := 0 asValue.
  1137         light addDependent:self.
  1138     ].
  1139     ^light
  1140 !
  1141 
  1142 red
  1143     red isNil ifTrue:[
  1144         red := 0 asValue.
  1145         red addDependent:self.
  1146     ].
  1147     ^red
  1148 !
  1149 
  1150 saturation
  1151     saturation isNil ifTrue:[
  1152         saturation := 0 asValue.
  1153         saturation addDependent:self.
  1154     ].
  1155     ^saturation
  1156 ! !
  1157 
  1158 !ColorEditDialog methodsFor:'change & update'!
  1159 
  1160 update:something with:aParameter from:changedObject
  1161     (changedObject == red
  1162     or:[changedObject == green
  1163     or:[changedObject == blue]]) ifTrue:[
  1164         self rgbSliderChanged.
  1165         ^ self
  1166     ].
  1167 
  1168     (changedObject == hue
  1169     or:[changedObject == light
  1170     or:[changedObject == saturation]]) ifTrue:[
  1171         self hlsSliderChanged.
  1172         ^ self
  1173     ].
  1174 
  1175     (changedObject == colorNameHolder) ifTrue:[
  1176         self colorNameChanged.
  1177         ^ self
  1178     ].
  1179     (changedObject == htmlColorNameHolder) ifTrue:[
  1180         self htmlColorNameChanged.
  1181         ^ self
  1182     ].
  1183 
  1184     super update:something with:aParameter from:changedObject
  1185 ! !
  1186 
  1187 !ColorEditDialog methodsFor:'startup & release'!
  1188 
  1189 postBuildPreviewBox:aView
  1190     previewBox := aView
  1191 !
  1192 
  1193 postBuildWith:aBuilder
  1194     super postBuildWith:aBuilder.
  1195     (aBuilder componentAt:'HueSlider') 
  1196         viewBackground:
  1197             (ImageBackground new 
  1198                 image:(self class hueGradientImage);
  1199                 align:#fit;
  1200                 yourself).
  1201     self colorChanged.
  1202 
  1203     "Modified: / 6.9.1998 / 22:55:25 / cg"
  1204 ! !
  1205 
  1206 !ColorEditDialog class methodsFor:'documentation'!
  1207 
  1208 version
  1209     ^ '$Header$'
  1210 !
  1211 
  1212 version_CVS
  1213     ^ '$Header$'
  1214 ! !
  1215