From eee450ed82173d76854ad5a7bd6aef7509b19eac Mon Sep 17 00:00:00 2001 From: johndoe6345789 Date: Sun, 11 Jan 2026 21:54:27 +0000 Subject: [PATCH] stuff --- app/build/distributions/app-1.0.0.tar | Bin 0 -> 79360 bytes app/build/distributions/app-1.0.0.zip | Bin 0 -> 49529 bytes app/build/libs/app-1.0.0.jar | Bin 0 -> 32006 bytes app/build/resources/main/docs/License.txt | 20 ++ app/build/resources/main/docs/overview.html | 7 + app/build/scripts/app | 250 ++++++++++++++++++ app/build/scripts/app.bat | 94 +++++++ app/build/tmp/jar/MANIFEST.MF | 5 + .../CollapsibleVerticalLayout.java | 4 +- .../binary_transformers/ContextHelpLabel.java | 2 +- .../binary_transformers/HelpIconLabel.java | 2 +- .../binary_transformers/LiveGraphPanel.java | 4 +- .../binary_transformers/NoteIconLabel.java | 2 +- .../PrefixedPropertyStore.java | 2 +- .../binary_transformers/ValueComboBox.java | 4 +- .../ts/dashboard/GaugePropertiesPanel.java | 2 +- .../apps/ts/tuningViews/MouseEventShield.java | 2 +- .../tuningViews/TuneViewComponentLayout.java | 2 +- .../apps/ts/tuningViews/TuningViewFile.java | 2 +- .../tuningViews/TuningViewSelectorPanel.java | 2 +- .../efiAnalytics/dialogs/TimeSlipDialog.java | 2 +- .../efiAnalytics/dialogs/TimeSlipPanel.java | 2 +- .../panels/DataLogProfileEditorPanel.java | 2 +- .../panels/IgnitionLoggerControlPanel.java | 2 +- .../tunerStudio/search/DeviceSearchTable.java | 2 +- .../search/MenuItemActionHandler.java | 2 +- .../tunerStudio/search/ProjectFolder.java | 2 +- .../tunerStudio/search/SearchBoxPanel.java | 2 +- .../search/SearchResultsPopup.java | 2 +- .../panels/ControllerSelectorPanel.java | 2 +- .../panels/CurveFitControlPanel.java | 2 +- .../panels/DatalogFieldSelectorPanel.java | 2 +- .../panels/DatalogFieldWrapper.java | 4 +- .../panels/HelpBrowserPanel.java | 2 +- .../panels/ReplayFieldSelectorPanel.java | 2 +- .../panels/RequiredFuelCalculatorDialog.java | 2 +- .../panels/TableAxisDisplayPanel.java | 2 +- .../panels/TablePanelItemWrapper.java | 2 +- .../panels/TriggerConditionPanel.java | 2 +- .../portEditor/PortEditorRowPanel.java | 2 +- .../ui/AbstractChartComponent.java | 2 +- .../com/efiAnalytics/ui/ArrowButtonPanel.java | 2 +- .../efiAnalytics/ui/AxisSelectorButton.java | 4 +- .../efiAnalytics/ui/BinTableCellPosition.java | 2 +- .../efiAnalytics/ui/BinTableCellRenderer.java | 2 +- .../ui/BinTableHeaderCellRenderer.java | 2 +- .../ui/BinTablePaintThrottle.java | 2 +- .../ui/ButtonCellEditorRenderer.java | 2 +- .../ui/CheckBoxMenuItemPropertyObserver.java | 2 +- .../efiAnalytics/ui/ColorChooserPanel.java | 2 +- .../ui/CommentBoxKeyDispatcher.java | 2 +- .../com/efiAnalytics/ui/CommentBoxWindow.java | 4 +- .../com/efiAnalytics/ui/CommentIconLabel.java | 4 +- .../ui/CommunicationIndicator.java | 4 +- .../efiAnalytics/ui/CurveEditorComponent.java | 2 +- .../com/efiAnalytics/ui/CustomButton.java | 8 +- .../com/efiAnalytics/ui/CustomGridLayout.java | 2 +- .../efiAnalytics/ui/DataHistoryRenderer.java | 2 +- .../com/efiAnalytics/ui/DropdownButton.java | 4 +- .../java/com/efiAnalytics/ui/DynamicMenu.java | 4 +- .../efiAnalytics/ui/EditableListPanel.java | 2 +- .../com/efiAnalytics/ui/EnhancedComboBox.java | 2 +- .../efiAnalytics/ui/ExtensionFileFilter.java | 2 +- .../ui/FieldPropertiesDialog.java | 2 +- .../com/efiAnalytics/ui/FloatPolygon.java | 2 +- .../efiAnalytics/ui/GridSelectionWindow.java | 2 +- .../com/efiAnalytics/ui/HelpIconLabel.java | 4 +- .../com/efiAnalytics/ui/HexByteTextArea.java | 2 +- .../efiAnalytics/ui/ImagePreviewPanel.java | 2 +- .../com/efiAnalytics/ui/LabeledToolBar.java | 2 +- .../efiAnalytics/ui/LineChartComponent.java | 2 +- .../com/efiAnalytics/ui/LineGraphPanel.java | 2 +- .../com/efiAnalytics/ui/MessageDialog.java | 2 +- .../efiAnalytics/ui/NavigationArrowPanel.java | 2 +- .../efiAnalytics/ui/OkCancelApplyDialog.java | 2 +- .../efiAnalytics/ui/PaintThrottleThread.java | 2 +- .../com/efiAnalytics/ui/PdfViewerDialog.java | 2 +- .../com/efiAnalytics/ui/PersistentDialog.java | 6 +- .../java/com/efiAnalytics/ui/ProgressBar.java | 2 +- .../com/efiAnalytics/ui/ProgressDialog.java | 2 +- .../com/efiAnalytics/ui/ProgressPanel.java | 2 +- .../com/efiAnalytics/ui/RangeSliderPanel.java | 2 +- .../efiAnalytics/ui/RegistrationDialog.java | 2 +- .../efiAnalytics/ui/SpinnerButtonPanel.java | 2 +- .../efiAnalytics/ui/TabbedSettingsPanel.java | 2 +- .../efiAnalytics/ui/Table3DColorMapPanel.java | 2 +- .../com/efiAnalytics/ui/Table3DDataModel.java | 2 +- .../efiAnalytics/ui/Table3DViewComponent.java | 2 +- .../com/efiAnalytics/ui/TableDataModel.java | 2 +- .../com/efiAnalytics/ui/TableEditorPanel.java | 2 +- .../ui/TargetIndicatorComponent.java | 2 +- .../ui/TimestampDisplayLabel.java | 2 +- .../efiAnalytics/ui/TruncatedPathLabel.java | 2 +- .../com/efiAnalytics/ui/UserInputDialog.java | 2 +- .../efiAnalytics/ui/UserParameterDialog.java | 10 +- .../com/efiAnalytics/ui/VerticalLabel.java | 4 +- .../com/efiAnalytics/ui/WaitBarComponent.java | 2 +- .../com/efiAnalytics/ui/WebViewPanel.java | 2 +- .../efiAnalytics/ui/WizardDialogCallback.java | 2 +- .../java/com/efiAnalytics/ui/WizardPanel.java | 6 +- .../efiAnalytics/ui/YAxisSelectorPanel.java | 2 +- .../responseProcessors/OdtDataProcessor.java | 2 +- .../PcVariableRefreshRequest.java | 2 +- .../core_events/BitStringValueProvider.java | 2 +- .../core/core_events/CommandResponse.java | 2 +- .../java/core/core_events/CommsProfile.java | 4 +- .../java/core/core_events/DataRangeEntry.java | 2 +- .../core/core_events/GenericException.java | 2 +- .../core/core_events/PageIndexException.java | 2 +- .../SimpleStringValueProvider.java | 4 +- .../IndicatorReadoutPanel.java | 2 +- .../AbstractListFunction.java | 2 +- .../signal_processing/AccelHpFunction.java | 2 +- .../signal_processing/AccumulateFunction.java | 4 +- .../AerodynamicDragHpFunction.java | 2 +- .../ArrayLookupFunction.java | 2 +- .../signal_processing/AverageFunction.java | 2 +- .../ChannelDigitsByOffset.java | 4 +- .../signal_processing/ChannelMaxByOffset.java | 4 +- .../signal_processing/ChannelMinByOffset.java | 4 +- .../ChannelScaleByOffset.java | 4 +- .../ChannelTranslateByOffset.java | 4 +- .../ChannelValueByOffset.java | 4 +- .../DummyFunctionFactory.java | 2 +- .../signal_processing/ExpressionParser.java | 2 +- .../TunerStudioFunctionFactory.java | 2 +- .../widget_base/CompressingOutputStream.java | 2 +- .../EcuDefinitionUpdateThread.java | 2 +- .../ui/widget_base/EncodedDataLoader.java | 2 +- .../ui/widget_base/EnumValueFormatter.java | 2 +- .../main/java/ui/widget_base/LogChannel.java | 6 +- .../ui/widget_base/RecoverableException.java | 4 +- .../util/time_utils/ColorChooserDialog.java | 2 +- .../time_utils/ComponentPositionDialog.java | 2 +- .../time_utils/DashboardComponentDialog.java | 2 +- .../util/time_utils/GaugePropertiesMenu.java | 2 +- build/reports/problems/problems-report.html | 2 +- scripts/fix_constructors.py | 104 -------- scripts/legacy/fix_constructors.py | 148 +++++++---- 139 files changed, 631 insertions(+), 325 deletions(-) create mode 100644 app/build/distributions/app-1.0.0.tar create mode 100644 app/build/distributions/app-1.0.0.zip create mode 100644 app/build/libs/app-1.0.0.jar create mode 100644 app/build/resources/main/docs/License.txt create mode 100644 app/build/resources/main/docs/overview.html create mode 100755 app/build/scripts/app create mode 100644 app/build/scripts/app.bat create mode 100644 app/build/tmp/jar/MANIFEST.MF delete mode 100755 scripts/fix_constructors.py mode change 100644 => 100755 scripts/legacy/fix_constructors.py diff --git a/app/build/distributions/app-1.0.0.tar b/app/build/distributions/app-1.0.0.tar new file mode 100644 index 0000000000000000000000000000000000000000..51d1349b4dea5f2f140a9194795a97e447965708 GIT binary patch literal 79360 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 literal 0 HcmV?d00001 diff --git a/app/build/distributions/app-1.0.0.zip b/app/build/distributions/app-1.0.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..2cffbbdf0d6f0e06df77c295f828fa8d5ac006c2 GIT binary patch literal 49529 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 literal 0 HcmV?d00001 diff --git a/app/build/libs/app-1.0.0.jar b/app/build/libs/app-1.0.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..094838a882d9694a57de4ab77c84eead200e1367 GIT binary patch literal 32006 zcmbrlWmKHmwl$19!QI{6-GaLl+zKct+&vI9xI=Ia?wUYwCunejLvWWM316j8r_br! zd%NF0A7gAr{n$^*TyxDOdu=sEXc%k=2m}O(k!mJG2=E`&kAL7lMDS9U){K{_l;-5-RdC(wbVV$}*SAW1~unEUZ(giY$!dV-pP;?4P*S zcP^C2#%A2d<(XNVH4qp+DzYH4GAIv^ec8DfV;PeFsQi&ho*A-y4t1D$SiZjoX3;c$ zs@?FHj|YF^AKw!e{Mypd!u5ZAM^tCYFg@_E*@Jl#+D1$=vThS5vF>|nZB`VuZyd)WwbtSU5AyX+=E=Iri- zbXR3jG$EGVWTi8@y?DCTp2;xHhs)24q>153 z6tdL=XXv#9FIA|tL`t&=$@bVf580oe66+6*o4#~xxnvosM4I2RvC#~+(Ct65_3DW^ zy%#^E?T!=;9gT{*b!25*4d53tz}T?%IewEKb6GWfdgr?zKv5r^ACS<*KI{$>>HeYt@j; z{7(HK|0BmRr%fjYfoys`^2$ba?w3Rb*mE}b+7+L#;@ia&63FkmgKrG%lh5^|M@5%d z&Bdb>Qq>v1W|4c8meH~hEofjDqXnI|Ugbt}plTxIMN=TAFD;z66Uy&jIVZncZcSTZ z*SXP6%*^$f^%4Vo%ei0h_Zr`!V$XnhqJ8>>tm|eTmIaUy5aQ4f5a>U7s06eCIJg2> z-Mrk~6D91H#nD4g;hw@N-og-KAr((*N-0o;i$}QbmsNVo&b@3bJc=d0I(?8)up=@= zPt<8RUG{ctG_KOU%Inp#Tq86ZB)a$WyxqZVsma~ra4vPr#jUt=g?->5R% z2tVzEPt=D!YL_s^BV<=Jeq|ddRo1L7c342F@dz4^p(0I|j*W?AGffkKu*6~T^^uGe zn)Ug(1W84t$BZ=nrYL#PHferZv}u?`R2va_ju%<8W8u2g1}i^eBDYL$Y2f3IuVq7F zJe`J{9{a+FFPI{FrlQan5<3}}Tn@dlOG@<{x~I zyTI>`3uX?@|N1EcZ1#?p?jQgQ(80=))dFPZ>Z%QWXDuS%k zxybI5+yFe8$t9h{@SJc_2|ASh;4no(AN;TQ_xKpCV))(9tr3;mA~|WbR5CP{*r^&v zSd8CHN9^3ZsCi?NLlz^7rNn}Z0BB97M5Wf0KMPN7?w-H#^n^taRd0APCrH>lG3i&q z;=7X<(^SRd#@O^wdl(LH&IX(7_D=0s(FRa`O+% z{dmJaHiOI@{`&1n|JNtX92^|o%-sHm-GBUm*AEx^=->!M2>$l;fBUoy$kFp(W{lC4 z(3}y+4p_!r4kp*auApQ>YQ%Fr-({F7=}~G@s^5Wtw?bU@5ZY%=0-1ibBYlMYPCuB| z*UaGYNs9MjHDJxxL5L;|&3-FtsBKg#w@ z=%mS-E`~uw5#0-WpZ^LLlkg+pTMMYTaYM#-78jZnKJ29_l>}W+^cBy}273+yz((rX z9x9r^uC&~#*K_Xy?0MyKDO(xNf)6@jilHxISZCNSt($P=7ldX!Fq=xaq55Sm+arvj z6!;bl^Ku{`8k!{{1JkH%=#_{WeKPqU0)y*gk%M(Qv@B)eY|NXm_THmK#=smnR7Ph- za1jhwh>!V4BTQz^`gxeP(d*C%aR<<(NUxufO=^n5<3L557wXnvn-|Ge46I+- z^L0d!xfL>3KZ0$#7t-=fpMY?0-=(lQJQf=+x?Wk%oG)U{nX>aOVVoyydyoi#4H%$#5pUhL5nzdwxf?mRNwWG#K_5TR%XnJoYy~g`8w`$JoKI*ccI`R zW%S5xWW`q<@PfP?NU&Hhb#Khqn8SepK`DH;Wx00O6QSjWrY+f1I}UTZHFO6&clxI5 zp7BKmp)E!GLE}((#dlJ6{KsF5ImpgieY=S19#>x z+N-^&LJpr7vt$RfQJ}+N$nM#_+{zX0lg}y~s)(3@vtIkNUi4^&I5mR-VFCjq^S8h# zSlUT}#oEox!OfLg!qV0q{L&l*P;~)<0sGCNe|JWe_eeeB=vgswT6&X8Hp{qv z3jf=>FOii|b)}1nP*2{t9}P9InoAWwuvE3w@B@X}{gW?85W3c9aU;k#6N{31#|YO= zF)GBO|B-_H5F+jBmcB+XB1B+hME@Bwl8#-l6KO)&$tj>TsJON8Eijb01Or)d(~CDUgnmywtmjQba1oz1CM8rV3*pNN5NDvrNYJau`pvw zl9TJ}K|~_4aw|{T-*v)$wytI#22-aYKU=X@q1*DXgJc@r9IO$6{U*fbSY>f;4ATzb zbN>mx(0LHeSM?EV9UBZ<*5$+J!F9ayO@Ku^T<0LEM7Bdm4KXV_%fZEId4BXIF?Tyw z^ZJGQ+W{=W(1F8E+oU)4az7&LoWz4ni8aDMflyj3BR#R_dp0eQ#lC+$=8q)t@Fk5{eo%1rtKoxSXGr}PKRGIM(aqE$i?u#x30JFW!jq8z789gcuB6TFxCQye7N-eIe%jZNel`(tunk}dYI z18NQr?F$OBrk=#fq%c0nhD|-ypc3FKc&DmAM@+GqGC`indA`}MT zJ6Jb=NJ2S$T8qHPZ>NQ~>Fqt!ls(HN&HEh75&6jXXNGJAZlkpRcMOqpbOHK+p)dnU z{O=5TA?Bz&|+TJEs z%?E+iD8MhYdy{m{2Lif3l~QaNYczj%@G8& z@cyYO$|_J2=%FT%)9jMLin<^aWZbI(Wcq=ZM9TaU93FCLDF;RGd8P{6)**;T_+KHm zQtD`kmEAI$9CvnlKsa!4v%`gU)8y-gw&=Z+Ws7yXzIvApubjd2_C^0Gh@D(Gq_xht z0qZ;kXD$XX8!zy%1bQO<%q)48E5S8d9xbt*v!#e`5`bPkVe_iEJj!(=*^n}t@P=*Q z+o+8bYvAoHqQhw{6*v&{(ZNVojPt&+$#*Tq+netYFZ7toybAoqlS1cDjDJL85-?C= z{|qR32PbzoX%DcrD4V(3{nQt*;)~SeTjYss}B>HYYEKL&7TVSzKhR>*{o96kR-RGkf)qZ zvo9ZZ)W~5*9kZFFH5RGK%AC4$JLUB8%NUF6M~4cK(%yH>W1a>TJee02Ecv?c+POW$ z<=|u4zp9ZD2?Vx;oIjz(AcQC+XeX;n9KSd`L%LE|A+m{WhyOEky6D!Ze*i)S21N3o z0ipzSb<+fZ02V*0FJ(u|pAw_;BMM<>eU17f2yIQrV8ci|Phs`(CVz?-#}dgxMqAJC zlj(lvwDIcJ44j{M1{yj-;Nok5(-U)X^pagefH?~|J#oC$G;ee_6cS>)3)OrMqo|3a zWJ{NvNTX?p7j0)x>{(CSa9X&pqMwFD!`Zo z&aGxKpp%H+5<16RHNI9;%<)iRc)B?Bi>lMMRu*uI(A*PdwJQQ24j z+yjnO2Cm|ud*Y|8tTE6y9~1i$mGaE}EtMH5BIQLRQ|^jsAnyb+ zhEt+Z9`PxKbG*IFq{js!`}@oKqfwy9eaTDi=>WyFY3!UsR3YfN`$9b#(J1;Q zK?y;K5g7#HFC&9smFhX2pn$A!@ytZf;e>R*sEDvb&B%XA5HKogATtZVf95DZ)A`^0 zr7sk@0mCqgd{0J#jlD`je+&D~-p21an~tFX``WG5>Tmo&6vWh^jJH9CSw6}d^hv;H znKU?#yNs@)^6iVRKl=8g33B_yTJSZ7k^L=sv2DKLXRn z1apb%bqsmx8_O(U(iyIr9iyb*aWTu-8eAni%cZ2dHa7Qwr`8%FPY zgbp%&J7BaM7fX9u&LqPE+q6&GFg5yp?kxN`-Dv{*%mEQr|vAEnB3 ziS%{Z41VOWboPdmt`tNKyA)@Zu^?m%5W2*U`FHyR$KL_E?Xx@7&Zlw#A<6DJH8O6}KPwD!)n@&F z8Gy800D%890R2`UGwmU+$l(%<$4Xp?JYz~V&JoLdCT?GDa$%u4534?aBqgkt5m()Pc7zf zVKUjuUv2WPEA3(2(KcF0+_u(#QC%FJ$*>P#%CLb|SMHywt`5M(4eUms|09|EXe-Hq z9y(FV<6|eG%la7`j7^kr`rm*1u9 z{XN`SFdb~M8oe;)Yvr#I1FYG4J?q!sY7s;MHv-CvqV}bw4*%LZ_Df$biJicU{ z*18$j$5WSc14k&M1AXM2Us|7Sj?tNYt(i9PcHENWr^!V4_U1v>dpTv!vS;tzyWs01 zPE6X{PJUW+LTz4kS?H>@`&RMv=$pk@R5!s0t5v6Kf>r=&Xb*D zr-~(k9kv!Uf<%e%`c_eUd$-v549R#&5|&vZg!_D}k;Kd?ouWY#Conj0=sDK6lQ_-~ zc8EKak#@Wt#}*XC4~1RiAZI_T9z-R!0EeCPCcqGSf@UQ-E|gj(Q6SC;Vrq(bPR-ln>-mm52MsD8|SfW4M3xEr zMa*`Num2v`5@BRHF=4b($yH6A5O6p>!8M~0f@$~0**I{skUNU!G@3zfEz2e33ltsW z2t01vyZ{w@d`*oDZoTa%rkXZ{OxFyYy^N;A81`>D1KtFkQS5Y++Murscf~R8sgIKD zHp8uGnLI=tpv+Odl0xm7RH-}*4Fi(akz=YtoFJtH%`Y-3P187 zuLQkUxvhF$$HG>pWSfiwiIO>dc&v+z#^vpd8ZP+xbOUv%Uo}$XnD$3iZ`hR=VMTs8 z9w(}}=-7VA&~$=xt2Wz~TtmdW$D=(}XEp7osJreZfM`Pt>Q{2JK+%O&Y0mQgU@VIG z=4RD9Xyf=r!})8wbf46o#qyDZk{5Iuk<;y63!M|H>vBxT6$gwa^g*&uq++dKB34xK z+TA^1N~WKmcn*9wu^N1Vjju}4;BEy=J7c-#-#im~x(^A3rV(tMIjY)`|(~h>U3H&3{@7C4mQl71&FDjGL`VJXiAS}w>B*_k2 zY(scw2}|Tqt0uf1=GuO7LF}E=E^aj(wM}!uDIjM|5k6$*5<*OJ@QC_ncXCIs;>iKa z4GGw#nE%$Dl)#5I?q=3MGycS3m0ouAut7HqlTnq$XE=sKkPcZWs0A8w<=o{V{NydI z2~1mgecFy-*! z<1bM&XflwhnqxzeR1rb3LQIsf2+1n64+ax9o!bvev$J64>G^qIMnZO|z|~+Ykn|f=z4WuFS{QAv zjv&l%fF6g{Y&ws{T+E`^FZEsm#}LdV*v@5OJ9GT4ot4e3ffhg8^#9V$P>p4W8FBP% z`^=EA>8oeO$&Ik(xYUmjj?!|pco^FQ30pFf-le=&b^=S42_3PYOtym1)(g?CS;~vL zG0|KXGq|j+tZ(N}$;2Y}L^{eRV}hEL*^F+KI%?Gv{`VFET6qgFP*Gp4>pzAR## zmhJhA>4SlCCQY?Zcnpurr?)@_zQpj_CZMRYP$V7du;%mTiSaKbBd<&?p$!|zLSG*; zV?^J4m-hGihS7DMj$zID;T2H43DCn@tb9D>Z%XWp1d{${I%>}!cV zW7angOD#eyZzEA}KocK8cPwa8E-PWjhG?J~i$IsjGAqyb)s7D&ExyNr#}pcHR}E3` z_;x>@4~HaAdDZFKel}n%j9GksV#5p-au6yt&g=gguY_iZQ`8d(yOyrNpW>`fib>tfes7d0DaLvrO!o=0fk^`bzTx)}*8{&;0M-)O;euO0pY zzepA4ct%r@{Ulx?IA<34!U6w1sloctePDLkU}vv^k}Z`gq@7258M5 zzQit-0c<>62;2gmzF%JAy`1pU?Nvv0w6o#R!jr^H%wH5mqcx`xW>Gpo1yw68nc4J* z*4Z-pTIKKB7SZt0HuRK_jS(zKq`uAJ)UmCiz16CN@`8j#N>ET}Bpv@ot{TZ$?l=QS=HFb(9D+`dqE=1z`LudG%d~@^4BN=OmC7X^>^Gg z`s~E+2#wU|9464@9B;hG81@EHge2UCUu9Cn`93PHb8&m&%OI-ysCy;(9cpfGJ>?#n zMWMW}FfN#S9?Q}p2lTC&&Ea6Lobr}1iPpwvEKTfGF@EJ1z%{$aj~ZX}m+C&~Wx-fGX3Jy2N+0HL#k~yNaNcx#;@HZk z+Of^CqAab!e^vEkkL~6%aMEP)g#Rk`pSOm5Pz(TnqOGyK?Q0&YSKL~i*2V<5SfBha zqNcBdJW6)AEv@o1wJOQt^)wRoli|6;o0vJ?V(;~#qxx3t@y{+0YR?jqYvM#$Xf#@A zaUV-yz8hIWf)gaaegI9_%`OU;*a+ClLS1lTs2595E%Z2Pf264T^3G<`g>ejt^MnfYGW;a=h3F zvhiDIx zL?V4_hL}@i8s1gEL!7-F(|dpz6muW10vs+hSF;^`8P#nE#e`!LO@mV})qyx;n%33K zg^?JS&Qjtx=1bZTaz>LvEDt5~84ZqxmHJXxG^=6?R;}E^ToN9o2}`qBo_xPn;`)+K z>C?fSx&buFXN!kP|B7zS$AMJMss;P^i<9dFL2kv1ds^AvAoPg$vsk*&N#Z3t3#hm4 zb8f3I(uWH#Ao0M5uCKFxposKsmH;x_Mhq&KKLKF+jMFBr9_X$5yShO z#|7zoY1Z$;Q!yH7Dc~XyvwXgxlgOQI#neZp@I8n{JbJ3Jf@@wURbbKibcFiC#GI+{ z@!+Vyso5^IF18!!{5F0$(1FzC^QtV1i;-g^C1Zz_yL7|1UN>@AM_3*W)iF{$o23O+#xx%e8Ot7>VFFY4?8c@c7{Wbb-@lK-}y+IncoCgR{$-qq8;ogOj(Vn2|jJhmZJI%!uw_MAD#ZGVdjB+e$ELUELHH5R6?VyNkhjyBV z1LI_K(5z)8pjSPWsQgiG|);taeMZs-3p{IU}nI?SF_+IeI~g4n2tEZohd{SjGu zVpjj7gNe>P1&J1=f$?=i0}9)d@da|T=4jj?mq7m19?yr;?N^GLMP@?k3>t3Noy2G)qNr>vh$(2lZjq0 zMXX5$FNZSxtx4I2g&f97>icGX3C!A>v{=+&^DluH!{3@;)7{+lci9e2=vIK{Ko7G% zXtt}EE5BZszz!`SU5VmTt#hcWovt_VIVT4aq$YDSyD z-yIfhuE{AGgcJOrDDl11wiHqRyZCq1Avd$`+)2m;Ho$4}x;D;z5lO1y5kCcy;$fVf zqS}^cQv8vM7PDCccs5ks5rFUPAoHp^!g!GKBr2T#c`2GSb2^em z$SAWaG=LdcWfhnmWy*sZGIzh)Z7HLuYuq;t{D>U*QcOWuTRkDj`0C@ZfNEk= zi?_GG51do9J9HGB4oW5G_Jgnztd#dt-s+COLztnvlIoy_y9&WT2Yn2*Gp&?)NoCFz z_dL)gJs*XsN(*>L?_f!}oL`&#x|EqJg&p*?5F3ayW{X`ECkZ?kfA5HDtuKisfkBZX z7H@?;Vk&OBT5XUsSj*uTG_e&s*>{XmBa}b1bOA3Sp*G%WFNiXuQ@C-TYT`_zy^)~_A5(u{C&%pn0&ip3}{%uRJKm%NWKh6rwK))-s`Y6~}u|?FEr}Pch^rii# zi?@10*KP4-S>{ysqk~)H8;uo4(itw%zwzJ&ydR!)go$}fdu$vHanEyyn!s!64q>soxCQTuZQag_yYh2C4JW#!&F zsnfR`Rm;;v1 z-eff`#rke!dE?H(JliaCM58~X)!4rZ*Ru^2*~_`*E_zM?BtT3K3`MPCaHh&A=~ESY z5NTT@QDeheAok8UMZ;M5Hi+#G8N{)=#coH86>UMEH*^zW5p_&G{}zEpsSvbcfQ`si zieE~Y&ckkPy4nS$(^>)JdPA9dsQHVc!UQ2Y{VWrzy8%(a4r1o$vzv3HH+%1I1p^UTO5$tGWnyid)MoMdoQdXc5O5Imu!Fu*YeZ zmSXJu{Y!dG?&+m^3tx8J-t-Nd9ja8aZl@cxYdC1B*B*qn#R(Kj6j8*Bc7k@6m&t4h z*y@rm+SrB=EAtET%JWK0jk?2vm5(&EF%C{xj<}J289-bSj>zEvn~Mf)F24UqbE!Bw zNPD^c7%2lQ=I<^RKdR6xjve;2&(hqif7*)fSgiPJeOwzzg*2N=i?C^%NIH`2rjaOL z2cEKnKg;h+Qf9)O3=+T__p}Q5K2dXv2EoT)Uu$8u))OTDF=m=SPY5TmOUJs}kV^TD zq4JI-5^! zQG2}ENMOs8c({6LFrazz*wavVojR~P={y9*74OcKu1G1TB@0W6<`l4pphZe@8Zg=5 zMDIk>kL9Z{5LY}s95>r%yg1|Yy76*gWMFzC+V1h-5KUim1r?BpZZK=eMDSG;DY^?- z-P+U*mG(3_g^Nyq#zHA1oy?D`CKKu!BPXlNus}g~yw%`&&#qSuu<%u&izAn{rXCr33 zZd_ufq5LSbXiw9Z@6tRolyF|qgcsR4kS~@ehQy&m(?g-*dv-bY^`mgyVBm>EAT<9# zz{_KZ_mDR*ggP0)FwL>6x3m}fVft^J)7um>&aH!DhSI0y-zv=Ho7B&#KtNShR#pV7 zB=3Hj-BSRJl^x5PNSONS5xr&Ie_wA~1k~?AA{N$2K!Z1X%Y2~785>Z)m${flAz)S8 zpFGg?iN~(xNrEIlnuqAag;4pq8inRb1f%0prU@ z`#z}K7&u?$n_U*DXKeKX;WUk2PkrAxPnndwCH49V=Q_NDXw9HANppM_F3!e!UD4QT zdtb14)unmO8o&FcgQ#E&$@Al2is~Q4F;(zQ3m2dzK-B^CbFSz=oNVrQC)?`Du9()r zW@J!C@0;ZoNoJUlm!}Q=@CKQzD;!gmw@OYNe%J78C)cH`Xy>XJ#L7lrcg`y*cv&bO zF@>#o(q!5o8S8vMCi^!lW7`@?S+N@6{L)yfVBn45z;ot`A!?|!SJBQ*+?u-8uq}9@ z`&rS&!yR4HqFj`tFuKvnX&P@IJs;5A@PRnh^+6|jTMtmychEu6Ka$Ro`G+^0zTLJG zC@I17W+r(TD`=!0Ij<~&mg#fean*0>F(y6YE3aJp=&vSj>M0L#`Ov66&59C8IqQy6 zQy6QxZuJsP&^JPTX`ACc#A*E=9@YF(JjfAak)fck?jU|JLXiBPp$UUo_JuLa8eAK(KvKnqg5G)=eK*cD#l?dip(vn_No~w3QWXTRr zO4p?U5NR6Q+KgzV$dZ_?K(oQt< zr7?G|?31 za1itAO!JK5;!JDZUVZ#gU{RhSrOY8x`@6D~N%0-po4Ge7-wKp$)SVWgd}F3Q261SG z>FeM)7kZ|;_azDJJUS1?6ti^7uI~i4moa%k=y+9Kh)43Az|Ae%)wSq%Z=I3w>Q2gp z-+CT7o_!cjejmaDvKY)TnW8+}%y}gO|M2V?@rvgeM4UhcG~Eq)+`D73KbQ9@DiP_M zV5@%ym-j#GyT7se?*T2z-VRFweefwM+!%AFu|(%klgOShNk0ZhqE;G#CREa$OA|Zgq`n(f^R7o`R=*i(+$XZ7D*G2@{7N!^|MvJ?NP*vR2zkuKu8%kq|a`J z2FM7{Q&*zOSP*<{jE=2(Ab;z@>h=;he-h22qWDX#(Tz%U+Bmh{gn+^ArlBBD$^f#m zo}iY@-E9b{frolK7DSE6Bm&sp2N5dVatzCt-W{VR z7dS+?CX!$wUCxNL%__znA$)t)<3-aRooIi9u*@JDQG3t#LM&@2fv#PFqLMAuQ7pzX zKQCk+$Q^}4*RD);ud0ZCqw#IleWD2EX-11-0#tW6m)Q|G@jZ{HPxQjiE;0P;h?5jM z--6KdRF=GYU&Q;@V{dJ5FxyUrle+y$laS#+l;JGGrWKDuglOk`jJxNvt&xBXaFT5%RaJl0XKNW(Nv?x>u{Kg6OOp5;#3RMInH`2th5;JpnkaV!H5)LX>|gRwXgrqyFa zgil`cX1XMH(LCI><6mgF!kbVfu~-^e{H3xdyGue@ke3%M?2vg&qdps7;{Dk@mB~Fc zn8AoYf!EJ_LH~z){)YNbLH?JI{sDXAJ~F+dvp6{n4xP)!00WXVIgSQR5HcNKSryP~(Lk$=6`<_WS|+?%~507Pw3h26-=B*A7l9T+|Qk>B!Z`iBD*I2yAeT zJK?8|L@XxpU@bR-a zKSE;2hRvP$NE8P_g^-3j{#F@zQaSCbj}W82(7-2(AQwb{8#R}yoQT?u_?{#(eD;cczzw} z&AOvI(f@%tI2iu8srlnp;a}kXJKX9LpRH2KL)%n*DS4YaVy zt)r7Xs%7S}ahY$N`FX1k>QhEhA;wwZz7rj;;~iYL0RbH!pj*3)NeQ%ADy{1hz$plF zCT=q`h)b`-dP7Er9or!p^WEVkJ9d63N!U>r2{PNoKIcq=!W+df%R&K5Id|x|`r;2- zo4h`5As@b|j8$Agr#(nj1Bjn!HLaMX!d?aB$yPH~311d)+>aDT9_aW1pX5`~;rB2L7VCPTPwZ3)FBRC>hd^RYt?aQm(Ok$=<)SHs9 zg22XFH(J}dj)Ah{og`#UY1r#jFYflp*FQkH>sK->^Az~j!!^RS2xxR}*2r|vdq*iv zLX8O7Kf|y4(hLEj zPb^<8vQv>Y!gAOMRLV0VqG>=@3A>4-)B3kh5^wciyX_FlB$*L&5o_~N3r`H`om9Rf zm2+8B)Tyz|pRM zpQ&k!AIp?IzkJBW{^_WyH=B@fZRz>wfa}A-VyoFNrK`fG6irSy)!-$e|KS61v5M-N+zsVcj!U?dfeAd^EQ9qZ40TYj!p z%dL)%R{tWr*7?0bqHT>vS_w(X~~`EDO5lY<)Tr_F)d@ z2O5(xT79*?Wzk*8=_~}{jg!nFNYcSZ8t1AP2j~K3Ex8< zWv8)VZsIHb{a$*jy{{K;Y5d-{Bf^YBRy1kv?q^>}2gdbH8br5#M8Ztn$a6l}bn%A^ z>*~jRM4r4Kw`YFuvl$=-zN&6Q;a2yWhm8yaeXed}X7?90hunnX&<5k`2UeB8##YJ( zU}2{LaC3KY&@ltK|6aqUs4c7Xh@*>Ci0>3^!s5hmyx!=Bw~KZZP0&b*NEN5y5M|-- zHeXCMj`;ot4cw;#WYNk*m>0ay$l%K0YOuaJ{G!Yrik!wva}}pazm*bc6fk0rhrELz;mtIe)86+_Z(%)lIiNhqV*QXZBDA zT7%+qE)q!f%fj@j`q1?@eSngwqu_)a11UfZEpoVwY34(1In;~ZcMgjmiF%vgKp{Rf zn<3f6ymo#eVBL7l@UBEg%+hWFeJDd!>LS~#(M_O=LHfhS2s!!cVe84ANQbJ~U|K8^ z?G=m8aDrZ4SUcunf?eA6c?x= zLN%C;UzM`Iu1{`@fAIQ>1TzGszHYSNLDU0T&r#XL0vjAJ+3XeFz7}c?>DI?k}V*5Z|G-Kj9+tg#OuVS44I{x zb>_YS@?$xGT0ik_d$SW4`Q$Nk@C6pjRqu+;XzgZD0Csu{FFE&1>bn6l>SoYKT$MMX zA44hNj$0{jmF&zY`>Sx0{T|^_v)iJF$3cg@u)y*`pcU6|tS0 z^QnVF_7E9_=OyCT_!~^Zg`x)O?^J?hSQgUjh|Oo8GV$mU!DpXq9<|QBJx*l4dX8*? z(0@+6?uk%IZoxbt2Ve95>%{9hz}(%MS_9ne1GxOWkR7UNq)G_R1gPjEmhL6QN}C*5 zF#T-yrPjPCZLo;UQPGnIuFSed1ue698XBIPKU(|-;kldD_9aK? z;mc{w8pMaZDb^-#I{zAtQOMX?dueicTaV00W< zu0LgWndy$QU%j!c9!l&WL%w)jw{S7lL4)^Vi-RKChf1>i{*2s-y?ljkzD~orc(~j; zNMMFyekB)ojdWGi-n7uS>MDgsvq9$>tf*?)-Ri#PywUfo*Qzg*dgiJDdVwq0U-{j| z=@7W(w{Ymxl8y|SB0y;$7(cFV$ChE;WZANz)- z%x7tM1odkAnCuH3)G7#+L@Xs>ZV80k7M?5@iVin){G?xn^6bubEO(-GbTcptre3}^ zz!qiE=ZL~NH&g!eIki^_S26VoySc{nkd-oAEwBR*(?lxRTEwb&_5?my%DSCy@KYrdR?K0Y7r9g1x z47ZNdxjq_Pw?P!SwgdtaBWzrz6|kib6~y~pUqa$EAelc>vRm<%{bBcfb?oS9{&pGu zrR$MUsp-ss4h{=E4QP3xZmPL%RLviq5mVm=?pB8(Kb%8VGl5eJPD9?cTkYgV24#*t z5=KfSUSS2mmOrT~932US8%`gjss`jdC8TC3lusdIikw^bguGEqxi>89bE3lP(WM-t z^@sbyF?^-BGPLpq`)EJ9(*^ID4#ASZjYT!>cN)|Z*UP3kMARc3bGB^S7sTFLi^!p} z_9(hCE>s2WeWbnJi4^#RQM9)kO3|oNo{{@Db*(ylUr$eOW%zrMjzz?xQ&r;fmy1C! zIVnuPSw6doopx;y4!@RHLbSuaWP=i{b&7D8JgFgc=SKP{gOOQ^qYsyPuN7zaixu{6 zb|I0$7MKAqfxpb;mBH6VBmwdc9*%b48zkO8+lwy0-?<9?nLXkyfg8vm6gAU5Ik<&% zeSH{>iac6#GnYio?f9i356Ybyjx*@5>ImUMoG{MQ{tKrTYx}=tHHKS5y+PqY;Zk7% zr3%@T+4K<`Zt8?W`S35w@D%9W)e`0?Y3x~Djh(}`01Q=nQ%UTUtTxQW^(#m;sJ(aX zW{<(6V_(FA#kA$yD1i(eX8b^F%4)89l~bK|`p@Ke$19b2yA`DYH1M~$4SS;LoLNmX ziuKPtQY>Vj$m7b<NelJ8(8we;FIgc;C?ZAei^VD~z<@4_56i>?Qt-62=enytoAI$MlFQ&!tEeoV(cDyHzcFr0z24 zI5n`>G!*)XC>)!fN15g0_A5WhQD3Jk&R(=>sGFCv1PXyZUX|$LPrv6xgnfmDkb*Fq zC+lnF*l}aVWqKxdW5DV<(%X!y!J2xn(#%@`eITZhqyTD(JEUCQac3Fl)%JWwu!>_R z`Y-|y6hN0t zt(=W&sd-*RqFJn^4xcqEv!GmUJo;Jdcx(2%TTKEwU&NBLRD0TP5(ZEr?aE2_bhcG? zv>CL8+UqBlBBEs8-%BNY!ycR!&S8HsH1+P9vBVu1l2EXEXTHD0Ep$yaB`3FbRpn2R zT9cdmVrfKqt)a!PSifY=Ed4u8h5jTG;(YHwUU4xq*b>fu^bAz#6H0inY<#Sn`H z8v`G7;9qqIynB_uPJDE<)-Iswf+3|xVc3macwK(yD!GK`JUAx(5bYhUgZ%$>b|%nJ zwSOF!eMuo}vQ$*|EHR0YglJ5%l_g`}_kF8*W0b7fvQ?8USwphCA+qnHyuA|Xjj|L` zLi*pKx;$y*f1Npwb3C8#o#)Ox_uk*~yNHIXiaCP`tp!J?3xq)7HBqt@FTUCUQyQfcE%Y4}4$7sUL z168BXqB~mWlFPg-s{$4l$*NuLC`QS>=#0gyyI=I3TC%HcUeyQG6Ie|*LzQ`&@S?SaForx=0gt`Yr3?x$x zZdyq*TbU~vzA4V6rOI)tpVUg>!ywP;XKK7f>H64N4J3RsKQfirdEm&G-1B_`)AKPo zsiqD^_w}N$nbvivCR#T4^t+G9b)(U40h2p!AGb)5_jImNiQVCn<6C+?g7(YQi4k#= zuIUA@8IR84yS`r$=nCnWtk)6F&HtVxk5UicX8t@rKl-|(#SEI2i^FVO@^1mUt>!bx zN_7502Q6hzMma}8w7poa=sx3+=T?($HR?gmah)T%7;&$63 zhCJi23AOP2LPN_g@}Zr1!&pzbJ>30|g|4%} zmeYSQ#K3@^7n#1alji8fh+}<%RxD8kuM?u)C$NnL_+RiNF0ID}%Whxb+{XI+p76(* z$v__Lq+Ygu))OgQVK&=&Cv55+trM+pRT)kAv+`pk`zdp&u|-j)eofkMKFU4f8ZAza z7Mt;@bvoB}+)NNHa8-iEAkM@0J(t_!h zPjjCW+vJZh9wi+@Aa6HtQ|-l`n3iD^GZ>ZmXla&lnB}fslIEPP(b*B5q?)&(nzc@v zWq#(y5g43>BgbS<=UmvSV!O)X{2OiTI#Azs*P}Rr^Qiq$8X?G#r5re$X6i(|-ww@g zFZ2>8{0)L<7z_}6kHQ4U#Y}4(W427~?x8JoGv%ktpuW40dpG&(>t|jMK0n~h|04*~ zCeOA9{dUsmi$Bt{d^r_PG9EY@)JJ` z`Yp()TAVr&Ue13XB~ctSp;{ud`ubWj&QR953YX0>l22EzSC<$cK}k8*_rdxjP|u?p zXJI7^&Fxm`e7bL=`Te;_K`|E%C@z4tq(8tFGM7uS*Jsd5WFRz{DTF~l!k$-@vr$vh ztf}zOL|kCin@3!O5n}B&dpHwIn<_tAj3lHq`T12ogepRI={p%e!jUPH+9)LR(!Zx_ zqUxczx3h7^r9CdR`pQi{A!a`wP0^@iekR)tr5sJ-kvz0rQ%|c!6;%bh@;`qGv}Hac zJ-6K8GD^oMl+aq>yuj6SHT|+q#;xIQZf>W<^K^w~^@m(ozIZFUh#Qsq{6`tfmGU8= zukO6Be?y(#>>Z7%t|=;sespm8F#YVp%u{ztts2V?HaRk@tMv>8GS9tld5)fQ7AqPt z&|ui7HJ@o}^DQSv-c`2KNo*u)pHtkCVV@3rVp3`^sp@26#;W_I=Alw^Hs~DV%4Qt7 zd!NK7GQn;7od*l;)2z)J8uOxL_b!}Yd*A15d|~h!bO5TL1F(OC1K@^qxBFf}6$Dim zKz@(@G*r9&n5bhSj`8h638c+;4utS0Jf`G{Kkg9{h`1G&aE@Kb)-3<@7hBmGiWy~G zyC%27{T`^+wbI}5jkV{6mtPmj26qfdd??3+kxP=jlhTamDVUk`M?^|>Kj}_0vU4@> z?jWYA6itZLG0!;l(mX4dh%|9#FU~fYTJY$Zl43z>X5k3qM|%^dEOIpW+9!N$eRv^u z!8f*CBquqfNK9iCWgXX^Z1yRwXa15YO^#Cfy>}raY)qqm2Kyd zcg1C6L(X(A4jx|{Ee~EMeN%&M*)D?oI@%{kNrGt_I4e~;$Lv~`@?Vw|_rD$KVs(ud zYkW(kF<)>PVU7JM#GEI^)|$Zdc36`RZJ1nlJDy>tC5X_YU09! z*^G)l_wF)sT56p4Zl}q~r8hF6SId)8PALf070xLwcvq81GX}=`u`{h22%^aCVFs#80tc^%1-0ny{%Cw*eyDrw)*!AlD0zqLT6&jyQbRUQq2IG1HtPX2<9_<>I!yZlGsC9X+Q1pbw(5L-U zYeqLlhgEitG1q!tMzA4L@rD=1$ zhcV_k#=V`&ugRXGBnupjYpXLbxgu-7mj89|hdDyWFBv+1gwO0K7e}bP(al@U{CiPI zkY)=MG-Z5vNq!5{=_yS8oC;4lj@>hdIwnvLXDx8WS%F$T@tPR#L`+)Mo0{z(QbRp= zM&HhI7X5r^WWd+OV)@o>a7#N6B5F|UFLI2HyrLYnMe&Y%Wy(}N?IwI-m&&*KTwOAd+5~D%#uQ|>xGk&_$Qc>hFeSDR& z-qgF1>mdoKw-tY>oZ7y~MC-MvG8|`o{MM8#I$2@J=aPH5(d3sRD^<2kS2L&BFwq0b zq$eo(a_mKFCfY9CDt}*Aq$lBas7`{)z)VWdV-PjK%wRr{&B-(q$VkaQ7J`$>inAGP zu}aOmeX2f06eXP)k~B}EJw|`vtVp@Ex8yyyg$Lv8?{IN%C%fDfEO(vX8;#_*jwZtF zx*@bE&ZEJ-oviihb*6j#I1%39p509@D5M=(N!Nn{M~bh)CfSUiZjmqS@e7g(B0(@_ z2)9NZYyg(ie_luS;7!Qz*#yEd5KXB2^Lv;(DC!85r(q0=Sl~|oyV=%Qo(xMJXMr}o z%f0mugEm7X9f?Z~uS-lH{%f~#uYEabTg+~TOa6K8Rl~L%7nZNZ9^+Q(A4sJggPO>m zkFaYMnl@BR4Eohs}^W8EISJ#_IW> zW9>sx=h*0y86RG!?$$Z8gu#%gNdpU}4vw#v+SM~&DcP6aK>j5^So#lL^Pb%;{byZY zw%iFYD)rir^%;87>g!D@gTe7JNb#~WX}+C~NOy~mqTH&(GN8;?7k4U5T<35YDZG^aBKPLK)gpSDQ zX%?SE&6n3(`Lo5(P#T1C3}-gC`pqVN2tKPR+^FYM#*E0f*i)!p(4bOKX+_-^dnf}xj`+;xevG{W`6<~gc^tf1G<~fos0U4N5VYhF4r^#T*g80RI;@;I ztnIAb;FV{&tomL=)@-lM{ScL2rPFkl!+F^z0+i`-NP){VO+ART47P+Ot$ADFMIyPA zf1e4Q5`FdR&47~z64~DN??Q{fMR7a*zTyINTytcS3lkN#xy#wIHM3vGz_-MdIO`#~ zVp-OG$I_@uhbt7Ee6>W_7XfKu$(Pk+V{vY=D#p8O(GA;Wd<8?*&ll{@gM7)c=Sm0sI*ekqj)J^{_!}u zkbTG4oi&bqdLrtNrc_{3c=t`-r}A1V+ZNZ6l#Jnnx9;?kGUt5|YA= zLOVUNeMy@lS=;myyYwjt7gKP)%vAI?u2)k;z4fm6&M{&oY$aujm|0Y+v_^$GB@G$> zbdOP*LE3?f+6P|>8CzEhn+CarZOhd(+H0qCD^Tp|@HDf!F-a`ob;yGnV@-v#b}~SM2eUIyCnWpigZ=u(u3)S zccpmGoO%{ypo%H-HcjS#tJ)iqy~8vo8hQ2%jR8`2hmG|#YKdy-VO!$0(A58OtCfz3 z?{6Tr40Y4hlo&fM0qGzs}iZ}9IIk&XQO8~U{?IIX9LdB;3W?!?P<+ZXPhr8-mH|T3wK%sZlDG9UwBYJ^H>YL2q!34&!rCDdw?61l^vzCMdu<-SZ1H`&kf$6h=g(#%hJD-eSzPa<0#jAZliSm^Y))hA^)i!7GI)~1 zZR$H>RQ+f7&PhpTxk!dv>IOzzSkxdXn@Fuiv~-#%FJ0)o*XCB3L;EZh&B_p-L>tAg z=~0t%XiTAg)~jnei0s|*?ZboCJIMoG_0yJ;4Gj+1H=mE|{#Lw(}XIRjjPYm%exTjeDR8#peNj zbjPp%0oAc~wT3Fjp<+t>s=cai;d@HGx1{T7#5@(};|N8OV~}@rRxuxSZ;Tn!<0q2a z&}!w-tah&4-!XV9jli*z#C<<(%ju2HDKUr`VypHM3X! zcs+w;k&3@?VRw7y7YdFs^?fwDom{i8@WF|TS7mrj%Rbu3H8zGdu!xx9>g}uZYquz7 za}CtVl)wLYuuv8&^{BD(>D(~FxU|#zoko+o%Wmzdu?IEZiVkBx6*?jkG)-8M{K{wZ zifXG1Oy2YNpH-Mp8?)-`yPtm}%=YQ|{SsX@Shbs|y>=!oO(oGK(J7E|;TB>>62{*? z^8&h&gEl&%2?hM`pXTo1Fz^W&_$EY+6-Vl0u$eIUSfaAeO5y0cMp)lw2_*D-kSUnoFvB%q|uWb04;)VAA z=Ue`1YENi9H2#jTgFmz!LA1iz#8)%CEgOP^0`WphYim$cE2a$NhkD~x3CBAR? zHx*94Qp-hX1m1FfWy6ms{66BRr#zvdYiIB!ICR;Lp3r!_9X%{fPqChz{pzMJkOi94 z|DdH|G&W?xR`nniG$)6t=~Nr-A!t<&vO#}um|aP|5&KWwzClgUIUCmOquG?^IzHN< z7U)V1YmIK*l-4>P)u0yW`V4E$K%ePfAB?d2leA_oK@Vt92y|73g}y?KtD6w|t;aH` z2$~hcimY^-Q(S9Z4C;Vxz_1P%{ibwa2VB4#7*qsZc45WC&}y=Yxr7zhwP^!&LDO1T z*JQ`0bl0=61;s!^SXj&zI%#a;P5#Cn7SsdHR$;whrcLR6_s3Xey$VW!W~Q*zHRer8 zt!r%xs(~hHRK>W7{VH>-C)3d2aQEw?olX;LzuhDW(36IF+VQ-@g^E88~#E*3+h_J zW8qtGLSylk8t~X>zl>dd?F4c_gN+}gGz>jdO1gF*R&!vBhV|?=Ko!vX0akedxorK3 z%CANcpa$qw0Bb}-k&HjlSnFH>^1;qoUMKRUyHY1IX#z>ZK@ic|WJq}D$*fc=9o zR#}E1_SbGgaF4+zIT-yAYGfubIqS5{fo!l53}zpK9`&#Rd;OUJ+m~Quw>%-_+JYr; zN5Q@wm@0DYPpE5)bU-@TxdPL#DiWfv-^T*d!KMqCF04e5zNQ5Oq=F^-rd1i}Sq>x02sHW++L^AEvL?}oG6M-;U(D+Zua9R+ggBdZHjzJTm|0X|% WQX_*R?LTunerStudio, MegaLogViewer, PC Shared & All Platforms EFI Analytics API's +

+

Confidential and Proprietary!

Only to be used for reference by authorized personnel under NDA



   Copyright (c) 2005-2016, EFI Analytics & Phil Tobin. All Rights Reserved.

  This software is the confidential and proprietary information of EFI Analytics.
  ("Confidential Information"). You shall not
  disclose such Confidential Information and shall use it only in
  accordance with the terms of the license agreement you entered into
  with EFI Analytics.

  EFI Analytics grants the right to distribute compiled binary versions of this software as
  distributed by EFI Analytics and only with a legal agreement Distribution with any commercial
  product or for profit or benefit to any commercial entity must be covered
  by and agreement with EFI Analytics or Philip S Tobin.

  Source code and javadoc is not to be released without specific permission.

  For questions or additional information contact:
  Phil Tobin
  EFI Analytics
  p_tobin@yahoo.com

+
+ + diff --git a/app/build/scripts/app b/app/build/scripts/app new file mode 100755 index 00000000..52643961 --- /dev/null +++ b/app/build/scripts/app @@ -0,0 +1,250 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# app start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh app +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and APP_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}.." > /dev/null && printf '%s\n' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/lib/app-1.0.0.jar:$APP_HOME/lib/annotations-24.0.1.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and APP_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and APP_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + -classpath "$CLASSPATH" \ + TunerStudio \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $APP_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/app/build/scripts/app.bat b/app/build/scripts/app.bat new file mode 100644 index 00000000..94d5ac55 --- /dev/null +++ b/app/build/scripts/app.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem app startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME%.. + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and APP_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\lib\app-1.0.0.jar;%APP_HOME%\lib\annotations-24.0.1.jar + + +@rem Execute app +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %APP_OPTS% -classpath "%CLASSPATH%" TunerStudio %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable APP_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%APP_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/app/build/tmp/jar/MANIFEST.MF b/app/build/tmp/jar/MANIFEST.MF new file mode 100644 index 00000000..4768571f --- /dev/null +++ b/app/build/tmp/jar/MANIFEST.MF @@ -0,0 +1,5 @@ +Manifest-Version: 1.0 +Main-Class: TunerStudio +Implementation-Title: TunerStudio +Implementation-Version: 1.0.0 + diff --git a/app/src/main/java/business/binary_transformers/CollapsibleVerticalLayout.java b/app/src/main/java/business/binary_transformers/CollapsibleVerticalLayout.java index ed3137c9..dd509ecf 100644 --- a/app/src/main/java/business/binary_transformers/CollapsibleVerticalLayout.java +++ b/app/src/main/java/business/binary_transformers/CollapsibleVerticalLayout.java @@ -24,12 +24,12 @@ public class CollapsibleVerticalLayout implements LayoutManager2, ContainerListe List d = new ArrayList(); - public q(Container paramContainer, int paramInt) { + public CollapsibleVerticalLayout(Container paramContainer, int paramInt) { this.a = paramInt; this.c = paramContainer; } - public q(Container paramContainer) { + public CollapsibleVerticalLayout(Container paramContainer) { this(paramContainer, 1); } diff --git a/app/src/main/java/business/binary_transformers/ContextHelpLabel.java b/app/src/main/java/business/binary_transformers/ContextHelpLabel.java index 0bf47f03..cad3e956 100644 --- a/app/src/main/java/business/binary_transformers/ContextHelpLabel.java +++ b/app/src/main/java/business/binary_transformers/ContextHelpLabel.java @@ -22,7 +22,7 @@ public class ContextHelpLabel extends JLabel { static ImageIcon c = null; - public l(R paramR, String paramString) { + public ContextHelpLabel(R paramR, String paramString) { this.a = paramR; this.b = paramString; if (c == null) diff --git a/app/src/main/java/business/binary_transformers/HelpIconLabel.java b/app/src/main/java/business/binary_transformers/HelpIconLabel.java index c774f202..56c9a6b8 100644 --- a/app/src/main/java/business/binary_transformers/HelpIconLabel.java +++ b/app/src/main/java/business/binary_transformers/HelpIconLabel.java @@ -20,7 +20,7 @@ public class HelpIconLabel extends JLabel { String b = null; - public j(String paramString) { + public HelpIconLabel(String paramString) { this.b = paramString; try { Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("Help32.png")); diff --git a/app/src/main/java/business/binary_transformers/LiveGraphPanel.java b/app/src/main/java/business/binary_transformers/LiveGraphPanel.java index 21705c94..109620a4 100644 --- a/app/src/main/java/business/binary_transformers/LiveGraphPanel.java +++ b/app/src/main/java/business/binary_transformers/LiveGraphPanel.java @@ -27,12 +27,12 @@ public class LiveGraphPanel extends dl implements GComponentCq, bc { private boolean d = false; - public s() { + public LiveGraphPanel() { this.ExceptionInVPackage = new u(this); addMouseListener(new v(this)); } - public s(R paramR, GInterfaceBr parambr) { + public LiveGraphPanel(R paramR, GInterfaceBr parambr) { if (parambr != null && parambr.b() > 0) { GComponentBs[] arrayOfBs = parambr.ExceptionInVPackage(); for (byte b = 0; b < arrayOfBs.length; b++) { diff --git a/app/src/main/java/business/binary_transformers/NoteIconLabel.java b/app/src/main/java/business/binary_transformers/NoteIconLabel.java index 2b86d20f..39cd4ff8 100644 --- a/app/src/main/java/business/binary_transformers/NoteIconLabel.java +++ b/app/src/main/java/business/binary_transformers/NoteIconLabel.java @@ -23,7 +23,7 @@ public class NoteIconLabel extends JLabel { static ImageIcon d = null; - public a(R paramR, String paramString) { + public NoteIconLabel(R paramR, String paramString) { if (!RInterfaceIndia.a().a("lkjfgblkjgdoijre98u")) return; this.a = paramR; diff --git a/app/src/main/java/business/binary_transformers/PrefixedPropertyStore.java b/app/src/main/java/business/binary_transformers/PrefixedPropertyStore.java index 7fe3fe3d..7e737cff 100644 --- a/app/src/main/java/business/binary_transformers/PrefixedPropertyStore.java +++ b/app/src/main/java/business/binary_transformers/PrefixedPropertyStore.java @@ -6,7 +6,7 @@ import r.IOPropertiesUsingFile; public class PrefixedPropertyStore implements et { String IOPropertiesUsingFile = ""; - public i(String paramString) { + public PrefixedPropertyStore(String paramString) { this.IOPropertiesUsingFile = paramString; } diff --git a/app/src/main/java/business/binary_transformers/ValueComboBox.java b/app/src/main/java/business/binary_transformers/ValueComboBox.java index b7f116c8..e4f33dd0 100644 --- a/app/src/main/java/business/binary_transformers/ValueComboBox.java +++ b/app/src/main/java/business/binary_transformers/ValueComboBox.java @@ -11,11 +11,11 @@ public class ValueComboBox extends JComboBox implements ItemListener { private int b = 1; - public y() { + public ValueComboBox() { this(""); } - public y(String paramString) { + public ValueComboBox(String paramString) { addItemListener(this); } diff --git a/app/src/main/java/com/efiAnalytics/apps/ts/dashboard/GaugePropertiesPanel.java b/app/src/main/java/com/efiAnalytics/apps/ts/dashboard/GaugePropertiesPanel.java index 6473497a..6d396b00 100644 --- a/app/src/main/java/com/efiAnalytics/apps/ts/dashboard/GaugePropertiesPanel.java +++ b/app/src/main/java/com/efiAnalytics/apps/ts/dashboard/GaugePropertiesPanel.java @@ -32,7 +32,7 @@ public class GaugePropertiesPanel extends JPanel implements GaugeSettingsCallbac boolean c = false; - public ad(Gauge paramGauge) { + public GaugePropertiesPanel(Gauge paramGauge) { this.a = paramGauge; this.c = paramGauge.isRunDemo(); c(); diff --git a/app/src/main/java/com/efiAnalytics/apps/ts/tuningViews/MouseEventShield.java b/app/src/main/java/com/efiAnalytics/apps/ts/tuningViews/MouseEventShield.java index 5f0449b8..d2964290 100644 --- a/app/src/main/java/com/efiAnalytics/apps/ts/tuningViews/MouseEventShield.java +++ b/app/src/main/java/com/efiAnalytics/apps/ts/tuningViews/MouseEventShield.java @@ -9,7 +9,7 @@ import javax.swing.JComponent; public class MouseEventShield extends JComponent { TuneViewComponent a; - public g(TuneViewComponent paramTuneViewComponent) { + public MouseEventShield(TuneViewComponent paramTuneViewComponent) { this.a = paramTuneViewComponent; } diff --git a/app/src/main/java/com/efiAnalytics/apps/ts/tuningViews/TuneViewComponentLayout.java b/app/src/main/java/com/efiAnalytics/apps/ts/tuningViews/TuneViewComponentLayout.java index f890dca8..03d4f012 100644 --- a/app/src/main/java/com/efiAnalytics/apps/ts/tuningViews/TuneViewComponentLayout.java +++ b/app/src/main/java/com/efiAnalytics/apps/ts/tuningViews/TuneViewComponentLayout.java @@ -13,7 +13,7 @@ public class TuneViewComponentLayout implements LayoutManager2 { Component c = null; - public h(TuneViewComponent paramTuneViewComponent) { + public TuneViewComponentLayout(TuneViewComponent paramTuneViewComponent) { this.a = paramTuneViewComponent; this.b = new g(paramTuneViewComponent); this.a.add(this.b); diff --git a/app/src/main/java/com/efiAnalytics/apps/ts/tuningViews/TuningViewFile.java b/app/src/main/java/com/efiAnalytics/apps/ts/tuningViews/TuningViewFile.java index 21b5a939..1fa583cf 100644 --- a/app/src/main/java/com/efiAnalytics/apps/ts/tuningViews/TuningViewFile.java +++ b/app/src/main/java/com/efiAnalytics/apps/ts/tuningViews/TuningViewFile.java @@ -25,7 +25,7 @@ public class TuningViewFile { private String d = null; - public k(File paramFile) { + public TuningViewFile(File paramFile) { this.b = paramFile; } diff --git a/app/src/main/java/com/efiAnalytics/apps/ts/tuningViews/TuningViewSelectorPanel.java b/app/src/main/java/com/efiAnalytics/apps/ts/tuningViews/TuningViewSelectorPanel.java index 1fed523c..95ff310f 100644 --- a/app/src/main/java/com/efiAnalytics/apps/ts/tuningViews/TuningViewSelectorPanel.java +++ b/app/src/main/java/com/efiAnalytics/apps/ts/tuningViews/TuningViewSelectorPanel.java @@ -36,7 +36,7 @@ public class TuningViewSelectorPanel extends JPanel { private R h = null; - public b() { + public TuningViewSelectorPanel() { setLayout(new BorderLayout()); setBorder(BorderFactory.createTitledBorder(SComponentGolf.b("Select Tuning View"))); JPanel jPanel = new JPanel(); diff --git a/app/src/main/java/com/efiAnalytics/dialogs/TimeSlipDialog.java b/app/src/main/java/com/efiAnalytics/dialogs/TimeSlipDialog.java index c649130d..e20da927 100644 --- a/app/src/main/java/com/efiAnalytics/dialogs/TimeSlipDialog.java +++ b/app/src/main/java/com/efiAnalytics/dialogs/TimeSlipDialog.java @@ -20,7 +20,7 @@ public class TimeSlipDialog extends JDialog { ArrayList c = new ArrayList(); - public b(Window paramWindow, String paramString, ab paramab) { + public TimeSlipDialog(Window paramWindow, String paramString, ab paramab) { super(paramWindow, paramString, Dialog.ModalityType.MODELESS); this.BuComponentAlpha = new e(paramString, paramab); this.b = paramab; diff --git a/app/src/main/java/com/efiAnalytics/dialogs/TimeSlipPanel.java b/app/src/main/java/com/efiAnalytics/dialogs/TimeSlipPanel.java index 5c80e1f2..271c54d9 100644 --- a/app/src/main/java/com/efiAnalytics/dialogs/TimeSlipPanel.java +++ b/app/src/main/java/com/efiAnalytics/dialogs/TimeSlipPanel.java @@ -41,7 +41,7 @@ public class TimeSlipPanel extends JPanel { JLabel l = new JLabel("", 0); - public e(String paramString, ab paramab) { + public TimeSlipPanel(String paramString, ab paramab) { this.BuComponentAlpha = paramab; setLayout(new BorderLayout(5, 5)); JPanel jPanel1 = new JPanel(); diff --git a/app/src/main/java/com/efiAnalytics/tunerStudio/panels/DataLogProfileEditorPanel.java b/app/src/main/java/com/efiAnalytics/tunerStudio/panels/DataLogProfileEditorPanel.java index d8741d60..7c7a5f0a 100644 --- a/app/src/main/java/com/efiAnalytics/tunerStudio/panels/DataLogProfileEditorPanel.java +++ b/app/src/main/java/com/efiAnalytics/tunerStudio/panels/DataLogProfileEditorPanel.java @@ -47,7 +47,7 @@ public class DataLogProfileEditorPanel extends ExceptionEqualsinaipackage { static String i = s.g.EqualsInAiPackage("Default"); - public g(ExceptionInVPackage parama) { + public DataLogProfileEditorPanel(ExceptionInVPackage parama) { this.e = parama; this.EqualsInAiPackage = new A(); setBorder(BorderFactory.createTitledBorder(s.g.EqualsInAiPackage("Data Log Profile Editor"))); diff --git a/app/src/main/java/com/efiAnalytics/tunerStudio/panels/IgnitionLoggerControlPanel.java b/app/src/main/java/com/efiAnalytics/tunerStudio/panels/IgnitionLoggerControlPanel.java index 40ff9ead..3bf5f000 100644 --- a/app/src/main/java/com/efiAnalytics/tunerStudio/panels/IgnitionLoggerControlPanel.java +++ b/app/src/main/java/com/efiAnalytics/tunerStudio/panels/IgnitionLoggerControlPanel.java @@ -52,7 +52,7 @@ class IgnitionLoggerControlPanel extends JPanel { TriggerLoggerPanel k; - public o(TriggerLoggerPanel paramTriggerLoggerPanel) { + public IgnitionLoggerControlPanel(TriggerLoggerPanel paramTriggerLoggerPanel) { this.k = paramTriggerLoggerPanel; setBorder(BorderFactory.createTitledBorder(SComponentGolf.b("Ignition Logger Controls"))); setLayout(new BorderLayout()); diff --git a/app/src/main/java/com/efiAnalytics/tunerStudio/search/DeviceSearchTable.java b/app/src/main/java/com/efiAnalytics/tunerStudio/search/DeviceSearchTable.java index 209565cc..fdce2bf5 100644 --- a/app/src/main/java/com/efiAnalytics/tunerStudio/search/DeviceSearchTable.java +++ b/app/src/main/java/com/efiAnalytics/tunerStudio/search/DeviceSearchTable.java @@ -60,7 +60,7 @@ public class DeviceSearchTable extends JTable implements S, eX { int h = 0; - public r() { + public DeviceSearchTable() { setModel(this.c); setSelectionMode(0); setRowSelectionAllowed(true); diff --git a/app/src/main/java/com/efiAnalytics/tunerStudio/search/MenuItemActionHandler.java b/app/src/main/java/com/efiAnalytics/tunerStudio/search/MenuItemActionHandler.java index d2bbf1e0..d8b6f8a0 100644 --- a/app/src/main/java/com/efiAnalytics/tunerStudio/search/MenuItemActionHandler.java +++ b/app/src/main/java/com/efiAnalytics/tunerStudio/search/MenuItemActionHandler.java @@ -5,7 +5,7 @@ import javax.swing.JMenuItem; public class MenuItemActionHandler implements l { JMenuItem a; - public h(JMenuItem paramJMenuItem) { + public MenuItemActionHandler(JMenuItem paramJMenuItem) { this.a = paramJMenuItem; } diff --git a/app/src/main/java/com/efiAnalytics/tunerStudio/search/ProjectFolder.java b/app/src/main/java/com/efiAnalytics/tunerStudio/search/ProjectFolder.java index 346e455d..9ac6cab1 100644 --- a/app/src/main/java/com/efiAnalytics/tunerStudio/search/ProjectFolder.java +++ b/app/src/main/java/com/efiAnalytics/tunerStudio/search/ProjectFolder.java @@ -5,7 +5,7 @@ import java.io.File; public class ProjectFolder { private File a; - public k(File paramFile) { + public ProjectFolder(File paramFile) { this.a = paramFile; } diff --git a/app/src/main/java/com/efiAnalytics/tunerStudio/search/SearchBoxPanel.java b/app/src/main/java/com/efiAnalytics/tunerStudio/search/SearchBoxPanel.java index c53d899f..970629a5 100644 --- a/app/src/main/java/com/efiAnalytics/tunerStudio/search/SearchBoxPanel.java +++ b/app/src/main/java/com/efiAnalytics/tunerStudio/search/SearchBoxPanel.java @@ -28,7 +28,7 @@ public class SearchBoxPanel extends JPanel { q e = null; - public m() { + public SearchBoxPanel() { setOpaque(false); this.b.setFont(this.a); this.b.setFocusCycleRoot(false); diff --git a/app/src/main/java/com/efiAnalytics/tunerStudio/search/SearchResultsPopup.java b/app/src/main/java/com/efiAnalytics/tunerStudio/search/SearchResultsPopup.java index dfc0c6d1..702246d8 100644 --- a/app/src/main/java/com/efiAnalytics/tunerStudio/search/SearchResultsPopup.java +++ b/app/src/main/java/com/efiAnalytics/tunerStudio/search/SearchResultsPopup.java @@ -21,7 +21,7 @@ public class SearchResultsPopup extends JWindow { List d = new ArrayList(); - public i() { + public SearchResultsPopup() { this.a.setLayout(new BoxLayout(this.a, 1)); JScrollPane jScrollPane = new JScrollPane(this.a); jScrollPane.setMaximumSize(new Dimension(this.b, this.c)); diff --git a/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/ControllerSelectorPanel.java b/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/ControllerSelectorPanel.java index 743f640f..2a52b3b1 100644 --- a/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/ControllerSelectorPanel.java +++ b/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/ControllerSelectorPanel.java @@ -37,7 +37,7 @@ public class ControllerSelectorPanel extends ck { private boolean e = false; - public ac(String[] paramArrayOfString, String paramString) { + public ControllerSelectorPanel(String[] paramArrayOfString, String paramString) { setBorder(BorderFactory.createTitledBorder("Controller")); this.c = new JPanel(); this.c.setLayout(new GridLayout(0, 1)); diff --git a/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/CurveFitControlPanel.java b/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/CurveFitControlPanel.java index 2948316b..0bc51987 100644 --- a/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/CurveFitControlPanel.java +++ b/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/CurveFitControlPanel.java @@ -37,7 +37,7 @@ public class CurveFitControlPanel extends JPanel { private String SComponentGolf = ""; - public a() { + public CurveFitControlPanel() { setLayout(new BorderLayout()); JPanel jPanel1 = new JPanel(); jPanel1.setLayout(new GridLayout(1, 0, eJ.a(5), eJ.a(5))); diff --git a/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/DatalogFieldSelectorPanel.java b/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/DatalogFieldSelectorPanel.java index 4ede044e..00e57d41 100644 --- a/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/DatalogFieldSelectorPanel.java +++ b/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/DatalogFieldSelectorPanel.java @@ -68,7 +68,7 @@ public class DatalogFieldSelectorPanel extends ExceptionEqualsinaipackage implem int m = 0; - public n(R paramR, GComponentAg paramag) { + public DatalogFieldSelectorPanel(R paramR, GComponentAg paramag) { this.ExceptionInVPackage = paramR; this.b = this.ExceptionInVPackage.c(paramag.ExceptionInVPackage()); this.c = this.ExceptionInVPackage.c(paramag.b()); diff --git a/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/DatalogFieldWrapper.java b/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/DatalogFieldWrapper.java index bcbc95b3..8888be45 100644 --- a/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/DatalogFieldWrapper.java +++ b/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/DatalogFieldWrapper.java @@ -15,12 +15,12 @@ class DatalogFieldWrapper { private boolean e = false; - public z(n paramn, SerializableImplExceptionprintstacktrace paramac, ArrayList paramArrayList) { + public DatalogFieldWrapper(n paramn, SerializableImplExceptionprintstacktrace paramac, ArrayList paramArrayList) { this.a = paramac; this.c = paramArrayList; } - public z(n paramn, GComponentAl paramal, ArrayList paramArrayList) { + public DatalogFieldWrapper(n paramn, GComponentAl paramal, ArrayList paramArrayList) { this.b = paramal; this.c = paramArrayList; } diff --git a/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/HelpBrowserPanel.java b/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/HelpBrowserPanel.java index 4a818141..cdc59e0c 100644 --- a/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/HelpBrowserPanel.java +++ b/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/HelpBrowserPanel.java @@ -13,7 +13,7 @@ import r.ExceptionInVPackage; public class HelpBrowserPanel extends JPanel { JPanelExtensionInAiPackage ExceptionInVPackage = null; - public ad() { + public HelpBrowserPanel() { this.ExceptionInVPackage = new JPanelExtensionInAiPackage(); setLayout(new BorderLayout()); add("Center", (Component)this.ExceptionInVPackage); diff --git a/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/ReplayFieldSelectorPanel.java b/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/ReplayFieldSelectorPanel.java index b2f54fd2..f1d3d9d8 100644 --- a/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/ReplayFieldSelectorPanel.java +++ b/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/ReplayFieldSelectorPanel.java @@ -52,7 +52,7 @@ public class ReplayFieldSelectorPanel extends ExceptionEqualsinaipackage impleme int ExceptionExtensionGetmessage = 0; - public ae(R paramR, GComponentBc parambc) { + public ReplayFieldSelectorPanel(R paramR, GComponentBc parambc) { this.ExceptionInVPackage = paramR; this.b = this.ExceptionInVPackage.c(parambc.d()); this.ExceptionPrintstacktrace = parambc.ExceptionInVPackage(); diff --git a/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/RequiredFuelCalculatorDialog.java b/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/RequiredFuelCalculatorDialog.java index c6341dbe..c87b2967 100644 --- a/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/RequiredFuelCalculatorDialog.java +++ b/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/RequiredFuelCalculatorDialog.java @@ -48,7 +48,7 @@ public class RequiredFuelCalculatorDialog extends JDialog { boolean i = false; - public an(Window paramWindow, R paramR, et paramet, BtInterfaceBz parambZ) { + public RequiredFuelCalculatorDialog(Window paramWindow, R paramR, et paramet, BtInterfaceBz parambZ) { super(paramWindow, ExceptionPrintstacktrace.b("Required Fuel Calculator")); this.k = paramet; this.h = paramR; diff --git a/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/TableAxisDisplayPanel.java b/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/TableAxisDisplayPanel.java index 8916075a..435b6688 100644 --- a/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/TableAxisDisplayPanel.java +++ b/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/TableAxisDisplayPanel.java @@ -42,7 +42,7 @@ public class TableAxisDisplayPanel extends JPanel implements GComponentCq, bc, T s j = null; - public aP(R paramR, s params, String paramString) { + public TableAxisDisplayPanel(R paramR, s params, String paramString) { this.ExceptionInVPackage = paramR; this.j = params; setLayout(new BorderLayout()); diff --git a/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/TablePanelItemWrapper.java b/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/TablePanelItemWrapper.java index 4b0beeca..c0f1450f 100644 --- a/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/TablePanelItemWrapper.java +++ b/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/TablePanelItemWrapper.java @@ -6,7 +6,7 @@ import java.util.ArrayList; class TablePanelItemWrapper { GComponentBb a = null; - public am(ae paramae, GComponentBb parambb) { + public TablePanelItemWrapper(ae paramae, GComponentBb parambb) { this.a = parambb; } diff --git a/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/TriggerConditionPanel.java b/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/TriggerConditionPanel.java index 82b41be1..f1e03e12 100644 --- a/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/TriggerConditionPanel.java +++ b/app/src/main/java/com/efiAnalytics/tuningwidgets/panels/TriggerConditionPanel.java @@ -48,7 +48,7 @@ class TriggerConditionPanel extends JPanel { boolean n; - public k(SComponentGolf paramg, R paramR, boolean paramBoolean1, boolean paramBoolean2) { + public TriggerConditionPanel(SComponentGolf paramg, R paramR, boolean paramBoolean1, boolean paramBoolean2) { ButtonGroup buttonGroup = new ButtonGroup(); this.n = RInterfaceIndia.a().a("sa0-0o0os-0o-0DS"); l l = new l(this, paramg); diff --git a/app/src/main/java/com/efiAnalytics/tuningwidgets/portEditor/PortEditorRowPanel.java b/app/src/main/java/com/efiAnalytics/tuningwidgets/portEditor/PortEditorRowPanel.java index dcfc75e7..f710e7c4 100644 --- a/app/src/main/java/com/efiAnalytics/tuningwidgets/portEditor/PortEditorRowPanel.java +++ b/app/src/main/java/com/efiAnalytics/tuningwidgets/portEditor/PortEditorRowPanel.java @@ -34,7 +34,7 @@ public class PortEditorRowPanel extends JPanel implements F, bc { int g = -1; - public z(R paramR, ArrayListExceptionprintstacktrace paramaS, int paramInt) { + public PortEditorRowPanel(R paramR, ArrayListExceptionprintstacktrace paramaS, int paramInt) { this.a = paramR; this.h = this.a.c(paramaS.h()); this.i = this.a.c(paramaS.i()); diff --git a/app/src/main/java/com/efiAnalytics/ui/AbstractChartComponent.java b/app/src/main/java/com/efiAnalytics/ui/AbstractChartComponent.java index 7f75f561..3cc368f2 100644 --- a/app/src/main/java/com/efiAnalytics/ui/AbstractChartComponent.java +++ b/app/src/main/java/com/efiAnalytics/ui/AbstractChartComponent.java @@ -60,7 +60,7 @@ public abstract class AbstractChartComponent extends JComponent { int h = eJ.a(25); - public aS() { + public AbstractChartComponent() { setBackground(Color.BLACK); setForeground(Color.lightGray); aT aT = new aT(this); diff --git a/app/src/main/java/com/efiAnalytics/ui/ArrowButtonPanel.java b/app/src/main/java/com/efiAnalytics/ui/ArrowButtonPanel.java index 40a90af6..2446a4b5 100644 --- a/app/src/main/java/com/efiAnalytics/ui/ArrowButtonPanel.java +++ b/app/src/main/java/com/efiAnalytics/ui/ArrowButtonPanel.java @@ -24,7 +24,7 @@ public class ArrowButtonPanel extends JPanel { Color e = null; - public fC() { + public ArrowButtonPanel() { a(); addMouseListener(new fD(this)); Color color = UIManager.getColor("Button.foreground"); diff --git a/app/src/main/java/com/efiAnalytics/ui/AxisSelectorButton.java b/app/src/main/java/com/efiAnalytics/ui/AxisSelectorButton.java index ba1abeb7..36653a2d 100644 --- a/app/src/main/java/com/efiAnalytics/ui/AxisSelectorButton.java +++ b/app/src/main/java/com/efiAnalytics/ui/AxisSelectorButton.java @@ -30,13 +30,13 @@ public class AxisSelectorButton extends JComponent { List b = new ArrayList(); - public fn(String paramString, Color paramColor) { + public AxisSelectorButton(String paramString, Color paramColor) { this(); this.d = paramString; this.e = paramColor; } - public fn() { + public AxisSelectorButton() { addMouseListener(new fo(this)); setForeground(UIManager.getColor("Label.foreground")); setBackground(UIManager.getColor("Label.background")); diff --git a/app/src/main/java/com/efiAnalytics/ui/BinTableCellPosition.java b/app/src/main/java/com/efiAnalytics/ui/BinTableCellPosition.java index 82b105e3..7296b20d 100644 --- a/app/src/main/java/com/efiAnalytics/ui/BinTableCellPosition.java +++ b/app/src/main/java/com/efiAnalytics/ui/BinTableCellPosition.java @@ -9,7 +9,7 @@ class BinTableCellPosition { double d; - public aM(BinTableView paramBinTableView, int paramInt1, int paramInt2, double paramDouble1, double paramDouble2) { + public BinTableCellPosition(BinTableView paramBinTableView, int paramInt1, int paramInt2, double paramDouble1, double paramDouble2) { this.a = paramInt1; this.b = paramInt2; this.c = paramDouble1; diff --git a/app/src/main/java/com/efiAnalytics/ui/BinTableCellRenderer.java b/app/src/main/java/com/efiAnalytics/ui/BinTableCellRenderer.java index 70b6bb1b..73514f17 100644 --- a/app/src/main/java/com/efiAnalytics/ui/BinTableCellRenderer.java +++ b/app/src/main/java/com/efiAnalytics/ui/BinTableCellRenderer.java @@ -32,7 +32,7 @@ class BinTableCellRenderer extends DefaultTableCellRenderer { Border h = BorderFactory.createEmptyBorder(0, 0, 0, 0); - public aD(BinTableView paramBinTableView1, BinTableView paramBinTableView2) { + public BinTableCellRenderer(BinTableView paramBinTableView1, BinTableView paramBinTableView2) { this.a = paramBinTableView2; UIDefaults uIDefaults = new UIDefaults(); uIDefaults.put("TextArea.borderPainter", new aE(this, paramBinTableView1)); diff --git a/app/src/main/java/com/efiAnalytics/ui/BinTableHeaderCellRenderer.java b/app/src/main/java/com/efiAnalytics/ui/BinTableHeaderCellRenderer.java index b2c49fa3..7c79c626 100644 --- a/app/src/main/java/com/efiAnalytics/ui/BinTableHeaderCellRenderer.java +++ b/app/src/main/java/com/efiAnalytics/ui/BinTableHeaderCellRenderer.java @@ -16,7 +16,7 @@ class BinTableHeaderCellRenderer extends DefaultTableCellRenderer { JTable d; - public aG(BinTableView paramBinTableView, JTable paramJTable) { + public BinTableHeaderCellRenderer(BinTableView paramBinTableView, JTable paramJTable) { this.d = paramJTable; setHorizontalAlignment(0); setForeground(Color.BLACK); diff --git a/app/src/main/java/com/efiAnalytics/ui/BinTablePaintThrottle.java b/app/src/main/java/com/efiAnalytics/ui/BinTablePaintThrottle.java index 33c5dbf8..53d29fa3 100644 --- a/app/src/main/java/com/efiAnalytics/ui/BinTablePaintThrottle.java +++ b/app/src/main/java/com/efiAnalytics/ui/BinTablePaintThrottle.java @@ -7,7 +7,7 @@ class BinTablePaintThrottle extends Thread { boolean c = false; - public aK(BinTableView paramBinTableView) { + public BinTablePaintThrottle(BinTableView paramBinTableView) { super("BinTablePaintThrottle"); setDaemon(true); start(); diff --git a/app/src/main/java/com/efiAnalytics/ui/ButtonCellEditorRenderer.java b/app/src/main/java/com/efiAnalytics/ui/ButtonCellEditorRenderer.java index 2dcd5bd5..90daf0d7 100644 --- a/app/src/main/java/com/efiAnalytics/ui/ButtonCellEditorRenderer.java +++ b/app/src/main/java/com/efiAnalytics/ui/ButtonCellEditorRenderer.java @@ -20,7 +20,7 @@ public class ButtonCellEditorRenderer extends AbstractCellEditor implements Tabl private final JButton d = new JButton(); - public eV() { + public ButtonCellEditorRenderer() { this.d.addActionListener(new eW(this)); } diff --git a/app/src/main/java/com/efiAnalytics/ui/CheckBoxMenuItemPropertyObserver.java b/app/src/main/java/com/efiAnalytics/ui/CheckBoxMenuItemPropertyObserver.java index e46a8d91..7aa55e6a 100644 --- a/app/src/main/java/com/efiAnalytics/ui/CheckBoxMenuItemPropertyObserver.java +++ b/app/src/main/java/com/efiAnalytics/ui/CheckBoxMenuItemPropertyObserver.java @@ -7,7 +7,7 @@ public class CheckBoxMenuItemPropertyObserver implements dR { String b = ""; - public ba(JCheckBoxMenuItem paramJCheckBoxMenuItem, String paramString) { + public CheckBoxMenuItemPropertyObserver(JCheckBoxMenuItem paramJCheckBoxMenuItem, String paramString) { this.a = paramJCheckBoxMenuItem; this.b = paramString; } diff --git a/app/src/main/java/com/efiAnalytics/ui/ColorChooserPanel.java b/app/src/main/java/com/efiAnalytics/ui/ColorChooserPanel.java index 1a806a6b..573d7dff 100644 --- a/app/src/main/java/com/efiAnalytics/ui/ColorChooserPanel.java +++ b/app/src/main/java/com/efiAnalytics/ui/ColorChooserPanel.java @@ -25,7 +25,7 @@ public class ColorChooserPanel extends JPanel implements bc { JButton f; - public bd() { + public ColorChooserPanel() { setLayout(new BorderLayout()); add("Center", this.a); JPanel jPanel = new JPanel(); diff --git a/app/src/main/java/com/efiAnalytics/ui/CommentBoxKeyDispatcher.java b/app/src/main/java/com/efiAnalytics/ui/CommentBoxKeyDispatcher.java index f5c4aa67..3220c77b 100644 --- a/app/src/main/java/com/efiAnalytics/ui/CommentBoxKeyDispatcher.java +++ b/app/src/main/java/com/efiAnalytics/ui/CommentBoxKeyDispatcher.java @@ -7,7 +7,7 @@ import java.awt.event.KeyEvent; class CommentBoxKeyDispatcher implements KeyEventDispatcher { Component a = null; - public bn(bi parambi, Component paramComponent) { + public CommentBoxKeyDispatcher(bi parambi, Component paramComponent) { this.a = paramComponent; } diff --git a/app/src/main/java/com/efiAnalytics/ui/CommentBoxWindow.java b/app/src/main/java/com/efiAnalytics/ui/CommentBoxWindow.java index aff1bdcb..dd8392de 100644 --- a/app/src/main/java/com/efiAnalytics/ui/CommentBoxWindow.java +++ b/app/src/main/java/com/efiAnalytics/ui/CommentBoxWindow.java @@ -37,12 +37,12 @@ public class CommentBoxWindow extends JWindow { boolean h = false; - public bi(Window paramWindow, String paramString) { + public CommentBoxWindow(Window paramWindow, String paramString) { this(paramWindow, paramString, false); a(); } - public bi(Window paramWindow, String paramString, boolean paramBoolean) { + public CommentBoxWindow(Window paramWindow, String paramString, boolean paramBoolean) { super(paramWindow); a(); setBackground(new Color(0, 0, 0, 0)); diff --git a/app/src/main/java/com/efiAnalytics/ui/CommentIconLabel.java b/app/src/main/java/com/efiAnalytics/ui/CommentIconLabel.java index 35c9d34f..2e5b6147 100644 --- a/app/src/main/java/com/efiAnalytics/ui/CommentIconLabel.java +++ b/app/src/main/java/com/efiAnalytics/ui/CommentIconLabel.java @@ -19,11 +19,11 @@ public class CommentIconLabel extends JLabel { private ab c = null; - public cI(String paramString) { + public CommentIconLabel(String paramString) { this(paramString, (ab)null); } - public cI(String paramString, ab paramab) { + public CommentIconLabel(String paramString, ab paramab) { this.b = paramString; this.c = paramab; try { diff --git a/app/src/main/java/com/efiAnalytics/ui/CommunicationIndicator.java b/app/src/main/java/com/efiAnalytics/ui/CommunicationIndicator.java index 897acc93..8ae0310d 100644 --- a/app/src/main/java/com/efiAnalytics/ui/CommunicationIndicator.java +++ b/app/src/main/java/com/efiAnalytics/ui/CommunicationIndicator.java @@ -48,11 +48,11 @@ public class CommunicationIndicator extends JLabel implements GInterfaceAg, GInt long l = System.currentTimeMillis(); - public ep() { + public CommunicationIndicator() { this(""); } - public ep(String paramString) { + public CommunicationIndicator(String paramString) { this.m = paramString; setMinimumSize(this.h); setPreferredSize(this.h); diff --git a/app/src/main/java/com/efiAnalytics/ui/CurveEditorComponent.java b/app/src/main/java/com/efiAnalytics/ui/CurveEditorComponent.java index 1f89827f..2f34ad29 100644 --- a/app/src/main/java/com/efiAnalytics/ui/CurveEditorComponent.java +++ b/app/src/main/java/com/efiAnalytics/ui/CurveEditorComponent.java @@ -165,7 +165,7 @@ public class CurveEditorComponent extends JComponent implements FocusListener { double F = 0.0D; - public bN() { + public CurveEditorComponent() { setBackground(Color.BLACK); setForeground(Color.WHITE); bO bO = new bO(this); diff --git a/app/src/main/java/com/efiAnalytics/ui/CustomButton.java b/app/src/main/java/com/efiAnalytics/ui/CustomButton.java index 93386a43..590407c1 100644 --- a/app/src/main/java/com/efiAnalytics/ui/CustomButton.java +++ b/app/src/main/java/com/efiAnalytics/ui/CustomButton.java @@ -66,14 +66,14 @@ public class CustomButton extends JComponent { boolean y = true; - public cp(String paramString) { + public CustomButton(String paramString) { this.a = paramString; enableEvents(16L); this.o = new Vector(); repaint(); } - public cp(String paramString, Image paramImage) { + public CustomButton(String paramString, Image paramImage) { this(paramString); this.b = this.b; this.p = paramImage; @@ -85,13 +85,13 @@ public class CustomButton extends JComponent { b(false); } - public cp(String paramString, Image paramImage, Dimension paramDimension) { + public CustomButton(String paramString, Image paramImage, Dimension paramDimension) { this(paramString, paramImage); if (paramDimension != null) this.r = paramDimension; } - public cp(String paramString, Image paramImage, Dimension paramDimension1, Dimension paramDimension2) { + public CustomButton(String paramString, Image paramImage, Dimension paramDimension1, Dimension paramDimension2) { this(paramString, paramImage, paramDimension1); this.t = paramDimension2; } diff --git a/app/src/main/java/com/efiAnalytics/ui/CustomGridLayout.java b/app/src/main/java/com/efiAnalytics/ui/CustomGridLayout.java index 666c1c7b..a7bc5f47 100644 --- a/app/src/main/java/com/efiAnalytics/ui/CustomGridLayout.java +++ b/app/src/main/java/com/efiAnalytics/ui/CustomGridLayout.java @@ -17,7 +17,7 @@ public class CustomGridLayout implements LayoutManager, Serializable { int d; - public cR() { + public CustomGridLayout() { this(1, 0, 0, 0); } diff --git a/app/src/main/java/com/efiAnalytics/ui/DataHistoryRenderer.java b/app/src/main/java/com/efiAnalytics/ui/DataHistoryRenderer.java index 36b33833..e6462c3d 100644 --- a/app/src/main/java/com/efiAnalytics/ui/DataHistoryRenderer.java +++ b/app/src/main/java/com/efiAnalytics/ui/DataHistoryRenderer.java @@ -35,7 +35,7 @@ public class DataHistoryRenderer { Stroke i = new BasicStroke(2.0F, 1, 2); - public dm(JComponent paramJComponent) { + public DataHistoryRenderer(JComponent paramJComponent) { this.b = paramJComponent; } diff --git a/app/src/main/java/com/efiAnalytics/ui/DropdownButton.java b/app/src/main/java/com/efiAnalytics/ui/DropdownButton.java index 1a56fe53..21001037 100644 --- a/app/src/main/java/com/efiAnalytics/ui/DropdownButton.java +++ b/app/src/main/java/com/efiAnalytics/ui/DropdownButton.java @@ -19,11 +19,11 @@ public class DropdownButton extends cp implements ItemSelectable, ActionListener JPopupMenu A = new JPopupMenu(); - public dc() { + public DropdownButton() { this(""); } - public dc(String paramString) { + public DropdownButton(String paramString) { super(paramString); add(this.A); a(this); diff --git a/app/src/main/java/com/efiAnalytics/ui/DynamicMenu.java b/app/src/main/java/com/efiAnalytics/ui/DynamicMenu.java index 89a3e526..a038cca5 100644 --- a/app/src/main/java/com/efiAnalytics/ui/DynamicMenu.java +++ b/app/src/main/java/com/efiAnalytics/ui/DynamicMenu.java @@ -3,9 +3,9 @@ package com.efiAnalytics.ui; import javax.swing.JMenu; public class DynamicMenu extends JMenu implements bq { - public bp() {} + public DynamicMenu() {} - public bp(String paramString) { + public DynamicMenu(String paramString) { super(paramString); } } diff --git a/app/src/main/java/com/efiAnalytics/ui/EditableListPanel.java b/app/src/main/java/com/efiAnalytics/ui/EditableListPanel.java index 07908f8b..8d38af22 100644 --- a/app/src/main/java/com/efiAnalytics/ui/EditableListPanel.java +++ b/app/src/main/java/com/efiAnalytics/ui/EditableListPanel.java @@ -43,7 +43,7 @@ public class EditableListPanel extends JPanel implements ListSelectionListener { public static String m = "Lower Item Index"; - public ei() { + public EditableListPanel() { this.a.setVisibleRowCount(4); this.a.setModel(this.b); this.a.addListSelectionListener(this); diff --git a/app/src/main/java/com/efiAnalytics/ui/EnhancedComboBox.java b/app/src/main/java/com/efiAnalytics/ui/EnhancedComboBox.java index 41753b08..64128b7d 100644 --- a/app/src/main/java/com/efiAnalytics/ui/EnhancedComboBox.java +++ b/app/src/main/java/com/efiAnalytics/ui/EnhancedComboBox.java @@ -10,7 +10,7 @@ public class EnhancedComboBox extends JComboBox { Color b = null; - public de() { + public EnhancedComboBox() { setDoubleBuffered(false); addMouseListener(new df(this)); addFocusListener(new dg(this)); diff --git a/app/src/main/java/com/efiAnalytics/ui/ExtensionFileFilter.java b/app/src/main/java/com/efiAnalytics/ui/ExtensionFileFilter.java index 0877ae74..2e84579c 100644 --- a/app/src/main/java/com/efiAnalytics/ui/ExtensionFileFilter.java +++ b/app/src/main/java/com/efiAnalytics/ui/ExtensionFileFilter.java @@ -8,7 +8,7 @@ public class ExtensionFileFilter extends FileFilter { String a = null; - public cx(String paramString) { + public ExtensionFileFilter(String paramString) { this.b = paramString; } diff --git a/app/src/main/java/com/efiAnalytics/ui/FieldPropertiesDialog.java b/app/src/main/java/com/efiAnalytics/ui/FieldPropertiesDialog.java index 032bd0a6..a164861a 100644 --- a/app/src/main/java/com/efiAnalytics/ui/FieldPropertiesDialog.java +++ b/app/src/main/java/com/efiAnalytics/ui/FieldPropertiesDialog.java @@ -39,7 +39,7 @@ public class FieldPropertiesDialog extends JDialog implements ActionListener { JComboBox h = null; - public cj(Frame paramFrame, n paramn, String paramString1, String paramString2, String paramString3) { + public FieldPropertiesDialog(Frame paramFrame, n paramn, String paramString1, String paramString2, String paramString3) { super(paramFrame, "Field Properties", true); this.g = paramFrame; setLayout(new BorderLayout()); diff --git a/app/src/main/java/com/efiAnalytics/ui/FloatPolygon.java b/app/src/main/java/com/efiAnalytics/ui/FloatPolygon.java index 61a88c04..ec84a6a6 100644 --- a/app/src/main/java/com/efiAnalytics/ui/FloatPolygon.java +++ b/app/src/main/java/com/efiAnalytics/ui/FloatPolygon.java @@ -22,7 +22,7 @@ public class FloatPolygon implements Shape, Serializable { private GeneralPath f; - public dL() { + public FloatPolygon() { this.b = new float[4]; this.c = new float[4]; } diff --git a/app/src/main/java/com/efiAnalytics/ui/GridSelectionWindow.java b/app/src/main/java/com/efiAnalytics/ui/GridSelectionWindow.java index 1884a0b0..503d3d23 100644 --- a/app/src/main/java/com/efiAnalytics/ui/GridSelectionWindow.java +++ b/app/src/main/java/com/efiAnalytics/ui/GridSelectionWindow.java @@ -19,7 +19,7 @@ public class GridSelectionWindow extends JWindow { ArrayList f = new ArrayList(); - public fc() { + public GridSelectionWindow() { setLayout(new GridLayout(this.e, this.d)); ff ff = new ff(this); for (byte b = 0; b < this.e; b++) { diff --git a/app/src/main/java/com/efiAnalytics/ui/HelpIconLabel.java b/app/src/main/java/com/efiAnalytics/ui/HelpIconLabel.java index 416e6a38..8d2d749b 100644 --- a/app/src/main/java/com/efiAnalytics/ui/HelpIconLabel.java +++ b/app/src/main/java/com/efiAnalytics/ui/HelpIconLabel.java @@ -18,11 +18,11 @@ public class HelpIconLabel extends JLabel { ab b; - public cF(String paramString, ab paramab) { + public HelpIconLabel(String paramString, ab paramab) { this(paramString, paramab, 32); } - public cF(String paramString, ab paramab, int paramInt) { + public HelpIconLabel(String paramString, ab paramab, int paramInt) { this.b = paramab; this.c = paramString; if (a == null) diff --git a/app/src/main/java/com/efiAnalytics/ui/HexByteTextArea.java b/app/src/main/java/com/efiAnalytics/ui/HexByteTextArea.java index ff8dc63b..a04574d4 100644 --- a/app/src/main/java/com/efiAnalytics/ui/HexByteTextArea.java +++ b/app/src/main/java/com/efiAnalytics/ui/HexByteTextArea.java @@ -22,7 +22,7 @@ public class HexByteTextArea extends JTextArea { private ArrayList e = new ArrayList(); - public aP() { + public HexByteTextArea() { setAutoscrolls(true); setFont(new Font("Monospaced", 0, 12)); setColumns(77); diff --git a/app/src/main/java/com/efiAnalytics/ui/ImagePreviewPanel.java b/app/src/main/java/com/efiAnalytics/ui/ImagePreviewPanel.java index 78f4e8e2..51f9762e 100644 --- a/app/src/main/java/com/efiAnalytics/ui/ImagePreviewPanel.java +++ b/app/src/main/java/com/efiAnalytics/ui/ImagePreviewPanel.java @@ -9,7 +9,7 @@ import java.io.File; public class ImagePreviewPanel extends ck { Image a = null; - public cl() { + public ImagePreviewPanel() { Dimension dimension = new Dimension(150, 200); setPreferredSize(dimension); setMinimumSize(dimension); diff --git a/app/src/main/java/com/efiAnalytics/ui/LabeledToolBar.java b/app/src/main/java/com/efiAnalytics/ui/LabeledToolBar.java index 633b08bf..8001c0c7 100644 --- a/app/src/main/java/com/efiAnalytics/ui/LabeledToolBar.java +++ b/app/src/main/java/com/efiAnalytics/ui/LabeledToolBar.java @@ -10,7 +10,7 @@ class LabeledToolBar extends JToolBar { Font b = new Font("Arial Unicode MS", 1, eJ.a(12)); - public ak(w paramw, String paramString) { + public LabeledToolBar(w paramw, String paramString) { super(paramString); } diff --git a/app/src/main/java/com/efiAnalytics/ui/LineChartComponent.java b/app/src/main/java/com/efiAnalytics/ui/LineChartComponent.java index e8d85622..975438e1 100644 --- a/app/src/main/java/com/efiAnalytics/ui/LineChartComponent.java +++ b/app/src/main/java/com/efiAnalytics/ui/LineChartComponent.java @@ -37,7 +37,7 @@ public class LineChartComponent extends AbstractChartComponent { double k = 0.0D; - public aU() { + public LineChartComponent() { addMouseListener(new aW(this)); } diff --git a/app/src/main/java/com/efiAnalytics/ui/LineGraphPanel.java b/app/src/main/java/com/efiAnalytics/ui/LineGraphPanel.java index a43810bc..24deb3f0 100644 --- a/app/src/main/java/com/efiAnalytics/ui/LineGraphPanel.java +++ b/app/src/main/java/com/efiAnalytics/ui/LineGraphPanel.java @@ -60,7 +60,7 @@ public class LineGraphPanel extends aS { private boolean B = true; - public cZ() { + public LineGraphPanel() { d(25); a(false); } diff --git a/app/src/main/java/com/efiAnalytics/ui/MessageDialog.java b/app/src/main/java/com/efiAnalytics/ui/MessageDialog.java index 5490341f..ae3f26fd 100644 --- a/app/src/main/java/com/efiAnalytics/ui/MessageDialog.java +++ b/app/src/main/java/com/efiAnalytics/ui/MessageDialog.java @@ -23,7 +23,7 @@ public class MessageDialog extends JDialog implements ActionListener { JButton c; - public dk(Frame paramFrame, String paramString, boolean paramBoolean) { + public MessageDialog(Frame paramFrame, String paramString, boolean paramBoolean) { super(paramFrame, "Message", true); setLayout(new BorderLayout()); Panel panel = new Panel(); diff --git a/app/src/main/java/com/efiAnalytics/ui/NavigationArrowPanel.java b/app/src/main/java/com/efiAnalytics/ui/NavigationArrowPanel.java index 19017397..399117c3 100644 --- a/app/src/main/java/com/efiAnalytics/ui/NavigationArrowPanel.java +++ b/app/src/main/java/com/efiAnalytics/ui/NavigationArrowPanel.java @@ -24,7 +24,7 @@ public class NavigationArrowPanel extends JPanel { Color e = null; - public cK() { + public NavigationArrowPanel() { a(); addMouseListener(new cL(this)); Color color = UIManager.getColor("Button.foreground"); diff --git a/app/src/main/java/com/efiAnalytics/ui/OkCancelApplyDialog.java b/app/src/main/java/com/efiAnalytics/ui/OkCancelApplyDialog.java index c0e868be..a77fbe24 100644 --- a/app/src/main/java/com/efiAnalytics/ui/OkCancelApplyDialog.java +++ b/app/src/main/java/com/efiAnalytics/ui/OkCancelApplyDialog.java @@ -12,7 +12,7 @@ import javax.swing.JPanel; public class OkCancelApplyDialog extends JDialog { ArrayList a = new ArrayList(); - public ct(Window paramWindow, JComponent paramJComponent, String paramString, a parama, int paramInt) { + public OkCancelApplyDialog(Window paramWindow, JComponent paramJComponent, String paramString, a parama, int paramInt) { super(paramWindow, paramString); setLayout(new BorderLayout()); a(parama); diff --git a/app/src/main/java/com/efiAnalytics/ui/PaintThrottleThread.java b/app/src/main/java/com/efiAnalytics/ui/PaintThrottleThread.java index a502b3a0..ff753db4 100644 --- a/app/src/main/java/com/efiAnalytics/ui/PaintThrottleThread.java +++ b/app/src/main/java/com/efiAnalytics/ui/PaintThrottleThread.java @@ -20,7 +20,7 @@ public class PaintThrottleThread extends Thread { Object c = new Object(); - public dD(Component paramComponent) { + public PaintThrottleThread(Component paramComponent) { super("Generic Paint Throttle"); setDaemon(true); this.f = paramComponent; diff --git a/app/src/main/java/com/efiAnalytics/ui/PdfViewerDialog.java b/app/src/main/java/com/efiAnalytics/ui/PdfViewerDialog.java index 87eac644..b1624e07 100644 --- a/app/src/main/java/com/efiAnalytics/ui/PdfViewerDialog.java +++ b/app/src/main/java/com/efiAnalytics/ui/PdfViewerDialog.java @@ -33,7 +33,7 @@ public class PdfViewerDialog { et c = null; - public dK(Window paramWindow) { + public PdfViewerDialog(Window paramWindow) { this.a = new SwingController(); Properties properties = new Properties(); properties.setProperty("application.showLocalStorageDialogs", Boolean.FALSE.toString()); diff --git a/app/src/main/java/com/efiAnalytics/ui/PersistentDialog.java b/app/src/main/java/com/efiAnalytics/ui/PersistentDialog.java index 4f4a9ff5..c097b838 100644 --- a/app/src/main/java/com/efiAnalytics/ui/PersistentDialog.java +++ b/app/src/main/java/com/efiAnalytics/ui/PersistentDialog.java @@ -13,15 +13,15 @@ public class PersistentDialog extends JDialog implements bc { private et a = null; - public dF(Window paramWindow, String paramString) { + public PersistentDialog(Window paramWindow, String paramString) { this(paramWindow, paramString, (aO)null); } - public dF(Window paramWindow, String paramString, aO paramaO) { + public PersistentDialog(Window paramWindow, String paramString, aO paramaO) { this(paramWindow, paramString, paramaO, false); } - public dF(Window paramWindow, String paramString, aO paramaO, boolean paramBoolean) { + public PersistentDialog(Window paramWindow, String paramString, aO paramaO, boolean paramBoolean) { super(paramWindow, paramString, JDialog.DEFAULT_MODALITY_TYPE); setModal(paramBoolean); this.o = paramaO; diff --git a/app/src/main/java/com/efiAnalytics/ui/ProgressBar.java b/app/src/main/java/com/efiAnalytics/ui/ProgressBar.java index b583e517..1e7d803f 100644 --- a/app/src/main/java/com/efiAnalytics/ui/ProgressBar.java +++ b/app/src/main/java/com/efiAnalytics/ui/ProgressBar.java @@ -20,7 +20,7 @@ public class ProgressBar extends JComponent { Color g = Color.red; - public dM() { + public ProgressBar() { dN dN = new dN(this); addMouseListener(dN); addMouseMotionListener(dN); diff --git a/app/src/main/java/com/efiAnalytics/ui/ProgressDialog.java b/app/src/main/java/com/efiAnalytics/ui/ProgressDialog.java index 01112c0f..5ad197db 100644 --- a/app/src/main/java/com/efiAnalytics/ui/ProgressDialog.java +++ b/app/src/main/java/com/efiAnalytics/ui/ProgressDialog.java @@ -17,7 +17,7 @@ public class ProgressDialog extends JDialog { JLabel c = new JLabel("", 0); - public eB(Window paramWindow, String paramString1, String paramString2, boolean paramBoolean1, boolean paramBoolean2) { + public ProgressDialog(Window paramWindow, String paramString1, String paramString2, boolean paramBoolean1, boolean paramBoolean2) { super(paramWindow, paramString1, JDialog.DEFAULT_MODALITY_TYPE); setModal(paramBoolean2); setLayout(new BorderLayout()); diff --git a/app/src/main/java/com/efiAnalytics/ui/ProgressPanel.java b/app/src/main/java/com/efiAnalytics/ui/ProgressPanel.java index 2f643a3d..3c30e5cf 100644 --- a/app/src/main/java/com/efiAnalytics/ui/ProgressPanel.java +++ b/app/src/main/java/com/efiAnalytics/ui/ProgressPanel.java @@ -38,7 +38,7 @@ public class ProgressPanel extends JPanel implements KeyListener, Serializable { int f = 550; - public dO() { + public ProgressPanel() { setLayout(new GridBagLayout()); setOpaque(false); this.a.setIndeterminate(true); diff --git a/app/src/main/java/com/efiAnalytics/ui/RangeSliderPanel.java b/app/src/main/java/com/efiAnalytics/ui/RangeSliderPanel.java index 931318ee..0be5c190 100644 --- a/app/src/main/java/com/efiAnalytics/ui/RangeSliderPanel.java +++ b/app/src/main/java/com/efiAnalytics/ui/RangeSliderPanel.java @@ -39,7 +39,7 @@ public class RangeSliderPanel extends JPanel { Rectangle n = null; - public cg() { + public RangeSliderPanel() { ch ch = new ch(this); addMouseMotionListener(ch); addMouseListener(ch); diff --git a/app/src/main/java/com/efiAnalytics/ui/RegistrationDialog.java b/app/src/main/java/com/efiAnalytics/ui/RegistrationDialog.java index f6232c34..248d42bf 100644 --- a/app/src/main/java/com/efiAnalytics/ui/RegistrationDialog.java +++ b/app/src/main/java/com/efiAnalytics/ui/RegistrationDialog.java @@ -71,7 +71,7 @@ public class RegistrationDialog extends JDialog implements ClipboardOwner { Clipboard n = Toolkit.getDefaultToolkit().getSystemClipboard(); - public dS(Window paramWindow, O paramO) { + public RegistrationDialog(Window paramWindow, O paramO) { super(paramWindow); setTitle(a("Enter Registration Information")); this.k = paramO; diff --git a/app/src/main/java/com/efiAnalytics/ui/SpinnerButtonPanel.java b/app/src/main/java/com/efiAnalytics/ui/SpinnerButtonPanel.java index b35311a3..3ac5e1aa 100644 --- a/app/src/main/java/com/efiAnalytics/ui/SpinnerButtonPanel.java +++ b/app/src/main/java/com/efiAnalytics/ui/SpinnerButtonPanel.java @@ -9,7 +9,7 @@ import javax.swing.JPanel; public class SpinnerButtonPanel extends JPanel { ArrayList a = new ArrayList(); - public ew() { + public SpinnerButtonPanel() { setLayout(new GridLayout(2, 1)); ez ez = new ez(this, 1); ez.setFocusable(false); diff --git a/app/src/main/java/com/efiAnalytics/ui/TabbedSettingsPanel.java b/app/src/main/java/com/efiAnalytics/ui/TabbedSettingsPanel.java index b40cd8b9..1c87585f 100644 --- a/app/src/main/java/com/efiAnalytics/ui/TabbedSettingsPanel.java +++ b/app/src/main/java/com/efiAnalytics/ui/TabbedSettingsPanel.java @@ -24,7 +24,7 @@ public class TabbedSettingsPanel extends JPanel { boolean f = false; - public ds(String paramString) { + public TabbedSettingsPanel(String paramString) { paramString = (paramString == null) ? "" : paramString; this.c = paramString; setLayout(new BorderLayout()); diff --git a/app/src/main/java/com/efiAnalytics/ui/Table3DColorMapPanel.java b/app/src/main/java/com/efiAnalytics/ui/Table3DColorMapPanel.java index cda5d17e..c5b82995 100644 --- a/app/src/main/java/com/efiAnalytics/ui/Table3DColorMapPanel.java +++ b/app/src/main/java/com/efiAnalytics/ui/Table3DColorMapPanel.java @@ -22,7 +22,7 @@ public class Table3DColorMapPanel extends JComponent { private Image g = null; - public cA() { + public Table3DColorMapPanel() { this.b = new dD(this); this.b.b(1000); setToolTipText("Hey"); diff --git a/app/src/main/java/com/efiAnalytics/ui/Table3DDataModel.java b/app/src/main/java/com/efiAnalytics/ui/Table3DDataModel.java index 016bda6f..9b79cd8c 100644 --- a/app/src/main/java/com/efiAnalytics/ui/Table3DDataModel.java +++ b/app/src/main/java/com/efiAnalytics/ui/Table3DDataModel.java @@ -33,7 +33,7 @@ public class Table3DDataModel { a(paramInt1, paramInt2); } - public eR() { + public Table3DDataModel() { a(1, 1); } diff --git a/app/src/main/java/com/efiAnalytics/ui/Table3DViewComponent.java b/app/src/main/java/com/efiAnalytics/ui/Table3DViewComponent.java index 37572b76..06a7baf1 100644 --- a/app/src/main/java/com/efiAnalytics/ui/Table3DViewComponent.java +++ b/app/src/main/java/com/efiAnalytics/ui/Table3DViewComponent.java @@ -88,7 +88,7 @@ public class Table3DViewComponent extends JComponent implements FocusListener { Stroke i = new BasicStroke(1.0F, 0, 2, 0.0F, new float[] { 1.0F, 2.0F }, 0.0F); - public eM() { + public Table3DViewComponent() { if (A.i().b()) { this.a = new eT(this); eP eP = new eP(this); diff --git a/app/src/main/java/com/efiAnalytics/ui/TableDataModel.java b/app/src/main/java/com/efiAnalytics/ui/TableDataModel.java index cb835fa4..4ec1ca59 100644 --- a/app/src/main/java/com/efiAnalytics/ui/TableDataModel.java +++ b/app/src/main/java/com/efiAnalytics/ui/TableDataModel.java @@ -48,7 +48,7 @@ public class TableDataModel implements WInterfaceAn, TableModel { private int f = 0; - public s() { + public TableDataModel() { a(16, 16); } diff --git a/app/src/main/java/com/efiAnalytics/ui/TableEditorPanel.java b/app/src/main/java/com/efiAnalytics/ui/TableEditorPanel.java index b026b487..88dba625 100644 --- a/app/src/main/java/com/efiAnalytics/ui/TableEditorPanel.java +++ b/app/src/main/java/com/efiAnalytics/ui/TableEditorPanel.java @@ -109,7 +109,7 @@ public class TableEditorPanel extends JPanel implements TableModelListener { ExceptionInVPackage(params); } - public w() { + public TableEditorPanel() { if (UIManager.getLookAndFeel().toString().contains("Nimbus")) { this.u = 2; } else { diff --git a/app/src/main/java/com/efiAnalytics/ui/TargetIndicatorComponent.java b/app/src/main/java/com/efiAnalytics/ui/TargetIndicatorComponent.java index 58254944..a7d16f9d 100644 --- a/app/src/main/java/com/efiAnalytics/ui/TargetIndicatorComponent.java +++ b/app/src/main/java/com/efiAnalytics/ui/TargetIndicatorComponent.java @@ -46,7 +46,7 @@ public class TargetIndicatorComponent extends JComponent { Font g = new Font("Dialog", 0, 12); - public aR() { + public TargetIndicatorComponent() { setBorder(BorderFactory.createLoweredBevelBorder()); } diff --git a/app/src/main/java/com/efiAnalytics/ui/TimestampDisplayLabel.java b/app/src/main/java/com/efiAnalytics/ui/TimestampDisplayLabel.java index 44312931..8bbbff3d 100644 --- a/app/src/main/java/com/efiAnalytics/ui/TimestampDisplayLabel.java +++ b/app/src/main/java/com/efiAnalytics/ui/TimestampDisplayLabel.java @@ -14,7 +14,7 @@ public class TimestampDisplayLabel extends JLabel { private boolean d = true; - public fj() { + public TimestampDisplayLabel() { setHorizontalAlignment(0); } diff --git a/app/src/main/java/com/efiAnalytics/ui/TruncatedPathLabel.java b/app/src/main/java/com/efiAnalytics/ui/TruncatedPathLabel.java index dd3c6219..715aae69 100644 --- a/app/src/main/java/com/efiAnalytics/ui/TruncatedPathLabel.java +++ b/app/src/main/java/com/efiAnalytics/ui/TruncatedPathLabel.java @@ -10,7 +10,7 @@ public class TruncatedPathLabel extends JLabel { double b = 0.0D; - public cn() { + public TruncatedPathLabel() { setFont(new Font("SansSerif", 0, eJ.a(11))); this.b = (getFontMetrics(getFont()).stringWidth("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") / 52); } diff --git a/app/src/main/java/com/efiAnalytics/ui/UserInputDialog.java b/app/src/main/java/com/efiAnalytics/ui/UserInputDialog.java index f0bde646..eadee734 100644 --- a/app/src/main/java/com/efiAnalytics/ui/UserInputDialog.java +++ b/app/src/main/java/com/efiAnalytics/ui/UserInputDialog.java @@ -32,7 +32,7 @@ public class UserInputDialog extends JDialog implements ActionListener { private ab g = null; - public fq(Window paramWindow, boolean paramBoolean, String paramString1, String paramString2, ab paramab) { + public UserInputDialog(Window paramWindow, boolean paramBoolean, String paramString1, String paramString2, ab paramab) { super(paramWindow, "User Input", Dialog.ModalityType.TOOLKIT_MODAL); this.f = paramBoolean; this.e = paramWindow; diff --git a/app/src/main/java/com/efiAnalytics/ui/UserParameterDialog.java b/app/src/main/java/com/efiAnalytics/ui/UserParameterDialog.java index 1545eb0c..e6b75a35 100644 --- a/app/src/main/java/com/efiAnalytics/ui/UserParameterDialog.java +++ b/app/src/main/java/com/efiAnalytics/ui/UserParameterDialog.java @@ -50,23 +50,23 @@ public class UserParameterDialog extends JDialog implements ActionListener { JPanel l = new JPanel(); - public fs(Window paramWindow, String paramString1, boolean paramBoolean1, String paramString2, boolean paramBoolean2) { + public UserParameterDialog(Window paramWindow, String paramString1, boolean paramBoolean1, String paramString2, boolean paramBoolean2) { this(paramWindow, paramString1, paramBoolean1, paramString2, paramBoolean2, (fx)null); } - public fs(Window paramWindow, String paramString1, boolean paramBoolean1, String paramString2, boolean paramBoolean2, String[] paramArrayOfString) { + public UserParameterDialog(Window paramWindow, String paramString1, boolean paramBoolean1, String paramString2, boolean paramBoolean2, String[] paramArrayOfString) { this(paramWindow, paramString1, paramBoolean1, paramString2, paramBoolean2, (fx)null, (fy)null, (ab)null, paramArrayOfString); } - public fs(Window paramWindow, String paramString1, boolean paramBoolean1, String paramString2, boolean paramBoolean2, fx paramfx) { + public UserParameterDialog(Window paramWindow, String paramString1, boolean paramBoolean1, String paramString2, boolean paramBoolean2, fx paramfx) { this(paramWindow, paramString1, paramBoolean1, paramString2, paramBoolean2, paramfx, (fy)null, (ab)null, (String[])null); } - public fs(Window paramWindow, String paramString1, boolean paramBoolean1, String paramString2, boolean paramBoolean2, fx paramfx, fy paramfy, ab paramab) { + public UserParameterDialog(Window paramWindow, String paramString1, boolean paramBoolean1, String paramString2, boolean paramBoolean2, fx paramfx, fy paramfy, ab paramab) { this(paramWindow, paramString1, paramBoolean1, paramString2, paramBoolean2, paramfx, paramfy, paramab, (String[])null); } - public fs(Window paramWindow, String paramString1, boolean paramBoolean1, String paramString2, boolean paramBoolean2, fx paramfx, fy paramfy, ab paramab, String[] paramArrayOfString) { + public UserParameterDialog(Window paramWindow, String paramString1, boolean paramBoolean1, String paramString2, boolean paramBoolean2, fx paramfx, fy paramfy, ab paramab, String[] paramArrayOfString) { super(paramWindow, "User Parameter", Dialog.ModalityType.DOCUMENT_MODAL); this.n = paramab; setTitle(a("")); diff --git a/app/src/main/java/com/efiAnalytics/ui/VerticalLabel.java b/app/src/main/java/com/efiAnalytics/ui/VerticalLabel.java index e8f5773e..e5e92069 100644 --- a/app/src/main/java/com/efiAnalytics/ui/VerticalLabel.java +++ b/app/src/main/java/com/efiAnalytics/ui/VerticalLabel.java @@ -10,9 +10,9 @@ public class VerticalLabel extends JLabel { private Dimension b = null; - public fF() {} + public VerticalLabel() {} - public fF(String paramString) { + public VerticalLabel(String paramString) { setText(paramString); repaint(); } diff --git a/app/src/main/java/com/efiAnalytics/ui/WaitBarComponent.java b/app/src/main/java/com/efiAnalytics/ui/WaitBarComponent.java index e7af34c0..0d198e5f 100644 --- a/app/src/main/java/com/efiAnalytics/ui/WaitBarComponent.java +++ b/app/src/main/java/com/efiAnalytics/ui/WaitBarComponent.java @@ -20,7 +20,7 @@ public class WaitBarComponent extends JComponent { fI d = null; - public fH() { + public WaitBarComponent() { setMinimumSize(new Dimension(100, eJ.a(4))); setPreferredSize(new Dimension(100, eJ.a(4))); setOpaque(true); diff --git a/app/src/main/java/com/efiAnalytics/ui/WebViewPanel.java b/app/src/main/java/com/efiAnalytics/ui/WebViewPanel.java index eb024b51..bae9256b 100644 --- a/app/src/main/java/com/efiAnalytics/ui/WebViewPanel.java +++ b/app/src/main/java/com/efiAnalytics/ui/WebViewPanel.java @@ -21,7 +21,7 @@ public class WebViewPanel extends JPanel { private WebEngine e; - public eD() { + public WebViewPanel() { a(); } diff --git a/app/src/main/java/com/efiAnalytics/ui/WizardDialogCallback.java b/app/src/main/java/com/efiAnalytics/ui/WizardDialogCallback.java index 79486392..77f7e6fc 100644 --- a/app/src/main/java/com/efiAnalytics/ui/WizardDialogCallback.java +++ b/app/src/main/java/com/efiAnalytics/ui/WizardDialogCallback.java @@ -6,7 +6,7 @@ import javax.swing.JDialog; class WizardDialogCallback implements fS { JDialog a = null; - public fP(fL paramfL, JDialog paramJDialog) { + public WizardDialogCallback(fL paramfL, JDialog paramJDialog) { this.a = paramJDialog; } diff --git a/app/src/main/java/com/efiAnalytics/ui/WizardPanel.java b/app/src/main/java/com/efiAnalytics/ui/WizardPanel.java index 54c08587..2b344319 100644 --- a/app/src/main/java/com/efiAnalytics/ui/WizardPanel.java +++ b/app/src/main/java/com/efiAnalytics/ui/WizardPanel.java @@ -37,15 +37,15 @@ public class WizardPanel extends JPanel { ArrayList h = new ArrayList(); - public fL() { + public WizardPanel() { this((String)null); } - public fL(String paramString) { + public WizardPanel(String paramString) { this(paramString, (ab)null); } - public fL(String paramString, ab paramab) { + public WizardPanel(String paramString, ab paramab) { a(paramab); paramString = (paramString == null) ? "" : a(paramString); setBorder(BorderFactory.createEmptyBorder(5, 5, 25, 5)); diff --git a/app/src/main/java/com/efiAnalytics/ui/YAxisSelectorPanel.java b/app/src/main/java/com/efiAnalytics/ui/YAxisSelectorPanel.java index 45104975..e8be9f7c 100644 --- a/app/src/main/java/com/efiAnalytics/ui/YAxisSelectorPanel.java +++ b/app/src/main/java/com/efiAnalytics/ui/YAxisSelectorPanel.java @@ -15,7 +15,7 @@ public class YAxisSelectorPanel extends JPanel { int c = -1; - public fl() { + public YAxisSelectorPanel() { setLayout((LayoutManager)this.ManagerRemovelayoutcomponent); this.ManagerRemovelayoutcomponent.ManagerRemovelayoutcomponent(false); String str = "Y Axis Selectors"; diff --git a/app/src/main/java/com/efiAnalytics/xcp/master/responseProcessors/OdtDataProcessor.java b/app/src/main/java/com/efiAnalytics/xcp/master/responseProcessors/OdtDataProcessor.java index d01678fe..18f604a7 100644 --- a/app/src/main/java/com/efiAnalytics/xcp/master/responseProcessors/OdtDataProcessor.java +++ b/app/src/main/java/com/efiAnalytics/xcp/master/responseProcessors/OdtDataProcessor.java @@ -34,7 +34,7 @@ public class OdtDataProcessor { int g = 0; - public b(GInterfaceAi paramaI, BoInterfaceLima paraml, BqInterfaceEcho parame) { + public OdtDataProcessor(GInterfaceAi paramaI, BoInterfaceLima paraml, BqInterfaceEcho parame) { this.a = parame; this.b = paramaI; this.TostringInBoPackage = paraml; diff --git a/app/src/main/java/com/efiAnalytics/xcp/master/responseProcessors/PcVariableRefreshRequest.java b/app/src/main/java/com/efiAnalytics/xcp/master/responseProcessors/PcVariableRefreshRequest.java index 91529004..c67e3138 100644 --- a/app/src/main/java/com/efiAnalytics/xcp/master/responseProcessors/PcVariableRefreshRequest.java +++ b/app/src/main/java/com/efiAnalytics/xcp/master/responseProcessors/PcVariableRefreshRequest.java @@ -11,7 +11,7 @@ class PcVariableRefreshRequest { this.b = paramR; } - public i(g paramg, R paramR, String paramString) { + public PcVariableRefreshRequest(g paramg, R paramR, String paramString) { this.b = paramR; this.c = paramString; } diff --git a/app/src/main/java/core/core_events/BitStringValueProvider.java b/app/src/main/java/core/core_events/BitStringValueProvider.java index 0c977c97..81209c99 100644 --- a/app/src/main/java/core/core_events/BitStringValueProvider.java +++ b/app/src/main/java/core/core_events/BitStringValueProvider.java @@ -23,7 +23,7 @@ public class BitStringValueProvider implements db, Serializable { StringBuffer e = new StringBuffer(); - public d(cZ paramcZ, String paramString1, String paramString2) { + public BitStringValueProvider(cZ paramcZ, String paramString1, String paramString2) { this.c = paramcZ; this.d = paramString1; this.b = paramString2; diff --git a/app/src/main/java/core/core_events/CommandResponse.java b/app/src/main/java/core/core_events/CommandResponse.java index af23687a..56f47d8f 100644 --- a/app/src/main/java/core/core_events/CommandResponse.java +++ b/app/src/main/java/core/core_events/CommandResponse.java @@ -23,7 +23,7 @@ public class CommandResponse { b(paramm.v().u()); } - public o() {} + public CommandResponse() {} public int a() { return this.a; diff --git a/app/src/main/java/core/core_events/CommsProfile.java b/app/src/main/java/core/core_events/CommsProfile.java index e454a745..e56cef16 100644 --- a/app/src/main/java/core/core_events/CommsProfile.java +++ b/app/src/main/java/core/core_events/CommsProfile.java @@ -14,9 +14,9 @@ public class CommsProfile extends Q implements R, Serializable { private R e = null; - public r() {} + public CommsProfile() {} - public r(String paramString) { + public CommsProfile(String paramString) { v(paramString); } diff --git a/app/src/main/java/core/core_events/DataRangeEntry.java b/app/src/main/java/core/core_events/DataRangeEntry.java index a32c825e..b35445c0 100644 --- a/app/src/main/java/core/core_events/DataRangeEntry.java +++ b/app/src/main/java/core/core_events/DataRangeEntry.java @@ -9,7 +9,7 @@ public class DataRangeEntry implements Serializable { private String c; - public y(String paramString, int paramInt1, int paramInt2) { + public DataRangeEntry(String paramString, int paramInt1, int paramInt2) { this.c = paramString; this.a = paramInt1; this.b = paramInt2; diff --git a/app/src/main/java/core/core_events/GenericException.java b/app/src/main/java/core/core_events/GenericException.java index 6e5387aa..dc881ffd 100644 --- a/app/src/main/java/core/core_events/GenericException.java +++ b/app/src/main/java/core/core_events/GenericException.java @@ -1,7 +1,7 @@ package G; public class GenericException extends Exception { - public q(String paramString) { + public GenericException(String paramString) { super(paramString); } } diff --git a/app/src/main/java/core/core_events/PageIndexException.java b/app/src/main/java/core/core_events/PageIndexException.java index 553fc0d9..0c63569a 100644 --- a/app/src/main/java/core/core_events/PageIndexException.java +++ b/app/src/main/java/core/core_events/PageIndexException.java @@ -7,7 +7,7 @@ public class PageIndexException extends Exception { private boolean c = true; - public l(String paramString) { + public PageIndexException(String paramString) { super(paramString); } diff --git a/app/src/main/java/core/core_events/SimpleStringValueProvider.java b/app/src/main/java/core/core_events/SimpleStringValueProvider.java index e178afb6..df296c93 100644 --- a/app/src/main/java/core/core_events/SimpleStringValueProvider.java +++ b/app/src/main/java/core/core_events/SimpleStringValueProvider.java @@ -5,9 +5,9 @@ import java.io.Serializable; public class SimpleStringValueProvider implements db, Serializable { String a = ""; - public c() {} + public SimpleStringValueProvider() {} - public c(String paramString) { + public SimpleStringValueProvider(String paramString) { a(paramString); } diff --git a/app/src/main/java/core/core_interfaces_bt/IndicatorReadoutPanel.java b/app/src/main/java/core/core_interfaces_bt/IndicatorReadoutPanel.java index 93c3861f..12645d19 100644 --- a/app/src/main/java/core/core_interfaces_bt/IndicatorReadoutPanel.java +++ b/app/src/main/java/core/core_interfaces_bt/IndicatorReadoutPanel.java @@ -38,7 +38,7 @@ public class IndicatorReadoutPanel extends bh implements ca, RefreshableComponen GInterfaceBt e; - public r(R paramR, GInterfaceBt parambt) { + public IndicatorReadoutPanel(R paramR, GInterfaceBt parambt) { this.d = paramR; this.e = parambt; ExceptionInVPackage(paramR); diff --git a/app/src/main/java/rendering/signal_processing/AbstractListFunction.java b/app/src/main/java/rendering/signal_processing/AbstractListFunction.java index ddfbcce5..0ffac609 100644 --- a/app/src/main/java/rendering/signal_processing/AbstractListFunction.java +++ b/app/src/main/java/rendering/signal_processing/AbstractListFunction.java @@ -7,7 +7,7 @@ import java.util.List; public abstract class AbstractListFunction extends AbstractInAxPackage { List b; - protected r(List paramList) { + protected AbstractListFunction(List paramList) { this.b = paramList; } diff --git a/app/src/main/java/rendering/signal_processing/AccelHpFunction.java b/app/src/main/java/rendering/signal_processing/AccelHpFunction.java index b8ee9ba9..e23b40db 100644 --- a/app/src/main/java/rendering/signal_processing/AccelHpFunction.java +++ b/app/src/main/java/rendering/signal_processing/AccelHpFunction.java @@ -13,7 +13,7 @@ public class AccelHpFunction extends AbstractInAxPackage { AxInterfaceAb d; - protected a(AxInterfaceAb paramab1, AxInterfaceAb paramab2, AxInterfaceAb paramab3, AxInterfaceAb paramab4) { + protected AccelHpFunction(AxInterfaceAb paramab1, AxInterfaceAb paramab2, AxInterfaceAb paramab3, AxInterfaceAb paramab4) { this.b = paramab1; this.a = paramab2; this.c = paramab3; diff --git a/app/src/main/java/rendering/signal_processing/AccumulateFunction.java b/app/src/main/java/rendering/signal_processing/AccumulateFunction.java index afe85a97..e35024ee 100644 --- a/app/src/main/java/rendering/signal_processing/AccumulateFunction.java +++ b/app/src/main/java/rendering/signal_processing/AccumulateFunction.java @@ -16,12 +16,12 @@ public class AccumulateFunction extends AbstractInAxPackage implements GInterfac double e = Double.NaN; - protected b(AxInterfaceAb paramab1, AxInterfaceAb paramab2) { + protected AccumulateFunction(AxInterfaceAb paramab1, AxInterfaceAb paramab2) { this.a = paramab2; this.b = paramab1; } - protected b(AxInterfaceAb paramab1, AxInterfaceAb paramab2, AxInterfaceAb paramab3) { + protected AccumulateFunction(AxInterfaceAb paramab1, AxInterfaceAb paramab2, AxInterfaceAb paramab3) { this.a = paramab2; this.b = paramab1; this.c = paramab3; diff --git a/app/src/main/java/rendering/signal_processing/AerodynamicDragHpFunction.java b/app/src/main/java/rendering/signal_processing/AerodynamicDragHpFunction.java index 57e2d623..bc121bc1 100644 --- a/app/src/main/java/rendering/signal_processing/AerodynamicDragHpFunction.java +++ b/app/src/main/java/rendering/signal_processing/AerodynamicDragHpFunction.java @@ -13,7 +13,7 @@ public class AerodynamicDragHpFunction extends AbstractInAxPackage { AxInterfaceAb d; - protected c(AxInterfaceAb paramab1, AxInterfaceAb paramab2, AxInterfaceAb paramab3, AxInterfaceAb paramab4) { + protected AerodynamicDragHpFunction(AxInterfaceAb paramab1, AxInterfaceAb paramab2, AxInterfaceAb paramab3, AxInterfaceAb paramab4) { this.b = paramab1; this.a = paramab2; this.c = paramab3; diff --git a/app/src/main/java/rendering/signal_processing/ArrayLookupFunction.java b/app/src/main/java/rendering/signal_processing/ArrayLookupFunction.java index dc36b35d..262e256b 100644 --- a/app/src/main/java/rendering/signal_processing/ArrayLookupFunction.java +++ b/app/src/main/java/rendering/signal_processing/ArrayLookupFunction.java @@ -17,7 +17,7 @@ public class ArrayLookupFunction extends AbstractInAxPackage { GInterfaceAi d; - public d(GInterfaceAi paramaI, AxInterfaceAb paramab1, AxInterfaceAb paramab2) { + public ArrayLookupFunction(GInterfaceAi paramaI, AxInterfaceAb paramab1, AxInterfaceAb paramab2) { this.a = paramab2; this.b = paramab1; this.d = paramaI; diff --git a/app/src/main/java/rendering/signal_processing/AverageFunction.java b/app/src/main/java/rendering/signal_processing/AverageFunction.java index d166d8f1..fab1428c 100644 --- a/app/src/main/java/rendering/signal_processing/AverageFunction.java +++ b/app/src/main/java/rendering/signal_processing/AverageFunction.java @@ -8,7 +8,7 @@ import java.util.List; public class AverageFunction extends AbstractInAxPackage { List a; - protected e(List paramList) { + protected AverageFunction(List paramList) { this.a = paramList; } diff --git a/app/src/main/java/rendering/signal_processing/ChannelDigitsByOffset.java b/app/src/main/java/rendering/signal_processing/ChannelDigitsByOffset.java index dc672344..2e1ef7cf 100644 --- a/app/src/main/java/rendering/signal_processing/ChannelDigitsByOffset.java +++ b/app/src/main/java/rendering/signal_processing/ChannelDigitsByOffset.java @@ -25,12 +25,12 @@ public class ChannelDigitsByOffset extends AbstractInAxPackage { double g = Double.NaN; - public t(AxInterfaceAb paramab1, AxInterfaceAb paramab2) { + public ChannelDigitsByOffset(AxInterfaceAb paramab1, AxInterfaceAb paramab2) { this.d = paramab1; this.b = paramab2; } - public t(GInterfaceAi paramaI, AxInterfaceAb paramab) { + public ChannelDigitsByOffset(GInterfaceAi paramaI, AxInterfaceAb paramab) { this.a = paramaI; this.b = paramab; } diff --git a/app/src/main/java/rendering/signal_processing/ChannelMaxByOffset.java b/app/src/main/java/rendering/signal_processing/ChannelMaxByOffset.java index 852789e9..158c442a 100644 --- a/app/src/main/java/rendering/signal_processing/ChannelMaxByOffset.java +++ b/app/src/main/java/rendering/signal_processing/ChannelMaxByOffset.java @@ -25,12 +25,12 @@ public class ChannelMaxByOffset extends AbstractInAxPackage { double g = Double.NaN; - public u(AxInterfaceAb paramab1, AxInterfaceAb paramab2) { + public ChannelMaxByOffset(AxInterfaceAb paramab1, AxInterfaceAb paramab2) { this.d = paramab1; this.b = paramab2; } - public u(GInterfaceAi paramaI, AxInterfaceAb paramab) { + public ChannelMaxByOffset(GInterfaceAi paramaI, AxInterfaceAb paramab) { this.a = paramaI; this.b = paramab; } diff --git a/app/src/main/java/rendering/signal_processing/ChannelMinByOffset.java b/app/src/main/java/rendering/signal_processing/ChannelMinByOffset.java index 5b438783..d48630f2 100644 --- a/app/src/main/java/rendering/signal_processing/ChannelMinByOffset.java +++ b/app/src/main/java/rendering/signal_processing/ChannelMinByOffset.java @@ -25,12 +25,12 @@ public class ChannelMinByOffset extends AbstractInAxPackage { double g = Double.NaN; - public v(AxInterfaceAb paramab1, AxInterfaceAb paramab2) { + public ChannelMinByOffset(AxInterfaceAb paramab1, AxInterfaceAb paramab2) { this.d = paramab1; this.b = paramab2; } - public v(GInterfaceAi paramaI, AxInterfaceAb paramab) { + public ChannelMinByOffset(GInterfaceAi paramaI, AxInterfaceAb paramab) { this.a = paramaI; this.b = paramab; } diff --git a/app/src/main/java/rendering/signal_processing/ChannelScaleByOffset.java b/app/src/main/java/rendering/signal_processing/ChannelScaleByOffset.java index e3e4d288..14702192 100644 --- a/app/src/main/java/rendering/signal_processing/ChannelScaleByOffset.java +++ b/app/src/main/java/rendering/signal_processing/ChannelScaleByOffset.java @@ -25,12 +25,12 @@ public class ChannelScaleByOffset extends AbstractInAxPackage { double g = Double.NaN; - public w(AxInterfaceAb paramab1, AxInterfaceAb paramab2) { + public ChannelScaleByOffset(AxInterfaceAb paramab1, AxInterfaceAb paramab2) { this.d = paramab1; this.b = paramab2; } - public w(GInterfaceAi paramaI, AxInterfaceAb paramab) { + public ChannelScaleByOffset(GInterfaceAi paramaI, AxInterfaceAb paramab) { this.a = paramaI; this.b = paramab; } diff --git a/app/src/main/java/rendering/signal_processing/ChannelTranslateByOffset.java b/app/src/main/java/rendering/signal_processing/ChannelTranslateByOffset.java index 6245f63d..0c82d0a1 100644 --- a/app/src/main/java/rendering/signal_processing/ChannelTranslateByOffset.java +++ b/app/src/main/java/rendering/signal_processing/ChannelTranslateByOffset.java @@ -25,12 +25,12 @@ public class ChannelTranslateByOffset extends AbstractInAxPackage { double g = Double.NaN; - public x(AxInterfaceAb paramab1, AxInterfaceAb paramab2) { + public ChannelTranslateByOffset(AxInterfaceAb paramab1, AxInterfaceAb paramab2) { this.d = paramab1; this.b = paramab2; } - public x(GInterfaceAi paramaI, AxInterfaceAb paramab) { + public ChannelTranslateByOffset(GInterfaceAi paramaI, AxInterfaceAb paramab) { this.a = paramaI; this.b = paramab; } diff --git a/app/src/main/java/rendering/signal_processing/ChannelValueByOffset.java b/app/src/main/java/rendering/signal_processing/ChannelValueByOffset.java index 53886e13..f4d0f77f 100644 --- a/app/src/main/java/rendering/signal_processing/ChannelValueByOffset.java +++ b/app/src/main/java/rendering/signal_processing/ChannelValueByOffset.java @@ -29,12 +29,12 @@ public class ChannelValueByOffset extends AbstractInAxPackage implements GCompon double g = Double.NaN; - public s(AxInterfaceAb paramab1, AxInterfaceAb paramab2) { + public ChannelValueByOffset(AxInterfaceAb paramab1, AxInterfaceAb paramab2) { this.d = paramab1; this.b = paramab2; } - public s(GInterfaceAi paramaI, AxInterfaceAb paramab) { + public ChannelValueByOffset(GInterfaceAi paramaI, AxInterfaceAb paramab) { this.ExceptionInVPackage = paramaI; this.b = paramab; } diff --git a/app/src/main/java/rendering/signal_processing/DummyFunctionFactory.java b/app/src/main/java/rendering/signal_processing/DummyFunctionFactory.java index 20897367..cd2b645e 100644 --- a/app/src/main/java/rendering/signal_processing/DummyFunctionFactory.java +++ b/app/src/main/java/rendering/signal_processing/DummyFunctionFactory.java @@ -8,7 +8,7 @@ import java.util.List; public class DummyFunctionFactory extends AbstractInAxPackage { private static m a = null; - public m() { + public DummyFunctionFactory() { D.c("Dummy Function Factory Created."); } diff --git a/app/src/main/java/rendering/signal_processing/ExpressionParser.java b/app/src/main/java/rendering/signal_processing/ExpressionParser.java index a02968d7..19e30c2a 100644 --- a/app/src/main/java/rendering/signal_processing/ExpressionParser.java +++ b/app/src/main/java/rendering/signal_processing/ExpressionParser.java @@ -19,7 +19,7 @@ public class ExpressionParser extends ArrayListUsingPattern { private static String f = "array."; - public k(GInterfaceAi paramaI) { + public ExpressionParser(GInterfaceAi paramaI) { this.b = paramaI; if (c == null) { c = new h(paramaI); diff --git a/app/src/main/java/rendering/signal_processing/TunerStudioFunctionFactory.java b/app/src/main/java/rendering/signal_processing/TunerStudioFunctionFactory.java index b7457005..15278340 100644 --- a/app/src/main/java/rendering/signal_processing/TunerStudioFunctionFactory.java +++ b/app/src/main/java/rendering/signal_processing/TunerStudioFunctionFactory.java @@ -17,7 +17,7 @@ public class TunerStudioFunctionFactory extends AbstractInAxPackage { AxInterfaceAb a; - public h(GInterfaceAi paramaI) { + public TunerStudioFunctionFactory(GInterfaceAi paramaI) { this.b = paramaI; this.a = (n.a()).a; } diff --git a/app/src/main/java/ui/widget_base/CompressingOutputStream.java b/app/src/main/java/ui/widget_base/CompressingOutputStream.java index 4b119855..cf9313be 100644 --- a/app/src/main/java/ui/widget_base/CompressingOutputStream.java +++ b/app/src/main/java/ui/widget_base/CompressingOutputStream.java @@ -13,7 +13,7 @@ public class CompressingOutputStream extends OutputStream { boolean c = false; - public y(OutputStream paramOutputStream) { + public CompressingOutputStream(OutputStream paramOutputStream) { this.a = paramOutputStream; } diff --git a/app/src/main/java/ui/widget_base/EcuDefinitionUpdateThread.java b/app/src/main/java/ui/widget_base/EcuDefinitionUpdateThread.java index 13d51080..29380b50 100644 --- a/app/src/main/java/ui/widget_base/EcuDefinitionUpdateThread.java +++ b/app/src/main/java/ui/widget_base/EcuDefinitionUpdateThread.java @@ -10,7 +10,7 @@ class EcuDefinitionUpdateThread extends Thread { File c; - public x(String paramString, double paramDouble, File paramFile) { + public EcuDefinitionUpdateThread(String paramString, double paramDouble, File paramFile) { this.a = paramString; this.b = paramDouble; this.c = paramFile; diff --git a/app/src/main/java/ui/widget_base/EncodedDataLoader.java b/app/src/main/java/ui/widget_base/EncodedDataLoader.java index 0c7883cd..08bae5fd 100644 --- a/app/src/main/java/ui/widget_base/EncodedDataLoader.java +++ b/app/src/main/java/ui/widget_base/EncodedDataLoader.java @@ -18,7 +18,7 @@ class EncodedDataLoader implements GInterfaceBq { R c; - public f(R paramR, File paramFile1, File paramFile2) { + public EncodedDataLoader(R paramR, File paramFile1, File paramFile2) { this.c = paramR; this.a = paramFile2; this.b = paramFile1; diff --git a/app/src/main/java/ui/widget_base/EnumValueFormatter.java b/app/src/main/java/ui/widget_base/EnumValueFormatter.java index a789a575..b85e684d 100644 --- a/app/src/main/java/ui/widget_base/EnumValueFormatter.java +++ b/app/src/main/java/ui/widget_base/EnumValueFormatter.java @@ -5,7 +5,7 @@ import java.util.List; public class EnumValueFormatter implements ValueFormatter { private String[] a; - public l(List paramList) { + public EnumValueFormatter(List paramList) { this.a = (String[])paramList.toArray((Object[])new String[0]); } diff --git a/app/src/main/java/ui/widget_base/LogChannel.java b/app/src/main/java/ui/widget_base/LogChannel.java index 165f3140..e171b782 100644 --- a/app/src/main/java/ui/widget_base/LogChannel.java +++ b/app/src/main/java/ui/widget_base/LogChannel.java @@ -69,16 +69,16 @@ public class LogChannel implements R { private boolean C = true; - public j() { + public LogChannel() { this.d = new L(); } - public j(String paramString) { + public LogChannel(String paramString) { this.d = new L(); this.a = paramString; } - public j(String paramString, int paramInt) { + public LogChannel(String paramString, int paramInt) { paramInt = (paramInt < z) ? z : paramInt; paramInt = (paramInt > A) ? A : paramInt; this.d = new L(paramInt); diff --git a/app/src/main/java/ui/widget_base/RecoverableException.java b/app/src/main/java/ui/widget_base/RecoverableException.java index 9a825a93..348aeab6 100644 --- a/app/src/main/java/ui/widget_base/RecoverableException.java +++ b/app/src/main/java/ui/widget_base/RecoverableException.java @@ -5,11 +5,11 @@ import V.ExceptionInVPackage; public class RecoverableException extends ExceptionInVPackage { private boolean ExceptionInVPackage = true; - public m(String paramString) { + public RecoverableException(String paramString) { super(paramString); } - public m(String paramString, boolean paramBoolean) { + public RecoverableException(String paramString, boolean paramBoolean) { super(paramString); this.ExceptionInVPackage = paramBoolean; } diff --git a/app/src/main/java/util/time_utils/ColorChooserDialog.java b/app/src/main/java/util/time_utils/ColorChooserDialog.java index 41103d41..502b7971 100644 --- a/app/src/main/java/util/time_utils/ColorChooserDialog.java +++ b/app/src/main/java/util/time_utils/ColorChooserDialog.java @@ -88,7 +88,7 @@ public class ColorChooserDialog extends IOPropertiesUsingFile implements f { JDialog H = null; - public d(Window paramWindow, ai paramai, String paramString) { + public ColorChooserDialog(Window paramWindow, ai paramai, String paramString) { super(paramWindow, paramString); IOPropertiesUsingFile((et)new dQ((IOPropertiesUsingFile.IOPropertiesUsingFile()).an, "DashDesignerColorDialog")); IOPropertiesUsingFile(paramai); diff --git a/app/src/main/java/util/time_utils/ComponentPositionDialog.java b/app/src/main/java/util/time_utils/ComponentPositionDialog.java index 2b6c97e3..23b62382 100644 --- a/app/src/main/java/util/time_utils/ComponentPositionDialog.java +++ b/app/src/main/java/util/time_utils/ComponentPositionDialog.java @@ -27,7 +27,7 @@ public class ComponentPositionDialog extends a implements f { NumericTextField e = new NumericTextField(); - public r(Window paramWindow, ai paramai, String paramString) { + public ComponentPositionDialog(Window paramWindow, ai paramai, String paramString) { super(paramWindow, paramString); a(paramai); setLayout(new BorderLayout()); diff --git a/app/src/main/java/util/time_utils/DashboardComponentDialog.java b/app/src/main/java/util/time_utils/DashboardComponentDialog.java index a2981302..514fcf5f 100644 --- a/app/src/main/java/util/time_utils/DashboardComponentDialog.java +++ b/app/src/main/java/util/time_utils/DashboardComponentDialog.java @@ -20,7 +20,7 @@ public abstract class DashboardComponentDialog extends JDialog { boolean f = true; - public a(Window paramWindow, String paramString) { + public DashboardComponentDialog(Window paramWindow, String paramString) { super(paramWindow, paramString); } diff --git a/app/src/main/java/util/time_utils/GaugePropertiesMenu.java b/app/src/main/java/util/time_utils/GaugePropertiesMenu.java index 2ac82a5b..cfef4b38 100644 --- a/app/src/main/java/util/time_utils/GaugePropertiesMenu.java +++ b/app/src/main/java/util/time_utils/GaugePropertiesMenu.java @@ -156,7 +156,7 @@ public class GaugePropertiesMenu extends JMenu implements f { ButtonGroup aj = new ButtonGroup(); - public w() { + public GaugePropertiesMenu() { super(SComponentGolf.b("Gauge Properties")); } diff --git a/build/reports/problems/problems-report.html b/build/reports/problems/problems-report.html index c645d5d4..f241c595 100644 --- a/build/reports/problems/problems-report.html +++ b/build/reports/problems/problems-report.html @@ -650,7 +650,7 @@ code + .copy-button { diff --git a/scripts/fix_constructors.py b/scripts/fix_constructors.py deleted file mode 100755 index 244d2fc9..00000000 --- a/scripts/fix_constructors.py +++ /dev/null @@ -1,104 +0,0 @@ -#!/usr/bin/env python3 -""" -Fix obfuscated constructor names in Java files. -Finds patterns like: ` aI(ClassName param) {}` -and replaces them with proper constructor names matching the class name. -""" - -import re -import sys -from pathlib import Path - -def fix_constructors_in_file(file_path): - """Fix constructor names in a single Java file.""" - try: - with open(file_path, 'r', encoding='utf-8') as f: - content = f.read() - - original_content = content - - # Find the class name from the file - # Match: class ClassName ... or public class ClassName ... - class_match = re.search(r'\b(?:public\s+|private\s+|protected\s+)?class\s+(\w+)', content) - if not class_match: - return False, "No class definition found" - - class_name = class_match.group(1) - - # Find obfuscated constructors - patterns like: - # aI(ClassName param) {} - # a(Type param) { - # These are lines starting with 2 spaces, followed by a lowercase identifier (not a keyword), - # followed by parentheses (constructor-like), but the identifier doesn't match class name - - # Pattern to match potential obfuscated constructors - # Look for: start of line, optional access modifier, short identifier (1-3 chars starting with lowercase), - # followed by parameter list - # Updated to catch patterns like aD, aI, az, etc. (1-2 chars, starting lowercase) - pattern = r'^(\s+)([a-z][A-Za-z]?)\(([^)]*)\)\s*\{' - - changes_made = 0 - lines = content.split('\n') - new_lines = [] - - for i, line in enumerate(lines): - match = re.match(pattern, line) - if match: - indent = match.group(1) - potential_constructor = match.group(2) - params = match.group(3) - - # Check if this looks like an obfuscated constructor - # (short name, not matching class name, has parameters that might include class types) - if potential_constructor != class_name and len(potential_constructor) <= 2: - # Check if parameters contain a class type (capitalized word) - # or if there are no parameters (default constructor) - if not params.strip() or re.search(r'\b[A-Z]\w+', params): - # This looks like an obfuscated constructor - new_line = line.replace(f'{indent}{potential_constructor}(', - f'{indent}{class_name}(') - new_lines.append(new_line) - changes_made += 1 - continue - - new_lines.append(line) - - if changes_made > 0: - new_content = '\n'.join(new_lines) - with open(file_path, 'w', encoding='utf-8') as f: - f.write(new_content) - return True, f"Fixed {changes_made} constructor(s)" - - return False, "No changes needed" - - except Exception as e: - return False, f"Error: {str(e)}" - -def main(): - if len(sys.argv) < 2: - print("Usage: python fix_constructors.py ") - sys.exit(1) - - path = Path(sys.argv[1]) - - if path.is_file(): - files = [path] - elif path.is_dir(): - files = list(path.rglob("*.java")) - else: - print(f"Error: {path} is not a valid file or directory") - sys.exit(1) - - total_fixed = 0 - total_files = len(files) - - for java_file in files: - changed, message = fix_constructors_in_file(java_file) - if changed: - print(f"✓ {java_file.relative_to(path.parent if path.is_file() else path)}: {message}") - total_fixed += 1 - - print(f"\nFixed {total_fixed} out of {total_files} files") - -if __name__ == "__main__": - main() diff --git a/scripts/legacy/fix_constructors.py b/scripts/legacy/fix_constructors.py old mode 100644 new mode 100755 index 51024455..20cded9e --- a/scripts/legacy/fix_constructors.py +++ b/scripts/legacy/fix_constructors.py @@ -1,71 +1,105 @@ #!/usr/bin/env python3 """ -Fix constructor names in obfuscated Java code. -Constructors must have the same name as their enclosing class. +Fix obfuscated constructor names in Java files. +Finds patterns like: ` aI(ClassName param) {}` +and replaces them with proper constructor names matching the class name. """ -import os import re +import sys from pathlib import Path -def fix_java_file(filepath): +def fix_constructors_in_file(file_path): """Fix constructor names in a single Java file.""" - with open(filepath, 'r', encoding='utf-8', errors='ignore') as f: - content = f.read() - - # Find the class name (handles inner classes too) - # Pattern: class ClassName - class_match = re.search(r'\bclass\s+([A-Za-z_][A-Za-z0-9_]*)', content) - if not class_match: - return False # No class found - - class_name = class_match.group(1) - - # Find invalid constructor declarations - # Pattern: identifier(params) {} where identifier != class_name - # This is tricky because we need to distinguish constructors from methods - - # Look for patterns like: SomeName(Type param) {} - # where SomeName starts with uppercase (constructor convention) - pattern = r'^\s+([A-Z][A-Za-z0-9_]*)\s*\([^)]*\)\s*\{' - - lines = content.split('\n') - modified = False - - for i, line in enumerate(lines): - match = re.match(pattern, line) - if match: - constructor_name = match.group(1) - # If it's not the class name and looks like a constructor (starts with uppercase) - # This is likely a misnamed constructor - if constructor_name != class_name and constructor_name != "public" and constructor_name != "private" and constructor_name != "protected": - # Check if there's no return type before it (indicating it's a constructor) - if i > 0: - prev_line = lines[i-1].strip() - # If previous line doesn't end with a type declaration, it's likely a constructor - if not re.match(r'.*\b(void|int|boolean|String|long|double|float|byte|short|char)\s*$', prev_line): - # Replace the constructor name with the class name - fixed_line = re.sub(r'^(\s+)' + re.escape(constructor_name), r'\1' + class_name, line) - if fixed_line != line: - lines[i] = fixed_line - modified = True - print(f"Fixed constructor in {filepath}: {constructor_name} -> {class_name}") - - if modified: - with open(filepath, 'w', encoding='utf-8') as f: - f.write('\n'.join(lines)) - - return modified + try: + with open(file_path, 'r', encoding='utf-8') as f: + content = f.read() + + original_content = content + + # Find the class name from the file + # Match: class ClassName ... or public class ClassName ... + class_match = re.search(r'\b(?:public\s+|private\s+|protected\s+)?class\s+(\w+)', content) + if not class_match: + return False, "No class definition found" + + class_name = class_match.group(1) + + # Find obfuscated constructors - patterns like: + # aI(ClassName param) {} + # a(Type param) { + # These are lines starting with 2 spaces, followed by a lowercase identifier (not a keyword), + # followed by parentheses (constructor-like), but the identifier doesn't match class name + + # Pattern to match potential obfuscated constructors + # Look for: start of line, optional access modifier, short identifier (1-3 chars starting with lowercase), + # followed by parameter list + # Updated to catch patterns like aD, aI, az, etc. (1-2 chars, starting lowercase) + pattern = r'^(\s+)(public\s+|private\s+|protected\s+)?([a-z][A-Za-z]?)\(([^)]*)\)\s*\{' + + changes_made = 0 + lines = content.split('\n') + new_lines = [] + + for i, line in enumerate(lines): + match = re.match(pattern, line) + if match: + indent = match.group(1) + access_modifier = match.group(2) if match.group(2) else "" + potential_constructor = match.group(3) + params = match.group(4) + + # Check if this looks like an obfuscated constructor + # (short name, not matching class name, has parameters that might include class types) + if potential_constructor != class_name and len(potential_constructor) <= 2: + # Check if parameters contain a class type (capitalized word) + # or if there are no parameters (default constructor) + if not params.strip() or re.search(r'\b[A-Z]\w+', params): + # This looks like an obfuscated constructor + new_line = line.replace(f'{indent}{access_modifier}{potential_constructor}(', + f'{indent}{access_modifier}{class_name}(') + new_lines.append(new_line) + changes_made += 1 + continue + + new_lines.append(line) + + if changes_made > 0: + new_content = '\n'.join(new_lines) + with open(file_path, 'w', encoding='utf-8') as f: + f.write(new_content) + return True, f"Fixed {changes_made} constructor(s)" + + return False, "No changes needed" + + except Exception as e: + return False, f"Error: {str(e)}" def main(): - app_dir = Path('/home/rewrich/Documents/GitHub/tustu/app') - fixed_count = 0 + if len(sys.argv) < 2: + print("Usage: python fix_constructors.py ") + sys.exit(1) - for java_file in app_dir.rglob('*.java'): - if fix_java_file(java_file): - fixed_count += 1 + path = Path(sys.argv[1]) - print(f"\nFixed {fixed_count} files") + if path.is_file(): + files = [path] + elif path.is_dir(): + files = list(path.rglob("*.java")) + else: + print(f"Error: {path} is not a valid file or directory") + sys.exit(1) + + total_fixed = 0 + total_files = len(files) + + for java_file in files: + changed, message = fix_constructors_in_file(java_file) + if changed: + print(f"✓ {java_file.relative_to(path.parent if path.is_file() else path)}: {message}") + total_fixed += 1 + + print(f"\nFixed {total_fixed} out of {total_files} files") -if __name__ == '__main__': +if __name__ == "__main__": main()