From b07a915ae99287d60b6f13399a56a3b8026a643d Mon Sep 17 00:00:00 2001 From: nmeier Date: Thu, 16 Jul 2020 23:19:17 -0400 Subject: [PATCH] upgrade gradle, update against API dicelib changes introduced under https://github.com/RPTools/maptool/issues/1898 Fix variable changes showing in variable panel. --- .gitignore | 27 +- build.gradle | 57 +- gradle/wrapper/gradle-wrapper.jar | Bin 54212 -> 54417 bytes gradle/wrapper/gradle-wrapper.properties | 3 +- gradlew | 6 +- spotless.license.java | 24 + .../java/net/rptools/dicetool/DiceTool.java | 76 +- .../java/net/rptools/dicetool/Test02.java | 60 +- .../rptools/dicetool/model/AbstractData.java | 68 +- .../net/rptools/dicetool/model/Button.java | 85 +- .../rptools/dicetool/model/ButtonGroup.java | 89 +- .../java/net/rptools/dicetool/model/Data.java | 95 +- .../net/rptools/dicetool/model/Function.java | 130 ++- .../net/rptools/dicetool/model/Variable.java | 79 +- .../model/xstream/ButtonConverter.java | 89 +- .../model/xstream/VariableConverter.java | 64 +- .../net/rptools/dicetool/resultset/Row.java | 68 +- .../rptools/dicetool/ui/CellColorWrapper.java | 113 +- .../net/rptools/dicetool/ui/ContextMenu.java | 281 ++--- .../dicetool/ui/ContextSwitchAction.java | 61 +- .../rptools/dicetool/ui/CustomRollPanel.java | 244 +++-- .../dicetool/ui/CustomTableCellRenderer.java | 88 +- .../net/rptools/dicetool/ui/DicePanel.java | 332 +++--- .../dicetool/ui/ListSelectionModel.java | 98 +- .../net/rptools/dicetool/ui/MainFrame.java | 982 +++++++++--------- .../dicetool/ui/RenameCustomRollDialog.java | 147 ++- .../net/rptools/dicetool/ui/ResultPanel.java | 268 +++-- .../net/rptools/dicetool/ui/ResultTable.java | 58 +- .../net/rptools/dicetool/ui/RollListener.java | 45 +- .../net/rptools/dicetool/ui/RowListModel.java | 149 ++- .../rptools/dicetool/ui/SettingsWindow.java | 31 +- .../rptools/dicetool/ui/VariablePanel.java | 188 ++-- .../rptools/dicetool/ui/WindowListener.java | 178 ++-- .../dicetool/ui/editor/EditorPanel.java | 52 +- .../dicetool/ui/editor/EditorTreeModel.java | 127 ++- .../java/net/rptools/dicetool/Test01.java | 118 ++- .../dicetool/dice/ExpressionFactoryTest.java | 91 +- .../rptools/dicetool/dice/ExpressionTest.java | 119 ++- .../net/rptools/dicetool/model/DataTest.java | 72 +- 39 files changed, 2443 insertions(+), 2419 deletions(-) create mode 100644 spotless.license.java diff --git a/.gitignore b/.gitignore index bbfe8d2..658fd81 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,23 @@ -.idea/ -.gradle/ -.settings -.classpath +# OS generated files +################################################################################ +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +Icon? +ehthumbs.db +Thumbs.db + +# Others +################################################################################ +.gradle build/ -src/main/java/net/rptools/dicetool/dicetool/ +/bin/ +target/ +out/ +/releases/ +*.log +*~ +\${sys:appHome}/ +/.idea diff --git a/build.gradle b/build.gradle index d0afeb3..2a2cc71 100644 --- a/build.gradle +++ b/build.gradle @@ -1,27 +1,66 @@ +buildscript { + dependencies { + classpath "com.diffplug.spotless:spotless-plugin-gradle:3.26.1" + } + repositories { + mavenCentral() + } +} + apply plugin: 'java' apply plugin: 'maven' apply plugin: 'application' //apply plugin: 'findbugs' -- findbugs does not work with java version 9 - +apply plugin: 'com.diffplug.gradle.spotless' repositories { - mavenCentral() + // Use 'jcenter' for resolving your dependencies. + // You can declare any Maven/Ivy/file repository here. mavenLocal() - maven { - url = 'http://maptool.craigs-stuff.net/repo/' - } + mavenCentral() + jcenter() + maven { url = 'http://maptool.craigs-stuff.net/repo/' } + maven { url = 'http://www.nerps.net/repo/' } + maven { url = 'https://jitpack.io' } } dependencies { - compile 'net.rptools.rplib:rplib:1.4.1.4' - compile 'net.rptools.dicelib:dicelib:1.4.0.1' - compile group: 'com.thoughtworks.xstream', name: 'xstream', version: '1.3.1' testCompile 'rhino:js:1.6R2' testCompile group: 'junit', name: 'junit', version: '4.11' + implementation 'com.thoughtworks.xstream:xstream:1.4.11.1' + implementation 'net.rptools.rplib:rplib:1.4.1.7' + implementation 'com.github.RPTools:parser:1.8.2' + implementation 'com.github.RPTools:dicelib:1.6.6' } -version='1.4.0' +spotless { + java { + licenseHeaderFile 'spotless.license.java' + // Now using the Google Java style guide + //eclipse().configFile('build-resources/eclipse.prefs.formatter.xml') + googleJavaFormat() + // If you get exceptions thrown by spotlessApply, this might + // help. Enable it here if the problem is with a Java file, and + // below if it is not. Don't leave it enabled, as nothing will + // actually be updated if you do. + // https://github.com/diffplug/spotless/blob/master/PADDEDCELL.md + //paddedCell() + } + + format 'misc', { + target '**/*.gradle', '**/.gitignore' + + // spotless has built-in rules for most basic formatting tasks + trimTrailingWhitespace() + // or spaces. Takes an integer argument if you don't like 4 + indentWithSpaces(4) + //paddedCell() + } +} + + +version='1.4.1' project.version = version install { diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 48bdcbad07715134f3530ce2cc1dffbb988a2847..758de960ec7947253b058ff79c88ce51f3abe08a 100644 GIT binary patch delta 34132 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 delta 33898 zcmY(qV{j(W(zct4CeFmRZQHhO+s>28#I|kQ){{(Z+qQjX?_H<9dVh3v*Q);6tNLD7 zuZ}MV8!81uP?P}!M+E_af&u}{F_Df(AcOjk2emCejOS6u!ah$w!Mbz4b^ZbJ{}S)B z|0Pxsg8$b~QT)%pGW^#!n(IPC|2ImcqdWTFk-r?}Po)1Oo2*=AI6;Dd{DK1kVM+Wg zgPzDgObAF;*KxtI!1CwUnp-=6B(mRA=c-8*B%^3aK$nb{D=Qop3eRe*H$H1&)sr!} zh}P&dZk9GCM1`^9N>Pzn|CP2IqR%)ngH=K58R7`RqC0p4+jarZG2tlW*`v35OLeut z@)dKv>$Uy-y0y6d^*kc*gEPY5)DyQD!50~0fe}!>8_B)rDL)t$Ln>{3-=*C>6N9n% zLFRUsfK6YqYsRLDZN9FgJ{}RHFPU9JZDNh(SB#1y*r`E1u3H*z zvmOs8eVil)OuE%?&#g+u`clizJKI8Tn$HBbbIHSL8l9=8!*%Oz?x>&l?A4}`IRdHK z_tg<3jT(NH>WThO2h9!hW$PLTZI^%RowWc<=O`&QlTx{YiRzw&j43gDb=_47IN|Qm zeeMlr({voZ1|34|4qP#JoC#WJkL|1D4Y-shciNLr7+8B&!p>cHfqhq!GsT;CU56cW z<)H|ez(DCF-RPKbtw>=p^F=H3ZHXNuON}pLlJ%6-=@tHXFBs)ohjz4DY#>4Sr7qys z&3_Yb(u%H$riMc_E|xv%(m*ExxaO>dU?1(>q>9ZY@0U%M(A-CEA(>3&Gu0dzqVO3$ zt88yl5DTbM7L#YjO~2&AO8Pqlz3zl+ur`OKZmqMZot5l0QaNsc(*lQEQu+Nm_J)|6 z+bf-vTfu0(9%co`|Lug5VH}pXAsm1d!gI*>;as`%jxRrLRBUUAxeSjxU<4+@No!aY zv)Q+N8_`#Ip1Ttsa;aM6u!Hkb@>}DU4%upjiUISbg&T7i9;|lP4QyL!(BqbS^`>w5 zHKcOuTv`=W;!c0CJgo*J&CEdiH>*v`Sc8_9d79Vgy&RC|9@!}!vIm3ftq1UXo|EKe zWw4F>*L^Ma%MbsuU3f5ofmnD{ruH+m-Xt8 zefaKLUNRQ%1@oO?L+6r^R=5vb2OH0kzRtFq-ICu1J5eDzkpAK4RSV=mRLnQc%b-|W zJ`IrwIfPE1=kl#0W=^Efq|t5K3fy@P=IE7_9ZcMZo9ur4($tWv zgARKvhYljGvd@4vQ<~sfyT9SJ{VBl&}uP$B}`-M zH}zIf?ThTrkBd8aQ%q9bq5H?#x*q>8b>)$EO=;OQWOIHbV_4m!VSvH?$ZNH|2#l2} zA>&^?IPN#q>75RRX80+mEqIdgTPP2fBrBEem;Uu%e>(XEZ5^L~TKWj6@?%#3xey#T zVi9l!IS}@sbJF6mbA|w=1q9IfI7l@~g_z5^!xofc9Q82BC!j+rGGWuW*2MKe2NQOd zx-A^Dv!yPU1^4VxjUru>K$Tna4*R{bjLvPb(hMJaV?*d}7P`$IJJkZ$?S?CoXHj}0 zXQ_||zZ=A`&AJ#X;^p|W7nR7n6?h9_;RELo;xaNzTI zy!2N8lxiTDT+?RTAHD0%??z^(rnN`=H&yzKmHF1xa}gUu+@453P%b_o7z?YUYQ7w( z?+#({H~(^byXQ;TJ5qXO&rX-6qs00 zsa9&LCQ_tWtsJ45w7({>jRtX1Cr#0PJFg#33>SBmXv>p>H`Pj zBlPmUm-Ej%Wd!CFG<>3{lk`I&q5E#r%J`9gfCttVUcc$zc#P3B?5nv!m6?-fDFLpW z_@ColyVgPYVr_4@F^L@SR`>V3HX_;&$fIR%dXWI+X=p%0Szs?oti_AZBk5u^+N6_p zj`i$2%8T&dZP4%6Su3T_@EZin-ao%DR}4NkVMY>nUxR-&B8@iPoSva9%mIG8(E3sX zgqC;oa8W%GZ};ALV^r!Q?MYldC4(4ft*+}l7D6) z?#g}=D9XV7|NZYj9jeh)1`-tNKhd*yRbQg~Phr5NJ+crgA6OF5%*sivZb{nCCb)w3 z1r2^U$WT@`%u3nL_{|0eMYC~}XprzwOV$_i(*#G(7ldHU^Jf{dblFvGyT=vR^OlQ+ zIpFK<2}}?x){Zp3ahK4-i0*eL`%-;;pE>CGaJQKWY^$AUd~2QEE`rEMI>Fl;mk6uD ziU}ZW(Nu+zcJWiO>k1Da>M?`>9M$Q(q5ltGjc+5tPm_*I59oEJJ4?mO(-x@a?Hz4u z$YV837&TbWR+=!C3Yo<_?FbIA-AA-**PuK7zy6q#TN}JOc>{GD$ljrI@5*cxj0Pca zIIqH=eBXWDik1%S<;J`8V3gNmKHWpK=}iAxA>`19^*$j#ey6PEu12px@kEwqNw z%;sSd@lM0MsXM$x=+MSxCY|i2l#=B$Tp3%Ypwxafs#NC0G4^Es^AcNrdWso7)35|M zs;EGvK&tmO>K%^Do;B_@ukkROO4BUt9sd1V5SFG>B+)3!6HD7oNNY<#au=KhHPcMn4^L_`gD^u|jnN9R5EQ zlU<4VvhYvcuqP7I(*k@@HL&~@o|wnY1Ab{c>R8T-uh7E7<|{(~hJm&dNfpEq1~+kQ z;IV}yXF0#1O|5tgX>GBtR4=yfR*m#1Pas3JJFi}Qi~J7gebaa;yXI)j+_X)BI`VqT z;@b92efHhv+2-&U}G{pI8fz!EZgCj`V6=B9?mK}{#AO=JRLb8N|%Ue^D$BPP~ z&)=DnIZ7YR6W5!i#rMbe%NZjVlk&qc{BDr+jaNnHBq6s*j7$w&!*HH28O@s{q= z!01`Pb&j~-hXDKrsQD~cO9mn~sP?1cn>VVeJZM}afLEDT@>BT|qshGZ zcTBcPGFI>vW11Z&@B$Mpix__It4Zx@wW6*@FA1si0)W#(=lv(e~$H!aA$ z@=f2tTP0HI8DAv~p&i29&uq$hVs>mI=@gHxqzGY?i)x%{u+dZxMcgbEMsY?0Hx$XX zP?w#m-6nkU!FIo=&~;eYt=LEBJoCXq`hGDMwdgONdhCE*K5?Uig@kWnrz4+IE>qWh z2}T8j2SBz_5#N29yTt|-bpe{W$To{LR0pfz-JZ%KhsmxX%(F8i>$r>tif{Q5ZHac{ z`BmBP8b@0e62soK){w`M-XVq5Tx(FHJ^0Q3PZdE9x7iWdTmw_(38p`=aM>>sEn_dP z|25(`Jth~=_zPUJv(CgGIG$-F{h+-Q*sA^$4aul1A}S>L-0u=U?mrlqLV zwkfakA2mic9W>41h4I+nMCd=_o4)~z0MJ}muZyp-2Z$NylhWZCdd)t>VuI3;#tlD~ zF`2Z?wa%UmwGP%+Gi;WW(jqUu2n_~ZhY$z*%w2kG+qj%HjSW7|K{&p8jZ`~_xsW+s zWm0##136+bzgSUB4(`p<^*m|b9j{W}Z8Ggxo!u;OETVe~rKYi-Y1s!J2A($70p83& z*a7Lr-|m@tb_T=TYb_KSQ*`Kmn&>G-szYhjLKfh&nMPX1&o;Jd>PE2R-XZRGszvb2 zEo`6R`HRKHQG#DbI(3vg>R1D5gq{-WCG_w==!THT7K|Lex9fDGFmjP;(4{fgE3)Ny zx#zksr>m}j%FgC%l(8AdC&Xvq02RC=KhVZ&bwlUaO#24dpl!MP+Z9(z4$TUVTAUeo zs3r*qP;C|$`y-j!pDR>9+`qRq3e7d1x1F(zu|m4t7IcBZ2 zYA1P_|D>0iGv4pOndek>bx6G64B=~EAI>AW3hs9?HF}{_yIj+9Gy64$0Zf%=wM1FU zS7?pXRejNKC)6x!6&t}29i!&)qrUZHyl=XY-WlQA|J+Izpm%%l2B&#yFc?Vec^<)V zS7^H9jqYpAV%0oQr+C!vC<4bSyFL}M%Z(Sss%9?L^$_Sf4Fb@+ zgDg!EmuI;)_&ctM?q1w}&O@999{jmP1M&4sB6QZ`E9cGqQLr0FSnKFWfK)Cli;I z3Egd;_y|3O6{1ByTpO+@5;^%x;#_CbIZ`iG!qAe@g5v{xaRfc1guzfZ z-=RKNSmO{vCeO`I2=M=#tl!dGwDpbgQ=Gr5FXh%Tdvz)aQ`QxD_!{N`F0MpBR0UdFTA_lNrzWE0s4^k( zJW70q0nH`M?#~d*V~4h_K8ko(C^K#NEl0K)jGj~64sI4z7qT7$9`mbM_&B^db$Se! zrc}-V?#w4dn1>cUu_I@uaSwM{DDbx|stP@}w5heh*LJCOJ|j8vBqI5-F*rOdF~2x1`J0Q(Gx_7dnRe^WL-um%F$Lx=8MQt!?*4^^oC% z%?af4Kc+TQJ}o|$!}MNhbqYtNrNtCD^3QWQw*K}LDJ`{Q?Nd>#)zhOg`BAYZNoNOs zfZt0EOe9_csn6k^c9Tlp0U)z0@NC*x%33^RbYx;88OP^iAGfw_okv>pPi>j#D_!92 zcrvrQk8>F-k~(3AwTHzjGTrrs^e^Lf3HFT2hirJ1L=hIHct^8EhpV0Tr_&{>teY$9 z6f0*C?&DFH80i~C>$z@W$HUaz%Q;hu03DCpsE3m3Fbu2ay}4?+%=l3k(**t`pVpYR z&y-9lnF=>G)x$bX(hWT^%mgN4it|cN)pShNp9fl#7m|l8DGsrzMr}1c9M;!WhT|2c z%PvWt{Z3xVj?tWGo}f1CXVQ!ZTS3{`35Ql==_1!;zdRqXjYSh^RaQ29v^&xt{>W_~=E-leKXoRZTw$Xnmz> z2u@0>M#ZmXYvV?$masDNmW(}ar*10yU+c2G0q=4j6;o74 z%5Ga41X5^r&MW!h?kcWf@+h?<0EbLZ8vNtO;#WNw2RYYtV)70-r^J==@JzW|WT!}S zdp00_{W_{okz6gh544vyc}M2->r)cBw`{$_1%{@|)MC7|Ewm^)13~vcwLv|c#u{!* zToMje!bxdAKXh5bN$M>(OYxMsS2wg;6+@x&ukIp3omgHfQL)zFf*ic zLjfvuia(7iVywB7pBOqEvOg$Mu#dk_;r%caK3i4+KD(y;%WZ1ieqn4*dRo5TQ-Wp{ z|1tZ-_%bSi%3HLZlRNndGda;q3MDee+;-{5=uvSx*{rXY5%KU&!Wk}ypF#Oel>zoz z_p7V8nO>P?j;Ptt5Y9~)fJ*$3E;f=$g>(oS9bpuwa80&KBN<;VD$`gvt4M-|EqKvO z>Mdihm{YhuD_{68#TsJ>9`D+-L~u$9HZm>D!tgUOmGiwhY*d+QO^Ulx(g&ZV zFOMwC3#7KQ*@DSjWRuHQUX}ZqWh#}4wAFN{)ZAG|BGJwZ`?V%pilvuI?DU`68P-}R z*Gs=H%Q7;Im5U?+&dJO}%F4&A`dmFv)@-&E!5S21#{B0x7?rw8ct7uR92(iH4J8|% zlwt&Gw~#f|^0u0)&G2N_lm;6=2cMdfr*9zY%g=&UL`qH57RlmYDXQyq=TMjFA{|nt z8&NYlEvPTOE5vw!FHd++AZkg;UzTp`cjR<)>b=|LE6RHSixi|NTLU$gdZ+M+4D+() zFKChk!>HBgqtzekH=FvU?`7K`>?rXSQxRn4FbQiZHgef^Pfj&wKmOR2`gjc4=mLye zJev}NRfT)nYW#{ZJgEH5)*>~w;1{#E%c{V~C(G7K{MG3Hs?}a6#Jr|&L%X)?nwQ^| zSReIhjmt>_3>&FBOQN}o$_|%7swv5mq+KYS>sx-wHRT4^IzyZodgKyQISM zG_f3@mx@zVj%1go7vEF#-5T&7#vQP|6dqFwa%~0xqIOp_!!~Ld)GYQ`TJ1u58qWbI z%REA%aTqJf`kab@LIF-D(sI2Gp~} za6!=lfh%EF6OR0_c|WXbrq!yig*4qyvO>)gYjU_AZHXtl9l5-9UyI;x+VlN>6m;)n zu{L?|{~3O&vG}#4ej`OTdEACX6q6~{9n4%{S;A)Hh_|%wec&~xpY-RxE${2u^3NQ@ zf~@vTp7~se_|$8=VuN9TjZ`x`ZU^`!Oa_ApKp_HxRWDF!c1xCeNBm?(zM3aVyz#Hb z9Hk?{6-9Frm%O!9Z$)DO8blh!IuAESopX7ce8l-4Z^@8YB<&$=)d0henKY2P3%6Ht z%3zPTFWYE}KvR|6U(}-NU^Mcg!Y2?fbw;Flp9^}c9|#ggvzlZcb( z^9-1kuN4J+jZ!;^i!kt7!B}uu%j=E-fWZ&E*xfh$#;gjh8S2tf#0%yK;j=YA|rQvP|^Xn@u1!+#5v+LbHPk@F zlzwha$a6yf&_32UA4GqR;+KL&rK>xY>a>eJkmkS4cZ}Bnogb};ZXt+hfEk=C8(;KL z*b{;)IK;n?@gU2i!)%-xJN62BGI50Zef2qpq`#o=SaWPIpthCz2%%&6V)H5fauaJw zq}GXp7T|j+>@der44N?GpiIw7X4kWd3y@pBfl&kf+{~~DFuc48DwjV`j*@*mPnpC+ zi+Cm0eyVoyl@WF%=4=Z_03>dG!1FVkZ=bnf9WB7V1i3D8jp(lUBqe&G0e`guy>2D4 zMnNAOv9?0dl6)PQjK47*)a(CVzbJ3|s+Bum!{r)o;=;tb;9hkF(oHPMk;OKCTsoXm z85UHY+)`i?P|z?fN8}-+8V6*;-8REr%R{;YmwCpAFH~p$E@N`10a6;WGG)U?qz^x; zJ-bYoQmItL=hAOvtY!>3%cFS6qG5B7R#2d}sR;USuwJ2pudQd3eK6~y!%YKX1&O5? zC=&7|8RHj-^F@`fB}sLJvvHehhR8NPhZ5@i=qA1K4gfnr>4Zp-CP^!H7CWPrxOCX6 z9nw$~x9q`{Qn9^ya(ZMFQGTHv(%_-D@>8Hmjv#e`p$n|44vYb&&5@aPD;&E^*M%IfCkmZhiWr|zEO z>wnhu-R@z|EJY7W-s}6k<-m3RoptSNp#S=wIQ?rD^ovpO^CD3^ewaZnhxIov>+4+E z9T&Zz8Gu)R7aD)BH3wcX0M^vDfHn9>&QM}870eAPJ;F>iuUbalz&t2xdg=HF7R>a+ zeHF;`QQSZ&geCSg^vx-+hPQMPm&mTykBrHEFx@e;9~Jw~uT^m+${7{DHAmRN$M0Uh z2Vl*H3qU6Kfpfh>(=vzcvO|0-!&5MdOv`Ux?EqelgWJ_E=Dy>b_8(n~R9)19<9)Cu zk8`Y&^OUISu)+5qUEBG0WP-2ke-w{vF@8fHdET!8jl)R^Hg{Mt*jQ@YBbaNE^`!+HKT0N(8hxb>wE0?u}cPyWSaG~0dk^|Zi`LYB}nJmQ>-=o_%fQ>6Khps2{VV* ztwdIcwC+2dEd|}C7j$It+;WkDkTJ|WJ*vk6@#S)Dj z=Y+;he8fq|ZFHKsd_N;gPW|xWO$SzrYuSmt^&~=bB&!yUGw5`pae{~U=|Q-*0Wc)y znl$P3^q=6}{91`9k$NrZqdEkL=dvgn(P>)=Q7z|3;_!d=etU+ZuU4gp_?B{atGE7` zo^(8B(%5k(TolRzC8xI>vN#&B~*kdzBaT1ew;#66c zN(>Y?s^f@$D)Mz;CXwC8yJOm{0IW9UL#sqIls38Bz^2mL$%&_vi;F&nR0##w3VGb0 z*p~n)n(j83D*LpMrr<-;k*qZ>7R`GWPvRX`kU3|4Otpk}r~BzJFC@hcw`hMKC&d&g zAEEQ**muWE?om$2~VdyvWvp4Do>(t?J;i>Kz)nVOYy0=g*&3#pb8 zn*=qM3oy;n`j>MqE>O#kZFPbzZLUL~* z1=iJZ_M8kYzbHS4D>xvzfvY`sGbnf^v-@omIP9`zDmztuo<$|Ab&pxh$akN7Rx6?6 zlX^@E>(W}CVsW-Ob{r0(u||X=f{Dx4u0U2At1}Zl#*C6k zsSQ=G?z{P@wmCjM zI3L6;G~R8_R~7D%s@_>f=0>q|9i)wyEvpx?aeIKdj_cJ2;PpN|L$9^!;mdujoU+uR zhZVL+i*v&Icb)S#-h7qrbEm9QB6*V{R5hoY@T!;wJhzd()VwxrQ-yr+($X$a z#`G3~qW(qo-dcXUz=&QZc>GSq-NU`9NQ#cf%+AcIGJ6VdsIuH^ky)XVgCqKd180B)vQ*Q05BnCtn1 zTzkw10}$fxDZ7LBEgUo0!>Q*ZFeq<_4O&T6`+@`||u_`+NE}GfW+bT0QH7ls+M?Ywu{K^R9q%pHa0FQe>JH( zvJIHH-mz%&mtt#+3}W-SH?67FEdFYpNO#Dho*r@|tTPLCLkAmdG=9dhw*55hW116f z)0;@0YwwM7oO-gbwwpDsb!d?#JQg(O2r3?6H?58q+KOCM#*D>q$UIdW|BQ8iHV(aE z!c_R;5LI!pK$Eg_4lci>0zR2k+W52yGr?IgBSA9tt2ferov6l8DnE;)Y zzu=C@Uv+mx)n6AEkoL1q4Y72Rdw$`K%%g%=(xK8fC|B`S$_poO`lK}QK(G@@Ml27| zcT9CLHA3Sk-bb(JbL{Rau}>+?JDx(T^lG(5qMD=hN-0oz^Q`*S6HxDITUAUMqU{C? zC9~|DpR;RBzktPIBZBNFp!mX-oO=v*T85_r+?}{?P~b74?(JiUP-T$1zk`A`tKdyG z*yW?793nuLsVymuu3A#{mn)fkI|u|smv`~!L62bJVmz#XzCe@Jk54)ZN}NN|rs{T;MDq*<#1S@D7X zt$Nt{inowg(;O?^dz?%4;gYi z3|^z)$He#s?ZwxE*|cP3c9S#U>M>10Cfn>x7m=L3p&rAXH2&5^U5+m(5em;~WY@Mv z(eaH!*L0^3?$Pek7;gsfd%VBv0-S>=QFjhw4hi3=|DZ+9Om2p96=jK*3NW+Vw}2rZ zzC%Zsh?5Xb!jkAGljZ4j|xLA#RxdJ|~*I(Q;3a;h2~u zF+gh9n0tp?AB-8fH7f=5@V2KS39c{Wo0-t--bIUwbQu1D(#D+P{TzDMGgJb}K5N$G z4N<1wqhu>yIE3t*N)_z3(qUeY8^j<$8F3vOF2X`@(SO%;QNEEfr~{Anu}!{r*EKW? zHCBg1voNcSe~whyM0_q-EZWUqV2givBg4(S?94+e4Vqx$kWK(Fuwbw!@GX@}tCg_G zkCBegbGm>^Dz|PZ+F4J2gp$}8wr7K7>~~9MQL=`3nNB+$=H~^@yf3-oQ)Fdabk+y$ z`!CZJ7+SSJi|db~wj&T0buiZq_i+#__LG#<^sy+LmIKFC!)86WCt{<*IxMC8b4 z2#7z2DaFstiRTIU~Lv4|GCe9Y^-7m&czY`iRtEs?4@2i>yeO!M{4A$!F9BO>lHQktRznS!3x#^4(|B z7Z6;6PI>37z})7@7Q`Uk=FMEG@=C!hmDYo@6>pHMdVY$J72aDxZ^}H!8zfDoJ#u#t zhzkRT3>U#32#eALJ1qt90<>VMgtiA@7%W9kh~C&II*@e{|6ST+={E#F4Er(mo52T3 z7)Avn(Yz&PgwCTDRX!mLMqgI9u%l+Q6z|-U26hFrb0p9Xni%6Io)6$x?|{y zseIG`UM&#jS#rWgh?y%;U+;2!c1%cb8F9coIu537FJ7RSbDc9hpLFc+t^E@NXjwB=$7B4N80_i2(gb4O0` z-2CMTow`^DX{l9cN9P1LEE(ZOIS=sZ&m&2p0>LLDQSVRf_*E6%ae8z5e3L>mV1`;H z^E!)Yz1N);^_-P6c=Fm~w??pY&E>r%Rr-P7c98!~LU?9-5FsL>x}mPr<{USrHBKku zYM*&+Rbg|FS`&BF+r_Gn##CAEJb^41xu1B0jlkudh}J<|cwPg@KXrnOF^ zPanhj_qx-KSS-XjVo^W3qgsIQL@UXF57O~6VUL5L?6t@cZvZ7H2sdK?R_x9vlja+v zu?dtTFAQPN&z(<%I^^vqkgV>oVT=kWc@#>HdYj$ zar&XD1Opocv$3-tEB-!%Ax{!m(*RL{dOm^ht)c7emJo*-9rh-d17-kCvy(kAwa;IB zH-^M@w6F+X(Z@y1XapqK<*HQoT4=go_5^K>HwIK-dJZ+uj#`lfTh@uP$g`3)XRCgY zTEc!@#TP#yDR9yZ&7D_uKfm^|DoZO|Zl}o^M?aYb1JvNpK{EUS!q_A3#$~)_{{qCI zFz4+zG28>PW_OgKCj@}p2aW22jr1eciU<`WAN`LWw0XBoZ@|hv5`MxApQa1s#J7yj zff<$yU7^A1(O7)t*Fud45vSCz3%mmP)$0yiQ#ToJc2YhZ&-NsvsBDA{l2(;^OJyno zr4wdBro4wqq6n}(K0A_O$kPTPW+f2t?zv>BH^@=sHj3wY&Yysn(L86@@A}N3Q~J|~ zbqAsES& zXcLAqmSqoNGf5h)SW3&?gd-5zr< zW7M4qC!2taX%G>D0#2@uuy>56Zv?aN2<4+*#i>vDf-et9D8dY+dT?vJIx*Vc#sq6V z>$W~4Pax#LhiP~I$uP~G(%yg$5@V7h&l}Y-n!5bgP#FMHuAF1XB;$c>K0uC1^<-O_ zU5T*3wj{k9V(44?J02z;o7YUehLqf6u7ahXC>r<;tv5pdl)bUn+b=k^x2B4Gvw9f% zZcXvm53AZYMm_Id;Gx&vwd=9K3iC5!4QZI;K>Z zoFv|QKtEVl7!fqr!616Pt2j4P#$voHsomOKdXt>TylX;J@+K$rschzz>vi{B_w!3{ zXCtjl=xwdQ&gs^3&!^w@d(TMXx7Q03Nahea8joXZ#H44qu0C~YDivp8fn;FhjWa~; z&3>|fm-Ll>^&Wt&Z6wy`)3Z8oxx6e+6V0=mw@U$tb0ZGnpsaKmuw7+Lu|@3FqekzL zIKHm75$i$eDcH~R>6r@NtpkMVlIZtQs~Ub+r5(|NK&;TDY2SzqMeW*-MJy`={!}w% zBS84~y_H&`d?hjJ)2gX*sU;_AS_E0>9`zg?TrGf0c<$Lol zQ3Sckthx95_b@$#0=<-oxe1{L2~jzB`{N0-8XqqefwfXPS1IGmpKT&v{)4d&6))&L z)jK@?z8c5?1>o~7So?<}F!sg-O`u-^?L!s_;!m&GSXtZLUAcc_2$0y`-R$1P3-x)1 zcYS(-0)ThKoKieE$|^*KyjPpDGOZCSE}4@nr{vUyJZP@{fbIoHN>s~!ivV?r6W+t;B6`pmlg(3DzehPRN6z2Js(Z#k7aB3 z7B`-C%*2X44@a`P;KvD#k|s9a1ILmIl(~m~Qz)e+>0zLu4i#Ew#qy#&YC|*o;1ykS z28cVKgz2Y`naE&pJr!45((;0(x^s6ymS5Pj$n!*+9G#S@J`vYax~_&6RXP&kl}1Uf zF^Bgq!G8DI(w;uWs34iFWl{T?l5YP5tvoZAFnN-PRCgQV#IBtXshy5JB-Y5(#Y%RA zung={=j;nI3jX=d{jNYk`>CpKwD)2n3($GZmcznO>zG4hF(p-D7k_Mu>ZJPR{0AQ$Nq}wwR++C$|nluVapn3Vbg4r=@(%8fc-|-JlgG%*Ge^E(&vmFbiX$x zHa{b&`Y|;s1wReEoQwQUzihFJ0QhyVEoDe!IjJuc4ZSm9bbvJD|J7(LDW))wi>1!PO)w#3_r{DvNB40o9tN;g1FCJIr^EHgc3k7@3OJ8)2fc;?ePntWNk}auH?o zqI@+bUQd(^QM#GwXQ%cRkEilT+&>|xPeF@d&&8ExRLG{%Wt1g&$>$8_Wg z-i@}1^=V$tj7}zj%XuChR#nxNxeEJq?0S9-&$x(3hO<0+633J>fNuKxIVQfv3|zU9 z=pZ+u#RlI)Sw~jx4Ea0bY8uMU;Nib18m0<(_szpDw10^jBk^@+%Zv`)fyMK9m5z#v z8(iW$XI`ukxb#&~bdO#>T%yI*>ROMWZm(^u?vue1(A49do`k)PJd4&g{gRBetEMex zUZ2%7=UXDj1-`3606hT;liCtSy%#thM&dm8gRy9Ost_Brmz>HxI7P1h|tn-T{dKt#Qac=i0QFK&b$7e~nc z&(|^M5C;Akn6{~`gzdTe?D~{=6%F^EN%_C>E|=EnInWz?G6`l4r|5=bTAo%ljgZ3$ zM^di?jopdkMf1=)0Mm)OZT#WeCj7!)^y35`x~AeULL|?_eeQkFU($@n%f$P;V4X+y$Qeq|*_Rx@a z7gu+}yG|V;Gz-U-%@UsM(sj(l%bW^>Fpn0Dnp^_%Tz%KH_goD9!iyTM>lOO>E+)Py z&IPqK``ybM61XHV(8w3-pfK(>{rG2V9G51T z7(B`^#5Ky$cJ%eWg7O)Q@L$^-0^20AxZwVMu-(p#(lu^vQCLHsFGQWt1r zcu1-)N5~qyI4JZDz9hS|M^!~u>V{R7TknGis=GWpd2VGzx2YD3&1wjNU5|!ShaLt`u;&O*?z+xZsQ!5Z!^pySJSM|CkpsUpwDud+b68unZ?jE;O(;rC@{((^9(y zWI!mIeF1V^Z_KKA`5oB>OxMC>rE-If>sQX?c+FJS1$FZ$XhR#>c)=pDvL0>95bWCy zjum16OPBe#-0MY$%gUnZ>TU8>LuYJFqW5+Az!6-FX&u`i8J0HN>rcw_jDeQjVQ5{a z80HKxIxO2>3>h*;$Kq?H3rzi$8G-Oha==ZLOAT{1O50l%U1dT~`^KUvnHk7u5Ihoh zfHfSm8v%+M_<3h&xV>*qb!@WaBOFz~`OX#n~IHi005X(HXYoc%GlbAPQyU zEwMLq+vmbyBxmx0;zdn(a$FO{I!&@NEy5;!D*C}LO}{5l$-!vt%4p!q ztU($FhcZ7tWlLz?EZQ1)f8#r#f%FDSUQcLF#djmjBTlt(y4F1{ulH6@q?pj(aXH@Nak=6@>!I7HOo#Hg3=rB@gy%7%^gZktsO92? z0>9L@$=Pno;CJ90sNiW)yVs_>VmFQC*gy<2;EbmDkzN92up+d+o4f24`4)vP^9cwl z5w6|0@%#%CvWzk3#h+V|A$Bnz$f{LrPn z!8h80E%6s#=NFd_`IBVPgiG{^miWycGG*(_v&%|oQ*Q(mxn79&WPC*}$U(1mX0XB+ zx`vF+1*PCI6p5IW*nv-w7|2gQY&RJ~=-9~!%*-aCV3}dWn-m<3%J}_YpC8Z`KVY|U zY9zkbk#1#?CRaJfG(oL1R7Bm8fVp|arz?idVHF(z2K)bt`9Ec9fXF{r2nqs1_47Zg z<@J7~i96nO03~0jQBf4v@Gd3~8@$CDHV?5|k{3N+qHyVgaDqNWGv3z9!iM-jCOPkE zuIG(yuH!A2_1xZ`PY}i72uQSf?1r>c3MmbyN}^~lcye^rBsE&*gERleQNGGOPxe7i zAO?IRQQP5~`KH?hg>I9rjoY?GFpxn1XQAl}(!*yl1(yL|3aAFjScSKnmN#P{Zf1S zPkZ4^(4BwD6M80hu0IhG{HB(E08R+EeAiu2CA{VRL~?fd@s-hQ*zSu3;8lbuW^nd~H6TEuhjK7S_SD}&#o zSPNtMjwnVl3Mh_Y393ceMJdlZqV|${Zq5cs%9<`c9D`KhfXUe`B32=T<~v1^2kzZA zVP{`Ta#+P#dPzub7Fs$4!5C}OC6p|XSlKuzVG0snU&Ka7WKKs4RIP*KbcC2B9ow-s zq1&c@r)0)4b>h+Ck)VP&a#Em$hmT#fz@5z7N1Ez_pum-5&q>M$Wcl%!cY^-iVM#rP zwc;Q^K#~!FEOtx)$5}Pxx9`}a)e@-iecOb@zD8(km|)-YK0!AMOZ(=@h-FDst4gWF z>S!L!ytKc=)3HNlNli}C{Se2$m+_hc1rKN+`l{Kei8xqt5hs!Ke=VU`pO*?9Y)0d>Vpj*tf<7dh) z=w-RrpjT?bn{&!B;TaOS?$(Ox>+(_p?bqih*N1FTr%~4D(t)U-k3k|>q-y6O#PA4{ zVv%v`VN6Aq>%!s>nfENNv#c)7&7mh$PB0n zNGH0qP8|516k@F8rCw&OSe3!JlO3pTh49EP3g*2|i}C8~9s2c6wMD;9syO9l!9Y6A zyz9*Za*wMjIkG>ZE?D$dT|iVf6hd(mYQL(hLrXK^Xmycy@ET}|^q6urUiHz;eJL7W z`qb2Gl~QBe;z$2YQEK*AZ=zfuO{w8w{cTH@r{d5_%vH%2vGq(H=5~&jo-sNE-}@Rt z)6c&h_C7>P(wr9dVkaZw1(s0%WB1FWu&ApMK+)K%Xp78i3~@mx`qZR>Z$4)g_THfL zo8ndRH*nEs_{{KgtUH!3R-&8wL`?PCurt{D+lN-J1kPU!Rl3z5wYs@TT{gpMRfD}8 zwxbeUbv}=k?YMjy)8O?aO3rBYh!TMP0)cAS;%ZSn<=l>>V>(=wkcoTaDcU+&gfgpp z0tn8B4GmsgRPx21|CVLMYfT4Dpejc(p4Y8EYhfW^t0cx2{;j*LJ1OA&c=}gO6pxxJ z1t}&hJ_({@OnGjC0WvTv4{mfJp{y0x<@UDKfAg6-?wg5zZj)7RhdlE5=EH4fn%zG5 z#z=*uJS^k0i>A*21*&_@4T+_X6d$P$6Tl=xbcA1QbxpZWNQC^BZ9zb!t{}FSE<~ou z!484|mCz6`u&M7hG<1w91inJpqW3KK-I_aeV8thNJ zkH6C7aHd|*3Y$~SvF>h}-h(5xCZL+psF!|m&oQrdbm@^`XZfPT#5!f1k}KS`hx!2Q@wJxo=foiPOqLq!%=<`?e-bzla{kf4}i{v%Q3=1 zp(7aIJwW;;8bLf2cCK}`@*)4gXQ`1$>oM8pNPVVI+?v3zp z@(@~{=!ETTGHw^yi`#%VAw(h5GPk!D@EE*;oj|wwx@yD0iE7Q$c*Zfu9YY3&s;#Nv z#uC-g6k?Tnp`u8kq6?LYhyyrZ4W=slwDftSUmMRXd-!?RD}IJUz2)tHOx=FV8LZao z4YKcY#)tP$x8xr=Lt%mfkgu%!^|zM*HZS@u!`OyL&Hk_irq=vtL*htTLs4=|(b)%3 z$TZVs8<)g^&Kt3{u_VvKiRQxz0oVJ(%CDQC>{tBY;EJr$ z#}s}7?cWhpoSH1NY`2R2yn~G8cxbr|L*nVE;IA9_zQg0`?hm;FW@Wy34CZ`QCf{_1 z>JdcAn0cYbMiQjW+!oP(tl52>xmL}ZFk!m-&Su*RWZMqy`hh(bwJTj|1Gky@{i@~E z!^r9^G@GH^ubjR|A%Ja8RS0@AQO^Rw1lWxoz}GUM*X&6<5oiKuW<4G|zAv3G#&e;W zrBj&wq6tPHg;ZP%$i|Jt);NTHd3h_w|1iEEVtSZ~$cQFo_MB(XWhgA&*zhE&JehOH zBpl?V7)gNgu^zR&Q`Z@ndi9y?i&gUrS4AHb9Gg#VwZnAta%;f5;sxKi6TK{3mVl5ecuyh_l09XXJ2=?BGLFGZE=w;!A zogT@c`U`T6j`y%XRXTr!}Q$#}( zP^DJRGa>V>JVo?Pe0;fH{zg-Y!XHSkNY=~7+>BGBc9@J(df%V~O}B3k2S{hJ!J)d5BM4Rxd3QPF=l$i#&M0pSB8n&JYbM#%x? zYTB;2s_1Ws@E=)|558q{P?pQUV}K!)H&`&R%g)Z}4@(q>TF|-p!X%@c+L?xk|MI`A z*!TQ$3TLAur=Iyr@P_D|=|^l_m9N>eqjSG(cKH?XlIH!mTlob5Wd|W7%^kc-nn01( zPq0xY-4w1!QARpmn0Y-d0E1H|qcI2=K<2!DLhcYw;Cg_%%Kw1W09hpvVDHsW#n zRM`6rQx=^`Y*QLN)_6nBNURYp{`f{~Wtyeb0wq;>ZRK*4+|NpPq+G4mM^NMdmGKX~ z8ZrWEylX`(DcNih!DPwa`@*4#813kjD+L9K(#}2k9#Zuf25PA9&COVH&_!3JkRZ!qK)Xd5waW7f*o=(+=+%bd; zmJMoAl{E9>dwprF>KxQC^zt$Qj~qf_tJRIekk=4XTqtUj_jK|uU{dpHu^mt^ZCNX zlx%Xomc;z|eW+=Yk8V96+X2t#XhI<`v*#9ecW_>PL%GaIL;P5$iK(}@uC#QIG3Xan zNX2PS%-LXr)tA-Y{x|mGs;SZ)73CcgOC2XU1z7XX1B_x-SQr*>My706$IAh9}hD9Uq!)@D2spa^$-_yU6$wi-Zp_i zgE1i}2+f|DxhwKs8dR9n$*$;~FiCoMcGvEvf9*8j2f$=(x5$D!Q*&u<;}&Qgh^`+G&feUy2--i-{miN}k)x%2rxbr?adF&%1<^AsNnSf_y`@+iU z^<};5#?QxQG;#KDfa1Xn;xpjsr-UHU@L?tHD?{R&0@3MSwleRz{!DSG<}QA^lZ7rX z&e_6puU_&3`@Kb4>LBmou}W8v!V|yfZY(dxbrJu>;WvK9J+?hItzFV|#4Bu~=y?nN z=-H*pS#rY5UAFy)4^JP_!(@1Mdx73M^kinkW?>N@e_XSh1BPe4y&4ACoM4&5_fR9{ zoJ$Pv?UU>FZ(xSPV4qZA{b{%Plm%j!R~v_@_@^s?+D z6-M2%73$lhLolt{#0zixVdb1#KAB?PHsdayI8`(23^;n}P^s}KnkKxM7fSPd5yU$3 zBB_kokih+t29P>+%a1lp+Zq_;XxW1F+z9Ss6PtnYfpXY-NBfDU*xY&T>@_z2UDXbqA+>dK`(?Au3pkeH`b?n_zIyB*5*y$1%sGLAEYI}2%o z)Z|uf2geF|q31UhM!u^~f0@x4jy<*_*cq0r6=7$=KUW$OU zw_6t{5|IX`ryik3(ykqhH>O~{X37rh+9IZgEidB8Y3=3kOp!%_K@W!OuhGXkT|OOV z)XkGj79JG*#iLMvBA=xeLE)~@v!J0C4aL?B19daRnE38Ux~@Nr5;#PNQ4jL9958}0 z9Q%{KUJcSHr`W1>9${(8BB+IU&M0tK>8X9qHk>uqJq0&GHMXMZLso9kkZ_t9!3p<} zvAvH2Hai*H_aKK1l2B(#vS(e=_=vHQT)Hbcuy<{)aNogkQPDVk zIiInyov_wzrbJq1vzVrAAlF4)StAv1^yV=x&%$~O5|$0Zr?_pWkeWubdfU*5JU$6N zfFMJ0x@F^74N}_g@EuXZxmvWXZrOIsWCb6y6zpV2`HP&z4&Z(jZRX?w=yO;ctSZjYcu}f87HQ@ehOb7n@<0s4 zhJ$IARW7*C!acM)Y&_mXdX$}8UM+PrcUpRGt2gIvsaq2dzFu0C?H=Ha1Q_1(d=m7( z#1iB0a>f2hEM$Du>ov5+G%Eo4?wirlt8c3ky3ra6afH*KXt$CQoD{8-!lxsBd#he) z^qYUODMGC;UXwzob0=lyAcD`g&WtrPu({sV@&pyT2|UW%Gr6>G#T#WD?czwuaa$f% zb{||n6l%_+#5+3w=r90i=C&Dv;DDmVn$eVE^WxU7=BRRENVhkt{l#(h@peR4Ez8Q* z;UlE~%ac2Faz)!67#NM34m}*aAc+O{08S)_kJ3@6A1Ot-B=|~0G6{OCE&+F$av--Q zljmtaTfv|yI+RhrDKzxdjPBYuQex|Rl`u@E(Bw{wt44A>%M-wu9XBcyr?yrYnT3^n z83L75icN~fTEsxOE5z=3KO3#73a%5}ddc-DWM@yM<#5>_ zZMNenw}&yLj>-ZMe1Irz%0UqnI*1blappsZ{t#j{-0N~Zc021&>3$aXg`H9eP+^L< zk}R%ncDzT!hD}dtuXf$&kL-#0+gsiTxl&KZ#{{35UfYhN`pct4kYMiZ+w8K+CV7ig zHHAE;7y$k)2WHurBLbB;XlHS-=DS-hRZe!vLZsj=UBUp2pIht|d3R3vxxd&0OOMzW zo(7_m&wHr@f;wd1HFY!c^Dqz>z<#JO+nYeunOZZQ(|+N0LvLEM9l$MHxBrpl-!e_0 zCM22oofl*CiNN$ht+`!lcX-uUDO60eRb+$8#VI*k15;#1mso>k$nsa4JbT*o`1#J- zn#SUS25Al;Tvm-cVTX+TXttrM+W_v@*!k*px~Z{f61Hah;u!vbqwqp)FeZGXM(e(A zS0qC@GEt@7MoI;-ECt;xE7hWx*0Osj8=Xt_T1tCC%N>|5zI$eY7Vw)8q0IWa9KI^i zvT4845BQ?WRSe}JRQB7TGCS=y-N5&ALo66B@g5lf)B)Yd9%n+hPX%Z3*n~@%Kw*~x zIGpNCvt0&R(n?Nj#l#PhSnVW4gquAQdoH7+F-386%o_4ZS&qZNs+CViXj@RnIYwf| z!T#SO@EeKrB~3}QY^H9@G#uHJyv|R*Q$;)>a^e)kx2=}jnqlWM1JzVMD~YQ5D4DW4R^tbctFF0o*pyNprx^T5-;(WXIEg?;hr1IjAUh%&A@b*0Wb9A@`K1xW>dfy&HjY z?6vU9s04GG$UMhm!8`cWw2MNh5cE*00_>?B;;tQ{uZxa6DI`eXbwMBFf9PdndV~1$w-> ziIR&C%1X+bzMd8z#oUP^`{xJGT_2{o0R>`SpFMmEzD_;jDh6)OikT7aQ2os4fe~Q8 zM&5sz&7;)hZQh374By@%gv#Fp-=Ps;uOB#lxSwK2J_GG`lK6D|u*Ya;{JCJ7N*NcJesX_Y=V z23-ZLX-q9S^_Wn=ss)|1GMlbEgA z=y%tc`3f1*d`(F?IeC}lDJ2rFU=}r`v`K6B_=i5>iOhQqcg8*|PA;rb( z(z?ve0=!4?mRNuy*DcYp+8f>a0MYC@Puv^oi-2^Mt#PmVvDM>-4Di_A1FT&t#+tQ2 zgsnFtkdZST(n9&@^p5-(Uu;4s5Tkj@vNYv~h^=jox@_g_Y}Ra+fBQmk`YY&y2WqF) z6ORX^08;!dUsWHA%ny85Rshnp=ZEL*g|1EsTLP&Bh5au|L;_H$4^%9YN&=a&<(z%( zzHcxdEPlL>ETlM<@y#R!)*#T6&}+hW1PvYlmHiL~*YasSvH% z%|X@j-|*V&vO3zbcf{*gRnKW|(3^=wWij1N7u~>z*Gh)FU9b+Oo&m3feV0sN-gP0x z**%bGxZ1H@asA(z{Rp)j_U2wpz*%@87AT36ks6Xew2p~uBQTZu5iRsi;%#wFyQ2N% zfU(#2l#n6^pq1)$-Jm{Wny;w{&u(W@RrPXYxh3m$FBu9~JdWjalUF;UwU<=Q1`h!c zHYR1;A#Vdx$A(+){F znG?asj79e9)K+sKy{PxxH0=Q*ZJeoaf#a}MO41<_oz%m7hRm9wV++=d&2MWT5}jw{ zgzFfIKcD;f7Cd?@V9!eZ(02)-MEa$9t>puI{7h0-E0{DH^uou3!8eVZ4x;~g0?)idgFAB z?C6Ekec8ukzn;-GrccU1F!Q;VNP#*OJS}AD3p2Ea&mX2%b=;cUX%r#dfqdQ5dTu9_ z0ow_M$|P(Cm2+(`Sfaw?L z#7&X_LD4C%k5rn4jUb_$+g={2hf}UkI?sfQ(+|y&8{4{fjGMATd+JAnKY3pR6u-%# zZXo6ua?|KbEP^Ca7(0@@uz0|=aY%QjcZhu@WGiJj|&|P{Ln`S?)x_x0%!szu@9mznb%SXSG#-So!eD_Lc4x@BTna z2=tko77*#2=W*HF0ERVsB-BL)wH7#;e*CU|2Jl}11U(~x)JPpS!o=7Fn;0)rjhup0 zB{Y?+OI(B^O;-rVdb&hPk(5#?g+IO&*B4hY#DZiD?9Oe-iKuYL?XAY$uGSt#f0m}7 zofg~fg-Ma-9QWY@c^UB0S|iUlV{%@ALVwKLeaH(_p>2)VyAVbN-GGC~XPRdR+Z38M ze`X^Fyo#kL0{m(L^!~)y=&vKEJ;l67RiXdn19EXnrBJ%hetM_ z6aiFzbHO_E%KzrVg&2TBTd~fKP?(?fDh|7%NS^hI`KazdO0^mM@#(VfSR+u4pA6GQ zC_~juy)ZqT@R`UUr2m&(r>n-<2;)pT)~{|QfWyQU`7ff^X#*A{G1jvmg>&UaTI0x( zLjEpypU^cf1VwEZ*;Lf9`4q0rsPF1ZNFc)kEcb@^@7~JDy+g_{Bk(13n<_&Mv2xZU z`LwxK=%yLPJTX=T%pblDnoa4I|7`NVZ+33MJa@*<3~&)znapV?yp=E)3ciP|<7#m{ zVgOm0^natQNLHsY%xTr09DNOIAPPyrutNHij3Zf@N5to88qbP5z@u#t>Jdr)u|w~F8)Tv_e{ znL9N6n6^hhIyHXW>FincB==Gs@bD6d@HDaR^=9qx`+76nXzYczY0z^SbS*Hj_QmgV z7pm>&r=IA?M{Xh^;$3XQ?^i}R&Q(2+FaRodcj}1Dn+F4&=q_-@~kute68>fLIQvR%ZY*6HkB49E{dX#`0FU<=e1|C3n<#*RCfy+J?7`t z0|V@A8)iw*KI1MzFO?i{4skD^+da{CT}!I zY?7(ZYYX%qoX$FOd5?gEc<-x-*4XIKKQ!!b7BD`}Wa9GW ztwPm_!Sskfmn9`&&sqCFfU@>&plY}RE##9rRC%V?^wxZP%Ju--%dD;Ev2#hbEnuxD zx4rXKYbr2SIPS4t_F$z;4=LyOr&2nf8K%@atqDpcom`_2#WA~>`%Om)XLdNunJfXSxBSn0mbK%Ol?UFox9n;A$gL$6VNH2d6jYTHNNa_gU)Q2u-osR38?` zf@@YA>T}o39*-7bU9zRR)vVR+2wbR_LZfMpL>s?}z{9XJ+A8w`U5G-DMIIYJ435L_ zs=un0FU<2gTdvIz%-8A6&tJ@`j;qY#Y>K|x3+_G;@Rk7vhiW#rWH>KrAQX3T{LHU?&Wvd%kxyXZ}LlqEVNxH%eEmt*?`A65SGQv{gPN{T1J1Lryt= zEP>~?lx%VQ3`|^v;LMxHiNak3HV~3!_RX7;dVp6-yD4{T)Bm*jsoJyoVa_nVWD9iz zrRg60-qJ6Mq9F>uU>?G5eDp*FOn%gY_^tqp$=eUmveV9L&OWzd!BA+8JzF&UmFY^7 z;7nV?`OX@{&7%ai{VP3xb}HFLQDJGKUg8=~(3BQ`hc91wkX|~pfaH2;07tBQ^ig#J zycrkPlL=aHXJJ=21vlBRYrPV1x;l-Iu4yUv6P%XI0&)xSI3TcY4%_)RdIY#|!xqPd zcMV{GD5kf%{YZ##fi9JfD0{5qwKjH0)+j?x?1;M9=b)e2E=H6^$Aa+~YgH%_$am)Z z%x008v0n5h{Y3{?YhsY88)i1%Vm_bkhjy-?whO|nn+459j9+6+Q}uKYSj`N9p$}?N z5BC)C6n@yfmg|bFYb2?cgZ_;PA5SRreH^<1-FC62Ek>ZPIT$>OL@wn{wVKLZ=ngt@ zt}ui%LpWS3YP3AYcKsC-*S~xxHnfxdi7~Z_Y6sY=E8EkgW{SC><9*^>W)wFZ#NG0U zse6aquXjJA`;6!-A_U5J&8c zO^)2la2X>r0@>{l)yJ}K`Ufn^6o{k%H_I>N#mxc(D6-7`Lfj>TxXku?=}IW1-6+;CNaMW)`h8dS`o@s1io zV-xFkyy`z_J391BZa?)qX7Ki7p%fmgt)QW?E_WjF(!dOb6nyN=9L|MmhNTGp|`<}jHM(p z75!Eq(#G)C;f!gc3Co#>QTK2QkPoTYoqPF3{wV{g#~B?m1WtoYub`}5x*CAd7{16% zqBm%N4N2Lb>ZZ{a2;8yJK~22MaD)1Va`~D5?SiK*d<~H1;F466gZ`k8X4@|k_euz{ z&88Rh%b&J?F!t8J%V`?>QF9Ga38qAf0lHegh8)qbuDZCHS4Ec-+}>2gFp228?&A8G zRkL^tdA{)~OXHIP?2bqv&6Gc^vR$yc0eqzX+$mI0;Wo42356z4!!~wBU_|un0~*O2 z-Wj%uH;io|6K$`C;%24aFAKh)LD8FE|7YH>E$x~F{i7Bw*#P|@03>pi0eqhQg#4zU z4V?!n3(?1CXp+TH2Z2)MMx)C3nOZ|)`b%~nE;S4g@*2YnWE0%X=~J@(&%=o59Wm|; z8CZ0=)E?&D%vw*E2QM?%+E$*@euYIRE+6wA<{J>OhI;XT~)rTI&8F} zT}i%tU;`3v_KE=^FJOew(g5bU)UR`*#3NJbGm$#vW<#a!6mjFFv3VWUBvz#~s>+zg zxmnouHH7LM^KFC7^QYEtm4Os`4AtQe3@mPO&m}!mJrK9rcywXcDtg1fzRa0g2Ok+u zl@2CYfi>NrhCVB07E0AzebWZDuo(E6hyof(RwgW1Sj|Z8XKZf7V8G6uDH21pjJ!KJ zynIUni%IXtuPG%JFw(4bD{bBwH1a(j%c)wx&5_u)vVBsV*-!O4Z8|fDXYM$hPg@C* z_=-9>gx);sHB^PNqHU~D?pY^9~(tJUClVKa*O z0J)|yg4Em<=QjNYFfS7iSJHuvRnw6Lf@Rv23uVd4ymqTjNI#qGTY~6JU;;Gz)QphEh!NI7Yg% zj7HP(mvymp7g%HoS$4aSZCjcMU&2JPR;p`5fs#7i%B3=V#tDYrcpLYRH}#VqDiH~+ z*M03Hfi5pW!Ko0(-u^?p@l(zf`PmJ571$ubUJUp^*X=iHPplOSn*-j45Z?O_dI=&> z!@Sb(POqZFeF6Q`#-upC7%k(HufC9OA(Y=Tx1PZiAL&kX9{rx5-ZHP=9a$pA7LW|N zOgGg+*(a}_cemoh0;Nwj)j7}cn|2O;&v>+!;p%ElJ}l9Vre}Fi`|-i(NO3iHH{f=467G7T-@-}&;lwoC1F zD;W4cdM!`2b5MT{h(C+M5EQ+iAU{9?E4-W#aZzBIUxI2oDt;2Sq7Q! zmVlW6yVdD)gv3@}|9fHRbv?G`-6OqP)SN~vZ)@h1jTijGP+UWL5vXfs0)b7LuM zCm9n?T!OiXwX?93@BQLy0L21>JvQw$>*l;dvn$dpF0n}{C9pL|wBF1yRY}JTr1!QX zXk)!_k3sTiJfbZgn=)#*C(BmD^FGRFGA5kWqt8_9UaXh+^9^UENIwh$9QJHg2p%qA zV!JJfB0@@}?CI@3#GoV*lWpvNLpbQ;gA4OVLL+XUT%#bzCb1H(D_!M81JfD-rihbz z!^#4=e2|hoIA`$=4ma4n&j9NkYJ{k7Y}}{z=5k;Y zVquCn#L2(>>kB9OcVMoEfBe; ziR;iLddD*8B?KH+HJ$~?stJ4L0Z74k7C?x6R9Xab1NRMnBhK^rHr+S*h`YvNe}Wv;dV> zA5w40an4Ud6mY4Dgj+*q-7$kiW~rA-Ob&^bTP*CnCYbl4)-~$PftBgQYv4biI8;?5 zWlQw6Ta<>Kv~%Ps zli;QNK;e-#Wog}O75I)1JXy(7>Hy}ZI63WSMlo=vy|l_HA^7+gT_53^G17WNz8SQQ z+6R-klj8Irw8A!ALkuRuhAkO{xXBc45q20RJw!Myx|t_MM=}n(T@+D3U@=o_c#k3r z@pjdyTFkNc>Un=&NXdK?oi)iz#vG>ICbgZApd2_wn}zT8|2dXOXl|0a%LjmWAe?!m~8`q!=WvF~+!Q(~`pM_;+>BRe31*0|@_X zJ?t~Pm<&I$leZ=L_{L8jD^>uf$`r^iW}+BrpKA-^=x=r1Hu&_4)#?#lm+5w1Zy`;V zb{Dr^ksdqyXZa!^{Bzo7hmbOh?(ZHvqD{FhE(-NR`vHMWn2KlJzu3mT z-7;5Z4I_2Mh_pq0bqAr0@d`M4jJ|vI;waTq;Ppy1E!{nHK~71vHy{Cuu@$QX?ri#f z{4Q~x(I&gSAHl)lW7zZqHLs0bGTcW!SkLvFDCeUApd)PiaFyA>4 zW#=r#;>YTdY`U-HcoL=^nTDPqMAWE8RCACo@v>U`Z-ny%znLUzgm(nNd_=WjNy&*t z0zD%R`at0QeNV;^_cJnpT(iZ!iN9QW&QXfNB}=W-t`{?%nFVVGwwFcjgw4!pcv>!k zao6b3Q^(#*r$2bEGRDR1n8z!FUg>0z;#x;fI8Cpg<^%=b*NxGPgs>N`Nur7QN2ZLR zm;5VN+)tvvM?C|E`8TNdIjr?vE0gt4hzwv-ngDUvnhHA_7d|uRi5DBTJb6k|j17z_ zl4q-MZ_9UW$5jU4k2G??pd{`pC+pHgj^!?n3;i4eJ9M&o#$C>0fJ(c)C^KL86h)bf zz%ij-#7o69^|PR-?7BYjPqb`)8^ttJr-Q(NwdzmVr5>>%OUb{8^GkUHN|}Ypdj_DW4HG3LV47Xj+@najXww;PwoND~CGL7bj;N zVfR#q_;~83$bCPRG6nIPpW5JMW}=n+LX)rZ><+|jx)f-Cj7&~Su%$+V)BL6iK;yjE zmWT6nKg%`GmRQmT6bM{gZ2Cq$A6^iXwrTj>1eEuWuTv*j`+H)Co7)vI*_ohx)7_Xql2`5Gpz%T3{__+f@xHMQL>4!K+;x!6kbU)F+Vb; z`9W~7sLhAe(-{k7of78nTWK2UWEgO;-3R8`O1|Pana9#kf=`wtg@L1V3 zoC@W64Hil{Pz(5eJ?>I2YGujow2}JI;eNULb>nVul4%nJ{d%km`2Ydia=JRpXxcZ3 zqCSZ?K{dr%X)r8GHOP^b-4MH2de8$f&tIXnfu~eY!>VO()gy?U zq4Gjq1Q9%ACViRyVaE9$T#+}j#?y%%V zr`RGK^xy{Ib)!tjs!m;?#!{r1F9-MfVN~5yoF|?ne-Rrw;q>LHKdvQU?H346(7j17 ziimP(%@3xMap9E%B8tYAz@>uE10Ab(mJ4vjwjAs8wlV~=#D2zLiq#cH{@dCcN*2Nx@!q!0k48 z3^KF_b6J{p4XS_EeQhtEZON~6WYs;`xzt^^&O&~ql_p_$R1hq z7G9Ze0I@D9ma)N@{oSN}w4qxW^e1#RcS`cQ1zTK{&l}_gqH%mpVuVx1f&^}A)R?2Bdi^=uLzz=Um2N~PM&_S+2|K)#!)K-kH>vaRb%GhP}-KS;g19U zNMKusbb=iy){nYj;YYl#O@gx_G%{vGClUqCrQQ=D4xb}l*9TRMdHNrR(!Y1P8@j3- zlioXQ$$L<{|KDLDf$5W&fO6Gy1vDjOfkxeybC+t2Y@aPCLzEVDSdO7WSX35rgp@h< zZb0L?7FJ{H!No$f)HTe{T_kz&NOD16B$G7l1g)7AiJi=eiLqqI0@s6!x1T>=p?uxT zsABpM5O`~DEJSlNQ*kL-@=2h?`s*Mu-W5(b$e9Zb^(10RG#yjr0T**}2}Z0Di8|BN z>>nyuO|wn40|#~7OucWBOyfxogc{q{aLE+tgcc+9yD8p|@Vdfpl+w+lpjz3tVNmWg1mE&OcEqOup3`ziT_|!Pi|2 zMbnXJ&SQETjTbmxwtgr|&#>ahFN~PR`&{U1_Mz9I-_J>lQ9vT+lX-NIdClPv9SW%| zr_IMpf1EQqQh=ln(X^rnLs7yFJyPU2ala{xXf^zPQP7!0)+;#&X`eexF6b@n6DkH< zL8tK3)ONT?g=%#;)xvh@HfzPFjBVNhunYnCIwgr+wj6N|;RJ87GXhqqPp6E;dgh&x5BI*fA7w#z>Zi+fbHV65-;{wijqzxa>qDeDWIUTEHx5Yf)1#h0o=7+XA zK!wjMfJXAe4CmZa9 zZ5vi{hbM1HK(#T^3A{H(?~H3|B>4JM89`DWPSFy__}U`A|D{;|kvE4<(AY+`*^=6@ zExuLM!7`%%=LY(9n&gzzlK_p9B?aAbzLo6aQjXbAFsoB#VuT04gQgZXcVO-i@%&E$ zi07ErK;kR<0kRvDojUL4E@qU=sc%d(x_FQexJCFD0IC#AOEukck0^uraKA`mA_=Rhba*yfKb288XsNde zocG5?0W8-2LG%_CdJQ`34hWOn(|ktJ{lw@ITLQgqIt$#k-?Qy5o10v!vmD^Xl=5>i zqrbw@>gqmxBW5pp*V)jVJ2!BkK}K5*H8RYry{@ zQZ$Y( z-O(-h%)v^{chJ$Vz_KkEnYCM<48sVo!Xv|7^3Y@(-u2omC!%4|HfhC4ogA}-3^wY* zSPgZ2B;Rs`~j@_QNoNi6nq{F6ZL z6Zj`FIgAUm>cff~A^GQ?WDpmO4i*?Qi~;<_fCS9whbR6W9M$mAg6`;j9>GNf0ik>^ z_`eqh+#hh{5JKEA>L2W1VdDP_d{2p>{=o_k(En4I&JZpbIL^QMS^gWh7qlM}3<2*C zJ*FQT$k|Wvhq1B8*k;_j050$zr;hnA#;3}wfBpmhQ0}h4B3!{P!Q(e-ZB~RwJOu2#fCT z@9%H=JEK3>dz=2x6>Ib-W+0Q9gMqQN36qhv#k>*y%zxaFyys4P7oOSvCo2d@ zml1F}oD8^;3=dqMLM8qU{>vG}U*KHRKj1A7RQms0!ha3&|8EaXw0O^i540G={=@w* z6VSi7+kE}QU15UdAK(|0=z@2^(fg13FCd-+Fnf&i59qg5Um++6NC7wq2=`wgD93*v z3=(KFMeqk4F2Z5$^$v!62lM^~{@@Ihn3eu#+^>w{f-SlHsk6=~-k*$r83g{7k=qT3 zWQy}{AISX2$ndwd4zOby6YSdSPw9x6gusmn_&-ekYpC;oTZqZ`9ZU)|nfa&v|5A_m ztF)E4KU`Y^@PBjtr@FDTxL`k1faSAN|8ugkHHHB;nf3>~Ktn@={GL(% dcM5rTiTOX5GEjex43Xt`StuYN6+OTI`hUu4YbF2y diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index bc164f5..a4f0001 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Sat Mar 04 13:37:30 EST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-3.4.1-bin.zip diff --git a/gradlew b/gradlew index 4453cce..cccdd3d 100755 --- a/gradlew +++ b/gradlew @@ -33,11 +33,11 @@ DEFAULT_JVM_OPTS="" # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" -warn ( ) { +warn () { echo "$*" } -die ( ) { +die () { echo echo "$*" echo @@ -155,7 +155,7 @@ if $cygwin ; then fi # Escape application args -save ( ) { +save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } diff --git a/spotless.license.java b/spotless.license.java new file mode 100644 index 0000000..722d029 --- /dev/null +++ b/spotless.license.java @@ -0,0 +1,24 @@ +/* The MIT License + * + * Copyright (c) 2004,2005,2006 David Rice + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation files + * (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, + * publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ diff --git a/src/main/java/net/rptools/dicetool/DiceTool.java b/src/main/java/net/rptools/dicetool/DiceTool.java index 56f4cae..e046579 100644 --- a/src/main/java/net/rptools/dicetool/DiceTool.java +++ b/src/main/java/net/rptools/dicetool/DiceTool.java @@ -1,25 +1,25 @@ /* The MIT License - * - * Copyright (c) 2004,2005 David Rice - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation files - * (the "Software"), to deal in the Software without restriction, - * including without limitation the rights to use, copy, modify, merge, - * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, + * + * Copyright (c) 2004,2005,2006 David Rice + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation files + * (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, + * publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be + * + * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ package net.rptools.dicetool; @@ -27,36 +27,28 @@ import java.awt.Toolkit; import java.security.SecureRandom; import java.util.Random; - import javax.swing.UIManager; - -import net.rptools.dicetool.ui.MainFrame; import net.rptools.dicetool.ui.MainFrame; - /** * @author drice - * - * To change the template for this generated type comment go to - * Window - Preferences - Java - Code Generation - Code and Comments + *

To change the template for this generated type comment go to Window - Preferences - Java - + * Code Generation - Code and Comments */ public class DiceTool { - public static Random RANDOM = new SecureRandom(); + public static Random RANDOM = new SecureRandom(); + + /** @param args the command line arguments */ + public static void main(String[] args) { + try { + UIManager.setLookAndFeel("de.muntjak.tinylookandfeel.TinyLookAndFeel"); + } catch (Exception e) { + System.err.println("Exception during look and feel setup: " + e); + } - /** - * @param args - * the command line arguments - */ - public static void main(String[] args) { - try { - UIManager.setLookAndFeel("de.muntjak.tinylookandfeel.TinyLookAndFeel"); - } catch (Exception e) { - System.err.println("Exception during look and feel setup: " + e); - } + // Draw frame contents on resize + Toolkit.getDefaultToolkit().setDynamicLayout(true); -// Draw frame contents on resize - Toolkit.getDefaultToolkit().setDynamicLayout(true); - - MainFrame tool = new MainFrame(); - } + MainFrame tool = new MainFrame(); + } } diff --git a/src/main/java/net/rptools/dicetool/Test02.java b/src/main/java/net/rptools/dicetool/Test02.java index 0de01df..c124837 100644 --- a/src/main/java/net/rptools/dicetool/Test02.java +++ b/src/main/java/net/rptools/dicetool/Test02.java @@ -1,29 +1,51 @@ +/* The MIT License + * + * Copyright (c) 2004,2005,2006 David Rice + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation files + * (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, + * publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ package net.rptools.dicetool; +import com.jeta.forms.components.panel.FormPanel; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; - import javax.swing.AbstractButton; import javax.swing.JFrame; -import com.jeta.forms.components.panel.FormPanel; - public class Test02 { - public static void main(String... args) throws Exception { - FormPanel panel = new FormPanel("java/net.rptools.dicetool.dicetool/ui/forms/QuickRollPanel.xml"); - AbstractButton addbtn = panel.getButton( "rollD2" ); - addbtn.addActionListener( new ActionListener() - { - public void actionPerformed( ActionEvent evt ) - { - System.out.println("Action done"); - } - }); - - JFrame frame = new JFrame(); - frame.add(panel); - - frame.setVisible(true); - } + public static void main(String... args) throws Exception { + FormPanel panel = + new FormPanel("java/net.rptools.dicetool.dicetool/ui/forms/QuickRollPanel.xml"); + AbstractButton addbtn = panel.getButton("rollD2"); + addbtn.addActionListener( + new ActionListener() { + public void actionPerformed(ActionEvent evt) { + System.out.println("Action done"); + } + }); + + JFrame frame = new JFrame(); + frame.add(panel); + + frame.setVisible(true); + } } diff --git a/src/main/java/net/rptools/dicetool/model/AbstractData.java b/src/main/java/net/rptools/dicetool/model/AbstractData.java index 282d3b9..abc7762 100644 --- a/src/main/java/net/rptools/dicetool/model/AbstractData.java +++ b/src/main/java/net/rptools/dicetool/model/AbstractData.java @@ -1,25 +1,25 @@ /* The MIT License - * - * Copyright (c) 2006 David Rice - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation files - * (the "Software"), to deal in the Software without restriction, - * including without limitation the rights to use, copy, modify, merge, - * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, + * + * Copyright (c) 2004,2005,2006 David Rice + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation files + * (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, + * publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be + * + * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ package net.rptools.dicetool.model; @@ -28,25 +28,25 @@ import java.util.List; public class AbstractData { - private List variables = new ArrayList(); + private List variables = new ArrayList(); - private List functions = new ArrayList(); + private List functions = new ArrayList(); - private String javascript; + private String javascript; - public List getFunctions() { - return functions; - } + public List getFunctions() { + return functions; + } - public String getJavascript() { - return javascript; - } + public String getJavascript() { + return javascript; + } - public void setJavascript(String javascript) { - this.javascript = javascript; - } + public void setJavascript(String javascript) { + this.javascript = javascript; + } - public List getVariables() { - return variables; - } + public List getVariables() { + return variables; + } } diff --git a/src/main/java/net/rptools/dicetool/model/Button.java b/src/main/java/net/rptools/dicetool/model/Button.java index 438fd9c..2204bb0 100644 --- a/src/main/java/net/rptools/dicetool/model/Button.java +++ b/src/main/java/net/rptools/dicetool/model/Button.java @@ -1,65 +1,62 @@ /* The MIT License - * - * Copyright (c) 2006 David Rice - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation files - * (the "Software"), to deal in the Software without restriction, - * including without limitation the rights to use, copy, modify, merge, - * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, + * + * Copyright (c) 2004,2005,2006 David Rice + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation files + * (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, + * publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be + * + * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ package net.rptools.dicetool.model; -import net.rptools.dicetool.model.xstream.ButtonConverter; -import java.util.ArrayList; -import java.util.List; - import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamConverter; +import java.util.ArrayList; +import java.util.List; +import net.rptools.dicetool.model.xstream.ButtonConverter; @XStreamAlias("button") @XStreamConverter(ButtonConverter.class) public class Button { - private String name; + private String name; - private List expressions = new ArrayList(); + private List expressions = new ArrayList(); - public Button() { - } + public Button() {} - public Button(String name) { - this.name = name; - } + public Button(String name) { + this.name = name; + } - public Button(String name, String... expressions) { - this.name = name; - for (String x : expressions) - this.expressions.add(x); - } + public Button(String name, String... expressions) { + this.name = name; + for (String x : expressions) this.expressions.add(x); + } - public List getExpressions() { - return expressions; - } + public List getExpressions() { + return expressions; + } - public String getName() { - return name; - } + public String getName() { + return name; + } - public void setName(String name) { - this.name = name; - } + public void setName(String name) { + this.name = name; + } } diff --git a/src/main/java/net/rptools/dicetool/model/ButtonGroup.java b/src/main/java/net/rptools/dicetool/model/ButtonGroup.java index 3135294..d069a85 100644 --- a/src/main/java/net/rptools/dicetool/model/ButtonGroup.java +++ b/src/main/java/net/rptools/dicetool/model/ButtonGroup.java @@ -1,67 +1,64 @@ /* The MIT License - * - * Copyright (c) 2006 David Rice - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation files - * (the "Software"), to deal in the Software without restriction, - * including without limitation the rights to use, copy, modify, merge, - * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, + * + * Copyright (c) 2004,2005,2006 David Rice + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation files + * (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, + * publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be + * + * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ package net.rptools.dicetool.model; -import java.util.ArrayList; -import java.util.List; - import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamImplicitCollection; +import java.util.ArrayList; +import java.util.List; @XStreamAlias("button-group") -@XStreamImplicitCollection(value="buttons") +@XStreamImplicitCollection(value = "buttons") public class ButtonGroup extends AbstractData { - private String name; - - private List