From cc0f69d8b103cbdae9d96f6cda318a2dfcd68337 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Fri, 19 Aug 2022 15:43:01 -0500 Subject: [PATCH] Updated project to include a jar command runner Co-authored-by: sigonasr2 --- JavaProjectTemplate.jar | Bin 0 -> 695 bytes bin/ArcadeReader$1.class | Bin 0 -> 1926 bytes bin/ArcadeReader.class | Bin 0 -> 14820 bytes bin/readers/DDRReader.class | Bin 0 -> 7699 bytes bin/readers/ITGReader.class | Bin 0 -> 7346 bytes bin/readers/LoveLiveReader.class | Bin 0 -> 9816 bytes bin/readers/SoundVoltexReader.class | Bin 0 -> 11725 bytes bin/readers/TestReader.class | Bin 0 -> 738 bytes bin/sigPlace.class | Bin 0 -> 15065 bytes bin/sigServer.class | Bin 0 -> 16249 bytes manifest | 1 + readers/Box.class | Bin 0 -> 555 bytes readers/ColorRange.class | Bin 0 -> 685 bytes readers/PopnReader.class | Bin 0 -> 7083 bytes readers/Reader.class | Bin 0 -> 11212 bytes readers/fonts/Font.class | Bin 0 -> 7231 bytes readers/fonts/Glyph.class | Bin 0 -> 1586 bytes scripts/jar.sh | 17 + sig | 22 +- sigPlace.jar | Bin 0 -> 43023 bytes sigPlace.java | 618 ++++++++++++++-------------- utils/define.sh | 9 + 22 files changed, 350 insertions(+), 317 deletions(-) create mode 100644 JavaProjectTemplate.jar create mode 100644 bin/ArcadeReader$1.class create mode 100644 bin/ArcadeReader.class create mode 100644 bin/readers/DDRReader.class create mode 100644 bin/readers/ITGReader.class create mode 100644 bin/readers/LoveLiveReader.class create mode 100644 bin/readers/SoundVoltexReader.class create mode 100644 bin/readers/TestReader.class create mode 100644 bin/sigPlace.class create mode 100644 bin/sigServer.class create mode 100644 manifest create mode 100644 readers/Box.class create mode 100644 readers/ColorRange.class create mode 100644 readers/PopnReader.class create mode 100644 readers/Reader.class create mode 100644 readers/fonts/Font.class create mode 100644 readers/fonts/Glyph.class create mode 100755 scripts/jar.sh create mode 100644 sigPlace.jar create mode 100644 utils/define.sh diff --git a/JavaProjectTemplate.jar b/JavaProjectTemplate.jar new file mode 100644 index 0000000000000000000000000000000000000000..46a59da2f02022a6a77296ecef63f6bc9ce8b13a GIT binary patch literal 695 zcmWIWW@Zs#;Nak3u&EIaWk3R)3@i-3t|5-Po_=on|4uP5Ff#;rvvYt{FhP|C;M6Pv zQ~}rQ>*(j{<{BKL=j-;__snS@Z(Y5MyxzK6=gyqp9At3C_`%apzGu!{E{ddY;ui;i=>K^l6cv7waX>U4By?VxLv9RjF}FF}lu7b#P=| ze(B5{5#KnyI6bfn^E{5*N8UfX-`|NsA3@oR7P+T#mU^h4zud*t`L zHFa9|Hg|2|d*8=50_UG`4gTJ9;e1E&LGzDZ(9p zLvV&gv~l`5VIRelr>=^1DH#+m>+a9~Xz+B06f1l2%xSlu1UB55Zh1o8MrmsIFngmkUZCm!a zPdD$d`2IWQr*}8jFo9ytqLi8YG0?|#jG!=KWD;ROjdWOyf+8Iiz+(}V1kkl22Q?_l u5x^G6glk1g0LUhQq6FDtpeR9r`#>fzf&#o**+7EKK)4P_e+K%1fdK$4O3zFH literal 0 HcmV?d00001 diff --git a/bin/ArcadeReader$1.class b/bin/ArcadeReader$1.class new file mode 100644 index 0000000000000000000000000000000000000000..bac1e4055a6e1565549a2a610d0e3842bf7809d3 GIT binary patch literal 1926 zcma)6TW=Fb6#izs_BzgzkU)V@C@BG&kbqlykAc=WPU60R`<) z82pyLFj>@cf?=DQOpMKqgwx?OVKvIIBkod_ZM_&A*Q~;Xwj2te1D!IqE9gQuL)Rt* zowg({tHP$u{(%+-GKJc)6OYN*rC>Mq(1A^F*TJvb!qn`N$*^mKZ>(k~g1vZL#y$o6 z@dQJ6lb{Y^kPDiX5SJ(bN_X1v=vD9}4l+oFYu;Jsc122N7e&qv$vCt@JJmLIW5G%H zh=QlkPizZLQb+o$Iko!M(rh)!ILgq`3@@%*wjV>JcV4r#tY(P-jw2}JX@~t865GWZ zdMP-s7e#PVvkMkOsP(jJNTHdQ0BWXM02{pNs-DGjGM-oP0$ya;(>Nek&`e9%!ANzc zIP+p&D;MpCVP9P#hw)!Wi!RugMvu^Ak4*ux6WIMiL~)Y(LYJm;e4V`@5<7;|<<6hxg}?^G(5 zjs`G>aTzfMui^DgB9D^NB(nD%lM0W)s)^kQz`2A_i`s6DWs9O_+e)0;2G%Cgb6Z zN)=oU*X>!S=0bj)V`w);P8jxbQM+t8&gT_m9OsUjGfm0Vi0a1-HDwh`W68{0GTtOu z*vx5pk)p>$n1`rXrAR4Hf_27qLnO)gXSjh8Z>3WmvC!K-Sp_xVrwfd7mS`7gN6f5lz?2k!CT@Hzh- zU+_P1pRX|wf5?3N0h9S(teroCMmH2k;2{(ldmrJjj6PbdV+KAMv$U)l+;IR*Mtlvv rHSh=E>o@`Kf~p&mNxKpxWQmg_hdj*^1QxL9S_GD84p1e`(oEk!ABXVY literal 0 HcmV?d00001 diff --git a/bin/ArcadeReader.class b/bin/ArcadeReader.class new file mode 100644 index 0000000000000000000000000000000000000000..8dbaea33fd9d9313bd72da1b72dcc2645c7a5a9c GIT binary patch literal 14820 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 literal 0 HcmV?d00001 diff --git a/bin/readers/DDRReader.class b/bin/readers/DDRReader.class new file mode 100644 index 0000000000000000000000000000000000000000..35c712c8a9af71b5f89a29ab5be9cf7c52d7eeb5 GIT binary patch literal 7699 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 bLRl}C^%7YxlXWFkF_n!es;P#qhUb3)xMp`3 literal 0 HcmV?d00001 diff --git a/bin/readers/ITGReader.class b/bin/readers/ITGReader.class new file mode 100644 index 0000000000000000000000000000000000000000..6849b7e53b51a46717fddd677f4628d53f5908d7 GIT binary patch literal 7346 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 literal 0 HcmV?d00001 diff --git a/bin/readers/LoveLiveReader.class b/bin/readers/LoveLiveReader.class new file mode 100644 index 0000000000000000000000000000000000000000..1049d3b4d2d16cfb76ce08e27f80d93e83e51fa9 GIT binary patch literal 9816 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 T_qcuUlO+3n>`O^MISBs`=nO{O literal 0 HcmV?d00001 diff --git a/bin/readers/SoundVoltexReader.class b/bin/readers/SoundVoltexReader.class new file mode 100644 index 0000000000000000000000000000000000000000..798d4a78df07e12b61e2f2d0ca95c8bf97850b99 GIT binary patch literal 11725 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 literal 0 HcmV?d00001 diff --git a/bin/sigPlace.class b/bin/sigPlace.class new file mode 100644 index 0000000000000000000000000000000000000000..6409d828b38bc912a0172803bcf733de771ace7e GIT binary patch literal 15065 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 literal 0 HcmV?d00001 diff --git a/bin/sigServer.class b/bin/sigServer.class new file mode 100644 index 0000000000000000000000000000000000000000..99337b00529e3f7c981d96c5b2f4df3d2f2106e0 GIT binary patch literal 16249 zcmb_@34B!5_5V3{miIFAl1XMVghvP&b`l6-kpU+GAt6ANJ;4a5Fk~h$kYwV_gvE+= zL94BGY26Z)O>A20iaLa#Xtl+ywYFBPwYzpvYs;@%tAg_T-Zx7oFx38kfBoQ_`|fh? z+3wly%L||P9VVig;z=idghnPZGZnS@HwA0M?alsJQz*6pt!T{O9*Z)K8Mknwf3v@` z)!)9pvLO};wXd%#JGIM3R#FsFHOe6yQ~t?on5@kk{E;~^CiA%ZvRWHyl&eslMh?m! zFn`IqjlpJ2vsQ=NL$O&*rg3HGD&%Bx8$jEGvC4*EWOFdm5N_TSjO9=vxfL3uQ4tMh zQlp{uOI!WTL2R^i$?`@fuD4ME4Usz)Cw4zKhe~LeLZupcXgE_2)+9h;+o%B*EJ+Y~ z@^)1@G?GRsG+LuEGy4cnrzU>gt)cLINRVtpuFxfD!`fptNDTa}ZT$|TdvF$0Xq z#>oj(q0mH)Drpjv%OH9n6eguZ!fb7qKu!fwcCMs&ibhlE3{d26ZVq+;BiFd(b_Pub znN>FO(sYGpXmlp|m>m5qPO?Fbg%eU|Dom}<)CDIA5(>>^(o>k$w|8_V>0KW52Z9l~ z$yplBra4S`>w~e33E*=IDrn3Ys8Xqx$yVR6q+-U5X=heUwox_JNg>W-Do+x9(vobP zP-p?upcHB~oh>cFNHCDXYd)PVL7pR-la^Ovuu5`qJ}uH{vE+;j@dXx!+Jh=Bg-&^F zw453gYSd_jae#~+I%A>M%1Cg1aBJmKe=HV^KtPs@I>WJ`JReOOokuIt6YXdXK^|kX ziEj0&M5wgdQ09h43FQKfE~GUOYw)5@e=APt01Zf-o~p7{5_i8w>!=wUO5C>@Ckg#l z3To6s>j9!Q*uFlt!5F|HnNJ~&Hp&6BTwtRK)T&V%Ng@n=lc%S)>|B*Puq$jtEZ82a zm>Y_AgrlKYDBSJ?SF9A#C`uqtZN?0Ls2wO4XHr@VJJ0~+gYC^hAga=4XhjNImOi02>ZZFSf;*WCPC_to0(MKK*aICHx4O2> z;P2gX{=Q@nNVL*-H0q)6LgqN#HQQoA$b3+y%v0i7U1Otr>H7-Zr_ufN0BlMMuS}c( zc}pY|g9%s0t*(KzpmGl}kxKh9R6TLx#92A?C_Sc7T%!Zj%QV~o(++zey-ZZP2>7pn zKN67IhIb%jS|`_o`lYLV&P;f>VYib*us%*6IFT|jw7Y=3yni4&(06&M+zO$=vk@g1qMlm zsjbIJTOW*oy&aMmygK1Q%2av*;!lAwPL4`HW|}ad%hT4`8Vg}ztgX{!kMWBw}7 zx^Smt&$gLPGLum0r$ETx0lS0<04KR}V>H~Z($APm=JfY^BJ$WqW1axisyP-6fRa~W zI_q017KH<$mQXNI(GbG1P8fn$HF}MH2_ueJA`*+rz~VHg*04%%X!I+36EcqkI}#3j zZl($iFdG?1XFz`zf0{$Tq2DU>JB@x%e_$G6ur(HH3mWY3$13OI^fcmq9=Kx|Z6@dP zd9`aMPo6S$&D=SSb!!^y7u7M1N^JTcmqLTyqPG?LlSY50zreZm@3t!39t@=Rg31`8 zWNP{X8vpZlNqUV*12%yBdVWl6Y(G@3U=!tLS8TH|M+ zXv$VO$;uii=3J(EnX3j)%uu+216kBuWd{T?Wzr;-3z)=`b8PJ5LWSKL58@)QB5ffh zr(}4t0XESDd(Bk!|HKe!IMXno@FlEkJcNs-Eizou@`ROOT9|~J5pQNlKgs#i^$gqw zE`Upb@6<_Ws9Xw1y*M26q{Is4cpR6d z*$2n6V)??k!R9c+T6pMy(aNq;3Bt0unJn9>JRZ7KyJXR#y2XtRDp%mGIo#HU2rH^` zC9EP$XsB5__@g{o%5=&}x!LK@m&#{geOoXZ^{+S9do`XeLr8mbGD15ixJ~6Vak6E& zrE-<@XyMjyL}kSFrqNStRXz*Hty(gAj>a{T(Y7R`=d`w}JQr(g7OtpM8PU0EdEH!< z7XZlo<#lz7RX!V>T3NSn;gTkm7Xp<g6#pOiY%&pD!Y^5swBMWDxWWjoCJI> zLEjpRb{I9mC zJ(XujT@~IUp&&NTmbzqHBdNVu z%7PriKiEqb-&dg#i_d*5{gAS zab!yP8jY{zuOm?jMd!43Z17`^BqMv63yf914uD#apy51SkHg&3+1@N8E0u4AGHeQN z+Y*ihRQ?u*Hv1zX|GL(olX4l4JQ7kbgHpe5LnzO;BMQr!vt+0-cgvG-2h&hwXs56v zHBsfeK=0^jb@(T#+NJSs-XpP-;b24OI;L^|6?+W|?*@OWE7#3Z`5qjgYT4*9xSjwC~{lJ3VOHF2h?nb>?mq}NX* z5&|IR$4-4n0;~O=4Uu5W%n>R-j)5_)u_}cRXP#%nn<2N~w4_6d$i`3c4-|eHITt^Z zHvK8DHxKR;syZc!*+4gy3?tH={Xk_(4!A$k_y|91xG8@Crc+iF04-HzOD~lEId!a! zSZE>gzA8IE&o3zaqO|`A^z#g#o*tIL^?=Ma=@O7w@Jq75Q!dxPtnttI=MV+5B6*PO zGqmOOK17B*ztH$qehn+z!&_udpVYG~!KafP{JK1^Z!k4yitw}^IDteKP#M@I7oV!$ z24CLP_}9{@nf!r(!oNL5zDwXB67tRA-}4_7{-efk@!POV10$nU;@CeQv2o+_6^mhg=0qa?ZBl`3{GRlmGU%Tyk^3Kw|0$8P)h@4-)WPpb zv+$t|pZ~>FnH9s+i(O@82c|P*4EhP8iyD8xlZ*vbmTAJYNt0Fn3_ex{Z}n{*tw9;z z1W{?4Pfy4q;S-AB6y}D1Yee|GMe@LgDx*mgW??~?2?;lJc63A#(F6k!bf$)-SD=2U z2qmosvLs-XH0!p?YABAmB66698NxUATHM*%x-^WkYA}+XV-t3vDI!-Bc{0yW1kuLq z^c0X|6vrU{=1q-oWkE%xr^*85lJr!Ya0m@5AY7U#6mGyn_??-bG$IXUYRJm=la(OT zw49`h$YLX*b)B(br8HI&Xq8PAiNT7{H8DgWQa?%OPh9}J84K4ZJhZecnL@KFXUjU$XQct<$mZ%w8@D^SRX(`%@!U9xy?14=6id`~wO$c_}F6fs&8 zW5n20W@^k%V`PV8mbVqbKx3H6o8;I)h>b}sk~*3 z%;U<8a-Nt8gC=Id#Gzs)=M^A;p|`{wP1J~5ut1ib{295J!Gc8Rsl}I+pfVA35^fn( zfz(3e+H5pZEYL)~Kvq%E+!=|$gfv3M7lm3|LvW?IE;<{wL@d3-DipXc zFbO0#sib1yqNG(yTi)!VbqicFn8bQjw8IevBav{#sN<*t2@#yh8BQ7`aHn7r5N^7n zkc!3(e|IW!r}kvwges5^nR9JYr|uP7G_lpF<+ikTMj=6SEpmLQkBrcev>-!hl#U4Q z$FTIMj~VZZ*bY0MG|riPRs@n2u^I=!mUaN3VA+>^bj!}g1`XlPNOMpcduU$zGIOF- zObEFq9F8Fo^mi-@#x{flQHNDrZ4+M;*C+zl876_WW>mi$47G0#ZwjJ*F0Xo_8Zff+ zke{J$&2)Pbd4ta6#01aYJ`bw``B_oj)($xY0De#6#>^9Lk%KowK`ScIxE0}`$1`*0QlzqNQ4egJ zC$=FJP1no)5tPI+51E{qD=X3JhHfx^??m#&)s+%)pt}>YWbS|8jScXwioGyMX!MWl zOLQbxV#ar1Xj$eqXnz;>q8j1REXB<0<;{x4?2=62YcAVxi(ciAl*#A833}f z_aPWJ8J?u8`^ox1oxR1;P75wn_t>pD04o+oIK#STak( zeH16AL2{kt{YX**QYgsy%I1awo_55CEx71|q&%1yFnHhYF^mJCL7slxJqYA^gOhN! z;Bvtejrn7pQO|0=z=JSStA|JXgUqY zrvw_lq`>u*{Fnew8)S&`4yr%f@K%ZuIi{5N$=`?2WN|T`R-=0aCZjr%oO};1(@hw= zq`=zbc3b{~x+iUWg339OvF5WVB$G_8-SjP65Jy%O)UoHYk%?xI69f8~S& zRKJ*gR`w|-ugbn0_SsBcdqtcU`pmldNZ!A7vvWx=EsN8+K26t5Q=F^fbiOy&RHj?v6zJyFCa=ToaNGA%A&|kO4d05>rX3FMIq_Z( zzo08ec!pc;rjZzxOUCO8*6rkxx<$6m?_%BTReRW_Tb$uIUDQpvXmz61MYGY`VzkC% zw$a`uI|6IXYvZ)tm!s#H^c=jK197^{m(xQ(N$t`@PamQySIYmLS2?dfK-cIw2k09< zhwg~e^-c15Q#Wby_vWS^GP-Xwx^HeeMBOWO#{s(2XDcw%;}&0jg`OX$T`Ro>J8AVH z6n*vl1GLxY)Sb?nINjrO={DVEau>wud%9Cn1>7eA6X%1VSN=Yn{7t?aAYA+DkppxP zBRyp8Ik8K(#p!VfNX~y!^2y@-fdQ#B(E^Fvd+8ak9TVL4K6=iOIL4lrvpzo`trv~? zMTwT2-$y?o@+m!^&qCiz#^?;QH&1TyvfTLdF}n5H&xd31=W+T)*XMHS&n4EcOGfRd zU-!}uS1B%Swys&GINwFP8*G#9zZv}x=$d(o^Y2Mj!gA9TU;ZIFy7B=1 z(^sH74x9JUdfkCJA0+31e_);Ku(#0Ub>qLny>zDTa=WMa2I+%L`k?%oar&1OY>|!* z<1Hcg!FqvSqz{hM$4xujP_!c;NH6H4;|Z4JJ5NZAXp3$=LdCkZ+W(oS(U}mz{AQ++(jU$KX&G56d=Ks$+L>kUbD@FOTv$ z88kXwTyCJ`aq)x%E_#8BC&qcwQ)F!bWS^^tTq%IMGtre^XS+^LpBm?BUAD_*bB58} zESo-~xhXk8!gFyoIPBtCah~lf)C=W#vsGkFNT6mMdx`37Oeiq@^=?~E5?%sGts&yC z4Ct#f`qmHVn{V_r4Ct#j`pz2AcaG6Fen8(MqpxT{-xBn7eLI}CDM9dy4z}%ZK*x-&GNB(aF^v5 zda;We<9u$D^FiM*y*SRRT)f)g+y!6?m=xzVy}Zs>YVvwa-r*+i2$OeYzQ;Stp!k}$X(>@O1unp6Pf%68G7Rmo%Chu6iG&Rkb99XNDg5^@P$6;%LFLRga z!wfsN*Zh_~%v~n&wC$!M_wX)qVsE{)k2e5%X%9`y7%y{==pvvqLc$OA@+ORpm8*eF zyPWPWGq3fIb&u$#o82S3=>~V%PWrk8AT6dP|NLEaiFwH@ z$qx6Z-LzQFPB>KWa5kK-KiRUMk-<%eOQI36y$FhXBg7+dUct zVuLa6vR>ZSMb;f-SRz@H!lH6F707l%cICTBb&u?#21!kh**mhw6g5T-a>{p`g8l1E zDVd1|Ou z_9}s1{#p{Yd9BelU}r}ylMe!LS2#p)nJ>1Q?&~|Es3TtiRKprq<^?Q zU37hF;hJ4^MXHThHw_S>h8(i*wU z5c~>h5B3s{AG#8zAqg^dO37u6Nt2U2s!2s7J^O&v{gLi5-2_vYuv8}zX_Z5^UMw2AEFZ_BeIm!5c08j+h5)cw#L~kz^m`hrPkEa1-LMF0PlLBg_n;)i?_@yy zt^sjS8sZ=z+ru-nL0mHcBHk+9MM;SFWn$~%4 zy^DrO`u1b3J|xbMy7)i>N%lxiHpwXm4e)vzye?Tl*GUlh`j8~`lA~Wb3FDH$ z^Q(6!By%W%Vm{=aaPM+kN$tNsJ6&*PdV-(m2!POC6*`nH!Ds1`F9N~ z&HMRJ2=e|4wcUJ(-$Q8gzC^&qe@_7UQuec+wBJh0em-jKDnr=Q#J5!PAL3g&OUBeC z$aYdJ9gg@~cg6VwBdT_#0L!kyIFcz?$@gp187BNEazpZ@7NlZd8KWm7ZCWh{KXUQM z*#>9H!B1U$Jlo*#ia39M`qkr)(6I4wKG8!(i_p$bv~w0usE7+O;mMw(dl!z63tP|8 zZuwjAFuvp)=UC&|D990ZL>-$^8SpqRbzCm2$zPSsj%yv)3P+;GVD9EINbJX>TvCA| z|3vc8BxLTBX*x}zI{f{@Vwy(F$V-jrX`&gliq519$VY3D$hXi;+C;Nx3!Oz*&}_Pj z=FoLigD<6P@d0!l?WB2hH?9`HPYdWVs)w#Fpd)k+JrAfa(Gq%vmeQN}jQ=fap!c!E z2Xr1Q_&~paR`FO`&De?O(pp|c>v%0bsNO&UzKB|Q3qFzGP9eUAHu4SB%6Cwhzk_e$ zAEb-;AVv5Yit>y20{#{11wfzt`V#0T5%zLU4-Z+l%&5UuB2~^Z_+K|M!H?xNnPSm>K0Ga9pX8q-bKdf)l zKdtZ32i8yNL+fYsZ)G@rtc;;glnHc9nMcQ!diqS+K%XlYu}Qgw%}O_0l--=8#M!32 z%9`>z=PGY!`8-L z+jgE|yPB(Px8g&)J9(DvFrQ`n0nf3$%r&-GxYqU>{l@ldo^N}H7uY`JdV2xSw-@n3 zyN4Iq$Ma(QR9<5D@=|*(FSpO*2K#buw6EZE?W?%SzL8hjxAH3cc3y42mM^e>i`Uq9 z@>=^I_S^Syv;74Q*ni4F`=&7R)dep z>bO%|fX~4Kyj2VFHtjP0igq1eqTPb;wD#~I##|5Ilsl5YojZwM%=Pjux##h%xt)Al?oE7q?&I8* z`!09qzR!2$e#Cd?G2fLpfp_Mu<=uG~^Parzyf^PQ-j~7n>(Y}J8bX<-0wfwZ>>->!4 zdj63tKZ+By{RE5>>_Q3A378uPS_*j;s#a*ef-0^;Z{Y_MtP0)Bins)&XUrT<`6taZ zW}Gq?lRu>*QRbR#J5Cc6y3&4}3KVhaaTp%)F*!z$Ejod}H2d$i9eDyKanMQoX2TF@ z8t5FAjReXcQ}w5$jX87ZXH+G}#0tl892Byiz~2GkkLA9Q>VBBUYOItu7Oe2H#6N>A zPg41p0m?u=0bg!`t>8o^pP8@D=8;1O4>Q}2(OlzMJL4Fw#=oh@XvMg(Rd*f`-b!Ui?2W zSL%%}hB;2)`r*IR4pA|5=n3etNbE;+wj!XZb}}UqfVYMMljRfQ8b#RWE7DENF9egd z{w;9R7PxC~32NtowG;5To61dIv)e2?_R`StZZp!O2_~GEig1%3Q3h(9ODqfv7L%pEm+kjW}uoX&Wwxd@w&NBoRxZ$L1cw)1&Ij))8zRS z+z+7c92c|u#N5>M@h(x90%HNN9jscudO!QW4|#gZb)=SQf=YhFcz)A(-e5d$GM?Wyp0^m!+l*(I@w~%$-eo*@8P7e&^KRpL rkMZm=p5HT`-#4E38_x%g=flSH5##xo@jM_70wWu+=@XBO!=(Q&P+tqo literal 0 HcmV?d00001 diff --git a/manifest b/manifest new file mode 100644 index 0000000..9e5e701 --- /dev/null +++ b/manifest @@ -0,0 +1 @@ +Main-Class: sigPlace diff --git a/readers/Box.class b/readers/Box.class new file mode 100644 index 0000000000000000000000000000000000000000..946d24039a2928fb779ac93c806944f19cb2a910 GIT binary patch literal 555 zcmXX@O>YuW6g_WdU7>=0%6%pu^zD&uO}F z;{`=9z`McMH^M3CYac2=N6B#8#IbSK0O*;a1qsy;3 z6tFsrKnWCkVWi%!K2217At!U*g3LIz-s{(mgtej)cZ4^+Z-eU*AV;pXBj+j#~qwU|q_MD)4 zgQwc0cw^5QSFcg0U7)LWgNimOW$mh6!?u3HGJi4NNUQ2effA0WGccaLfgc5Pj>oc4IalO-LcMp&!uVxX>VR1S&+OLZkvxTlLUO##dVPDl;0EO zz=aDE28jbdfWL%**6NT}x z^R9QU`l*2PY!r{u9f5-1J}zP&MHimL4M>4nqQZenE<3y9Xq+5ynPOgY8VQK5&Miw+ zbRxMkjTarN!&KLcRhbcVkyUG9$L8TVnt#VYXW7{YWOj|F3v`W zDm_pG(`Z*G-;=nnGv_(+Dp4xdG9L*<`F+j=e5cz%nw z;BZhRT4+^`rzpl#EaNGH@f3&Ng5Y)ev~8jjVwZk1_zn>)WpIP#45grzp&B&o4E3Nf zmtiqzI2oE>m?;p@uCqQkY!vx>D6@K<`!`X-3eg6;64=7Syv_yd=zd>seZz9_748%} zd03j^3Bz@=)hYZutk2M5xIuPtidr5vXK?LLunV8Lmt{I}SOHkTBU%^MZ|uF`1H!gR G===q0!*Rv{ literal 0 HcmV?d00001 diff --git a/readers/PopnReader.class b/readers/PopnReader.class new file mode 100644 index 0000000000000000000000000000000000000000..7ff3ecc0f600e287fbb7e565ac3bff4a7c800822 GIT binary patch literal 7083 zcma)A3w%_?x&O~O$)3&bNwT{nz-qvV2+8sYqDDvnf$(Sqk~9PmsKSz*goR{x-Q7SC z>uo7YZ)+`T^(w6oywY${uY#}yQ1n`DskYkM-dAgDAGh|}hu8WRQ2L)a`wCgE?r-Ou zneTk_&G-H1`{tXO7d|<99KcL5&jk&-fdUhSa0rydtYC)~i`TTOw}4|tC>%=6640xv zmm6>j4BHUg6s+k@gt}|y#A3lMi$n2*3kLKexM3P7Hc^670bg2FOC%aji!-ghL@d~9 zb%i3~xPWJIR+yAiFJ*X5_%Mt^cLqbICWuRQZofbGZ(&s`MMo67U3K&(5{8cY^ zvF~{%&PRnnQLv-K9!0=gwK%6|{VJPtwB)>iDh&Qwz1)opF~-0}CdT4oA~IM*0zuIN zBy!5o6h=~;OH53~rIZ*CU2mzGXq4p3P1NEFw!5r^RH(6fs7gh|X}XCz)Dy<_ zERB*f)5I)A+3dz_%rP+6L<8ngF=cEx6shSX^ffKP1p7D=kp*l?s8S>FyQI{+umB4U ze9lB8uA&OEcVA7YC)j0?rBS{co2j>iUtn?yvUKm1u;Au|-KA!3Z)c|!vpQ7AdIO6E zDwIO!U~yp)nxqqO42N_AIkSuKc@wQz%9(5DxCv`vEEruMYA5U?()vqzY4X&0bht@Tcp6%Ccc1cI0k`kT{u_3R30biuzGc)U`ur2Hr#ID4jHH4N-vy) zf{RXBpVBm^UwxhtQ^7K*H{;KZyG;BO?iMJ`K+xQqi1u>AmQ>}D^VvwbD@h6+Io2){ z-^O=1J2If>ba!(hwrE0C%7nqn<&ojUeO!WEEkm31&mP`5*IB4LIi6jmWc8@Lbgw?~4kH~o{ z&xBhGqc}mltzZx5_6Uv|IA-EWJeBU9&ANo$nTXhPBdyFeDV>gn`mGC3;~4}0X5v}7 zhS;f`ah@}<%2QOMJM6-9c;3MGP5eOSGn;wv(n;oyP&^umTLylZW}&>s=J|c?Ry4sZ z@4^YZXyQjwL}}DEFxbAaEf#FIitrL%Ht-V@KgBCKD@A7{oQT&f;FEn8G&i-aX=!e0 zTC=pFxplrkStgxl`3Tp~@$UxyLr(vHQWNQ+avx)}EbQJAWhR@Fa)#_mI5_2`d`h9L zwj(Yo_}?aefnN#~w@1R8tXM+HBK%`h!m`|XTvA&2D-*w#<_*hQ($w5GzoB_qQ=9z$ z8xy~k-*YT&XkIe6*@@o^z==Q5o0aL(1OI5^fANM|AeA<4kw%G9Is`v$6=C{!9mQDrEF(Uu&+JRvo0c)K0~D$LdYK|QYWFALYMtq9ih(7P&?OE zre3!wG=)PL#3luP+c{i5wMgZi0kzo_!Hrf! zB-|cMtOzC6vldST>5($&t~$pMUQ_tg5Rt@sE2cx-_!DVXxhaNAvkGFt@J3SOBl%df zlaJXgeE4VUz}r*!_+E=kj20IdqS6!>%A9JaTQ#3c)HX~fq7o8rOrI2E83yUyOzxb^ zF~^x=yqbdUU_5bEZ%>p-c4??998C1aX#54X@fo+BkqIX*=k>FsvJH_AGL|k5g{`LE zo^@8NEx1nNR=hO9&|MOYrrO!Go5}x&KRzx zk=|IlCHIybK6`GMEHecA&y7S9ah@NdORU8DNJqTXA+B(VX=1t|>g3!}_p#X|913rW zY_w`@*RZE^L9jg$iERY?rO{>W_N0pjQm@)E>t0f+YMlxnQhUd&G--Jyk=5%&V>U;t9`0emH_k4J!hfZzsIkUN0U}rsnzfQ!n;<#^vw#ffsk3 zqn}>svGR6%&Z}SJ#Xbe$S;I*P#(43przSgG665xBVuhH%=PC^6a|8-_5GrN83?q4f z^*zi-mnS4(NgqGx>J# zeJ#sQmYZ2_W9etPo#iE#J6PUh`4&adGI1y0SMq%q-)jRCMtSj;7iT;jUTo7nu59a! z?&(OPx?lWNF}+SE^<7rHP)*K^T~mC|XM}li(2L(@q;V!>XD@D3eD|jL-qk%-876){ z$Z|%pTu&CyDo>vm$GvzprPDGs@E-Lf&E{+&CuQiK88(;hDWl$YU5TnmkCs;2Q)Pe6 z*zlI(GctTiTnY%gE*bE;V#vTCK}(59qo&xN&dBlN1bH$BW}1ra?hKpmnVR9T>xyAB z8EgoMWd;HX$pflQszLxwWK>qS-!kbRO_MuDcHU=uwYn2Z}R zg`R#XcH?qnfM#76kf~~WxO}3$3ig+jp7TuvRH#Au^pcmJ9q`L2g}7? zTrGZt)#7E|AiRUM;(e^s%3x_D(521925mOFwQCX4g1AomIyQ-k9Ca8nL|{wV8ATQv@DF<0#oEcO1cG z8lFMfK}_>hu3bCpZ0d~if`>4C2(`9gyF>J!d2GTFT8RP7uX7y3qLt+ZqY4jWNuA+0 zl4z-O>a|6Bt*hLX9atMJ`IJ0YcI+8v6Q(IKZogaC&;B%&*RKpK&ym-5b|<;ePRivN zDn$$(DT!72h}V8LwekzBGXs9pMr4paNv!*9V*TbhbnOV>ig|FG&yUCl=r9hpW!vcO>z`e&(Sy`qlbs z<{*1zc$O;ycul3@E6hRLc|yC1+3{vlckuS@tIUx%VGVA<27CjXc_ncpzKJhmCvN9; z&~e-$mf=q3qeF#pUw{F9DURw_ z<0)EjOuq(C>g(`~T4mP4b%uLB!+_hsY$1QZDJ(gO!ZW=4CNWJnut@!%lN=w5cVt7< ze2B|V;}Ui~h4>k60v*{75C%>-h!Ah*>?I5P*kZ=UwH5pLl)DW3Cu!qZrkzz958%g5 z69(|Jx`Ii5?iv5<@dJ4EY{F}U3BKPwPAT>*O{Qr)R`D+Wc}(QWJ(af@)A3`j+%NI2 z`(<2(SI~r?p^X;@t9fN0*Ifq+syrSK_XbmFfW5t)NUi0LBdX7=m~i|-(K(@FYT6l_ zY+FPN`^sMt%M~p1S(dR_EWIo@v2YiH`zc5AJ{$=6{%2AWuOGsn`i1nozv=`cPk2bBsV{J?m;OP6J?G8F^Z(^n&|&zS0E|IWM^_4 z_m{vg8E3C@FZwGi#%oxC-_V18hc5h{arOts+3UETHzPan1}|{`%q!8qU>EcB9^Py0 zWv{yIMf|ZBx_r(r@#}7r@~1=PDis3Qv}cn0TWYE$d{=|DjF6Pt{z*Z zEtQDGdK#2$nu(xA7Ekqt69#4oiY&r`R3uv4m`H>MS4Wa5Kc>T_^e35^h1r5U6{0oV z6N$&Ta=>P8%~5iT^~okqL8%}=8R^;59ZH3^BqLW)5@|M2#%);3gf36jE{jLw2|woG zGzH{zfl=PfpNfq-HrGTsDu_r=IMupxsf9?hN>XK_TG{8VZ*6R8Ti4jSyk)(Cc?!ca zeSfBjvoN3Ai4F8^4JWpQqN#8q7D`1fQ>^I)CqD!-OhFdQ_EMUAzm8a z*|4c%V;;`Mc?RlDG+#~n1glJ3WC0fq$9ht|I<&?_3)T|L zuHI0hk!I#DZ>}H=EASx`t!U$$P=9|o#=XogUsf?`WoL;7ow32hMqEr;Q*m1?!L;(p zQ%LJWyNONcAa0Qub zJ4{5;M>nxn8Yd6sPQ@FyCgah8R9FQROiwR2j<7*_ZBWtsOl2}_upjqgw}Cw-?!#xsd0^Q!G15T9GP)&Q!#eO_!;vtP$(wmE6JYwLp zCLYCO!MRxsWAcnFOni8i z;H_Fmbe7<2CSFq$rPnO)>rc^0zkz=<@J$U~|DJ|@EY)#ybI18=I*LzTS>xKbO?(I6 zC7aQ>)*4O@L=~g)Y|?ONW3vLQ)FFOg;)nPVBXD;(8cxv|OR{2=_5|JBPfYw&L$I5u z_NhESH}MPnho+fuc!!|6yra2!G?iIdwv|OjxWN`X?K7 zH1S*f7vWpexRU9$kz1WOSLglC#OsQ{0@g_s61_O11F$n}_ zmnQw@m?aQR*U|QvOck4SM{k+; zgf*X((jp{a%2Z*|=iVNV#01MTeP|hTej61Oj&+3_GV{^67g-$2FViGw$aGU?$jo%% zVfjoV+!NlZIa@0$;&kZ%3sJ!tnah5V=`WF!Oqr$LZYIM0QO4*Mk%ShTJ}EKfWI2UF zyel5NESyNKkEg?Oc^2-O+et6j8X2_}P>x^d^HAFMZke+a&kY)Inb+I!{nJeX% zQ96r}LeutSf6ca1b0J(($+#s|>iCl&Y2@;nKEA% z*v7Fe8cH(A6s0q`b#|}@$@grjGvpjo&ehmZFjhG^lk#a?ZIQnIXt*WR7iQTh^`hgytuc$O=)7g7G|6(t;C?;H zNRy7OH046&0KK)1kn^!7+fzYG}$vmSq#V&kd$*6yoRW4JDcTx@p!P-7;124QV%JldzsOyTjrB z3r7ivNyeh-)WI1`WHZ^Jf)$8tF{M*N45Zyw(Xl?hIv(p;8qu8LE^n$>BPM;#3%rdK_BZ zK>2J$3RXvA;TG$7wLWB3P=WDBr;3dfz^cI3g!&y4x1MY%sAcnO2U5%8eSIPBeuksh z@g=o#U~mX^(+ZqJL)tAT5N1H{SOBemG%<4_*2aQ0<8RJvmSt8vHYooXp`%H{hMAxIP^HZ_W&;$Ndhr&)gl3Dq%)nnr^M z`y|QiE0gv1J%rA7ntG&Pr!j(;92C~eH&$2ufK2oFdW{o$*yG!=o-$mkHx{-yPSf8O zA4q5tv5NUttL&Jk0g&#tG#*bSQ;AUjnlO)p-N^#49PrCQdC-uDG_pJ_IBhIeMq-!6 zcZ6$gfbAl9MW`zkPYep~%?v;eq0RKdP^>!|PM)?p9^Wz0-!NJK86)E+t{?1AS7n(Y zEYmL2;bbz4Wua)aEs_d1_~a25=cQZ2QHGRcX)0dI1kFQHsm$}qql8)f;*&$#n8(Hw zG+p8IDZ%zD%X*j$%IeFcth#J04V2YOb!k~T{@Xq4vdL~*cSd%TvEFWIfVW##WVf5v z9hAlWYPxfCEEY~!*(jVe&Z(S>&crj^6h6k zM=s?jufO;i(0eLAq4!bztORojyrfK!XC37fK65IMLMj8si~b`pDhuBJTpeAi1GzTYc{kFvdtPTEPoTFBQWHsBnSRpJkP-dFN{qf=#kB ztNuPb5wFF><^ne-po3CD2IUHSB5NuS{{de+hD!{B-R>&fN^>vlrcoDeqajnby@Kb! z(@EP1;%m6g+uR}b~V|#$bA>(22#1lG0ngrl`?HX zZr-#L1Tn|bQv_mgX~>mwm5s6Mo3w&F8pds-R{f$;?;h4WHHMy44e{%MIoRjs199 zA4(qdJ%{^q@G|xv#=*`&Y3D)Q^$Z>^JT!tQTy_4SKj1%rQ-l89$kXA&9OjcegZ|F> z>e(!G<9#zC+Y8E{HUX{j!jmdaC_W^j^Zwba} zj-2;?2A|Xozw&_)k^WzRNVh!Yp55>(P}J-wX1bhW<~+w^rUFg*=eUT4i)|-0G@scu zK`(Xo)jcq|j#qoODgB1qDfS%0*QvG2VurzQjYX@UF#3S8A)gL0i?Qeoe1tJ-GZxS} z&PRwxrmgr8x_CL?jhnFzccKRm&}j~GO!*>zqeNaE%#-(EN3jbtW zCg)(QoR3afhCx|_D|kA+QbM>&2644K!mITsajhK1b@Bz?n7@LL$u}`1KV|<{__(}| zPsrbJ1Jlrr^st+9PQlGNHMk{b0dCEy!)-Zhab?a14CZv;j+`*=%!%W!oSkf6gL`vs z#BR%NS7Z8nIN6Y^4Y^j{!L)Z78jkazz>hYOqIXdE4{Z5AoXoJA@oJm>>hyVIZ;DC5 zWX3y7;sv=*KI#PEA2I)E9KCKV|CG>7k*IbtE`4tV-@n*Z=MK87N~j!Wqg8AK8Mjsk zI`-n6(N6hZRE~Bk_M&98vw1H9)#;vrdr>jcHe*Fl3+&1K5|JJdrTgkiw+|Sta z0JG&@W}kfwf%~c91Jv3+YUv?nng?(#hAoVy!*d*d%`)%u>&$=PB5w5^D~s{M&e>%p z3@gh{sjQk^Lj(1&Soqn+6SK{uw4=wkHg8g$EOQd)<#Xgn)ocycXRMta^z_#mIU3L0 z2XT9jhAcLA%?|oH>7}0DP9^YXcB6H9LH~W&6wJF18-o6z=KxxQc~vh3J<$Vb(vq%f zjC|fv{IcFGHlM+7M)2Qza9T~VIfCEs#w#3(v%5M&8@hr2-VYK529e^1SN0~{UCdf}Qo4jbj zI|IgXOcjFbBe>UE;Ck{J39VjEX2G|_!S_#-@clf+cvy2hz}6lV;6FJ4Uu6N@_rU;vi2#3@0Dpx5 zze0dtCBR=Lz+WT4uMyy{V;8@KxR3AllV%v-&I0gt834=2WS0ZfOtPLv=CX0FfV8Z^Mg}#FhC2cXRav>7OFefSU3a==edvKAN57W1;s^{ zSrt@P1q+J<#ZzaG;Ju+jn$mYh=UB%LzE006N*iS!2brEL*IE<4Kjymi+&u6-O8R}4 zjz3_j_(PV4KVseTW7Z`R%m@-hDZ=FGZ$GyGIF!pH6Wj4uYac;)k88y}N5%srpJ3Ftj-0IH?c-8Wk>pn$lL9`DNl{_`h!ks5wa;J{ zHbP{14}XI*vDBI9%z8&-}PDyC&?ikY_;1?e`AF-Y^7EaR4%d|&6B6^| zc{vTN74Fep+Yxm;(-I_)J$_Rp`HYQIn0)lcA%Iyjl{zRyrA$MO%)mK3?5*XAu~lYc zi|f3CU3`Bd=YC37;ci|F-N)}G z?1NL@aXrZ{Vaa7Cgnf-#oo9Ku|vU)^Xo|g}S2{^5sDO3cc71h#)dOk%y$>3`Ha|xHxg*?h; zqCQocoA7Igw2ZM)uSC3+vyMo!#%x>n)=rS!` zk^WZs6hC?K#eg;{HH@*1+Ht3gM7PPO9nvwWt9Us!k@YsR?jhyvS*1R2qSQR%${pFI zK5ruHC|UQB{?1XQW=dT!QR+BJ?_xD&Z*ZK{1ru2($T~^NyX78-zJ!`dt8wYX&^kb( zdu8`1Yy1AnTRHcLOuS#>wTg#l6Olbx0a-K=kSj@gUv@wiO_cf?vc8t|pUDbH(L_M> zd~ttvK#C@^9wO`ONzd=e_^DT;dCb3h_jZ$eQQ(wWy|nK0I@7I1>6ZG^`q579G5PRl zr|4A}u3`Aq(?;ZyPI{g!JtiM%RBolEfzqpY-H;}h6{D@@bPEMz3<@j;vlKf!_FMUx zQ8kB-Xwt)`(`!zpJDe%E;zGF%>u9~3X_GxPwo7S1H_Ba340oU49|P)j3+-P{aF2GI zckw5f+4*;&K5;v5oDN^nGWaJJ4ls>`MJt?VDytsmiSAIDYCs>Sg%W zC|cG0-OG!>L+mVKXOYu^QEkPb?mhNP5Gj*GMX#Vji3yj6*AgAFS`1VuvU<|v%(0Lp zPX+YO-Ol>G*7{s+1>dYlFWt;ev(<5r;kS(!sh~l7Xr>13FON1gjm9!v_A+-eWy^ks z>jPLI2YJ)`AePBP{F3cqtd?P(dLO|Cd6Z%MF&@bu$4&AC?&LB2Zh0E}ZXxEGRg2wrMg$JYcDEFP8#JDaL++J8XS^*7|(R`h48_e3Fd8 N6RF5Ea#%)C{Qr=S2O9tY literal 0 HcmV?d00001 diff --git a/readers/fonts/Font.class b/readers/fonts/Font.class new file mode 100644 index 0000000000000000000000000000000000000000..719ddddf166fb753c0d38d1d3d3c465fb01dbddb GIT binary patch literal 7231 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 K7aPPT`2QaTh68c{ literal 0 HcmV?d00001 diff --git a/readers/fonts/Glyph.class b/readers/fonts/Glyph.class new file mode 100644 index 0000000000000000000000000000000000000000..0d272bc7ce2aad318781021b1a2735de62e9c7ad GIT binary patch literal 1586 zcmb7E%Trrb9RALIHxMwanTF8kkm9V;bNy7 zS2*K8pgX5drZa4cD_0VY#po5oo;Qf8uA#eq}LpeeO;$9|}ZrrAjHhEMO*6H)4n)CgHe2Q_0b}--ghy-I z`D$1yXNId)|NeMsC3MgN)4?$$BwlmThIWB=E$810Go`!!VvreGU04XJK_Rbh0@1}F zyt#*fkn>8p!^P`LGe*`m4MR~oU38(F$Vi z&t1JDPlKsFBs$#+;-Em?ROrut{Jy`eO-Zom#%x}yQpKi9ixodytg_;dLE#@&G=gMdsc2;^sU)q zefPIEiYca01gzZH=Nn~{i zVtj$8s8e^?fBvxltdeXz1VK6U0Ft!UVVTp~-7nhRQ{{Ng66?<% z_I|^v7`j4V;v~-vyfv~)M_8X`_CgDK;NcuvaREp9l(k?K$8ilEcn>Eq&A$1FlM{l)S6o1+-TdEud7baD2sbN`U{SzHta zToMZy5Je6|g&uQ6^%a_S3C)%`CWORkcH9o)qVp;2U5vrmr%Oa7hJ?@pu1I!Jg1;Sf zh#kH(yXZ&!zrq|qi7Vu?=U>L<(|tvVr-*2Od@lBd0Fv-F6%7otg-7-WBh8cgnznIv b#^kq!^P9*%M$f@es38K!KrpGw!aM%}6^|+? literal 0 HcmV?d00001 diff --git a/scripts/jar.sh b/scripts/jar.sh new file mode 100755 index 0000000..0a392e6 --- /dev/null +++ b/scripts/jar.sh @@ -0,0 +1,17 @@ +#Builds a runnable jar file using ${MAIN_CLASS} as an entry point and then runs the newly generated jar. +#Java +source ${LANGUAGE}/scripts/version_info +rm -Rf bin/* +javac -d bin *.java +printf "\n\n\nGenerating Manifest...\n\n" +touch manifest +echo "Main-Class: ${MAIN_CLASS}" > manifest +printf "\n\n\nCreating Jar...\n\n" +ORIGINAL_LOC=$(pwd) +cd ${OUT_DIR} +jar cfm ${PROJECT_NAME}.jar ${ORIGINAL_LOC}/manifest . +jar uf ${PROJECT_NAME}.jar -C ../lib/bin/ . +printf "\n\n\nRunning Program...\n\n" +mv sigPlace.jar .. +cd .. +java ${CUSTOM_PARAMS} -Djava.library.path="${LIBRARY_PATH}" -jar ${PROJECT_NAME}.jar "$@" diff --git a/sig b/sig index c93b1cf..7e91c1a 100755 --- a/sig +++ b/sig @@ -1,12 +1,14 @@ -if [ -z "$1" ] - then - echo "" - echo " Usage: ./sig {args}" - echo "" - echo " Command List:" - ls -1 ./scripts | sed -e 's/\.sh$//' | sed -e 's/^/ /' - echo "" - exit -fi +export AUTO_UPDATE=true + +source utils/define.sh + +define PROJECT_NAME "sigPlace" +define PROJECT_DIR "." +define MAIN_CLASS "${PROJECT_NAME}" +define OUT_DIR "bin" +define LIBRARY_PATH "lib" +define CLASS_PATH "${PROJECT_DIR}" +define CUSTOM_PARAMS "" +define LANGUAGE "Java" ./scripts/$1.sh "${*:2}" \ No newline at end of file diff --git a/sigPlace.jar b/sigPlace.jar new file mode 100644 index 0000000000000000000000000000000000000000..8ca9abb16d4eacba2863bc3c81b3d7d559bb1b93 GIT binary patch literal 43023 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 literal 0 HcmV?d00001 diff --git a/sigPlace.java b/sigPlace.java index afb78f0..00c2ca9 100644 --- a/sigPlace.java +++ b/sigPlace.java @@ -86,358 +86,362 @@ public class sigPlace { final static int TRANSPARENT = new Color(0,0,0,0).getRGB(); public static void main(String[] args) { - populateDatabase(); - /*String fontName = "sdvx_EXScore"; - String value = "00457"; - Path f = Paths.get("tests","sdvx8.png"); - BufferedImage img; - try { - img = ImageIO.read(f.toFile()); - Box scoreBox = new Box(630,1142,110,16); - - int[] arr = img.getRGB(scoreBox.x, scoreBox.y, scoreBox.w, scoreBox.h, null, 0, scoreBox.w); + if (args.length>0&&args[0].equals("arcade")) { + System.out.println("Arcade"); + } else { + populateDatabase(); + /*String fontName = "sdvx_EXScore"; + String value = "00457"; + Path f = Paths.get("tests","sdvx8.png"); + BufferedImage img; + try { + img = ImageIO.read(f.toFile()); + Box scoreBox = new Box(630,1142,110,16); + + int[] arr = img.getRGB(scoreBox.x, scoreBox.y, scoreBox.w, scoreBox.h, null, 0, scoreBox.w); - BufferedImage newImg = new BufferedImage(scoreBox.w,scoreBox.h,BufferedImage.TYPE_INT_ARGB); - int width=scoreBox.w; - - final ColorRange TARGETCOLOR = new ColorRange(230,255,180,255,20,255); - final ColorRange SEEKINGCOLOR = new ColorRange(180,255,140,255,15,255); - final Color FINALCOLOR = Color.MAGENTA; - for (int i=0;i data; + try { + data = Files.readAllLines(secretFile); + SECRET = data.get(0); + } catch (IOException e1) { + System.out.println("Client secret must be included in .clientsecret!"); + e1.printStackTrace(); } - newImg.setRGB(0,0,scoreBox.w,scoreBox.h,arr,0,scoreBox.w); - ImageIO.write(newImg,"png",new File("test.png")); - Font.TrainFont(fontName,value,newImg); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - }*/ - //new PopnReader().interpretBoxes(Paths.get("tests","popn8.png"),true); - //ArcadeReader.runTests(); - /*BufferedImage img; - ArcadeReader.submitToDatabase(Paths.get("tests","sdvx1.png")); - ArcadeReader.submitToDatabase(Paths.get("tests","sdvx2.png")); - ArcadeReader.submitToDatabase(Paths.get("tests","sdvx3.png")); - ArcadeReader.submitToDatabase(Paths.get("tests","sdvx4.png"));*/ - //System.out.println(RECENT_PLAYS); - //System.out.println(RECENT_RECORDS); - /* Path secretFile = Paths.get(".clientsecret"); - List data; - try { - data = Files.readAllLines(secretFile); - SECRET = data.get(0); - } catch (IOException e1) { - System.out.println("Client secret must be included in .clientsecret!"); - e1.printStackTrace(); - } - if (args.length>0&&args.length%2==0) { - int i=0; - while (i0&&args.length%2==0) { + int i=0; + while (i items = Files.walk(Paths.get("out")).filter((p)->!p.toAbsolutePath().toString().contains("images/")).iterator(); - ParseArticleFiles(items); + System.out.println("Copying files over to output directory..."); + try { + copyDirectory("sitefiles","out"); + Iterator items = Files.walk(Paths.get("out")).filter((p)->!p.toAbsolutePath().toString().contains("images/")).iterator(); + ParseArticleFiles(items); - items = Files.walk(Paths.get("out")).iterator(); - ConvertArticleReferences(items); - items = Files.walk(Paths.get("out","articles")).iterator(); - GenerateArticleFiles(items); - }catch (IOException e) { - e.printStackTrace(); - System.err.println("Copying files over failed!"); - return; - } + items = Files.walk(Paths.get("out")).iterator(); + ConvertArticleReferences(items); + items = Files.walk(Paths.get("out","articles")).iterator(); + GenerateArticleFiles(items); + }catch (IOException e) { + e.printStackTrace(); + System.err.println("Copying files over failed!"); + return; + } - System.out.println("Building directory listings..."); - try { - buildDirectoryListings(); - } catch (IOException e) { - e.printStackTrace(); - System.err.println("Failed to build directory listings!"); - return; - } + System.out.println("Building directory listings..."); + try { + buildDirectoryListings(); + } catch (IOException e) { + e.printStackTrace(); + System.err.println("Failed to build directory listings!"); + return; + } - System.out.println("Site has been built into the "+OUTDIR+" directory."); + System.out.println("Site has been built into the "+OUTDIR+" directory."); - ExportCodeFile(); + ExportCodeFile(); - System.out.println("\nStarting web server..."); - new sigServer(); - } - + System.out.println("\nStarting web server..."); + new sigServer(); + } + - private static String JSON(HashMap testMap) { - StringBuilder sb = new StringBuilder(); - String temp = testMap.toString(); - if (temp.charAt(0)=='{') { - sb.append("{"); - int marker=1; - boolean ending=false; - while (marker testMap) { + StringBuilder sb = new StringBuilder(); + String temp = testMap.toString(); + if (temp.charAt(0)=='{') { + sb.append("{"); + int marker=1; + boolean ending=false; + while (marker items) { - while (items.hasNext()) { - Path f = items.next(); - System.out.println(" Found "+f.getFileName()); - if (Files.isRegularFile(f)) { - try { + private static void ParseArticleFiles(Iterator items) { + while (items.hasNext()) { + Path f = items.next(); + System.out.println(" Found "+f.getFileName()); + if (Files.isRegularFile(f)) { + try { - System.out.println(" Preparing "+f.getFileName()); + System.out.println(" Preparing "+f.getFileName()); - List content = Files.readAllLines(f); - if (isHTMLFile(f)) { - content.addAll(0,Files.readAllLines(ops.get("%NAVBAR"))); - content.addAll(0,Files.readAllLines(ops.get("%DEFAULT"))); - content.addAll(Files.readAllLines(ops.get("%FOOTER"))); - } + List content = Files.readAllLines(f); + if (isHTMLFile(f)) { + content.addAll(0,Files.readAllLines(ops.get("%NAVBAR"))); + content.addAll(0,Files.readAllLines(ops.get("%DEFAULT"))); + content.addAll(Files.readAllLines(ops.get("%FOOTER"))); + } - System.out.println(" Parsing "+f.getFileName()); - for (int i=0;i0&&(isHTMLFile(f)||isArticleFile(f))) { - if (!inCodeBlock) { - if (s.trim().equals("
")) {
-                                    //System.out.println("Inside 
");
-                                    inCodeBlock=true;
-                                    storedCodeBlock="";
-                                    s=s.substring(0,s.indexOf("
"));
-                                }
-                            }
-                            if (inCodeBlock&&s.trim().equals("
")) { - inCodeBlock=false; - boolean keyword=false; - boolean inString=false; - boolean inComment=false; - boolean inMultiLineComment=false; - char stringChar=' '; - boolean canBeNumericalConstant=false; - int lengthOfConstant=0; - storedCodeBlock+=s.substring(0,s.indexOf("
")); - storedCodeBlock=storedCodeBlock.replaceAll(Pattern.quote("<"),"\2"); - storedCodeBlock+="
"; - int startPos=0; - String endText=s.substring(s.indexOf("")+"".length(),s.length()); - s=""; - for (int j=0;j"; - startPos=j+1; + System.out.println(" Parsing "+f.getFileName()); + for (int i=0;i0&&(isHTMLFile(f)||isArticleFile(f))) { + if (!inCodeBlock) { + if (s.trim().equals("
")) {
+                                        //System.out.println("Inside 
");
+                                        inCodeBlock=true;
+                                        storedCodeBlock="";
+                                        s=s.substring(0,s.indexOf("
"));
                                     }
-                                    if (!inComment&&!inMultiLineComment&&(j>0&&storedCodeBlock.charAt(j-1)!='\\'&&(!inString&&(storedCodeBlock.charAt(j)=='"'||storedCodeBlock.charAt(j)=='\'')||inString&&(storedCodeBlock.charAt(j)==stringChar)))) {
-                                        inString=!inString;
-                                        if (inString) {
-                                            stringChar=storedCodeBlock.charAt(j);
-                                            s+=SPAN("string")+stringChar;
-                                        } else {
-                                            s+=stringChar;
+                                }
+                                if (inCodeBlock&&s.trim().equals("
")) { + inCodeBlock=false; + boolean keyword=false; + boolean inString=false; + boolean inComment=false; + boolean inMultiLineComment=false; + char stringChar=' '; + boolean canBeNumericalConstant=false; + int lengthOfConstant=0; + storedCodeBlock+=s.substring(0,s.indexOf("
")); + storedCodeBlock=storedCodeBlock.replaceAll(Pattern.quote("<"),"\2"); + storedCodeBlock+="
"; + int startPos=0; + String endText=s.substring(s.indexOf("")+"".length(),s.length()); + s=""; + for (int j=0;j"; startPos=j+1; } - } else - if (!inString) { - if (canBeNumericalConstant&&validNumericalConstantCharacters(lengthOfConstant, j)) { - lengthOfConstant++; - //System.out.println("Length of Constant now "+lengthOfConstant); - } - if (j>0&&storedCodeBlock.charAt(j)=='/'&&storedCodeBlock.charAt(j+1)=='*'||inMultiLineComment) { - if (!inMultiLineComment) { - inMultiLineComment=true; + if (!inComment&&!inMultiLineComment&&(j>0&&storedCodeBlock.charAt(j-1)!='\\'&&(!inString&&(storedCodeBlock.charAt(j)=='"'||storedCodeBlock.charAt(j)=='\'')||inString&&(storedCodeBlock.charAt(j)==stringChar)))) { + inString=!inString; + if (inString) { + stringChar=storedCodeBlock.charAt(j); + s+=SPAN("string")+stringChar; } else { - if (storedCodeBlock.charAt(j-1)=='*'&&storedCodeBlock.charAt(j)=='/') { - inMultiLineComment=false; - s+=SPAN("comment")+storedCodeBlock.substring(startPos,j)+storedCodeBlock.charAt(j)+""; - startPos=j+1; - } + s+=stringChar; + s+=""; + startPos=j+1; } - //Stops further execution since we're in a comment. } else - if (j>0&&storedCodeBlock.charAt(j)=='/'&&storedCodeBlock.charAt(j+1)=='/'||inComment) { - if (!inComment) { - inComment=true; + if (!inString) { + if (canBeNumericalConstant&&validNumericalConstantCharacters(lengthOfConstant, j)) { + lengthOfConstant++; + //System.out.println("Length of Constant now "+lengthOfConstant); } - //Stops further execution since we're in a comment. - } else - if (canBeNumericalConstant&&lengthOfConstant>0&&!(validNumericalConstantCharacters(lengthOfConstant, j))) { - s+=SPAN("number")+storedCodeBlock.substring(startPos,j)+""+storedCodeBlock.charAt(j); - //System.out.println("Setting "+storedCodeBlock.substring(startPos,j)+storedCodeBlock.charAt(j)); - lengthOfConstant=0; - canBeNumericalConstant=false; - startPos=j+1; - } else - if (!canBeNumericalConstant&&storedCodeBlock.charAt(j)=='.') { - //Previous section was a member. - s+=SPAN("class")+storedCodeBlock.substring(startPos,j)+""+storedCodeBlock.charAt(j); - startPos=j+1; - } else - if (j>3&&storedCodeBlock.substring(j-3,j+1).equals("true")&&!isAlphanumeric(j-4)&&!isAlphanumeric(j+1)) { - s+=SPAN("number")+storedCodeBlock.substring(startPos,j)+storedCodeBlock.charAt(j)+""; - startPos=j+1; - } else - if (j>4&&storedCodeBlock.substring(j-4,j+1).equals("false")&&!isAlphanumeric(j-5)&&!isAlphanumeric(j+1)) { - s+=SPAN("number")+storedCodeBlock.substring(startPos,j)+storedCodeBlock.charAt(j)+""; - startPos=j+1; - } else - if (storedCodeBlock.charAt(j)=='(') { - s+=SPAN("function")+storedCodeBlock.substring(startPos,j)+""+storedCodeBlock.charAt(j); - startPos=j+1; - } else - if (j>0&&isAlphanumeric(j-1) && storedCodeBlock.charAt(j)==' '&&storedCodeBlock.charAt(j-1)!=' ') { - //Previous section was a keyword. - keyword=true; - s+=SPAN("keyword")+storedCodeBlock.substring(startPos,j)+""+storedCodeBlock.charAt(j); - startPos=j+1; - } else - if (j>0&&isAlphanumeric(j-1) && (storedCodeBlock.charAt(j)==';'||storedCodeBlock.charAt(j)==':')) { - //Previous section was a keyword. - //keyword=true; - s+=SPAN("keyword")+storedCodeBlock.substring(startPos,j)+""+storedCodeBlock.charAt(j); - startPos=j+1; - } else - if (keyword&&!(storedCodeBlock.charAt(j)=='_'||storedCodeBlock.charAt(j)>='0'&&storedCodeBlock.charAt(j)<='9'||storedCodeBlock.charAt(j)>='A'&&storedCodeBlock.charAt(j)<='Z'||storedCodeBlock.charAt(j)>='a'&&storedCodeBlock.charAt(j)<='z'||storedCodeBlock.charAt(j)==' ')) { - keyword=false; - s+=SPAN("variable")+storedCodeBlock.substring(startPos,j)+""+storedCodeBlock.charAt(j); - startPos=j+1; - } else - if (!isAlphanumeric(j)){ - if (startPos0&&storedCodeBlock.charAt(j)=='/'&&storedCodeBlock.charAt(j+1)=='*'||inMultiLineComment) { + if (!inMultiLineComment) { + inMultiLineComment=true; + } else { + if (storedCodeBlock.charAt(j-1)=='*'&&storedCodeBlock.charAt(j)=='/') { + inMultiLineComment=false; + s+=SPAN("comment")+storedCodeBlock.substring(startPos,j)+storedCodeBlock.charAt(j)+""; + startPos=j+1; + } + } + //Stops further execution since we're in a comment. + } else + if (j>0&&storedCodeBlock.charAt(j)=='/'&&storedCodeBlock.charAt(j+1)=='/'||inComment) { + if (!inComment) { + inComment=true; + } + //Stops further execution since we're in a comment. + } else + if (canBeNumericalConstant&&lengthOfConstant>0&&!(validNumericalConstantCharacters(lengthOfConstant, j))) { + s+=SPAN("number")+storedCodeBlock.substring(startPos,j)+""+storedCodeBlock.charAt(j); + //System.out.println("Setting "+storedCodeBlock.substring(startPos,j)+storedCodeBlock.charAt(j)); + lengthOfConstant=0; + canBeNumericalConstant=false; + startPos=j+1; + } else + if (!canBeNumericalConstant&&storedCodeBlock.charAt(j)=='.') { + //Previous section was a member. + s+=SPAN("class")+storedCodeBlock.substring(startPos,j)+""+storedCodeBlock.charAt(j); + startPos=j+1; + } else + if (j>3&&storedCodeBlock.substring(j-3,j+1).equals("true")&&!isAlphanumeric(j-4)&&!isAlphanumeric(j+1)) { + s+=SPAN("number")+storedCodeBlock.substring(startPos,j)+storedCodeBlock.charAt(j)+""; + startPos=j+1; + } else + if (j>4&&storedCodeBlock.substring(j-4,j+1).equals("false")&&!isAlphanumeric(j-5)&&!isAlphanumeric(j+1)) { + s+=SPAN("number")+storedCodeBlock.substring(startPos,j)+storedCodeBlock.charAt(j)+""; + startPos=j+1; + } else + if (storedCodeBlock.charAt(j)=='(') { + s+=SPAN("function")+storedCodeBlock.substring(startPos,j)+""+storedCodeBlock.charAt(j); + startPos=j+1; + } else + if (j>0&&isAlphanumeric(j-1) && storedCodeBlock.charAt(j)==' '&&storedCodeBlock.charAt(j-1)!=' ') { + //Previous section was a keyword. + keyword=true; + s+=SPAN("keyword")+storedCodeBlock.substring(startPos,j)+""+storedCodeBlock.charAt(j); + startPos=j+1; + } else + if (j>0&&isAlphanumeric(j-1) && (storedCodeBlock.charAt(j)==';'||storedCodeBlock.charAt(j)==':')) { + //Previous section was a keyword. + //keyword=true; + s+=SPAN("keyword")+storedCodeBlock.substring(startPos,j)+""+storedCodeBlock.charAt(j); + startPos=j+1; + } else + if (keyword&&!(storedCodeBlock.charAt(j)=='_'||storedCodeBlock.charAt(j)>='0'&&storedCodeBlock.charAt(j)<='9'||storedCodeBlock.charAt(j)>='A'&&storedCodeBlock.charAt(j)<='Z'||storedCodeBlock.charAt(j)>='a'&&storedCodeBlock.charAt(j)<='z'||storedCodeBlock.charAt(j)==' ')) { + keyword=false; + s+=SPAN("variable")+storedCodeBlock.substring(startPos,j)+""+storedCodeBlock.charAt(j); + startPos=j+1; + } else + if (!isAlphanumeric(j)){ + if (startPos='0'&&storedCodeBlock.charAt(j)<='9')) { - canBeNumericalConstant=false; - } - if (!canBeNumericalConstant&&!isAlphanumeric(j)) { - canBeNumericalConstant=true; - lengthOfConstant=0; - //System.out.println("Found "+storedCodeBlock.charAt(j)+", can be numeric..."); + if (canBeNumericalConstant&&lengthOfConstant==0&&!(storedCodeBlock.charAt(j)>='0'&&storedCodeBlock.charAt(j)<='9')) { + canBeNumericalConstant=false; + } + if (!canBeNumericalConstant&&!isAlphanumeric(j)) { + canBeNumericalConstant=true; + lengthOfConstant=0; + //System.out.println("Found "+storedCodeBlock.charAt(j)+", can be numeric..."); + } } - } - for (int j=0;j0&&isArticleFile(f)&&!inCodeBlock) { - //Check for markdown pieces. - if (s.charAt(0)=='-') { - //Start of a title piece. - s=s.replace("-",map.get("$TITLE_CONTENT_START")); - s=s+map.get("$TITLE_CONTENT_END").replace("%ID%","id=\"content_"+f+"\""); - //Use ⤈ if there's more text to be shown than can fit. - } else - if (s.startsWith("===")) { - s=map.get("$CONTENT_END")+map.get("$DATE_CONTENT_START")+s.replace("===","")+map.get("$CONTENT_END")+"%CONDITIONAL_EXPAND%"+map.get("$CONTENT_END"); - } else - if (s.charAt(0)==':') { - //Image with caption. - //Format: - //:,,, - String[] splitter = s.split(Pattern.quote(",")); - StringBuilder captionText = new StringBuilder(splitter[3]); - for (int j=4;j0&&isArticleFile(f)&&!inCodeBlock) { + //Check for markdown pieces. + if (s.charAt(0)=='-') { + //Start of a title piece. + s=s.replace("-",map.get("$TITLE_CONTENT_START")); + s=s+map.get("$TITLE_CONTENT_END").replace("%ID%","id=\"content_"+f+"\""); + //Use ⤈ if there's more text to be shown than can fit. + } else + if (s.startsWith("===")) { + s=map.get("$CONTENT_END")+map.get("$DATE_CONTENT_START")+s.replace("===","")+map.get("$CONTENT_END")+"%CONDITIONAL_EXPAND%"+map.get("$CONTENT_END"); + } else + if (s.charAt(0)==':') { + //Image with caption. + //Format: + //:,,, + String[] splitter = s.split(Pattern.quote(",")); + StringBuilder captionText = new StringBuilder(splitter[3]); + for (int j=4;j
"+captionText.toString()+"
"; + } else { + //It's regular content, so add paragraphs. + s="

\n"+s+"\n

"; } - s="
"+captionText.toString()+"
"; } else { - //It's regular content, so add paragraphs. - s="

\n"+s+"\n

"; + if (s.length()==0&&isArticleFile(f)&&!inCodeBlock) { + s="
"; //Setup a line break here. + } } - } else { - if (s.length()==0&&isArticleFile(f)&&!inCodeBlock) { - s="
"; //Setup a line break here. + if (!endPreLine) { + for (String key : map.keySet()) { + s=s.replaceAll(Pattern.quote(key),map.get(key)); + } } - } - if (!endPreLine) { - for (String key : map.keySet()) { - s=s.replaceAll(Pattern.quote(key),map.get(key)); + if (s.trim().length()==0) { + content.remove(i--); + } else { + content.set(i,s); } } - if (s.trim().length()==0) { - content.remove(i--); - } else { - content.set(i,s); - } - } - System.out.println(" Writing to "+f.toAbsolutePath()); + System.out.println(" Writing to "+f.toAbsolutePath()); - Files.write(f, content, Charset.defaultCharset(),StandardOpenOption.CREATE,StandardOpenOption.TRUNCATE_EXISTING,StandardOpenOption.WRITE); - - System.out.println(" "+f.getFileName() + " conversion complete!"); + Files.write(f, content, Charset.defaultCharset(),StandardOpenOption.CREATE,StandardOpenOption.TRUNCATE_EXISTING,StandardOpenOption.WRITE); + + System.out.println(" "+f.getFileName() + " conversion complete!"); - } catch (IOException e) { - e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } } - } - } */ + } */ + } } private static void populateDatabase() { Iterator files; diff --git a/utils/define.sh b/utils/define.sh new file mode 100644 index 0000000..e87f88d --- /dev/null +++ b/utils/define.sh @@ -0,0 +1,9 @@ +export VARS=("") + +export LANGUAGE="" + +function define() { + VARS+=("$1") + value="${*:2}" + eval export "$1"='$value' +} \ No newline at end of file