From 03502ebc3b2bbf11f073a9b6a187f5d1029759aa Mon Sep 17 00:00:00 2001 From: Rich DiCroce Date: Sun, 15 Jun 2025 06:18:00 -0400 Subject: [PATCH 1/2] feat: Add bloat analysis UI and improve singleton detection --- x2-data-explorer/docs/bloat-analysis-tab.png | Bin 0 -> 151153 bytes x2-data-explorer/docs/save-general-tab.PNG | Bin 86503 -> 83815 bytes x2-data-explorer/docs/user-guide.adoc | 18 +- .../explorer/file/GameStateContext.java | 11 +- .../x2data/explorer/file/GameStateObject.java | 13 +- .../explorer/file/HistoryFileReader.java | 81 ++-- .../explorer/file/HistorySingletonObject.java | 17 +- .../x2data/explorer/file/ISizedObject.java | 7 + .../rcd47/x2data/explorer/jfx/Main.java | 63 +-- .../x2data/explorer/jfx/ui/ProgressUtils.java | 54 +++ .../ui/history/HistoryBloatAnalysisUI.java | 394 ++++++++++++++++++ .../jfx/ui/history/HistoryFramesTable.java | 2 + .../jfx/ui/history/HistoryGeneralUI.java | 4 +- .../jfx/ui/history/HistoryObjectsTable.java | 2 + .../jfx/ui/history/ObjectPropertiesTable.java | 67 +-- .../x2data/explorer/prefs/HistoryFileTab.java | 1 + .../lib/history/X2HistoryIndexEntry.java | 9 - .../x2data/lib/history/X2HistoryReader.java | 1 - .../mappings/XComSingletonStateType.java | 15 - .../unreal/mappings/base/CharacterStat.java | 3 + .../base/XComGameState_Analytics.java | 2 - .../mappings/base/XComGameState_Item.java | 1 + .../mappings/base/XComGameState_Unit.java | 4 + .../unreal/typings/UnrealTypeInformer.java | 9 +- .../unreal/typings/UnrealTypingsBuilder.java | 7 +- 25 files changed, 637 insertions(+), 148 deletions(-) create mode 100644 x2-data-explorer/docs/bloat-analysis-tab.png create mode 100644 x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/file/ISizedObject.java create mode 100644 x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/ProgressUtils.java create mode 100644 x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/history/HistoryBloatAnalysisUI.java delete mode 100644 x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/mappings/XComSingletonStateType.java diff --git a/x2-data-explorer/docs/bloat-analysis-tab.png b/x2-data-explorer/docs/bloat-analysis-tab.png new file mode 100644 index 0000000000000000000000000000000000000000..fe53b4df773e2b8d098699ec7f7d8eaf604e32dd GIT binary patch literal 151153 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

k76E;*l)g+`Pq?z)QNTePd_Pl56n2<786VL^|J zg}b*P+mijnDKk$S7-Q^UN~}BIzgYseUY5@)-Nu4{EL@5@>y4|`l^$}?cjTB!9j&YQ zIMy@Nq`s|+=WX5DG`}hZ`Nn#=hWbp4C7n^sT?n7It*R)P>!avd(zlOlRtn3dHE0;B z-^83hMvj@RWz4?wDDikJod{)>RraivZRZ=^TfJ!MDmFOxIE|SdQT#D;YHwW*|KOj! z|1-AD5;85sZ?)X3<$9-)vy}YSy|bGqs7p>?geFm%vFwRV zx5hpm>n&zWm~{{@$(j{gPx~NOE4V*vA}EwDa{p?Xg8%|UUn)YG99%5vP^}+1bVp%c z+_5Au-d2J*iLZy`L7LGb;hxjIUwX=2rt0aLvh33!mJQnwJukC!-*W8vUEVcRuZdR? zr}Q%WtD5MtSI1k~$AcOBJBV1Qe2qYFk(@04MDsRQCi?0qLJrpR^*B15I9aDqh@FFT zdEZ%ds^johx#maC4QGzWPpyNrBkCnrZ;SKJjM?T}@$#%7v?1B-?RxEc5RPBE`;4gB z-3|XP5vYSiB+D>y){rx^I`Nj%rnb?Ry#9)3`s0C9d{PQ@W3Gu@$YjuR`M}vti;}lc0dju8=gf$L&SFl%iny5(YZSr>%=3Lz%MQKF7 zU_BeX3#=QskcLUUO0@?g&o;RXs5?|vwkjBZU#|C}WyC{^lq}TsP!-whu5EWGBilEq zeBh8dz^~fYN8a3RuKj)nhj<~E+XEN-`9mdGR~`7R)5^ox)mf$t>)E*C86NHa!`Bc5 zWxL*zDd?E;3>o>zf3F60Ye{aov%t>Mn>sokU7pN0fbB82Kyl5@O&k(#T~HymyS@GE zeqkyt*z=wT6y&M4HZocP+mJ??#kejx>=R)@woRfg8k@oLAQpM_HtuFE@O}#H2(5cE zHzXw$jAvc9;(q`S4Uw~&MCOX6doXtWr65S_Y#o#xfcc5>DB;GBLxc&U%46^Tr#L+QCkRTMj5<;%Zr?l) z)a(ECF<7Uh(z9s7bJP_fqbwt*-~11q>&BbjcyZ!y?62x7{Wa}~1{~!YGzjcRCUvZ{ z;9~N&bx|glgDiEm7$yG3hLk`U(cy=Te{sv%xNXr3EPW;<{(0~BaiOx51zB4;Q*5sK z?xJq(&fgAvq?>T4REJ}w?u>pOCwv7Peq_7n$ZHA71A!Ccgl>gj^2*2JB ztK)Th6HodIZ@@(}EFj2?$*qhHO=)nB6yRbm88h@5}yU40tL-{(INF30_Z33=92i`#sRg=PuUeTd7! zQgr0(ZG`W;*k(kbV(gRVFRDKnbAYHO6y3L`ecJc?KDFvFwy^)->5!{0X=6y(P?S8f zZO8Q_G?bGQVMLdvn}zq7nzy_+5g!{n$KlBsB%9<7c;bG3)ySpt;dgXMfP? zw>3oW#CAqeRFFn%yB3b04`0E#sGkpcF+z1c-r=3TN83toY}oahW1zx)gKq}i8UBGFPU6%r&z0`#RG7ujl?jse z@wfGU56~0Ev^$mQHmSktg>Q&Zq6vNaZywh*!b8}5z<&5;X z`vYX3=G$6S8}Jjg_ukE1a2Ha}>*}*}yW!|^f&`sskoTgmmD;i?v*x7IJNQ@_GSd=a z$z5hfoW$}35aXbhD%A22@Cj|bci756!H!@3)Ivb#S*5N!A<+X_M$?U#P7#8_9pZ;w z{qS3SQ483HgmIX17VbW2;xw2+*pDIJm)TA8^!PB1sPAwY*0~L13IU9YV1MgZgZN$9 zP?vJ9zKuwB|EF%9t*ey8a{IonP?M$Gpf@LV8U;F@($a)c?uzHeL8!fPa`Ib*a4 z2F7(4&7q2ldt>0Cns{2qOaSM*x2=ptT&C{+Y=r+%ieV^xnvz<_oszF3%!LkeFQ^5~ zd~;P92ye~!mkB;R=(^{RlVk65MWujV@8kR0ea1LMBXPvl$+!D)meZ#Qx8*)jdGI|} zK`+V=U_QrzG-^)_3gpafCa{tAnr%fA9#**kG}7DlD$|U3e|=|sJZ*Eyq5ILv;39+T zDJ9pNUvdTG_n5MlcInSMy!-vrWF2Bk3$*plT|F|kHy4YLQl9=lJFyxumx=^X=5Zlq z!&cRJi;bMk%-)@Pcw`yp$r-+nE7|2BX8b2o$s(&K-ie0Q<9#u8 z-CW<_Ew94CGb}pE*>hcbp$(PY8|#``|2Q&EcRyI1Fx3nu;ut=eZ=Qm-x~A>FPG%-c;yxEmea*O!QDb-Ti3kjnxjRc)DbX2SrgrYF)1{H$ zXOg()H%6O>gniykfx4B;6 zyLdMLq0%FeK$#9$67+YjOMg7mL2W4*MUE%g04DXeElLh=LLbIxtm^M)Og9Pli@WJ$ zpBzWMlw~=%0f!yRUFQmxci)ORbY63wB-htR@e$r z4=FRtxdh#u=Ay&7D~h5|8~X!84WXy~t*dvfgBP&>A*4>45Gv_tX)g=>+Mb4OudanN0nfyw^s@D)**S0X8GDVJ6Q6N zMu)%xYBZgp=0uQBTWMrx$?)5#e>IYMd3WCxYm_|B()t2!NG25&;#`hQ>5KLFxX}2M z{}=wyBC$P8aShe=GNKq~9Nf_seGcUnStDD0R=FGP+Y8z7Q!SAb{MUQlPRgR6($bnH zO^dCI=H^LBqzzSeOA99mH|vHcHxh4$P-E8Uu)O-mr=M-Fq{5f$NIP+P913~bu6KWl z#amseqP|{xhZB-522h$W4rwlo0jyUk0678)@bzxZUI74Od3k&`3*M-8mYA5hy&)hK zV8t~c3D~NRii$#Q>@y~a0YNmJHljm500L|y;6Fa|5Zti>HDJI|2yNSRj0Z?GX1k zfkvKQf8;47JGF#UQSU#+*u@^+ctoi4l>YgzyBd85;RVjyy|&!h0EO+O=)YlJaM=~C z6ax{mmJl)Z%a*R?BCmMt;QKDs%^OyoP|s8frdzO&4wXGHLzb^W+bc_v9B#tDB-uD4 z?G1mSW0RTlD(8FRedED7IscMi1vBDK)?nyB{jOXgj6O7=yXgMETxLd|CFTv#Rm!39}zGurZd+n@q z(Cgkymq(BCD)S3xtDdTu(#MkEM9Mh{#)}vnu!$H*07&QTQC?ek3MDV zmMW)=;5>5-k&PV0$h42Ou4zwryGXIE~i)Rg?py6<_!E`|FAt~Ye1HA>f6!#B&c~*;wKhob>f;>v<*(Y zVkK7Z+9K#weEDYWZ#Ygz%;wD74(3A_N@+Edta+yMcpEQ1g()vi^`G5}b}&t=aak=X z)_m90Ce)oh1pp5Y5<8)O4u1Cd(v4x~Vb(CV6D35Kuyb09l5}^fpKn28W+wejO;w~9 zY|=xqdp7zOgwxj+5dh326OZYc8Ee$z2CaKwX0TGfsCWR)rH(;D~vqhQWFG(cR^eq6i zlX`Z|JY@6x#v@VCidd4ik6oVIL|qs6>K9-^NbqYw1*0{R?s03&_3u(sjK9#fDQ-|y zWbge;0* z20IxA=V2Ondx~hf12$8HVvHKe-*Gx;t6Pmr!!JDEa#qDls&HFf(U~M^-YH!r;WYP0 znUenLpO8iw{Tsw@v`WQ&5qi?)>}zHt>Fe8UCdop{sWZp4UD2*H79^3n=TrFi&) zX{VhP&&}~dS#8XpJHM^?i#>wfE3i*}tZ_G;X+DAPcQu%oeTH#e73-+1KA0hw%r-@6*viAUHl0F9Gt9qm<CD$iHH~ipFpR8z zda&dX!^g|Nv}4fqOQF9hVSevW)GWVCh_GC1#@%PuoX&A;Jjh5aws^TnM{`wDvZkH1 z#M*6^>b-9b?MraJU?e7(FvbbX*80w#ClhhGCQNIai7q=FQmY zlXT}5AdN}-+NbkoZ5gQ=G0S^w6w~ndz=n)Eo#5U`q7xQ9axF*=1dv$Ul^AWMO2KeT z@$z_-m46gnad$>xGuld1WS&s0Rc|Xo0sgXU-o%jD$$npGu7aCfac%ajho29U4VHgM zwiXAWH>dKS6KCG`(BNWIRP8nMBowh=KZ%f};v9v}opXBWJnG1o4S+W2Hw<)g?ydrZ z#MJ+wFaB7D)*S|s!$#p?*a}lqad5!A3Dir@1^cG#(Aer->EMi?ZaIeYcc!-k7t4

z4(>(~GC&@QrQJZ=Xz5zAteyK#J;!d`VICO+Bxed@exU`fNAUj>C!p_(KDdut=tNo1=7^R}HJK+QxVYnQm^(`*!qYM= zNYuO@qAtRG!>J!*+Cz8&J22JeyZ8d$wE~bXo=<&#BqSyGPijZ(yU^%w9)_OTdEH|= z-KNSiEu3z6oR{+Vzto6$)Z)*|e*z#dZzQd7#nZkRW8R@vyp}rZ4*r1?s15*d2G?@0 zx3zh=f6-Bz1GSwI42$?5$n?jdUVRk@ae!5LCR{mwJauILAOwTH0QZ2?Y5K;gT*bWf z$4w`Vex9M?R@d+;mAC&!0bs|}^t9oHWn7YRY~tgI5i6RcC-}pQFXoco8B%HpyHi3j zW2Fi7<7_zbLPNhNu?$=2B|Z1n5s`@tp*{jhT z{|gpd%aL;VV{TeSD%qv57Zc-Zdn8s>B0h=pX#y#Wpd_=DW*FhTPaML|-PaS5njD5;SCYir)04>N{Cc zU_WMZC+4-?qbGg$)Zej&y)%_0Tc-MMh(ghBA%db(mbj-QN0@g5VH z!@g9vRB>5Wr@cdprUUfNGfi zP>$VEfU?rL3~?SAX1SiBH(A;#?qR#yWmk0Z_PtbzP)=ojSjJzUKig`lD8|npX5|aD zQ7W8Fm|K8aRrh%e3QL1#$CWGvEfE<6K|U_Lp=Y8n|HdMx8#dFN7TdI9JuK<)t~0=w zrj;9O|BGweZMCOs#$*FOX>=xw3x!J=MoDkEwq)`Jl*^Xcl-_%k@ItG*hbqgzN?>I$ zpQ^qrgmbe=Z-mjjquR2j`7Bf=q7O=iAKwEjEu7vbCWMqf$KS}gpt&NQ*KedQlA|1# zJAQM#Dh)w=CTM)jf|G~Bd65^8GIj@{AG0~6fM)57M>lp~BrDPpDEqO$u1svCB6j?u zVXRp+E4s>F|A(p#hH#$^34K5?YrVJN8v=hJLejn<&4}?76YWo5Tv*Ia`OVq30W(we zK4WqUp;9@i5W7n|NBq|5kyUaxSGIK4ODjCF;+Vh|ojcRkOgkA-mv*l$a_RnPEi;Fo zMaiF&7dn_XZG3>F9JjXMi~BS+N3g=4_efJvC~Q-w_n8gvmB>fPAh=k!I1a6VCt6d3Fs!uo#Hz-!+!r%JJ>v}+ryENRe&mwX zECkL7J>OJL(?1pwyJHY^`lhZTZ69xOK*5x~)Of@v>3sTU?Ptb=<<V**q7 z`32lb+@((br^jl7O5Z^aY2+Wf;ypT~HPh8_x7U_VZ2^-B!Ss_Oh`9nkFYn13k9 zc`Br`x1+C^je5Licz0qVE7UyajOnfv9`rxC8vT;s&SSK^gZZs1zk+5_wNMSf<8uMJ zW8@2N=3sJix??dK@48@H#3(%&k>xF%ko>tE0hZ@g3|hv~*2D+xi}E85rMH&qcRLTx ze4|?6cXghbjy~J}-TH}WQHi1#@8_pMLZ_yfdHoE8n@yUEif0^l%4WkP&`mNBIjQAzo%v4CZ6cW9M@OIplA#eT~ zwBoSg-98frV?s>ifQF}_7v0q>9Qa$oSH)GgcC>^)&O(A7uND~Sv{S!?Ylv{a3@+sQ zN=Mgt)yCb+eJ_P`5-TO+2hu-fd46DM@bb;x4%(4LLAL6+iKBR(cHzV{kFA4)9Ye)O zgvu}C+BoU^hBVc&Bc%1!7)4CLFo=gf&BMGmvs-6=4X3Cn@$TcA7xTTF#Y&yUbTvL* zS|N#j$s1%$-Cl8xGK*LqoOh_}n?&Kn1(jgm_1aRneV##b`DDnLrHNDI81a|t4-7At z>lZnUh65B0>N%Nde1+aeU%H`O%0k~^h8OB z#}C(1Cbs%j_!ebW#=gM|jjLzqx-owPZh1IyWPk{lc`9^@i7yyWgR+6MuGKuvzsRK= z_{8|7GGYTAoh@~~&~e~znA!Pm+hJq_a+E^PK9(=|;nStX@s|g?2|t?o@emIn<0NsJ z6tA08(_&pzOOlkYT-4QdC+JyUlsZ%-9=0-uGV5Y4iIx`YR-y>?r(@CMe0@ zXwP=q)mh==(7gsGHbgLNP#o<*g95jwCZo=f2+N zuq7oy>0F{TBA5ka%W%^`%-}$f_NBH|OoV)xtiw#(|Ey+ga2t z-RZU#{8Z+qoPylR>2&LlMh(B+@AM$}CI}M8tj7_fp0wuz3r6HWcd_;_63p7JQ)|$c z!NgKd+u`dnGjorrRwc6dgN7vd8+Fv0X2qB~K0e)Po9%#z8qVLxL~c7c1&mZbKjiS1 z4iqnpHLy%vadsi-(D zG@_y8Ae@|>L0$x6famMqU+S1}WME)OM$W9|dSF6|y!Jod0uJv_uHhQP|KZmftwsJz zU4b<*K92H|ZvtmG9-W5m?;BShrArwb`v4fg#yNO(wfYVqr9t3~fPB< zp_c#;PwYF&Tm(J%E~TBoV|@bh=a<0VW)&2Fron$5 zLRZDpJJx1qIj|9MqW9E?!{9O=NFt7ti`^Tk4I4sM8i-NAeHZ?uAK!uS=p6tMN*SEyK__+n90AU2lM*#{>L(O?W zJlcLBc9N`oqu8}<^X$6O;k3CNUVpqjFk~@&QmG><3K$BGfnNNNm=LgCGP&2qdRpk5 z+g@F$;Q2autGTlZeic$9@{w!!%t9FHyCX7);_B2BeytuS}6h=?*c2(+^5810bE`Lw@=kn1Ri zOFp;%>R`^AHQLQi2=TU~3;5H7MIQOYgL9VQyO)rz8EiA6YQs8{gp;p%UEDIm?5w7n zo9i{`B@|ygU+UplCLmwiMzF(dFfmu|@H12=funIwxuYL70#S#z1oylD zOrSgeTb}gyPr$&&0$Fvafb`#^kxc1izk^(*=6<8~AHdbmd0hit(k;Mmi;yfVgE>tQ z2I}t@ZYe7(UoFdCrBCgk$Zhl4*JAP@V4XXAPuGdtVf~w*%@_m`L9_^=*&GXl8W_4; zqi#wJ*Bi52*a5SVto)e&fv-}34*a@#nW(SuG zd6&AquHSCMuTGZ=6X|OzS0<22_ZpmZ*8iNQiNnhiVWV)1`{fCKey~?j&{l0>2VUe)H8r-BiHV85>a7A0g}KX>+wFN$ zGk@7ce$jM(UR{NM{9oO$uE6AVy}`WpkAu`KJm=+TD6LJAx<$_c+oi@OBIo;7ciwK@ z?+CAb<#lo$m(L4ItfD5zfm$A2d;|kMkK0&Uqh1sSO3fF%n6PpqU8U z;X$>z94ZU498y@&2dUKF*B&ML%}gAGG7H(MiYnJ%>%V!l^1CYL`YfT7dftkDs^M0u zeC$ctaK$-s$sOT}i#;#T<4C`s?$;MFH1iQB&DRb~Go`(S^qt+pH4) zNe+~MB%;al(@RQB^pRLMF(pZ%OHIjHl#&YQ1*3UQ@%EIkh)VMQ*=Q?Y@bDHE+S@Uq z;Q_fqi+C=wb8Za9?z=O3VdwS(3HV}ao=X>s5p+%iPTGP_&SG9OQ7)VMN}}ikm+z1> z*@9FQACr*W+VrU`n7|)F9x9e_Tjf3^njV&Y|!Lzn=WWr78|YZ}1r0))j5R*yWQ~4pnO*Wr)5hI6 z<_ydHM)ErMDcaX1gr>WYUz`(`)d5xTo(yf$jA@$Js>Z@=hzc4|HC_&ZHb)b+Ji3NK zL6Osy)t@Bbb`?y}5d;n1BwtS@)TyPTusaZ2I?!_%K20|@3VG!(%ADktW=id^&7Y^d zplaV$R;r;66J*Z*jwsRDZj-$Fy@54Lf#;!NwK^@2d*YK7?56^+9bL|LZ9nTX3_>gs zEp`*uIV-Q&JgMi%xQ_wN_|^yJ;9o630+-HUJo7ZITr?Y`znbIrk=uAzgseM58w zJJJmNBRsx}=Sh+FCCJSgt0C0-c7~%=gI3elWisb}Q00BD_JZSVbdnHCACT(tc&NnB zFTIs(KQqaGqrar&;*!pBcqkrPAItQb5liEblzSIbxa$^DqC-;sxX~V3f2JT_myzPn zZ1$0IEslw@Q2U@}X@yU+pFH)OPskKG?2HO(u77-_K0ib-C@BxpixiJ|R&s7-&Pgy% zbF%5_JUD*%wK9BCoI+Y9aiiNcN5rlDGQ%I_>>c#QJjxI}iDS;URQyPj?4p>aT@kyI zpt;$o=aQfXC;wClmkc|xpi7?$p5;NF%~(Yp@dBHMpi#xBzDLu4{o8kKB{Ame5Ag&Q z@6qJ}jm(-@+KdkOheBG3OWcZg^hlQ>k92MMM`8GLY^&8q z%rBEqw@edOb6J`!6jg}!v9s&Kjd>?=xm6&bTnXpu$?>_HKB1gEcRHSYeep5beaE4z zO2^{#y8dz7-k(^o|v? z=p;A$OHxMzYY&bcYcNK!OkQ3rTy$ARO)_Toy1r)M@{Gn~GOX1X6z<|vzZ^<1XM!13 zUlUJ=wa#94-qF6>_Aqgh8HS`P%v=$2S`4#3IeK^QHZSR)aF!QxZi(wE-Q%Rt7Pm2K zhPVWyHO#9?Vop`p^Q!fX{9>W@rxZwr46nYb<09i3vPBg5DRe7~E+1ZOmwpmGKC<#wKckdg%Rf>`3x~4%g+n=R*3BZ9oqGnD`|5 zrmWyXNV)=#xJK6dl{FrFz4HzH)wtQvV6Uyhe$kg&T!hP>+cS68;;g*#GL9`iw-AU;vPQG02M~R1g zFR>QK4jg2*j?c2zzRv|O>%HE7+fe+ZoI>C8IiY{WD!+#5y(*sZt7dnwys()|_so;K zUG{g0Cs6#(;52ZXJnR_fMP)AjMAM3M3uTXU&EGFpsXr@Xb(9;zcs<#XNxn&bwK{Qm zuBYSmQ(p9G=uCXfT2x0bfob{N{Esa9RN9l1ShgotHa{o3l`QAt^{*%92YcSguZFZH zl_Qy5verQF4boC93VAe8#m}kY?t5wFcjd$)Moz_InpR6#v>bT|Qw*<U|v zbHoPBj7JwsLPBl|vfS>wllH#$Q|5xVYK$N4pw;xh3SiIeTBXkrf{&sckZj~wq302B zB$aBOAX^)Pg#Mhc;$B~0c#^XP!?I*OHWei$C4+;5H92TsGim>6IBmLiKEGy+olehW zzdB-=cdx9kwh|dbd19k^BBCMWLiGh2YHDWI*8Kw)$J0=+tAph0KB%XG%5XRFnz+%z zioI{XnXFN@=ixT)&b1;1mkz%h>*nrRf6p3Do=~T~kn3^e&)WUP;E@6KkzTdZoVP!+ zL>ZV;GS@247AGr&uG36pXWjR=m0Fz2U`Ad=lxt@#LKh-OhLXHaYbDBa+}EQT56opJ zKO}i5{lqHiIvb0vZk^$4LmFV;m<7E%A*8=|E66XA-#6CU8+I#`U(V-0+LaY&EqCiO z(J(fPm}A!-)Ahq3iE@*F)SDdVzPX+5=V$tQq-71$wLi3e|Lv0DlD*KYH>tZxXiU8> zn++$G$*#!N(kvNL!IN#Cqe;c&2c6R{YO)@J&lGzovX)ncq$LKN%9>>akebiTmpRp3 z4CtS(yDAI(SsV?Hvd0Mrcs^s#`u%=I7Qm zQw)n*Do$nr4~G-i8^$dv-wKwLn4rqcxcvIGy!{`6e`exoq;{~#()r9uBZc6YAtUkxY)J6UYZ`CeUZin!z;Vo>h!3ML6QW{TA= z59mPijov3!r;B~$xjz)dSUY%BUPmD z9CRnCv=6<j+k>1pqQP%dfoBMlJC6X{J0M+ z=*EF%7S>_bwt^@4p$=Yqc{(o2^#Yk=Rj)4p^eL|K$v6+VgOKw)cLsICK{X5>AkDVR zedsN1@PTk)tzE2krm(4q2bC|bPlB^# z-N!YT;eFnZbG%M9M#Qx@SY+le5vLWK1Y+RK!&@&VQSZnK1`0Lh@1h!V*~35@Q$ReH zAor+khRWRB*9>ga=#{`Xq&E^id^5-#Hyo+~-vo=$x%v}xGUo;@2gPU!ngA+1TVeL1 zqX1iH=}hGR{7J$GV-#8gz<3w%P!9x8b+OCA#n-O(Omxo1Ta2teRxAk~<;d0n>35cF zGN%H3X{JY+FEMKV2F-=}Y{r{GGL`^1^#vv|gTV{aA?H@0pTdEnSx+LGR*vzze22$3 zkkgWs-*Ho^d>XP%4HRuBGxoCob4O}mpB_z3M%IJlfAlOoc@kbtco#Tm&g@3%`5B%Ln zZ~uNC1kRfyH8;d`*wMuVT5fNqznX7&)mA|bAWzaTuy8JRof`6B8uaTYo_i;#&uVt7 zdlD*T{|$bG|0=)Z4frOG*pknB!DeH>T6~4hx@33VBVfG%zSh>(Uc?T#x6j-`F3(s^ z!cc1L&o|NRqF_PfG$8Q4%c@3r%T*tV z^Q3?Pf!&7`d5Cx1(Jx=}-D%-vPeIh?D~Rso_=m)QocTqHE#L6Ytgt$K8R_?5UABB$ zwAS{uB*y1#vDmHo*HkgxkdgxLjM3R-akCZAmmPXG-?QG}yZRz+n1PEtcRwh_{xC%% zg?b9&yZ113`Bv&!Su&>9`dyk<33W9^tC+27s!LQf#oDQL86JV3g|w-n4+4g(gKclu zq92HMX1EfSVyXYE&}6m{0s#b71W@&CBTjEEQXw9IY%tk|ATvS{yD5Rfx<6J)gE*`O zq-$HPLj2=^$!aCn0hv%{R#*83U*e;2oMI)VWKQ0j*A&j(h@RpFjf1Kx>d^D>s+~*W z4cF4J%6RY8?Rg^ZdaZ}=eVGST@hnR+TeQx_*g-Oe2>Hggj((#`t3I=UDR}MvY zhk|#FJO19JJx{`TKy|uD-;(MNBXw(7v@R-F3Fm=Pgn#8fX;TmZXlM|p2M zlWJ-P>*PjopB0)%?{D8XFPVM|yr^jBEAu%p@9B}(ol6(6Ae?rT|C{c_5ii@^X%*|X zi?}{+fRs`+JUBh@7Ej^wV9)oWvT>jS^C_xUs7>br32eo1CW^GsXC-DPgtvf;AkH9NJ6~Ozs3q^ z*zM)KxdfOM8y%ZxxeflVYDcxv8%TF*mA<2Q%f@? zFz)Ei>gIdDQ>G6&r9(%@h-+=^OY{KaL8M}kO{qN>Xz&JTF!7Of0A0)@jVzvW+F|{R z(RH|5r$|L)wWG!A_v1E@Drf(kWTEetc@O#J5c!81l=fOUpTP>Vtec>E)QO2ETVIA< znR#qCf6x5I?ch4-5M9~Y>E{h(Ea+y273ais)HE%x7$9N`#E!PW396pyu{lno4KFSP?y( z`Dff$+JVv9o6u}kR1^F`6C!TJiIV4OdxF$C+p<6iy7=-NAF?d~sIRW=`r{v_V9wld ztmqKo17HzfF=7ZyyMUD1j9N%pONZzSR@WV6WQ5}8+8dSiu47w48vR21Am2zL+Wm^M z6TUCc%cTW;FPRprNIYlA?Fe2@kPt~{J(kqM$dZ#h>T4)#BePtkxc)5RYC)x&0I(H=4DRn!tO zyc<~(;X#n47#Obg?S)Fy#*lEZ+#@5D5(xx0I)8}xe%5;eG56p)nH0{R(<3g()pcvLM$u|wo~EoLA5FPJgF-3$>6!QPxO~WD?Feo zWp&(9z|EZ3OCB8G=1}G{-HlJO;}Q5lYM@T?WA-Zg2q7oFE75R1?tnv3{WZeit+|Uu zQ4NTG2v_!$>53p#hnY9g`Lswksb=Tqw9Q?nmS=H17*SWbdq(b*x7D&%CM&=(;EYtY zL)3HHqK;v--i6eeqDGd>-NZ&mh6-;tI5L)zWA%(t@Wqp0nIz z3es%6qYo2*8m`YKQIPin>cz)=Ak?tG-IaJ3i`irj|2gNUIN-BzZ2dNy_xN=($M$t2 zsyEzkX3ai8Xv?RTqBgF$#|UE(l@npD=sgQ2P;ee*qjno`VAV77fb4kyp4+lvstZ-*0&WtbhGIP@i3Poi zglQCu|3cwaQsUWIKUF0zWkUHmV)1Zeucxm$_pXMV$oQ{E4ZCTPtAQrWZ~NNN_&{_< zgeY1*ep41X6S0?};1nGd;cG;-Kki0hJ-^{9CSQiD+>;%g9ssgPlL;K(jlcbHgk``u zKwR+gXvt0z`TrdvZ%oxO#`<8jz}TPgD#`x^0Bvb1zaeQ~&# z=;5LZ$D~5;*sqZXAVcu{SQm5{;=bVid07YMS z*84sziYsa3(wZJ1EEAa|CC0NkmyI8RL!%o0D+q`=DT*^xC%U#u|bawY*t{icgGz2Zxw+&KZg_vJ8jtRu9tIh+MF{_ zbwdg!XIXMcwtUF{(6hANcP#49U$j3ZGp`y7d>|(6nB(udYkAp@MpJ7-=_+u35U=g8 z&W6qhB&Fu+mw;WRk5a3T^$+lqB#t#&2{viKW1ZL1cfHS0724-hcxls@M_&Hrzoy4# z-fr&~@&uurtn8+WZP|b;#lJl2&zVy-2~kb)AeH>9-am~kj1OYhK- zZNPLw(;H6eB0FOnHlJMu(SsQ|1p{@O3UnH->h`L{mV-_{pTF@~J9;NU?4Xi~Yekyy_4PYue9kO>B-;kVUsExekgnD@=^|EEv7?R31NW9<~Kf9oXrYgT(+4!2Ak z-P`TxPwcF>WE$YNDbdamI`ifWmxvu60C2Qg@Y>jB$>zjhX?~NN@rZ`pMqFDmLrRZ8 z*96!5ZLs2tLAovBoVkzsWI@uuj6k?iERmO~N^RSB3!l%9TDa@KEKPXnKW{m;MqLKa z@lQ_b{vd`&3Yl^S0NvNkMXpS^_E1dpDLL|-(DT@-5M-fTZ*8(2J@7gpIE%CWY&%hr zp%jMXBeSTznhK{Y2Q+GMVMcVT*SY7*yQq>Kqt!@Rh(9DL{&YnKS;`RB& z%HGw>XrWDGEKSMBzFdpT<;wqXBaFWjh!ED%; zcgf`<*7efHb?NBoM4|h^uk#&7`HSlVq(^U~$OrdL#bls1(Epd|ZoX#o(T zxBy4Bc{rBT{6G&zhm4|UPU*#z6cE&j?Rg@H8bba3-Yw}kv0OhHL!Fe(aVvVkFVq?B4OU=*Sf9ijMR@bdVwGyV_R$ z1y5*(Ma8zbufDz2hEcZSYa_X}n2)%+8YtPKZboDm)N)~Fj)FW&>JzK2FEKjawzw@^$PifR=jr_6GNcUOcjQ6{KCidN9VuUOPdo)lymKFMt%j}m z`JdORln(|2$d&0^f&aGBjWQZ{9UYYT;U zo)3T2+WgCfQJmEfS$|z)P$~2jgXgj9M%=8D#SesU@}{ZqH)2_`G8M7KF{;Q<6YzY{ zIB1u!|G@$Ym4dYT(7;fXRxYmdtLRf855^YMTeah2N+&76pIzi zYDug4!zfo5mZ|67>ee>v=Af^yEcuuz#_X%!nr2>=sJ)`}h%Hm8Eq1i2nbdK7Zl-dB zwr^q0w5D^G69so1(c#KibWB=f?R&TJm+-CBQ@@h{w=zd-UH#{4ltD91LqppxJlEP* zUTDT*o+3b6q|>>V`Nm^GwcpT51fUfJ=p@}_dWzW21N;0sASbp2s7=aJ##Lu& zJTEH$vrssPf&vc+TS=vtbyS4Ma5n%of~u)vF8z^;d%G9Mxtt}4E;~GV-HxlzoczVo z&?L2!smAoZ(IjUFc+OF-wB^A59X9(%?O&lb?3*5*lvEXNI)lvv{VU*kOm>=r98!GN zPa)X&IW&0wul>Pbtu1Ymzbxi$sMeKaD~{wO~W7{I&+x5f$mr>qN`kf3ENEtdFS~m`2LtE#HK(fdI$6WBk#SVn(Vf9 z@gM>!Afhy-DTshn1*8{|qJSXMq$5>8ij>fsigfq@=}ka70V$zZY0{Xa~aqk%S{l_H4H|t&HS#v(~nRET!Uu&KJM}JLj{;+(I`~hV{39;d) z1(r3C{rR|5*)GrHfz1LGiC>=M2I2AgyA9NKRg99i4m3Q$Ik(|SL9)xX+4mL%wO$+b zUPx-tbq>20M#Hx$eL2l0A5;Crqx?AfUD9l4Gym?S;iGh%L?TxPjcNA3xYE(ph`q9` zEDFhAew6gyFP*>E?`e{gb3Vt7ubDcUp*IJbGq<{cEH33=J8aHA%uh)412;uHk1-iJD{yiw-U(H_I=aI*a&y2ca+Y3){>Xg9GJki( zX9V)Y_xUSxf5ocOmNS-zvKC%d8Pxb)22)KM&IY$LPA ztQXfPjcdrQ*h_oboVu8n+Lwj%ft&?sgk4jnhwQ~jPq(9LbD9CP7y@ z?wdetThG{EUGyDjU#A-*;`Mlb3<2Rh*4R+_+^xfr_@94_rYC-?@ys-T%1eTF%sN>o z*zF19#o2<;8TbRpudIqIv+)o31AGra)up|8_Xrg;3-4Y1hf zkvcjk`3Yq+exrTh!GP>^b@gae*B$1BNoDAHozRHd2ji8Jc_i~&(vU7(Y}Q(@So_uf zEHhp#$X+N&alz!n!ayo~6LhT_B4S&-D zOzQ`-v*!o6dQJb7;IlLwq+Hv@=g@FA9Uw=h_qL75DPU>-{w*BC8Hk&fwV!RfJ3_t+ z#>(FZ722gPB#?u&CP3Sz!)`J$STN+1ck06<55S_bQP!?h{=DKa%vj9h5;Sl<);VAP z3EzbWcki7?yR++eE{8N-H**1>Ym~URQZXJJ8ktW*Y5G1A*7tl?=*NLN3k=8#P!L3F zBtCH}Ried5-vxRsZfWm!5Wkm|v4}~NUN`4j`oTPW#=Q=TFRPNrb%de2;8iC1|Ct!SuY-vsn#S7#@@q{MypR?;u0Y_x^&(Bcv_ z>p!*-K7(>3dM4=VBWqQ!Bc~4z=0ecg12hj*0r*y0=jG&2cto*L(@a)`?;xallgkl>Z zYbi*~e}ZI7Dt>*(eH1r!vRKeUb3B1`2enhmhjd)n?gZgp!lGB$dU@sI{(vm_FxMQU zdooKNBDC#WvDgeQdhjv;eAFC7DMfQp8U}sew!I9GqYU&}OEo1W=}a=(+6gI4=%b9L zhK4|f`5E{*sm=?5=&*bgyEd?Q+7ztbzpt{M`3Vj_19!;$3b_C2(%Ms41!;0D8ikV1 z50ik>MvCTwDu-Uf{p7L3>tW#D%|-_VVUDX=84tB=0j-2#nj^xBbejS5e61ACdLK{L zgT4oKWQL8(%rH8!xf1*`Z3Aj47EP zZAl;FgohJ;lI#ho+ttTOzRN_@(JLlK(wN*xp7qLkrWgO|?JImFTo3LtVeO}2<0u&# z7cpqcGp@~OWu^Qw2sd;{*11lx_t|1@s%g19kULd0m{f9a=L2zWcZaJ;((SFo-!(v= zmS4RGI?1B98sb@?=Z`&GwKr-`pODnObdJ(JN1+d2Jc&BrBs%}2d&#G)OPwpc!cr|E z?8ykcHS24%c`$KDy|DQJ*^8HX=yQRhWilR2phtVU><~@#?<{uiwa4*V0mW-AwQGzL z9A(E08&hF?^+wq?(qI97z&LzZU=}WO$*7*CYMNy$H(ujMnz8X|-?I$6>^5~+&f^$s zjz;jShpvJi!Db@kePZC~NQgBRH5HYR)AoEfIywzzELw9s1&+A_{~Ut}tAPGENyy2@ z+Il)k3PV6pRkNt&89u&E+-mq(El=zA;>`>*gz3xTV$1w5y<@TE4_WdM6-E>62Tu8= z1Hayv%@mTc!G@lcR>`LgNj`dLsUD^5-mpG8*-&IN(y6KvBY*hwbxqBkUzuta!qvaa zAC9|PDNNY(c0d{DKm+;Y6G8LZIciU4z&T;(KhHLOL{Gr`^&s9W-#`a>794=Xx%hZ_ z_kjlZLuS!wpjvnyL|x*3gznb9_F!*CKV_mXlT=nYX;I{0WlnFeGpvA(ZvB;D%>eAB z=>U7|Tf1N;{M(O);=9ykz077~73^0v+A@BcXM&qsSFNqDpPud4o}-3z&%tqJOG`-} zXUOw2BnWtkfU-vU9;XPT$N6z}weUIjrFWpcdaTAKCdi3OUO_>@j@HRRV;Cu^xvbMw zhTj%Tx7J^B#sl$v;KvEu*ul|egI8y)V?i2^iBD5M`hTcaX^)Mmnmi8pT+n$O#Te!` z3i3Yd`i~c)blrErGCe}%YcGJq8jgX4UkDnY_>do-1_G*-^DW^u>Wxz z@!1L2GT?3E4+c<5pX*bbWomRbOY1Uax@mrQUR#910N5Q#et}{QqP1r(cMae=B4-a2B zutl0IL>es^eW^QZrfTehG@DpiS^Ww^VL_xBY&Kv6WU1cOn{ksUuWY^qEh)X_Gfn4+rqZ{t^g`SDb!)A^kkxKI?%dl_4QTE-G ziWc?{M9$_eQ@rRW!b7XPq|Ks9f7jFAb6sr{&Ck~*@yME3j*c8n=%$B1_?y*}Rj=($o!th_c6{2MB$^ZxF)BzQst0{Hu7@U(k@Z# zF}(=piO!Ou#stODPd9)Vnk@4;uQV>;?lw!>Uf$?LE`8#`&EB<*OL&#=$(&%%XhXw= zHlW-IKF}yLGleG$dL!+^5lfyN5^GX}7^4YD&jLlMMUnZfa$KZuQyB$$rw* z)KwJkEc@8N=aN}RJBO{=%AtxQ5`i?Oh^g8x#73-F_G!lt1X+uKk@M zcBJbR^Qtf^>$qC0aweoG0I3sKIYM=&2p56Zh7tLU8sUlgs@hES8jdn-qvx_>qNvB2 zgU7x@=)!t!s>kQe9-=92_c#JvismLF5!bo1gi43n(Q0UFM3~UgOr=;bTmJwEz-z@CVKJK4tNXda`a?zOu55}9b*SH;4=6}>}1UHWu zU*51%sPy8US#KAds#Fk+5Lw+&I(S)j=$4c1Wa@JaZoJluRpptnmw;TdTFxgDSa0p3 z%r7-A0-OE4N`=`Hq|>T9N4}`vSRUG9gK(NQyssy|{!Md?^{j4>vTl>T#^q(r@kWrx zb+%r_JPTGxO$|pv^bzRx?+LMO<8TKK{{vmID`ykI#sWMgyb=~tMd%q}uj6`blL0^D z5ji@l;l^Kx7Z6>FN<=@>D-mSrh?$(Zw!?^$?dOa=wa)GeajZh$4tV10>8raI`(Wxh z#C8%KK{|EaMzUpwx?9VKmZ19BoR9`5yZy!e9o{c*a!(9-4_3z!wjUV%h1?4Jj_zBy zoi^}pOx*)D%)p+c)>dC%U$@QaHy-czZhwvKc~E;)ExuKJ&GCKb z<9R(!w+$38)ZOvn<8d)W|8ht_fQ2!^h0A-WKiaK`#&!~pdC3K*>}$tYUsN77Y4-Gq zWx|Q1GWpj)73Qu54@(cC^BlnqrRog09^XLzM1Ym<*@=%dtya~+vJaBImU<*hwMYRv z=_uIW!G9V~gk)!DFT}#LeiyRg&Q6<0gi0dJuO%LzKU@i?UMV%MK&`}xw$=K_K0pr# zB>eGe$PK90$#g?|K*N%L-PJwJ1E3emLCJy3)1>ek{ui9l?nj0W8z=`Kvvl31%O0H2r!!{6~Qvz4Y#FR5_xm}Lt9{!PcXxyFmJT5l`jv>eV^jwb>_r$>O!9^pcC`E4^|FhvSu_1O|LF_;N+`EM)=>W zH;>~f+d!pM#11cOO{r}8u# zK+DpwlV0d)wsK%%+@8yVy?v=w3xvw6E)$=i>}guo?>aJKkL=8SGKcg(e9a+{1_5DS zUfvZENS~pH$9YE#7citCfjCN3H%!2LUcOo54Fnr^Ga| zE-5m?<|Cl1{Kho!dCMpi)?VVGHzsK8V6kc!Udtau4#?#Xr(5!>HBqXJ^Pm1 z&qImq!D06qD9K!fWxhtDudfMga7Xr2DtS{`-m!&XQ{KX7e?{g}1R_kGnXz->*R!72 zG2W_8vBU{Pf=z42#`MwT%u>vbt946`zV0}t47__^u&8ig{dZ>C#M6b5l986YX3nD= zgT2o0{C9H~I^}ebSrcQUUk9r)*cO!B7Oz3Xbiot?vx56Wc1hx(glvmWnlDwB13 zG(_bA+eC%dxNRt}i#;FD=0LknblB=JZrA=CR>Q^)vSaC|q14L)$>+9I<+{XbEmNGH z^rTm!>1DeaN3jZ(;7WcwFeM>#C$1v>`*b;S4>ZDk!=B4j*T2K{e0I+hy+5VVAojC{fcaQeZe}u+ZgFIeDsJon1q}qPB0!$txWa4n^hdwMs~*vMn@~q#-qC#mF@O z=t^uM4#0Vaf6Zm=juE^-)kb@WP4?cIsvz~d#PLIaw_5bi3v>&*SFWG&5==Kasmg0d zM&x}M)*f|UugI&UYwvVwU?%%cCFpspbvkEVitUISQYV(di1Df+&$dgRn7?Mpgl1&! zaCuQ{XmBW(N(R#%Dw93VdbyG$Dt$te6gh~Wqp9QQVVq%>aZ}c9wMS+lyW%~=NMmR z8Nl8A7(2$x@<}$rTTbr}K^4ugtBQd#CS**Aur{kQhL=JtOUS{#NgUnSqUO*w7!ib# z_@WIf)5`10V2Wom;m3R}H)AvXa&W8{?Ov_}rT;itcQqwyqW7?1PZjv_DVbkla|wv2 z-lY{ae+p)I{CU~)-&quAi^hU=`tBvh>%MdthP$(45$Atgo zvL(czFMc35J)ZjX=@W3+O3#J)_|SfuMSX#-)z<62bv%x(C!VILY3REjYvY;()$Z2E zy=ke`O7(YIxaF~T#4^0_N;%jj$8P_lqoyX}{``o5s_oO5;!cq69XIIE``?;RUDy$c zygxI(WK{X~Vaa(aDL?af+lM(i=?u7oUE*#TPD?QT`S#`v=~mRWNu9g7Sh!`|TPA9P zpBB9Ar7c}YsCbDib&r}-k+CtZdGh?Ed=2z6azX^DkW38MIXswY2*D0|a<<@YtO$`7XDQ#vIY@QRH>(8; z_=Xmi@c!9xCuF(p=YZcXZnS`!$l2N|ukQF5v6J<2YLcaEFM%}8_}Ov>r7o^WV~orB z++MOTX$N>3jVcEuG~=LtJx_^d+#NaQ@DccBfk%5kr|&R06VGZQ-@!bW+K!RkhY=pT zK_`w&)r(ESFjRbxiIYJTp5~O6_JQNfDz9d;_gug}P4S(T-O_Fc?w^Q!+VPtHv5eo$ z3E3xwUFJ2XSeHAiYtJ@kS|&8_O95A`t6Foa#+H6J=|*+N2H#X0VM9`T9tH2D8R7Y` zhGgUUk5w)aP?s8*?<=+s3wP@WdDX}dYK8PD(9hN>SZX>2fxI+(C5abR0~Hi?Z-vWFCrgp8j~mHukBQ>wGW(Uz$`kZkOoR@HOru*3 z$uG8sxGflX5KjLj6Wzro080TTXr)8QE=(3W%-~k9=e%(eM}Ijf;m&F3k@{V43+Y~3 zH!ksRkE$J=ox=T%li`&YMb3vzmUk$|HRL+q3U-x>mZZ#DQ_$WZ$T)(#q``w)>Nu=F ztLpmu{u)0%$j`2>;Dmmi2)IJgg4nH*=7-fVu= zxtpa(GhVYRIos|-v~*Hi`eoyIp!>*mXr`@2ck)fuz}WmN7z$Qy+H$xjeYlk>>%}?Z zyy?DX^l7wOfBfL5^W8#J=YV$zeIC)ZnyZ~TqV5Nq1|CVv96s&8A$Duy$Fr1&TXA*P z?#S1vJI7wa0tVJ5$Ba(4$>-57oE<;V1_7ihNk8TCP@=+c<4x1ZoA&4Ao;fJMQ@(1yLzfQ=I}_0RR|U8cyBVtW_!X_10t-kJL9 z>03q|*Qc!)Cv}k*zLMV-n3CfKv9)SgmMv zzTuTlRnqg;5Uj17G`Ro(JKvmRdAxsi)UZ>^QSGo2?6C%;)XnSm>u@{SEP}4Qn|r@; zit-t)Zh{8UsfoHcN=nS1Dp;~U!9xz@gjPP5uGrp+T1RLklS!A&S{?4lpCD zCPWMM>x1buRucy{3Gw(8MZc}j)@D3SHvzyjxT~PEejuCIVx54i_x%_m7k+wr%4O0e zS3&Mu2)3h0*PlKnb@=Fb0@x0R5GZ_dc3|6`92EF=bayLMm_w{T0*<<~t4qFu9AaH4 z(NzuCSYI0{;=)`R@(E_=F4oqYCx<(GwRm`Vm6eq}E@IeqimSPg_6Uolcb9|SI82^I z`F!t2Hv}xN>%cpiTRLx^Iyk^`Fju&!@(QV<18loo?FYQ^i?8v0RSL(PsE2+#?MR2Q zE77k5aWEzx`lTMLJQ9gis35BQ`nDg!*9<(gEa0u=#;{g0uxTlq*F0a~efXu9RR{Pq z$(PTr=@hZDkUsl3^u*kH0wHP7Q_xdh2ONfGlwO?T%K(}+Rk{3+r`z43bp>bCI|>A< zRA!Iz3}E3Yf|Ts2F<*pQn!cmrsSS&iG9x5VQIGSB@uiGRviG5zRek)*L|vgh;r-M8 z5Xdt@VL;7e{2D8(5Jl|iGJSOCuCKqWz<=5m8`E!Jx%#zOZ*#OuIzFZ1JsUw%1d~(~ z&v!eVzjp}xlJXVCQHAEUnjem%ad1WiBS4JI6kLd{_(4}+AY9}mPB81 zdst!?@cm;%qjdY}!%L7rPd4-^Ii6Xw$`-=fGQijJ6Pa?tw2e*wM7%`JB{=q>RZdN@&e*trpe?+2Q!&5r4`MFOHCh}( z`(C}&UHrQF_rNjIFh3h;{Td*r~{XRN6_pIRk!YCZPx3hC+ZUM`pF~0p}t1mOSiHTWi_OHok>$?Bhzl& zz8z!@9&<5Zuuo|~tBgqEcO46`%Do3!7kF0dpRKF6FdOr7u}s*es@k|w9y%wRZ?-63 z2Im6*-8&h4DB2SV+>>ughe5_+VR^t$@JYw`Cnk?<-w0N-JvRwo@@@KfTC*;q-;ZdK zGGgAX9QYMZCrIh&EL>TC^C>pk7|#Np08P0J-EE<&iA+CVzNU{~kJkh9DOhH1tK2W7 zgVf#ovuA&fjpo8@Ir5A+p#od%?x7b<8 zo^|p?^X64~l0^9Eco}fc&uWB;Nvn%Bu|4M&cE1Z^V1fxel+lxq>H&p+yokve3^Vqv zg@0a&LKyMVEfdDybsk|$pf$GwL;JwrEVH%k##WH(Lj*K=5*e5#A+Lge7NG1-zip0s zmO%3R)Y{oupiCE{leaDfGj@=&G+%qzEF%)7GGP4TyugZFSyO^8!!Hyptj0KgKE7x> zT2Ir$(o%G=Zbb)D_lC0x>jTI!UPT>w6Run zU{HY87*8Sw6f}jSJqX9M6DN#IF)^X7idiibVM@yQ&}sX5jhU;CD#z#|t{245vtF6J zTH95YMU{1Q2=)LRgMM+n z+A2v64k|Z4@_1fmIr1;?KL>;VKkPhWfBLxlp+@4Myg|zKK)Q&Vwj&zL2c@@c8^aH_*UIeJek1iq{?0yGhz*N(Y^-iiSK&Ypm_xQtn4j!cIzth zWf9&3Y~9Nw{3@EY8xQGp?CuVdI^;aO$1Tqa7M|qmPBo2Id)ak*z|U3mxRTPcxv1vd zJ^N;l#(6z%tU5(~d{8$8#9H}OG!>$HE41w|c{hm**AoAdBT4NiuratE$b`|3>DhOT1?|(Ot52ETs)a?;^R84p^Xz4=0TmMCd)t3vGmP#1nCLL$%N_r0IeV3i#bFLyzG?JhSaP52qCjn)if(+d_} z5jbNvGgiHb=pqb;z2Pd=*^4J*uLAuwBgG9Lkh(1t=3cIipHiCpgQ#j>z=D~hQ@STX zRGPbY&XtbT_A*~hygrnx=%%n5pLzOa5kj!Wtmt()K1+uUW#Vxda)R!rzaYP)IAaJd zN7B)uq~y47yG-8*e(-U_mOSf3itE0N+CV%?e|>jVnRfW*ZU>k~~%fk8S4) z8_^(NKXyo&y!tQS@O^WZgTl>0G0q$OO5^*O)gD=>^9Cls=eRK<&eYZv+TDiskm zxR6cp3!Q@LjD^ME=oFn=kufadOS5Gi=SdfVa2&fdV{GRY=gLag%LNX^mQ1iAoyF2= zc(0Ti6RF#vXJ@3YAq#=gz3{@E;8Hkq>c;G&(Zrs*57X*7P?rbH!>_rDyf_|nmmd0& zL~uHY@NM6*e<5W7sv`5TV!%dE26RX9(9a`X2CLIIk?5E@<(qnhx@0@T;aeO4TpWi8 zb~620N|>^IEY8kv*~`b{lFP-}33ps@=Sc*eB1+->9m0efmqm85L#Au-+EW+1fnfu6 zHzVY`N0QnbBh^;%{bTLfNVup2ZlwvV1ZuVqq$hT<4JC*C(M85JfrQIg(-Qo`E9j{X zq3{R%WK59W<1ALg*NfTk@3;N+mB%F%JG0Y0m?EY!ndsb~-*WmEr?1==wCVKdb|41n zY1}q(HuUSK*2_k)s@Lui58-v)s9uZg3h8y+ZyJ3~mywNAdpBarcWQ{xl zF(}*f~UZsJ;ZY+Au%B#;m@7CB@@e9>(Rw7{$RrUu1TldDgag)jk~M> zck2h+^Tw`e`bTEmmPx`+eV*2+RYG=z!|AX1fpE(pu^Hv{)N)_DQOj~S%eE1Zm@k!D z)8(Ic07JPtl9iWVs@cjn6d+(zA?aI>NnKJ#57?lJD*IR&jldeP=MQZCl$48_F4Mlk zs+;+NgJzXDRnW*PYdVo9;Pq2KIdSUBcY1%t$6wv?q`so#3`XrP$$5AZlTF0Rk2c-o zLSHX^RyIzy*W!9Jb44y34cf~zaR0a5Ev1oz$4R4rDsHvm)7>k1!caR;ZYq1&kKdsR zvHnT?PnJ4tEN5M47yvodKLPpdm23*@+Oe~bOJYLRXe0f;>ZSAu?N?~lKJ)E(JOggh zs(KDeb#R=_KNoGP2hks2xek#hyTBA@$3Zi$S3SMX7PdLJd>ZrC5v9vk+|p!ETc$wk zi9Kq0iu7dM8H(G~(Q>bA9}Y=9)nYD8?R!Iq_p_H7I|sVtPw1D|H@1lzF{82U4&b;($5(4DH{!|l z2ybjhQVERi3m5Y7uwaY6LI)(S%siVw<+^-jTe$cP`$Vm-g-@1 zFV+tC2Y}T*kA2o0o@}5H1onSR;;LG2gs6*Z*Lk3fW}7Uc?~zI8*Tk18SdeD||BST1 zahw0fJK|BIL4B$N9f77s$O&eiV!MrQ?Lvp3E(aUeQ1zsgHha}tDIpvLHH5d`$t zJ&3Mf2TGX9v;FC5JqL#$goBK8T^aB{!bXr|7)8(esXLq4j>nE1AwhS09#7+fJER@hstUUVFB`DZE?zZ z({at~H$2BL2yi4C= ziwru-Z*$99ZuP}9h~)la?5{O};MxELysq$m{Sh^Ve!>>jqmB3!jZ7bZdb4#kLCCj| zK9jEa7z~cq)^`7eqx<`e|AeErP16|ibQggI(MOQh?WOqrwLZHh{%Ii@h!K7{U{;uO zHvA==ncqq93ud=X2Ump3#=bMH{!y`T+siJ~3^AlF*%U zM{&rP8IL*(pY+b83FGCL%I|~Vafg2>pX+*{ErjATW`al4Byhq73D*tj zwDpMs*M7YoC}WrWnxs%%Lzd6Bkml4dacJAwkzJ#e;jsSGNPT68`cN@ZGlT0B@l)(u zK)YEV1yjtShzM!~mbuwGY=?~KiH_XBP1qmHqgW8Pi`_$sKDr9`k~*=U?iYuzh@D_2 zl_11x2`9bsWMKQ-c3$P3TXss_A1 z6z)U5z|(O|onJ17$7EYNL=kc1$%ZZ@Bin%D^sBag73}40cTHkgzX@Wo2mNpy>u<66 zK6kZ9>!h-`em)g&~W^M||Y5#y%!HgfHY^}DUf6sW%@WMjgM4Zi5^eb(U42TQU z9zd(6S{4+yO;&1eIvp&Lt#-7#yn#r42LpkE;{i-Q2^&1x&35{t1ZRlZ^r-)lmMi;k z_tST6A(jlX1ayyM$0ypMtpf-FP$*<|NO3x;kUeI$9nk0{Kx?H_GL2RGM8CFKDWBwW zZ;0_WWqzfc+0p+<3R50j7Z*O7z5yDe&F(xxxc^lB*LOLkZI&6q%$Q_zXS(|q%(bzd zWVeWCdVhDbjmJdo|9}KO$3$AQ{e72>hTe6tFQlwSNh;jpcnyZ5HU=nK(SAPn$kddm z?PAAw7c7WDJqcbTc%MIn0BTm?-5qQh5XU4XCD{!@rZ0~G^g^3n9FS>4zjzmO_~=NH zi3tY2W?lr_wNVTbAYFcpw(A!%7f}LOtLW>|D znVbGl%i;i?!iXy>j!qgtU;iYV`7e_h|7%SCPu;p{1<>^`_OYTL2i}3SfN(S?DUh-7 zgd3H9w+A{2vwF)j7+y#V%@ys+*x^hHnQswB>RA;2Q;GAbL?!1W;H&1z0!mJ$`iC+RN zZ$O8pWYv;~w%h)A*u{Gi2gpinnP=S|qy_5x)t?1FMqU8|x=+uIRIR#*L+{AWTQFQHs<+e;-!1OkMw$x4UJ@84e7g;gs zfLk}ujc3Hm5K7?sz=-@JB_r;>v=*%l#)c-80{8!u*A9`79!>Dw%blfk)H9SOecA$L zPC0R<8!)RbGAj`D$cs@IefruqVG@oXWn|Qk{I$RSy!Zh8fb1g4X}zw6RniBMP%{tC zdG#FF>5?Q%c}fm8Kp>`xDezCwCd+)X0RG{%&_52v~RCnnb59yR$Clg4OA?yvmwuRfn zG>QnD!o%eLLPKZh;Ekp?D}iH^h_Ra(Y0Uxe3oJ;ipBB+J=s@^d^UhEO*W!X!>;^f!J8Xtkw zR1cSjy^~n)ASQm`lV^o+6~kEC)VCmfHGj9Xdvy>957R0X{+rR)IvwxzvJy>5Pic_> zg1=t^So~NiLyrH5lF=MPU;F6pg9aqpU}ktkT?iJt;p@HCZKlH_D*chY>0mp=P8Yak`r^2t#+H4k8z7sv^^KF7O+(%UbuoV;EwiE{eo;iMW9K&Hq;nbGv zk;rQ$w?7Pd=}4%IYd5?SULMofH@HE3J~P3ARL+nzlW(7D%uqf?6VSb(a z!Ro)oc|JHA=QoteeJ$csva`Le@IC1Dt3ed(-mQTv%XILxTp3(b&nbCs=37(pdS#LF zUZTqQwuI8rIJf7$&(g_Yn|^)#9MBz>+`5uMT<590L+c~}>8hI1`pcFAH2EQMo&^r{ zevdgQR_->)5nFk!0oeF&Ki*_6@m_lBtN)cCZOV(-NVV;S?Z~!HCL**rOmlF3082%B z5;g36V@%^gpUNVjIb3U4Jc8YQ3gcp?DL)K5ToUs&VY4#ccJ99i*qz9@PnMO6vJWbx z<4s^P{AUeG(g_ z57SYaS)O_Ez7|JsgaL-`o{J{Ins)q~I;9EDNfVr=^af#q{ z|60U{-ESV|7(f=Sy_V-q(0J`}RjO7JZ{8JwvP@0@ z8jBJzj^_PxMCy9|D;RS#YH{%nh<;a1lDZM1t{=X5!~erX3<)M>BQx17?{Dkul1X6^ zNePKZs+Z`w2F?hw5cH|hhzn^Y?D#T7EWhtU5a4+aM3Z^4NR=y<=FjgZVnmdQJ>ij! zG|OPq0tAcXC?gQaw%Ty(Mg(uuo>;yEAuWn#2fmUth4h#mb zfw9w=TDd|Zt&LRYhc9zW+t}WsG3i_z`HTm-;dQ}V*jZzChCrczZ)a#EGNmK3Qwo$R zCl=v&@TNxwWKs5~5?xO-E*T@PUaQbJDX>eb+z@tIw(of)yu2Uy$r~t3bJHuMxQJYR z$a1wZ)O*_3DMi;TAilG}ZqaAfGA^x&{iDsQcyIlRyo=ZDFGL)P0Yg%IcDApt4)pLf zHiY2qA~4#+H!dP*707x0GxgO` zyQFGwen}O=dE@`5y=P(t zPDPN|jT8!oXDbeR5-|}ry;>zzaPBYdbj?{MlK0g0Y>Iyd}6N` zYv>r}RjJ>h4#I)aILDugGB%=oqLxVSOJtKNK(#rt5doC+dG z_!r-uz3y`#!y4I#g$(1k6yQlg?TGCFset9>7X7Kk29`dHJi>9FaAKEN4C>B?$Wi_Y z((FP9!Ypc;rIDO1U-v3&6p3mClAZ_6;eveFKX-;NrSK7*?`Wd?kEUk!2EjIz6YvN! zwka*e)I)>@M?b>5wQI%l1-qLR;=~gm)&xw=GS)vgbK@&mSu7nLmX>=n5t0(X62CeY z1hQ#x|Ky{*K{Bwp2ai@~EIhV+(RWv!Lg>VQX2)+2H?wBh;#J(+4XDE*Mbji|)7jb0 zH=-YsuE2P2FIP*VgG&33y_@t>153W5=uc!c;N<`8+N*%k_}x1bw8x=m3Q`q{ypaAb z|3GPLrv=~$>c=UYeksS!E# z0n3cwMQOdRSZ3i$CkVtj;omSK4;BA4BSJzPI*dI*lKR^6b9ca1)#BIcrTD1jPaL_% zCC5NC@)GQAlSQ&i28i`lI0!Q0und)J>=w#~U8cf=K1K0HDlG7xG(1*04n6Ib zF9O)Xw0d^IkUUWc(G(zrT#5dlR*C#+Hrv|{OevQFF`%c~&40F;0UB<~%u4@N`r*G_ z-|^o;iSShe5e=|QmA(L@l)}ItJN+ZrNR12EB8&5|(R@#5Eoype7(3Zq?G{LAx>{U_ zmildtg}d(7?^zyMN;m9-uy6 z5p`-+dnep^Jz-MPRbmiw3G(HCPXW@%_D>2BVnk9ZIWtxcQR+D_<^>$1n=Z( zJv}M!W6mDY{}@sZnYJFroO~Aj5X~l}6@zjQVs8sxbz5ETC2nH6EmMn4-BFHYB*-#9fK!)5zlS07)1?@iDlm61;MC?~<=kov>+= zB?}7~_bfMV(pXz82>pdN=xwJCN)llK6%UFe zFWrOC6;5QXtn9hYqJMyto>+jP@W-PT?n2VNf%|Qw{$UIhSpb5%%Ke-WRuaIBhGX<2+L3ZYU#KxLKl&5O987%pPl~k_ zi0od#zTpn8!1$$J++u@~tCm(x2K`|`w9A*Y>F~-Tsca&Xp-(uTD3IoF6u@Ht`YHEzXNq_V~X%~Ca!n#&aoTcS-5{d|3ultFn8 zEsyG+BYUNM#VFs~#1Kw`zuTk?wKHeu>l67_bI;G~wpPq$@^&-Vo?40-R)p1yvxKt$ z61cJQ{14K?UyZrH9zVo?bS=yENXF}F4K`L*;PpeIAD3R6!?~wPgdHN}JIROrJQ}+~ zEL}}YkmQ+Rx5svFo0t?IIX-?7#0w&idxSG~T`_5=uI3VO5`|-Qq8`Y z5yb|txSs2ay`T*WiaGoVZ?B2SOA4lWko)rTWW1r$l9uY5Ug;GQ{@+G+eUSD`}+tGk#>Fsjbj<^sPRmA<^aUEXwSk)(f&yNy%5D#T+OcyC2j#)Vw85y=M z5UsEUn?q1{-Bub40tbTWY}Tmuk@tHmeHj^WtErl+_e4NRi;drqX+m{YGLR#`6nqIX z8QELTOV9wyKIni#^Pr}y%f97~16)H`RMhG$Pc$@wb9xkQb{w-pS2y=o@>9Kh z{D&ES!sI|^Hg^i@5tJK1*jx1r^!gzOiXiH#LKe_e{_NK_G9f+PNoh)zE33!;`UBr~ zx*;2Sl_;n()w4)%TSN(zLGQjB$ugb%a!2i&{8(F|^@f|Ui`@Km;d}G5p`l|4d4V~- z`&aLMMplHrO6&c3;`HK)Aiso!WqwXaAAyR!$Mv!&o@#XNcT6Y>qnEC|Bvx>$Nwb4V z>E)36Tq|IKYq{Tp)b(6ob{W%If8Qunb0^(B{r6*&X1;LhP&-XuKD#;~9hsqwSMuq8zsqHMm z8KW6;PfL%QS%XAvd=dxQ)4zPaA#P^>xetDF>U}${T6Ii=&*^zX{&IH>__+xiexs}& zlA^<|IbkJGxl^%3%B|H~9tAWUlN6XaRkz^F1F-=oYQ66(gU>7D zti7#$oPD-d^TcyV){MKzigxMkK3~fO&LL|X?e$n&!dCnD>5kd`+M4e1&-vsppoCGiJ4rpL)+w)509QItAGfl$7*X( z+#&v@=zc-!NSCj0^hAxPB~%yOI-KiCiEY<_B1b*Rn?P%a}* zJ&&?Hl5#zpDNKW!zcQ!T$Qc12bjlWfCy;LI-{c9pjjE4W5Sq0Iv!e}MetT1ud{Liu zZ?u%e)_6REt%!Zs1PRBgGBcYRevh1+5{wu-z7k4}3>B0s2@V<8sXFa?1O|U?`)nM8 z5q!R)sQE6wIPnM#>XF+OZYoh=>Tt8Bw>M^U#Qz-?-4(auxjy5nI{u|%-)zkRvNwQ*?w=uK`K9o zN&E`) zPk5;^5gB>z!UmpqT7?dShgCe;)R*^&2GQ9jIt=cgZ(u<0e*gjhJHWN+xJm!R28Aa+ zP;G2t17nw6e15M&-uA|@S@O?Pl0I1-^O2)A|MBvMX2kM7B9r_xi_dUudsdoIqFZFc3Hl0`UEG2X={XZ(Qkc->=f90KLR8!lw$AbkBMS>t8 zf{36Lr6U~?6r_Vx6$GUB9;y@-MS}ER0xBgG0fA6L7o~(MgdzqKK#EkQSK+RJ@4R!) zd-sj|#<*j=4=*2gKJ2pg{>}gVuQlgtW9^i`%(3_#W}{!h2>Dq=By$Okf#pr7ZqKcd z?D5Z?vG?npwRMp|YW6|F;Q>%x(dPdF)cE$vzW`M{5@y8yUx8|&`v*{Cub|x$ zsyEi=1)?NZgCa{ulFk8`UM{OG6pSdnVQU~1Ocj;ZJgyff zn3UMsd>+7JNYHAaBb%_`8(#9I6b#Zg!-ydCi;dtHCzkHeEsC)S+ulU z`MKG;esH4ly8SVOrONd3L1Wsa?vk}6Z>u{hd}3q}{F&cuZnZQJQo6@_d+lkpcHt*U z3qif!diEXD%?^u`B6@s#n^Z#a^EEaKw)chtnv@9!=nI^=&JtJlRX& zz25ZNp2oL7yv5JA%73%Z+H#I%dTc=4Ad^1zD8%W+AwjinQ^ja{S(a#3%mqCv$*HJh z^2sPMZC7Kf(6=3voSZrS&3xXhc=vK&oxu63I?2?t18fNj3mVdBmr{R@GKmt=wT$2p zG564@wyD!%YeBW7nx(A^7BSrz4XQ$`()z+__yisZh-g&(yoqwaD#|bhdsT`Sn@0nFR9Q7&vRA z0Ahi5S+B1yD^ZATXKhOikNddNEtxFYaKe}JwK_(xd+09jOolt2$y!dN`3XUGr%F1dbYrN$8fKkR=D#yI35@9nvO(KT58E6)>jZD8hB-`8~?Mz7xe{64mD{F82p zzy&3_Pe}>A@JmW8lv7*ZxV1RJT}ip=8F|wx?Y|YruCH&5hu%Hu0Htk=0^tC(%TACK zcXyrsf_CFh!Fj%gBImCMGD>%S{Hzk}))Yu5N6vbE>Y;pyF&M%7f;<5Ad|ZR1vNJ)& zu&jd-YU#&fvA_NwC%rx?0;6|c)o;oVphSRKpDsaR(3d31Fpf6 zpEc;6JWIU45jDc{FSe;>Vzd2u--G8$cx2fYd~Xj419HzhSxpq6VZyk+o;bDcj}A zn7l$aepy30AXsv%P#NP4CD&37D$1^su+3!Lq<6VtwU;G~K^*)17pc4<|IGj{E;KOx zvULF#w{`J-KU{&z#>}&3QdFEqGZ_)y=B71;*8@+rZqafPP|HPBr= z9&9fg$sC1IypSum8L!3k{($qI2b}L;VT72_gSJ25#|xKPLzRyV)a0gfp*oTTy3Fse zj|^lzJbPz$m@>Jm;JlyycRSFt>$GhD#vPgs))OTtV+!KF73MtMO+ z9uy^Ax=M82~nAbQFN4fOl*7AQA0**?PPPPY8`yzZ-OY^=9ie^&#vLEfKpj=LPv!Qu)OKoM|NJEro$>Tg*GFj-Upd`$fwq~(b2J4xz%YLmq>Qa?qx8^G`fMd_5 z*1ygQuNLs61J3VPdHp1l^-cEXWG||~DyCfv@e)n9T;BYy=Z@OdW$c`m|1$EfL zYzLyv5DwHXMYk#)&I7^kzUas5VXs*1i-f;Rc~SFiZW?g@@hsrHypFHoFsy7or{o53 z2ONh}--W$uOG!nKc1W2%T2pd57x*!E{buNNS=(CsoFRleJilWQjePXm@#3Kgigz6O{2MaYDU1DgCkT=$EbPZ1Omn}`2i@wNp&+e5xQNVf zgQz9szLUqRw9RRKPg&n(oO_5Nf}M4IBvR!noZU}2aXKQuwLEA2=1RwX?@1%u`W|gs zA%`r9h}082gJeW~K5Fz;!E{iq>yB{Z)rS^DKg5gbyQ)2|UUSnAym@1p%{BR)OLOk4 zRveWmVOQUg%^uAmDWaO^L&uAdpH5SNK#l_n&khSf63mP585$d>OHu%nL7Pd_qWE5i zWhv-bDqY~Wv#v(I1QzAF1(QOY$oKV00t1Zymt3EDJ95%)CRz^YcduKAxtUX#E!mS_ z&&p7PS1CZD<0$3We;U^Rx0c602@5sG*XX9hNhJ5jvb2(}-Ova@oG%mmp{GMt<E>p* z^s4s(q~Q@Bbnh5D7&)||An;~#fH%Y4KDj*1YQD9hu8pn9b;?g-nv@`;`D6j!`KUY< zN$zmg_C_?!p!y7d^bHDk>S?zrSwfCAvP-mv0j(h3s zAeiY+fnavk5gW=#g0I@NNqy96nnt(1vBI~M32Y(9ZndeWn_T)(bFz3R7-H%oLle~p zxSQd`x+--yAJI4=?S2j!wfG()@x4K1)I~*{Der?kanF{vcmVgx}MP4A-ad+e>(bZFa8YZgpavjF;IVIp`bf zJ#RbqEO@Py-m@h@)kRAkMO=AAzv|v)FOzWf(6?zHR&OR}jiyD-)OZQJcFHnP1?h#e z(@M+QLZV*#E%9rki1JH7i=>|O?3dx$e5wG64H?EMA;rD`rT?zJmKuFaW0BS${kdWQ z2fOXahbOxO%qj0?`tG`4CBT?}PuOugSb;ryaj!2%@|(S$yzM`c>b@rv^k|i~t@*oI z^rIZ^EJA(Rl@dc< zna7*Xi=4nj1|>9cldj?^oj3fpSHXe~oG9z3>F)GyW=2R2YiQH>_V)JhT}T5?>tFR_ z3@D!jg8AY%O1EWo{_f2n+9u_RC5d@a2evbwvH$du9WuKa9bP_D;v{9*{|~2Imzmsc zY~FfrvrZnZIl;aht=E21MLl4c+DM?+wuy?D8*TBSQrndUo1K4ScNrH+8vhHb^5dBE z2M|N7X2g{CL)yvc<0GDTHblD#U4)Es{!1c0elytYgU378f515sgR$E3$ zE?CYz%dfPkUNoBtuHR={FHjrUKEA=?H3DSL309<&(*fBv%A-T_QJS}@##N-8!L=87 z_&3NqcGE63Ec0a9UH5u$6vFqBjtR*42Kgmq+CVujS#(Y4dAzt#bJG0FOk5Qze_Rn! zEsI6NGJa6_sR28jHD?=d9X^MPD!4%3=E?PIRNXnOmc=DnUWICtUXrqp*VT!G`IgGb z3)61~!uQen4m_zcdUO;@gE1~|%7ye5d3X7#6=cMbPOStXcaqVTHL#5?u?Kp<-qv*X z1nAhkOKcemc4kofZ97B*b!nF`=U|6-j-gsd8ePdvl&Pv2_sa82rbPiy1!>2eiV;^M zC>uzN#QxCQ{(u-|^mY7bRx>IdleQ-cE{O+R5<;>zimS@T-n9wP;Jj$u^K+QdHlNhs z&SoELrLgS8PK_1dqWg0$cvSaTAMEPB|EmHzPHdaMP(fe}Q>Y%nGyN8u|JoxcS_O2@!L)^j;>0-S6cRa;iy{5amv6B~IP zVuB-fBFAdT{F;{8-}<#dNKZ@i-~Y9-zdJ1>^J^6g{w))KamaZA!1?X#%XO@RO0BE)Pbh!zATiB9SuiTf@_O$ zN-}+4CgeA<9&6x2e@qrS9D>^Gb|c?IqPaYVtvd6I)^vOpDTX;rzgBuwvcAsXm9GjHJPvvTL0IB-3GwRrk!*7FzF%R z$5YR=4PPX0{v!`r^Zi>MG7z34(0@Ug8SA}ddXu2+_NM0}`!H@7sGjWpWz9CG$DVEH zi}prO>-m9CqBt|6xw%6%T&xD$kbebOOj4(WSzGFxxXL7w#wInSd+cNBDX7tlRo7gD zF!FE(KSVOf&_xo%a4POgKYwaYPx&^Uc4lx+f3c*KCV`&xXz0I zW+v7Ph2KKeyjASI^UQm%5^f)AOC{W$8mGUQwSHb&UI42nB8k$w9-u>rc9XNx=0?ey zB$RW<1#4Muj11ZGcrJEPISv*`tTOJ%jKelpWKCG`Hlt@iU^L-^pQ$&XYVDQF75Guu zu1xwYlW?wf0^$JW*MXQI!E8YN{x2uVoohjr+&ssLdC5OdQx=A0i4!99qx&Q%l*tRj S%QpVR`%;ouzg;M2^7J2sGa9@A literal 86503 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

MiU+nMgS*98mecaGJjcS^nF8aZI`F@Mv0|I! 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 HQ$iB}jD23r diff --git a/x2-data-explorer/docs/user-guide.adoc b/x2-data-explorer/docs/user-guide.adoc index 71dcd4d..47f1ccb 100644 --- a/x2-data-explorer/docs/user-guide.adoc +++ b/x2-data-explorer/docs/user-guide.adoc @@ -18,7 +18,7 @@ Multiple files can be loaded at the same time. Each file will be in a separate t Save files are produced when you save a regular game. History files are produced when you save a ladder game. Save and history files have the same format and work the same way, except that save files have an additional header with some extra information. Both file types contain the entire game state history since the last time the history was archived (which occurs during each map transition). -After loading one of these files, the tab will contain three sub-tabs: the <>, the <>, and the <>. +After loading one of these files, the tab will contain four sub-tabs: the <>, the <>, the <>, and the <>. [#general-tab] === General Tab @@ -29,7 +29,7 @@ For a save file, the General tab contains four sections: * Top left: information from the save file header. This can tell you things like: when the save file was created, whether it was created in tactical or strategy, and which version of the game created it. * Top right: a list of mods and DLCs that were active when the save was created. -* Bottom left: a list of singleton XComGameStateObjects. Singleton objects are objects whose class has `bSingletonStateType` set to true. Historical versions of these objects are not serialized, so unlike other objects, there is no way to know what a singleton object looked like at each frame in the history. Fortunately, singleton objects are very rare. XComGameState_Analytics is the only such class in the base game. +* Bottom left: a list of singleton XComGameStateObjects. Singleton objects are objects whose class has `bSingletonStateType` set to true. Historical versions of these objects are not serialized, except in strategy saves, where the archive frame holds the original state of the object. So unlike other objects, there is no way to know what a singleton object looked like at each frame in the history. Fortunately, singleton objects are very rare. XComGameState_Analytics is the only such class in the base game. * Bottom right: the object properties tree, populated when you click on any singleton object. For a history file, the General tab is mostly the same, except the list of mods and DLCs is removed, and the header information only contains a few fields that are available from XComGameStateHistory. @@ -83,6 +83,20 @@ IMPORTANT: When writing expressions to match fields that are Unreal names, remem The frames and objects tables have a summary column that provides a short description of what that frame or object is about. The summaries are powered by Groovy scripts. Default scripts are included in the application, but can be modified if you like. In the Preferences menu at the top of the screen, click the State Object Summary Script or Context Summary Script menu items to edit the scripts. +[#bloat-tab] +=== Bloat Analysis Tab + +image::bloat-analysis-tab.png[] + +The Bloat Analysis tab helps you figure out what's using the most space in your save files. It has six sub-tabs: + +. *Object Class Stats* provides summary statistics for objects that are subclasses of `XComGameState_BaseObject`. It shows the number of objects, min/max/average number of deltas per object (i.e. the number of times an object was changed), and the min/max/average size of each delta. +. *Context Class Stats* provides summary statistics for objects that are subclasses of `XComGameStateContext`. It shows the number of frames that used a context of each class, and the min/max/average/total bytes used by those contexts. +. *Largest Delta Objects* lists the top 500 largest delta objects in the file. The object ID and frame number are provided so you can switch to the Frames tab to get a better idea of what was happening in that frame. +. *Largest Full Objects* lists the top 500 largest full (non-delta) objects in the file. The object ID and frame number are provided so you can switch to the Frames tab to get a better idea of what was happening in that frame. +. *Largest Contexts* lists the top 500 largest contexts in the file. The frame number is provided so you can switch to the Frames tab to get a better idea of what was happening in that frame. +. *Singletons* shows the size of all singleton state objects in the file. + [#problems-tab] === Problems Tab diff --git a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/file/GameStateContext.java b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/file/GameStateContext.java index b31325e..2fecd23 100644 --- a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/file/GameStateContext.java +++ b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/file/GameStateContext.java @@ -11,12 +11,13 @@ import groovy.lang.Script; -public class GameStateContext { +public class GameStateContext implements ISizedObject { private static final UnrealName INTERRUPTION_HISTORY_INDEX = new UnrealName("InterruptionHistoryIndex"); private static final UnrealName HISTORY_INDEX_INTERRUPTED_BY_SELF = new UnrealName("HistoryIndexInterruptedBySelf"); private static final UnrealName INTERRUPTION_STATUS = new UnrealName("InterruptionStatus"); + private final int sizeInFile; private final UnrealName type; private final Map fields; private final HistoryFrame frame; @@ -26,8 +27,9 @@ public class GameStateContext { private final HistoryFrame interruptedByThis; private HistoryFrame resumedBy; - public GameStateContext(GenericObject object, HistoryFrame frame, Map frames, Script summarizer, + public GameStateContext(int sizeInFile, GenericObject object, HistoryFrame frame, Map frames, Script summarizer, List problemsDetected) { + this.sizeInFile = sizeInFile; this.frame = frame; type = object.type; @@ -68,6 +70,11 @@ public Object propertyMissing(String name) { return fields.get(new UnrealName(name)); } + @Override + public int getSizeInFile() { + return sizeInFile; + } + public UnrealName getType() { return type; } diff --git a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/file/GameStateObject.java b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/file/GameStateObject.java index 943afae..6e38106 100644 --- a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/file/GameStateObject.java +++ b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/file/GameStateObject.java @@ -13,11 +13,12 @@ import groovy.lang.Script; import javafx.scene.control.TreeItem; -public class GameStateObject { +public class GameStateObject implements ISizedObject { private static final UnrealName OBJECT_ID = new UnrealName("ObjectID"); private static final UnrealName REMOVED = new UnrealName("bRemoved"); + private final int sizeInFile; private final int objectId; private final boolean removed; // note that it is possible for an object to be added and removed in the same state private final UnrealName type; @@ -27,8 +28,9 @@ public class GameStateObject { private final GameStateObject previousVersion; private GameStateObject nextVersion; - public GameStateObject(Map stateObjects, GenericObject currentVersion, HistoryFrame frame, Script summarizer, - List problemsDetected) { + public GameStateObject(int sizeInFile, Map stateObjects, GenericObject currentVersion, + HistoryFrame frame, Script summarizer, List problemsDetected) { + this.sizeInFile = sizeInFile; this.frame = frame; objectId = (int) currentVersion.properties.get(OBJECT_ID); @@ -71,6 +73,11 @@ public TreeItem getFieldsAsTreeNode(boolean onlyMo return root; } + @Override + public int getSizeInFile() { + return sizeInFile; + } + public int getObjectId() { return objectId; } diff --git a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/file/HistoryFileReader.java b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/file/HistoryFileReader.java index 91af52b..f6aadb9 100644 --- a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/file/HistoryFileReader.java +++ b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/file/HistoryFileReader.java @@ -6,11 +6,12 @@ import java.nio.file.Files; import java.nio.file.StandardOpenOption; import java.util.ArrayList; +import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import java.util.Set; import java.util.function.Consumer; import java.util.function.DoubleConsumer; @@ -38,38 +39,65 @@ public HistoryFile read(FileChannel in, DoubleConsumer progressPercentCallback, reader.decompress(in, decompressedIn); progressTextCallback.accept("Building index"); try (var historyIndex = reader.buildIndex(decompressedIn)) { - Map frames = new HashMap<>(); + XComGameStateHistory history = historyIndex.mapObject(historyIndex.getEntry(0), null, NullXComObjectReferenceResolver.INSTANCE); + var frameRefs = history.History; + var currentFrameNum = history.NumArchivedFrames + 1; + if (!historyIndex.isCreatedByWOTC()) { + // before WOTC, NumArchivedFrames did not exist and archived frames were represented by -1 in the History array + for (int i = frameRefs.size() - 1; i >= 0; i--) { + if (frameRefs.get(i).index() == -1) { + frameRefs = frameRefs.subList(i + 1, frameRefs.size()); + currentFrameNum = i + 2; + break; + } + } + } + + // first pass to parse the state and detect singletons + var numFrames = frameRefs.size(); + var rawFrames = new XComGameState[numFrames]; + var seenObjectIndexes = new HashSet(); + var detectedSingletonTypes = new HashSet(); + for (int i = 0; i < numFrames; i++) { + progressTextCallback.accept("Parsing history frame " + currentFrameNum++); + XComGameState rawFrame = historyIndex.mapObject( + historyIndex.getEntry(frameRefs.get(i).index()), null, NullXComObjectReferenceResolver.INSTANCE); + rawFrames[i] = rawFrame; + for (var objRef : rawFrame.GameStates) { + if (!seenObjectIndexes.add(objRef.index())) { + // multiple frames pointing to same object index, so class must be a singleton + // note that in strategy saves, two versions of a singleton are written + // the first frame (archive frame) points to one version + // all other frames point to the other version + // this does not happen for tactical saves, where all frames point to a single version + detectedSingletonTypes.add(historyIndex.getEntry(objRef.index()).getType()); + } + } + } + + // second pass to parse the state objects + Map frames = new LinkedHashMap<>(); Map parsedObjects = new HashMap<>(); Map stateObjects = new HashMap<>(); - Set singletonStates = new HashSet<>(); + Map singletonStates = new HashMap<>(); List problemsDetected = new ArrayList<>(); var contextSummarizer = ScriptPreferences.CONTEXT_SUMMARY.getExecutable(); var objectSummarizer = ScriptPreferences.STATE_OBJECT_SUMMARY.getExecutable(); - - XComGameStateHistory history = historyIndex.mapObject(historyIndex.getEntry(0), null, NullXComObjectReferenceResolver.INSTANCE); - int numFrames = history.History.size(); - boolean foundFirstFrame = historyIndex.isCreatedByWOTC(); for (int i = 0; i < numFrames; i++) { - var frameRef = history.History.get(i); - if (!foundFirstFrame && frameRef.index() == -1) { - // before WOTC, NumArchivedFrames did not exist and archived frames were represented by -1 in the History array - continue; - } - XComGameState rawFrame = historyIndex.mapObject( - historyIndex.getEntry(frameRef.index()), null, NullXComObjectReferenceResolver.INSTANCE); + XComGameState rawFrame = rawFrames[i]; var parsedFrame = new HistoryFrame(rawFrame.HistoryIndex, rawFrame.TimeStamp); - progressTextCallback.accept("Parsing history frame " + rawFrame.HistoryIndex); + progressTextCallback.accept("Parsing objects for history frame " + rawFrame.HistoryIndex); var contextEntry = historyIndex.getEntry(rawFrame.StateChangeContext.index()); var contextVisitor = new GenericObjectVisitor(null); historyIndex.parseObject(contextEntry, contextVisitor); var parsedContext = new GameStateContext( - contextVisitor.getRootObject(), parsedFrame, frames, contextSummarizer, problemsDetected); + contextEntry.getLength(), contextVisitor.getRootObject(), parsedFrame, frames, contextSummarizer, problemsDetected); for (var stateObjectRef : rawFrame.GameStates) { var stateObjectEntry = historyIndex.getEntry(stateObjectRef.index()); - if (stateObjectEntry.isSingletonState()) { - singletonStates.add(stateObjectEntry); + if (detectedSingletonTypes.contains(stateObjectEntry.getType())) { + singletonStates.putIfAbsent(stateObjectEntry, rawFrame.HistoryIndex); continue; } @@ -94,7 +122,7 @@ public HistoryFile read(FileChannel in, DoubleConsumer progressPercentCallback, stateObject.properties.get(PREV_FRAME_HIST_INDEX)))); } else { parsedObjects.put(stateObjectRef.index(), stateObject); - new GameStateObject(stateObjects, stateObject, parsedFrame, objectSummarizer, problemsDetected); // adds itself to the map + new GameStateObject(stateObjectEntry.getLength(), stateObjects, stateObject, parsedFrame, objectSummarizer, problemsDetected); // adds itself to the map } } @@ -103,22 +131,27 @@ public HistoryFile read(FileChannel in, DoubleConsumer progressPercentCallback, progressPercentCallback.accept(((double) i + 1) / numFrames); } + progressTextCallback.accept("Parsing singletons"); var singletons = singletonStates + .entrySet() .stream() - .map(s -> { + .map(entry -> { + var key = entry.getKey(); var stateObjectVisitor = new GenericObjectVisitor(null); try { - historyIndex.parseObject(s, stateObjectVisitor); + historyIndex.parseObject(key, stateObjectVisitor); } catch (IOException e) { // should never happen throw new UncheckedIOException(e); } - return new HistorySingletonObject(stateObjectVisitor.getRootObject()); + return new HistorySingletonObject(key.getLength(), entry.getValue(), stateObjectVisitor.getRootObject()); }) - .sorted((a, b) -> a.getType().compareTo(b.getType())) + .sorted(Comparator + .comparing(s -> s.getType()) + .thenComparingInt(s -> s.getFirstFrame())) .toList(); - return new HistoryFile(history, frames.values().stream().sorted().toList(), singletons, problemsDetected); + return new HistoryFile(history, List.copyOf(frames.values()), singletons, problemsDetected); } } finally { Files.deleteIfExists(decompressedFile); diff --git a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/file/HistorySingletonObject.java b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/file/HistorySingletonObject.java index 368614a..706c3a2 100644 --- a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/file/HistorySingletonObject.java +++ b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/file/HistorySingletonObject.java @@ -5,21 +5,34 @@ import com.github.rcd47.x2data.lib.unreal.mappings.UnrealName; -public class HistorySingletonObject { +public class HistorySingletonObject implements ISizedObject { private static final UnrealName OBJECT_ID = new UnrealName("ObjectID"); + private final int sizeInFile; + private final int firstFrame; private final int objectId; private final UnrealName type; private final Map fields; - public HistorySingletonObject(GenericObject object) { + public HistorySingletonObject(int sizeInFile, int firstFrame, GenericObject object) { + this.sizeInFile = sizeInFile; + this.firstFrame = firstFrame; objectId = (int) object.properties.get(OBJECT_ID); type = object.type; fields = new HashMap<>(); object.properties.forEach((k, v) -> fields.put(k, new NonVersionedField(v))); } + @Override + public int getSizeInFile() { + return sizeInFile; + } + + public int getFirstFrame() { + return firstFrame; + } + public int getObjectId() { return objectId; } diff --git a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/file/ISizedObject.java b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/file/ISizedObject.java new file mode 100644 index 0000000..64e273d --- /dev/null +++ b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/file/ISizedObject.java @@ -0,0 +1,7 @@ +package com.github.rcd47.x2data.explorer.file; + +public interface ISizedObject { + + int getSizeInFile(); + +} diff --git a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/Main.java b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/Main.java index f767ade..d482b6a 100644 --- a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/Main.java +++ b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/Main.java @@ -22,6 +22,8 @@ import com.github.rcd47.x2data.explorer.file.HistoryFileReader; import com.github.rcd47.x2data.explorer.file.NonVersionedField; import com.github.rcd47.x2data.explorer.jfx.ui.NonVersionedFieldUI; +import com.github.rcd47.x2data.explorer.jfx.ui.ProgressUtils; +import com.github.rcd47.x2data.explorer.jfx.ui.history.HistoryBloatAnalysisUI; import com.github.rcd47.x2data.explorer.jfx.ui.history.HistoryFramesUI; import com.github.rcd47.x2data.explorer.jfx.ui.history.HistoryGeneralUI; import com.github.rcd47.x2data.explorer.jfx.ui.history.HistoryProblemsUI; @@ -38,14 +40,12 @@ import com.github.rcd47.x2data.lib.unreal.mappings.UnrealBasicSaveObject; import com.github.rcd47.x2data.lib.unreal.mappings.UnrealName; import com.github.rcd47.x2data.lib.unreal.typings.UnrealTypingsBuilder; -import com.google.common.base.Throwables; import javafx.application.Application; import javafx.application.Platform; import javafx.collections.FXCollections; import javafx.concurrent.Task; import javafx.event.ActionEvent; -import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.geometry.Rectangle2D; import javafx.scene.Node; @@ -53,14 +53,11 @@ import javafx.scene.control.Alert; import javafx.scene.control.Alert.AlertType; import javafx.scene.control.Button; -import javafx.scene.control.ContextMenu; import javafx.scene.control.Label; import javafx.scene.control.ListCell; import javafx.scene.control.ListView; import javafx.scene.control.MenuButton; import javafx.scene.control.MenuItem; -import javafx.scene.control.ProgressBar; -import javafx.scene.control.ScrollPane; import javafx.scene.control.SplitPane; import javafx.scene.control.Tab; import javafx.scene.control.TabPane; @@ -68,13 +65,9 @@ import javafx.scene.control.TabPane.TabDragPolicy; import javafx.scene.control.ToolBar; import javafx.scene.control.TreeItem; -import javafx.scene.input.Clipboard; -import javafx.scene.input.ClipboardContent; import javafx.scene.input.TransferMode; import javafx.scene.layout.Priority; import javafx.scene.layout.VBox; -import javafx.scene.paint.Color; -import javafx.scene.text.Text; import javafx.stage.FileChooser; import javafx.stage.Screen; import javafx.stage.Stage; @@ -270,7 +263,7 @@ private void openFile(File selectedFile) { } catch (IOException e2) { e.addSuppressed(e2); } - tab.setContent(readingFileFailed(e)); + tab.setContent(ProgressUtils.createTaskFailureUi(e)); } tabPane.getTabs().add(tab); tabPane.getSelectionModel().select(tab); @@ -337,7 +330,7 @@ protected Void call() throws Exception { @Override protected void failed() { - splitPane.getItems().set(0, readingFileFailed(getException())); + splitPane.getItems().set(0, ProgressUtils.createTaskFailureUi(getException())); } }; @@ -365,7 +358,7 @@ protected void succeeded() { @Override protected void failed() { - splitLeft.getChildren().setAll(readingFileFailed(getException())); + splitLeft.getChildren().setAll(ProgressUtils.createTaskFailureUi(getException())); } }; @@ -377,8 +370,10 @@ private void loadHistoryFile(Tab tab, FileChannel in, boolean isSaveFile) { @Override protected Node call() throws Exception { try { + updateProgress(0, 1); // don't show indeterminate progress because we switch to determinate so quickly var header = isSaveFile ? new X2SaveGameReader().readHeader(in) : null; var history = new HistoryFileReader().read(in, p -> updateProgress(p, 1), this::updateMessage); + updateMessage("Setting up UI"); var generalTab = new Tab(HistoryFileTab.GENERAL.getTabTitle(), new HistoryGeneralUI(header, history).getNode()); generalTab.setClosable(false); @@ -386,6 +381,10 @@ protected Node call() throws Exception { var framesTab = new Tab(HistoryFileTab.FRAMES.getTabTitle(), new HistoryFramesUI(history).getNode()); framesTab.setClosable(false); + var bloatAnalysisTab = new Tab(HistoryFileTab.BLOAT_ANALYSIS.getTabTitle()); + new HistoryBloatAnalysisUI(history, bloatAnalysisTab); + bloatAnalysisTab.setClosable(false); + var problemsCount = history.getProblems().size(); var problemsTab = new Tab( HistoryFileTab.PROBLEMS.getTabTitle() + " (" + problemsCount + ")", new HistoryProblemsUI(history).getNode()); @@ -397,12 +396,13 @@ protected Node call() throws Exception { var defaultTabConfig = header == null ? GeneralPreferences.getEffective().getHistoryFileDefaultTab() : GeneralPreferences.getEffective().getSaveFileDefaultTab(); var defaultTab = switch (defaultTabConfig.get()) { + case BLOAT_ANALYSIS -> bloatAnalysisTab; case FRAMES -> framesTab; case GENERAL -> generalTab; case PROBLEMS -> problemsTab; }; - var tabPane = new TabPane(generalTab, framesTab, problemsTab); + var tabPane = new TabPane(generalTab, framesTab, bloatAnalysisTab, problemsTab); tabPane.getSelectionModel().select(defaultTab); return tabPane; @@ -418,47 +418,14 @@ protected void succeeded() { @Override protected void failed() { - tab.setContent(readingFileFailed(getException())); + tab.setContent(ProgressUtils.createTaskFailureUi(getException())); } }; - tab.setContent(readingFileStarted(task)); + tab.setContent(ProgressUtils.createProgressUi(task)); new Thread(task, "HistoryFileLoader").start(); } - - private static Node readingFileStarted(Task task) { - var progressBar = new ProgressBar(); - progressBar.setPrefWidth(400); - progressBar.progressProperty().bind(task.progressProperty()); - - var progressText = new Text(); - progressText.textProperty().bind(task.messageProperty()); - - var vbox = new VBox(5, progressBar, progressText); - vbox.setAlignment(Pos.BASELINE_CENTER); - vbox.setPadding(new Insets(10)); - - return vbox; - } - - private static Node readingFileFailed(Throwable t) { - var text = new Text(Throwables.getStackTraceAsString(t)); - text.setFill(Color.RED); - - var copyMenuItem = new MenuItem("Copy to clipboard"); - copyMenuItem.setOnAction(_ -> { - var content = new ClipboardContent(); - content.putString(text.getText()); - Clipboard.getSystemClipboard().setContent(content); - }); - - var scrollPane = new ScrollPane(text); - scrollPane.setPadding(new Insets(10)); - scrollPane.setContextMenu(new ContextMenu(copyMenuItem)); - - return scrollPane; - } public static void main(String[] args) { launch(args); diff --git a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/ProgressUtils.java b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/ProgressUtils.java new file mode 100644 index 0000000..ff94a06 --- /dev/null +++ b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/ProgressUtils.java @@ -0,0 +1,54 @@ +package com.github.rcd47.x2data.explorer.jfx.ui; + +import com.google.common.base.Throwables; + +import javafx.concurrent.Task; +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.Node; +import javafx.scene.control.ContextMenu; +import javafx.scene.control.MenuItem; +import javafx.scene.control.ProgressBar; +import javafx.scene.control.ScrollPane; +import javafx.scene.input.Clipboard; +import javafx.scene.input.ClipboardContent; +import javafx.scene.layout.VBox; +import javafx.scene.paint.Color; +import javafx.scene.text.Text; + +public class ProgressUtils { + + public static Node createProgressUi(Task task) { + var progressBar = new ProgressBar(); + progressBar.setPrefWidth(400); + progressBar.progressProperty().bind(task.progressProperty()); + + var progressText = new Text(); + progressText.textProperty().bind(task.messageProperty()); + + var vbox = new VBox(5, progressBar, progressText); + vbox.setAlignment(Pos.BASELINE_CENTER); + vbox.setPadding(new Insets(10)); + + return vbox; + } + + public static Node createTaskFailureUi(Throwable t) { + var text = new Text(Throwables.getStackTraceAsString(t)); + text.setFill(Color.RED); + + var copyMenuItem = new MenuItem("Copy to clipboard"); + copyMenuItem.setOnAction(_ -> { + var content = new ClipboardContent(); + content.putString(text.getText()); + Clipboard.getSystemClipboard().setContent(content); + }); + + var scrollPane = new ScrollPane(text); + scrollPane.setPadding(new Insets(10)); + scrollPane.setContextMenu(new ContextMenu(copyMenuItem)); + + return scrollPane; + } + +} diff --git a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/history/HistoryBloatAnalysisUI.java b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/history/HistoryBloatAnalysisUI.java new file mode 100644 index 0000000..7ef5082 --- /dev/null +++ b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/history/HistoryBloatAnalysisUI.java @@ -0,0 +1,394 @@ +package com.github.rcd47.x2data.explorer.jfx.ui.history; + +import java.text.NumberFormat; +import java.util.Comparator; +import java.util.HashMap; +import java.util.IntSummaryStatistics; +import java.util.Map.Entry; +import java.util.PriorityQueue; +import java.util.Queue; + +import com.github.rcd47.x2data.explorer.file.GameStateContext; +import com.github.rcd47.x2data.explorer.file.GameStateObject; +import com.github.rcd47.x2data.explorer.file.HistoryFile; +import com.github.rcd47.x2data.explorer.file.HistorySingletonObject; +import com.github.rcd47.x2data.explorer.file.ISizedObject; +import com.github.rcd47.x2data.explorer.file.NonVersionedField; +import com.github.rcd47.x2data.explorer.jfx.ui.NonVersionedFieldUI; +import com.github.rcd47.x2data.explorer.jfx.ui.ProgressUtils; +import com.github.rcd47.x2data.explorer.jfx.ui.StandardCellFactoryHelper; +import com.github.rcd47.x2data.explorer.jfx.ui.prefs.GeneralPreferences; +import com.github.rcd47.x2data.lib.unreal.mappings.UnrealName; + +import javafx.beans.property.ReadOnlyDoubleWrapper; +import javafx.beans.property.ReadOnlyIntegerWrapper; +import javafx.beans.property.ReadOnlyLongWrapper; +import javafx.beans.property.ReadOnlyStringWrapper; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import javafx.concurrent.Task; +import javafx.geometry.Orientation; +import javafx.scene.Node; +import javafx.scene.control.SplitPane; +import javafx.scene.control.Tab; +import javafx.scene.control.TabPane; +import javafx.scene.control.TableCell; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TableView; + +public class HistoryBloatAnalysisUI { + + // TODO update docs with this UI + + private static final int LARGEST_LIMIT = 500; + + public HistoryBloatAnalysisUI(HistoryFile history, Tab parent) { + var task = new Task() { + @SuppressWarnings("unchecked") + @Override + protected Node call() throws Exception { + // analysis + + updateProgress(0, 1); + var perObjectStatsMap = new HashMap(); + var perContextClassStatsMap = new HashMap(); + var largestDeltaObjects = new LargestList(); + var largestFullObjects = new LargestList(); + var largestContexts = new LargestList(); + var frames = history.getFrames(); + var numFrames = frames.size(); + for (int i = 0; i < numFrames; i++) { + var frame = frames.get(i); + updateMessage("Analayzing frame " + frame.getNumber()); + var context = frame.getContext(); + perContextClassStatsMap.computeIfAbsent(context.getType(), _ -> new IntSummaryStatistics()).accept(context.getSizeInFile()); + largestContexts.add(context); + for (var gso : frame.getObjects().values()) { + if (gso.getFrame().equals(frame)) { + perObjectStatsMap.computeIfAbsent(gso.getObjectId(), _ -> new GameStateObjectStats()).add(gso); + if (gso.getPreviousVersion() == null) { + largestFullObjects.add(gso); + } else { + largestDeltaObjects.add(gso); + } + } + } + updateProgress(((double) i + 1) / numFrames, 1); + } + var perObjectStats = FXCollections.observableArrayList(perObjectStatsMap.values()); + var perContextClassStats = FXCollections.observableArrayList(perContextClassStatsMap.entrySet()); + + var perObjectClassStatsMap = new HashMap(); + for (var objStats : perObjectStats) { + perObjectClassStatsMap.computeIfAbsent(objStats.type, GameStateClassStats::new).add(objStats); + } + var perObjectClassStats = FXCollections.observableArrayList(perObjectClassStatsMap.values()); + + // object class stats table + + var colClassType = new TableColumn("Class"); + colClassType.setCellValueFactory(t -> new ReadOnlyStringWrapper(t.getValue().type.getOriginal())); + + var colClassObjCount = new TableColumn("# Objects"); + colClassObjCount.setCellValueFactory(t -> new ReadOnlyIntegerWrapper(t.getValue().objectCount).asObject()); + formatNumericColumn(colClassObjCount, null); + + var colClassTotalBytes = new TableColumn("Total Bytes"); + colClassTotalBytes.setCellValueFactory(t -> new ReadOnlyIntegerWrapper(t.getValue().totalBytes).asObject()); + formatNumericColumn(colClassTotalBytes, null); + + var colClassDeltaBytesAvg = new TableColumn("Avg Bytes/Delta"); + colClassDeltaBytesAvg.setCellValueFactory(t -> new ReadOnlyDoubleWrapper(t.getValue().deltaByteStats.getAverage()).asObject()); + formatNumericColumn(colClassDeltaBytesAvg, null); + + var colClassDeltaBytesMin = new TableColumn("Min Bytes/Delta"); + colClassDeltaBytesMin.setCellValueFactory(t -> new ReadOnlyIntegerWrapper(t.getValue().deltaByteStats.getMin()).asObject()); + formatNumericColumn(colClassDeltaBytesMin, Integer.MAX_VALUE); + + var colClassDeltaBytesMax = new TableColumn("Max Bytes/Delta"); + colClassDeltaBytesMax.setCellValueFactory(t -> new ReadOnlyIntegerWrapper(t.getValue().deltaByteStats.getMax()).asObject()); + formatNumericColumn(colClassDeltaBytesMax, Integer.MIN_VALUE); + + var colClassDeltaCount = new TableColumn("Total Deltas"); + colClassDeltaCount.setCellValueFactory(t -> new ReadOnlyLongWrapper(t.getValue().deltaCountStats.getSum()).asObject()); + formatNumericColumn(colClassDeltaCount, null); + + var colClassDeltaAvg = new TableColumn("Avg Deltas"); + colClassDeltaAvg.setCellValueFactory(t -> new ReadOnlyDoubleWrapper(t.getValue().deltaCountStats.getAverage()).asObject()); + formatNumericColumn(colClassDeltaAvg, null); + + var colClassDeltaMin = new TableColumn("Min Deltas"); + colClassDeltaMin.setCellValueFactory(t -> new ReadOnlyIntegerWrapper(t.getValue().deltaCountStats.getMin()).asObject()); + formatNumericColumn(colClassDeltaMin, null); + + var colClassDeltaMax = new TableColumn("Max Deltas"); + colClassDeltaMax.setCellValueFactory(t -> new ReadOnlyIntegerWrapper(t.getValue().deltaCountStats.getMax()).asObject()); + formatNumericColumn(colClassDeltaMax, null); + + var classStatsTable = new TableView<>(perObjectClassStats); + classStatsTable.getColumns().addAll( + colClassType, colClassObjCount, colClassTotalBytes, colClassDeltaBytesAvg, colClassDeltaBytesMin, + colClassDeltaBytesMax, colClassDeltaCount, colClassDeltaAvg, colClassDeltaMin, colClassDeltaMax); + + // context class stats table + + var colContextType = new TableColumn, String>("Class"); + colContextType.setCellValueFactory(t -> new ReadOnlyStringWrapper(t.getValue().getKey().getOriginal())); + + var colContextCount = new TableColumn, Long>("# Frames"); + colContextCount.setCellValueFactory(t -> new ReadOnlyLongWrapper(t.getValue().getValue().getCount()).asObject()); + formatNumericColumn(colContextCount, null); + + var colContextBytesTotal = new TableColumn, Long>("Total Bytes"); + colContextBytesTotal.setCellValueFactory(t -> new ReadOnlyLongWrapper(t.getValue().getValue().getSum()).asObject()); + formatNumericColumn(colContextBytesTotal, null); + + var colContextBytesAvg = new TableColumn, Double>("Avg Bytes"); + colContextBytesAvg.setCellValueFactory(t -> new ReadOnlyDoubleWrapper(t.getValue().getValue().getAverage()).asObject()); + formatNumericColumn(colContextBytesAvg, null); + + var colContextBytesMin = new TableColumn, Integer>("Min Bytes"); + colContextBytesMin.setCellValueFactory(t -> new ReadOnlyIntegerWrapper(t.getValue().getValue().getMin()).asObject()); + formatNumericColumn(colContextBytesMin, null); + + var colContextBytesMax = new TableColumn, Integer>("Max Bytes"); + colContextBytesMax.setCellValueFactory(t -> new ReadOnlyIntegerWrapper(t.getValue().getValue().getMax()).asObject()); + formatNumericColumn(colContextBytesMax, null); + + var contextStatsTable = new TableView<>(perContextClassStats); + contextStatsTable.getColumns().addAll( + colContextType, colContextCount, colContextBytesTotal, colContextBytesAvg, colContextBytesMin, colContextBytesMax); + + // largest delta objects + + var colDeltaObjId = new TableColumn("Object ID"); + colDeltaObjId.setCellValueFactory(t -> new ReadOnlyIntegerWrapper(t.getValue().getObjectId()).asObject()); + + var colDeltaObjType = new TableColumn("Object Class"); + colDeltaObjType.setCellValueFactory(t -> new ReadOnlyStringWrapper(t.getValue().getType().getOriginal())); + + var colDeltaSize = new TableColumn("Delta Size"); + colDeltaSize.setCellValueFactory(t -> new ReadOnlyIntegerWrapper(t.getValue().getSizeInFile()).asObject()); + formatNumericColumn(colDeltaSize, null); + + var colDeltaObjSummary = new TableColumn("Object Summary"); + colDeltaObjSummary.setCellValueFactory(t -> new ReadOnlyStringWrapper(t.getValue().getSummary())); + + var colDeltaFrameNum = new TableColumn("Frame #"); + colDeltaFrameNum.setCellValueFactory(t -> new ReadOnlyIntegerWrapper(t.getValue().getFrame().getNumber()).asObject()); + + var colDeltaCtxSummary = new TableColumn("Context Summary"); + colDeltaCtxSummary.setCellValueFactory(t -> new ReadOnlyStringWrapper(t.getValue().getFrame().getContext().getSummary())); + + var deltaObjectsTable = new TableView<>(largestDeltaObjects.toList()); + deltaObjectsTable.getColumns().addAll( + colDeltaObjId, colDeltaObjType, colDeltaSize, colDeltaObjSummary, colDeltaFrameNum, colDeltaCtxSummary); + + var deltaSplitPane = new SplitPane(deltaObjectsTable, new ObjectPropertiesTable(null, deltaObjectsTable).getNode()); + deltaSplitPane.setOrientation(Orientation.HORIZONTAL); + + // largest full objects + + var colFullObjId = new TableColumn("Object ID"); + colFullObjId.setCellValueFactory(t -> new ReadOnlyIntegerWrapper(t.getValue().getObjectId()).asObject()); + + var colFullObjType = new TableColumn("Object Class"); + colFullObjType.setCellValueFactory(t -> new ReadOnlyStringWrapper(t.getValue().getType().getOriginal())); + + var colFullSize = new TableColumn("Object Size"); + colFullSize.setCellValueFactory(t -> new ReadOnlyIntegerWrapper(t.getValue().getSizeInFile()).asObject()); + formatNumericColumn(colFullSize, null); + + var colFullObjSummary = new TableColumn("Object Summary"); + colFullObjSummary.setCellValueFactory(t -> new ReadOnlyStringWrapper(t.getValue().getSummary())); + + var colFullFrameNum = new TableColumn("Frame #"); + colFullFrameNum.setCellValueFactory(t -> new ReadOnlyIntegerWrapper(t.getValue().getFrame().getNumber()).asObject()); + + var colFullCtxSummary = new TableColumn("Context Summary"); + colFullCtxSummary.setCellValueFactory(t -> new ReadOnlyStringWrapper(t.getValue().getFrame().getContext().getSummary())); + + var fullObjectsTable = new TableView<>(largestFullObjects.toList()); + fullObjectsTable.getColumns().addAll( + colFullObjId, colFullObjType, colFullSize, colFullObjSummary, colFullFrameNum, colFullCtxSummary); + + var fullSplitPane = new SplitPane(fullObjectsTable, new ObjectPropertiesTable(null, fullObjectsTable).getNode()); + fullSplitPane.setOrientation(Orientation.HORIZONTAL); + + // largest contexts + + var colCtxFrameNum = new TableColumn("Frame #"); + colCtxFrameNum.setCellValueFactory(t -> new ReadOnlyIntegerWrapper(t.getValue().getFrame().getNumber()).asObject()); + + var colCtxType = new TableColumn("Context Class"); + colCtxType.setCellValueFactory(t -> new ReadOnlyStringWrapper(t.getValue().getType().getOriginal())); + + var colCtxSize = new TableColumn("Context Size"); + colCtxSize.setCellValueFactory(t -> new ReadOnlyIntegerWrapper(t.getValue().getSizeInFile()).asObject()); + formatNumericColumn(colCtxSize, null); + + var colCtxSummary = new TableColumn("Context Summary"); + colCtxSummary.setCellValueFactory(t -> new ReadOnlyStringWrapper(t.getValue().getSummary())); + + var ctxTable = new TableView<>(largestContexts.toList()); + ctxTable.getColumns().addAll(colCtxFrameNum, colCtxType, colCtxSize, colCtxSummary); + + var ctxProperties = new NonVersionedFieldUI( + GeneralPreferences.getEffective().getHistoryContextPropsTreeExpanded(), + "Click a context to view its properties"); + ctxProperties.getRootProperty().bind( + ctxTable.getSelectionModel().selectedItemProperty().map(f -> NonVersionedField.convertToTreeItems(f.getFields()))); + + var ctxSplitPane = new SplitPane(ctxTable, ctxProperties.getNode()); + ctxSplitPane.setOrientation(Orientation.HORIZONTAL); + + // singletons + + var colSingletonId = new TableColumn("Singleton ID"); + colSingletonId.setCellValueFactory(f -> new ReadOnlyIntegerWrapper(f.getValue().getObjectId()).asObject()); + var colSingletonType = new TableColumn("Singleton Type"); + colSingletonType.setCellValueFactory(f -> new ReadOnlyStringWrapper(f.getValue().getType().getOriginal())); + StandardCellFactoryHelper.setFactoryForStringValueColumn(colSingletonType); + var colSingletonFirstFrame = new TableColumn("First Frame"); + colSingletonFirstFrame.setCellValueFactory(f -> new ReadOnlyIntegerWrapper(f.getValue().getFirstFrame()).asObject()); + var colSingletonSize = new TableColumn("Size"); + colSingletonSize.setCellValueFactory(f -> new ReadOnlyIntegerWrapper(f.getValue().getSizeInFile()).asObject()); + formatNumericColumn(colSingletonSize, null); + + var singletonsTable = new TableView<>(FXCollections.observableList(history.getSingletons())); + singletonsTable.getColumns().addAll(colSingletonId, colSingletonType, colSingletonFirstFrame, colSingletonSize); + singletonsTable.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY_ALL_COLUMNS); + + var singletonPropsUI = new NonVersionedFieldUI( + GeneralPreferences.getEffective().getHistorySingletonPropsTreeExpanded(), + "Click a singleton state to view its properties"); + singletonPropsUI.getRootProperty().bind( + singletonsTable.getSelectionModel().selectedItemProperty().map(f -> NonVersionedField.convertToTreeItems(f.getFields()))); + + var singletonSplitPane = new SplitPane(singletonsTable, singletonPropsUI.getNode()); + singletonSplitPane.setOrientation(Orientation.HORIZONTAL); + + // tab pane + + var tabObjClassStats = new Tab("Object Class Stats", classStatsTable); + tabObjClassStats.setClosable(false); + + var tabContextClassStats = new Tab("Context Class Stats", contextStatsTable); + tabContextClassStats.setClosable(false); + + var tabLargestDeltaObjects = new Tab("Largest Delta Objects", deltaSplitPane); + tabLargestDeltaObjects.setClosable(false); + + var tabLargestFullObjects = new Tab("Largest Full Objects", fullSplitPane); + tabLargestFullObjects.setClosable(false); + + var tabLargestContexts = new Tab("Largest Contexts", ctxSplitPane); + tabLargestContexts.setClosable(false); + + var tabSingletons = new Tab("Singletons", singletonSplitPane); + tabSingletons.setClosable(false); + + return new TabPane(tabObjClassStats, tabContextClassStats, tabLargestDeltaObjects, tabLargestFullObjects, tabLargestContexts, tabSingletons); + } + + @Override + protected void succeeded() { + parent.setContent(getValue()); + } + + @Override + protected void failed() { + parent.setContent(ProgressUtils.createTaskFailureUi(getException())); + } + }; + + parent.setContent(ProgressUtils.createProgressUi(task)); + parent.selectedProperty().addListener((_, _, selected) -> { + if (selected && !task.isDone() && !task.isRunning()) { + new Thread(task, "BloatAnalysis").start(); + } + }); + } + + private static void formatNumericColumn(TableColumn col, T nullValue) { + var numFmt = NumberFormat.getInstance(); + + col.setCellFactory(_ -> { + var cell = new TableCell(); + cell.textProperty().bind(cell.itemProperty().map(v -> v.equals(nullValue) ? "-" : numFmt.format(v))); + return cell; + }); + } + + private static class GameStateClassStats { + UnrealName type; + int objectCount; + int totalBytes; + IntSummaryStatistics deltaByteStats; + IntSummaryStatistics deltaCountStats; + + GameStateClassStats(UnrealName type) { + this.type = type; + deltaByteStats = new IntSummaryStatistics(); + deltaCountStats = new IntSummaryStatistics(); + } + + void add(GameStateObjectStats objStats) { + objectCount++; + totalBytes += objStats.totalBytes; + deltaByteStats.combine(objStats.deltaByteStats); + deltaCountStats.accept(objStats.deltaCount); + } + } + + private static class GameStateObjectStats { + int id; + UnrealName type; + IntSummaryStatistics deltaByteStats; + int totalBytes; + int deltaCount; + + void add(GameStateObject gso) { + int bytes = gso.getSizeInFile(); + if (id == 0) { + id = gso.getObjectId(); + type = gso.getType(); + deltaByteStats = new IntSummaryStatistics(); + totalBytes = bytes; + } else { + deltaByteStats.accept(bytes); + totalBytes += bytes; + deltaCount++; + } + } + } + + private static class LargestList { + final Queue queue; + int queueSize; + + LargestList() { + queue = new PriorityQueue<>(LARGEST_LIMIT + 1, Comparator.comparingInt(ISizedObject::getSizeInFile)); + } + + void add(T obj) { + if (queueSize < LARGEST_LIMIT) { + queueSize++; + queue.add(obj); + } else if (obj.getSizeInFile() > queue.peek().getSizeInFile()) { + queue.poll(); + queue.add(obj); + } // else obj size is <= the smallest in queue, so nothing to do + } + + ObservableList toList() { + var list = FXCollections.observableArrayList(); + T obj; + while ((obj = queue.poll()) != null) { // PriorityQueue's iterator() is unordered + list.addFirst(obj); + } + return list; + } + } + +} diff --git a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/history/HistoryFramesTable.java b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/history/HistoryFramesTable.java index 808412b..dfa2d0a 100644 --- a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/history/HistoryFramesTable.java +++ b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/history/HistoryFramesTable.java @@ -22,6 +22,7 @@ import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.ToolBar; +import javafx.scene.layout.Priority; import javafx.scene.layout.Region; import javafx.scene.layout.VBox; @@ -124,6 +125,7 @@ public HistoryFramesTable(HistoryFile history) { table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY_ALL_COLUMNS); table.itemsProperty().bind( filters.getProperty().map(p -> FXCollections.observableList(history.getFrames().stream().filter(p).toList()))); + VBox.setVgrow(table, Priority.ALWAYS); // top-level layout diff --git a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/history/HistoryGeneralUI.java b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/history/HistoryGeneralUI.java index ae73847..549ff6b 100644 --- a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/history/HistoryGeneralUI.java +++ b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/history/HistoryGeneralUI.java @@ -77,9 +77,11 @@ public HistoryGeneralUI(X2SaveGameHeader saveHeader, HistoryFile historyFile) { var colSingletonType = new TableColumn("Singleton Type"); colSingletonType.setCellValueFactory(f -> new ReadOnlyStringWrapper(f.getValue().getType().getOriginal())); StandardCellFactoryHelper.setFactoryForStringValueColumn(colSingletonType); + var colSingletonFirstFrame = new TableColumn("First Frame"); + colSingletonFirstFrame.setCellValueFactory(f -> new ReadOnlyIntegerWrapper(f.getValue().getFirstFrame()).asObject()); var singletonsTable = new TableView<>(FXCollections.observableList(historyFile.getSingletons())); - singletonsTable.getColumns().addAll(colSingletonId, colSingletonType); + singletonsTable.getColumns().addAll(colSingletonId, colSingletonType, colSingletonFirstFrame); singletonsTable.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY_ALL_COLUMNS); // singleton state properties table diff --git a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/history/HistoryObjectsTable.java b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/history/HistoryObjectsTable.java index a96fe39..105b1ac 100644 --- a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/history/HistoryObjectsTable.java +++ b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/history/HistoryObjectsTable.java @@ -26,6 +26,7 @@ import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.ToolBar; +import javafx.scene.layout.Priority; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; @@ -142,6 +143,7 @@ public HistoryObjectsTable(HistoryFile history, TableView framesTa .ifPresent(o -> Platform.runLater(() -> objectsTable.getSelectionModel().select(o))); } }); + VBox.setVgrow(objectsTable, Priority.ALWAYS); // top-level layout diff --git a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/history/ObjectPropertiesTable.java b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/history/ObjectPropertiesTable.java index 491bb56..e8a47b1 100644 --- a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/history/ObjectPropertiesTable.java +++ b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/history/ObjectPropertiesTable.java @@ -27,6 +27,7 @@ import javafx.scene.control.TreeTableCell; import javafx.scene.control.TreeTableColumn; import javafx.scene.control.TreeTableView; +import javafx.scene.layout.Priority; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; @@ -138,6 +139,7 @@ public ObjectPropertiesTable(TableView framesTable, TableView { - var path = new ArrayList(); - var treeItem = getTableRow().getTreeItem(); - while (true) { - path.add(treeItem.getValue().getName()); - treeItem = treeItem.getParent(); - if (treeItem.getValue() == null) { - // reached root node - break; + var frameNum = Integer.toString(frame.getNumber()); + if (framesTable == null) { + setText(frameNum); + } else { + var link = new Hyperlink(frameNum); + link.setOnAction(_ -> { + var path = new ArrayList(); + var treeItem = getTableRow().getTreeItem(); + while (true) { + path.add(treeItem.getValue().getName()); + treeItem = treeItem.getParent(); + if (treeItem.getValue() == null) { + // reached root node + break; + } } - } - Collections.reverse(path); - - framesTable.getSelectionModel().select(frame); - framesTable.scrollTo(framesTable.getSelectionModel().getSelectedIndex()); - objectsTable.getSelectionModel().select(state); - objectsTable.scrollTo(objectsTable.getSelectionModel().getSelectedIndex()); - - var newTreeItem = table.getRoot(); - for (var element : path) { - newTreeItem.setExpanded(true); - newTreeItem = newTreeItem.getChildren().stream().filter(i -> i.getValue().getName().equals(element)).findAny().get(); + Collections.reverse(path); - } - table.getSelectionModel().select(newTreeItem); - table.scrollTo(table.getSelectionModel().getSelectedIndex()); - }); - setGraphic(link); + framesTable.getSelectionModel().select(frame); + framesTable.scrollTo(framesTable.getSelectionModel().getSelectedIndex()); + objectsTable.getSelectionModel().select(state); + objectsTable.scrollTo(objectsTable.getSelectionModel().getSelectedIndex()); + + var newTreeItem = table.getRoot(); + for (var element : path) { + newTreeItem.setExpanded(true); + newTreeItem = newTreeItem.getChildren().stream().filter(i -> i.getValue().getName().equals(element)).findAny().get(); + + } + table.getSelectionModel().select(newTreeItem); + table.scrollTo(table.getSelectionModel().getSelectedIndex()); + }); + setGraphic(link); + } } } } diff --git a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/prefs/HistoryFileTab.java b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/prefs/HistoryFileTab.java index ca984b9..2e6445b 100644 --- a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/prefs/HistoryFileTab.java +++ b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/prefs/HistoryFileTab.java @@ -4,6 +4,7 @@ public enum HistoryFileTab { GENERAL("General"), FRAMES("Frames"), + BLOAT_ANALYSIS("Bloat Analysis"), PROBLEMS("Problems"), ; diff --git a/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/history/X2HistoryIndexEntry.java b/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/history/X2HistoryIndexEntry.java index e2fc2db..9f1f023 100644 --- a/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/history/X2HistoryIndexEntry.java +++ b/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/history/X2HistoryIndexEntry.java @@ -9,7 +9,6 @@ public class X2HistoryIndexEntry { private int previousVersionIndex; private long position; private int length; - private boolean singletonState; private Class mappedType; X2HistoryIndexEntry(int arrayIndex, UnrealName type, int previousVersionIndex) { @@ -53,14 +52,6 @@ void setLength(int length) { this.length = length; } - public boolean isSingletonState() { - return singletonState; - } - - void setSingletonState(boolean singletonState) { - this.singletonState = singletonState; - } - public Class getMappedType() { return mappedType; } diff --git a/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/history/X2HistoryReader.java b/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/history/X2HistoryReader.java index 8a2de48..8f9a035 100644 --- a/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/history/X2HistoryReader.java +++ b/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/history/X2HistoryReader.java @@ -208,7 +208,6 @@ public X2HistoryIndex buildIndex(FileChannel decompressedIn) throws IOException for (var entry : entries) { var entryTyping = typings.getOrDefault(entry.getType(), UnrealTypeInformer.UNKNOWN); entry.setMappedType(entryTyping.mappedType); - entry.setSingletonState(entryTyping.isSingletonStateType); } return new X2HistoryIndex(decompressedIn, createdByWOTC, entries, typings); diff --git a/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/mappings/XComSingletonStateType.java b/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/mappings/XComSingletonStateType.java deleted file mode 100644 index 1fdd8e4..0000000 --- a/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/mappings/XComSingletonStateType.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.rcd47.x2data.lib.unreal.mappings; - -import static java.lang.annotation.ElementType.TYPE; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -@Documented -@Retention(RUNTIME) -@Target(TYPE) -public @interface XComSingletonStateType { - -} diff --git a/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/mappings/base/CharacterStat.java b/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/mappings/base/CharacterStat.java index a8ea403..bf5ca9c 100644 --- a/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/mappings/base/CharacterStat.java +++ b/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/mappings/base/CharacterStat.java @@ -2,11 +2,14 @@ import java.util.List; +import com.github.rcd47.x2data.lib.unreal.mapper.ref.IXComStateObjectReference; + public class CharacterStat { public float BaseMaxValue; public float CurrentValue; public float MaxValue; public List StatModAmounts; + public List> StatMods; } diff --git a/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/mappings/base/XComGameState_Analytics.java b/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/mappings/base/XComGameState_Analytics.java index 6a45eec..0fcbffd 100644 --- a/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/mappings/base/XComGameState_Analytics.java +++ b/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/mappings/base/XComGameState_Analytics.java @@ -4,9 +4,7 @@ import java.util.Map; import com.github.rcd47.x2data.lib.unreal.mappings.UnrealUntypedProperty; -import com.github.rcd47.x2data.lib.unreal.mappings.XComSingletonStateType; -@XComSingletonStateType public class XComGameState_Analytics extends XComGameState_BaseObject { @UnrealUntypedProperty(1) diff --git a/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/mappings/base/XComGameState_Item.java b/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/mappings/base/XComGameState_Item.java index 9acf471..f2c101a 100644 --- a/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/mappings/base/XComGameState_Item.java +++ b/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/mappings/base/XComGameState_Item.java @@ -10,6 +10,7 @@ public class XComGameState_Item extends XComGameState_BaseObject { public List m_arrWeaponUpgradeNames; public IXComNameObjectReference m_TemplateName; public String Nickname; + public int Quantity = 1; // set in defaultproperties public List StatBoosts; } diff --git a/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/mappings/base/XComGameState_Unit.java b/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/mappings/base/XComGameState_Unit.java index 278898a..7e2688e 100644 --- a/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/mappings/base/XComGameState_Unit.java +++ b/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/mappings/base/XComGameState_Unit.java @@ -10,14 +10,17 @@ public class XComGameState_Unit extends XComGameState_BaseObject { + public List> Abilities; public List AbilityTree; public List AcquiredTraits; public List ActionPoints; public List AffectedByEffectNames; + public List> AffectedByEffects; public List AlertTraits; public List AllSoldierBonds; public List AppearanceStore; public List AppliedEffectNames; + public List> AppliedEffects; public List AWCAbilities; public boolean bIsSpecial; public Map CharacterStats; @@ -30,6 +33,7 @@ public class XComGameState_Unit extends XComGameState_BaseObject { public List EnemiesInteractedWithSinceLastTurn; public List HackRewards; public List HackRollMods; + public List> InventoryItems; public List KilledByDamageTypes; public IXComNameObjectReference m_SoldierClassTemplateName; public List m_SoldierProgressionAbilties; diff --git a/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/typings/UnrealTypeInformer.java b/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/typings/UnrealTypeInformer.java index 0a7fecc..9e24d5e 100644 --- a/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/typings/UnrealTypeInformer.java +++ b/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/typings/UnrealTypeInformer.java @@ -7,21 +7,18 @@ public class UnrealTypeInformer { - public static final UnrealTypeInformer UNKNOWN = new UnrealTypeInformer(null, null, false, false, Map.of(), List.of()); + public static final UnrealTypeInformer UNKNOWN = new UnrealTypeInformer(null, null, false, Map.of(), List.of()); public final UnrealName unrealTypeName; public final Class mappedType; - public final boolean isSingletonStateType; public final boolean isUntypedStruct; public final Map arrayElementTypes; public final List untypedProperties; - UnrealTypeInformer(UnrealName unrealTypeName, Class mappedType, boolean isSingletonStateType, - boolean isUntypedStruct, Map arrayElementTypes, - List untypedProperties) { + UnrealTypeInformer(UnrealName unrealTypeName, Class mappedType, boolean isUntypedStruct, + Map arrayElementTypes, List untypedProperties) { this.unrealTypeName = unrealTypeName; this.mappedType = mappedType; - this.isSingletonStateType = isSingletonStateType; this.isUntypedStruct = isUntypedStruct; this.arrayElementTypes = arrayElementTypes; this.untypedProperties = untypedProperties; diff --git a/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/typings/UnrealTypingsBuilder.java b/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/typings/UnrealTypingsBuilder.java index c8c53d2..661497c 100644 --- a/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/typings/UnrealTypingsBuilder.java +++ b/x2-data-lib/src/main/java/com/github/rcd47/x2data/lib/unreal/typings/UnrealTypingsBuilder.java @@ -29,7 +29,6 @@ import com.github.rcd47.x2data.lib.unreal.mappings.UnrealTypeName; import com.github.rcd47.x2data.lib.unreal.mappings.UnrealUntypedProperty; import com.github.rcd47.x2data.lib.unreal.mappings.UnrealUntypedStruct; -import com.github.rcd47.x2data.lib.unreal.mappings.XComSingletonStateType; public class UnrealTypingsBuilder { @@ -38,7 +37,6 @@ public class UnrealTypingsBuilder { private static final DotName TYPE_NAME_ANNOTATION = DotName.createSimple(UnrealTypeName.class.getName()); private static final DotName UNTYPED_PROPERTY_ANNOTATION = DotName.createSimple(UnrealUntypedProperty.class.getName()); private static final DotName UNTYPED_STRUCT_ANNOTATION = DotName.createSimple(UnrealUntypedStruct.class.getName()); - private static final DotName SINGLETON_STATE_ANNOTATION = DotName.createSimple(XComSingletonStateType.class.getName()); private static final UnrealName STATE_OBJ_REF_NAME = new UnrealName("StateObjectReference"); private static final Map DLC_PACKAGES = Map.ofEntries( Map.entry(new UnrealName("CovertInfiltration"), "covertinf"), @@ -84,7 +82,7 @@ private Map build(Function Date: Sun, 15 Jun 2025 11:28:21 -0400 Subject: [PATCH 2/2] minor fixes --- .../jfx/ui/history/HistoryBloatAnalysisUI.java | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/history/HistoryBloatAnalysisUI.java b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/history/HistoryBloatAnalysisUI.java index 7ef5082..7578c66 100644 --- a/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/history/HistoryBloatAnalysisUI.java +++ b/x2-data-explorer/src/main/java/com/github/rcd47/x2data/explorer/jfx/ui/history/HistoryBloatAnalysisUI.java @@ -38,8 +38,6 @@ public class HistoryBloatAnalysisUI { - // TODO update docs with this UI - private static final int LARGEST_LIMIT = 500; public HistoryBloatAnalysisUI(HistoryFile history, Tab parent) { @@ -66,11 +64,7 @@ protected Node call() throws Exception { for (var gso : frame.getObjects().values()) { if (gso.getFrame().equals(frame)) { perObjectStatsMap.computeIfAbsent(gso.getObjectId(), _ -> new GameStateObjectStats()).add(gso); - if (gso.getPreviousVersion() == null) { - largestFullObjects.add(gso); - } else { - largestDeltaObjects.add(gso); - } + (gso.getPreviousVersion() == null ? largestFullObjects : largestDeltaObjects).add(gso); } } updateProgress(((double) i + 1) / numFrames, 1); @@ -368,7 +362,7 @@ private static class LargestList { int queueSize; LargestList() { - queue = new PriorityQueue<>(LARGEST_LIMIT + 1, Comparator.comparingInt(ISizedObject::getSizeInFile)); + queue = new PriorityQueue<>(LARGEST_LIMIT, Comparator.comparingInt(ISizedObject::getSizeInFile)); } void add(T obj) {