From a02473608954619d61ee048764c085da698fac0c Mon Sep 17 00:00:00 2001
From: Eilert Tunheim <emtunhei@stud.ntnu.no>
Date: Mon, 25 Apr 2022 15:17:13 +0200
Subject: [PATCH] Added library to read python scripts for nonlinear regression

---
 Bachelor_application.iml                      |  32 ++++++++++++++++++
 pom.xml                                       |   5 +++
 .../com/application/GUI/InputPopUpWindow.java |   9 ++---
 .../GUI/LineChartFunctionality.java           |   4 +++
 .../application/GUI/InputPopUpWindow.class    | Bin 7466 -> 7181 bytes
 .../GUI/LineChartFunctionality.class          | Bin 9248 -> 9379 bytes
 6 files changed, 43 insertions(+), 7 deletions(-)

diff --git a/Bachelor_application.iml b/Bachelor_application.iml
index 06a8fa9..e44eb08 100644
--- a/Bachelor_application.iml
+++ b/Bachelor_application.iml
@@ -54,5 +54,37 @@
     <orderEntry type="library" name="Maven: com.google.auto.value:auto-value-annotations:1.9" level="project" />
     <orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
     <orderEntry type="library" name="Maven: joda-time:joda-time:2.10.14" level="project" />
+    <orderEntry type="library" name="Maven: org.python:jython-slim:2.7.2" level="project" />
+    <orderEntry type="library" name="Maven: org.antlr:antlr:3.5.2" level="project" />
+    <orderEntry type="library" name="Maven: org.antlr:ST4:4.0.8" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
+    <orderEntry type="library" name="Maven: org.antlr:antlr-runtime:3.5.2" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.commons:commons-compress:1.19" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.62" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.bouncycastle:bcprov-jdk15on:1.62" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.ow2.asm:asm:7.1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.ow2.asm:asm-commons:7.1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.ow2.asm:asm-tree:7.1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.ow2.asm:asm-analysis:7.1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.ow2.asm:asm-util:7.1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.ibm.icu:icu4j:59.1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.carrotsearch:java-sizeof:0.0.5" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.github.jnr:jffi:1.2.20" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.github.jnr:jnr-netdb:1.1.6" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.github.jnr:jnr-ffi:2.1.10" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.github.jnr:jffi:native:1.2.19" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.github.jnr:jnr-a64asm:1.0.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.github.jnr:jnr-x86asm:1.0.2" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.github.jnr:jnr-posix:3.0.50" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.github.jnr:jnr-constants:0.9.12" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: jline:jline:2.14.5" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-buffer:4.1.45.Final" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-codec:4.1.45.Final" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-common:4.1.45.Final" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-handler:4.1.45.Final" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-resolver:4.1.45.Final" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-transport:4.1.45.Final" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.ant:ant:1.9.7" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.ant:ant-launcher:1.9.7" level="project" />
   </component>
 </module>
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 51648b1..6c3d1d1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -40,6 +40,11 @@
             <artifactId>joda-time</artifactId>
             <version>2.10.14</version>
         </dependency>
+        <dependency>
+            <groupId>org.python</groupId>
+            <artifactId>jython-slim</artifactId>
+            <version>2.7.2</version>
+        </dependency>
     </dependencies>
 
     <properties>
diff --git a/src/main/java/com/application/GUI/InputPopUpWindow.java b/src/main/java/com/application/GUI/InputPopUpWindow.java
index 44815ba..22c1947 100644
--- a/src/main/java/com/application/GUI/InputPopUpWindow.java
+++ b/src/main/java/com/application/GUI/InputPopUpWindow.java
@@ -26,8 +26,6 @@ import static com.application.GUI.LineChartFunctionality.loadSingleSeries;
  */
 public class InputPopUpWindow {
 
-    public static AtomicBoolean shuttingDown = new AtomicBoolean(false);
-
     private static Thread dataThread;
 
     public static Thread getDataThread(){
@@ -39,7 +37,6 @@ public class InputPopUpWindow {
     }
 
     public static void exitDataThread(){
-        shuttingDown.set(true);
         InputPopUpWindow.dataThread.interrupt();
         Platform.exit();
         System.exit(0);
@@ -233,7 +230,6 @@ public class InputPopUpWindow {
                     try{
                         setDataThread(new Thread(() -> {
 
-                            while (!shuttingDown.get() && !Thread.interrupted()) {
                                 try {
                                     // Henter her data fra databasen
                                     Map<Integer, Map<String, Number>> data = setInputParameters();
@@ -248,12 +244,11 @@ public class InputPopUpWindow {
                                     ex.printStackTrace();
                                 }
                             }
-                        }));
-                        //thread.interrupt();
+                        ));
+                        InputPopUpWindow.dataThread.interrupt();
                         getDataThread().setDaemon(true);
                         getDataThread().start();
 
-
                     } catch (Exception ex) {
                         ex.printStackTrace();
                     }
diff --git a/src/main/java/com/application/GUI/LineChartFunctionality.java b/src/main/java/com/application/GUI/LineChartFunctionality.java
index 692d2b6..0bc011d 100644
--- a/src/main/java/com/application/GUI/LineChartFunctionality.java
+++ b/src/main/java/com/application/GUI/LineChartFunctionality.java
@@ -9,6 +9,7 @@ import org.apache.commons.math3.distribution.TDistribution;
 import org.apache.commons.math3.exception.MathIllegalArgumentException;
 import org.apache.commons.math3.stat.descriptive.SummaryStatistics;
 import org.apache.commons.math3.stat.regression.SimpleRegression;
+import org.python.util.PythonInterpreter;
 
 import java.util.*;
 
@@ -185,6 +186,9 @@ public class LineChartFunctionality {
             }
         }
 
+        PythonInterpreter pythonInterpreter = new PythonInterpreter();
+        //pythonInterpreter
+
 
 
         XYChart.Series<String, Number> regressionSeries = new XYChart.Series<String, Number>();
diff --git a/target/classes/com/application/GUI/InputPopUpWindow.class b/target/classes/com/application/GUI/InputPopUpWindow.class
index 826b51a15cf3611662c803ff5fe52a57b342ac88..6f8be194dd66499c7a4cda284470d56527148834 100644
GIT binary patch
delta 3108
zcmZ2w)oW3I>ff$?3=9k=jBQ*D`3$Q#8GIR5b1@__tl?r<%dn1%VLihJc7}~y3~V5|
zO$?hstSuZ2TS4?Tc82X73_G|Oco=qaFzf=+yEz#4a4<BoGwkJH*vG-JpNruD!$Ee2
zLtG5v42L-wj)3T+91O=m^lmN&aYcsX91JHo7*299oZ?_O&B1VngW)U(!#NIy^BfEp
zI2bN+OzhOGXJ>f8!SIla!3<>2BM`k?h=GCO1&H;Mo#7Rmg9-x}a5302yao|(*csk(
zGrVJX&&lwC;Uh@o6Fb9aHixDIV0CN`^$uVL7lRwa7ZCB4o#7h?!*?!*9}GXa7=AJQ
z2I>9-^5tKydImOze;^nC=VWAHWCRgRAcC2Lk%fyvn30u(kqtz%g9JIa7&#faKm<34
z-~kc5TnucCeC&+;LJW+ILR<_<jKW+DzKkLuLKMUm0}<lvj1pW7nT(QLj8cr!LJUld
zvRn*n8RfXx8RZ!j*clZ!t21S?FiK3G$hKy(2fJ!`5koN#Ljgk}52F%8F*~C&52Ff*
zR^?$-VN_#e5Xwp{OH8ZKFD^+;Pt^|wk?f4>Jd7HQnmmkJjM|J00-kvVr6mdhiA9OI
zsU@jJ#XO8UjJlK0v8xLgG3qihaAbnyL-GrF81)!+Cv$KZvFY<L8Za78cHmHwD`GTa
zWDpKc%}GrzQ3xqYO;rdkNKMX6E#_e~X4IYBz#+<P!f3jA28TSOsF?txIX@etg#e=^
z52F>MH4mc=qwVA~oU$B6jCMSX_KXgbKXQthI`S|&F*>s|y6`Z%GP?0Fx-)tp`6D?s
zFI7JnMDj2cF?#YadNDdMGN??R$fPnkflH&_n}^Yd(U+akkB8BpF@T3LkTHmdF_<xg
zhcT3)n1?ZpF`S(-f`>7ZF^Y#V8brh}Mlmuls`4<#GR847Fz_(OGbZpbCNf5`GbZsc
zCNt{tFs6WrR1lE{BGMU(85smX0jr;rn3t{}l2MeJm?FSX%+JPHpTWbJ$(RLlTQ(0v
zHA4*#LnT8M4`U9aDGy^VNTV=9qiaQSYC%b6ejX2F9w^fCc^C^A3;Ed?i$I1H^Dve$
zX0tPv@-UV$mZR9{pOlrFT*An}nVDCTT2xe8P{PO{4Kg=v^EvK*P^_|OL}`X`F;*~E
zGBSv3_<-dq^i#`H^GftxL8P^27%1gcZEoa^VPW=Vte*TpFmZCUkR!7%W6k9GLd!*K
zc^K;$n|K&zG0f&+SOiLD%NUkVjutj$Y?(Y!_$5m#BZKN>MG@J_vqg03eHro@7#J8C
zxIk%<fq{X8fsvtzp_qY@p@e~fL7#z<fsuiMfmLfe1LH;p1_maEQU(SFHn5;HLm2}D
z0}q(Z%23Ww!N9=42?{l+W*M*y0|Uz@2Br;QOAvY$7&t+J%)rdZP%=4CRIDB(#l^tH
zz`&rwz`~%4VsrsRA=v0zxVwy?M)PfAVA{sOyn}&-c?Sb4$bpPt2MRH;FfcG^Ft9Ob
zGH^0zG4L{IGjKB0!Spl#WMF3yWME*@-p#-kxt)RCyIyM(1IIQ7PAws>Z4BJI8F(Uv
zc(*g~`DhFAZ(|Su^98pv@cHTp32kE#VBO0g9LX#s5**1QBpSSfLCkMAgLtIwb_NM6
z7D*N%$!!c$k}N{f+ZbddSy;9)$b$9DZD-)KVwGeCn;^giF+v_>ghFs+J*$vna3q_M
zQg9@@kaBP&hmcBeqyU?cYH*|gyO3INqyUGIdT^uwr;rB7J}Wkmg_3L_8`&k<g)~7n
zvO{cShuf$HvXMiQ18gHZ#6oS5g*w5JtU|gV`}Dx3aqg~X5Ra7P1R2LA$ptZv3t}7>
z+&F!Zaom#JVB-YXAm$l>%rgX;X9P0O803Bvko!%+Ci8&Z$pbQ&SCSWEFfYVlUWmbF
zkwWI%8H_Eg_$2v+EVnUON%BduNU}?EN%Cs#Vz6dl*v4S9o540xgu!k*gM$^nB>y%B
zM^NxNO<pK&R`1Nj5H88TiNR$XgX?Yvw@68T5e9b=2G8vb-c|yV0^1mTgnWhkwlVl`
zV+h#E5Xi(3t_2be(%Qxl3`#G|;PkSIL5G2X!GM8-!H9vM!I(jm!Hhwk!JI*r!J0vz
z!G^(<!Ir_D!I2@5!HFS)!I>eR!G$4}!JVO?p235moWYY}J3}bLA%-x9lMLYu7Z@TK
zt}(<iJY<Mtc)<|Q$jXq)D8P`$D9(`1D94b&sKSuVsLznYXvUDs7{^e`n8{GaSin%u
zSk6$vSj$ku*uhZC*w0YUxQH>BaUEj_<0r;2#$SvPOx%o-ObU!qOlpkLOj?XF;4D(V
zhCz^lgGrg8o}qz(fkB>$hoO<7iGh(ppYabvGeZ*t6N5YB6NVOsRt9E<K*n1PZ4B)U
zEDQyVyBRtdniyCawlkJ6bTYIuurVBB%w*_dXlGz&c*y9*(9O`qz`@AMsK(I4(8|Ec
zD8MMq(96)yz{RM~@Q0y~p^1T;F^=JEJwrc3D+3Q>Cc`0y2@LHFyo?<Tiy0;|Ok&_;
zT*pw$FqvTr13wctg95`;hG`4}4AU7H7=jo$ppKdWchpP<7N}EZz@0LafgS3A8E^;8
zWZ(i>%h1m-18i$O$l93<yaHUH;to>qFz#evW?*MvU^t_-jUnU!gYagCP;D41Ob5ma
z*WJbta*RO@L>*ud7K+%$5IK`U9L^Pr+QtyQnIUF5120r;GeZo>#N!McLQzmN>!BR5
zu~0VHU?@9g6GP|@hS*IEVLKS&HZg?nV2Izu5VM0JL6T(~L*j0Rq{v+i$qWqJ8B%sI
zq{0fbG?r})={p$GwlQQZXW+78lVsb*khPJ4kzqc=L53p?nGBFbo5vu{P|v{7$iT(W
z#2~`Z%pk|m!eGMC#^Axw!4SmI%Mi)X#}LObfgzP)B10C#WQIb9DGX%{(->+QrZY4#
z%wp(Zn9b0~Fo$6Z!(4`04D%W0GdyQl$MAz;3&T%_-3-4N4l?{>IKuFU;TXeThSLoH
z!3oZTft}$P11rNEhPe!E3=H)QXTV7c)E+wnPClUO;tV*cfC}?7;8ej3iVScPWdXD1
zG0bORWmv$#07|^S89X?-xw*N&GdQv{EMybl0@YcNm}F>$)<0r97_z;!b}{5IFzjH+
zUCzMatpy2^dIkmtUIqb%Oa>NkMwS9Ois3Z_3&R@*UWTs>0t}xS1R1_Ch%$TwJ70`}
ziGhWIlVLH#60q$oV2?0>(<P`TgUBsqU;w+0oq;KUonax102jkDhUHK<r86*s>nT31
z9SnK(;ma8~e6%5s0acU?9Ps!NV_;=qV0g#C%J7kagW){`s5Q&W@Coh?P6mkWpb+DO
zx(E~|><mmEAX^!j8CHO++?9-t3=9lh42+ERjLnP<43Z3w85kH87?>HJ$S^Q7JY{&s
V@SNcZ12dxlqadRIlqJI`002(qY~}y}

delta 3371
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

diff --git a/target/classes/com/application/GUI/LineChartFunctionality.class b/target/classes/com/application/GUI/LineChartFunctionality.class
index 7454b8a8a70e558f7e0d753dd3ecce5a040db855..5a32389b113ac7d683fcb180754a030be228f01d 100644
GIT binary patch
delta 3377
zcmZ4BvDmZz)W2Q(7#J8#7}s+#6fittXL!oRz{K!`lR<^y89T#sE(TTz=LI{%OD+Zu
zhF2h&*BlIQK+4{Nh<6+e??KAmf{1q<3?D$sK7xo(+zg)?zJQ3Y+zgfs-?$mRGyLFY
z_{s1KMEquF_`_Y#AjR;Po#7uBgABuec18v+204Z&AkGhVMn*0MMMfqr202D%c19L9
z`!{Dm;4Bw|3L`5>lud|%fsu!cL57i+oskbD!q3H^%_zX;zyJXto*+nEh>KB}QG}gQ
zl&$^;OiG1OjGa-uo{Pbp;R!pV1UsV?7lReZ?gB<>4n`R+Mp;HVkOSmFgaQ|%BBPQJ
z10$mvH-jakI*8B!Ir9rh(<gRDO^|wRE(Ui-9gzEUL4+R2)Bo8SPJ*1M&&g=OXvoEA
z#AwXUXu`!12(l`WvEG!O(Ts~B1i~|CXSCpA2xoZ0!Dz|F5YA}D#SqA74Px1V2x*XZ
zTMkA$kgz=mqXUR`<Y06H(flA4&K!&`Yz~eMU{7)|x`HI!I2heQv<Jvdo*+j*0eQ)b
zoza_-Ve=P82Ud0;c7{Lfj0~Ht*?SlnMK_<|*vx1ySWsD#k)P+8SCU#(P?TDdTExhp
z?2})Vt`CvWFD=Q;(GNgZw77zcQ5h7P><s_d8BN$3j<PeFF*0zuRwSnulw{`T6|*z?
zGBV7cY{#xQ*^66e^CxazMz$J;T1E!>$$`AWlO=fh*h(477#U>2Tzg&~=5mIL$$q?w
z3N?&=JPd^lMT`vGE{P?H3IX|<c_qa>jQ)%PJdA;iL6iG=rG0}zoDjxPcE&Is#&E_6
z9>z$9S{}wI#%OlN7#_x0#yECHA0Ebd#snV5M8+gW2H~v4vP6h)d=m>)T=PnbDtQ=_
z!BUeiatgEZFs3l3PUhze=15~q=V8oX%$%IXr_ZsRVFeFk7GwJ4g?wTX*#e9a{A`Rl
z0*tvljCqXtJd6d5g^UcwlNI?TCkJpy$?z~1F&6VM)G%i9FqSZu@-UV$rn57a^DtI0
zmQI%AcVV8yP&+x5UyY@bkwFpcbADDndmhFr#%e|eMq75q8Xm@4#yTFxdd3DG#zw{_
zcE)B9-6Fu)%Fo8wCctoqhq0ZpgNLz`v5SYXo3RxZp!}>Hleq+V)f*XmK=$|YFmy5W
z@-R$hm;zGP$IjT#!#II)B0J+G9>&RxQzqL9*y&GYoW{tYNHDT_7^gFqGBSuyHWU}1
zJWqf}YX;*?9>!UqP@2Iw8)RGnBZGi@YKcO6YDrLVVQFGfs+9r{;~d8H$yWrFgyu4)
zGcvG)<o!UxGZ^Ph<`7g+oDUM_$poc5P@++=Rp4P<z?ja%(9Y1o!?=)f(PB?QCXU67
zOF$`l>E=M;-;9jQHv5WdF$pZ^VO+tunup;&!vh|M+YEOmw~L!HuARJB{1(ePMh4Z%
ziW1_JH%XW{7BDa{urP3eQWFCsLoovb0~13D0~bRnLm2}D0~bR%Lj?l^gA_w0Llpxf
zLp4}lm4S<ak)ej6mVuF>ZnC;$LVZ001A`U=7Xt%>1Op3$Bm*CV6oUkVG=m0%41)oK
zEQ2|N9D_ZBJcAp90)roeA_FL2@-Q$mFfjNtG%_?XFfed3G&8g?Ffr6IFfh0>FoNY+
zwKg+wZDe3zU}gYWz{SACz`&rwz`~%4WB@BeAwy&l0|P@V0|NuZOps6s0|V4IZ48{C
z@Pe8x12&m~fn^f|*9Ha#21c;aY+z9hsE$qsPEgVS>6jcZB@gx;#Bv=5UItwx%lR1k
z82VA{28m37+dYwilVK7hoER7wG{CknFz{?*;M&F@yputckpbjAh#Md_7%*@%7&35y
zQYFZK1_s8w$$zC*f!$!lz{9}6V8$TNV9B7*V8vk0V9gN6V8f8YV9Sus;J{G8;KWeL
z;LOm(;Lb3E!INP&gBRGX9t`XZaSUt>QyHolSQ*S25*em3OlM$bC}7ZFn88rRz`{_;
zAkQ$9p^AZxp@~6^VHQIb0|$dVLnXs(hPmKCpBv6Fk6}L4qhbt9P{{=lNrrh03mF&~
z7BMg|$TG10Vc=nBSp1K{f}LRrJHt|ThQ+@a6n`=p{9<5&hVL>4E{5d{E5NCzR>l|X
zH!%iQ1_p)z27ZPh204Zh27QK51_OpLu=`CISQ+>k6c|=AtYTnhkYf;JSPgcy0Rs!e
z8iutD%%FN3>?crhZ^Ez+oK`{3VPjy-XJ=T?z{#+IVIu=GD0Q*EW?*L!U|?W+zk|VS
zH-mZP_RXHM=NaomBDXVyTCwkDu!`KyU~R?0Y{n_dsk4*8hmm0sgSI5cHU_ud4DOMl
zoI4miB-unc+qW@<?O<@&&fvL|L4=7RyoHl-`Tq->82ooLghy^?h!Be0#t<dRwv8cr
z8$--ChS+TkaY&N!P{{<CWIeKMB2+dBCW|bY43$jT#*m6(ZW>rpgdu$!Ll`#AnPB;C
z3|Z)s^&lr_LuGT|vO5@ZLAitloJ+1Tm@+Uh#4s>3#4~U+Br<3*Br%vWq%hbqq%t@%
zq%kBhWH4khWHJ;nWHD4QWHYod6fjI>C}dd4P{MGCp_Jh$Lm9&fh6;wW3{?yl80s0W
zGBhz<XJ}@4%Fx14|BIoOk%ys~QHY_NQIVmSQH7zO(THIpqZ7kqMt_DWjFAje8FLw?
zF%~dPW-MdqXRKjZ$JolSk+F|qGvic-?TqUgb}*i2*v@#BVK3u7hC__c84fdkWjM|x
z&TyDXmf<{;6~hIlaE6OaB@CCDCNf-O+Q@K|=^Vo?rq>MjK#8oL;S+-dLncEE!zPB!
z44e!_48aUr7`8HSF;p=4GHhem%)rgi!r;iTonZ$94?_||GQ&=WT?`xyrVKL}b~DUp
zU}3Oh=x5l&(9gii;K<O!u$N&U0~>=D!(xX0409Qn8E!FHFdSgm$H2nq%3#QFkYOJK
z2cr{%3Bw_V!wl?<>J0UvU}-kS^$ZFOM;MMWa527OFb0cpf)XpkF>wClW_kk7iHr<a
znWPwwGt6gTVz|yE!El0M9|JR^BI7xR-3%ugSQu3pPlKJn%Gk%4$Z(3`Gy@ysJw`!>
zGYn@L*cqQQaxk1@=x5+y02P{`;=!&S?D`1|tWY<fXJCf9?*aom)BzV67#JW9SjYf#
zz(NKlsBse*IKV}~2?oKx4C3qzm)IE=|7S2~-~cm0JaB<<iJjpxBRj)l28Le@75^F7
z8JNKG^_LhJ{xNW}GhAY1H2lTD`j0_`oxzup@h^icJHr)5aQVUdpFxFz3#|MSNFhi8
zJHu5F#mK<$A5`yPmt<$S#?Ek!5v)iUy9xCm*&k4QuY=t9i@}KD2Do-)WVi_}xo!z?
zfhto_$;H6HV8p-#F3~x5Gsr}4XUGHP6ee&^fz&4jpo9gjlQ<aeGTdWe5a0sU$WZ+m
z3@qSMPfn6$TRnr4+75>N*$n)WEZZ2AG<GoL&tqU`S<b-1yarwaLX33>8>;{=_T<3D
zHmKN>0~gy&3=9l%3=bK0FtC6lgN=b%g4uzQftleExaxk)(8IvMpv1t!V8tlO(9Iyp
zAjM$GFo%s(hryjul2MC6l5r*D8pc%&l8o#O3=ConOpF{1%#56jT#VdcmNKIXqbdN$
Cb+Zrv

delta 3240
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
ZG7B*<GqNzUGO{r;GcYsCG0HP4002O-jf4OI

-- 
GitLab