From 1d11df081f3d0213e7ffc9fd7b2846a8bb9bb5c9 Mon Sep 17 00:00:00 2001 From: krolxon Date: Fri, 16 Feb 2024 23:04:13 +0530 Subject: [PATCH] GUI: progress --- GFrame.java | 145 +++++++++++++++++++++++++++++++++++++++----- History.java | 16 +++++ bin/GFrame$1.class | Bin 1021 -> 1298 bytes bin/GFrame$10.class | Bin 0 -> 1127 bytes bin/GFrame$11.class | Bin 0 -> 1126 bytes bin/GFrame$12.class | Bin 0 -> 1126 bytes bin/GFrame$13.class | Bin 0 -> 1126 bytes bin/GFrame$14.class | Bin 0 -> 1126 bytes bin/GFrame$15.class | Bin 0 -> 1126 bytes bin/GFrame$16.class | Bin 0 -> 1126 bytes bin/GFrame$17.class | Bin 0 -> 1126 bytes bin/GFrame$18.class | Bin 0 -> 1126 bytes bin/GFrame$19.class | Bin 0 -> 1126 bytes bin/GFrame$2.class | Bin 653 -> 1602 bytes bin/GFrame$20.class | Bin 0 -> 1126 bytes bin/GFrame$3.class | Bin 0 -> 634 bytes bin/GFrame$4.class | Bin 0 -> 789 bytes bin/GFrame$5.class | Bin 0 -> 1125 bytes bin/GFrame$6.class | Bin 0 -> 1125 bytes bin/GFrame$7.class | Bin 0 -> 805 bytes bin/GFrame$8.class | Bin 0 -> 1125 bytes bin/GFrame$9.class | Bin 0 -> 1125 bytes bin/GFrame.class | Bin 1444 -> 3327 bytes bin/History.class | Bin 0 -> 600 bytes 24 files changed, 146 insertions(+), 15 deletions(-) create mode 100644 History.java create mode 100644 bin/GFrame$10.class create mode 100644 bin/GFrame$11.class create mode 100644 bin/GFrame$12.class create mode 100644 bin/GFrame$13.class create mode 100644 bin/GFrame$14.class create mode 100644 bin/GFrame$15.class create mode 100644 bin/GFrame$16.class create mode 100644 bin/GFrame$17.class create mode 100644 bin/GFrame$18.class create mode 100644 bin/GFrame$19.class create mode 100644 bin/GFrame$20.class create mode 100644 bin/GFrame$3.class create mode 100644 bin/GFrame$4.class create mode 100644 bin/GFrame$5.class create mode 100644 bin/GFrame$6.class create mode 100644 bin/GFrame$7.class create mode 100644 bin/GFrame$8.class create mode 100644 bin/GFrame$9.class create mode 100644 bin/History.class diff --git a/GFrame.java b/GFrame.java index b8ef7ed..885875e 100644 --- a/GFrame.java +++ b/GFrame.java @@ -1,54 +1,169 @@ +import java.util.Vector; import javax.swing.*; import java.awt.Color; import java.awt.Dimension; +import java.awt.Font; +import java.awt.Insets; import java.awt.event.*; public class GFrame extends JFrame { Parser p; + JTextField tf; + + private JButton newButton(String text, int d1, int d2, int d3, int d4) { + JButton b = new JButton(); + // b.setBackground(Color.decode("#F78361")); + b.setBackground(Color.decode("#2B2B2B")); + b.setForeground(Color.decode("#e5e5e5")); + b.setFont((new Font("Times New Roman", Font.PLAIN, 20))); + b.setBounds(d1, d2, d3, d4); + b.setText(text); + return b; + } + + private void actionAdderForTextField(JButton b, String val) { + b.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + tf.setText(tf.getText() + val); + } + }); + + } GFrame(String title) { + History history = new History(); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setTitle(title); - this.getContentPane().setBackground(Color.decode("#4E586e")); - JButton b = new JButton(); - b.setBounds(130, 100, 100, 40); - b.setBackground(Color.decode("#F78361")); - b.setText("Evaluate"); + this.getContentPane().setBackground(Color.decode("#111111")); + this.setResizable(false); - JTextField tf = new JTextField(); - tf.setBounds(130, 50, 220, 40); + // Text Field + tf = new JTextField(); + tf.setBackground(Color.decode("#2B2B2B")); + tf.setForeground(Color.decode("#e5e5e5")); + tf.setMargin(new Insets(0, 10, 0, 10)); + tf.setBounds(40, 50, 310, 40); + tf.setFont((new Font("Times New Roman", Font.PLAIN, 20))); - JButton bClear = new JButton(); - bClear.setBounds(250, 100, 100, 40); - bClear.setBackground(Color.decode("#F78361")); - bClear.setText("Clear"); + // History Text Field + JTextField tHist = new JTextField(); + tHist.setBounds(100, 10, 310, 40); + tHist.setEditable(false); - this.add(b); + // Buttons + JButton bEval = newButton("=", 250, 100, 100, 40); + JButton bClear = newButton("CL", 180, 100, 60, 40); + JButton bAdd = newButton("+", 250, 300, 100, 40); + JButton bSub = newButton("-", 250, 250, 100, 40); + JButton bMul = newButton("X", 250, 200, 100, 40); + JButton bDiv = newButton("%", 250, 150, 100, 40); + JButton bCut = newButton(" s = history.getHistory(); + for (int i = 0; i < s.size(); i++) { + System.out.println(s.get(i)); + tHist.setText(new String(s.get(i).concat(tHist.getText())).concat("\n")); + } + } else { tf.setText("No input"); } } }); + // Common actions that just appends the symbols to the text field + actionAdderForTextField(bAdd, "+"); + actionAdderForTextField(bSub, "-"); + actionAdderForTextField(bMul, "*"); + actionAdderForTextField(bDiv, "/"); + actionAdderForTextField(bRightPar, ")"); + actionAdderForTextField(bLeftPar, "("); + actionAdderForTextField(bDoubleZero, "00"); + actionAdderForTextField(bZero, "0"); + actionAdderForTextField(bOne, "1"); + actionAdderForTextField(bTwo, "2"); + actionAdderForTextField(bThree, "3"); + actionAdderForTextField(bFour, "4"); + actionAdderForTextField(bFive, "5"); + actionAdderForTextField(bSix, "6"); + actionAdderForTextField(bSeven, "7"); + actionAdderForTextField(bEight, "8"); + actionAdderForTextField(bNine, "9"); + bClear.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { tf.setText(""); } }); + + bCut.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + String text = tf.getText(); + tf.setText(text.substring(0, text.length() - 1)); + } + }); + + // bOne.addActionListener(new ActionListener() { + // public void actionPerformed(ActionEvent e) { + // tf.setText(tf.getText() + "1"); + // } + // }); } } diff --git a/History.java b/History.java new file mode 100644 index 0000000..32b8598 --- /dev/null +++ b/History.java @@ -0,0 +1,16 @@ +import java.util.Vector; + +public class History { + private Vector hist; + + History() { + hist = new Vector(); + } + + public void addHistory(String h) { + hist.add(h); + } + public Vector getHistory() { + return hist; + } +} diff --git a/bin/GFrame$1.class b/bin/GFrame$1.class index dcdfd79dbe1df44e33c95027ca1d751fb8793065..57357f975414f1e7e10610835d8b22bfb4d87b99 100644 GIT binary patch literal 1298 zcmaJ>T~iY=6g?@}ZObZagx(fKT zy(dbFz!z=TR!a{!wxPu9X!7ASuIq82j{_e|VJf|U3dO8Ps%rM3(_WEg8~7C%%OQ5UYtESHom-Gc2a;R=uDlNaUa zz`w=Nos(t3&|9!wv0kfg3vZKeJLIuG3biZC8(bGy36EA4E!q{AtD2`1c!Ov|cstUo ziZa8UrpSM_tZH4^6mi9hvgVaU-q!d%LD^=seu7(dOOEuZW&y2<$9O_J9Iz~x%fib` z@3NW<>45FBf-5zpq?_%$$jG|z)tdCFsMd;<%2ysg2#EX$UeM8DtT&98F)Sc!U{Tli z6+`0cAlhzS?u+Ju4N9ITZPGht_|{sTW?%rm#@(_b{6s;@{n|kXaV>KHO58j?5FNt5 zw8RHjBink0nh-heI7M5DEQ9&prBje|xbF+!z#E1KZENZz)xZkF`2R!c<^}7*1YL9! zgpH78>H7|lr3ZrUN{Cu7Ceei?jVAT;p*`uTQ?T^(DU9?F^n525LyGz^Szs7x>Z6qV z)oNf((QgPAO-|zx^%`q|kTm*u`ULC*H=E`RgETVEF$SFB?iF;b5j{fwQPMWkK+Is4 kY&Sh9b9mbD#PN)5ggEA@J;xIL#VJ!W>F+hYf;kNT0SmWHeEYuW6o#KWr3_34i`7>AsHIRWv?6}nf*)=9&?ab%?Z)NROt6XrVTQ()^)HO9 z`U|>oV^Yy*;tz1=%3q`L4Aq6++@G&jYeQCk4JZOdp_8o z4RkSKG08EL<2F-F2j9zeixekKPT8F1j3W75@90unyRFiu-`jRuifG$$TmCb}SiZ1f za#om!y5~7Piy6{36U+@>tJH3sEb}Hgn{zBk(cMN*zjPF;tB5rZC6!Q9uvuhD5pl%W zsBO)n$OV&<%|$N#rM-rR9e){6R?rv#$ZBRFg>!Hr^{CgeGSJ)e_ z>-4H^?Rkzz8Uq`}4UA-xI2On`PE`KfkUhZ)W0VJtNP4#-I4ZS}#!?LoV-QhxFt% zxxWwFKO!_RE#_c>1bH$P#NHC?^5v_-%6ls@iEDB9U diff --git a/bin/GFrame$10.class b/bin/GFrame$10.class new file mode 100644 index 0000000000000000000000000000000000000000..a4d46a37934f618a3ac4e067d18bf1dcaab4e538 GIT binary patch literal 1127 zcmaJ=T~8B16g>mjZI@M6-YzNMLbEN2fY^h9GpXfA@!mZ@w!Ma zGZ8|B4#shr@~S_1hr0!@Te!+F(JGSfYfm&qsJ+Fi z_GMW1l@_6h7^X7ixQB&*buGKj&{vc-!7xzvL$T7RZ-{7(ZvVa$aNz!0lbxNRYaRIs*4)K^)}VN87&!h1(VCJ$VOBZCEwup$K>Ws6$G~wRs*T1 zt8rQj8PY6vF``mak}E>#WvNIF_qmi>>4@*e-YSXPq%6zl2NLjXHN(bvdpJH|PN-!Ego4 zbF%M`j|ueR8l5K16Q$kG&3yyQeTVghZlpYY6SM;#2?a<|*n1Zsn45I%fkQth zF-2bklP8M-9?E?s6k10(e~e4O5k^k{?Uv6cvVSHr=@!m3W@zujEV9V8EVH;pyP-W# TYYzA5HrU3eBktoN9%KABAm1N_ literal 0 HcmV?d00001 diff --git a/bin/GFrame$11.class b/bin/GFrame$11.class new file mode 100644 index 0000000000000000000000000000000000000000..933c5b8b70315f68f9bf5d58de2bb04d43062f68 GIT binary patch literal 1126 zcmaJ=T~8B16g^Y0+b*lD$ft@QP@t{Ig5O$Wf(;c-MUoPH@M&lVSlI56ooRtLe}=!n z=%a~Z!h=7+A7#ALt)WQuVRmNj-h1x3_uTpU>-YzNMLbC(fgTIJ4$dLTkbY5$cwJ-` z78sIE9%S?;!)SSjH~E35_Wf|nd$lGGbjcS%tzaXCv<2Hi9~=hPxOo95r#BlrqN)kw zsUQ0K8ADGtw{GJC`YpH)E@FUTxH~F?wI#Gk!Z4W4wQ|Rx6&(?Q!T>QJbTEWrhLJko z6-60Vxqj>GZ8|B!O&m!L$T7RZ-{7(Zv>4@*e-YSLL3<);hpM+;)9t#%k7-8-*WKL$m z51VpVc(Ho1RwXJ!Mu!X^Ivd?~jKPo(fz$+!I~g-*x!M z(^=>ohc-l!2SLTxqQKz13`x*pz?Blp!UKk>Gc|RiYT*&Xwg0{O?xk9kVC#@nZYgE4edEv Tv$#jMfi^xJaUT!y7-PQy9YyT7PdQNXIkLRpW%-% z8WY8Y2Y-M+%6O++Ly_vk?9AM~_uO;ux%2ba$qxWac#=d6Jr;T$TtJ*5`Jxo^x=1f9 zGQ^wQPwOp)k@7BY^25A3@Ph69t95axOP=s+1se$@E!YnF;4rwxE$?%3db7DJs+usK zdV!~(G4y1z8#XQ>Wx;iD8T|}H-BB5=ZJ|vPhJj4Bl{*5h=#U5$`ic2~gFy^24A=Rd zD9WJ9^;=Kx&`D_?XvHv{IUm^t%y1fUFp8^`SN+L5*e!U&!gYqRR+0Qb=S5QlI=@ua zo(#&K(jpKc!(^r$^|0`-u4OkEdW*6q7*b^~5UY*)rU=*hrcW04wa`1Vw#JPNT7*0(XwGzFuClCY=l)&@(g}oL~hPhL2%1K)t8F8 z8l|<6ASqeL4$X z(3E>3AE_5n}W6&Y*nZWg@&^^m77} z^ffT^WHG=4xvzvm>lhbLa0NKV@F}3(^7%ye&qOBO!kNM}?Y)>m7P*#X2DfQ9wC8Be S;vU`l+xT?EeLTctjQ$2I)*pKS literal 0 HcmV?d00001 diff --git a/bin/GFrame$13.class b/bin/GFrame$13.class new file mode 100644 index 0000000000000000000000000000000000000000..b658e1fd639461824ead7b1c8be68d7a0307e970 GIT binary patch literal 1126 zcmaJ=+foxj5IvJ%HVLb&$W;Xu0wfVxz`L=m!W0p$h*X8b2cL#yfQ8KtwKECu=4bdD zT7XqN_yK;DWluI1L81?{Gt=9B`gEV3pTEw209e9{6k>>5=&^AH35L|0QpoEfv+$51 z(d2$cZ!wINcX^W^y6V6Sw%vE@;!u}7;nxajB$2X^w$Tfl!7*;G&&lb-=B}t}!g%Qg zo_@s;&*nDLxQ0Fpj*aW+XBg^^%3y5^ZIUnyWOJ?D5okq+M4-@5%m-`?Vu)e5&i6!7 z234*jmAyc$HtL%qT<4oUS)BJm@5tI3H!^4uQYER1 zw;gcZ2u%QQrCSr>mJI8n#&D-i^>0SYhF!trN>^kftcsFn@OvY2bEXP{TMnweRMgcd zt%WRU7P%NvsVT`-q4bJWq=xfaO09Ir_akqW!~=#HTkK1~O=BJl78Z>#G(4H}S@43U z+!Jo3UZhot%8=m^!(_6QRKc~@w6x~*lz<8wCHoCgtG92Vd_#%-Kbi4#xVYWS88%p7w*#gOM>ARnB$l? zNW&eY)r&F2F;1rm^FnD)=VwpA^50>7r5g!P-vsTzH$nkY6!zHx2<9GLW3cJx1SaWg zVCKnUfCuu&ghJ~SSI=+*IK}WeV7ldVO!gBZlWE~hVVd?H%piw+%QA!ev>V!Uv}W;$ QZvAb1I^r>&;yFft133O4j{pDw literal 0 HcmV?d00001 diff --git a/bin/GFrame$14.class b/bin/GFrame$14.class new file mode 100644 index 0000000000000000000000000000000000000000..80627d405efa3c4474e5481bd9f1c323dac73254 GIT binary patch literal 1126 zcmaJ=T~8B16g|^ow=Juz$fpV_6lg25Aoy8hf(;c-MUoPH@M&lVSlI56ooRtLe};d< zMA2a45Aa7B?{sS@Qhk`6nY;I%d+t4Ve*QZB0bm(VQ-~pMp~uE0Bp6aJOChg|%)$~w zqRIV?-ewpn@9`!-a@C<1?6|Kt#E~v}!mkz5NFrq+ZKD@9gJaxWpOe$utvylIgz?M^ zJpG&@p3QBhaRq%A92-~B&oI;-mBHE(+9Y8Z$mUwPBhZQti9n&Bm=D+(#1O-9o$rgH z460ne^YkvAl;(j}4Aa?*kzK$Hrx6>YxK4T1pS*+Jf;TPPWEg7|$q%(Fnj+Bda#edW zD0@naK!gmF*>cpw!oRwf+hph|%9>#4D|>-hYt*+yxWTu4vN&&q-j%g=Ze-9Rq)Jj1 zZztfo5t;zrO1Cb;Z5h@@jp0_C>fel347-BKm9EG}SQRDD;P*!4=1dg?w-Qu+si><_ zS_@gyEOIfTQd5#^Lg`hhNDb$Olv?SKA4J|NiF*t&w%C_|o5nmAEZjH3EHY%yX2A=Z za$mTSdXZKoDno|H3?Dli-FA$?S9wtLh02tr+;1F2%{(^-9rB(F+&DfEUEJSy_(#)O z=p2VOM3MV`#nYm|V804T(4xurYN(jIT{BUc@I!H)Z8LmcU%C;VzYg#?loQZ{;EGdRZ0^*K4c+u9QqO&Bk{ zz|$`ox-!|#6t1Dyf@9-4`WOZ~qcT`KLYpKE{h4etcLZA2ArZ*;5%Yc<0~ll&s_}hM zkU@p(_nzLRlhQoUieV~qIkE$o;WTVx1UD(K`jdB{Q}CvR+YF=4BKe_qMMDJIU8-nL z1|?5v5r~jsB2$WbnEzMTvYQOu1z8mgy(KRYYxUZe2sikaPZsB`(7Up_&W#LOgj7kg z?Ck_x*FzJ)o9Wg?xGlq)s50DXQT?0IieZ;Gxl(0W4=bYR8T_7z+^ngB;8uc)FBNq) zN^2oQnnf-~RBB3MO(?x86{+DYOR1F(`9b8Z5_rH6V+*};xGBtG-ois8%p->M`7C%r zL+%SVQZLe~NM*?InBh}7CAsF@eWpiSNjfg8sMqJ#T~Hveck z^X=o%f+%p`FMC?#8SK{q30m;EQbJjH%rJSWrcP8XJY^XBzbiF4stb4N{UyL~3(RrM z8>Hcm(dxk{x-dqkaq~iHPvvI5g5|!!`b;+xp1yI~fipq@k`(sQ0SM+EU1PB6=Qt+l zYhdQcVu1T|UkHWP39g>v25^F*bHG&7=R4Vd5SernXA)DicVik^+_x}8K@)f`mo+J@NkA+?b7Z7Jiz9@yfF47AR z7~)Otr}Y-YNO_kx`C(oic)@o5)w(#;B~SRZf{g@{7HkK7a2Q-;miIXsz1iFqRZSRA zy};AY70(XwGzFtO~4Y=l)&@(g}oL~hPxL2%1K)t8E@ z8iloxAxZYQ9kEvXpy`{iv8{+Mq+;Gmh&=`=X2ayAJ!P zI}4rd(1s{-->-OD6d0VB0SQ|4xl%$|pn;e=ms2;Y79KH-|KF5~9OZ?ZG=B*&Tmy4m zGlSIJFyBlTmg`V*1`7`_* zCW;9U{s5wX$#|z*Ly_vk?9AM~_uO;uxpVgG^gDnhJWnEqE(_fbt{~2kd{qp2O{C@* z8R8A@r}Q?%aA}V>_)$(BdcjWa&4xJAMNjzEyp05s7HkJSa2QP>nL7e4>yQZK`-pkJg8>XO4AuC) zD9E6~^?Oh6(n)C^XvHv^5Mv9yapY{wVcx<+Bg`X))cGuU zK|}6~T%=y4Rgub&;W5Lf_C~iHBk)xoRDGdRB`Npo2T?OGj6s{c7Xmkq4@3v|4{iR@ zbmrT~p#@RkzF+pV$TK*v0}{00bESl`u)r{Rsisa;Ej(oy`@btSIjReH>HQ_Za0|?J z%^RfQj?wDDD7r94r*ZQ_X}7a8U%|59V11?=2~XcR?Z6qK07(k_=mG?DkFGH|^m7~& z^ffSZWHG?~*)N1b>jYO%aRWHP&^e&p^!Y*dpF}3r#F@kt?cJD02HB=%8uw{8v}b9} S;4$6$TKIIt6D;BxMt%cro*&-; literal 0 HcmV?d00001 diff --git a/bin/GFrame$18.class b/bin/GFrame$18.class new file mode 100644 index 0000000000000000000000000000000000000000..8b7cbc095897f52c7db7407cf39edaa6bfaea4c9 GIT binary patch literal 1126 zcmaJ=T~8B16g^Y0+m_X?$fpV_6lg25;1_C*2{u$T6-i3)!Ka}eU}3vMcBTd1{2BfY z6UBrFe}GR$|Bvxbw}v9shuQhqd(S=ho_oLjI{6A<2~U!Up~ph6jSGk~Bwv(5UKg2# zM-1^M_cMBnVWhmvoBYsK2VSu4zFHTDy5tGJR!AX%q=l4?KG+P7F>`%RMsGHEMO72V zQ!nuJGlrgQZX<@_sg??f_U}F$N48wK4 zCyFwta{boRJ9JW-2U;;qXU}_f0W+LNY>eV6#Z`ae4t8_iuyCDWtd%4`(5`5TK)Xv- z?a83*DJ=pKGE8R6Q4I_Ks#b&f+1b@0z63MN*nA{${VK37U83lABl&gImNss);z@&B7rk)ynDljbi0hHGGs zV`h+=J4UMyW9Y#+ohHnL(w@rCeg?~bf%TDYBs_iNv;*G>1xS+Hdj}wxTXc=Vrk@j- zq_2UQrxyb}kpDy|w2pD{1XqA#44(p~S~frE{U?#hv~Z>{O?xk9kVC%pGK1T+8`^WU TW^tcx{cU_Y;sF-%7^A-ddd45~ literal 0 HcmV?d00001 diff --git a/bin/GFrame$19.class b/bin/GFrame$19.class new file mode 100644 index 0000000000000000000000000000000000000000..c65cbea8a57ca00f83b8eac38a5d287d0f7d7fa2 GIT binary patch literal 1126 zcmaJ=-A)rh6#k}Qw=Juz$gc`26lg25;4fHX0u2>SMUoP{@M>rWSlI56ooRtPAH&x$ zQB1h-0ek?XFJnB@t)WQuVs>WEp7WjWobSxHU#DLIEa7PqF?3nzws8q@hUAN4$ZH}! zzsL}8a6hfL8HP)HyupuLb?5~G;LtN9cXNLonQ=z-1P7&q7F|j5dqphuRel5omX* zqCFXuJf%e-LWYSMIUEbtMm1RAwh@xlkdm?hPrV4^v2`au+ z)YT}hg$!vHxfoHYDTy_q^r}>(hO;cCRyyPdk+(|V9z%>R^v2<)Fo$^y_l+nN&3p#SeS!6nZX`T?^e2Qzp35L!9Q%#>AWdBKI(oLL6OwrzrX=IUWTBdQAc0+rX T)(jrft*?boM?At4EMnw0hwdN; literal 0 HcmV?d00001 diff --git a/bin/GFrame$2.class b/bin/GFrame$2.class index b3d49319ca3a40593541894ea449cf790898d230..409c2bd07c294c45439ede874b679d2e04c27f09 100644 GIT binary patch literal 1602 zcmZuxTUQ%Z6#h-z`uBEFF z{)zhFgUhve)^L=AM9 zcmgqj_>Ec5s>|V51!8K$_J=RiR}7tFIyP=1fuulc%c>1CK)K$oK%zJoz6LR-iB3F8 zuZ~gri@>?!rnP156#Q-5sTOW7%N;dq%UWeDi8P)v&~2gzy#i?+R;XDFy0x|`%iJ0p zw;fwe2t+g4l?3|nw1IObp3x~{VQB&pwVuRzJZE6Q#Phfy(0_J90i!CF&M(lL$p&SG z`AW)TZ7gUAFBo{y#4uhuRZtkfq&4YO)kaXzyn&bLS+YD|dP$5RtBK?U`ZAA0hvnx@ zT*M^-(a_q4JDGI^mrc9^D&HX~T!22E#Orv&z!ej3;;mD~OuNmsnk0g9kLv2nOrOc; zJl-)eri(KCka`mDV#2^x6W0QFyL$pjt5Rtjaa*+jnIG3s^L8%fu4iKgFuF>nm9&cely@^o0`IZefY7QRFGD zdXS`KVi_MYjwNZW=N}~=9vsGfgpUoZn)pPM>b==GEVeWmN0~iYbO&vx(NqT5p@AT=wXF(rOFF7BSyr~|6gd{sk)A+4 zb2MPbQxxPlV_32)RB+0z5VfmlJ94pEUz6Ul6`X|hf>axBg$Ifgtfc320!wz)u~gI3 z8>}GjlJwSHuP!SB7uxjxU)qc=b4=&zEGeseXTfT;QzT1n(<{qaTc5mCID3~gJ;Kj8 z<(lhrg2FPi3es0|uAY8#-XYbgn&tb_#~|;KGz2P$rqlX50l4zY2v*)hyqY5X@4-5v zsPZjOyMt?QZu9^mmp_1!yLf<9?hsu+(J!#UXN)UQhs|ea6u6fT05$j~T@my$;0|hh z5>%vlTPXa3*IIa+ws8{L!Z?jo z_hkD^3sVcxiGh3zH-5nQ&nV^xTKM3147ISL10P~&^~j~|po-gv_@evE7H$*d+o;(4 z_m4evwR3c@(WyyC0@7C~9N<#W1~T{xSD`pnTUf<5EbNf)E`N9NJ>P%C*Vw~1cz}D9 o2^75JZBjKyKPVA+4*&oF delta 345 zcmYL@Jxjw-6o#MMwE4J+8mq=?t=hB}sScuxs|bF8IQa)ML=bB$O%OL-9UMXyH}NM3 zet?66qd!VKse>2pdC&VE&cpfg?koEH=i?LDp_A#lc@_2A>1lS^aBUn5?cw5O4`E<4 zu0Z26X;JlRuZQt@pYO)-<749ORzkk>_e zVV)u0CE}aE?|b!h=WmFrM&7--ob9c8y2oJjJ1m72RbjBBGCDz zs`g}1_LLTZ2pJ|b<*0{+e|0Up!O&ZjHNlW7dx2PO)Hg-A&NqFsxUYrYk+n5$WY8j{ zN|F_CJK(wzngHHPwP4R?%IAI8vwaXL+y7fQRGoBa%y`vU7D-AH))#%Tw>6AF-|u=g%NFt_L$gF`u%k9)AcK=ggUzpTEBU0I-3$i5g}+)I-doLGWMq3pM5T3qr#l zXw!Z!*q{P?0emz)1R+`o3DKcCR!OR|kI9G8A&;$aUg}KSSA>~PJZxef3m&2n*RUve zl?tI|_X#Tl$39KWi5C95JwCO4&FQ4);|2i%mT}X=N{CyyO<4Z_V}fVcIxbq)MqBF81?c$`iucm5qP1ZMn>1h!E`NN5z=?+G)0`raW^F zMQ$q_r@0a9RVvqLsovjaW8dUPstn&|VtF%F#<0PC8J-Wq9Z(dx0m@8kvRYV`cu#f@ zB|0SNu73k{FX4Talh~AhLn3e{D!{C4KScsO5DJyl_=-B$JqMj*Zt?mBmj1GXQui}L ed_f(LM5Bf_9!spt+@IiSiOi!TF%U`TLcZS{OoYM! literal 0 HcmV?d00001 diff --git a/bin/GFrame$4.class b/bin/GFrame$4.class new file mode 100644 index 0000000000000000000000000000000000000000..13c90040b2368d600e3bba81de0e42ad8f11df62 GIT binary patch literal 789 zcmZuv+iuf95IvKmaV{n`kd|^Oy%4}oLtUUe6(L1c13_u2)GF^zvQ1n$w&dNkedI$B z@C!&KNIdWXd=z5VZiRqa^3Hg6=A7f1`T6Vn4**TPC?bQbft-mMt=Joj+9n~d zM!u|VaIBLCw@N6WXrN@G43l6TdncY7c;V1}*E<${#WgSe&{wYrS=;FrQNgSM%fxlu z;JXxskWoj3g^sR1bLFYe^=}WwnQHkW7%)i{a|Y&3+`F%(Ky5vsP6fTdCn zRLqDBa|d?~+%vI=`+sRo6If3m!l4=^TH88(*~AJ~2}L>S$pnSz?RNW0^eSp59^w%T zk(WZ|?EiH*T>~~@G3k|es$6j*LghC5%8$a1FO>*IOeouzO?JA3+;%h&gxQWCioMCW zC*nh|7jVSd6>1a>_B}l$C1S}*UIMi*;-e@YiveNjLdL&rJDPb*j3gkm^k&x!q=$d32l-v3}$n!+%afHM?|17K*R?f3}KjIq|SFm zQHE8n-}-u+PD=AoD~9Rp*~l(nhSR8nFQCOGZo%sot}=|bisbv+6HO6nZ?UR< z8J2yeMJOVM$!s}pVc}n0%dIo?7G+H^^q2imtTgHyB3k1c0a@JFLT}63DmN-<5m6=S zioX?d-H1#8Z>3um(WZ>*qQ-E&P4#a^ONL#+!7YW=Kq~5L zoYq2?G>ct~sMM6yicor4DpJFJE~QpF;(M{TO5rv`g5~>@@NCTEj)l8Mn0pMFlUeY? zrrZ@?tX`~DiOP`CA;ag+Mz0--WxDR&!taWhYiL5IAj0@n`rL>KpW9scoj z7COhF4N>GlQ1P`WFgPzm60{g_rG&EZfMM!PP2H$kc*Jn+|E|>JxGvnF=a&M*6)@K| zPmqQ?L8}kr=)pBQO_&EtyPco?2A2O0>kHjTc={%32R;xAkfyNrE6(B;KPNCr zUjs8w76Uw(|4Jydj&S}Mmw+RToB-M_pO0k!L}W58oGDDx-isOJkZ)OLaEo?BdydvD R?$d3cjZa4`;2|Dk>^B`~9>f3u literal 0 HcmV?d00001 diff --git a/bin/GFrame$6.class b/bin/GFrame$6.class new file mode 100644 index 0000000000000000000000000000000000000000..d52636ac3e6f112d420a78d3bfaaf1015a305f48 GIT binary patch literal 1125 zcmaJ=+foxj5Iqwxn=GrW$W;Xu0wfVxykBBjg()Ih5vdA=4?Yda01KNPYG)GQ%{NQG zz~8V+v5E&jz>l)*$;Ki`^kH@`+kN_UpYET(j(-4H#FI1<=&{i2;2e?+sTZY)*G1+5 zL$b+(jNW7zE${FqKk(GPA8vWC*2IA>`68$lY^0F3U_0o8!{8b-FW_YKW@ATGHDNsU zLtj5*=*i~RZCpUV1=qnv3@{9LM`f_Kgf>AK2D7=?A7BO*{3AmW1#hA_-9Qs=v( zD8nk(Z+*Q@C#89)6~j#StY;T6!)esP7%o#>^(XF7H|KQ=R~g1zN%DQ|iKYm(w^-G_ z49mXKA`}tBRJI(Ku<);{<<=Q`i?Svd`pbSORvPsU5v}o!fL`3!LT}63DmN-<5m6@T zioX?d-H40>Z-rYG(WZ>*qQ-EoP4#a^ONL#+#Ih^05miOWH~4)qxp|WX!7YW=Kq{(g z9M(dXG>c7)s8p2Hicor4DpJFJE~QpF;(M{RO5qkmf_eQ(cs3Sr+rk|q%w2}eNiX9x+V(-;|0R=Y{Juekm|q0drk5 zg4EmzT74Kt4<_g|X$F*bJ3sdgEdL$W7rK$~^i9$Zd>|AcO>Xa9fM9OWH35fyPGX9_ z24;a?4Dew7E1}Rj!uexd0*)|p0%*5vKGORqB9m$1Ok;-jUd$qgeCuTvH)%Jt=V{I1 R9^D4o_;kd5Jj7#+{RT4d9^3!` literal 0 HcmV?d00001 diff --git a/bin/GFrame$7.class b/bin/GFrame$7.class new file mode 100644 index 0000000000000000000000000000000000000000..4dbe1f80ad50175b12cb259f02af38afcad34827 GIT binary patch literal 805 zcmZ`%+iuf96r4>=oH!;m(3a9tTG{}1NNeDQhajY?Y9J`RNU8F^iMOdM$CkXCw2%A% z0zL%^g2V$Kz(*m@+8_iJOWxyM&(6%beEa_8D}Wt5si1(O3B$$}lo-k{+9@B4`csC| zlt*=S!m!jm<5Pa&%kwZE`LB+}g=&W)3R)J*sF<*9RADnX8ss;VV#V~Uq%+(e|>m;6B`VxS=Rhq`C=+! z}vy1jT9 zC6daV%bM7xa^?`-WhzSfKuGm6k<=c$6H|)25tmX(tkWcw!EhJMar89NfEDPiViQHw z>1#vJ8bzzo`~=qc4D$o+81B(pq6oafeOfDY?X?3C%>&vNVAD?*9<7?DMdX@hrSTDL zhO7HJHjB*}ZWzG~w`N%V&0EW$Z^_v^EaN>4G&0JEXi_w=1s{*HlPx@^Xpx9^P0tT5 C8?!e6 literal 0 HcmV?d00001 diff --git a/bin/GFrame$8.class b/bin/GFrame$8.class new file mode 100644 index 0000000000000000000000000000000000000000..5b372732f15ee79c44593ef8d2c44b52c7fdb92f GIT binary patch literal 1125 zcmaJ=+foxj5Iqwxn=GrW$W;Xu0wfVxykBBjg()Ih5vdA=4?Yda01KNPYG)GQ&5y9u z->^!tiU&WykFxB^#v(}cVRkOtefo5t?w`Moe*jp-lQa_OvC!+_9Fh#F7o~{TMdlGh zvdM#t-eedp@9-u+@YKE^Zh5cP#DOmPBB&K?q>#2?JLrSM;2JY8;AHe>V@FgqVLbIi zUq55$$>!E=TtL4C*TF>$FbsD`Ww5q{HbEE$v$m3fC+<);=XDEL8OB>l@_p@zrUvL+b%%YGQbog0Q?hF!tLvMaI?RYl1+_ zI@_TQQRG2T@wF&0I4?sIv>0%ugtG8}Vfsu?-Kbii*_rsiDHS=+3)gA4^Jyh{qWF4LzbB{{R30 literal 0 HcmV?d00001 diff --git a/bin/GFrame$9.class b/bin/GFrame$9.class new file mode 100644 index 0000000000000000000000000000000000000000..9373f2a081beb2011626b84d0567cf2d897a544a GIT binary patch literal 1125 zcmaJ=T~8B16g^Y0+b*lD$ft@QP@t{I;mswj zkZkfGqc<5w%R9Wu4?MN+hg;sOHF2Ozz6fds8!4nM*be&OFu2Ce3phEw+1L?PO&Cx8 z(AUoxda}878yC=T!F6yE0}R96Q5mc)p-mEo!ECOTI|i-jhzJx0i1?s`Aq+E&)cLL` z%CO4yTVHR}NogKx#W0;c8`%ZSa2j(iHaI1qkLQT@!HV=L9C{ zYhdQdVt@zpUkQcQ5zZgu5^#i(6F|G=^NH-AiA<)2Glgl|dohC?@-52@ZqaUN&(WI2 ReYy>_@#%;Mc!ULv{RT#w9}xfm literal 0 HcmV?d00001 diff --git a/bin/GFrame.class b/bin/GFrame.class index 603c2f8fdc0b6348b2aa6cc72969838a60a22d4a..ce05e221cede02c7f5c8317f017ea36771cddbe3 100644 GIT binary patch literal 3327 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 literal 0 HcmV?d00001