Files
Badminton-Scoreboard/Data/unity default resources
T

8370 lines
6.1 MiB
Plaintext
Raw Normal View History

2023-10-08 10:24:48 +08:00
 av02021.3.13f1 sÿÿônŽ0ì“I?«'Bî0ÿÿðÁ„'*åDGãcfìHv¦Hÿÿ«Ù[Œè=?ïNžÇõ3fÿÿ
ALý[Û
"y ½©«&ÿÿƘ¬f¢‹Pª€Û¿Œ€ÿÿjS""hh¼ŠN„ç«+ÿÿµQmÙ¹Ö·Õd;ußGÅÉÕÿÿp©ÚwnÕ7tâ V]»Òr¶þ0ãØšmŒ4xIx @$ðn{̱qÉÞ™:”2JïU°üD°bE¸{¨F`ì,-Èr¬AºL$'àÞÈUt'¨4u'@5èv'(Jw'HKxØ'ÀK´eÚ'Û'¸¸Ü'ôÝ',^Þ'pN´ß'(e<„à'dá'Ðvôâ'È“\ã'(hä'0å'À 0 (ð¢€t¡(p ”R¢(j 4*£(@” ÔUU¤(ê^è¦(ú^„x§(ˆr`Ш(X{``©(¸Œ`(ª(à `È«(¨°`x ­( Ñ`X ®(xÚ`L *Èã`<&*
aˆø*
a(!ù*¸+aú*H-a¼û*0a˜ü* 1aœý*@3a˜þ*Ø4aÿ*p6a¨+8aœ+¸:aì+¨;a@+è<a8+ >a@+`?a+hAa+hCa+pEa +pGa
+xIaü +xKa¤ + Maœ
+ÀOaì+°Pa+ÀTa +ÐXa˜+hZa˜+\aœÙ.|Û.|Þ.tá.x\4Ø`48h˜: ]a8J 9J :J ;J <J°ˆœJ8tJ°|žJ0tŸJ¨K0|á.
TemplateAsset
TemplateAssetUnityEngine.UIElements UnityEngine.UIElementsModule.dllVisualTreeAsset¯?T)8ÔwÖÎÿO¦õΣVisualTreeAssetUnityEngine.UIElements UnityEngine.UIElementsModule.dll
StyleSheet]·¸¿p‡¶(‡sÕ6#ɨ
StyleSheetUnityEngine.UIElements UnityEngine.UIElementsModule.dllGUISkin$ðn{̱qÉÞ™:”2JïGUISkin UnityEngineUnityEngine.IMGUIModule.dllTileσƒaLF,i4•èM TileUnityEngine.TilemapsUnityEngine.TilemapModule.dllTileBaseTileBaseUnityEngine.TilemapsUnityEngine.TilemapModule.dll TextSettingsh[~“pÁ¸
CÐù
& TextSettingsUnityEngine.TextCore.Text(UnityEngine.TextCoreTextEngineModule.dll FontAssetòâüÂéüý­Ð~Ò$r÷ FontAssetUnityEngine.TextCore.Text(UnityEngine.TextCoreTextEngineModule.dll SpriteAsset´E-ˆ¯jws(ùV¼ 3Qã SpriteAssetUnityEngine.TextCore.Text(UnityEngine.TextCoreTextEngineModule.dllTextColorGradient1e–‹¤\tG-' DUüËTextColorGradientUnityEngine.TextCore.Text(UnityEngine.TextCoreTextEngineModule.dllTextStyleSheetÔÃiCZçr_¤kÔpTextStyleSheetUnityEngine.TextCore.Text(UnityEngine.TextCoreTextEngineModule.dll VectorImage)é:ã™&î÷¡•y}÷a VectorImageUnityEngine.UIElements UnityEngine.UIElementsModule.dll
PanelSettingsrÀÅWÄÀä:6Ÿ
PanelSettingsUnityEngine.UIElements UnityEngine.UIElementsModule.dll
UIDocument=À‚ëùè•LG
UIDocumentUnityEngine.UIElements UnityEngine.UIElementsModule.dllPanelTextSettingsh[~“pÁ¸
CÐù
&PanelTextSettingsUnityEngine.UIElements UnityEngine.UIElementsModule.dllThemeStyleSheet]·¸¿p‡¶(‡sÕ6#ɨThemeStyleSheetUnityEngine.UIElements UnityEngine.UIElementsModule.dllØL·ƒ©PÃÄBà§0ÓXVGlobalsunity_ObjectToWorld€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>€@ <noninit>€? <noninit>@ <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit>unity_FogStart unity_FogEndunity_FogDensity <noninit> <noninit> <noninit> <noninit>unity_FogColorÿÿÿÿµHëëëëëë ë
ë ë
ë ë
ëSTEREO_INSTANCING_ONUNITY_SINGLE_PASS_STEREOSTEREO_MULTIVIEW_ONSTEREO_CUBEMAP_RENDER_ONHidden/InternalErrorShader,#¢ ˆ`$ b 0 b<Ø SH&\ H $  & ! 0ºu
o
sÀVGlobals€òunity_MatrixVP,¿'@H`` 0PUdcStereo"B@`!ŠˆÔ€‘T…EyeIndex, T! ÀXÐ X$/ÀýþÊ
ð0ï<(@ÿÿÿÿ üxlatMtlMain#include <metal_stdlib>
ñ
texture>
using namespace ”;
struct ³ò_Type
{
float4 hlslcc_mtx4x4OÿObjectToWorld[4];0 Í+4};
vÊMtl_VertexInuÿPOSITION0 [[ attribute(0) ]] D:OutEÀmtl_PositionHp ]‡v8
C f(N{constan%&[bbuffer ,6Ü` input(pstage_iƒ;)
{)~ioutputQ u_“01!" =h.=u.yyyy *ª,1]SOfma(@=0],…Txxxx,R)`+2`Ozzzz`
+31FQí1Fì;%0]Ñ ?/1)S&2S2Sy.4_3_Lwwww_ereturnß+}

0$pÿ
NITY_SINGLE_PASS_STEREOŒLºÝbUD_P[8];0V0?Inv3V”CameraPro&?ion9?Inv< ŒTCrÊ 6-3 _S:ÞJos[2e/ßScaleOffset[2 ¦!Oint  Ö6I&J1J s&L2Nî/i1&2-ÿSi•
.ˆi << 0x™2m£.`(\+ 1)]cIX"W¡/2)j6Â/2)¾|5/3)ÛØ¤Æï_INSTANCING_ON ÿÿÿÿÿ"HÏMULTIVIEW_ONhÿÿÿÿÿ L
#ifndef XLT_REMAP_O
#defineñ {0, 1, 2, 3, 4, 5, 6, 7}
#endif
rFexpr|uFøxlt_remap_o[] =T;†Fragmentñhalf4 SV_TargetWhcolor(T50])fD Q
Å%ÇZ}=p(1.0, 01.Œ$ÿöØ ÿö°  ÿÕPÖkXæÀ÷K'#Z+ ¢VGlobalsunity_ObjectToWorld€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit> <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>A <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit>unity_FogStart unity_FogEndunity_FogDensity <noninit> <noninit> <noninit> <noninit>unity_FogColorÿÿÿÿÓžëëëëëë ë
ë ë
ë ë
ëejê‚í2´ë€o2÷{gVGlobalsunity_ObjectToWorld€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>A <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit>unity_FogStart unity_FogEndunity_FogDensity <noninit> <noninit> <noninit> <noninit>unity_FogColorÿÿÿÿȺëëëëëë ë
ë ë
ë ë
ë˳aX
¢)ºe÷}¦e
VGlobalsunity_ObjectToWorld€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit> <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>A <noninit>€? <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit>unity_FogStart unity_FogEndunity_FogDensity <noninit> <noninit> <noninit> <noninit>unity_FogColorÿÿÿÿnÔëëëëëë ë
ë ë
ë ë
ëçÙ†°Þ&äb[{ÏÙ?v~VGlobalsunity_ObjectToWorld€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>A <noninit>€? <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit>unity_FogStart unity_FogEndunity_FogDensity <noninit> <noninit> <noninit> <noninit>unity_FogColorÿÿÿÿ·ëëëëëë ë
ë ë
ë ë
ëSe”ËAÞ8q›Ù­sž°VGlobalsunity_ObjectToWorld€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit> <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>A <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit>€? <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit>unity_FogStart unity_FogEndunity_FogDensity <noninit> <noninit> <noninit> <noninit>unity_FogColorÿÿÿÿ}'ëëëëëë ë
ë ë
ë ë
ëca„7ò}•É…M4:w¤VGlobalsunity_ObjectToWorld€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>A <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit>€? <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit>unity_FogStart unity_FogEndunity_FogDensity <noninit> <noninit> <noninit> <noninit>unity_FogColorÿÿÿÿ}Hëëëëëë ë
ë ë
ë ë
ëŽÊÀã-Àåf•ûëìE3®NVGlobalsunity_ObjectToWorld€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit> <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>A <noninit>€? <noninit> <noninit> <noninit> <noninit> <noninit> <noninit>€? <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit>unity_FogStart unity_FogEndunity_FogDensity <noninit> <noninit> <noninit> <noninit>unity_FogColorÿÿÿÿ Òëëëëëë ë
ë ë
ë ë
ë·ÇÁ$NÅb5«¨MäÌ„tVGlobalsunity_ObjectToWorld€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>A <noninit>€? <noninit> <noninit> <noninit> <noninit> <noninit> <noninit>€? <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit>unity_FogStart unity_FogEndunity_FogDensity <noninit> <noninit> <noninit> <noninit>unity_FogColorÿÿÿÿpæëëëëëë ë
ë ë
ë ë
ëSTEREO_INSTANCING_ONUNITY_SINGLE_PASS_STEREOSTEREO_MULTIVIEW_ONSTEREO_CUBEMAP_RENDER_ONHidden/InternalClearÉp&É¢ ˆ`$ b ¤ P %C¼ Sx#b”d  Sx!| &ô# 0ºu
o
ðVGlobals€òunity_MatrixVP,¿'@H`` 0PUdcStereo"B@`!ŠˆÔ€‘T…EyeIndex, T! ÀXÐ X$/ÀjþÊ
ð0ï<(AÿÿÿÿìülatMtlMain#include <metal_stdlib>
ñ
texture>
using namespace ”;
struct ³ò_Type
{
float4 hlslcc_mtx4x4OÿObjectToWorld[4];0 Í+4};
vÊMtl_VertexInuòPOSITION0 [[ attribute(0) ]] o»half4 COLOR&1&j:OutkÀmtl_PositionHp /]]iRuser(iÒv]
h ±(K{constanp&_bbufferë,6'` input(pstage_i¨;)
{)~ioutputœ u_“01!" =h.ˆu.yyyy *ª.,1]SOfma(@=0],…Txxxx,R)`+2`Ozzzz`
+31FQ81Fì;%0]Ñ ?/1)S&2S2Sy.Y_3_Owwww_ª"ereturnW}
¼S
ø¤Ääÿ
NITY_SINGLE_PASS_STEREOùÀº+ÖU¸_P[8];0V0?Inv3V”CameraPro&?ion9?Inv< ŒTCrÊ 6-3 _S:ÞJos[2e/ßScaleOffset[2  !Oint u ùÿ"6&J1J ¾&L2N9/i1&ÿSi 
i << 0x™£(\+ 1)]cIX"W /2)j6Â/2)2 22 |5/3)O 2O )P "> ï_INSTANCING_ON ÿÿÿÿÿ–¼ÏMULTIVIEW_ONÈÿÿÿÿÿ|/;À
#ifndef XLT_REMAP_O
#defineñ {0, 1, 2, 3, 4, 5, 6, 7}
#endif
Fexpr¥u[øxlt_remap_o[] =T;^…FragmentÊ7  B¢CSV_TargetGhcolor(&0]‡fD Q
´WLY¤
dHÿÿSx|ÿÿS8
|ÿÿ2P_ColorColor€?€?€?€? _SrcBlendSrcBlend @ _DstBlendDstBlend A_ZWriteZWrite€?_ZTestZTest€@_CullCull_ZBiasZBias¤_Yg`)M¨$™•EVGlobalsunity_ObjectToWorld _SrcBlend _DstBlend _SrcBlend _DstBlend <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>_ZTest_ZWrite_Cull <noninit>_ZBias_ZBias <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit>unity_FogStart unity_FogEndunity_FogDensity <noninit> <noninit> <noninit> <noninit>unity_FogColorÿÿÿÿéHIGNOREPROJECTORtrueQUEUE Transparent
RenderType Transparentëëëëëë ë
ë ë
ë ë
ëIGNOREPROJECTORtrueQUEUE Transparent
RenderType TransparentSTEREO_INSTANCING_ONUNITY_SINGLE_PASS_STEREOSTEREO_MULTIVIEW_ONSTEREO_CUBEMAP_RENDER_ONHidden/Internal-ColoredüÈ'ü¢ ˆb H bTè b<   CHd SP SÐ"| &L% nºu
óVGlobalsob_Color$¯4òunity_MatrixVPã'@8 P<
XPUˆcStereoFB@4¨!®¬ø€µT…EyeIndex, T! äXÐ XH/À®þÊ
ð0[<(@ÿÿÿÿ üxlatMtlMain#include <metal_stdlib>
ñ
texture>
using namespace ”;
struct ×ò_Type
{
float4 hlslcc_mtx4x4OÿObjectToWorld[4];0 Í +9T;
};
ÊMtl_VertexInˆùPOSITION0 [[ attribute(0) ]] W[COLOR'1'k3OutlHhalfARuser(A gÀmtl_Position,p "]]hv]
h Å(N{constan„&[bbufferì,6(` input(pstage_iƒ;)
{)~ioutputÇ u_“01!" =h..b%=R(D)RÛX.yyyyZ},1]SOfma(@=0],…nxxxx, ³`!2`Ozzzz`
+31FQž1Fì;%0]Ñ ?/1)S&2S2)1)i_3_Lwwww_ereturn1W}
S
`è(ÿ
NITY_SINGLE_PASS_STEREO= ÅÙ-h_P[8];0V0?Inv3V”CameraPro9?ion9?Inv< ŸTCrÝ 6-3 _SMÞJos[2e/±ScaleOffset' q !Oint Ì =ÿ#6&J1J ¿&LN:/i1&ÿ¥iM\.&i << 0xë2% õ(\+ 1)]cIX"WY /2)j6Â/2)v 2v |5/3)“ 2“ ” " ï_INSTANCING_ON”ÿÿÿÿÿÚÏMULTIVIEW_ON”ÿÿÿÿÿÃÀ/;
#ifndef XLT_REMAP_O
#defineñ {0, 1, 2, 3, 4, 5, 6, 7}
#endif
ËFexprÕuøxlt_remap_o[] =T¯FragmentInÐB ÒSV_TargetG(50])·fD Q»
´Lʤ
kdÿÿS|ÿÿS|
|ÿÿ2PÍæ³ú›y'ä:{›³Î UnityPerDrawunity_ObjectToWorld€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>€@ <noninit>€? <noninit>@ <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit>unity_FogStart unity_FogEndunity_FogDensity <noninit> <noninit> <noninit> <noninit>unity_FogColorÿÿÿÿ6øëëëëëë° ë
ë ë
ë ë
ëSTEREO_INSTANCING_ONUNITY_SINGLE_PASS_STEREOSTEREO_MULTIVIEW_ONSTEREO_CUBEMAP_RENDER_ONHidden/Internal-LoadingÈ+¢ ˆ¤b,( bT¼ b
ˆ S˜Ô&l S@#Hb\# Sd%$ Sˆ' &¨) nºu
÷ UnityPerDraw°
PFrame„0¿Pu_MatrixVP4ã#ðP,¤¤òStereoGlobals@X¨!®¬'€‰T…EyeIndex, T!ÐÄXÐ (/ÿþÊ
ð0<(@ÿÿÿÿ üxlatMtlMain#include <metal_stdlib>
ñ
texture>
using namespace ˜;
struct ·ò_Type
{
float4 hlslcc_mtx4x4SÿObjectToWorld[4];0 ("To7 0#LODFade=ïransformParams'üRenderingLayer;
};
áÐâ÷half4 glstate_lightmodel_ambient;&fA?SkyEquator nGroundÿIndirectSpecColorV²m)@_proY?ionŒ]*?Inv-%VP+Oint ùcShadowó·ÊMtl_VertexIn“ÿPOSITION0 [[ attribute(0) ]] D:OutE€mtl_Posi8Hp "]]Cv8
C ˆ(NconstanG&cbbuffer¨,>¤&@1@$` input(pstage_iË;)
{)ÆjoutputF01!" =h.…y.yyyy *î.6,1]WOfma(D=0],Txxxx,V)d/2dOzzzzd
+31J a.… 1Kù@%0]ß Q/1)X+2XEX˜.d3dLwwwwdereturn)}
¸
¼$üÿ
NITY_SINGLE_PASS_STEREO: Øÿa „ çf
_P[8];0V0?cvCameraP9?Inv< öCr\ 6-3 _ÞOos[2[/±ScaleOffset' ~!¢êQ&J{&LNö/i1&ÿciK. i << 0x©2-  ³.x(\+ 1)]cQXWW /2)j6Â/2)o 2o |5/3)‡ 2‡ ˆ àv ï_INSTANCING_ON\ÿÿÿÿÿÿÿ°ÔÏMULTIVIEW_ON0ÿÿÿÿÿÿÿ™Ø
#ifndef XLT_REMAP_O
#defineñ {0, 1, 2, 3, 4, 5, 6, 7}
#endif
žFexpr¨øxlt_remap_o[] =T;z†Fragment|rSV_TargetÁ(T50])†fD Q
Šç%é]}=0(0. ÕT$ÿöð ÿö< ÿÕPInternal-Skinning mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿüþÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[3];
};
struct inSkin_Type
{
uint value[1];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[3];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float3 u_xlat1;
uint u_xlatu1;
float4 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
float u_xlat5;
uint u_xlatu5;
float3 u_xlat6;
float3 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
int u_xlati12;
uint u_xlatu12;
float3 u_xlat16;
uint u_xlatu23;
int u_xlati34;
uint u_xlatu34;
bool u_xlatb34;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0.xyz = float3(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]));
u_xlatu1 = inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0];
u_xlati12 = int(mtl_ThreadID.x) + 0x1;
u_xlatu12 = inSkin[u_xlati12].value[(0x0 >> 2) + 0];
u_xlat2.x = float(0.0);
u_xlat2.y = float(0.0);
u_xlat2.z = float(0.0);
u_xlat2.w = float(0.0);
u_xlat3.x = float(0.0);
u_xlat3.y = float(0.0);
u_xlat3.z = float(0.0);
u_xlat3.w = float(0.0);
u_xlat4.x = float(0.0);
u_xlat4.y = float(0.0);
u_xlat4.z = float(0.0);
u_xlat4.w = float(0.0);
u_xlatu23 = u_xlatu1;
while(true){
u_xlatb34 = u_xlatu23>=u_xlatu12;
if(u_xlatb34){break;}
u_xlatu34 = inSkin[u_xlatu23].value[(0x0 >> 2) + 0];
u_xlatu5 = u_xlatu34 >> 0x10u;
u_xlat5 = float(u_xlatu5);
u_xlat5 = u_xlat5 * 1.52590219e-05;
u_xlati34 = int(u_xlatu34 & 0xffffu);
u_xlat16.xyz = float3(as_type<float>(inMatrices[u_xlati34].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati34].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati34].value[(0x0 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[u_xlati34].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati34].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati34].value[(0x10 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[u_xlati34].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati34].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati34].value[(0x20 >> 2) + 2]));
u_xlat8.xyw = float3(as_type<float>(inMatrices[u_xlati34].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati34].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati34].value[(0x30 >> 2) + 2]));
u_xlat9.x = u_xlat16.x;
u_xlat9.y = u_xlat6.x;
u_xlat9.z = u_xlat7.x;
u_xlat9.w = u_xlat8.x;
u_xlat10.x = u_xlat16.y;
u_xlat10.y = u_xlat6.y;
u_xlat10.z = u_xlat7.y;
u_xlat10.w = u_xlat8.y;
u_xlat8.x = u_xlat16.z;
u_xlat8.y = u_xlat6.z;
u_xlat8.z = u_xlat7.z;
u_xlat2 = fma(u_xlat9, float4(u_xlat5), u_xlat2);
u_xlat3 = fma(u_xlat10, float4(u_xlat5), u_xlat3);
u_xlat4 = fma(u_xlat8, float4(u_xlat5), u_xlat4);
u_xlatu23 = u_xlatu23 + 0x1u;
}
u_xlat0.w = 1.0;
u_xlat1.x = dot(u_xlat2, u_xlat0);
u_xlat1.y = dot(u_xlat3, u_xlat0);
u_xlat1.z = dot(u_xlat4, u_xlat0);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat1.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat1.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat1.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿ°þÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[6];
};
struct inSkin_Type
{
uint value[1];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[6];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float3 u_xlat1;
float4 u_xlat2;
int u_xlati2;
uint u_xlatu2;
float4 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float3 u_xlat7;
float3 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
uint u_xlatu14;
int u_xlati26;
uint u_xlatu26;
bool u_xlatb26;
uint u_xlatu37;
float u_xlat38;
uint u_xlatu38;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlat1.xy = float2(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1]));
u_xlatu37 = inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0];
u_xlati2 = int(mtl_ThreadID.x) + 0x1;
u_xlatu2 = inSkin[u_xlati2].value[(0x0 >> 2) + 0];
u_xlat3.x = float(0.0);
u_xlat3.y = float(0.0);
u_xlat3.z = float(0.0);
u_xlat3.w = float(0.0);
u_xlat4.x = float(0.0);
u_xlat4.y = float(0.0);
u_xlat4.z = float(0.0);
u_xlat4.w = float(0.0);
u_xlat5.x = float(0.0);
u_xlat5.y = float(0.0);
u_xlat5.z = float(0.0);
u_xlat5.w = float(0.0);
u_xlatu14 = u_xlatu37;
while(true){
u_xlatb26 = u_xlatu14>=u_xlatu2;
if(u_xlatb26){break;}
u_xlatu26 = inSkin[u_xlatu14].value[(0x0 >> 2) + 0];
u_xlatu38 = u_xlatu26 >> 0x10u;
u_xlat38 = float(u_xlatu38);
u_xlat38 = u_xlat38 * 1.52590219e-05;
u_xlati26 = int(u_xlatu26 & 0xffffu);
u_xlat6.xyz = float3(as_type<float>(inMatrices[u_xlati26].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati26].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati26].value[(0x0 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[u_xlati26].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati26].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati26].value[(0x10 >> 2) + 2]));
u_xlat8.xyz = float3(as_type<float>(inMatrices[u_xlati26].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati26].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati26].value[(0x20 >> 2) + 2]));
u_xlat9.xyw = float3(as_type<float>(inMatrices[u_xlati26].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati26].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati26].value[(0x30 >> 2) + 2]));
u_xlat10.x = u_xlat6.x;
u_xlat10.y = u_xlat7.x;
u_xlat10.z = u_xlat8.x;
u_xlat10.w = u_xlat9.x;
u_xlat11.x = u_xlat6.y;
u_xlat11.y = u_xlat7.y;
u_xlat11.z = u_xlat8.y;
u_xlat11.w = u_xlat9.y;
u_xlat9.x = u_xlat6.z;
u_xlat9.y = u_xlat7.z;
u_xlat9.z = u_xlat8.z;
u_xlat3 = fma(u_xlat10, float4(u_xlat38), u_xlat3);
u_xlat4 = fma(u_xlat11, float4(u_xlat38), u_xlat4);
u_xlat5 = fma(u_xlat9, float4(u_xlat38), u_xlat5);
u_xlatu14 = u_xlatu14 + 0x1u;
}
u_xlat2.xyz = u_xlat0.xyz;
u_xlat2.w = 1.0;
u_xlat6.x = dot(u_xlat3, u_xlat2);
u_xlat6.y = dot(u_xlat4, u_xlat2);
u_xlat6.z = dot(u_xlat5, u_xlat2);
u_xlat1.z = u_xlat0.w;
u_xlat6.w = dot(u_xlat3.yzx, u_xlat1.xyz);
u_xlat0.x = dot(u_xlat4.yzx, u_xlat1.xyz);
u_xlat0.y = dot(u_xlat5.yzx, u_xlat1.xyz);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat6.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat6.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat6.z);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat6.w);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2)] = as_type<uint>(u_xlat0.x);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat0.y);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿ^þÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[7];
};
struct inSkin_Type
{
uint value[1];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[7];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
uint u_xlatu2;
float4 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
uint u_xlatu6;
float3 u_xlat7;
float3 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
int u_xlati14;
uint u_xlatu14;
float3 u_xlat18;
uint u_xlatu26;
int u_xlati38;
uint u_xlatu38;
bool u_xlatb38;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlat1.xyz = float3(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2]));
u_xlatu2 = inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0];
u_xlati14 = int(mtl_ThreadID.x) + 0x1;
u_xlatu14 = inSkin[u_xlati14].value[(0x0 >> 2) + 0];
u_xlat3.x = float(0.0);
u_xlat3.y = float(0.0);
u_xlat3.z = float(0.0);
u_xlat3.w = float(0.0);
u_xlat4.x = float(0.0);
u_xlat4.y = float(0.0);
u_xlat4.z = float(0.0);
u_xlat4.w = float(0.0);
u_xlat5.x = float(0.0);
u_xlat5.y = float(0.0);
u_xlat5.z = float(0.0);
u_xlat5.w = float(0.0);
u_xlatu26 = u_xlatu2;
while(true){
u_xlatb38 = u_xlatu26>=u_xlatu14;
if(u_xlatb38){break;}
u_xlatu38 = inSkin[u_xlatu26].value[(0x0 >> 2) + 0];
u_xlatu6 = u_xlatu38 >> 0x10u;
u_xlat6.x = float(u_xlatu6);
u_xlat6.x = u_xlat6.x * 1.52590219e-05;
u_xlati38 = int(u_xlatu38 & 0xffffu);
u_xlat18.xyz = float3(as_type<float>(inMatrices[u_xlati38].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati38].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati38].value[(0x0 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[u_xlati38].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati38].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati38].value[(0x10 >> 2) + 2]));
u_xlat8.xyz = float3(as_type<float>(inMatrices[u_xlati38].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati38].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati38].value[(0x20 >> 2) + 2]));
u_xlat9.xyw = float3(as_type<float>(inMatrices[u_xlati38].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati38].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati38].value[(0x30 >> 2) + 2]));
u_xlat10.x = u_xlat18.x;
u_xlat10.y = u_xlat7.x;
u_xlat10.z = u_xlat8.x;
u_xlat10.w = u_xlat9.x;
u_xlat11.x = u_xlat18.y;
u_xlat11.y = u_xlat7.y;
u_xlat11.z = u_xlat8.y;
u_xlat11.w = u_xlat9.y;
u_xlat9.x = u_xlat18.z;
u_xlat9.y = u_xlat7.z;
u_xlat9.z = u_xlat8.z;
u_xlat3 = fma(u_xlat10, u_xlat6.xxxx, u_xlat3);
u_xlat4 = fma(u_xlat11, u_xlat6.xxxx, u_xlat4);
u_xlat5 = fma(u_xlat9, u_xlat6.xxxx, u_xlat5);
u_xlatu26 = u_xlatu26 + 0x1u;
}
u_xlat2.xyz = u_xlat0.xyz;
u_xlat2.w = 1.0;
u_xlat6.x = dot(u_xlat3, u_xlat2);
u_xlat6.y = dot(u_xlat4, u_xlat2);
u_xlat6.z = dot(u_xlat5, u_xlat2);
u_xlat1.w = u_xlat0.w;
u_xlat6.w = dot(u_xlat3.yzx, u_xlat1.xyw);
u_xlat0.x = dot(u_xlat4.yzx, u_xlat1.xyw);
u_xlat0.y = dot(u_xlat5.yzx, u_xlat1.xyw);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat6.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat6.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat6.z);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat6.w);
u_xlat0.z = u_xlat1.z;
outVertices[mtl_ThreadID.x].value[(0x10 >> 2)] = as_type<uint>(u_xlat0.x);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat0.y);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2] = as_type<uint>(u_xlat0.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿàþÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[10];
};
struct inSkin_Type
{
uint value[1];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[10];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
uint u_xlatu3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
uint u_xlatu7;
float3 u_xlat8;
float3 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
float4 u_xlat12;
int u_xlati16;
uint u_xlatu16;
float3 u_xlat20;
uint u_xlatu29;
int u_xlati42;
uint u_xlatu42;
bool u_xlatb42;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]));
u_xlat1 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 3]));
u_xlat2.xy = float2(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x20 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x20 >> 2) + 1]));
u_xlatu3 = inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0];
u_xlati16 = int(mtl_ThreadID.x) + 0x1;
u_xlatu16 = inSkin[u_xlati16].value[(0x0 >> 2) + 0];
u_xlat4.x = float(0.0);
u_xlat4.y = float(0.0);
u_xlat4.z = float(0.0);
u_xlat4.w = float(0.0);
u_xlat5.x = float(0.0);
u_xlat5.y = float(0.0);
u_xlat5.z = float(0.0);
u_xlat5.w = float(0.0);
u_xlat6.x = float(0.0);
u_xlat6.y = float(0.0);
u_xlat6.z = float(0.0);
u_xlat6.w = float(0.0);
u_xlatu29 = u_xlatu3;
while(true){
u_xlatb42 = u_xlatu29>=u_xlatu16;
if(u_xlatb42){break;}
u_xlatu42 = inSkin[u_xlatu29].value[(0x0 >> 2) + 0];
u_xlatu7 = u_xlatu42 >> 0x10u;
u_xlat7.x = float(u_xlatu7);
u_xlat7.x = u_xlat7.x * 1.52590219e-05;
u_xlati42 = int(u_xlatu42 & 0xffffu);
u_xlat20.xyz = float3(as_type<float>(inMatrices[u_xlati42].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati42].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati42].value[(0x0 >> 2) + 2]));
u_xlat8.xyz = float3(as_type<float>(inMatrices[u_xlati42].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati42].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati42].value[(0x10 >> 2) + 2]));
u_xlat9.xyz = float3(as_type<float>(inMatrices[u_xlati42].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati42].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati42].value[(0x20 >> 2) + 2]));
u_xlat10.xyw = float3(as_type<float>(inMatrices[u_xlati42].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati42].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati42].value[(0x30 >> 2) + 2]));
u_xlat11.x = u_xlat20.x;
u_xlat11.y = u_xlat8.x;
u_xlat11.z = u_xlat9.x;
u_xlat11.w = u_xlat10.x;
u_xlat12.x = u_xlat20.y;
u_xlat12.y = u_xlat8.y;
u_xlat12.z = u_xlat9.y;
u_xlat12.w = u_xlat10.y;
u_xlat10.x = u_xlat20.z;
u_xlat10.y = u_xlat8.z;
u_xlat10.z = u_xlat9.z;
u_xlat4 = fma(u_xlat11, u_xlat7.xxxx, u_xlat4);
u_xlat5 = fma(u_xlat12, u_xlat7.xxxx, u_xlat5);
u_xlat6 = fma(u_xlat10, u_xlat7.xxxx, u_xlat6);
u_xlatu29 = u_xlatu29 + 0x1u;
}
u_xlat3.xyz = u_xlat0.yzw;
u_xlat3.w = 1.0;
u_xlat7.x = dot(u_xlat4, u_xlat3);
u_xlat7.y = dot(u_xlat5, u_xlat3);
u_xlat7.z = dot(u_xlat6, u_xlat3);
u_xlat0.yz = u_xlat1.xy;
u_xlat7.w = dot(u_xlat4.xyz, u_xlat0.xyz);
u_xlat3.x = dot(u_xlat5.xyz, u_xlat0.xyz);
u_xlat3.y = dot(u_xlat6.xyz, u_xlat0.xyz);
u_xlat2.zw = u_xlat1.zw;
u_xlat3.z = dot(u_xlat4.zxy, u_xlat2.xzw);
u_xlat3.w = dot(u_xlat5.zxy, u_xlat2.xzw);
u_xlat2.x = dot(u_xlat6.zxy, u_xlat2.xzw);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat7.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat7.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat7.z);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat7.w);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2)] = as_type<uint>(u_xlat3.x);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat3.y);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2] = as_type<uint>(u_xlat3.z);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 3] = as_type<uint>(u_xlat3.w);
outVertices[mtl_ThreadID.x].value[(0x20 >> 2)] = as_type<uint>(u_xlat2.x);
outVertices[mtl_ThreadID.x].value[(0x20 >> 2) + 1] = as_type<uint>(u_xlat2.y);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿß
þÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[3];
};
struct inSkin_Type
{
uint value[1];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[3];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
int u_xlati1;
float3 u_xlat2;
float3 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float3 u_xlat8;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0.xyz = float3(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]));
u_xlati1 = int(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0]);
u_xlat8.xyz = float3(as_type<float>(inMatrices[u_xlati1].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati1].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati1].value[(0x0 >> 2) + 2]));
u_xlat2.xyz = float3(as_type<float>(inMatrices[u_xlati1].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati1].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati1].value[(0x10 >> 2) + 2]));
u_xlat3.xyz = float3(as_type<float>(inMatrices[u_xlati1].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati1].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati1].value[(0x20 >> 2) + 2]));
u_xlat4.xyw = float3(as_type<float>(inMatrices[u_xlati1].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati1].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati1].value[(0x30 >> 2) + 2]));
u_xlat5.x = u_xlat8.x;
u_xlat5.y = u_xlat2.x;
u_xlat5.z = u_xlat3.x;
u_xlat5.w = u_xlat4.x;
u_xlat0.w = 1.0;
u_xlat5.x = dot(u_xlat5, u_xlat0);
u_xlat6.x = u_xlat8.y;
u_xlat6.y = u_xlat2.y;
u_xlat6.z = u_xlat3.y;
u_xlat6.w = u_xlat4.y;
u_xlat5.y = dot(u_xlat6, u_xlat0);
u_xlat4.x = u_xlat8.z;
u_xlat4.y = u_xlat2.z;
u_xlat4.z = u_xlat3.z;
u_xlat5.z = dot(u_xlat4, u_xlat0);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat5.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat5.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat5.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿÁ
þÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[6];
};
struct inSkin_Type
{
uint value[1];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[6];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float3 u_xlat1;
float3 u_xlat2;
float3 u_xlat3;
float3 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
int u_xlati31;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlat1.xy = float2(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1]));
u_xlati31 = int(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0]);
u_xlat2.xyz = float3(as_type<float>(inMatrices[u_xlati31].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati31].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati31].value[(0x0 >> 2) + 2]));
u_xlat3.xyz = float3(as_type<float>(inMatrices[u_xlati31].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati31].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati31].value[(0x10 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[u_xlati31].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati31].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati31].value[(0x20 >> 2) + 2]));
u_xlat5.xyw = float3(as_type<float>(inMatrices[u_xlati31].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati31].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati31].value[(0x30 >> 2) + 2]));
u_xlat6.x = u_xlat2.x;
u_xlat6.y = u_xlat3.x;
u_xlat6.z = u_xlat4.x;
u_xlat6.w = u_xlat5.x;
u_xlat7.xyz = u_xlat0.xyz;
u_xlat7.w = 1.0;
u_xlat8.x = dot(u_xlat6, u_xlat7);
u_xlat9.x = u_xlat2.y;
u_xlat9.y = u_xlat3.y;
u_xlat9.z = u_xlat4.y;
u_xlat9.w = u_xlat5.y;
u_xlat8.y = dot(u_xlat9, u_xlat7);
u_xlat5.x = u_xlat2.z;
u_xlat5.y = u_xlat3.z;
u_xlat5.z = u_xlat4.z;
u_xlat8.z = dot(u_xlat5, u_xlat7);
u_xlat1.z = u_xlat0.w;
u_xlat8.w = dot(u_xlat6.yzx, u_xlat1.xyz);
u_xlat0.x = dot(u_xlat9.yzx, u_xlat1.xyz);
u_xlat0.y = dot(u_xlat5.yzx, u_xlat1.xyz);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat8.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat8.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat8.z);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat8.w);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2)] = as_type<uint>(u_xlat0.x);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat0.y);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿjþÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[7];
};
struct inSkin_Type
{
uint value[1];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[7];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float4 u_xlat1;
int u_xlati2;
float3 u_xlat3;
float3 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float3 u_xlat12;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlat1.xyz = float3(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2]));
u_xlati2 = int(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0]);
u_xlat12.xyz = float3(as_type<float>(inMatrices[u_xlati2].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2].value[(0x0 >> 2) + 2]));
u_xlat3.xyz = float3(as_type<float>(inMatrices[u_xlati2].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2].value[(0x10 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[u_xlati2].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2].value[(0x20 >> 2) + 2]));
u_xlat5.xyw = float3(as_type<float>(inMatrices[u_xlati2].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2].value[(0x30 >> 2) + 2]));
u_xlat6.x = u_xlat12.x;
u_xlat6.y = u_xlat3.x;
u_xlat6.z = u_xlat4.x;
u_xlat6.w = u_xlat5.x;
u_xlat7.xyz = u_xlat0.xyz;
u_xlat7.w = 1.0;
u_xlat8.x = dot(u_xlat6, u_xlat7);
u_xlat9.x = u_xlat12.y;
u_xlat9.y = u_xlat3.y;
u_xlat9.z = u_xlat4.y;
u_xlat9.w = u_xlat5.y;
u_xlat8.y = dot(u_xlat9, u_xlat7);
u_xlat5.x = u_xlat12.z;
u_xlat5.y = u_xlat3.z;
u_xlat5.z = u_xlat4.z;
u_xlat8.z = dot(u_xlat5, u_xlat7);
u_xlat1.w = u_xlat0.w;
u_xlat8.w = dot(u_xlat6.yzx, u_xlat1.xyw);
u_xlat0.x = dot(u_xlat9.yzx, u_xlat1.xyw);
u_xlat0.y = dot(u_xlat5.yzx, u_xlat1.xyw);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat8.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat8.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat8.z);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat8.w);
u_xlat0.z = u_xlat1.z;
outVertices[mtl_ThreadID.x].value[(0x10 >> 2)] = as_type<uint>(u_xlat0.x);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat0.y);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2] = as_type<uint>(u_xlat0.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿþÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[10];
};
struct inSkin_Type
{
uint value[1];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[10];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
int u_xlati3;
float3 u_xlat4;
float3 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float3 u_xlat14;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]));
u_xlat1 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 3]));
u_xlat2.xy = float2(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x20 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x20 >> 2) + 1]));
u_xlati3 = int(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0]);
u_xlat14.xyz = float3(as_type<float>(inMatrices[u_xlati3].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3].value[(0x0 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[u_xlati3].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3].value[(0x10 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[u_xlati3].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3].value[(0x20 >> 2) + 2]));
u_xlat6.xyw = float3(as_type<float>(inMatrices[u_xlati3].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3].value[(0x30 >> 2) + 2]));
u_xlat7.x = u_xlat14.x;
u_xlat7.y = u_xlat4.x;
u_xlat7.z = u_xlat5.x;
u_xlat7.w = u_xlat6.x;
u_xlat8.xyz = u_xlat0.yzw;
u_xlat8.w = 1.0;
u_xlat9.x = dot(u_xlat7, u_xlat8);
u_xlat10.x = u_xlat14.y;
u_xlat10.y = u_xlat4.y;
u_xlat10.z = u_xlat5.y;
u_xlat10.w = u_xlat6.y;
u_xlat9.y = dot(u_xlat10, u_xlat8);
u_xlat6.x = u_xlat14.z;
u_xlat6.y = u_xlat4.z;
u_xlat6.z = u_xlat5.z;
u_xlat9.z = dot(u_xlat6, u_xlat8);
u_xlat0.yz = u_xlat1.xy;
u_xlat9.w = dot(u_xlat7.xyz, u_xlat0.xyz);
u_xlat3.x = dot(u_xlat10.xyz, u_xlat0.xyz);
u_xlat3.y = dot(u_xlat6.xyz, u_xlat0.xyz);
u_xlat2.zw = u_xlat1.zw;
u_xlat3.z = dot(u_xlat7.zxy, u_xlat2.xzw);
u_xlat3.w = dot(u_xlat10.zxy, u_xlat2.xzw);
u_xlat2.x = dot(u_xlat6.zxy, u_xlat2.xzw);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat9.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat9.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat9.z);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat9.w);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2)] = as_type<uint>(u_xlat3.x);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat3.y);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2] = as_type<uint>(u_xlat3.z);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 3] = as_type<uint>(u_xlat3.w);
outVertices[mtl_ThreadID.x].value[(0x20 >> 2)] = as_type<uint>(u_xlat2.x);
outVertices[mtl_ThreadID.x].value[(0x20 >> 2) + 1] = as_type<uint>(u_xlat2.y);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿÎþÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[3];
};
struct inSkin_Type
{
uint value[4];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[3];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0.xyz = float3(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]));
u_xlat1 = float4(as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlat2.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat1.z)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat1.z)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat1.z)].value[(0x0 >> 2) + 2]));
u_xlat3.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat1.z)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat1.z)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat1.z)].value[(0x10 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat1.z)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat1.z)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat1.z)].value[(0x20 >> 2) + 2]));
u_xlat5.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat1.z)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat1.z)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat1.z)].value[(0x30 >> 2) + 2]));
u_xlat6.x = u_xlat2.x;
u_xlat6.y = u_xlat3.x;
u_xlat6.z = u_xlat4.x;
u_xlat6.w = u_xlat5.x;
u_xlat7.x = u_xlat2.y;
u_xlat7.y = u_xlat3.y;
u_xlat7.z = u_xlat4.y;
u_xlat7.w = u_xlat5.y;
u_xlat5.x = u_xlat2.z;
u_xlat5.y = u_xlat3.z;
u_xlat5.z = u_xlat4.z;
u_xlat2.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat1.w)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat1.w)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat1.w)].value[(0x0 >> 2) + 2]));
u_xlat3.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat1.w)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat1.w)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat1.w)].value[(0x10 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat1.w)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat1.w)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat1.w)].value[(0x20 >> 2) + 2]));
u_xlat8.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat1.w)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat1.w)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat1.w)].value[(0x30 >> 2) + 2]));
u_xlat9.x = u_xlat2.x;
u_xlat9.y = u_xlat3.x;
u_xlat9.z = u_xlat4.x;
u_xlat9.w = u_xlat8.x;
u_xlat9 = u_xlat1.yyyy * u_xlat9;
u_xlat10.x = u_xlat2.y;
u_xlat10.y = u_xlat3.y;
u_xlat10.z = u_xlat4.y;
u_xlat10.w = u_xlat8.y;
u_xlat10 = u_xlat1.yyyy * u_xlat10;
u_xlat8.x = u_xlat2.z;
u_xlat8.y = u_xlat3.z;
u_xlat8.z = u_xlat4.z;
u_xlat2 = u_xlat1.yyyy * u_xlat8;
u_xlat3 = fma(u_xlat6, u_xlat1.xxxx, u_xlat9);
u_xlat4 = fma(u_xlat7, u_xlat1.xxxx, u_xlat10);
u_xlat1 = fma(u_xlat5, u_xlat1.xxxx, u_xlat2);
u_xlat0.w = 1.0;
u_xlat2.x = dot(u_xlat3, u_xlat0);
u_xlat2.y = dot(u_xlat4, u_xlat0);
u_xlat2.z = dot(u_xlat1, u_xlat0);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat2.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat2.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat2.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿ‚þÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[6];
};
struct inSkin_Type
{
uint value[4];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[6];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float3 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlat1.xy = float2(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1]));
u_xlat2 = float4(as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlat3.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x0 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x10 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x20 >> 2) + 2]));
u_xlat6.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x30 >> 2) + 2]));
u_xlat7.x = u_xlat3.x;
u_xlat7.y = u_xlat4.x;
u_xlat7.z = u_xlat5.x;
u_xlat7.w = u_xlat6.x;
u_xlat8.x = u_xlat3.y;
u_xlat8.y = u_xlat4.y;
u_xlat8.z = u_xlat5.y;
u_xlat8.w = u_xlat6.y;
u_xlat6.x = u_xlat3.z;
u_xlat6.y = u_xlat4.z;
u_xlat6.z = u_xlat5.z;
u_xlat3.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x0 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x10 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x20 >> 2) + 2]));
u_xlat9.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x30 >> 2) + 2]));
u_xlat10.x = u_xlat3.x;
u_xlat10.y = u_xlat4.x;
u_xlat10.z = u_xlat5.x;
u_xlat10.w = u_xlat9.x;
u_xlat10 = u_xlat2.yyyy * u_xlat10;
u_xlat11.x = u_xlat3.y;
u_xlat11.y = u_xlat4.y;
u_xlat11.z = u_xlat5.y;
u_xlat11.w = u_xlat9.y;
u_xlat11 = u_xlat2.yyyy * u_xlat11;
u_xlat9.x = u_xlat3.z;
u_xlat9.y = u_xlat4.z;
u_xlat9.z = u_xlat5.z;
u_xlat3 = u_xlat2.yyyy * u_xlat9;
u_xlat4 = fma(u_xlat7, u_xlat2.xxxx, u_xlat10);
u_xlat5 = fma(u_xlat8, u_xlat2.xxxx, u_xlat11);
u_xlat2 = fma(u_xlat6, u_xlat2.xxxx, u_xlat3);
u_xlat3.xyz = u_xlat0.xyz;
u_xlat3.w = 1.0;
u_xlat6.x = dot(u_xlat4, u_xlat3);
u_xlat6.y = dot(u_xlat5, u_xlat3);
u_xlat6.z = dot(u_xlat2, u_xlat3);
u_xlat1.z = u_xlat0.w;
u_xlat6.w = dot(u_xlat4.yzx, u_xlat1.xyz);
u_xlat0.x = dot(u_xlat5.yzx, u_xlat1.xyz);
u_xlat0.y = dot(u_xlat2.yzx, u_xlat1.xyz);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat6.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat6.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat6.z);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat6.w);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2)] = as_type<uint>(u_xlat0.x);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat0.y);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿ4þÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[7];
};
struct inSkin_Type
{
uint value[4];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[7];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlat1.xyz = float3(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2]));
u_xlat2 = float4(as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlat3.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x0 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x10 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x20 >> 2) + 2]));
u_xlat6.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x30 >> 2) + 2]));
u_xlat7.x = u_xlat3.x;
u_xlat7.y = u_xlat4.x;
u_xlat7.z = u_xlat5.x;
u_xlat7.w = u_xlat6.x;
u_xlat8.x = u_xlat3.y;
u_xlat8.y = u_xlat4.y;
u_xlat8.z = u_xlat5.y;
u_xlat8.w = u_xlat6.y;
u_xlat6.x = u_xlat3.z;
u_xlat6.y = u_xlat4.z;
u_xlat6.z = u_xlat5.z;
u_xlat3.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x0 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x10 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x20 >> 2) + 2]));
u_xlat9.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x30 >> 2) + 2]));
u_xlat10.x = u_xlat3.x;
u_xlat10.y = u_xlat4.x;
u_xlat10.z = u_xlat5.x;
u_xlat10.w = u_xlat9.x;
u_xlat10 = u_xlat2.yyyy * u_xlat10;
u_xlat11.x = u_xlat3.y;
u_xlat11.y = u_xlat4.y;
u_xlat11.z = u_xlat5.y;
u_xlat11.w = u_xlat9.y;
u_xlat11 = u_xlat2.yyyy * u_xlat11;
u_xlat9.x = u_xlat3.z;
u_xlat9.y = u_xlat4.z;
u_xlat9.z = u_xlat5.z;
u_xlat3 = u_xlat2.yyyy * u_xlat9;
u_xlat4 = fma(u_xlat7, u_xlat2.xxxx, u_xlat10);
u_xlat5 = fma(u_xlat8, u_xlat2.xxxx, u_xlat11);
u_xlat2 = fma(u_xlat6, u_xlat2.xxxx, u_xlat3);
u_xlat3.xyz = u_xlat0.xyz;
u_xlat3.w = 1.0;
u_xlat6.x = dot(u_xlat4, u_xlat3);
u_xlat6.y = dot(u_xlat5, u_xlat3);
u_xlat6.z = dot(u_xlat2, u_xlat3);
u_xlat1.w = u_xlat0.w;
u_xlat6.w = dot(u_xlat4.yzx, u_xlat1.xyw);
u_xlat0.x = dot(u_xlat5.yzx, u_xlat1.xyw);
u_xlat0.y = dot(u_xlat2.yzx, u_xlat1.xyw);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat6.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat6.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat6.z);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat6.w);
u_xlat0.z = u_xlat1.z;
outVertices[mtl_ThreadID.x].value[(0x10 >> 2)] = as_type<uint>(u_xlat0.x);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat0.y);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2] = as_type<uint>(u_xlat0.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿ¶þÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[10];
};
struct inSkin_Type
{
uint value[4];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[10];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
float4 u_xlat12;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]));
u_xlat1 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 3]));
u_xlat2.xy = float2(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x20 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x20 >> 2) + 1]));
u_xlat3 = float4(as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x0 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x10 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x20 >> 2) + 2]));
u_xlat7.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x30 >> 2) + 2]));
u_xlat8.x = u_xlat4.x;
u_xlat8.y = u_xlat5.x;
u_xlat8.z = u_xlat6.x;
u_xlat8.w = u_xlat7.x;
u_xlat9.x = u_xlat4.y;
u_xlat9.y = u_xlat5.y;
u_xlat9.z = u_xlat6.y;
u_xlat9.w = u_xlat7.y;
u_xlat7.x = u_xlat4.z;
u_xlat7.y = u_xlat5.z;
u_xlat7.z = u_xlat6.z;
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x0 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x10 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x20 >> 2) + 2]));
u_xlat10.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x30 >> 2) + 2]));
u_xlat11.x = u_xlat4.x;
u_xlat11.y = u_xlat5.x;
u_xlat11.z = u_xlat6.x;
u_xlat11.w = u_xlat10.x;
u_xlat11 = u_xlat3.yyyy * u_xlat11;
u_xlat12.x = u_xlat4.y;
u_xlat12.y = u_xlat5.y;
u_xlat12.z = u_xlat6.y;
u_xlat12.w = u_xlat10.y;
u_xlat12 = u_xlat3.yyyy * u_xlat12;
u_xlat10.x = u_xlat4.z;
u_xlat10.y = u_xlat5.z;
u_xlat10.z = u_xlat6.z;
u_xlat4 = u_xlat3.yyyy * u_xlat10;
u_xlat5 = fma(u_xlat8, u_xlat3.xxxx, u_xlat11);
u_xlat6 = fma(u_xlat9, u_xlat3.xxxx, u_xlat12);
u_xlat3 = fma(u_xlat7, u_xlat3.xxxx, u_xlat4);
u_xlat4.xyz = u_xlat0.yzw;
u_xlat4.w = 1.0;
u_xlat7.x = dot(u_xlat5, u_xlat4);
u_xlat7.y = dot(u_xlat6, u_xlat4);
u_xlat7.z = dot(u_xlat3, u_xlat4);
u_xlat0.yz = u_xlat1.xy;
u_xlat7.w = dot(u_xlat5.xyz, u_xlat0.xyz);
u_xlat4.x = dot(u_xlat6.xyz, u_xlat0.xyz);
u_xlat4.y = dot(u_xlat3.xyz, u_xlat0.xyz);
u_xlat2.zw = u_xlat1.zw;
u_xlat4.z = dot(u_xlat5.zxy, u_xlat2.xzw);
u_xlat4.w = dot(u_xlat6.zxy, u_xlat2.xzw);
u_xlat2.x = dot(u_xlat3.zxy, u_xlat2.xzw);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat7.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat7.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat7.z);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat7.w);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2)] = as_type<uint>(u_xlat4.x);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat4.y);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2] = as_type<uint>(u_xlat4.z);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 3] = as_type<uint>(u_xlat4.w);
outVertices[mtl_ThreadID.x].value[(0x20 >> 2)] = as_type<uint>(u_xlat2.x);
outVertices[mtl_ThreadID.x].value[(0x20 >> 2) + 1] = as_type<uint>(u_xlat2.y);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿêþÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[3];
};
struct inSkin_Type
{
uint value[8];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[3];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
int4 u_xlati2;
float4 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0.xyz = float3(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]));
u_xlat1 = float4(as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlati2 = int4(int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 1]), int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 2]), int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 3]));
u_xlat3.xyz = float3(as_type<float>(inMatrices[u_xlati2.x].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.x].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.x].value[(0x0 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[u_xlati2.x].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.x].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.x].value[(0x10 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[u_xlati2.x].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.x].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.x].value[(0x20 >> 2) + 2]));
u_xlat6.xyw = float3(as_type<float>(inMatrices[u_xlati2.x].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.x].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.x].value[(0x30 >> 2) + 2]));
u_xlat7.x = u_xlat3.x;
u_xlat7.y = u_xlat4.x;
u_xlat7.z = u_xlat5.x;
u_xlat7.w = u_xlat6.x;
u_xlat8.x = u_xlat3.y;
u_xlat8.y = u_xlat4.y;
u_xlat8.z = u_xlat5.y;
u_xlat8.w = u_xlat6.y;
u_xlat6.x = u_xlat3.z;
u_xlat6.y = u_xlat4.z;
u_xlat6.z = u_xlat5.z;
u_xlat3.xyz = float3(as_type<float>(inMatrices[u_xlati2.y].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.y].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.y].value[(0x0 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[u_xlati2.y].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.y].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.y].value[(0x10 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[u_xlati2.y].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.y].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.y].value[(0x20 >> 2) + 2]));
u_xlat9.xyw = float3(as_type<float>(inMatrices[u_xlati2.y].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.y].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.y].value[(0x30 >> 2) + 2]));
u_xlat10.x = u_xlat3.x;
u_xlat10.y = u_xlat4.x;
u_xlat10.z = u_xlat5.x;
u_xlat10.w = u_xlat9.x;
u_xlat10 = u_xlat1.yyyy * u_xlat10;
u_xlat11.x = u_xlat3.y;
u_xlat11.y = u_xlat4.y;
u_xlat11.z = u_xlat5.y;
u_xlat11.w = u_xlat9.y;
u_xlat11 = u_xlat1.yyyy * u_xlat11;
u_xlat9.x = u_xlat3.z;
u_xlat9.y = u_xlat4.z;
u_xlat9.z = u_xlat5.z;
u_xlat3 = u_xlat1.yyyy * u_xlat9;
u_xlat4 = fma(u_xlat7, u_xlat1.xxxx, u_xlat10);
u_xlat5 = fma(u_xlat8, u_xlat1.xxxx, u_xlat11);
u_xlat3 = fma(u_xlat6, u_xlat1.xxxx, u_xlat3);
u_xlat6.xyz = float3(as_type<float>(inMatrices[u_xlati2.z].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.z].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.z].value[(0x0 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[u_xlati2.z].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.z].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.z].value[(0x10 >> 2) + 2]));
u_xlat8.xyz = float3(as_type<float>(inMatrices[u_xlati2.z].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.z].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.z].value[(0x20 >> 2) + 2]));
u_xlat9.xyw = float3(as_type<float>(inMatrices[u_xlati2.z].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.z].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.z].value[(0x30 >> 2) + 2]));
u_xlat10.x = u_xlat6.x;
u_xlat10.y = u_xlat7.x;
u_xlat10.z = u_xlat8.x;
u_xlat10.w = u_xlat9.x;
u_xlat11.x = u_xlat6.y;
u_xlat11.y = u_xlat7.y;
u_xlat11.z = u_xlat8.y;
u_xlat11.w = u_xlat9.y;
u_xlat9.x = u_xlat6.z;
u_xlat9.y = u_xlat7.z;
u_xlat9.z = u_xlat8.z;
u_xlat4 = fma(u_xlat10, u_xlat1.zzzz, u_xlat4);
u_xlat5 = fma(u_xlat11, u_xlat1.zzzz, u_xlat5);
u_xlat3 = fma(u_xlat9, u_xlat1.zzzz, u_xlat3);
u_xlat1.xyz = float3(as_type<float>(inMatrices[u_xlati2.w].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.w].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.w].value[(0x0 >> 2) + 2]));
u_xlat2.xyz = float3(as_type<float>(inMatrices[u_xlati2.w].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.w].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.w].value[(0x10 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[u_xlati2.w].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.w].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.w].value[(0x20 >> 2) + 2]));
u_xlat7.xyw = float3(as_type<float>(inMatrices[u_xlati2.w].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.w].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.w].value[(0x30 >> 2) + 2]));
u_xlat8.x = u_xlat1.x;
u_xlat8.y = u_xlat2.x;
u_xlat8.z = u_xlat6.x;
u_xlat8.w = u_xlat7.x;
u_xlat9.x = u_xlat1.y;
u_xlat9.y = u_xlat2.y;
u_xlat9.z = u_xlat6.y;
u_xlat9.w = u_xlat7.y;
u_xlat7.x = u_xlat1.z;
u_xlat7.y = u_xlat2.z;
u_xlat7.z = u_xlat6.z;
u_xlat2 = fma(u_xlat8, u_xlat1.wwww, u_xlat4);
u_xlat4 = fma(u_xlat9, u_xlat1.wwww, u_xlat5);
u_xlat1 = fma(u_xlat7, u_xlat1.wwww, u_xlat3);
u_xlat0.w = 1.0;
u_xlat2.x = dot(u_xlat2, u_xlat0);
u_xlat2.y = dot(u_xlat4, u_xlat0);
u_xlat2.z = dot(u_xlat1, u_xlat0);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat2.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat2.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat2.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿªþÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[6];
};
struct inSkin_Type
{
uint value[8];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[6];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float3 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
int4 u_xlati3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
float4 u_xlat12;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlat1.xy = float2(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1]));
u_xlat2 = float4(as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlati3 = int4(int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 1]), int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 2]), int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 3]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[u_xlati3.x].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.x].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.x].value[(0x0 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[u_xlati3.x].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.x].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.x].value[(0x10 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[u_xlati3.x].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.x].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.x].value[(0x20 >> 2) + 2]));
u_xlat7.xyw = float3(as_type<float>(inMatrices[u_xlati3.x].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.x].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.x].value[(0x30 >> 2) + 2]));
u_xlat8.x = u_xlat4.x;
u_xlat8.y = u_xlat5.x;
u_xlat8.z = u_xlat6.x;
u_xlat8.w = u_xlat7.x;
u_xlat9.x = u_xlat4.y;
u_xlat9.y = u_xlat5.y;
u_xlat9.z = u_xlat6.y;
u_xlat9.w = u_xlat7.y;
u_xlat7.x = u_xlat4.z;
u_xlat7.y = u_xlat5.z;
u_xlat7.z = u_xlat6.z;
u_xlat4.xyz = float3(as_type<float>(inMatrices[u_xlati3.y].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.y].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.y].value[(0x0 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[u_xlati3.y].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.y].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.y].value[(0x10 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[u_xlati3.y].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.y].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.y].value[(0x20 >> 2) + 2]));
u_xlat10.xyw = float3(as_type<float>(inMatrices[u_xlati3.y].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.y].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.y].value[(0x30 >> 2) + 2]));
u_xlat11.x = u_xlat4.x;
u_xlat11.y = u_xlat5.x;
u_xlat11.z = u_xlat6.x;
u_xlat11.w = u_xlat10.x;
u_xlat11 = u_xlat2.yyyy * u_xlat11;
u_xlat12.x = u_xlat4.y;
u_xlat12.y = u_xlat5.y;
u_xlat12.z = u_xlat6.y;
u_xlat12.w = u_xlat10.y;
u_xlat12 = u_xlat2.yyyy * u_xlat12;
u_xlat10.x = u_xlat4.z;
u_xlat10.y = u_xlat5.z;
u_xlat10.z = u_xlat6.z;
u_xlat4 = u_xlat2.yyyy * u_xlat10;
u_xlat5 = fma(u_xlat8, u_xlat2.xxxx, u_xlat11);
u_xlat6 = fma(u_xlat9, u_xlat2.xxxx, u_xlat12);
u_xlat4 = fma(u_xlat7, u_xlat2.xxxx, u_xlat4);
u_xlat7.xyz = float3(as_type<float>(inMatrices[u_xlati3.z].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.z].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.z].value[(0x0 >> 2) + 2]));
u_xlat8.xyz = float3(as_type<float>(inMatrices[u_xlati3.z].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.z].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.z].value[(0x10 >> 2) + 2]));
u_xlat9.xyz = float3(as_type<float>(inMatrices[u_xlati3.z].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.z].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.z].value[(0x20 >> 2) + 2]));
u_xlat10.xyw = float3(as_type<float>(inMatrices[u_xlati3.z].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.z].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.z].value[(0x30 >> 2) + 2]));
u_xlat11.x = u_xlat7.x;
u_xlat11.y = u_xlat8.x;
u_xlat11.z = u_xlat9.x;
u_xlat11.w = u_xlat10.x;
u_xlat12.x = u_xlat7.y;
u_xlat12.y = u_xlat8.y;
u_xlat12.z = u_xlat9.y;
u_xlat12.w = u_xlat10.y;
u_xlat10.x = u_xlat7.z;
u_xlat10.y = u_xlat8.z;
u_xlat10.z = u_xlat9.z;
u_xlat5 = fma(u_xlat11, u_xlat2.zzzz, u_xlat5);
u_xlat6 = fma(u_xlat12, u_xlat2.zzzz, u_xlat6);
u_xlat4 = fma(u_xlat10, u_xlat2.zzzz, u_xlat4);
u_xlat2.xyz = float3(as_type<float>(inMatrices[u_xlati3.w].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.w].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.w].value[(0x0 >> 2) + 2]));
u_xlat3.xyz = float3(as_type<float>(inMatrices[u_xlati3.w].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.w].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.w].value[(0x10 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[u_xlati3.w].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.w].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.w].value[(0x20 >> 2) + 2]));
u_xlat8.xyw = float3(as_type<float>(inMatrices[u_xlati3.w].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.w].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.w].value[(0x30 >> 2) + 2]));
u_xlat9.x = u_xlat2.x;
u_xlat9.y = u_xlat3.x;
u_xlat9.z = u_xlat7.x;
u_xlat9.w = u_xlat8.x;
u_xlat10.x = u_xlat2.y;
u_xlat10.y = u_xlat3.y;
u_xlat10.z = u_xlat7.y;
u_xlat10.w = u_xlat8.y;
u_xlat8.x = u_xlat2.z;
u_xlat8.y = u_xlat3.z;
u_xlat8.z = u_xlat7.z;
u_xlat3 = fma(u_xlat9, u_xlat2.wwww, u_xlat5);
u_xlat5 = fma(u_xlat10, u_xlat2.wwww, u_xlat6);
u_xlat2 = fma(u_xlat8, u_xlat2.wwww, u_xlat4);
u_xlat4.xyz = u_xlat0.xyz;
u_xlat4.w = 1.0;
u_xlat6.x = dot(u_xlat3, u_xlat4);
u_xlat6.y = dot(u_xlat5, u_xlat4);
u_xlat6.z = dot(u_xlat2, u_xlat4);
u_xlat1.z = u_xlat0.w;
u_xlat6.w = dot(u_xlat3.yzx, u_xlat1.xyz);
u_xlat0.x = dot(u_xlat5.yzx, u_xlat1.xyz);
u_xlat0.y = dot(u_xlat2.yzx, u_xlat1.xyz);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat6.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat6.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat6.z);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat6.w);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2)] = as_type<uint>(u_xlat0.x);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat0.y);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿ\ þÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[7];
};
struct inSkin_Type
{
uint value[8];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[7];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
int4 u_xlati3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
float4 u_xlat12;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlat1.xyz = float3(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2]));
u_xlat2 = float4(as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlati3 = int4(int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 1]), int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 2]), int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 3]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[u_xlati3.x].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.x].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.x].value[(0x0 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[u_xlati3.x].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.x].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.x].value[(0x10 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[u_xlati3.x].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.x].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.x].value[(0x20 >> 2) + 2]));
u_xlat7.xyw = float3(as_type<float>(inMatrices[u_xlati3.x].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.x].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.x].value[(0x30 >> 2) + 2]));
u_xlat8.x = u_xlat4.x;
u_xlat8.y = u_xlat5.x;
u_xlat8.z = u_xlat6.x;
u_xlat8.w = u_xlat7.x;
u_xlat9.x = u_xlat4.y;
u_xlat9.y = u_xlat5.y;
u_xlat9.z = u_xlat6.y;
u_xlat9.w = u_xlat7.y;
u_xlat7.x = u_xlat4.z;
u_xlat7.y = u_xlat5.z;
u_xlat7.z = u_xlat6.z;
u_xlat4.xyz = float3(as_type<float>(inMatrices[u_xlati3.y].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.y].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.y].value[(0x0 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[u_xlati3.y].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.y].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.y].value[(0x10 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[u_xlati3.y].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.y].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.y].value[(0x20 >> 2) + 2]));
u_xlat10.xyw = float3(as_type<float>(inMatrices[u_xlati3.y].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.y].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.y].value[(0x30 >> 2) + 2]));
u_xlat11.x = u_xlat4.x;
u_xlat11.y = u_xlat5.x;
u_xlat11.z = u_xlat6.x;
u_xlat11.w = u_xlat10.x;
u_xlat11 = u_xlat2.yyyy * u_xlat11;
u_xlat12.x = u_xlat4.y;
u_xlat12.y = u_xlat5.y;
u_xlat12.z = u_xlat6.y;
u_xlat12.w = u_xlat10.y;
u_xlat12 = u_xlat2.yyyy * u_xlat12;
u_xlat10.x = u_xlat4.z;
u_xlat10.y = u_xlat5.z;
u_xlat10.z = u_xlat6.z;
u_xlat4 = u_xlat2.yyyy * u_xlat10;
u_xlat5 = fma(u_xlat8, u_xlat2.xxxx, u_xlat11);
u_xlat6 = fma(u_xlat9, u_xlat2.xxxx, u_xlat12);
u_xlat4 = fma(u_xlat7, u_xlat2.xxxx, u_xlat4);
u_xlat7.xyz = float3(as_type<float>(inMatrices[u_xlati3.z].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.z].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.z].value[(0x0 >> 2) + 2]));
u_xlat8.xyz = float3(as_type<float>(inMatrices[u_xlati3.z].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.z].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.z].value[(0x10 >> 2) + 2]));
u_xlat9.xyz = float3(as_type<float>(inMatrices[u_xlati3.z].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.z].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.z].value[(0x20 >> 2) + 2]));
u_xlat10.xyw = float3(as_type<float>(inMatrices[u_xlati3.z].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.z].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.z].value[(0x30 >> 2) + 2]));
u_xlat11.x = u_xlat7.x;
u_xlat11.y = u_xlat8.x;
u_xlat11.z = u_xlat9.x;
u_xlat11.w = u_xlat10.x;
u_xlat12.x = u_xlat7.y;
u_xlat12.y = u_xlat8.y;
u_xlat12.z = u_xlat9.y;
u_xlat12.w = u_xlat10.y;
u_xlat10.x = u_xlat7.z;
u_xlat10.y = u_xlat8.z;
u_xlat10.z = u_xlat9.z;
u_xlat5 = fma(u_xlat11, u_xlat2.zzzz, u_xlat5);
u_xlat6 = fma(u_xlat12, u_xlat2.zzzz, u_xlat6);
u_xlat4 = fma(u_xlat10, u_xlat2.zzzz, u_xlat4);
u_xlat2.xyz = float3(as_type<float>(inMatrices[u_xlati3.w].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.w].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.w].value[(0x0 >> 2) + 2]));
u_xlat3.xyz = float3(as_type<float>(inMatrices[u_xlati3.w].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.w].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.w].value[(0x10 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[u_xlati3.w].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.w].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.w].value[(0x20 >> 2) + 2]));
u_xlat8.xyw = float3(as_type<float>(inMatrices[u_xlati3.w].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.w].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.w].value[(0x30 >> 2) + 2]));
u_xlat9.x = u_xlat2.x;
u_xlat9.y = u_xlat3.x;
u_xlat9.z = u_xlat7.x;
u_xlat9.w = u_xlat8.x;
u_xlat10.x = u_xlat2.y;
u_xlat10.y = u_xlat3.y;
u_xlat10.z = u_xlat7.y;
u_xlat10.w = u_xlat8.y;
u_xlat8.x = u_xlat2.z;
u_xlat8.y = u_xlat3.z;
u_xlat8.z = u_xlat7.z;
u_xlat3 = fma(u_xlat9, u_xlat2.wwww, u_xlat5);
u_xlat5 = fma(u_xlat10, u_xlat2.wwww, u_xlat6);
u_xlat2 = fma(u_xlat8, u_xlat2.wwww, u_xlat4);
u_xlat4.xyz = u_xlat0.xyz;
u_xlat4.w = 1.0;
u_xlat6.x = dot(u_xlat3, u_xlat4);
u_xlat6.y = dot(u_xlat5, u_xlat4);
u_xlat6.z = dot(u_xlat2, u_xlat4);
u_xlat1.w = u_xlat0.w;
u_xlat6.w = dot(u_xlat3.yzx, u_xlat1.xyw);
u_xlat0.x = dot(u_xlat5.yzx, u_xlat1.xyw);
u_xlat0.y = dot(u_xlat2.yzx, u_xlat1.xyw);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat6.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat6.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat6.z);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat6.w);
u_xlat0.z = u_xlat1.z;
outVertices[mtl_ThreadID.x].value[(0x10 >> 2)] = as_type<uint>(u_xlat0.x);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat0.y);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2] = as_type<uint>(u_xlat0.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿå"þÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[10];
};
struct inSkin_Type
{
uint value[8];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[10];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
int4 u_xlati4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
float4 u_xlat12;
float4 u_xlat13;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]));
u_xlat1 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 3]));
u_xlat2.xy = float2(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x20 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x20 >> 2) + 1]));
u_xlat3 = float4(as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlati4 = int4(int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 1]), int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 2]), int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 3]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[u_xlati4.x].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.x].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.x].value[(0x0 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[u_xlati4.x].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.x].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.x].value[(0x10 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[u_xlati4.x].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.x].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.x].value[(0x20 >> 2) + 2]));
u_xlat8.xyw = float3(as_type<float>(inMatrices[u_xlati4.x].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.x].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.x].value[(0x30 >> 2) + 2]));
u_xlat9.x = u_xlat5.x;
u_xlat9.y = u_xlat6.x;
u_xlat9.z = u_xlat7.x;
u_xlat9.w = u_xlat8.x;
u_xlat10.x = u_xlat5.y;
u_xlat10.y = u_xlat6.y;
u_xlat10.z = u_xlat7.y;
u_xlat10.w = u_xlat8.y;
u_xlat8.x = u_xlat5.z;
u_xlat8.y = u_xlat6.z;
u_xlat8.z = u_xlat7.z;
u_xlat5.xyz = float3(as_type<float>(inMatrices[u_xlati4.y].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.y].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.y].value[(0x0 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[u_xlati4.y].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.y].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.y].value[(0x10 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[u_xlati4.y].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.y].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.y].value[(0x20 >> 2) + 2]));
u_xlat11.xyw = float3(as_type<float>(inMatrices[u_xlati4.y].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.y].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.y].value[(0x30 >> 2) + 2]));
u_xlat12.x = u_xlat5.x;
u_xlat12.y = u_xlat6.x;
u_xlat12.z = u_xlat7.x;
u_xlat12.w = u_xlat11.x;
u_xlat12 = u_xlat3.yyyy * u_xlat12;
u_xlat13.x = u_xlat5.y;
u_xlat13.y = u_xlat6.y;
u_xlat13.z = u_xlat7.y;
u_xlat13.w = u_xlat11.y;
u_xlat13 = u_xlat3.yyyy * u_xlat13;
u_xlat11.x = u_xlat5.z;
u_xlat11.y = u_xlat6.z;
u_xlat11.z = u_xlat7.z;
u_xlat5 = u_xlat3.yyyy * u_xlat11;
u_xlat6 = fma(u_xlat9, u_xlat3.xxxx, u_xlat12);
u_xlat7 = fma(u_xlat10, u_xlat3.xxxx, u_xlat13);
u_xlat5 = fma(u_xlat8, u_xlat3.xxxx, u_xlat5);
u_xlat8.xyz = float3(as_type<float>(inMatrices[u_xlati4.z].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.z].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.z].value[(0x0 >> 2) + 2]));
u_xlat9.xyz = float3(as_type<float>(inMatrices[u_xlati4.z].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.z].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.z].value[(0x10 >> 2) + 2]));
u_xlat10.xyz = float3(as_type<float>(inMatrices[u_xlati4.z].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.z].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.z].value[(0x20 >> 2) + 2]));
u_xlat11.xyw = float3(as_type<float>(inMatrices[u_xlati4.z].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.z].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.z].value[(0x30 >> 2) + 2]));
u_xlat12.x = u_xlat8.x;
u_xlat12.y = u_xlat9.x;
u_xlat12.z = u_xlat10.x;
u_xlat12.w = u_xlat11.x;
u_xlat13.x = u_xlat8.y;
u_xlat13.y = u_xlat9.y;
u_xlat13.z = u_xlat10.y;
u_xlat13.w = u_xlat11.y;
u_xlat11.x = u_xlat8.z;
u_xlat11.y = u_xlat9.z;
u_xlat11.z = u_xlat10.z;
u_xlat6 = fma(u_xlat12, u_xlat3.zzzz, u_xlat6);
u_xlat7 = fma(u_xlat13, u_xlat3.zzzz, u_xlat7);
u_xlat5 = fma(u_xlat11, u_xlat3.zzzz, u_xlat5);
u_xlat3.xyz = float3(as_type<float>(inMatrices[u_xlati4.w].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.w].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.w].value[(0x0 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[u_xlati4.w].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.w].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.w].value[(0x10 >> 2) + 2]));
u_xlat8.xyz = float3(as_type<float>(inMatrices[u_xlati4.w].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.w].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.w].value[(0x20 >> 2) + 2]));
u_xlat9.xyw = float3(as_type<float>(inMatrices[u_xlati4.w].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.w].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.w].value[(0x30 >> 2) + 2]));
u_xlat10.x = u_xlat3.x;
u_xlat10.y = u_xlat4.x;
u_xlat10.z = u_xlat8.x;
u_xlat10.w = u_xlat9.x;
u_xlat11.x = u_xlat3.y;
u_xlat11.y = u_xlat4.y;
u_xlat11.z = u_xlat8.y;
u_xlat11.w = u_xlat9.y;
u_xlat9.x = u_xlat3.z;
u_xlat9.y = u_xlat4.z;
u_xlat9.z = u_xlat8.z;
u_xlat4 = fma(u_xlat10, u_xlat3.wwww, u_xlat6);
u_xlat6 = fma(u_xlat11, u_xlat3.wwww, u_xlat7);
u_xlat3 = fma(u_xlat9, u_xlat3.wwww, u_xlat5);
u_xlat5.xyz = u_xlat0.yzw;
u_xlat5.w = 1.0;
u_xlat7.x = dot(u_xlat4, u_xlat5);
u_xlat7.y = dot(u_xlat6, u_xlat5);
u_xlat7.z = dot(u_xlat3, u_xlat5);
u_xlat0.yz = u_xlat1.xy;
u_xlat7.w = dot(u_xlat4.xyz, u_xlat0.xyz);
u_xlat5.x = dot(u_xlat6.xyz, u_xlat0.xyz);
u_xlat5.y = dot(u_xlat3.xyz, u_xlat0.xyz);
u_xlat2.zw = u_xlat1.zw;
u_xlat5.z = dot(u_xlat4.zxy, u_xlat2.xzw);
u_xlat5.w = dot(u_xlat6.zxy, u_xlat2.xzw);
u_xlat2.x = dot(u_xlat3.zxy, u_xlat2.xzw);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat7.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat7.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat7.z);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat7.w);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2)] = as_type<uint>(u_xlat5.x);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat5.y);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2] = as_type<uint>(u_xlat5.z);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 3] = as_type<uint>(u_xlat5.w);
outVertices[mtl_ThreadID.x].value[(0x20 >> 2)] = as_type<uint>(u_xlat2.x);
outVertices[mtl_ThreadID.x].value[(0x20 >> 2) + 1] = as_type<uint>(u_xlat2.y);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿƒþÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inMatrices_Type
{
uint value[16];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device uint *inVertices [[ buffer(2) ]],
const device uint *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device uint *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
int u_xlati0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
float u_xlat5;
int u_xlati5;
bool u_xlatb5;
float3 u_xlat6;
float3 u_xlat7;
float3 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
float2 u_xlat12;
int u_xlati12;
float u_xlat17;
uint u_xlatu17;
float u_xlat36;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0 = int(mtl_ThreadID.x) * 0xc;
u_xlat1.xyz = float3(as_type<float>(inVertices[(u_xlati0 >> 2) + 0]), as_type<float>(inVertices[(u_xlati0 >> 2) + 1]), as_type<float>(inVertices[(u_xlati0 >> 2) + 2]));
u_xlati12 = int(mtl_ThreadID.x) << 0x2;
u_xlat12.xy = float2(as_type<float>(inSkin[(u_xlati12 >> 2) + 0]), as_type<float>(inSkin[(u_xlati12 >> 2) + 1]));
u_xlat2.x = float(0.0);
u_xlat2.y = float(0.0);
u_xlat2.z = float(0.0);
u_xlat2.w = float(0.0);
u_xlat3.x = float(0.0);
u_xlat3.y = float(0.0);
u_xlat3.z = float(0.0);
u_xlat3.w = float(0.0);
u_xlat4.x = float(0.0);
u_xlat4.y = float(0.0);
u_xlat4.z = float(0.0);
u_xlat4.w = float(0.0);
u_xlat36 = u_xlat12.x;
while(true){
u_xlatb5 = as_type<uint>(u_xlat36)>=as_type<uint>(u_xlat12.y);
if(u_xlatb5){break;}
u_xlati5 = as_type<int>(u_xlat36) << 0x2;
u_xlat5 = as_type<float>(inSkin[(u_xlati5 >> 2) + 0]);
u_xlatu17 = as_type<uint>(u_xlat5) >> 0x10u;
u_xlat17 = float(u_xlatu17);
u_xlat17 = u_xlat17 * 1.52590219e-05;
u_xlati5 = int(as_type<uint>(u_xlat5) & 0xffffu);
u_xlat6.xyz = float3(as_type<float>(inMatrices[u_xlati5].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati5].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati5].value[(0x0 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[u_xlati5].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati5].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati5].value[(0x10 >> 2) + 2]));
u_xlat8.xyz = float3(as_type<float>(inMatrices[u_xlati5].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati5].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati5].value[(0x20 >> 2) + 2]));
u_xlat9.xyw = float3(as_type<float>(inMatrices[u_xlati5].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati5].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati5].value[(0x30 >> 2) + 2]));
u_xlat10.x = u_xlat6.x;
u_xlat10.y = u_xlat7.x;
u_xlat10.z = u_xlat8.x;
u_xlat10.w = u_xlat9.x;
u_xlat11.x = u_xlat6.y;
u_xlat11.y = u_xlat7.y;
u_xlat11.z = u_xlat8.y;
u_xlat11.w = u_xlat9.y;
u_xlat9.x = u_xlat6.z;
u_xlat9.y = u_xlat7.z;
u_xlat9.z = u_xlat8.z;
u_xlat2 = fma(u_xlat10, float4(u_xlat17), u_xlat2);
u_xlat3 = fma(u_xlat11, float4(u_xlat17), u_xlat3);
u_xlat4 = fma(u_xlat9, float4(u_xlat17), u_xlat4);
u_xlat36 = as_type<float>(as_type<int>(u_xlat36) + 0x1);
}
u_xlat1.w = 1.0;
u_xlat2.x = dot(u_xlat2, u_xlat1);
u_xlat2.y = dot(u_xlat3, u_xlat1);
u_xlat2.z = dot(u_xlat4, u_xlat1);
outVertices[(u_xlati0 >> 2)] = as_type<uint>(u_xlat2.x);
outVertices[(u_xlati0 >> 2) + 1] = as_type<uint>(u_xlat2.y);
outVertices[(u_xlati0 >> 2) + 2] = as_type<uint>(u_xlat2.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿëþÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inMatrices_Type
{
uint value[16];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device uint *inVertices [[ buffer(2) ]],
const device uint *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device uint *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
int u_xlati0;
bool u_xlatb0;
float4 u_xlat1;
float3 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float3 u_xlat6;
int u_xlati6;
bool u_xlatb6;
float3 u_xlat7;
float3 u_xlat8;
float3 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
float4 u_xlat12;
int u_xlati13;
float u_xlat19;
uint u_xlatu19;
float2 u_xlat26;
int u_xlati26;
float u_xlat41;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0 = int(mtl_ThreadID.x) * 0x18;
u_xlat1.xyz = float3(as_type<float>(inVertices[(u_xlati0 >> 2) + 0]), as_type<float>(inVertices[(u_xlati0 >> 2) + 1]), as_type<float>(inVertices[(u_xlati0 >> 2) + 2]));
u_xlati13 = int(mtl_ThreadID.x) * 0x18 + 0xc;
u_xlat2.xyz = float3(as_type<float>(inVertices[(u_xlati13 >> 2) + 0]), as_type<float>(inVertices[(u_xlati13 >> 2) + 1]), as_type<float>(inVertices[(u_xlati13 >> 2) + 2]));
u_xlati26 = int(mtl_ThreadID.x) << 0x2;
u_xlat26.xy = float2(as_type<float>(inSkin[(u_xlati26 >> 2) + 0]), as_type<float>(inSkin[(u_xlati26 >> 2) + 1]));
u_xlat3.x = float(0.0);
u_xlat3.y = float(0.0);
u_xlat3.z = float(0.0);
u_xlat3.w = float(0.0);
u_xlat4.x = float(0.0);
u_xlat4.y = float(0.0);
u_xlat4.z = float(0.0);
u_xlat4.w = float(0.0);
u_xlat5.x = float(0.0);
u_xlat5.y = float(0.0);
u_xlat5.z = float(0.0);
u_xlat5.w = float(0.0);
u_xlat41 = u_xlat26.x;
while(true){
u_xlatb6 = as_type<uint>(u_xlat41)>=as_type<uint>(u_xlat26.y);
if(u_xlatb6){break;}
u_xlati6 = as_type<int>(u_xlat41) << 0x2;
u_xlat6.x = as_type<float>(inSkin[(u_xlati6 >> 2) + 0]);
u_xlatu19 = as_type<uint>(u_xlat6.x) >> 0x10u;
u_xlat19 = float(u_xlatu19);
u_xlat19 = u_xlat19 * 1.52590219e-05;
u_xlati6 = int(as_type<uint>(u_xlat6.x) & 0xffffu);
u_xlat7.xyz = float3(as_type<float>(inMatrices[u_xlati6].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati6].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati6].value[(0x0 >> 2) + 2]));
u_xlat8.xyz = float3(as_type<float>(inMatrices[u_xlati6].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati6].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati6].value[(0x10 >> 2) + 2]));
u_xlat9.xyz = float3(as_type<float>(inMatrices[u_xlati6].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati6].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati6].value[(0x20 >> 2) + 2]));
u_xlat10.xyw = float3(as_type<float>(inMatrices[u_xlati6].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati6].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati6].value[(0x30 >> 2) + 2]));
u_xlat11.x = u_xlat7.x;
u_xlat11.y = u_xlat8.x;
u_xlat11.z = u_xlat9.x;
u_xlat11.w = u_xlat10.x;
u_xlat12.x = u_xlat7.y;
u_xlat12.y = u_xlat8.y;
u_xlat12.z = u_xlat9.y;
u_xlat12.w = u_xlat10.y;
u_xlat10.x = u_xlat7.z;
u_xlat10.y = u_xlat8.z;
u_xlat10.z = u_xlat9.z;
u_xlat3 = fma(u_xlat11, float4(u_xlat19), u_xlat3);
u_xlat4 = fma(u_xlat12, float4(u_xlat19), u_xlat4);
u_xlat5 = fma(u_xlat10, float4(u_xlat19), u_xlat5);
u_xlat41 = as_type<float>(as_type<int>(u_xlat41) + 0x1);
}
u_xlat1.w = 1.0;
u_xlat6.x = dot(u_xlat3, u_xlat1);
u_xlat6.y = dot(u_xlat4, u_xlat1);
u_xlat6.z = dot(u_xlat5, u_xlat1);
u_xlat1.x = dot(u_xlat3.xyz, u_xlat2.xyz);
u_xlat1.y = dot(u_xlat4.xyz, u_xlat2.xyz);
u_xlat1.z = dot(u_xlat5.xyz, u_xlat2.xyz);
outVertices[(u_xlati0 >> 2)] = as_type<uint>(u_xlat6.x);
outVertices[(u_xlati0 >> 2) + 1] = as_type<uint>(u_xlat6.y);
outVertices[(u_xlati0 >> 2) + 2] = as_type<uint>(u_xlat6.z);
outVertices[(u_xlati13 >> 2)] = as_type<uint>(u_xlat1.x);
outVertices[(u_xlati13 >> 2) + 1] = as_type<uint>(u_xlat1.y);
outVertices[(u_xlati13 >> 2) + 2] = as_type<uint>(u_xlat1.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿ‰þÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inMatrices_Type
{
uint value[16];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device uint *inVertices [[ buffer(2) ]],
const device uint *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device uint *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
int u_xlati0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float3 u_xlat6;
float3 u_xlat7;
float3 u_xlat8;
float3 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
float4 u_xlat12;
int u_xlati13;
float u_xlat19;
int u_xlati19;
bool u_xlatb19;
float2 u_xlat26;
int u_xlati26;
float u_xlat32;
uint u_xlatu32;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0 = int(mtl_ThreadID.x) * 0xc;
u_xlat1.xyz = float3(as_type<float>(inVertices[(u_xlati0 >> 2) + 0]), as_type<float>(inVertices[(u_xlati0 >> 2) + 1]), as_type<float>(inVertices[(u_xlati0 >> 2) + 2]));
u_xlati13 = int(mtl_ThreadID.x) * 0xc + 0xc;
u_xlat2 = float4(as_type<float>(inVertices[(u_xlati13 >> 2) + 0]), as_type<float>(inVertices[(u_xlati13 >> 2) + 1]), as_type<float>(inVertices[(u_xlati13 >> 2) + 2]), as_type<float>(inVertices[(u_xlati13 >> 2) + 3]));
u_xlati26 = int(mtl_ThreadID.x) << 0x2;
u_xlat26.xy = float2(as_type<float>(inSkin[(u_xlati26 >> 2) + 0]), as_type<float>(inSkin[(u_xlati26 >> 2) + 1]));
u_xlat3.x = float(0.0);
u_xlat3.y = float(0.0);
u_xlat3.z = float(0.0);
u_xlat3.w = float(0.0);
u_xlat4.x = float(0.0);
u_xlat4.y = float(0.0);
u_xlat4.z = float(0.0);
u_xlat4.w = float(0.0);
u_xlat5.x = float(0.0);
u_xlat5.y = float(0.0);
u_xlat5.z = float(0.0);
u_xlat5.w = float(0.0);
u_xlat6.x = u_xlat26.x;
while(true){
u_xlatb19 = as_type<uint>(u_xlat6.x)>=as_type<uint>(u_xlat26.y);
if(u_xlatb19){break;}
u_xlati19 = as_type<int>(u_xlat6.x) << 0x2;
u_xlat19 = as_type<float>(inSkin[(u_xlati19 >> 2) + 0]);
u_xlatu32 = as_type<uint>(u_xlat19) >> 0x10u;
u_xlat32 = float(u_xlatu32);
u_xlat32 = u_xlat32 * 1.52590219e-05;
u_xlati19 = int(as_type<uint>(u_xlat19) & 0xffffu);
u_xlat7.xyz = float3(as_type<float>(inMatrices[u_xlati19].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati19].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati19].value[(0x0 >> 2) + 2]));
u_xlat8.xyz = float3(as_type<float>(inMatrices[u_xlati19].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati19].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati19].value[(0x10 >> 2) + 2]));
u_xlat9.xyz = float3(as_type<float>(inMatrices[u_xlati19].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati19].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati19].value[(0x20 >> 2) + 2]));
u_xlat10.xyw = float3(as_type<float>(inMatrices[u_xlati19].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati19].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati19].value[(0x30 >> 2) + 2]));
u_xlat11.x = u_xlat7.x;
u_xlat11.y = u_xlat8.x;
u_xlat11.z = u_xlat9.x;
u_xlat11.w = u_xlat10.x;
u_xlat12.x = u_xlat7.y;
u_xlat12.y = u_xlat8.y;
u_xlat12.z = u_xlat9.y;
u_xlat12.w = u_xlat10.y;
u_xlat10.x = u_xlat7.z;
u_xlat10.y = u_xlat8.z;
u_xlat10.z = u_xlat9.z;
u_xlat3 = fma(u_xlat11, float4(u_xlat32), u_xlat3);
u_xlat4 = fma(u_xlat12, float4(u_xlat32), u_xlat4);
u_xlat5 = fma(u_xlat10, float4(u_xlat32), u_xlat5);
u_xlat6.x = as_type<float>(as_type<int>(u_xlat6.x) + 0x1);
}
u_xlat1.w = 1.0;
u_xlat6.x = dot(u_xlat3, u_xlat1);
u_xlat6.y = dot(u_xlat4, u_xlat1);
u_xlat6.z = dot(u_xlat5, u_xlat1);
u_xlat1.x = dot(u_xlat3.xyz, u_xlat2.xyz);
u_xlat1.y = dot(u_xlat4.xyz, u_xlat2.xyz);
u_xlat1.z = dot(u_xlat5.xyz, u_xlat2.xyz);
outVertices[(u_xlati0 >> 2)] = as_type<uint>(u_xlat6.x);
outVertices[(u_xlati0 >> 2) + 1] = as_type<uint>(u_xlat6.y);
outVertices[(u_xlati0 >> 2) + 2] = as_type<uint>(u_xlat6.z);
u_xlat1.w = u_xlat2.w;
outVertices[(u_xlati13 >> 2)] = as_type<uint>(u_xlat1.x);
outVertices[(u_xlati13 >> 2) + 1] = as_type<uint>(u_xlat1.y);
outVertices[(u_xlati13 >> 2) + 2] = as_type<uint>(u_xlat1.z);
outVertices[(u_xlati13 >> 2) + 3] = as_type<uint>(u_xlat1.w);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿÔþÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inMatrices_Type
{
uint value[16];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device uint *inVertices [[ buffer(2) ]],
const device uint *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device uint *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
int u_xlati0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
float3 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float3 u_xlat8;
float3 u_xlat9;
float3 u_xlat10;
float4 u_xlat11;
float4 u_xlat12;
float4 u_xlat13;
int2 u_xlati14;
float u_xlat32;
uint u_xlatu32;
float u_xlat42;
int u_xlati42;
float u_xlat44;
int u_xlati44;
bool u_xlatb44;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0 = int(mtl_ThreadID.x) * 0x28;
u_xlat1.xyz = float3(as_type<float>(inVertices[(u_xlati0 >> 2) + 0]), as_type<float>(inVertices[(u_xlati0 >> 2) + 1]), as_type<float>(inVertices[(u_xlati0 >> 2) + 2]));
u_xlati14.xy = int2(mtl_ThreadID.xx) * int2(0x28, 0x28) + int2(0xc, 0x18);
u_xlat2.xyz = float3(as_type<float>(inVertices[(u_xlati14.x >> 2) + 0]), as_type<float>(inVertices[(u_xlati14.x >> 2) + 1]), as_type<float>(inVertices[(u_xlati14.x >> 2) + 2]));
u_xlat3 = float4(as_type<float>(inVertices[(u_xlati14.y >> 2) + 0]), as_type<float>(inVertices[(u_xlati14.y >> 2) + 1]), as_type<float>(inVertices[(u_xlati14.y >> 2) + 2]), as_type<float>(inVertices[(u_xlati14.y >> 2) + 3]));
u_xlati42 = int(mtl_ThreadID.x) << 0x2;
u_xlat4.xy = float2(as_type<float>(inSkin[(u_xlati42 >> 2) + 0]), as_type<float>(inSkin[(u_xlati42 >> 2) + 1]));
u_xlat5.x = float(0.0);
u_xlat5.y = float(0.0);
u_xlat5.z = float(0.0);
u_xlat5.w = float(0.0);
u_xlat6.x = float(0.0);
u_xlat6.y = float(0.0);
u_xlat6.z = float(0.0);
u_xlat6.w = float(0.0);
u_xlat7.x = float(0.0);
u_xlat7.y = float(0.0);
u_xlat7.z = float(0.0);
u_xlat7.w = float(0.0);
u_xlat42 = u_xlat4.x;
while(true){
u_xlatb44 = as_type<uint>(u_xlat42)>=as_type<uint>(u_xlat4.y);
if(u_xlatb44){break;}
u_xlati44 = as_type<int>(u_xlat42) << 0x2;
u_xlat44 = as_type<float>(inSkin[(u_xlati44 >> 2) + 0]);
u_xlatu32 = as_type<uint>(u_xlat44) >> 0x10u;
u_xlat32 = float(u_xlatu32);
u_xlat32 = u_xlat32 * 1.52590219e-05;
u_xlati44 = int(as_type<uint>(u_xlat44) & 0xffffu);
u_xlat8.xyz = float3(as_type<float>(inMatrices[u_xlati44].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati44].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati44].value[(0x0 >> 2) + 2]));
u_xlat9.xyz = float3(as_type<float>(inMatrices[u_xlati44].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati44].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati44].value[(0x10 >> 2) + 2]));
u_xlat10.xyz = float3(as_type<float>(inMatrices[u_xlati44].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati44].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati44].value[(0x20 >> 2) + 2]));
u_xlat11.xyw = float3(as_type<float>(inMatrices[u_xlati44].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati44].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati44].value[(0x30 >> 2) + 2]));
u_xlat12.x = u_xlat8.x;
u_xlat12.y = u_xlat9.x;
u_xlat12.z = u_xlat10.x;
u_xlat12.w = u_xlat11.x;
u_xlat13.x = u_xlat8.y;
u_xlat13.y = u_xlat9.y;
u_xlat13.z = u_xlat10.y;
u_xlat13.w = u_xlat11.y;
u_xlat11.x = u_xlat8.z;
u_xlat11.y = u_xlat9.z;
u_xlat11.z = u_xlat10.z;
u_xlat5 = fma(u_xlat12, float4(u_xlat32), u_xlat5);
u_xlat6 = fma(u_xlat13, float4(u_xlat32), u_xlat6);
u_xlat7 = fma(u_xlat11, float4(u_xlat32), u_xlat7);
u_xlat42 = as_type<float>(as_type<int>(u_xlat42) + 0x1);
}
u_xlat1.w = 1.0;
u_xlat4.x = dot(u_xlat5, u_xlat1);
u_xlat4.y = dot(u_xlat6, u_xlat1);
u_xlat4.z = dot(u_xlat7, u_xlat1);
u_xlat1.x = dot(u_xlat5.xyz, u_xlat2.xyz);
u_xlat1.y = dot(u_xlat6.xyz, u_xlat2.xyz);
u_xlat1.z = dot(u_xlat7.xyz, u_xlat2.xyz);
u_xlat2.x = dot(u_xlat5.xyz, u_xlat3.xyz);
u_xlat2.y = dot(u_xlat6.xyz, u_xlat3.xyz);
u_xlat2.z = dot(u_xlat7.xyz, u_xlat3.xyz);
outVertices[(u_xlati0 >> 2)] = as_type<uint>(u_xlat4.x);
outVertices[(u_xlati0 >> 2) + 1] = as_type<uint>(u_xlat4.y);
outVertices[(u_xlati0 >> 2) + 2] = as_type<uint>(u_xlat4.z);
outVertices[(u_xlati14.x >> 2)] = as_type<uint>(u_xlat1.x);
outVertices[(u_xlati14.x >> 2) + 1] = as_type<uint>(u_xlat1.y);
outVertices[(u_xlati14.x >> 2) + 2] = as_type<uint>(u_xlat1.z);
u_xlat2.w = u_xlat3.w;
outVertices[(u_xlati14.y >> 2)] = as_type<uint>(u_xlat2.x);
outVertices[(u_xlati14.y >> 2) + 1] = as_type<uint>(u_xlat2.y);
outVertices[(u_xlati14.y >> 2) + 2] = as_type<uint>(u_xlat2.z);
outVertices[(u_xlati14.y >> 2) + 3] = as_type<uint>(u_xlat2.w);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿÝ
þÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inMatrices_Type
{
uint value[16];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device uint *inVertices [[ buffer(2) ]],
const device uint *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device uint *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
int u_xlati0;
bool u_xlatb0;
float4 u_xlat1;
float3 u_xlat2;
float3 u_xlat3;
float3 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float u_xlat8;
int u_xlati8;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0 = int(mtl_ThreadID.x) * 0xc;
u_xlat1.xyz = float3(as_type<float>(inVertices[(u_xlati0 >> 2) + 0]), as_type<float>(inVertices[(u_xlati0 >> 2) + 1]), as_type<float>(inVertices[(u_xlati0 >> 2) + 2]));
u_xlati8 = int(mtl_ThreadID.x) << 0x2;
u_xlat8 = as_type<float>(inSkin[(u_xlati8 >> 2) + 0]);
u_xlat2.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat8)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat8)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat8)].value[(0x0 >> 2) + 2]));
u_xlat3.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat8)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat8)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat8)].value[(0x10 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat8)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat8)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat8)].value[(0x20 >> 2) + 2]));
u_xlat5.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat8)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat8)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat8)].value[(0x30 >> 2) + 2]));
u_xlat6.x = u_xlat2.x;
u_xlat6.y = u_xlat3.x;
u_xlat6.z = u_xlat4.x;
u_xlat6.w = u_xlat5.x;
u_xlat1.w = 1.0;
u_xlat6.x = dot(u_xlat6, u_xlat1);
u_xlat7.x = u_xlat2.y;
u_xlat7.y = u_xlat3.y;
u_xlat7.z = u_xlat4.y;
u_xlat7.w = u_xlat5.y;
u_xlat6.y = dot(u_xlat7, u_xlat1);
u_xlat5.x = u_xlat2.z;
u_xlat5.y = u_xlat3.z;
u_xlat5.z = u_xlat4.z;
u_xlat6.z = dot(u_xlat5, u_xlat1);
outVertices[(u_xlati0 >> 2)] = as_type<uint>(u_xlat6.x);
outVertices[(u_xlati0 >> 2) + 1] = as_type<uint>(u_xlat6.y);
outVertices[(u_xlati0 >> 2) + 2] = as_type<uint>(u_xlat6.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿ[
þÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inMatrices_Type
{
uint value[16];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device uint *inVertices [[ buffer(2) ]],
const device uint *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device uint *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
int u_xlati0;
bool u_xlatb0;
float4 u_xlat1;
float3 u_xlat2;
float3 u_xlat3;
float3 u_xlat4;
float3 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float3 u_xlat8;
float4 u_xlat9;
int u_xlati10;
float u_xlat20;
int u_xlati20;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0 = int(mtl_ThreadID.x) * 0x18;
u_xlat1.xyz = float3(as_type<float>(inVertices[(u_xlati0 >> 2) + 0]), as_type<float>(inVertices[(u_xlati0 >> 2) + 1]), as_type<float>(inVertices[(u_xlati0 >> 2) + 2]));
u_xlati10 = int(mtl_ThreadID.x) * 0x18 + 0xc;
u_xlat2.xyz = float3(as_type<float>(inVertices[(u_xlati10 >> 2) + 0]), as_type<float>(inVertices[(u_xlati10 >> 2) + 1]), as_type<float>(inVertices[(u_xlati10 >> 2) + 2]));
u_xlati20 = int(mtl_ThreadID.x) << 0x2;
u_xlat20 = as_type<float>(inSkin[(u_xlati20 >> 2) + 0]);
u_xlat3.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat20)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat20)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat20)].value[(0x0 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat20)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat20)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat20)].value[(0x10 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat20)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat20)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat20)].value[(0x20 >> 2) + 2]));
u_xlat6.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat20)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat20)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat20)].value[(0x30 >> 2) + 2]));
u_xlat7.x = u_xlat3.x;
u_xlat7.y = u_xlat4.x;
u_xlat7.z = u_xlat5.x;
u_xlat7.w = u_xlat6.x;
u_xlat1.w = 1.0;
u_xlat8.x = dot(u_xlat7, u_xlat1);
u_xlat9.x = u_xlat3.y;
u_xlat9.y = u_xlat4.y;
u_xlat9.z = u_xlat5.y;
u_xlat9.w = u_xlat6.y;
u_xlat8.y = dot(u_xlat9, u_xlat1);
u_xlat6.x = u_xlat3.z;
u_xlat6.y = u_xlat4.z;
u_xlat6.z = u_xlat5.z;
u_xlat8.z = dot(u_xlat6, u_xlat1);
u_xlat1.x = dot(u_xlat7.xyz, u_xlat2.xyz);
u_xlat1.y = dot(u_xlat9.xyz, u_xlat2.xyz);
u_xlat1.z = dot(u_xlat6.xyz, u_xlat2.xyz);
outVertices[(u_xlati0 >> 2)] = as_type<uint>(u_xlat8.x);
outVertices[(u_xlati0 >> 2) + 1] = as_type<uint>(u_xlat8.y);
outVertices[(u_xlati0 >> 2) + 2] = as_type<uint>(u_xlat8.z);
outVertices[(u_xlati10 >> 2)] = as_type<uint>(u_xlat1.x);
outVertices[(u_xlati10 >> 2) + 1] = as_type<uint>(u_xlat1.y);
outVertices[(u_xlati10 >> 2) + 2] = as_type<uint>(u_xlat1.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿä
þÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inMatrices_Type
{
uint value[16];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device uint *inVertices [[ buffer(2) ]],
const device uint *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device uint *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
int u_xlati0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float3 u_xlat3;
float3 u_xlat4;
float3 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float3 u_xlat8;
float4 u_xlat9;
int u_xlati10;
float u_xlat20;
int u_xlati20;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0 = int(mtl_ThreadID.x) * 0xc;
u_xlat1.xyz = float3(as_type<float>(inVertices[(u_xlati0 >> 2) + 0]), as_type<float>(inVertices[(u_xlati0 >> 2) + 1]), as_type<float>(inVertices[(u_xlati0 >> 2) + 2]));
u_xlati10 = int(mtl_ThreadID.x) * 0xc + 0xc;
u_xlat2 = float4(as_type<float>(inVertices[(u_xlati10 >> 2) + 0]), as_type<float>(inVertices[(u_xlati10 >> 2) + 1]), as_type<float>(inVertices[(u_xlati10 >> 2) + 2]), as_type<float>(inVertices[(u_xlati10 >> 2) + 3]));
u_xlati20 = int(mtl_ThreadID.x) << 0x2;
u_xlat20 = as_type<float>(inSkin[(u_xlati20 >> 2) + 0]);
u_xlat3.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat20)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat20)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat20)].value[(0x0 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat20)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat20)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat20)].value[(0x10 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat20)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat20)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat20)].value[(0x20 >> 2) + 2]));
u_xlat6.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat20)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat20)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat20)].value[(0x30 >> 2) + 2]));
u_xlat7.x = u_xlat3.x;
u_xlat7.y = u_xlat4.x;
u_xlat7.z = u_xlat5.x;
u_xlat7.w = u_xlat6.x;
u_xlat1.w = 1.0;
u_xlat8.x = dot(u_xlat7, u_xlat1);
u_xlat9.x = u_xlat3.y;
u_xlat9.y = u_xlat4.y;
u_xlat9.z = u_xlat5.y;
u_xlat9.w = u_xlat6.y;
u_xlat8.y = dot(u_xlat9, u_xlat1);
u_xlat6.x = u_xlat3.z;
u_xlat6.y = u_xlat4.z;
u_xlat6.z = u_xlat5.z;
u_xlat8.z = dot(u_xlat6, u_xlat1);
u_xlat1.x = dot(u_xlat7.xyz, u_xlat2.xyz);
u_xlat1.y = dot(u_xlat9.xyz, u_xlat2.xyz);
u_xlat1.z = dot(u_xlat6.xyz, u_xlat2.xyz);
outVertices[(u_xlati0 >> 2)] = as_type<uint>(u_xlat8.x);
outVertices[(u_xlati0 >> 2) + 1] = as_type<uint>(u_xlat8.y);
outVertices[(u_xlati0 >> 2) + 2] = as_type<uint>(u_xlat8.z);
u_xlat1.w = u_xlat2.w;
outVertices[(u_xlati10 >> 2)] = as_type<uint>(u_xlat1.x);
outVertices[(u_xlati10 >> 2) + 1] = as_type<uint>(u_xlat1.y);
outVertices[(u_xlati10 >> 2) + 2] = as_type<uint>(u_xlat1.z);
outVertices[(u_xlati10 >> 2) + 3] = as_type<uint>(u_xlat1.w);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿ;þÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inMatrices_Type
{
uint value[16];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device uint *inVertices [[ buffer(2) ]],
const device uint *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device uint *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
int u_xlati0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
float3 u_xlat4;
float3 u_xlat5;
float3 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float3 u_xlat9;
float4 u_xlat10;
int2 u_xlati11;
float u_xlat33;
int u_xlati33;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0 = int(mtl_ThreadID.x) * 0x28;
u_xlat1.xyz = float3(as_type<float>(inVertices[(u_xlati0 >> 2) + 0]), as_type<float>(inVertices[(u_xlati0 >> 2) + 1]), as_type<float>(inVertices[(u_xlati0 >> 2) + 2]));
u_xlati11.xy = int2(mtl_ThreadID.xx) * int2(0x28, 0x28) + int2(0xc, 0x18);
u_xlat2.xyz = float3(as_type<float>(inVertices[(u_xlati11.x >> 2) + 0]), as_type<float>(inVertices[(u_xlati11.x >> 2) + 1]), as_type<float>(inVertices[(u_xlati11.x >> 2) + 2]));
u_xlat3 = float4(as_type<float>(inVertices[(u_xlati11.y >> 2) + 0]), as_type<float>(inVertices[(u_xlati11.y >> 2) + 1]), as_type<float>(inVertices[(u_xlati11.y >> 2) + 2]), as_type<float>(inVertices[(u_xlati11.y >> 2) + 3]));
u_xlati33 = int(mtl_ThreadID.x) << 0x2;
u_xlat33 = as_type<float>(inSkin[(u_xlati33 >> 2) + 0]);
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat33)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat33)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat33)].value[(0x0 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat33)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat33)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat33)].value[(0x10 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat33)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat33)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat33)].value[(0x20 >> 2) + 2]));
u_xlat7.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat33)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat33)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat33)].value[(0x30 >> 2) + 2]));
u_xlat8.x = u_xlat4.x;
u_xlat8.y = u_xlat5.x;
u_xlat8.z = u_xlat6.x;
u_xlat8.w = u_xlat7.x;
u_xlat1.w = 1.0;
u_xlat9.x = dot(u_xlat8, u_xlat1);
u_xlat10.x = u_xlat4.y;
u_xlat10.y = u_xlat5.y;
u_xlat10.z = u_xlat6.y;
u_xlat10.w = u_xlat7.y;
u_xlat9.y = dot(u_xlat10, u_xlat1);
u_xlat7.x = u_xlat4.z;
u_xlat7.y = u_xlat5.z;
u_xlat7.z = u_xlat6.z;
u_xlat9.z = dot(u_xlat7, u_xlat1);
u_xlat1.x = dot(u_xlat8.xyz, u_xlat2.xyz);
u_xlat1.y = dot(u_xlat10.xyz, u_xlat2.xyz);
u_xlat1.z = dot(u_xlat7.xyz, u_xlat2.xyz);
u_xlat2.x = dot(u_xlat8.xyz, u_xlat3.xyz);
u_xlat2.y = dot(u_xlat10.xyz, u_xlat3.xyz);
u_xlat2.z = dot(u_xlat7.xyz, u_xlat3.xyz);
outVertices[(u_xlati0 >> 2)] = as_type<uint>(u_xlat9.x);
outVertices[(u_xlati0 >> 2) + 1] = as_type<uint>(u_xlat9.y);
outVertices[(u_xlati0 >> 2) + 2] = as_type<uint>(u_xlat9.z);
outVertices[(u_xlati11.x >> 2)] = as_type<uint>(u_xlat1.x);
outVertices[(u_xlati11.x >> 2) + 1] = as_type<uint>(u_xlat1.y);
outVertices[(u_xlati11.x >> 2) + 2] = as_type<uint>(u_xlat1.z);
u_xlat2.w = u_xlat3.w;
outVertices[(u_xlati11.y >> 2)] = as_type<uint>(u_xlat2.x);
outVertices[(u_xlati11.y >> 2) + 1] = as_type<uint>(u_xlat2.y);
outVertices[(u_xlati11.y >> 2) + 2] = as_type<uint>(u_xlat2.z);
outVertices[(u_xlati11.y >> 2) + 3] = as_type<uint>(u_xlat2.w);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿþÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inMatrices_Type
{
uint value[16];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device uint *inVertices [[ buffer(2) ]],
const device uint *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device uint *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
int u_xlati0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float3 u_xlat11;
int u_xlati11;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0 = int(mtl_ThreadID.x) * 0xc;
u_xlat1.xyz = float3(as_type<float>(inVertices[(u_xlati0 >> 2) + 0]), as_type<float>(inVertices[(u_xlati0 >> 2) + 1]), as_type<float>(inVertices[(u_xlati0 >> 2) + 2]));
u_xlati11 = int(mtl_ThreadID.x) << 0x4;
u_xlat2 = float4(as_type<float>(inSkin[(u_xlati11 >> 2) + 0]), as_type<float>(inSkin[(u_xlati11 >> 2) + 1]), as_type<float>(inSkin[(u_xlati11 >> 2) + 2]), as_type<float>(inSkin[(u_xlati11 >> 2) + 3]));
u_xlat11.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x0 >> 2) + 2]));
u_xlat3.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x10 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x20 >> 2) + 2]));
u_xlat5.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x30 >> 2) + 2]));
u_xlat6.x = u_xlat11.x;
u_xlat6.y = u_xlat3.x;
u_xlat6.z = u_xlat4.x;
u_xlat6.w = u_xlat5.x;
u_xlat7.x = u_xlat11.y;
u_xlat7.y = u_xlat3.y;
u_xlat7.z = u_xlat4.y;
u_xlat7.w = u_xlat5.y;
u_xlat5.x = u_xlat11.z;
u_xlat5.y = u_xlat3.z;
u_xlat5.z = u_xlat4.z;
u_xlat11.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x0 >> 2) + 2]));
u_xlat3.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x10 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x20 >> 2) + 2]));
u_xlat8.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x30 >> 2) + 2]));
u_xlat9.x = u_xlat11.x;
u_xlat9.y = u_xlat3.x;
u_xlat9.z = u_xlat4.x;
u_xlat9.w = u_xlat8.x;
u_xlat9 = u_xlat2.yyyy * u_xlat9;
u_xlat10.x = u_xlat11.y;
u_xlat10.y = u_xlat3.y;
u_xlat10.z = u_xlat4.y;
u_xlat10.w = u_xlat8.y;
u_xlat10 = u_xlat2.yyyy * u_xlat10;
u_xlat8.x = u_xlat11.z;
u_xlat8.y = u_xlat3.z;
u_xlat8.z = u_xlat4.z;
u_xlat3 = u_xlat2.yyyy * u_xlat8;
u_xlat4 = fma(u_xlat6, u_xlat2.xxxx, u_xlat9);
u_xlat6 = fma(u_xlat7, u_xlat2.xxxx, u_xlat10);
u_xlat2 = fma(u_xlat5, u_xlat2.xxxx, u_xlat3);
u_xlat1.w = 1.0;
u_xlat3.x = dot(u_xlat4, u_xlat1);
u_xlat3.y = dot(u_xlat6, u_xlat1);
u_xlat3.z = dot(u_xlat2, u_xlat1);
outVertices[(u_xlati0 >> 2)] = as_type<uint>(u_xlat3.x);
outVertices[(u_xlati0 >> 2) + 1] = as_type<uint>(u_xlat3.y);
outVertices[(u_xlati0 >> 2) + 2] = as_type<uint>(u_xlat3.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿaþÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inMatrices_Type
{
uint value[16];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device uint *inVertices [[ buffer(2) ]],
const device uint *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device uint *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
int u_xlati0;
bool u_xlatb0;
float4 u_xlat1;
float3 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
float4 u_xlat12;
int u_xlati13;
int u_xlati26;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0 = int(mtl_ThreadID.x) * 0x18;
u_xlat1.xyz = float3(as_type<float>(inVertices[(u_xlati0 >> 2) + 0]), as_type<float>(inVertices[(u_xlati0 >> 2) + 1]), as_type<float>(inVertices[(u_xlati0 >> 2) + 2]));
u_xlati13 = int(mtl_ThreadID.x) * 0x18 + 0xc;
u_xlat2.xyz = float3(as_type<float>(inVertices[(u_xlati13 >> 2) + 0]), as_type<float>(inVertices[(u_xlati13 >> 2) + 1]), as_type<float>(inVertices[(u_xlati13 >> 2) + 2]));
u_xlati26 = int(mtl_ThreadID.x) << 0x4;
u_xlat3 = float4(as_type<float>(inSkin[(u_xlati26 >> 2) + 0]), as_type<float>(inSkin[(u_xlati26 >> 2) + 1]), as_type<float>(inSkin[(u_xlati26 >> 2) + 2]), as_type<float>(inSkin[(u_xlati26 >> 2) + 3]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x0 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x10 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x20 >> 2) + 2]));
u_xlat7.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x30 >> 2) + 2]));
u_xlat8.x = u_xlat4.x;
u_xlat8.y = u_xlat5.x;
u_xlat8.z = u_xlat6.x;
u_xlat8.w = u_xlat7.x;
u_xlat9.x = u_xlat4.y;
u_xlat9.y = u_xlat5.y;
u_xlat9.z = u_xlat6.y;
u_xlat9.w = u_xlat7.y;
u_xlat7.x = u_xlat4.z;
u_xlat7.y = u_xlat5.z;
u_xlat7.z = u_xlat6.z;
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x0 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x10 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x20 >> 2) + 2]));
u_xlat10.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x30 >> 2) + 2]));
u_xlat11.x = u_xlat4.x;
u_xlat11.y = u_xlat5.x;
u_xlat11.z = u_xlat6.x;
u_xlat11.w = u_xlat10.x;
u_xlat11 = u_xlat3.yyyy * u_xlat11;
u_xlat12.x = u_xlat4.y;
u_xlat12.y = u_xlat5.y;
u_xlat12.z = u_xlat6.y;
u_xlat12.w = u_xlat10.y;
u_xlat12 = u_xlat3.yyyy * u_xlat12;
u_xlat10.x = u_xlat4.z;
u_xlat10.y = u_xlat5.z;
u_xlat10.z = u_xlat6.z;
u_xlat4 = u_xlat3.yyyy * u_xlat10;
u_xlat5 = fma(u_xlat8, u_xlat3.xxxx, u_xlat11);
u_xlat6 = fma(u_xlat9, u_xlat3.xxxx, u_xlat12);
u_xlat3 = fma(u_xlat7, u_xlat3.xxxx, u_xlat4);
u_xlat1.w = 1.0;
u_xlat4.x = dot(u_xlat5, u_xlat1);
u_xlat4.y = dot(u_xlat6, u_xlat1);
u_xlat4.z = dot(u_xlat3, u_xlat1);
u_xlat1.x = dot(u_xlat5.xyz, u_xlat2.xyz);
u_xlat1.y = dot(u_xlat6.xyz, u_xlat2.xyz);
u_xlat1.z = dot(u_xlat3.xyz, u_xlat2.xyz);
outVertices[(u_xlati0 >> 2)] = as_type<uint>(u_xlat4.x);
outVertices[(u_xlati0 >> 2) + 1] = as_type<uint>(u_xlat4.y);
outVertices[(u_xlati0 >> 2) + 2] = as_type<uint>(u_xlat4.z);
outVertices[(u_xlati13 >> 2)] = as_type<uint>(u_xlat1.x);
outVertices[(u_xlati13 >> 2) + 1] = as_type<uint>(u_xlat1.y);
outVertices[(u_xlati13 >> 2) + 2] = as_type<uint>(u_xlat1.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿêþÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inMatrices_Type
{
uint value[16];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device uint *inVertices [[ buffer(2) ]],
const device uint *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device uint *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
int u_xlati0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
float4 u_xlat12;
int u_xlati13;
int u_xlati26;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0 = int(mtl_ThreadID.x) * 0xc;
u_xlat1.xyz = float3(as_type<float>(inVertices[(u_xlati0 >> 2) + 0]), as_type<float>(inVertices[(u_xlati0 >> 2) + 1]), as_type<float>(inVertices[(u_xlati0 >> 2) + 2]));
u_xlati13 = int(mtl_ThreadID.x) * 0xc + 0xc;
u_xlat2 = float4(as_type<float>(inVertices[(u_xlati13 >> 2) + 0]), as_type<float>(inVertices[(u_xlati13 >> 2) + 1]), as_type<float>(inVertices[(u_xlati13 >> 2) + 2]), as_type<float>(inVertices[(u_xlati13 >> 2) + 3]));
u_xlati26 = int(mtl_ThreadID.x) << 0x4;
u_xlat3 = float4(as_type<float>(inSkin[(u_xlati26 >> 2) + 0]), as_type<float>(inSkin[(u_xlati26 >> 2) + 1]), as_type<float>(inSkin[(u_xlati26 >> 2) + 2]), as_type<float>(inSkin[(u_xlati26 >> 2) + 3]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x0 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x10 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x20 >> 2) + 2]));
u_xlat7.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x30 >> 2) + 2]));
u_xlat8.x = u_xlat4.x;
u_xlat8.y = u_xlat5.x;
u_xlat8.z = u_xlat6.x;
u_xlat8.w = u_xlat7.x;
u_xlat9.x = u_xlat4.y;
u_xlat9.y = u_xlat5.y;
u_xlat9.z = u_xlat6.y;
u_xlat9.w = u_xlat7.y;
u_xlat7.x = u_xlat4.z;
u_xlat7.y = u_xlat5.z;
u_xlat7.z = u_xlat6.z;
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x0 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x10 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x20 >> 2) + 2]));
u_xlat10.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x30 >> 2) + 2]));
u_xlat11.x = u_xlat4.x;
u_xlat11.y = u_xlat5.x;
u_xlat11.z = u_xlat6.x;
u_xlat11.w = u_xlat10.x;
u_xlat11 = u_xlat3.yyyy * u_xlat11;
u_xlat12.x = u_xlat4.y;
u_xlat12.y = u_xlat5.y;
u_xlat12.z = u_xlat6.y;
u_xlat12.w = u_xlat10.y;
u_xlat12 = u_xlat3.yyyy * u_xlat12;
u_xlat10.x = u_xlat4.z;
u_xlat10.y = u_xlat5.z;
u_xlat10.z = u_xlat6.z;
u_xlat4 = u_xlat3.yyyy * u_xlat10;
u_xlat5 = fma(u_xlat8, u_xlat3.xxxx, u_xlat11);
u_xlat6 = fma(u_xlat9, u_xlat3.xxxx, u_xlat12);
u_xlat3 = fma(u_xlat7, u_xlat3.xxxx, u_xlat4);
u_xlat1.w = 1.0;
u_xlat4.x = dot(u_xlat5, u_xlat1);
u_xlat4.y = dot(u_xlat6, u_xlat1);
u_xlat4.z = dot(u_xlat3, u_xlat1);
u_xlat1.x = dot(u_xlat5.xyz, u_xlat2.xyz);
u_xlat1.y = dot(u_xlat6.xyz, u_xlat2.xyz);
u_xlat1.z = dot(u_xlat3.xyz, u_xlat2.xyz);
outVertices[(u_xlati0 >> 2)] = as_type<uint>(u_xlat4.x);
outVertices[(u_xlati0 >> 2) + 1] = as_type<uint>(u_xlat4.y);
outVertices[(u_xlati0 >> 2) + 2] = as_type<uint>(u_xlat4.z);
u_xlat1.w = u_xlat2.w;
outVertices[(u_xlati13 >> 2)] = as_type<uint>(u_xlat1.x);
outVertices[(u_xlati13 >> 2) + 1] = as_type<uint>(u_xlat1.y);
outVertices[(u_xlati13 >> 2) + 2] = as_type<uint>(u_xlat1.z);
outVertices[(u_xlati13 >> 2) + 3] = as_type<uint>(u_xlat1.w);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿ?þÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inMatrices_Type
{
uint value[16];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device uint *inVertices [[ buffer(2) ]],
const device uint *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device uint *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
int u_xlati0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
float4 u_xlat12;
float4 u_xlat13;
int2 u_xlati14;
int u_xlati42;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0 = int(mtl_ThreadID.x) * 0x28;
u_xlat1.xyz = float3(as_type<float>(inVertices[(u_xlati0 >> 2) + 0]), as_type<float>(inVertices[(u_xlati0 >> 2) + 1]), as_type<float>(inVertices[(u_xlati0 >> 2) + 2]));
u_xlati14.xy = int2(mtl_ThreadID.xx) * int2(0x28, 0x28) + int2(0xc, 0x18);
u_xlat2.xyz = float3(as_type<float>(inVertices[(u_xlati14.x >> 2) + 0]), as_type<float>(inVertices[(u_xlati14.x >> 2) + 1]), as_type<float>(inVertices[(u_xlati14.x >> 2) + 2]));
u_xlat3 = float4(as_type<float>(inVertices[(u_xlati14.y >> 2) + 0]), as_type<float>(inVertices[(u_xlati14.y >> 2) + 1]), as_type<float>(inVertices[(u_xlati14.y >> 2) + 2]), as_type<float>(inVertices[(u_xlati14.y >> 2) + 3]));
u_xlati42 = int(mtl_ThreadID.x) << 0x4;
u_xlat4 = float4(as_type<float>(inSkin[(u_xlati42 >> 2) + 0]), as_type<float>(inSkin[(u_xlati42 >> 2) + 1]), as_type<float>(inSkin[(u_xlati42 >> 2) + 2]), as_type<float>(inSkin[(u_xlati42 >> 2) + 3]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x0 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x10 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x20 >> 2) + 2]));
u_xlat8.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x30 >> 2) + 2]));
u_xlat9.x = u_xlat5.x;
u_xlat9.y = u_xlat6.x;
u_xlat9.z = u_xlat7.x;
u_xlat9.w = u_xlat8.x;
u_xlat10.x = u_xlat5.y;
u_xlat10.y = u_xlat6.y;
u_xlat10.z = u_xlat7.y;
u_xlat10.w = u_xlat8.y;
u_xlat8.x = u_xlat5.z;
u_xlat8.y = u_xlat6.z;
u_xlat8.z = u_xlat7.z;
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x0 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x10 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x20 >> 2) + 2]));
u_xlat11.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x30 >> 2) + 2]));
u_xlat12.x = u_xlat5.x;
u_xlat12.y = u_xlat6.x;
u_xlat12.z = u_xlat7.x;
u_xlat12.w = u_xlat11.x;
u_xlat12 = u_xlat4.yyyy * u_xlat12;
u_xlat13.x = u_xlat5.y;
u_xlat13.y = u_xlat6.y;
u_xlat13.z = u_xlat7.y;
u_xlat13.w = u_xlat11.y;
u_xlat13 = u_xlat4.yyyy * u_xlat13;
u_xlat11.x = u_xlat5.z;
u_xlat11.y = u_xlat6.z;
u_xlat11.z = u_xlat7.z;
u_xlat5 = u_xlat4.yyyy * u_xlat11;
u_xlat6 = fma(u_xlat9, u_xlat4.xxxx, u_xlat12);
u_xlat7 = fma(u_xlat10, u_xlat4.xxxx, u_xlat13);
u_xlat4 = fma(u_xlat8, u_xlat4.xxxx, u_xlat5);
u_xlat1.w = 1.0;
u_xlat5.x = dot(u_xlat6, u_xlat1);
u_xlat5.y = dot(u_xlat7, u_xlat1);
u_xlat5.z = dot(u_xlat4, u_xlat1);
u_xlat1.x = dot(u_xlat6.xyz, u_xlat2.xyz);
u_xlat1.y = dot(u_xlat7.xyz, u_xlat2.xyz);
u_xlat1.z = dot(u_xlat4.xyz, u_xlat2.xyz);
u_xlat2.x = dot(u_xlat6.xyz, u_xlat3.xyz);
u_xlat2.y = dot(u_xlat7.xyz, u_xlat3.xyz);
u_xlat2.z = dot(u_xlat4.xyz, u_xlat3.xyz);
outVertices[(u_xlati0 >> 2)] = as_type<uint>(u_xlat5.x);
outVertices[(u_xlati0 >> 2) + 1] = as_type<uint>(u_xlat5.y);
outVertices[(u_xlati0 >> 2) + 2] = as_type<uint>(u_xlat5.z);
outVertices[(u_xlati14.x >> 2)] = as_type<uint>(u_xlat1.x);
outVertices[(u_xlati14.x >> 2) + 1] = as_type<uint>(u_xlat1.y);
outVertices[(u_xlati14.x >> 2) + 2] = as_type<uint>(u_xlat1.z);
u_xlat2.w = u_xlat3.w;
outVertices[(u_xlati14.y >> 2)] = as_type<uint>(u_xlat2.x);
outVertices[(u_xlati14.y >> 2) + 1] = as_type<uint>(u_xlat2.y);
outVertices[(u_xlati14.y >> 2) + 2] = as_type<uint>(u_xlat2.z);
outVertices[(u_xlati14.y >> 2) + 3] = as_type<uint>(u_xlat2.w);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿžþÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inMatrices_Type
{
uint value[16];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device uint *inVertices [[ buffer(2) ]],
const device uint *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device uint *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
int u_xlati0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
float3 u_xlat12;
int u_xlati12;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0 = int(mtl_ThreadID.x) * 0xc;
u_xlat1.xyz = float3(as_type<float>(inVertices[(u_xlati0 >> 2) + 0]), as_type<float>(inVertices[(u_xlati0 >> 2) + 1]), as_type<float>(inVertices[(u_xlati0 >> 2) + 2]));
u_xlati12 = int(mtl_ThreadID.x) << 0x5;
u_xlat2 = float4(as_type<float>(inSkin[(u_xlati12 >> 2) + 0]), as_type<float>(inSkin[(u_xlati12 >> 2) + 1]), as_type<float>(inSkin[(u_xlati12 >> 2) + 2]), as_type<float>(inSkin[(u_xlati12 >> 2) + 3]));
u_xlati12 = int(mtl_ThreadID.x) * 0x20 + 0x10;
u_xlat3 = float4(as_type<float>(inSkin[(u_xlati12 >> 2) + 0]), as_type<float>(inSkin[(u_xlati12 >> 2) + 1]), as_type<float>(inSkin[(u_xlati12 >> 2) + 2]), as_type<float>(inSkin[(u_xlati12 >> 2) + 3]));
u_xlat12.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.x)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.x)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.x)].value[(0x0 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.x)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.x)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.x)].value[(0x10 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.x)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.x)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.x)].value[(0x20 >> 2) + 2]));
u_xlat6.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.x)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.x)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.x)].value[(0x30 >> 2) + 2]));
u_xlat7.x = u_xlat12.x;
u_xlat7.y = u_xlat4.x;
u_xlat7.z = u_xlat5.x;
u_xlat7.w = u_xlat6.x;
u_xlat8.x = u_xlat12.y;
u_xlat8.y = u_xlat4.y;
u_xlat8.z = u_xlat5.y;
u_xlat8.w = u_xlat6.y;
u_xlat6.x = u_xlat12.z;
u_xlat6.y = u_xlat4.z;
u_xlat6.z = u_xlat5.z;
u_xlat12.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.y)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.y)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.y)].value[(0x0 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.y)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.y)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.y)].value[(0x10 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.y)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.y)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.y)].value[(0x20 >> 2) + 2]));
u_xlat9.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.y)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.y)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.y)].value[(0x30 >> 2) + 2]));
u_xlat10.x = u_xlat12.x;
u_xlat10.y = u_xlat4.x;
u_xlat10.z = u_xlat5.x;
u_xlat10.w = u_xlat9.x;
u_xlat10 = u_xlat2.yyyy * u_xlat10;
u_xlat11.x = u_xlat12.y;
u_xlat11.y = u_xlat4.y;
u_xlat11.z = u_xlat5.y;
u_xlat11.w = u_xlat9.y;
u_xlat11 = u_xlat2.yyyy * u_xlat11;
u_xlat9.x = u_xlat12.z;
u_xlat9.y = u_xlat4.z;
u_xlat9.z = u_xlat5.z;
u_xlat4 = u_xlat2.yyyy * u_xlat9;
u_xlat5 = fma(u_xlat7, u_xlat2.xxxx, u_xlat10);
u_xlat7 = fma(u_xlat8, u_xlat2.xxxx, u_xlat11);
u_xlat4 = fma(u_xlat6, u_xlat2.xxxx, u_xlat4);
u_xlat12.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x0 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x10 >> 2) + 2]));
u_xlat8.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x20 >> 2) + 2]));
u_xlat9.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x30 >> 2) + 2]));
u_xlat10.x = u_xlat12.x;
u_xlat10.y = u_xlat6.x;
u_xlat10.z = u_xlat8.x;
u_xlat10.w = u_xlat9.x;
u_xlat11.x = u_xlat12.y;
u_xlat11.y = u_xlat6.y;
u_xlat11.z = u_xlat8.y;
u_xlat11.w = u_xlat9.y;
u_xlat9.x = u_xlat12.z;
u_xlat9.y = u_xlat6.z;
u_xlat9.z = u_xlat8.z;
u_xlat5 = fma(u_xlat10, u_xlat2.zzzz, u_xlat5);
u_xlat6 = fma(u_xlat11, u_xlat2.zzzz, u_xlat7);
u_xlat4 = fma(u_xlat9, u_xlat2.zzzz, u_xlat4);
u_xlat12.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x0 >> 2) + 2]));
u_xlat2.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x10 >> 2) + 2]));
u_xlat3.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x20 >> 2) + 2]));
u_xlat7.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x30 >> 2) + 2]));
u_xlat8.x = u_xlat12.x;
u_xlat8.y = u_xlat2.x;
u_xlat8.z = u_xlat3.x;
u_xlat8.w = u_xlat7.x;
u_xlat9.x = u_xlat12.y;
u_xlat9.y = u_xlat2.y;
u_xlat9.z = u_xlat3.y;
u_xlat9.w = u_xlat7.y;
u_xlat7.x = u_xlat12.z;
u_xlat7.y = u_xlat2.z;
u_xlat7.z = u_xlat3.z;
u_xlat3 = fma(u_xlat8, u_xlat2.wwww, u_xlat5);
u_xlat5 = fma(u_xlat9, u_xlat2.wwww, u_xlat6);
u_xlat2 = fma(u_xlat7, u_xlat2.wwww, u_xlat4);
u_xlat1.w = 1.0;
u_xlat3.x = dot(u_xlat3, u_xlat1);
u_xlat3.y = dot(u_xlat5, u_xlat1);
u_xlat3.z = dot(u_xlat2, u_xlat1);
outVertices[(u_xlati0 >> 2)] = as_type<uint>(u_xlat3.x);
outVertices[(u_xlati0 >> 2) + 1] = as_type<uint>(u_xlat3.y);
outVertices[(u_xlati0 >> 2) + 2] = as_type<uint>(u_xlat3.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿ !þÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inMatrices_Type
{
uint value[16];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device uint *inVertices [[ buffer(2) ]],
const device uint *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device uint *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
int u_xlati0;
bool u_xlatb0;
float4 u_xlat1;
float3 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
float4 u_xlat12;
float4 u_xlat13;
int u_xlati14;
int u_xlati28;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0 = int(mtl_ThreadID.x) * 0x18;
u_xlat1.xyz = float3(as_type<float>(inVertices[(u_xlati0 >> 2) + 0]), as_type<float>(inVertices[(u_xlati0 >> 2) + 1]), as_type<float>(inVertices[(u_xlati0 >> 2) + 2]));
u_xlati14 = int(mtl_ThreadID.x) * 0x18 + 0xc;
u_xlat2.xyz = float3(as_type<float>(inVertices[(u_xlati14 >> 2) + 0]), as_type<float>(inVertices[(u_xlati14 >> 2) + 1]), as_type<float>(inVertices[(u_xlati14 >> 2) + 2]));
u_xlati28 = int(mtl_ThreadID.x) << 0x5;
u_xlat3 = float4(as_type<float>(inSkin[(u_xlati28 >> 2) + 0]), as_type<float>(inSkin[(u_xlati28 >> 2) + 1]), as_type<float>(inSkin[(u_xlati28 >> 2) + 2]), as_type<float>(inSkin[(u_xlati28 >> 2) + 3]));
u_xlati28 = int(mtl_ThreadID.x) * 0x20 + 0x10;
u_xlat4 = float4(as_type<float>(inSkin[(u_xlati28 >> 2) + 0]), as_type<float>(inSkin[(u_xlati28 >> 2) + 1]), as_type<float>(inSkin[(u_xlati28 >> 2) + 2]), as_type<float>(inSkin[(u_xlati28 >> 2) + 3]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.x)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.x)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.x)].value[(0x0 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.x)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.x)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.x)].value[(0x10 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.x)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.x)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.x)].value[(0x20 >> 2) + 2]));
u_xlat8.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.x)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.x)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.x)].value[(0x30 >> 2) + 2]));
u_xlat9.x = u_xlat5.x;
u_xlat9.y = u_xlat6.x;
u_xlat9.z = u_xlat7.x;
u_xlat9.w = u_xlat8.x;
u_xlat10.x = u_xlat5.y;
u_xlat10.y = u_xlat6.y;
u_xlat10.z = u_xlat7.y;
u_xlat10.w = u_xlat8.y;
u_xlat8.x = u_xlat5.z;
u_xlat8.y = u_xlat6.z;
u_xlat8.z = u_xlat7.z;
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.y)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.y)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.y)].value[(0x0 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.y)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.y)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.y)].value[(0x10 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.y)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.y)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.y)].value[(0x20 >> 2) + 2]));
u_xlat11.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.y)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.y)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.y)].value[(0x30 >> 2) + 2]));
u_xlat12.x = u_xlat5.x;
u_xlat12.y = u_xlat6.x;
u_xlat12.z = u_xlat7.x;
u_xlat12.w = u_xlat11.x;
u_xlat12 = u_xlat3.yyyy * u_xlat12;
u_xlat13.x = u_xlat5.y;
u_xlat13.y = u_xlat6.y;
u_xlat13.z = u_xlat7.y;
u_xlat13.w = u_xlat11.y;
u_xlat13 = u_xlat3.yyyy * u_xlat13;
u_xlat11.x = u_xlat5.z;
u_xlat11.y = u_xlat6.z;
u_xlat11.z = u_xlat7.z;
u_xlat5 = u_xlat3.yyyy * u_xlat11;
u_xlat6 = fma(u_xlat9, u_xlat3.xxxx, u_xlat12);
u_xlat7 = fma(u_xlat10, u_xlat3.xxxx, u_xlat13);
u_xlat5 = fma(u_xlat8, u_xlat3.xxxx, u_xlat5);
u_xlat8.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x0 >> 2) + 2]));
u_xlat9.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x10 >> 2) + 2]));
u_xlat10.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x20 >> 2) + 2]));
u_xlat11.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x30 >> 2) + 2]));
u_xlat12.x = u_xlat8.x;
u_xlat12.y = u_xlat9.x;
u_xlat12.z = u_xlat10.x;
u_xlat12.w = u_xlat11.x;
u_xlat13.x = u_xlat8.y;
u_xlat13.y = u_xlat9.y;
u_xlat13.z = u_xlat10.y;
u_xlat13.w = u_xlat11.y;
u_xlat11.x = u_xlat8.z;
u_xlat11.y = u_xlat9.z;
u_xlat11.z = u_xlat10.z;
u_xlat6 = fma(u_xlat12, u_xlat3.zzzz, u_xlat6);
u_xlat7 = fma(u_xlat13, u_xlat3.zzzz, u_xlat7);
u_xlat5 = fma(u_xlat11, u_xlat3.zzzz, u_xlat5);
u_xlat3.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x0 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x10 >> 2) + 2]));
u_xlat8.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x20 >> 2) + 2]));
u_xlat9.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x30 >> 2) + 2]));
u_xlat10.x = u_xlat3.x;
u_xlat10.y = u_xlat4.x;
u_xlat10.z = u_xlat8.x;
u_xlat10.w = u_xlat9.x;
u_xlat11.x = u_xlat3.y;
u_xlat11.y = u_xlat4.y;
u_xlat11.z = u_xlat8.y;
u_xlat11.w = u_xlat9.y;
u_xlat9.x = u_xlat3.z;
u_xlat9.y = u_xlat4.z;
u_xlat9.z = u_xlat8.z;
u_xlat4 = fma(u_xlat10, u_xlat3.wwww, u_xlat6);
u_xlat6 = fma(u_xlat11, u_xlat3.wwww, u_xlat7);
u_xlat3 = fma(u_xlat9, u_xlat3.wwww, u_xlat5);
u_xlat1.w = 1.0;
u_xlat5.x = dot(u_xlat4, u_xlat1);
u_xlat5.y = dot(u_xlat6, u_xlat1);
u_xlat5.z = dot(u_xlat3, u_xlat1);
u_xlat1.x = dot(u_xlat4.xyz, u_xlat2.xyz);
u_xlat1.y = dot(u_xlat6.xyz, u_xlat2.xyz);
u_xlat1.z = dot(u_xlat3.xyz, u_xlat2.xyz);
outVertices[(u_xlati0 >> 2)] = as_type<uint>(u_xlat5.x);
outVertices[(u_xlati0 >> 2) + 1] = as_type<uint>(u_xlat5.y);
outVertices[(u_xlati0 >> 2) + 2] = as_type<uint>(u_xlat5.z);
outVertices[(u_xlati14 >> 2)] = as_type<uint>(u_xlat1.x);
outVertices[(u_xlati14 >> 2) + 1] = as_type<uint>(u_xlat1.y);
outVertices[(u_xlati14 >> 2) + 2] = as_type<uint>(u_xlat1.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿ’!þÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inMatrices_Type
{
uint value[16];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device uint *inVertices [[ buffer(2) ]],
const device uint *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device uint *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
int u_xlati0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
float4 u_xlat12;
float4 u_xlat13;
int u_xlati14;
int u_xlati28;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0 = int(mtl_ThreadID.x) * 0xc;
u_xlat1.xyz = float3(as_type<float>(inVertices[(u_xlati0 >> 2) + 0]), as_type<float>(inVertices[(u_xlati0 >> 2) + 1]), as_type<float>(inVertices[(u_xlati0 >> 2) + 2]));
u_xlati14 = int(mtl_ThreadID.x) * 0xc + 0xc;
u_xlat2 = float4(as_type<float>(inVertices[(u_xlati14 >> 2) + 0]), as_type<float>(inVertices[(u_xlati14 >> 2) + 1]), as_type<float>(inVertices[(u_xlati14 >> 2) + 2]), as_type<float>(inVertices[(u_xlati14 >> 2) + 3]));
u_xlati28 = int(mtl_ThreadID.x) << 0x5;
u_xlat3 = float4(as_type<float>(inSkin[(u_xlati28 >> 2) + 0]), as_type<float>(inSkin[(u_xlati28 >> 2) + 1]), as_type<float>(inSkin[(u_xlati28 >> 2) + 2]), as_type<float>(inSkin[(u_xlati28 >> 2) + 3]));
u_xlati28 = int(mtl_ThreadID.x) * 0x20 + 0x10;
u_xlat4 = float4(as_type<float>(inSkin[(u_xlati28 >> 2) + 0]), as_type<float>(inSkin[(u_xlati28 >> 2) + 1]), as_type<float>(inSkin[(u_xlati28 >> 2) + 2]), as_type<float>(inSkin[(u_xlati28 >> 2) + 3]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.x)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.x)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.x)].value[(0x0 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.x)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.x)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.x)].value[(0x10 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.x)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.x)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.x)].value[(0x20 >> 2) + 2]));
u_xlat8.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.x)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.x)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.x)].value[(0x30 >> 2) + 2]));
u_xlat9.x = u_xlat5.x;
u_xlat9.y = u_xlat6.x;
u_xlat9.z = u_xlat7.x;
u_xlat9.w = u_xlat8.x;
u_xlat10.x = u_xlat5.y;
u_xlat10.y = u_xlat6.y;
u_xlat10.z = u_xlat7.y;
u_xlat10.w = u_xlat8.y;
u_xlat8.x = u_xlat5.z;
u_xlat8.y = u_xlat6.z;
u_xlat8.z = u_xlat7.z;
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.y)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.y)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.y)].value[(0x0 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.y)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.y)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.y)].value[(0x10 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.y)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.y)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.y)].value[(0x20 >> 2) + 2]));
u_xlat11.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.y)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.y)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.y)].value[(0x30 >> 2) + 2]));
u_xlat12.x = u_xlat5.x;
u_xlat12.y = u_xlat6.x;
u_xlat12.z = u_xlat7.x;
u_xlat12.w = u_xlat11.x;
u_xlat12 = u_xlat3.yyyy * u_xlat12;
u_xlat13.x = u_xlat5.y;
u_xlat13.y = u_xlat6.y;
u_xlat13.z = u_xlat7.y;
u_xlat13.w = u_xlat11.y;
u_xlat13 = u_xlat3.yyyy * u_xlat13;
u_xlat11.x = u_xlat5.z;
u_xlat11.y = u_xlat6.z;
u_xlat11.z = u_xlat7.z;
u_xlat5 = u_xlat3.yyyy * u_xlat11;
u_xlat6 = fma(u_xlat9, u_xlat3.xxxx, u_xlat12);
u_xlat7 = fma(u_xlat10, u_xlat3.xxxx, u_xlat13);
u_xlat5 = fma(u_xlat8, u_xlat3.xxxx, u_xlat5);
u_xlat8.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x0 >> 2) + 2]));
u_xlat9.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x10 >> 2) + 2]));
u_xlat10.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x20 >> 2) + 2]));
u_xlat11.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.z)].value[(0x30 >> 2) + 2]));
u_xlat12.x = u_xlat8.x;
u_xlat12.y = u_xlat9.x;
u_xlat12.z = u_xlat10.x;
u_xlat12.w = u_xlat11.x;
u_xlat13.x = u_xlat8.y;
u_xlat13.y = u_xlat9.y;
u_xlat13.z = u_xlat10.y;
u_xlat13.w = u_xlat11.y;
u_xlat11.x = u_xlat8.z;
u_xlat11.y = u_xlat9.z;
u_xlat11.z = u_xlat10.z;
u_xlat6 = fma(u_xlat12, u_xlat3.zzzz, u_xlat6);
u_xlat7 = fma(u_xlat13, u_xlat3.zzzz, u_xlat7);
u_xlat5 = fma(u_xlat11, u_xlat3.zzzz, u_xlat5);
u_xlat3.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x0 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x10 >> 2) + 2]));
u_xlat8.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x20 >> 2) + 2]));
u_xlat9.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat4.w)].value[(0x30 >> 2) + 2]));
u_xlat10.x = u_xlat3.x;
u_xlat10.y = u_xlat4.x;
u_xlat10.z = u_xlat8.x;
u_xlat10.w = u_xlat9.x;
u_xlat11.x = u_xlat3.y;
u_xlat11.y = u_xlat4.y;
u_xlat11.z = u_xlat8.y;
u_xlat11.w = u_xlat9.y;
u_xlat9.x = u_xlat3.z;
u_xlat9.y = u_xlat4.z;
u_xlat9.z = u_xlat8.z;
u_xlat4 = fma(u_xlat10, u_xlat3.wwww, u_xlat6);
u_xlat6 = fma(u_xlat11, u_xlat3.wwww, u_xlat7);
u_xlat3 = fma(u_xlat9, u_xlat3.wwww, u_xlat5);
u_xlat1.w = 1.0;
u_xlat5.x = dot(u_xlat4, u_xlat1);
u_xlat5.y = dot(u_xlat6, u_xlat1);
u_xlat5.z = dot(u_xlat3, u_xlat1);
u_xlat1.x = dot(u_xlat4.xyz, u_xlat2.xyz);
u_xlat1.y = dot(u_xlat6.xyz, u_xlat2.xyz);
u_xlat1.z = dot(u_xlat3.xyz, u_xlat2.xyz);
outVertices[(u_xlati0 >> 2)] = as_type<uint>(u_xlat5.x);
outVertices[(u_xlati0 >> 2) + 1] = as_type<uint>(u_xlat5.y);
outVertices[(u_xlati0 >> 2) + 2] = as_type<uint>(u_xlat5.z);
u_xlat1.w = u_xlat2.w;
outVertices[(u_xlati14 >> 2)] = as_type<uint>(u_xlat1.x);
outVertices[(u_xlati14 >> 2) + 1] = as_type<uint>(u_xlat1.y);
outVertices[(u_xlati14 >> 2) + 2] = as_type<uint>(u_xlat1.z);
outVertices[(u_xlati14 >> 2) + 3] = as_type<uint>(u_xlat1.w);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿò#þÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inMatrices_Type
{
uint value[16];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device uint *inVertices [[ buffer(2) ]],
const device uint *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device uint *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
int u_xlati0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
float4 u_xlat12;
float4 u_xlat13;
float4 u_xlat14;
int2 u_xlati15;
int u_xlati45;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0 = int(mtl_ThreadID.x) * 0x28;
u_xlat1.xyz = float3(as_type<float>(inVertices[(u_xlati0 >> 2) + 0]), as_type<float>(inVertices[(u_xlati0 >> 2) + 1]), as_type<float>(inVertices[(u_xlati0 >> 2) + 2]));
u_xlati15.xy = int2(mtl_ThreadID.xx) * int2(0x28, 0x28) + int2(0xc, 0x18);
u_xlat2.xyz = float3(as_type<float>(inVertices[(u_xlati15.x >> 2) + 0]), as_type<float>(inVertices[(u_xlati15.x >> 2) + 1]), as_type<float>(inVertices[(u_xlati15.x >> 2) + 2]));
u_xlat3 = float4(as_type<float>(inVertices[(u_xlati15.y >> 2) + 0]), as_type<float>(inVertices[(u_xlati15.y >> 2) + 1]), as_type<float>(inVertices[(u_xlati15.y >> 2) + 2]), as_type<float>(inVertices[(u_xlati15.y >> 2) + 3]));
u_xlati45 = int(mtl_ThreadID.x) << 0x5;
u_xlat4 = float4(as_type<float>(inSkin[(u_xlati45 >> 2) + 0]), as_type<float>(inSkin[(u_xlati45 >> 2) + 1]), as_type<float>(inSkin[(u_xlati45 >> 2) + 2]), as_type<float>(inSkin[(u_xlati45 >> 2) + 3]));
u_xlati45 = int(mtl_ThreadID.x) * 0x20 + 0x10;
u_xlat5 = float4(as_type<float>(inSkin[(u_xlati45 >> 2) + 0]), as_type<float>(inSkin[(u_xlati45 >> 2) + 1]), as_type<float>(inSkin[(u_xlati45 >> 2) + 2]), as_type<float>(inSkin[(u_xlati45 >> 2) + 3]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat5.x)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat5.x)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat5.x)].value[(0x0 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat5.x)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat5.x)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat5.x)].value[(0x10 >> 2) + 2]));
u_xlat8.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat5.x)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat5.x)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat5.x)].value[(0x20 >> 2) + 2]));
u_xlat9.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat5.x)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat5.x)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat5.x)].value[(0x30 >> 2) + 2]));
u_xlat10.x = u_xlat6.x;
u_xlat10.y = u_xlat7.x;
u_xlat10.z = u_xlat8.x;
u_xlat10.w = u_xlat9.x;
u_xlat11.x = u_xlat6.y;
u_xlat11.y = u_xlat7.y;
u_xlat11.z = u_xlat8.y;
u_xlat11.w = u_xlat9.y;
u_xlat9.x = u_xlat6.z;
u_xlat9.y = u_xlat7.z;
u_xlat9.z = u_xlat8.z;
u_xlat6.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat5.y)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat5.y)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat5.y)].value[(0x0 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat5.y)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat5.y)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat5.y)].value[(0x10 >> 2) + 2]));
u_xlat8.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat5.y)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat5.y)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat5.y)].value[(0x20 >> 2) + 2]));
u_xlat12.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat5.y)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat5.y)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat5.y)].value[(0x30 >> 2) + 2]));
u_xlat13.x = u_xlat6.x;
u_xlat13.y = u_xlat7.x;
u_xlat13.z = u_xlat8.x;
u_xlat13.w = u_xlat12.x;
u_xlat13 = u_xlat4.yyyy * u_xlat13;
u_xlat14.x = u_xlat6.y;
u_xlat14.y = u_xlat7.y;
u_xlat14.z = u_xlat8.y;
u_xlat14.w = u_xlat12.y;
u_xlat14 = u_xlat4.yyyy * u_xlat14;
u_xlat12.x = u_xlat6.z;
u_xlat12.y = u_xlat7.z;
u_xlat12.z = u_xlat8.z;
u_xlat6 = u_xlat4.yyyy * u_xlat12;
u_xlat7 = fma(u_xlat10, u_xlat4.xxxx, u_xlat13);
u_xlat8 = fma(u_xlat11, u_xlat4.xxxx, u_xlat14);
u_xlat6 = fma(u_xlat9, u_xlat4.xxxx, u_xlat6);
u_xlat9.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat5.z)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat5.z)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat5.z)].value[(0x0 >> 2) + 2]));
u_xlat10.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat5.z)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat5.z)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat5.z)].value[(0x10 >> 2) + 2]));
u_xlat11.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat5.z)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat5.z)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat5.z)].value[(0x20 >> 2) + 2]));
u_xlat12.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat5.z)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat5.z)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat5.z)].value[(0x30 >> 2) + 2]));
u_xlat13.x = u_xlat9.x;
u_xlat13.y = u_xlat10.x;
u_xlat13.z = u_xlat11.x;
u_xlat13.w = u_xlat12.x;
u_xlat14.x = u_xlat9.y;
u_xlat14.y = u_xlat10.y;
u_xlat14.z = u_xlat11.y;
u_xlat14.w = u_xlat12.y;
u_xlat12.x = u_xlat9.z;
u_xlat12.y = u_xlat10.z;
u_xlat12.z = u_xlat11.z;
u_xlat7 = fma(u_xlat13, u_xlat4.zzzz, u_xlat7);
u_xlat8 = fma(u_xlat14, u_xlat4.zzzz, u_xlat8);
u_xlat6 = fma(u_xlat12, u_xlat4.zzzz, u_xlat6);
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat5.w)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat5.w)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat5.w)].value[(0x0 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat5.w)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat5.w)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat5.w)].value[(0x10 >> 2) + 2]));
u_xlat9.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat5.w)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat5.w)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat5.w)].value[(0x20 >> 2) + 2]));
u_xlat10.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat5.w)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat5.w)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat5.w)].value[(0x30 >> 2) + 2]));
u_xlat11.x = u_xlat4.x;
u_xlat11.y = u_xlat5.x;
u_xlat11.z = u_xlat9.x;
u_xlat11.w = u_xlat10.x;
u_xlat12.x = u_xlat4.y;
u_xlat12.y = u_xlat5.y;
u_xlat12.z = u_xlat9.y;
u_xlat12.w = u_xlat10.y;
u_xlat10.x = u_xlat4.z;
u_xlat10.y = u_xlat5.z;
u_xlat10.z = u_xlat9.z;
u_xlat5 = fma(u_xlat11, u_xlat4.wwww, u_xlat7);
u_xlat7 = fma(u_xlat12, u_xlat4.wwww, u_xlat8);
u_xlat4 = fma(u_xlat10, u_xlat4.wwww, u_xlat6);
u_xlat1.w = 1.0;
u_xlat6.x = dot(u_xlat5, u_xlat1);
u_xlat6.y = dot(u_xlat7, u_xlat1);
u_xlat6.z = dot(u_xlat4, u_xlat1);
u_xlat1.x = dot(u_xlat5.xyz, u_xlat2.xyz);
u_xlat1.y = dot(u_xlat7.xyz, u_xlat2.xyz);
u_xlat1.z = dot(u_xlat4.xyz, u_xlat2.xyz);
u_xlat2.x = dot(u_xlat5.xyz, u_xlat3.xyz);
u_xlat2.y = dot(u_xlat7.xyz, u_xlat3.xyz);
u_xlat2.z = dot(u_xlat4.xyz, u_xlat3.xyz);
outVertices[(u_xlati0 >> 2)] = as_type<uint>(u_xlat6.x);
outVertices[(u_xlati0 >> 2) + 1] = as_type<uint>(u_xlat6.y);
outVertices[(u_xlati0 >> 2) + 2] = as_type<uint>(u_xlat6.z);
outVertices[(u_xlati15.x >> 2)] = as_type<uint>(u_xlat1.x);
outVertices[(u_xlati15.x >> 2) + 1] = as_type<uint>(u_xlat1.y);
outVertices[(u_xlati15.x >> 2) + 2] = as_type<uint>(u_xlat1.z);
u_xlat2.w = u_xlat3.w;
outVertices[(u_xlati15.y >> 2)] = as_type<uint>(u_xlat2.x);
outVertices[(u_xlati15.y >> 2) + 1] = as_type<uint>(u_xlat2.y);
outVertices[(u_xlati15.y >> 2) + 2] = as_type<uint>(u_xlat2.z);
outVertices[(u_xlati15.y >> 2) + 3] = as_type<uint>(u_xlat2.w);
return;
}
@@Globals g_VertCountInternal-BlendShapemainGlobalsÿÿÿÿÿÿÿÿinBlendShapeVerticesÿÿÿÿÿÿÿÿinOutMeshVerticesÿÿÿÿÿÿÿÿøþÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_FirstVert;
uint g_VertCount;
float g_Weight;
};
struct inBlendShapeVertices_Type
{
uint value[10];
};
struct inOutMeshVertices_Type
{
uint value[3];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inBlendShapeVertices_Type *inBlendShapeVertices [[ buffer(2) ]],
device inOutMeshVertices_Type *inOutMeshVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
int u_xlati0;
bool u_xlatb0;
float3 u_xlat1;
float3 u_xlat2;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0 = int(mtl_ThreadID.x) + int(Globals.g_FirstVert);
u_xlat0 = float4(as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x0 >> 2) + 0]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x0 >> 2) + 1]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x0 >> 2) + 2]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x0 >> 2) + 3]));
u_xlat1.xyz = float3(as_type<float>(inOutMeshVertices[as_type<int>(u_xlat0.x)].value[(0x0 >> 2) + 0]), as_type<float>(inOutMeshVertices[as_type<int>(u_xlat0.x)].value[(0x0 >> 2) + 1]), as_type<float>(inOutMeshVertices[as_type<int>(u_xlat0.x)].value[(0x0 >> 2) + 2]));
u_xlat2.xyz = fma(u_xlat0.yzw, float3(Globals.g_Weight), u_xlat1.xyz);
inOutMeshVertices[as_type<int>(u_xlat0.x)].value[(0x0 >> 2)] = as_type<uint>(u_xlat2.x);
inOutMeshVertices[as_type<int>(u_xlat0.x)].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat2.y);
inOutMeshVertices[as_type<int>(u_xlat0.x)].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat2.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿinBlendShapeVerticesÿÿÿÿÿÿÿÿinOutMeshVerticesÿÿÿÿÿÿÿÿ¾
þÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_FirstVert;
uint g_VertCount;
float g_Weight;
};
struct inBlendShapeVertices_Type
{
uint value[10];
};
struct inOutMeshVertices_Type
{
uint value[6];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inBlendShapeVertices_Type *inBlendShapeVertices [[ buffer(2) ]],
device inOutMeshVertices_Type *inOutMeshVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float3 u_xlat0;
int u_xlati0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float3 u_xlat3;
float4 u_xlat4;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0 = int(mtl_ThreadID.x) + int(Globals.g_FirstVert);
u_xlat1 = float4(as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x0 >> 2) + 0]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x0 >> 2) + 1]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x0 >> 2) + 2]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x0 >> 2) + 3]));
u_xlat0.xyz = float3(as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x10 >> 2) + 0]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x10 >> 2) + 1]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x10 >> 2) + 2]));
u_xlat2 = float4(as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 0]), as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 1]), as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 2]), as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 3]));
u_xlat3.xy = float2(as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x10 >> 2) + 0]), as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x10 >> 2) + 1]));
u_xlat4.xyz = fma(u_xlat1.yzw, float3(Globals.g_Weight), u_xlat2.xyz);
u_xlat3.z = u_xlat2.w;
u_xlat0.xyz = fma(u_xlat0.xyz, float3(Globals.g_Weight), u_xlat3.zxy);
u_xlat4.w = u_xlat0.x;
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2)] = as_type<uint>(u_xlat4.x);
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat4.y);
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat4.z);
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat4.w);
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x10 >> 2)] = as_type<uint>(u_xlat0.y);
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat0.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿinBlendShapeVerticesÿÿÿÿÿÿÿÿinOutMeshVerticesÿÿÿÿÿÿÿÿ›þÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_FirstVert;
uint g_VertCount;
float g_Weight;
};
struct inBlendShapeVertices_Type
{
uint value[10];
};
struct inOutMeshVertices_Type
{
uint value[10];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inBlendShapeVertices_Type *inBlendShapeVertices [[ buffer(2) ]],
device inOutMeshVertices_Type *inOutMeshVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float3 u_xlat0;
int u_xlati0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
float3 u_xlat5;
float4 u_xlat6;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0 = int(mtl_ThreadID.x) + int(Globals.g_FirstVert);
u_xlat1 = float4(as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x0 >> 2) + 0]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x0 >> 2) + 1]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x0 >> 2) + 2]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x0 >> 2) + 3]));
u_xlat2 = float4(as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x10 >> 2) + 0]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x10 >> 2) + 1]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x10 >> 2) + 2]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x10 >> 2) + 3]));
u_xlat0.xy = float2(as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x20 >> 2) + 0]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x20 >> 2) + 1]));
u_xlat3 = float4(as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 3]), as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 0]), as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 1]), as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 2]));
u_xlat4 = float4(as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x10 >> 2) + 0]), as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x10 >> 2) + 1]), as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x10 >> 2) + 2]), as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x10 >> 2) + 3]));
u_xlat5.z = as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x20 >> 2) + 0]);
u_xlat6.xyz = fma(u_xlat1.yzw, float3(Globals.g_Weight), u_xlat3.yzw);
u_xlat3.yz = u_xlat4.xy;
u_xlat3.xyz = fma(u_xlat2.yzx, float3(Globals.g_Weight), u_xlat3.yzx);
u_xlat0.z = u_xlat2.w;
u_xlat5.xy = u_xlat4.zw;
u_xlat0.xyz = fma(u_xlat0.zxy, float3(Globals.g_Weight), u_xlat5.xyz);
u_xlat6.w = u_xlat3.z;
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2)] = as_type<uint>(u_xlat6.x);
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat6.y);
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat6.z);
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat6.w);
u_xlat3.zw = u_xlat0.xy;
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x10 >> 2)] = as_type<uint>(u_xlat3.x);
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat3.y);
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x10 >> 2) + 2] = as_type<uint>(u_xlat3.z);
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x10 >> 2) + 3] = as_type<uint>(u_xlat3.w);
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x20 >> 2)] = as_type<uint>(u_xlat0.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿinBlendShapeVerticesÿÿÿÿÿÿÿÿinOutMeshVerticesÿÿÿÿÿÿÿÿåþÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_FirstVert;
uint g_VertCount;
float g_Weight;
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device uint *inBlendShapeVertices [[ buffer(2) ]],
device uint *inOutMeshVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
int u_xlati0;
bool u_xlatb0;
float3 u_xlat1;
float3 u_xlat2;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0 = int(mtl_ThreadID.x) + int(Globals.g_FirstVert);
u_xlati0 = u_xlati0 * 0x28;
u_xlat0 = float4(as_type<float>(inBlendShapeVertices[(u_xlati0 >> 2) + 0]), as_type<float>(inBlendShapeVertices[(u_xlati0 >> 2) + 1]), as_type<float>(inBlendShapeVertices[(u_xlati0 >> 2) + 2]), as_type<float>(inBlendShapeVertices[(u_xlati0 >> 2) + 3]));
u_xlati0 = as_type<int>(u_xlat0.x) * 0xc;
u_xlat1.xyz = float3(as_type<float>(inOutMeshVertices[(u_xlati0 >> 2) + 0]), as_type<float>(inOutMeshVertices[(u_xlati0 >> 2) + 1]), as_type<float>(inOutMeshVertices[(u_xlati0 >> 2) + 2]));
u_xlat2.xyz = fma(u_xlat0.yzw, float3(Globals.g_Weight), u_xlat1.xyz);
inOutMeshVertices[(u_xlati0 >> 2)] = as_type<uint>(u_xlat2.x);
inOutMeshVertices[(u_xlati0 >> 2) + 1] = as_type<uint>(u_xlat2.y);
inOutMeshVertices[(u_xlati0 >> 2) + 2] = as_type<uint>(u_xlat2.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿinBlendShapeVerticesÿÿÿÿÿÿÿÿinOutMeshVerticesÿÿÿÿÿÿÿÿQ þÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_FirstVert;
uint g_VertCount;
float g_Weight;
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device uint *inBlendShapeVertices [[ buffer(2) ]],
device uint *inOutMeshVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float3 u_xlat0;
int u_xlati0;
bool u_xlatb0;
float4 u_xlat1;
int u_xlati1;
float3 u_xlat2;
float3 u_xlat3;
int u_xlati4;
float3 u_xlat5;
int u_xlati12;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0 = int(mtl_ThreadID.x) + int(Globals.g_FirstVert);
u_xlati4 = u_xlati0 * 0x28;
u_xlat1 = float4(as_type<float>(inBlendShapeVertices[(u_xlati4 >> 2) + 0]), as_type<float>(inBlendShapeVertices[(u_xlati4 >> 2) + 1]), as_type<float>(inBlendShapeVertices[(u_xlati4 >> 2) + 2]), as_type<float>(inBlendShapeVertices[(u_xlati4 >> 2) + 3]));
u_xlati0 = u_xlati0 * 0x28 + 0x10;
u_xlat0.xyz = float3(as_type<float>(inBlendShapeVertices[(u_xlati0 >> 2) + 0]), as_type<float>(inBlendShapeVertices[(u_xlati0 >> 2) + 1]), as_type<float>(inBlendShapeVertices[(u_xlati0 >> 2) + 2]));
u_xlati12 = as_type<int>(u_xlat1.x) * 0x18;
u_xlat2.xyz = float3(as_type<float>(inOutMeshVertices[(u_xlati12 >> 2) + 0]), as_type<float>(inOutMeshVertices[(u_xlati12 >> 2) + 1]), as_type<float>(inOutMeshVertices[(u_xlati12 >> 2) + 2]));
u_xlati1 = as_type<int>(u_xlat1.x) * 0x18 + 0xc;
u_xlat3.xyz = float3(as_type<float>(inOutMeshVertices[(u_xlati1 >> 2) + 0]), as_type<float>(inOutMeshVertices[(u_xlati1 >> 2) + 1]), as_type<float>(inOutMeshVertices[(u_xlati1 >> 2) + 2]));
u_xlat5.xyz = fma(u_xlat1.yzw, float3(Globals.g_Weight), u_xlat2.xyz);
u_xlat0.xyz = fma(u_xlat0.xyz, float3(Globals.g_Weight), u_xlat3.xyz);
inOutMeshVertices[(u_xlati12 >> 2)] = as_type<uint>(u_xlat5.x);
inOutMeshVertices[(u_xlati12 >> 2) + 1] = as_type<uint>(u_xlat5.y);
inOutMeshVertices[(u_xlati12 >> 2) + 2] = as_type<uint>(u_xlat5.z);
inOutMeshVertices[(u_xlati1 >> 2)] = as_type<uint>(u_xlat0.x);
inOutMeshVertices[(u_xlati1 >> 2) + 1] = as_type<uint>(u_xlat0.y);
inOutMeshVertices[(u_xlati1 >> 2) + 2] = as_type<uint>(u_xlat0.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿinBlendShapeVerticesÿÿÿÿÿÿÿÿinOutMeshVerticesÿÿÿÿÿÿÿÿ
þÊ­Þ@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_FirstVert;
uint g_VertCount;
float g_Weight;
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device uint *inBlendShapeVertices [[ buffer(2) ]],
device uint *inOutMeshVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float3 u_xlat0;
int2 u_xlati0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float3 u_xlat3;
int2 u_xlati4;
float3 u_xlat5;
float4 u_xlat6;
int u_xlati7;
int u_xlati21;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0.x = int(mtl_ThreadID.x) + int(Globals.g_FirstVert);
u_xlati7 = u_xlati0.x * 0x28;
u_xlat1 = float4(as_type<float>(inBlendShapeVertices[(u_xlati7 >> 2) + 0]), as_type<float>(inBlendShapeVertices[(u_xlati7 >> 2) + 1]), as_type<float>(inBlendShapeVertices[(u_xlati7 >> 2) + 2]), as_type<float>(inBlendShapeVertices[(u_xlati7 >> 2) + 3]));
u_xlati0.xy = u_xlati0.xx * int2(0x28, 0x28) + int2(0x10, 0x20);
u_xlat2 = float4(as_type<float>(inBlendShapeVertices[(u_xlati0.x >> 2) + 0]), as_type<float>(inBlendShapeVertices[(u_xlati0.x >> 2) + 1]), as_type<float>(inBlendShapeVertices[(u_xlati0.x >> 2) + 2]), as_type<float>(inBlendShapeVertices[(u_xlati0.x >> 2) + 3]));
u_xlat0.xy = float2(as_type<float>(inBlendShapeVertices[(u_xlati0.y >> 2) + 0]), as_type<float>(inBlendShapeVertices[(u_xlati0.y >> 2) + 1]));
u_xlati21 = as_type<int>(u_xlat1.x) * 0x28;
u_xlat3.xyz = float3(as_type<float>(inOutMeshVertices[(u_xlati21 >> 2) + 0]), as_type<float>(inOutMeshVertices[(u_xlati21 >> 2) + 1]), as_type<float>(inOutMeshVertices[(u_xlati21 >> 2) + 2]));
u_xlati4.xy = as_type<int2>(u_xlat1.xx) * int2(0x28, 0x28) + int2(0xc, 0x18);
u_xlat5.xyz = float3(as_type<float>(inOutMeshVertices[(u_xlati4.x >> 2) + 0]), as_type<float>(inOutMeshVertices[(u_xlati4.x >> 2) + 1]), as_type<float>(inOutMeshVertices[(u_xlati4.x >> 2) + 2]));
u_xlat6 = float4(as_type<float>(inOutMeshVertices[(u_xlati4.y >> 2) + 0]), as_type<float>(inOutMeshVertices[(u_xlati4.y >> 2) + 1]), as_type<float>(inOutMeshVertices[(u_xlati4.y >> 2) + 2]), as_type<float>(inOutMeshVertices[(u_xlati4.y >> 2) + 3]));
u_xlat1.xyz = fma(u_xlat1.yzw, float3(Globals.g_Weight), u_xlat3.xyz);
u_xlat2.xyz = fma(u_xlat2.xyz, float3(Globals.g_Weight), u_xlat5.xyz);
u_xlat0.z = u_xlat2.w;
u_xlat6.xyz = fma(u_xlat0.zxy, float3(Globals.g_Weight), u_xlat6.xyz);
inOutMeshVertices[(u_xlati21 >> 2)] = as_type<uint>(u_xlat1.x);
inOutMeshVertices[(u_xlati21 >> 2) + 1] = as_type<uint>(u_xlat1.y);
inOutMeshVertices[(u_xlati21 >> 2) + 2] = as_type<uint>(u_xlat1.z);
inOutMeshVertices[(u_xlati4.x >> 2)] = as_type<uint>(u_xlat2.x);
inOutMeshVertices[(u_xlati4.x >> 2) + 1] = as_type<uint>(u_xlat2.y);
inOutMeshVertices[(u_xlati4.x >> 2) + 2] = as_type<uint>(u_xlat2.z);
inOutMeshVertices[(u_xlati4.y >> 2)] = as_type<uint>(u_xlat6.x);
inOutMeshVertices[(u_xlati4.y >> 2) + 1] = as_type<uint>(u_xlat6.y);
inOutMeshVertices[(u_xlati4.y >> 2) + 2] = as_type<uint>(u_xlat6.z);
inOutMeshVertices[(u_xlati4.y >> 2) + 3] = as_type<uint>(u_xlat6.w);
return;
}
@@Globals  g_FirstVert g_VertCountg_Weight#Internal-VT-TranslationTableReplaceReplaceTranslationTablecbReplacementDataÿÿÿÿÿÿÿÿ
_input_mapÿÿÿÿÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿkþÊ­Þ#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbReplacementData_Type
{
uint numReplacements;
uint pad0;
uint pad1;
uint pad2;
};
kernel void computeMain(
constant cbReplacementData_Type& cbReplacementData [[ buffer(1) ]],
const device uint *_input_map [[ buffer(2) ]],
device uint *_output_buf [[ buffer(0) ]],
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
float2 u_xlat0;
int u_xlati0;
uint u_xlatu0;
bool u_xlatb0;
u_xlatu0 = mtl_ThreadGroupID.x * 0x100u + mtl_ThreadIDInGroup.x;
u_xlatb0 = u_xlatu0<cbReplacementData.numReplacements;
if(u_xlatb0){
u_xlati0 = int(mtl_ThreadIDInGroup.x) << 0x3;
u_xlati0 = int(mtl_ThreadGroupID.x) * 0x800 + u_xlati0;
u_xlat0.xy = float2(as_type<float>(_input_map[(u_xlati0 >> 2) + 0]), as_type<float>(_input_map[(u_xlati0 >> 2) + 1]));
u_xlati0 = as_type<int>(u_xlat0.x) << 0x2;
_output_buf[(u_xlati0 >> 2)] = as_type<uint>(u_xlat0.y);
}
return;
}
@cbReplacementDatanumReplacementspad0pad1pad2 $Internal-VT-TranslationTableUpsampleMaincbTranslationTableDataÿÿÿÿÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿ
þÊ­Þ #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
uint4 u_xlatu0;
float u_xlat1;
int u_xlati1;
uint2 u_xlatu1;
int u_xlati2;
bool u_xlatb2;
int u_xlati4;
bool2 u_xlatb4;
bool u_xlatb5;
float u_xlat7;
uint u_xlatu7;
int u_xlati10;
u_xlatu0 = mtl_ThreadGroupID.xyyy * uint4(0x20u, 0x20u, 0x20u, 0x20u) + mtl_ThreadIDInGroup.xyyy;
u_xlatu1.xy = u_xlatu0.xw >> uint2(0x1u, 0x1u);
u_xlatu7 = cbTranslationTableData.width >> 0x1u;
u_xlati1 = int(u_xlatu1.y) * int(u_xlatu7) + int(u_xlatu1.x);
u_xlati1 = u_xlati1 + int(cbTranslationTableData.bufferOffsetLevelAbove);
u_xlati1 = u_xlati1 << 0x2;
u_xlat1 = as_type<float>(_output_buf[(u_xlati1 >> 2) + 0]);
u_xlatb4.xy = (u_xlatu0.xw>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb4.x = u_xlatb4.y || u_xlatb4.x;
if(u_xlatb4.x){
return;
}
u_xlati4 = int(u_xlatu0.w) * int(cbTranslationTableData.width) + int(u_xlatu0.x);
u_xlati4 = u_xlati4 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati4 = u_xlati4 << 0x2;
u_xlat7 = as_type<float>(_output_buf[(u_xlati4 >> 2) + 0]);
u_xlati10 = int(as_type<uint>(u_xlat7) & 0x80000000u);
if((uint(u_xlati10))!=uint(0)){
u_xlat7 = as_type<float>(as_type<uint>(u_xlat7) & 0x7fffffffu);
}
u_xlati2 = int(as_type<uint>(u_xlat7) & 0xfu);
u_xlatb2 = u_xlati2!=int(cbTranslationTableData.invLevel);
u_xlatb5 = as_type<int>(u_xlat1)!=as_type<int>(u_xlat7);
u_xlatb2 = u_xlatb5 && u_xlatb2;
if(u_xlatb2){
u_xlat7 = u_xlat1;
u_xlati1 = int(0xffffffffu);
} else {
u_xlati1 = int((u_xlati10!=0x0) ? 0xFFFFFFFFu : uint(0));
}
if((uint(u_xlati1))!=uint(0)){
_output_buf[(u_xlati4 >> 2)] = as_type<uint>(u_xlat7);
translationTable.write(float4(u_xlat7), u_xlatu0.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿ
lookupTextureÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿ5þÊ­Þ #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
template <typename UVecType> UVecType bitFieldInsert(const UVecType width, const UVecType offset, const UVecType src2, const UVecType src3)
{
UVecType bitmask = (((UVecType(1) << width)-1) << offset) & 0xffffffff;
return ((src2 << offset) & bitmask) | (src3 & ~bitmask);
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
texture2d<uint, access::sample > lookupTexture [[ texture(0) ]] ,
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
uint4 u_xlatu0;
float u_xlat1;
int u_xlati1;
uint2 u_xlatu1;
uint2 u_xlatu2;
int4 u_xlati3;
uint u_xlatu3;
bool u_xlatb3;
int3 u_xlati4;
int4 u_xlati5;
int u_xlati7;
bool2 u_xlatb7;
int u_xlati9;
uint u_xlatu9;
int u_xlati12;
bool u_xlatb12;
float u_xlat13;
uint u_xlatu13;
uint2 u_xlatu14;
int2 u_xlati15;
bool u_xlatb15;
int u_xlati18;
bool u_xlatb18;
int u_xlati19;
u_xlatu0.xy = mtl_ThreadGroupID.xy * uint2(0x20u, 0x20u) + mtl_ThreadIDInGroup.xy;
u_xlatu1.xy = u_xlatu0.xy >> uint2(0x1u, 0x1u);
u_xlatu13 = cbTranslationTableData.width >> 0x1u;
u_xlati1 = int(u_xlatu1.y) * int(u_xlatu13) + int(u_xlatu1.x);
u_xlati1 = u_xlati1 + int(cbTranslationTableData.bufferOffsetLevelAbove);
u_xlati1 = u_xlati1 << 0x2;
u_xlat1 = as_type<float>(_output_buf[(u_xlati1 >> 2) + 0]);
u_xlatb7.xy = (u_xlatu0.xy>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb7.x = u_xlatb7.y || u_xlatb7.x;
if(u_xlatb7.x){
return;
}
u_xlati7 = int(u_xlatu0.y) * int(cbTranslationTableData.width) + int(u_xlatu0.x);
u_xlati7 = u_xlati7 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati7 = u_xlati7 << 0x2;
u_xlat13 = as_type<float>(_output_buf[(u_xlati7 >> 2) + 0]);
u_xlatu0.zw = uint2(cbTranslationTableData.level);
u_xlati12 = int(lookupTexture.read(u_xlatu0.xy, u_xlatu0.w).x);
u_xlati18 = int(as_type<uint>(u_xlat13) & 0x80000000u);
u_xlati19 = int((u_xlati18!=0x0) ? 0xFFFFFFFFu : uint(0));
if((uint(u_xlati18))!=uint(0)){
u_xlat13 = as_type<float>(as_type<uint>(u_xlat13) & 0x7fffffffu);
}
u_xlati18 = int(as_type<uint>(u_xlat13) & 0xfu);
u_xlatb18 = u_xlati18==int(cbTranslationTableData.invLevel);
if(u_xlatb18){
u_xlatu2.y = 0x0u;
u_xlatu14.x = uint(0x0u);
u_xlatu14.y = uint(0x0u);
u_xlati18 = 0x0;
while(true){
u_xlatb3 = u_xlatu14.y>=cbTranslationTableData.numEvictedTiles;
u_xlati18 = 0x0;
if(u_xlatb3){break;}
u_xlatu3 = u_xlatu14.y >> 0x2u;
u_xlatu9 = u_xlatu14.y & 0x3u;
u_xlati15.x = 0 - int(u_xlatu9);
u_xlati4.xyz = int3(uint3((uint3(u_xlatu9)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati5.y = int(uint(u_xlati15.x) & uint(u_xlati4.y));
u_xlati9 = int(u_xlatu9) + int(0xfffffffdu);
u_xlati5.z = (u_xlati4.y != 0) ? 0x0 : u_xlati9;
u_xlati5.w = int((u_xlati4.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.x = u_xlati4.x;
u_xlati3 = int4(uint4(u_xlati5) & cbTranslationTableData.evictedTiles[int(u_xlatu3)]);
u_xlati3.xy = int2(uint2(u_xlati3.yw) | uint2(u_xlati3.xz));
u_xlati3.x = int(uint(u_xlati3.y) | uint(u_xlati3.x));
u_xlatb3 = u_xlati12==u_xlati3.x;
if(u_xlatb3){
u_xlatu14.x = 0xffffffffu;
u_xlati18 = int(0xffffffffu);
break;
}
u_xlatu2.x = u_xlatu14.y + 0x1u;
u_xlatu14.xy = u_xlatu2.yx;
u_xlatb18 = u_xlatb3;
}
if((uint(u_xlati18))==uint(0)){
u_xlatu14.x = 0x0u;
}
if((u_xlatu14.x)!=uint(0)){
u_xlat13 = u_xlat1;
u_xlati19 = int(0xffffffffu);
}
} else {
u_xlatu2.y = 0x0u;
u_xlatu14.x = uint(0x0u);
u_xlatu14.y = uint(0x0u);
u_xlati18 = 0x0;
while(true){
u_xlatb3 = u_xlatu14.y>=cbTranslationTableData.numAddedTiles;
u_xlati18 = 0x0;
if(u_xlatb3){break;}
u_xlatu3 = u_xlatu14.y >> 0x1u;
u_xlatu9 = bitFieldInsert(0x1u, 0x1u, u_xlatu14.y, 0x0u);
u_xlati4.x = int((u_xlatu9<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati4.y = int((u_xlati4.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati15.xy = int2(uint2(u_xlati4.xy) & cbTranslationTableData.addedTiles[int(u_xlatu3)].xz);
u_xlati15.x = int(uint(u_xlati15.y) | uint(u_xlati15.x));
u_xlatb15 = u_xlati12==u_xlati15.x;
if(u_xlatb15){
u_xlati9 = int(u_xlatu9) + 0x1;
u_xlatu9 = uint(u_xlati9) + 0xffffffffu;
u_xlati4.x = int((u_xlatu9<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati4.y = int((u_xlati4.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati3.xy = int2(uint2(u_xlati4.xy) & cbTranslationTableData.addedTiles[int(u_xlatu3)].yw);
u_xlatu14.x = uint(u_xlati3.y) | uint(u_xlati3.x);
u_xlati18 = int(0xffffffffu);
break;
}
u_xlatu2.x = u_xlatu14.y + 0x1u;
u_xlatu14.xy = u_xlatu2.yx;
u_xlatb18 = u_xlatb15;
}
if((uint(u_xlati18))==uint(0)){
u_xlatu14.x = 0xffffffffu;
}
u_xlatb12 = int(u_xlatu14.x)!=int(0xffffffffu);
if(u_xlatb12){
u_xlati12 = int(u_xlatu14.x & 0xfffffff0u);
u_xlat13 = as_type<float>(uint(u_xlati12) | cbTranslationTableData.invLevel);
u_xlati19 = int(0xffffffffu);
} else {
u_xlatb12 = as_type<int>(u_xlat1)!=as_type<int>(u_xlat13);
if(u_xlatb12){
u_xlat13 = u_xlat1;
u_xlati19 = int(0xffffffffu);
}
}
}
if((uint(u_xlati19))!=uint(0)){
_output_buf[(u_xlati7 >> 2)] = as_type<uint>(u_xlat13);
translationTable.write(float4(u_xlat13), u_xlatu0.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿ‘þÊ­Þ #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
uint4 u_xlatu0;
int u_xlati1;
bool2 u_xlatb1;
bool u_xlatb2;
float u_xlat4;
int u_xlati7;
int u_xlati10;
bool u_xlatb10;
u_xlatu0 = mtl_ThreadGroupID.xyyy * uint4(0x20u, 0x20u, 0x20u, 0x20u) + mtl_ThreadIDInGroup.xyyy;
u_xlatb1.xy = (u_xlatu0.xw>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb1.x = u_xlatb1.y || u_xlatb1.x;
if(u_xlatb1.x){
return;
}
u_xlati1 = int(u_xlatu0.w) * int(cbTranslationTableData.width) + int(u_xlatu0.x);
u_xlati1 = u_xlati1 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati1 = u_xlati1 << 0x2;
u_xlat4 = as_type<float>(_output_buf[(u_xlati1 >> 2) + 0]);
u_xlati7 = int(as_type<uint>(u_xlat4) & 0x80000000u);
if((uint(u_xlati7))!=uint(0)){
u_xlat4 = as_type<float>(as_type<uint>(u_xlat4) & 0x7fffffffu);
}
u_xlati10 = int(as_type<uint>(u_xlat4) & 0xfu);
u_xlatb10 = u_xlati10!=int(cbTranslationTableData.invLevel);
u_xlatb2 = as_type<int>(u_xlat4)!=int(0x7fffffffu);
u_xlatb10 = u_xlatb10 && u_xlatb2;
if(u_xlatb10){
u_xlat4 = float(as_type<float>(int(0x7fffffffu)));
u_xlati10 = int(int(0xffffffffu));
} else {
u_xlati10 = int((u_xlati7!=0x0) ? 0xFFFFFFFFu : uint(0));
}
if((uint(u_xlati10))!=uint(0)){
_output_buf[(u_xlati1 >> 2)] = as_type<uint>(u_xlat4);
translationTable.write(float4(u_xlat4), u_xlatu0.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿ
lookupTextureÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿ¿þÊ­Þ #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
template <typename UVecType> UVecType bitFieldInsert(const UVecType width, const UVecType offset, const UVecType src2, const UVecType src3)
{
UVecType bitmask = (((UVecType(1) << width)-1) << offset) & 0xffffffff;
return ((src2 << offset) & bitmask) | (src3 & ~bitmask);
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
texture2d<uint, access::sample > lookupTexture [[ texture(0) ]] ,
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
uint4 u_xlatu0;
int u_xlati1;
bool2 u_xlatb1;
uint2 u_xlatu2;
int4 u_xlati3;
uint u_xlatu3;
int3 u_xlati4;
int4 u_xlati5;
float u_xlat7;
int2 u_xlati9;
bool u_xlatb9;
int u_xlati12;
bool u_xlatb12;
int u_xlati13;
uint2 u_xlatu14;
int u_xlati18;
bool u_xlatb18;
int u_xlati19;
uint u_xlatu19;
bool u_xlatb19;
u_xlatu0.xy = mtl_ThreadGroupID.xy * uint2(0x20u, 0x20u) + mtl_ThreadIDInGroup.xy;
u_xlatb1.xy = (u_xlatu0.xy>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb1.x = u_xlatb1.y || u_xlatb1.x;
if(u_xlatb1.x){
return;
}
u_xlati1 = int(u_xlatu0.y) * int(cbTranslationTableData.width) + int(u_xlatu0.x);
u_xlati1 = u_xlati1 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati1 = u_xlati1 << 0x2;
u_xlat7 = as_type<float>(_output_buf[(u_xlati1 >> 2) + 0]);
u_xlatu0.zw = uint2(cbTranslationTableData.level);
u_xlati12 = int(lookupTexture.read(u_xlatu0.xy, u_xlatu0.w).x);
u_xlati18 = int(as_type<uint>(u_xlat7) & 0x80000000u);
u_xlati13 = int((u_xlati18!=0x0) ? 0xFFFFFFFFu : uint(0));
if((uint(u_xlati18))!=uint(0)){
u_xlat7 = as_type<float>(as_type<uint>(u_xlat7) & 0x7fffffffu);
}
u_xlati18 = int(as_type<uint>(u_xlat7) & 0xfu);
u_xlatb18 = u_xlati18==int(cbTranslationTableData.invLevel);
if(u_xlatb18){
u_xlatu2.y = 0x0u;
u_xlatu14.x = uint(0x0u);
u_xlatu14.y = uint(0x0u);
u_xlati18 = 0x0;
while(true){
u_xlatb19 = u_xlatu14.y>=cbTranslationTableData.numEvictedTiles;
u_xlati18 = 0x0;
if(u_xlatb19){break;}
u_xlatu19 = u_xlatu14.y >> 0x2u;
u_xlatu3 = u_xlatu14.y & 0x3u;
u_xlati9.x = 0 - int(u_xlatu3);
u_xlati4.xyz = int3(uint3((uint3(u_xlatu3)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati5.y = int(uint(u_xlati9.x) & uint(u_xlati4.y));
u_xlati3.x = int(u_xlatu3) + int(0xfffffffdu);
u_xlati5.z = (u_xlati4.y != 0) ? 0x0 : u_xlati3.x;
u_xlati5.w = int((u_xlati4.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.x = u_xlati4.x;
u_xlati3 = int4(uint4(u_xlati5) & cbTranslationTableData.evictedTiles[int(u_xlatu19)]);
u_xlati3.xy = int2(uint2(u_xlati3.yw) | uint2(u_xlati3.xz));
u_xlati19 = int(uint(u_xlati3.y) | uint(u_xlati3.x));
u_xlatb19 = u_xlati12==u_xlati19;
if(u_xlatb19){
u_xlatu14.x = 0xffffffffu;
u_xlati18 = int(0xffffffffu);
break;
}
u_xlatu2.x = u_xlatu14.y + 0x1u;
u_xlatu14.xy = u_xlatu2.yx;
u_xlatb18 = u_xlatb19;
}
if((uint(u_xlati18))==uint(0)){
u_xlatu14.x = 0x0u;
}
if((u_xlatu14.x)!=uint(0)){
u_xlat7 = float(as_type<float>(int(0x7fffffffu)));
u_xlati13 = int(int(0xffffffffu));
}
} else {
u_xlatu2.y = 0x0u;
u_xlatu14.x = uint(0x0u);
u_xlatu14.y = uint(0x0u);
u_xlati18 = 0x0;
while(true){
u_xlatb19 = u_xlatu14.y>=cbTranslationTableData.numAddedTiles;
u_xlati18 = 0x0;
if(u_xlatb19){break;}
u_xlatu19 = u_xlatu14.y >> 0x1u;
u_xlatu3 = bitFieldInsert(0x1u, 0x1u, u_xlatu14.y, 0x0u);
u_xlati4.x = int((u_xlatu3<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati4.y = int((u_xlati4.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati9.xy = int2(uint2(u_xlati4.xy) & cbTranslationTableData.addedTiles[int(u_xlatu19)].xz);
u_xlati9.x = int(uint(u_xlati9.y) | uint(u_xlati9.x));
u_xlatb9 = u_xlati12==u_xlati9.x;
if(u_xlatb9){
u_xlati3.x = int(u_xlatu3) + 0x1;
u_xlatu3 = uint(u_xlati3.x) + 0xffffffffu;
u_xlati4.x = int((u_xlatu3<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati4.y = int((u_xlati4.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati3.xz = int2(uint2(u_xlati4.xy) & cbTranslationTableData.addedTiles[int(u_xlatu19)].yw);
u_xlatu14.x = uint(u_xlati3.z) | uint(u_xlati3.x);
u_xlati18 = int(0xffffffffu);
break;
}
u_xlatu2.x = u_xlatu14.y + 0x1u;
u_xlatu14.xy = u_xlatu2.yx;
u_xlatb18 = u_xlatb9;
}
if((uint(u_xlati18))==uint(0)){
u_xlatu14.x = 0xffffffffu;
}
u_xlatb12 = int(u_xlatu14.x)!=int(0xffffffffu);
if(u_xlatb12){
u_xlati12 = int(u_xlatu14.x & 0xfffffff0u);
u_xlat7 = as_type<float>(uint(u_xlati12) | cbTranslationTableData.invLevel);
u_xlati13 = int(0xffffffffu);
} else {
u_xlatb12 = as_type<int>(u_xlat7)!=int(0x7fffffffu);
if(u_xlatb12){
u_xlati13 = int(0xffffffffu);
}
u_xlat7 = as_type<float>(int(0x7fffffffu));
}
}
if((uint(u_xlati13))!=uint(0)){
_output_buf[(u_xlati1 >> 2)] = as_type<uint>(u_xlat7);
translationTable.write(float4(u_xlat7), u_xlatu0.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿ‰þÊ­Þ #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
float u_xlat0;
int u_xlati0;
uint4 u_xlatu1;
float2 u_xlat2;
bool u_xlatb3;
int u_xlati4;
uint2 u_xlatu4;
bool3 u_xlatb4;
float u_xlat8;
int u_xlati8;
int u_xlati10;
bool u_xlatb10;
int u_xlati12;
uint u_xlatu12;
int u_xlati14;
bool u_xlatb14;
u_xlati0 = int(cbTranslationTableData.height) * int(cbTranslationTableData.width);
u_xlati0 = u_xlati0 >> 0x2;
u_xlatu1 = mtl_ThreadGroupID.xyyy * uint4(0x20u, 0x20u, 0x20u, 0x20u) + mtl_ThreadIDInGroup.xyyy;
u_xlatu4.xy = u_xlatu1.xw >> uint2(0x1u, 0x1u);
u_xlatu12 = cbTranslationTableData.width >> 0x1u;
u_xlati4 = int(u_xlatu4.y) * int(u_xlatu12) + int(u_xlatu4.x);
u_xlati4 = u_xlati4 + int(cbTranslationTableData.bufferOffsetLevelAbove);
u_xlati8 = u_xlati4 << 0x2;
u_xlat8 = as_type<float>(_output_buf[(u_xlati8 >> 2) + 0]);
u_xlati0 = u_xlati4 + u_xlati0;
u_xlati0 = u_xlati0 << 0x2;
u_xlat0 = as_type<float>(_output_buf[(u_xlati0 >> 2) + 0]);
u_xlatb4.xz = (u_xlatu1.xw>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb4.x = u_xlatb4.z || u_xlatb4.x;
if(u_xlatb4.x){
return;
}
u_xlati4 = int(u_xlatu1.w) * int(cbTranslationTableData.width) + int(u_xlatu1.x);
u_xlati4 = u_xlati4 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati12 = u_xlati4 << 0x2;
u_xlat2.x = as_type<float>(_output_buf[(u_xlati12 >> 2) + 0]);
u_xlati4 = int(cbTranslationTableData.width) * int(cbTranslationTableData.height) + u_xlati4;
u_xlati4 = u_xlati4 << 0x2;
u_xlat2.y = as_type<float>(_output_buf[(u_xlati4 >> 2) + 0]);
u_xlati10 = int(as_type<uint>(u_xlat2.x) & 0x80000000u);
if((uint(u_xlati10))!=uint(0)){
u_xlat2.x = as_type<float>(as_type<uint>(u_xlat2.x) & 0x7fffffffu);
}
u_xlati14 = int(as_type<uint>(u_xlat2.x) & 0xfu);
u_xlatb14 = u_xlati14!=int(cbTranslationTableData.invLevel);
u_xlatb3 = as_type<int>(u_xlat8)!=as_type<int>(u_xlat2.x);
u_xlatb14 = u_xlatb14 && u_xlatb3;
if(u_xlatb14){
u_xlat2.x = u_xlat8;
u_xlati8 = int(0xffffffffu);
} else {
u_xlati8 = int((u_xlati10!=0x0) ? 0xFFFFFFFFu : uint(0));
}
u_xlati10 = int(as_type<uint>(u_xlat2.y) & 0x80000000u);
if((uint(u_xlati10))!=uint(0)){
u_xlat2.y = as_type<float>(as_type<uint>(u_xlat2.y) & 0x7fffffffu);
u_xlati8 = int(0xffffffffu);
}
u_xlati10 = int(as_type<uint>(u_xlat2.y) & 0xfu);
u_xlatb10 = u_xlati10!=int(cbTranslationTableData.invLevel);
u_xlatb14 = as_type<int>(u_xlat0)!=as_type<int>(u_xlat2.y);
u_xlatb10 = u_xlatb14 && u_xlatb10;
if(u_xlatb10){
u_xlat2.y = u_xlat0;
u_xlati8 = int(0xffffffffu);
}
if((uint(u_xlati8))!=uint(0)){
_output_buf[(u_xlati12 >> 2)] = as_type<uint>(u_xlat2.x);
_output_buf[(u_xlati4 >> 2)] = as_type<uint>(u_xlat2.y);
translationTable.write(u_xlat2.xyxx, u_xlatu1.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿ
lookupTextureÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿv,þÊ­Þ #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
template <typename UVecType> UVecType bitFieldInsert(const UVecType width, const UVecType offset, const UVecType src2, const UVecType src3)
{
UVecType bitmask = (((UVecType(1) << width)-1) << offset) & 0xffffffff;
return ((src2 << offset) & bitmask) | (src3 & ~bitmask);
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
texture2d<uint, access::sample > lookupTexture [[ texture(0) ]] ,
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
float u_xlat0;
int u_xlati0;
uint4 u_xlatu1;
float2 u_xlat2;
uint2 u_xlatu3;
int4 u_xlati4;
uint u_xlatu4;
bool u_xlatb4;
int4 u_xlati5;
int4 u_xlati6;
int u_xlati7;
uint2 u_xlatu7;
bool3 u_xlatb7;
int3 u_xlati11;
uint u_xlatu11;
float u_xlat14;
int u_xlati14;
bool u_xlatb14;
int2 u_xlati15;
uint u_xlatu15;
bool u_xlatb15;
int u_xlati16;
uint u_xlatu16;
bool u_xlatb16;
uint2 u_xlatu17;
int2 u_xlati18;
bool u_xlatb18;
int u_xlati21;
uint u_xlatu21;
int u_xlati23;
u_xlati0 = int(cbTranslationTableData.height) * int(cbTranslationTableData.width);
u_xlati0 = u_xlati0 >> 0x2;
u_xlatu1.xy = mtl_ThreadGroupID.xy * uint2(0x20u, 0x20u) + mtl_ThreadIDInGroup.xy;
u_xlatu7.xy = u_xlatu1.xy >> uint2(0x1u, 0x1u);
u_xlatu21 = cbTranslationTableData.width >> 0x1u;
u_xlati7 = int(u_xlatu7.y) * int(u_xlatu21) + int(u_xlatu7.x);
u_xlati7 = u_xlati7 + int(cbTranslationTableData.bufferOffsetLevelAbove);
u_xlati14 = u_xlati7 << 0x2;
u_xlat14 = as_type<float>(_output_buf[(u_xlati14 >> 2) + 0]);
u_xlati0 = u_xlati7 + u_xlati0;
u_xlati0 = u_xlati0 << 0x2;
u_xlat0 = as_type<float>(_output_buf[(u_xlati0 >> 2) + 0]);
u_xlatb7.xz = (u_xlatu1.xy>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb7.x = u_xlatb7.z || u_xlatb7.x;
if(u_xlatb7.x){
return;
}
u_xlati7 = int(u_xlatu1.y) * int(cbTranslationTableData.width) + int(u_xlatu1.x);
u_xlati7 = u_xlati7 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati21 = u_xlati7 << 0x2;
u_xlat2.x = as_type<float>(_output_buf[(u_xlati21 >> 2) + 0]);
u_xlati7 = int(cbTranslationTableData.width) * int(cbTranslationTableData.height) + u_xlati7;
u_xlati7 = u_xlati7 << 0x2;
u_xlat2.y = as_type<float>(_output_buf[(u_xlati7 >> 2) + 0]);
u_xlatu1.zw = uint2(cbTranslationTableData.level);
u_xlati15.xy = int2(lookupTexture.read(u_xlatu1.xy, u_xlatu1.w).xy);
u_xlati16 = int(as_type<uint>(u_xlat2.x) & 0x80000000u);
u_xlati23 = int((u_xlati16!=0x0) ? 0xFFFFFFFFu : uint(0));
if((uint(u_xlati16))!=uint(0)){
u_xlat2.x = as_type<float>(as_type<uint>(u_xlat2.x) & 0x7fffffffu);
}
u_xlati16 = int(as_type<uint>(u_xlat2.x) & 0xfu);
u_xlatb16 = u_xlati16==int(cbTranslationTableData.invLevel);
if(u_xlatb16){
u_xlatu3.y = 0x0u;
u_xlatu17.x = uint(0x0u);
u_xlatu17.y = uint(0x0u);
u_xlati16 = 0x0;
while(true){
u_xlatb4 = u_xlatu17.y>=cbTranslationTableData.numEvictedTiles;
u_xlati16 = 0x0;
if(u_xlatb4){break;}
u_xlatu4 = u_xlatu17.y >> 0x2u;
u_xlatu11 = u_xlatu17.y & 0x3u;
u_xlati18.x = 0 - int(u_xlatu11);
u_xlati5.xyz = int3(uint3((uint3(u_xlatu11)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati6.y = int(uint(u_xlati18.x) & uint(u_xlati5.y));
u_xlati11.x = int(u_xlatu11) + int(0xfffffffdu);
u_xlati6.z = (u_xlati5.y != 0) ? 0x0 : u_xlati11.x;
u_xlati6.w = int((u_xlati5.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati6.x = u_xlati5.x;
u_xlati4 = int4(uint4(u_xlati6) & cbTranslationTableData.evictedTiles[int(u_xlatu4)]);
u_xlati4.xy = int2(uint2(u_xlati4.yw) | uint2(u_xlati4.xz));
u_xlati4.x = int(uint(u_xlati4.y) | uint(u_xlati4.x));
u_xlatb4 = u_xlati15.x==u_xlati4.x;
if(u_xlatb4){
u_xlatu17.x = 0xffffffffu;
u_xlati16 = int(0xffffffffu);
break;
}
u_xlatu3.x = u_xlatu17.y + 0x1u;
u_xlatu17.xy = u_xlatu3.yx;
u_xlatb16 = u_xlatb4;
}
if((uint(u_xlati16))==uint(0)){
u_xlatu17.x = 0x0u;
}
if((u_xlatu17.x)!=uint(0)){
u_xlat2.x = u_xlat14;
u_xlati23 = int(0xffffffffu);
}
} else {
u_xlatu3.y = 0x0u;
u_xlatu17.x = uint(0x0u);
u_xlatu17.y = uint(0x0u);
u_xlati16 = 0x0;
while(true){
u_xlatb4 = u_xlatu17.y>=cbTranslationTableData.numAddedTiles;
u_xlati16 = 0x0;
if(u_xlatb4){break;}
u_xlatu4 = u_xlatu17.y >> 0x1u;
u_xlatu11 = bitFieldInsert(0x1u, 0x1u, u_xlatu17.y, 0x0u);
u_xlati5.x = int((u_xlatu11<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati18.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu4)].xz);
u_xlati18.x = int(uint(u_xlati18.y) | uint(u_xlati18.x));
u_xlatb18 = u_xlati15.x==u_xlati18.x;
if(u_xlatb18){
u_xlati11.x = int(u_xlatu11) + 0x1;
u_xlatu11 = uint(u_xlati11.x) + 0xffffffffu;
u_xlati5.x = int((u_xlatu11<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati4.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu4)].yw);
u_xlatu17.x = uint(u_xlati4.y) | uint(u_xlati4.x);
u_xlati16 = int(0xffffffffu);
break;
}
u_xlatu3.x = u_xlatu17.y + 0x1u;
u_xlatu17.xy = u_xlatu3.yx;
u_xlatb16 = u_xlatb18;
}
if((uint(u_xlati16))==uint(0)){
u_xlatu17.x = 0xffffffffu;
}
u_xlatb15 = int(u_xlatu17.x)!=int(0xffffffffu);
if(u_xlatb15){
u_xlati15.x = int(u_xlatu17.x & 0xfffffff0u);
u_xlat2.x = as_type<float>(uint(u_xlati15.x) | cbTranslationTableData.invLevel);
u_xlati23 = int(0xffffffffu);
} else {
u_xlatb15 = as_type<int>(u_xlat14)!=as_type<int>(u_xlat2.x);
if(u_xlatb15){
u_xlat2.x = u_xlat14;
u_xlati23 = int(0xffffffffu);
}
}
}
u_xlati14 = int(as_type<uint>(u_xlat2.y) & 0x80000000u);
if((uint(u_xlati14))!=uint(0)){
u_xlat2.y = as_type<float>(as_type<uint>(u_xlat2.y) & 0x7fffffffu);
u_xlati23 = int(0xffffffffu);
}
u_xlati14 = int(as_type<uint>(u_xlat2.y) & 0xfu);
u_xlatb14 = u_xlati14==int(cbTranslationTableData.invLevel);
if(u_xlatb14){
u_xlatu3.y = 0x0u;
u_xlatu17.x = uint(0x0u);
u_xlatu17.y = uint(0x0u);
u_xlati14 = 0x0;
while(true){
u_xlatb15 = u_xlatu17.y>=cbTranslationTableData.numEvictedTiles;
u_xlati14 = 0x0;
if(u_xlatb15){break;}
u_xlatu15 = u_xlatu17.y >> 0x2u;
u_xlatu16 = u_xlatu17.y & 0x3u;
u_xlati4.x = 0 - int(u_xlatu16);
u_xlati11.xyz = int3(uint3((uint3(u_xlatu16)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati5.y = int(uint(u_xlati4.x) & uint(u_xlati11.y));
u_xlati16 = int(u_xlatu16) + int(0xfffffffdu);
u_xlati5.z = (u_xlati11.y != 0) ? 0x0 : u_xlati16;
u_xlati5.w = int((u_xlati11.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.x = u_xlati11.x;
u_xlati4 = int4(uint4(u_xlati5) & cbTranslationTableData.evictedTiles[int(u_xlatu15)]);
u_xlati4.xy = int2(uint2(u_xlati4.yw) | uint2(u_xlati4.xz));
u_xlati15.x = int(uint(u_xlati4.y) | uint(u_xlati4.x));
u_xlatb15 = u_xlati15.y==u_xlati15.x;
if(u_xlatb15){
u_xlatu17.x = 0xffffffffu;
u_xlati14 = int(0xffffffffu);
break;
}
u_xlatu3.x = u_xlatu17.y + 0x1u;
u_xlatu17.xy = u_xlatu3.yx;
u_xlatb14 = u_xlatb15;
}
if((uint(u_xlati14))==uint(0)){
u_xlatu17.x = 0x0u;
}
if((u_xlatu17.x)!=uint(0)){
u_xlat2.y = u_xlat0;
u_xlati23 = int(0xffffffffu);
}
} else {
u_xlatu3.y = 0x0u;
u_xlatu17.x = uint(0x0u);
u_xlatu17.y = uint(0x0u);
u_xlati14 = 0x0;
while(true){
u_xlatb15 = u_xlatu17.y>=cbTranslationTableData.numAddedTiles;
u_xlati14 = 0x0;
if(u_xlatb15){break;}
u_xlatu15 = u_xlatu17.y >> 0x1u;
u_xlatu16 = bitFieldInsert(0x1u, 0x1u, u_xlatu17.y, 0x0u);
u_xlati4.x = int((u_xlatu16<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati4.y = int((u_xlati4.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati4.xy = int2(uint2(u_xlati4.xy) & cbTranslationTableData.addedTiles[int(u_xlatu15)].xz);
u_xlati4.x = int(uint(u_xlati4.y) | uint(u_xlati4.x));
u_xlatb4 = u_xlati15.y==u_xlati4.x;
if(u_xlatb4){
u_xlati16 = int(u_xlatu16) + 0x1;
u_xlatu16 = uint(u_xlati16) + 0xffffffffu;
u_xlati5.x = int((u_xlatu16<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati11.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu15)].yw);
u_xlatu17.x = uint(u_xlati11.y) | uint(u_xlati11.x);
u_xlati14 = int(0xffffffffu);
break;
}
u_xlatu3.x = u_xlatu17.y + 0x1u;
u_xlatu17.xy = u_xlatu3.yx;
u_xlatb14 = u_xlatb4;
}
if((uint(u_xlati14))==uint(0)){
u_xlatu17.x = 0xffffffffu;
}
u_xlatb14 = int(u_xlatu17.x)!=int(0xffffffffu);
if(u_xlatb14){
u_xlati14 = int(u_xlatu17.x & 0xfffffff0u);
u_xlat2.y = as_type<float>(uint(u_xlati14) | cbTranslationTableData.invLevel);
u_xlati23 = int(0xffffffffu);
} else {
u_xlatb14 = as_type<int>(u_xlat0)!=as_type<int>(u_xlat2.y);
if(u_xlatb14){
u_xlat2.y = u_xlat0;
u_xlati23 = int(0xffffffffu);
}
}
}
if((uint(u_xlati23))!=uint(0)){
_output_buf[(u_xlati21 >> 2)] = as_type<uint>(u_xlat2.x);
_output_buf[(u_xlati7 >> 2)] = as_type<uint>(u_xlat2.y);
translationTable.write(u_xlat2.xyxx, u_xlatu1.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿÛ þÊ­Þ #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
uint4 u_xlatu0;
int u_xlati1;
bool2 u_xlatb1;
float2 u_xlat2;
int u_xlati4;
int u_xlati7;
bool u_xlatb7;
bool u_xlatb8;
int u_xlati10;
bool u_xlatb10;
u_xlatu0 = mtl_ThreadGroupID.xyyy * uint4(0x20u, 0x20u, 0x20u, 0x20u) + mtl_ThreadIDInGroup.xyyy;
u_xlatb1.xy = (u_xlatu0.xw>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb1.x = u_xlatb1.y || u_xlatb1.x;
if(u_xlatb1.x){
return;
}
u_xlati1 = int(u_xlatu0.w) * int(cbTranslationTableData.width) + int(u_xlatu0.x);
u_xlati1 = u_xlati1 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati4 = u_xlati1 << 0x2;
u_xlat2.x = as_type<float>(_output_buf[(u_xlati4 >> 2) + 0]);
u_xlati1 = int(cbTranslationTableData.width) * int(cbTranslationTableData.height) + u_xlati1;
u_xlati1 = u_xlati1 << 0x2;
u_xlat2.y = as_type<float>(_output_buf[(u_xlati1 >> 2) + 0]);
u_xlati7 = int(as_type<uint>(u_xlat2.x) & 0x80000000u);
if((uint(u_xlati7))!=uint(0)){
u_xlat2.x = as_type<float>(as_type<uint>(u_xlat2.x) & 0x7fffffffu);
}
u_xlati10 = int(as_type<uint>(u_xlat2.x) & 0xfu);
u_xlatb10 = u_xlati10!=int(cbTranslationTableData.invLevel);
u_xlatb8 = as_type<int>(u_xlat2.x)!=int(0x7fffffffu);
u_xlatb10 = u_xlatb10 && u_xlatb8;
if(u_xlatb10){
u_xlat2.x = as_type<float>(int(0x7fffffffu));
u_xlati10 = int(0xffffffffu);
} else {
u_xlati10 = int((u_xlati7!=0x0) ? 0xFFFFFFFFu : uint(0));
}
u_xlati7 = int(as_type<uint>(u_xlat2.y) & 0x80000000u);
if((uint(u_xlati7))!=uint(0)){
u_xlat2.y = as_type<float>(as_type<uint>(u_xlat2.y) & 0x7fffffffu);
u_xlati10 = int(0xffffffffu);
}
u_xlati7 = int(as_type<uint>(u_xlat2.y) & 0xfu);
u_xlatb7 = u_xlati7!=int(cbTranslationTableData.invLevel);
u_xlatb8 = as_type<int>(u_xlat2.y)!=int(0x7fffffffu);
u_xlatb7 = u_xlatb7 && u_xlatb8;
if(u_xlatb7){
u_xlat2.y = as_type<float>(int(0x7fffffffu));
u_xlati10 = int(0xffffffffu);
}
if((uint(u_xlati10))!=uint(0)){
_output_buf[(u_xlati4 >> 2)] = as_type<uint>(u_xlat2.x);
_output_buf[(u_xlati1 >> 2)] = as_type<uint>(u_xlat2.y);
translationTable.write(u_xlat2.xyxx, u_xlatu0.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿ
lookupTextureÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿ*þÊ­Þ #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
template <typename UVecType> UVecType bitFieldInsert(const UVecType width, const UVecType offset, const UVecType src2, const UVecType src3)
{
UVecType bitmask = (((UVecType(1) << width)-1) << offset) & 0xffffffff;
return ((src2 << offset) & bitmask) | (src3 & ~bitmask);
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
texture2d<uint, access::sample > lookupTexture [[ texture(0) ]] ,
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
uint4 u_xlatu0;
int u_xlati1;
bool2 u_xlatb1;
float2 u_xlat2;
uint2 u_xlatu3;
int4 u_xlati4;
bool u_xlatb4;
int4 u_xlati5;
int u_xlati7;
int3 u_xlati10;
int2 u_xlati12;
bool u_xlatb12;
int u_xlati13;
uint u_xlatu13;
bool u_xlatb13;
uint2 u_xlatu14;
int2 u_xlati15;
uint u_xlatu15;
bool u_xlatb15;
int u_xlati19;
int u_xlati21;
uint u_xlatu21;
bool u_xlatb21;
u_xlatu0.xy = mtl_ThreadGroupID.xy * uint2(0x20u, 0x20u) + mtl_ThreadIDInGroup.xy;
u_xlatb1.xy = (u_xlatu0.xy>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb1.x = u_xlatb1.y || u_xlatb1.x;
if(u_xlatb1.x){
return;
}
u_xlati1 = int(u_xlatu0.y) * int(cbTranslationTableData.width) + int(u_xlatu0.x);
u_xlati1 = u_xlati1 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati7 = u_xlati1 << 0x2;
u_xlat2.x = as_type<float>(_output_buf[(u_xlati7 >> 2) + 0]);
u_xlati1 = int(cbTranslationTableData.width) * int(cbTranslationTableData.height) + u_xlati1;
u_xlati1 = u_xlati1 << 0x2;
u_xlat2.y = as_type<float>(_output_buf[(u_xlati1 >> 2) + 0]);
u_xlatu0.zw = uint2(cbTranslationTableData.level);
u_xlati12.xy = int2(lookupTexture.read(u_xlatu0.xy, u_xlatu0.w).xy);
u_xlati13 = int(as_type<uint>(u_xlat2.x) & 0x80000000u);
u_xlati19 = int((u_xlati13!=0x0) ? 0xFFFFFFFFu : uint(0));
if((uint(u_xlati13))!=uint(0)){
u_xlat2.x = as_type<float>(as_type<uint>(u_xlat2.x) & 0x7fffffffu);
}
u_xlati13 = int(as_type<uint>(u_xlat2.x) & 0xfu);
u_xlatb13 = u_xlati13==int(cbTranslationTableData.invLevel);
if(u_xlatb13){
u_xlatu3.y = 0x0u;
u_xlatu14.x = uint(0x0u);
u_xlatu14.y = uint(0x0u);
u_xlati13 = 0x0;
while(true){
u_xlatb15 = u_xlatu14.y>=cbTranslationTableData.numEvictedTiles;
u_xlati13 = 0x0;
if(u_xlatb15){break;}
u_xlatu15 = u_xlatu14.y >> 0x2u;
u_xlatu21 = u_xlatu14.y & 0x3u;
u_xlati4.x = 0 - int(u_xlatu21);
u_xlati10.xyz = int3(uint3((uint3(u_xlatu21)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati5.y = int(uint(u_xlati4.x) & uint(u_xlati10.y));
u_xlati21 = int(u_xlatu21) + int(0xfffffffdu);
u_xlati5.z = (u_xlati10.y != 0) ? 0x0 : u_xlati21;
u_xlati5.w = int((u_xlati10.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.x = u_xlati10.x;
u_xlati4 = int4(uint4(u_xlati5) & cbTranslationTableData.evictedTiles[int(u_xlatu15)]);
u_xlati15.xy = int2(uint2(u_xlati4.yw) | uint2(u_xlati4.xz));
u_xlati15.x = int(uint(u_xlati15.y) | uint(u_xlati15.x));
u_xlatb15 = u_xlati12.x==u_xlati15.x;
if(u_xlatb15){
u_xlatu14.x = 0xffffffffu;
u_xlati13 = int(0xffffffffu);
break;
}
u_xlatu3.x = u_xlatu14.y + 0x1u;
u_xlatu14.xy = u_xlatu3.yx;
u_xlatb13 = u_xlatb15;
}
if((uint(u_xlati13))==uint(0)){
u_xlatu14.x = 0x0u;
}
if((u_xlatu14.x)!=uint(0)){
u_xlat2.x = as_type<float>(int(0x7fffffffu));
u_xlati19 = int(0xffffffffu);
}
} else {
u_xlatu3.y = 0x0u;
u_xlatu14.x = uint(0x0u);
u_xlatu14.y = uint(0x0u);
u_xlati13 = 0x0;
while(true){
u_xlatb15 = u_xlatu14.y>=cbTranslationTableData.numAddedTiles;
u_xlati13 = 0x0;
if(u_xlatb15){break;}
u_xlatu15 = u_xlatu14.y >> 0x1u;
u_xlatu21 = bitFieldInsert(0x1u, 0x1u, u_xlatu14.y, 0x0u);
u_xlati4.x = int((u_xlatu21<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati4.y = int((u_xlati4.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati4.xy = int2(uint2(u_xlati4.xy) & cbTranslationTableData.addedTiles[int(u_xlatu15)].xz);
u_xlati4.x = int(uint(u_xlati4.y) | uint(u_xlati4.x));
u_xlatb4 = u_xlati12.x==u_xlati4.x;
if(u_xlatb4){
u_xlati21 = int(u_xlatu21) + 0x1;
u_xlatu21 = uint(u_xlati21) + 0xffffffffu;
u_xlati5.x = int((u_xlatu21<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati15.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu15)].yw);
u_xlatu14.x = uint(u_xlati15.y) | uint(u_xlati15.x);
u_xlati13 = int(0xffffffffu);
break;
}
u_xlatu3.x = u_xlatu14.y + 0x1u;
u_xlatu14.xy = u_xlatu3.yx;
u_xlatb13 = u_xlatb4;
}
if((uint(u_xlati13))==uint(0)){
u_xlatu14.x = 0xffffffffu;
}
u_xlatb12 = int(u_xlatu14.x)!=int(0xffffffffu);
if(u_xlatb12){
u_xlati12.x = int(u_xlatu14.x & 0xfffffff0u);
u_xlat2.x = as_type<float>(uint(u_xlati12.x) | cbTranslationTableData.invLevel);
u_xlati19 = int(0xffffffffu);
} else {
u_xlatb12 = as_type<int>(u_xlat2.x)!=int(0x7fffffffu);
if(u_xlatb12){
u_xlati19 = int(0xffffffffu);
}
u_xlat2.x = as_type<float>(int(0x7fffffffu));
}
}
u_xlati12.x = int(as_type<uint>(u_xlat2.y) & 0x80000000u);
if((uint(u_xlati12.x))!=uint(0)){
u_xlat2.y = as_type<float>(as_type<uint>(u_xlat2.y) & 0x7fffffffu);
u_xlati19 = int(0xffffffffu);
}
u_xlati12.x = int(as_type<uint>(u_xlat2.y) & 0xfu);
u_xlatb12 = u_xlati12.x==int(cbTranslationTableData.invLevel);
if(u_xlatb12){
u_xlatu3.y = 0x0u;
u_xlatu14.x = uint(0x0u);
u_xlatu14.y = uint(0x0u);
u_xlati12.x = 0x0;
while(true){
u_xlatb13 = u_xlatu14.y>=cbTranslationTableData.numEvictedTiles;
u_xlati12.x = 0x0;
if(u_xlatb13){break;}
u_xlatu13 = u_xlatu14.y >> 0x2u;
u_xlatu15 = u_xlatu14.y & 0x3u;
u_xlati21 = 0 - int(u_xlatu15);
u_xlati4.xyz = int3(uint3((uint3(u_xlatu15)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati5.y = int(uint(u_xlati21) & uint(u_xlati4.y));
u_xlati15.x = int(u_xlatu15) + int(0xfffffffdu);
u_xlati5.z = (u_xlati4.y != 0) ? 0x0 : u_xlati15.x;
u_xlati5.w = int((u_xlati4.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.x = u_xlati4.x;
u_xlati4 = int4(uint4(u_xlati5) & cbTranslationTableData.evictedTiles[int(u_xlatu13)]);
u_xlati15.xy = int2(uint2(u_xlati4.yw) | uint2(u_xlati4.xz));
u_xlati13 = int(uint(u_xlati15.y) | uint(u_xlati15.x));
u_xlatb13 = u_xlati12.y==u_xlati13;
if(u_xlatb13){
u_xlatu14.x = 0xffffffffu;
u_xlati12.x = int(0xffffffffu);
break;
}
u_xlatu3.x = u_xlatu14.y + 0x1u;
u_xlatu14.xy = u_xlatu3.yx;
u_xlatb12 = u_xlatb13;
}
if((uint(u_xlati12.x))==uint(0)){
u_xlatu14.x = 0x0u;
}
if((u_xlatu14.x)!=uint(0)){
u_xlat2.y = as_type<float>(int(0x7fffffffu));
u_xlati19 = int(0xffffffffu);
}
} else {
u_xlatu3.y = 0x0u;
u_xlatu14.x = uint(0x0u);
u_xlatu14.y = uint(0x0u);
u_xlati12.x = 0x0;
while(true){
u_xlatb13 = u_xlatu14.y>=cbTranslationTableData.numAddedTiles;
u_xlati12.x = 0x0;
if(u_xlatb13){break;}
u_xlatu13 = u_xlatu14.y >> 0x1u;
u_xlatu15 = bitFieldInsert(0x1u, 0x1u, u_xlatu14.y, 0x0u);
u_xlati4.x = int((u_xlatu15<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati4.y = int((u_xlati4.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati4.xy = int2(uint2(u_xlati4.xy) & cbTranslationTableData.addedTiles[int(u_xlatu13)].xz);
u_xlati21 = int(uint(u_xlati4.y) | uint(u_xlati4.x));
u_xlatb21 = u_xlati12.y==u_xlati21;
if(u_xlatb21){
u_xlati15.x = int(u_xlatu15) + 0x1;
u_xlatu15 = uint(u_xlati15.x) + 0xffffffffu;
u_xlati4.x = int((u_xlatu15<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati4.y = int((u_xlati4.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati4.xy = int2(uint2(u_xlati4.xy) & cbTranslationTableData.addedTiles[int(u_xlatu13)].yw);
u_xlatu14.x = uint(u_xlati4.y) | uint(u_xlati4.x);
u_xlati12.x = int(0xffffffffu);
break;
}
u_xlatu3.x = u_xlatu14.y + 0x1u;
u_xlatu14.xy = u_xlatu3.yx;
u_xlatb12 = u_xlatb21;
}
if((uint(u_xlati12.x))==uint(0)){
u_xlatu14.x = 0xffffffffu;
}
u_xlatb12 = int(u_xlatu14.x)!=int(0xffffffffu);
if(u_xlatb12){
u_xlati12.x = int(u_xlatu14.x & 0xfffffff0u);
u_xlat2.y = as_type<float>(uint(u_xlati12.x) | cbTranslationTableData.invLevel);
u_xlati19 = int(0xffffffffu);
} else {
u_xlatb12 = as_type<int>(u_xlat2.y)!=int(0x7fffffffu);
if(u_xlatb12){
u_xlati19 = int(0xffffffffu);
}
u_xlat2.y = as_type<float>(int(0x7fffffffu));
}
}
if((uint(u_xlati19))!=uint(0)){
_output_buf[(u_xlati7 >> 2)] = as_type<uint>(u_xlat2.x);
_output_buf[(u_xlati1 >> 2)] = as_type<uint>(u_xlat2.y);
translationTable.write(u_xlat2.xyxx, u_xlatu0.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿºþÊ­Þ #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
int u_xlati0;
uint4 u_xlatu1;
float u_xlat2;
int u_xlati2;
uint u_xlatu2;
bool u_xlatb2;
float4 u_xlat3;
bool u_xlatb4;
float u_xlat5;
int u_xlati5;
int u_xlati7;
bool2 u_xlatb7;
int u_xlati10;
uint2 u_xlatu10;
bool u_xlatb10;
int u_xlati12;
float u_xlat15;
int u_xlati15;
int u_xlati17;
bool u_xlatb17;
u_xlati0 = int(cbTranslationTableData.height) * int(cbTranslationTableData.width);
u_xlati5 = u_xlati0 >> 0x2;
u_xlatu1 = mtl_ThreadGroupID.xyyy * uint4(0x20u, 0x20u, 0x20u, 0x20u) + mtl_ThreadIDInGroup.xyyy;
u_xlatu10.xy = u_xlatu1.xw >> uint2(0x1u, 0x1u);
u_xlatu2 = cbTranslationTableData.width >> 0x1u;
u_xlati10 = int(u_xlatu10.y) * int(u_xlatu2) + int(u_xlatu10.x);
u_xlati10 = u_xlati10 + int(cbTranslationTableData.bufferOffsetLevelAbove);
u_xlati15 = u_xlati10 << 0x2;
u_xlat15 = as_type<float>(_output_buf[(u_xlati15 >> 2) + 0]);
u_xlati2 = u_xlati10 + u_xlati5;
u_xlati2 = u_xlati2 << 0x2;
u_xlat2 = as_type<float>(_output_buf[(u_xlati2 >> 2) + 0]);
u_xlati5 = u_xlati5 << 0x1;
u_xlati5 = u_xlati10 + u_xlati5;
u_xlati5 = u_xlati5 << 0x2;
u_xlat5 = as_type<float>(_output_buf[(u_xlati5 >> 2) + 0]);
u_xlatb7.xy = (u_xlatu1.xw>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb10 = u_xlatb7.y || u_xlatb7.x;
if(u_xlatb10){
return;
}
u_xlati10 = int(u_xlatu1.w) * int(cbTranslationTableData.width) + int(u_xlatu1.x);
u_xlati10 = u_xlati10 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati7 = u_xlati10 << 0x2;
u_xlat3.x = as_type<float>(_output_buf[(u_xlati7 >> 2) + 0]);
u_xlati12 = int(cbTranslationTableData.width) * int(cbTranslationTableData.height) + u_xlati10;
u_xlati12 = u_xlati12 << 0x2;
u_xlat3.y = as_type<float>(_output_buf[(u_xlati12 >> 2) + 0]);
u_xlati0 = u_xlati0 << 0x1;
u_xlati0 = u_xlati10 + u_xlati0;
u_xlati0 = u_xlati0 << 0x2;
u_xlat3.z = as_type<float>(_output_buf[(u_xlati0 >> 2) + 0]);
u_xlati10 = int(as_type<uint>(u_xlat3.x) & 0x80000000u);
if((uint(u_xlati10))!=uint(0)){
u_xlat3.x = as_type<float>(as_type<uint>(u_xlat3.x) & 0x7fffffffu);
}
u_xlati17 = int(as_type<uint>(u_xlat3.x) & 0xfu);
u_xlatb17 = u_xlati17!=int(cbTranslationTableData.invLevel);
u_xlatb4 = as_type<int>(u_xlat15)!=as_type<int>(u_xlat3.x);
u_xlatb17 = u_xlatb17 && u_xlatb4;
if(u_xlatb17){
u_xlat3.x = u_xlat15;
u_xlati15 = int(0xffffffffu);
} else {
u_xlati15 = int((u_xlati10!=0x0) ? 0xFFFFFFFFu : uint(0));
}
u_xlati10 = int(as_type<uint>(u_xlat3.y) & 0x80000000u);
if((uint(u_xlati10))!=uint(0)){
u_xlat3.y = as_type<float>(as_type<uint>(u_xlat3.y) & 0x7fffffffu);
u_xlati15 = int(0xffffffffu);
}
u_xlati10 = int(as_type<uint>(u_xlat3.y) & 0xfu);
u_xlatb10 = u_xlati10!=int(cbTranslationTableData.invLevel);
u_xlatb17 = as_type<int>(u_xlat2)!=as_type<int>(u_xlat3.y);
u_xlatb10 = u_xlatb10 && u_xlatb17;
if(u_xlatb10){
u_xlat3.y = u_xlat2;
u_xlati15 = int(0xffffffffu);
}
u_xlati10 = int(as_type<uint>(u_xlat3.z) & 0x80000000u);
if((uint(u_xlati10))!=uint(0)){
u_xlat3.z = as_type<float>(as_type<uint>(u_xlat3.z) & 0x7fffffffu);
u_xlati15 = int(0xffffffffu);
}
u_xlati10 = int(as_type<uint>(u_xlat3.z) & 0xfu);
u_xlatb10 = u_xlati10!=int(cbTranslationTableData.invLevel);
u_xlatb2 = as_type<int>(u_xlat5)!=as_type<int>(u_xlat3.z);
u_xlatb10 = u_xlatb10 && u_xlatb2;
if(u_xlatb10){
u_xlat3.z = u_xlat5;
u_xlati15 = int(0xffffffffu);
}
if((uint(u_xlati15))!=uint(0)){
_output_buf[(u_xlati7 >> 2)] = as_type<uint>(u_xlat3.x);
_output_buf[(u_xlati12 >> 2)] = as_type<uint>(u_xlat3.y);
_output_buf[(u_xlati0 >> 2)] = as_type<uint>(u_xlat3.z);
u_xlat3.w = as_type<float>(int(0x7fffffffu));
translationTable.write(u_xlat3, u_xlatu1.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿ
lookupTextureÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿ>þÊ­Þ #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
template <typename UVecType> UVecType bitFieldInsert(const UVecType width, const UVecType offset, const UVecType src2, const UVecType src3)
{
UVecType bitmask = (((UVecType(1) << width)-1) << offset) & 0xffffffff;
return ((src2 << offset) & bitmask) | (src3 & ~bitmask);
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
texture2d<uint, access::sample > lookupTexture [[ texture(0) ]] ,
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
int u_xlati0;
uint4 u_xlatu1;
float u_xlat2;
int4 u_xlati2;
uint u_xlatu2;
bool u_xlatb2;
float4 u_xlat3;
int4 u_xlati4;
uint2 u_xlatu4;
int4 u_xlati5;
uint2 u_xlatu5;
int4 u_xlati6;
int4 u_xlati7;
float u_xlat8;
int u_xlati8;
int u_xlati10;
bool2 u_xlatb10;
int u_xlati16;
uint2 u_xlatu16;
bool u_xlatb16;
int u_xlati17;
int u_xlati18;
int2 u_xlati21;
uint2 u_xlatu21;
float u_xlat24;
int u_xlati24;
bool u_xlatb24;
int u_xlati25;
uint u_xlatu25;
bool u_xlatb25;
int u_xlati26;
uint u_xlatu26;
bool u_xlatb26;
int u_xlati28;
bool u_xlatb28;
u_xlati0 = int(cbTranslationTableData.height) * int(cbTranslationTableData.width);
u_xlati8 = u_xlati0 >> 0x2;
u_xlatu1.xy = mtl_ThreadGroupID.xy * uint2(0x20u, 0x20u) + mtl_ThreadIDInGroup.xy;
u_xlatu16.xy = u_xlatu1.xy >> uint2(0x1u, 0x1u);
u_xlatu2 = cbTranslationTableData.width >> 0x1u;
u_xlati16 = int(u_xlatu16.y) * int(u_xlatu2) + int(u_xlatu16.x);
u_xlati16 = u_xlati16 + int(cbTranslationTableData.bufferOffsetLevelAbove);
u_xlati24 = u_xlati16 << 0x2;
u_xlat24 = as_type<float>(_output_buf[(u_xlati24 >> 2) + 0]);
u_xlati2.x = u_xlati16 + u_xlati8;
u_xlati2.x = u_xlati2.x << 0x2;
u_xlat2 = as_type<float>(_output_buf[(u_xlati2.x >> 2) + 0]);
u_xlati8 = u_xlati8 << 0x1;
u_xlati8 = u_xlati16 + u_xlati8;
u_xlati8 = u_xlati8 << 0x2;
u_xlat8 = as_type<float>(_output_buf[(u_xlati8 >> 2) + 0]);
u_xlatb10.xy = (u_xlatu1.xy>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb16 = u_xlatb10.y || u_xlatb10.x;
if(u_xlatb16){
return;
}
u_xlati16 = int(u_xlatu1.y) * int(cbTranslationTableData.width) + int(u_xlatu1.x);
u_xlati16 = u_xlati16 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati10 = u_xlati16 << 0x2;
u_xlat3.x = as_type<float>(_output_buf[(u_xlati10 >> 2) + 0]);
u_xlati18 = int(cbTranslationTableData.width) * int(cbTranslationTableData.height) + u_xlati16;
u_xlati18 = u_xlati18 << 0x2;
u_xlat3.y = as_type<float>(_output_buf[(u_xlati18 >> 2) + 0]);
u_xlati0 = u_xlati0 << 0x1;
u_xlati0 = u_xlati16 + u_xlati0;
u_xlati0 = u_xlati0 << 0x2;
u_xlat3.z = as_type<float>(_output_buf[(u_xlati0 >> 2) + 0]);
u_xlatu1.zw = uint2(cbTranslationTableData.level);
u_xlati4.xyz = int3(lookupTexture.read(u_xlatu1.xy, u_xlatu1.w).xyz);
u_xlati16 = int(as_type<uint>(u_xlat3.x) & 0x80000000u);
u_xlati17 = int((u_xlati16!=0x0) ? 0xFFFFFFFFu : uint(0));
if((uint(u_xlati16))!=uint(0)){
u_xlat3.x = as_type<float>(as_type<uint>(u_xlat3.x) & 0x7fffffffu);
}
u_xlati16 = int(as_type<uint>(u_xlat3.x) & 0xfu);
u_xlatb16 = u_xlati16==int(cbTranslationTableData.invLevel);
if(u_xlatb16){
u_xlatu5.y = 0x0u;
u_xlatu21.x = uint(0x0u);
u_xlatu21.y = uint(0x0u);
u_xlati16 = 0x0;
while(true){
u_xlatb25 = u_xlatu21.y>=cbTranslationTableData.numEvictedTiles;
u_xlati16 = 0x0;
if(u_xlatb25){break;}
u_xlatu25 = u_xlatu21.y >> 0x2u;
u_xlatu26 = u_xlatu21.y & 0x3u;
u_xlati28 = 0 - int(u_xlatu26);
u_xlati6.xyz = int3(uint3((uint3(u_xlatu26)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati7.y = int(uint(u_xlati28) & uint(u_xlati6.y));
u_xlati26 = int(u_xlatu26) + int(0xfffffffdu);
u_xlati7.z = (u_xlati6.y != 0) ? 0x0 : u_xlati26;
u_xlati7.w = int((u_xlati6.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati7.x = u_xlati6.x;
u_xlati6 = int4(uint4(u_xlati7) & cbTranslationTableData.evictedTiles[int(u_xlatu25)]);
u_xlati6.xy = int2(uint2(u_xlati6.yw) | uint2(u_xlati6.xz));
u_xlati25 = int(uint(u_xlati6.y) | uint(u_xlati6.x));
u_xlatb25 = u_xlati4.x==u_xlati25;
if(u_xlatb25){
u_xlatu21.x = 0xffffffffu;
u_xlati16 = int(0xffffffffu);
break;
}
u_xlatu5.x = u_xlatu21.y + 0x1u;
u_xlatu21.xy = u_xlatu5.yx;
u_xlatb16 = u_xlatb25;
}
if((uint(u_xlati16))==uint(0)){
u_xlatu21.x = 0x0u;
}
if((u_xlatu21.x)!=uint(0)){
u_xlat3.x = u_xlat24;
u_xlati17 = int(0xffffffffu);
}
} else {
u_xlatu5.y = 0x0u;
u_xlatu21.x = uint(0x0u);
u_xlatu21.y = uint(0x0u);
u_xlati16 = 0x0;
while(true){
u_xlatb25 = u_xlatu21.y>=cbTranslationTableData.numAddedTiles;
u_xlati16 = 0x0;
if(u_xlatb25){break;}
u_xlatu25 = u_xlatu21.y >> 0x1u;
u_xlatu26 = bitFieldInsert(0x1u, 0x1u, u_xlatu21.y, 0x0u);
u_xlati6.x = int((u_xlatu26<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati6.y = int((u_xlati6.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati6.xy = int2(uint2(u_xlati6.xy) & cbTranslationTableData.addedTiles[int(u_xlatu25)].xz);
u_xlati28 = int(uint(u_xlati6.y) | uint(u_xlati6.x));
u_xlatb28 = u_xlati4.x==u_xlati28;
if(u_xlatb28){
u_xlati26 = int(u_xlatu26) + 0x1;
u_xlatu26 = uint(u_xlati26) + 0xffffffffu;
u_xlati6.x = int((u_xlatu26<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati6.y = int((u_xlati6.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati6.xy = int2(uint2(u_xlati6.xy) & cbTranslationTableData.addedTiles[int(u_xlatu25)].yw);
u_xlatu21.x = uint(u_xlati6.y) | uint(u_xlati6.x);
u_xlati16 = int(0xffffffffu);
break;
}
u_xlatu5.x = u_xlatu21.y + 0x1u;
u_xlatu21.xy = u_xlatu5.yx;
u_xlatb16 = u_xlatb28;
}
if((uint(u_xlati16))==uint(0)){
u_xlatu21.x = 0xffffffffu;
}
u_xlatb16 = int(u_xlatu21.x)!=int(0xffffffffu);
if(u_xlatb16){
u_xlati16 = int(u_xlatu21.x & 0xfffffff0u);
u_xlat3.x = as_type<float>(uint(u_xlati16) | cbTranslationTableData.invLevel);
u_xlati17 = int(0xffffffffu);
} else {
u_xlatb16 = as_type<int>(u_xlat24)!=as_type<int>(u_xlat3.x);
if(u_xlatb16){
u_xlat3.x = u_xlat24;
u_xlati17 = int(0xffffffffu);
}
}
}
u_xlati16 = int(as_type<uint>(u_xlat3.y) & 0x80000000u);
if((uint(u_xlati16))!=uint(0)){
u_xlat3.y = as_type<float>(as_type<uint>(u_xlat3.y) & 0x7fffffffu);
u_xlati17 = int(0xffffffffu);
}
u_xlati16 = int(as_type<uint>(u_xlat3.y) & 0xfu);
u_xlatb16 = u_xlati16==int(cbTranslationTableData.invLevel);
if(u_xlatb16){
u_xlatu5.y = 0x0u;
u_xlatu16.x = uint(0x0u);
u_xlatu16.y = uint(0x0u);
u_xlati25 = 0x0;
while(true){
u_xlatb26 = u_xlatu16.y>=cbTranslationTableData.numEvictedTiles;
u_xlati25 = 0x0;
if(u_xlatb26){break;}
u_xlatu26 = u_xlatu16.y >> 0x2u;
u_xlatu4.x = u_xlatu16.y & 0x3u;
u_xlati28 = 0 - int(u_xlatu4.x);
u_xlati6.xyz = int3(uint3((u_xlatu4.xxx<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati7.y = int(uint(u_xlati28) & uint(u_xlati6.y));
u_xlati4.x = int(u_xlatu4.x) + int(0xfffffffdu);
u_xlati7.z = (u_xlati6.y != 0) ? 0x0 : u_xlati4.x;
u_xlati7.w = int((u_xlati6.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati7.x = u_xlati6.x;
u_xlati6 = int4(uint4(u_xlati7) & cbTranslationTableData.evictedTiles[int(u_xlatu26)]);
u_xlati4.xw = int2(uint2(u_xlati6.yw) | uint2(u_xlati6.xz));
u_xlati26 = int(uint(u_xlati4.w) | uint(u_xlati4.x));
u_xlatb26 = u_xlati4.y==u_xlati26;
if(u_xlatb26){
u_xlatu16.x = 0xffffffffu;
u_xlati25 = int(0xffffffffu);
break;
}
u_xlatu5.x = u_xlatu16.y + 0x1u;
u_xlatu16.xy = u_xlatu5.yx;
u_xlatb25 = u_xlatb26;
}
if((uint(u_xlati25))==uint(0)){
u_xlatu16.x = 0x0u;
}
if((u_xlatu16.x)!=uint(0)){
u_xlat3.y = u_xlat2;
u_xlati17 = int(0xffffffffu);
}
} else {
u_xlatu5.y = 0x0u;
u_xlatu16.x = uint(0x0u);
u_xlatu16.y = uint(0x0u);
u_xlati25 = 0x0;
while(true){
u_xlatb26 = u_xlatu16.y>=cbTranslationTableData.numAddedTiles;
u_xlati25 = 0x0;
if(u_xlatb26){break;}
u_xlatu26 = u_xlatu16.y >> 0x1u;
u_xlatu4.x = bitFieldInsert(0x1u, 0x1u, u_xlatu16.y, 0x0u);
u_xlati6.x = int((u_xlatu4.x<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati6.y = int((u_xlati6.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati21.xy = int2(uint2(u_xlati6.xy) & cbTranslationTableData.addedTiles[int(u_xlatu26)].xz);
u_xlati28 = int(uint(u_xlati21.y) | uint(u_xlati21.x));
u_xlatb28 = u_xlati4.y==u_xlati28;
if(u_xlatb28){
u_xlati4.x = int(u_xlatu4.x) + 0x1;
u_xlatu4.x = uint(u_xlati4.x) + 0xffffffffu;
u_xlati6.x = int((u_xlatu4.x<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati6.y = int((u_xlati6.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati21.xy = int2(uint2(u_xlati6.xy) & cbTranslationTableData.addedTiles[int(u_xlatu26)].yw);
u_xlatu16.x = uint(u_xlati21.y) | uint(u_xlati21.x);
u_xlati25 = int(0xffffffffu);
break;
}
u_xlatu5.x = u_xlatu16.y + 0x1u;
u_xlatu16.xy = u_xlatu5.yx;
u_xlatb25 = u_xlatb28;
}
if((uint(u_xlati25))==uint(0)){
u_xlatu16.x = 0xffffffffu;
}
u_xlatb24 = int(u_xlatu16.x)!=int(0xffffffffu);
if(u_xlatb24){
u_xlati16 = int(u_xlatu16.x & 0xfffffff0u);
u_xlat3.y = as_type<float>(uint(u_xlati16) | cbTranslationTableData.invLevel);
u_xlati17 = int(0xffffffffu);
} else {
u_xlatb16 = as_type<int>(u_xlat2)!=as_type<int>(u_xlat3.y);
if(u_xlatb16){
u_xlat3.y = u_xlat2;
u_xlati17 = int(0xffffffffu);
}
}
}
u_xlati16 = int(as_type<uint>(u_xlat3.z) & 0x80000000u);
if((uint(u_xlati16))!=uint(0)){
u_xlat3.z = as_type<float>(as_type<uint>(u_xlat3.z) & 0x7fffffffu);
u_xlati17 = int(0xffffffffu);
}
u_xlati16 = int(as_type<uint>(u_xlat3.z) & 0xfu);
u_xlatb16 = u_xlati16==int(cbTranslationTableData.invLevel);
if(u_xlatb16){
u_xlatu4.y = 0x0u;
u_xlatu16.x = uint(0x0u);
u_xlatu16.y = uint(0x0u);
u_xlati25 = 0x0;
while(true){
u_xlatb2 = u_xlatu16.y>=cbTranslationTableData.numEvictedTiles;
u_xlati25 = 0x0;
if(u_xlatb2){break;}
u_xlatu2 = u_xlatu16.y >> 0x2u;
u_xlatu26 = u_xlatu16.y & 0x3u;
u_xlati28 = 0 - int(u_xlatu26);
u_xlati5.xyz = int3(uint3((uint3(u_xlatu26)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati6.y = int(uint(u_xlati28) & uint(u_xlati5.y));
u_xlati26 = int(u_xlatu26) + int(0xfffffffdu);
u_xlati6.z = (u_xlati5.y != 0) ? 0x0 : u_xlati26;
u_xlati6.w = int((u_xlati5.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati6.x = u_xlati5.x;
u_xlati5 = int4(uint4(u_xlati6) & cbTranslationTableData.evictedTiles[int(u_xlatu2)]);
u_xlati2.xw = int2(uint2(u_xlati5.yw) | uint2(u_xlati5.xz));
u_xlati2.x = int(uint(u_xlati2.w) | uint(u_xlati2.x));
u_xlatb2 = u_xlati4.z==u_xlati2.x;
if(u_xlatb2){
u_xlatu16.x = 0xffffffffu;
u_xlati25 = int(0xffffffffu);
break;
}
u_xlatu4.x = u_xlatu16.y + 0x1u;
u_xlatu16.xy = u_xlatu4.yx;
u_xlatb25 = u_xlatb2;
}
if((uint(u_xlati25))==uint(0)){
u_xlatu16.x = 0x0u;
}
if((u_xlatu16.x)!=uint(0)){
u_xlat3.z = u_xlat8;
u_xlati17 = int(0xffffffffu);
}
} else {
u_xlatu4.y = 0x0u;
u_xlatu16.x = uint(0x0u);
u_xlatu16.y = uint(0x0u);
u_xlati25 = 0x0;
while(true){
u_xlatb2 = u_xlatu16.y>=cbTranslationTableData.numAddedTiles;
u_xlati25 = 0x0;
if(u_xlatb2){break;}
u_xlatu2 = u_xlatu16.y >> 0x1u;
u_xlatu26 = bitFieldInsert(0x1u, 0x1u, u_xlatu16.y, 0x0u);
u_xlati5.x = int((u_xlatu26<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu2)].xz);
u_xlati28 = int(uint(u_xlati5.y) | uint(u_xlati5.x));
u_xlatb28 = u_xlati4.z==u_xlati28;
if(u_xlatb28){
u_xlati26 = int(u_xlatu26) + 0x1;
u_xlatu26 = uint(u_xlati26) + 0xffffffffu;
u_xlati5.x = int((u_xlatu26<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati2.xw = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu2)].yw);
u_xlatu16.x = uint(u_xlati2.w) | uint(u_xlati2.x);
u_xlati25 = int(0xffffffffu);
break;
}
u_xlatu4.x = u_xlatu16.y + 0x1u;
u_xlatu16.xy = u_xlatu4.yx;
u_xlatb25 = u_xlatb28;
}
if((uint(u_xlati25))==uint(0)){
u_xlatu16.x = 0xffffffffu;
}
u_xlatb24 = int(u_xlatu16.x)!=int(0xffffffffu);
if(u_xlatb24){
u_xlati16 = int(u_xlatu16.x & 0xfffffff0u);
u_xlat3.z = as_type<float>(uint(u_xlati16) | cbTranslationTableData.invLevel);
u_xlati17 = int(0xffffffffu);
} else {
u_xlatb16 = as_type<int>(u_xlat8)!=as_type<int>(u_xlat3.z);
if(u_xlatb16){
u_xlat3.z = u_xlat8;
u_xlati17 = int(0xffffffffu);
}
}
}
if((uint(u_xlati17))!=uint(0)){
_output_buf[(u_xlati10 >> 2)] = as_type<uint>(u_xlat3.x);
_output_buf[(u_xlati18 >> 2)] = as_type<uint>(u_xlat3.y);
_output_buf[(u_xlati0 >> 2)] = as_type<uint>(u_xlat3.z);
u_xlat3.w = as_type<float>(int(0x7fffffffu));
translationTable.write(u_xlat3, u_xlatu1.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿiþÊ­Þ #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
uint4 u_xlatu0;
int3 u_xlati1;
bool2 u_xlatb1;
float4 u_xlat2;
int u_xlati3;
bool u_xlatb3;
int u_xlati5;
bool u_xlatb5;
bool u_xlatb7;
int u_xlati13;
u_xlatu0 = mtl_ThreadGroupID.xyyy * uint4(0x20u, 0x20u, 0x20u, 0x20u) + mtl_ThreadIDInGroup.xyyy;
u_xlatb1.xy = (u_xlatu0.xw>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb1.x = u_xlatb1.y || u_xlatb1.x;
if(u_xlatb1.x){
return;
}
u_xlati1.x = int(cbTranslationTableData.height) * int(cbTranslationTableData.width);
u_xlati5 = int(u_xlatu0.w) * int(cbTranslationTableData.width) + int(u_xlatu0.x);
u_xlati1.y = u_xlati5 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati1.xz = u_xlati1.xy << int2(0x1, 0x2);
u_xlat2.x = as_type<float>(_output_buf[(u_xlati1.z >> 2) + 0]);
u_xlati13 = int(cbTranslationTableData.width) * int(cbTranslationTableData.height) + u_xlati1.y;
u_xlati13 = u_xlati13 << 0x2;
u_xlat2.y = as_type<float>(_output_buf[(u_xlati13 >> 2) + 0]);
u_xlati1.x = u_xlati1.y + u_xlati1.x;
u_xlati1.x = u_xlati1.x << 0x2;
u_xlat2.z = as_type<float>(_output_buf[(u_xlati1.x >> 2) + 0]);
u_xlati5 = int(as_type<uint>(u_xlat2.x) & 0x80000000u);
if((uint(u_xlati5))!=uint(0)){
u_xlat2.x = as_type<float>(as_type<uint>(u_xlat2.x) & 0x7fffffffu);
}
u_xlati3 = int(as_type<uint>(u_xlat2.x) & 0xfu);
u_xlatb3 = u_xlati3!=int(cbTranslationTableData.invLevel);
u_xlatb7 = as_type<int>(u_xlat2.x)!=int(0x7fffffffu);
u_xlatb3 = u_xlatb7 && u_xlatb3;
if(u_xlatb3){
u_xlat2.x = as_type<float>(int(0x7fffffffu));
u_xlati3 = int(0xffffffffu);
} else {
u_xlati3 = int((u_xlati5!=0x0) ? 0xFFFFFFFFu : uint(0));
}
u_xlati5 = int(as_type<uint>(u_xlat2.y) & 0x80000000u);
if((uint(u_xlati5))!=uint(0)){
u_xlat2.y = as_type<float>(as_type<uint>(u_xlat2.y) & 0x7fffffffu);
u_xlati3 = int(0xffffffffu);
}
u_xlati5 = int(as_type<uint>(u_xlat2.y) & 0xfu);
u_xlatb5 = u_xlati5!=int(cbTranslationTableData.invLevel);
u_xlatb7 = as_type<int>(u_xlat2.y)!=int(0x7fffffffu);
u_xlatb5 = u_xlatb5 && u_xlatb7;
if(u_xlatb5){
u_xlat2.y = as_type<float>(int(0x7fffffffu));
u_xlati3 = int(0xffffffffu);
}
u_xlati5 = int(as_type<uint>(u_xlat2.z) & 0x80000000u);
if((uint(u_xlati5))!=uint(0)){
u_xlat2.z = as_type<float>(as_type<uint>(u_xlat2.z) & 0x7fffffffu);
u_xlati3 = int(0xffffffffu);
}
u_xlati5 = int(as_type<uint>(u_xlat2.z) & 0xfu);
u_xlatb5 = u_xlati5!=int(cbTranslationTableData.invLevel);
u_xlatb7 = as_type<int>(u_xlat2.z)!=int(0x7fffffffu);
u_xlatb5 = u_xlatb5 && u_xlatb7;
if(u_xlatb5){
u_xlat2.z = as_type<float>(int(0x7fffffffu));
u_xlati3 = int(0xffffffffu);
}
if((uint(u_xlati3))!=uint(0)){
_output_buf[(u_xlati1.z >> 2)] = as_type<uint>(u_xlat2.x);
_output_buf[(u_xlati13 >> 2)] = as_type<uint>(u_xlat2.y);
_output_buf[(u_xlati1.x >> 2)] = as_type<uint>(u_xlat2.z);
u_xlat2.w = as_type<float>(int(0x7fffffffu));
translationTable.write(u_xlat2, u_xlatu0.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿ
lookupTextureÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿð:þÊ­Þ #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
template <typename UVecType> UVecType bitFieldInsert(const UVecType width, const UVecType offset, const UVecType src2, const UVecType src3)
{
UVecType bitmask = (((UVecType(1) << width)-1) << offset) & 0xffffffff;
return ((src2 << offset) & bitmask) | (src3 & ~bitmask);
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
texture2d<uint, access::sample > lookupTexture [[ texture(0) ]] ,
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
uint4 u_xlatu0;
int3 u_xlati1;
bool2 u_xlatb1;
float4 u_xlat2;
int3 u_xlati3;
uint4 u_xlatu3;
uint2 u_xlatu4;
int4 u_xlati5;
bool u_xlatb5;
int4 u_xlati6;
int u_xlati8;
uint u_xlatu8;
bool u_xlatb8;
int3 u_xlati12;
int u_xlati14;
bool u_xlatb14;
int2 u_xlati18;
uint2 u_xlatu18;
bool u_xlatb18;
int u_xlati21;
int u_xlati22;
int u_xlati24;
uint u_xlatu24;
int u_xlati25;
bool u_xlatb25;
u_xlatu0.xy = mtl_ThreadGroupID.xy * uint2(0x20u, 0x20u) + mtl_ThreadIDInGroup.xy;
u_xlatb1.xy = (u_xlatu0.xy>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb1.x = u_xlatb1.y || u_xlatb1.x;
if(u_xlatb1.x){
return;
}
u_xlati1.x = int(cbTranslationTableData.height) * int(cbTranslationTableData.width);
u_xlati8 = int(u_xlatu0.y) * int(cbTranslationTableData.width) + int(u_xlatu0.x);
u_xlati1.y = u_xlati8 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati1.xz = u_xlati1.xy << int2(0x1, 0x2);
u_xlat2.x = as_type<float>(_output_buf[(u_xlati1.z >> 2) + 0]);
u_xlati22 = int(cbTranslationTableData.width) * int(cbTranslationTableData.height) + u_xlati1.y;
u_xlati22 = u_xlati22 << 0x2;
u_xlat2.y = as_type<float>(_output_buf[(u_xlati22 >> 2) + 0]);
u_xlati1.x = u_xlati1.y + u_xlati1.x;
u_xlati1.x = u_xlati1.x << 0x2;
u_xlat2.z = as_type<float>(_output_buf[(u_xlati1.x >> 2) + 0]);
u_xlatu0.zw = uint2(cbTranslationTableData.level);
u_xlati3.xyz = int3(lookupTexture.read(u_xlatu0.xy, u_xlatu0.w).xyz);
u_xlati14 = int(as_type<uint>(u_xlat2.x) & 0x80000000u);
u_xlati21 = int((u_xlati14!=0x0) ? 0xFFFFFFFFu : uint(0));
if((uint(u_xlati14))!=uint(0)){
u_xlat2.x = as_type<float>(as_type<uint>(u_xlat2.x) & 0x7fffffffu);
}
u_xlati14 = int(as_type<uint>(u_xlat2.x) & 0xfu);
u_xlatb14 = u_xlati14==int(cbTranslationTableData.invLevel);
if(u_xlatb14){
u_xlatu4.y = 0x0u;
u_xlatu18.x = uint(0x0u);
u_xlatu18.y = uint(0x0u);
u_xlati14 = 0x0;
while(true){
u_xlatb8 = u_xlatu18.y>=cbTranslationTableData.numEvictedTiles;
u_xlati14 = 0x0;
if(u_xlatb8){break;}
u_xlatu8 = u_xlatu18.y >> 0x2u;
u_xlatu24 = u_xlatu18.y & 0x3u;
u_xlati5.x = 0 - int(u_xlatu24);
u_xlati12.xyz = int3(uint3((uint3(u_xlatu24)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati6.y = int(uint(u_xlati5.x) & uint(u_xlati12.y));
u_xlati24 = int(u_xlatu24) + int(0xfffffffdu);
u_xlati6.z = (u_xlati12.y != 0) ? 0x0 : u_xlati24;
u_xlati6.w = int((u_xlati12.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati6.x = u_xlati12.x;
u_xlati5 = int4(uint4(u_xlati6) & cbTranslationTableData.evictedTiles[int(u_xlatu8)]);
u_xlati5.xy = int2(uint2(u_xlati5.yw) | uint2(u_xlati5.xz));
u_xlati8 = int(uint(u_xlati5.y) | uint(u_xlati5.x));
u_xlatb8 = u_xlati3.x==u_xlati8;
if(u_xlatb8){
u_xlatu18.x = 0xffffffffu;
u_xlati14 = int(0xffffffffu);
break;
}
u_xlatu4.x = u_xlatu18.y + 0x1u;
u_xlatu18.xy = u_xlatu4.yx;
u_xlatb14 = u_xlatb8;
}
if((uint(u_xlati14))==uint(0)){
u_xlatu18.x = 0x0u;
}
if((u_xlatu18.x)!=uint(0)){
u_xlat2.x = as_type<float>(int(0x7fffffffu));
u_xlati21 = int(0xffffffffu);
}
} else {
u_xlatu4.y = 0x0u;
u_xlatu18.x = uint(0x0u);
u_xlatu18.y = uint(0x0u);
u_xlati14 = 0x0;
while(true){
u_xlatb8 = u_xlatu18.y>=cbTranslationTableData.numAddedTiles;
u_xlati14 = 0x0;
if(u_xlatb8){break;}
u_xlatu8 = u_xlatu18.y >> 0x1u;
u_xlatu24 = bitFieldInsert(0x1u, 0x1u, u_xlatu18.y, 0x0u);
u_xlati5.x = int((u_xlatu24<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu8)].xz);
u_xlati5.x = int(uint(u_xlati5.y) | uint(u_xlati5.x));
u_xlatb5 = u_xlati3.x==u_xlati5.x;
if(u_xlatb5){
u_xlati24 = int(u_xlatu24) + 0x1;
u_xlatu24 = uint(u_xlati24) + 0xffffffffu;
u_xlati6.x = int((u_xlatu24<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati6.y = int((u_xlati6.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati12.xy = int2(uint2(u_xlati6.xy) & cbTranslationTableData.addedTiles[int(u_xlatu8)].yw);
u_xlatu18.x = uint(u_xlati12.y) | uint(u_xlati12.x);
u_xlati14 = int(0xffffffffu);
break;
}
u_xlatu4.x = u_xlatu18.y + 0x1u;
u_xlatu18.xy = u_xlatu4.yx;
u_xlatb14 = u_xlatb5;
}
if((uint(u_xlati14))==uint(0)){
u_xlatu18.x = 0xffffffffu;
}
u_xlatb14 = int(u_xlatu18.x)!=int(0xffffffffu);
if(u_xlatb14){
u_xlati14 = int(u_xlatu18.x & 0xfffffff0u);
u_xlat2.x = as_type<float>(uint(u_xlati14) | cbTranslationTableData.invLevel);
u_xlati21 = int(0xffffffffu);
} else {
u_xlatb14 = as_type<int>(u_xlat2.x)!=int(0x7fffffffu);
if(u_xlatb14){
u_xlati21 = int(0xffffffffu);
}
u_xlat2.x = as_type<float>(int(0x7fffffffu));
}
}
u_xlati14 = int(as_type<uint>(u_xlat2.y) & 0x80000000u);
if((uint(u_xlati14))!=uint(0)){
u_xlat2.y = as_type<float>(as_type<uint>(u_xlat2.y) & 0x7fffffffu);
u_xlati21 = int(0xffffffffu);
}
u_xlati14 = int(as_type<uint>(u_xlat2.y) & 0xfu);
u_xlatb14 = u_xlati14==int(cbTranslationTableData.invLevel);
if(u_xlatb14){
u_xlatu4.y = 0x0u;
u_xlatu3.x = uint(0x0u);
u_xlatu3.w = uint(0x0u);
u_xlati14 = 0x0;
while(true){
u_xlatb8 = u_xlatu3.w>=cbTranslationTableData.numEvictedTiles;
u_xlati14 = 0x0;
if(u_xlatb8){break;}
u_xlatu8 = u_xlatu3.w >> 0x2u;
u_xlatu18.x = u_xlatu3.w & 0x3u;
u_xlati25 = 0 - int(u_xlatu18.x);
u_xlati5.xyz = int3(uint3((u_xlatu18.xxx<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati6.y = int(uint(u_xlati25) & uint(u_xlati5.y));
u_xlati18.x = int(u_xlatu18.x) + int(0xfffffffdu);
u_xlati6.z = (u_xlati5.y != 0) ? 0x0 : u_xlati18.x;
u_xlati6.w = int((u_xlati5.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati6.x = u_xlati5.x;
u_xlati5 = int4(uint4(u_xlati6) & cbTranslationTableData.evictedTiles[int(u_xlatu8)]);
u_xlati18.xy = int2(uint2(u_xlati5.yw) | uint2(u_xlati5.xz));
u_xlati8 = int(uint(u_xlati18.y) | uint(u_xlati18.x));
u_xlatb8 = u_xlati3.y==u_xlati8;
if(u_xlatb8){
u_xlatu3.x = 0xffffffffu;
u_xlati14 = int(0xffffffffu);
break;
}
u_xlatu4.x = u_xlatu3.w + 0x1u;
u_xlatu3.xw = u_xlatu4.yx;
u_xlatb14 = u_xlatb8;
}
if((uint(u_xlati14))==uint(0)){
u_xlatu3.x = 0x0u;
}
if((u_xlatu3.x)!=uint(0)){
u_xlat2.y = as_type<float>(int(0x7fffffffu));
u_xlati21 = int(0xffffffffu);
}
} else {
u_xlatu4.y = 0x0u;
u_xlatu3.x = uint(0x0u);
u_xlatu3.w = uint(0x0u);
u_xlati14 = 0x0;
while(true){
u_xlatb8 = u_xlatu3.w>=cbTranslationTableData.numAddedTiles;
u_xlati14 = 0x0;
if(u_xlatb8){break;}
u_xlatu8 = u_xlatu3.w >> 0x1u;
u_xlatu18.x = bitFieldInsert(0x1u, 0x1u, u_xlatu3.w, 0x0u);
u_xlati5.x = int((u_xlatu18.x<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu8)].xz);
u_xlati25 = int(uint(u_xlati5.y) | uint(u_xlati5.x));
u_xlatb25 = u_xlati3.y==u_xlati25;
if(u_xlatb25){
u_xlati18.x = int(u_xlatu18.x) + 0x1;
u_xlatu18.x = uint(u_xlati18.x) + 0xffffffffu;
u_xlati5.x = int((u_xlatu18.x<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu8)].yw);
u_xlatu3.x = uint(u_xlati5.y) | uint(u_xlati5.x);
u_xlati14 = int(0xffffffffu);
break;
}
u_xlatu4.x = u_xlatu3.w + 0x1u;
u_xlatu3.xw = u_xlatu4.yx;
u_xlatb14 = u_xlatb25;
}
if((uint(u_xlati14))==uint(0)){
u_xlatu3.x = 0xffffffffu;
}
u_xlatb14 = int(u_xlatu3.x)!=int(0xffffffffu);
if(u_xlatb14){
u_xlati14 = int(u_xlatu3.x & 0xfffffff0u);
u_xlat2.y = as_type<float>(uint(u_xlati14) | cbTranslationTableData.invLevel);
u_xlati21 = int(0xffffffffu);
} else {
u_xlatb14 = as_type<int>(u_xlat2.y)!=int(0x7fffffffu);
if(u_xlatb14){
u_xlati21 = int(0xffffffffu);
}
u_xlat2.y = as_type<float>(int(0x7fffffffu));
}
}
u_xlati14 = int(as_type<uint>(u_xlat2.z) & 0x80000000u);
if((uint(u_xlati14))!=uint(0)){
u_xlat2.z = as_type<float>(as_type<uint>(u_xlat2.z) & 0x7fffffffu);
u_xlati21 = int(0xffffffffu);
}
u_xlati14 = int(as_type<uint>(u_xlat2.z) & 0xfu);
u_xlatb14 = u_xlati14==int(cbTranslationTableData.invLevel);
if(u_xlatb14){
u_xlatu3.y = 0x0u;
u_xlatu4.x = uint(0x0u);
u_xlatu4.y = uint(0x0u);
u_xlati14 = 0x0;
while(true){
u_xlatb8 = u_xlatu4.y>=cbTranslationTableData.numEvictedTiles;
u_xlati14 = 0x0;
if(u_xlatb8){break;}
u_xlatu8 = u_xlatu4.y >> 0x2u;
u_xlatu24 = u_xlatu4.y & 0x3u;
u_xlati18.x = 0 - int(u_xlatu24);
u_xlati5.xyz = int3(uint3((uint3(u_xlatu24)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati6.y = int(uint(u_xlati18.x) & uint(u_xlati5.y));
u_xlati24 = int(u_xlatu24) + int(0xfffffffdu);
u_xlati6.z = (u_xlati5.y != 0) ? 0x0 : u_xlati24;
u_xlati6.w = int((u_xlati5.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati6.x = u_xlati5.x;
u_xlati5 = int4(uint4(u_xlati6) & cbTranslationTableData.evictedTiles[int(u_xlatu8)]);
u_xlati18.xy = int2(uint2(u_xlati5.yw) | uint2(u_xlati5.xz));
u_xlati8 = int(uint(u_xlati18.y) | uint(u_xlati18.x));
u_xlatb8 = u_xlati3.z==u_xlati8;
if(u_xlatb8){
u_xlatu4.x = 0xffffffffu;
u_xlati14 = int(0xffffffffu);
break;
}
u_xlatu3.x = u_xlatu4.y + 0x1u;
u_xlatu4.xy = u_xlatu3.yx;
u_xlatb14 = u_xlatb8;
}
if((uint(u_xlati14))==uint(0)){
u_xlatu4.x = 0x0u;
}
if((u_xlatu4.x)!=uint(0)){
u_xlat2.z = as_type<float>(int(0x7fffffffu));
u_xlati21 = int(0xffffffffu);
}
} else {
u_xlatu3.y = 0x0u;
u_xlatu4.x = uint(0x0u);
u_xlatu4.y = uint(0x0u);
u_xlati14 = 0x0;
while(true){
u_xlatb8 = u_xlatu4.y>=cbTranslationTableData.numAddedTiles;
u_xlati14 = 0x0;
if(u_xlatb8){break;}
u_xlatu8 = u_xlatu4.y >> 0x1u;
u_xlatu24 = bitFieldInsert(0x1u, 0x1u, u_xlatu4.y, 0x0u);
u_xlati5.x = int((u_xlatu24<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati18.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu8)].xz);
u_xlati18.x = int(uint(u_xlati18.y) | uint(u_xlati18.x));
u_xlatb18 = u_xlati3.z==u_xlati18.x;
if(u_xlatb18){
u_xlati24 = int(u_xlatu24) + 0x1;
u_xlatu24 = uint(u_xlati24) + 0xffffffffu;
u_xlati5.x = int((u_xlatu24<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu8)].yw);
u_xlatu4.x = uint(u_xlati5.y) | uint(u_xlati5.x);
u_xlati14 = int(0xffffffffu);
break;
}
u_xlatu3.x = u_xlatu4.y + 0x1u;
u_xlatu4.xy = u_xlatu3.yx;
u_xlatb14 = u_xlatb18;
}
if((uint(u_xlati14))==uint(0)){
u_xlatu4.x = 0xffffffffu;
}
u_xlatb14 = int(u_xlatu4.x)!=int(0xffffffffu);
if(u_xlatb14){
u_xlati14 = int(u_xlatu4.x & 0xfffffff0u);
u_xlat2.z = as_type<float>(uint(u_xlati14) | cbTranslationTableData.invLevel);
u_xlati21 = int(0xffffffffu);
} else {
u_xlatb14 = as_type<int>(u_xlat2.z)!=int(0x7fffffffu);
if(u_xlatb14){
u_xlati21 = int(0xffffffffu);
}
u_xlat2.z = as_type<float>(int(0x7fffffffu));
}
}
if((uint(u_xlati21))!=uint(0)){
_output_buf[(u_xlati1.z >> 2)] = as_type<uint>(u_xlat2.x);
_output_buf[(u_xlati22 >> 2)] = as_type<uint>(u_xlat2.y);
_output_buf[(u_xlati1.x >> 2)] = as_type<uint>(u_xlat2.z);
u_xlat2.w = as_type<float>(int(0x7fffffffu));
translationTable.write(u_xlat2, u_xlatu0.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿ'þÊ­Þ #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
int u_xlati0;
uint4 u_xlatu1;
float u_xlat2;
int u_xlati2;
uint u_xlatu2;
bool u_xlatb2;
float4 u_xlat3;
int u_xlati4;
float u_xlat5;
int u_xlati5;
float u_xlat7;
int u_xlati7;
int u_xlati9;
bool u_xlatb9;
int u_xlati10;
uint2 u_xlatu10;
bool u_xlatb10;
int u_xlati12;
bool2 u_xlatb12;
bool u_xlatb14;
float u_xlat15;
int u_xlati15;
int u_xlati17;
u_xlati0 = int(cbTranslationTableData.height) * int(cbTranslationTableData.width);
u_xlati5 = u_xlati0 >> 0x2;
u_xlatu1 = mtl_ThreadGroupID.xyyy * uint4(0x20u, 0x20u, 0x20u, 0x20u) + mtl_ThreadIDInGroup.xyyy;
u_xlatu10.xy = u_xlatu1.xw >> uint2(0x1u, 0x1u);
u_xlatu2 = cbTranslationTableData.width >> 0x1u;
u_xlati10 = int(u_xlatu10.y) * int(u_xlatu2) + int(u_xlatu10.x);
u_xlati10 = u_xlati10 + int(cbTranslationTableData.bufferOffsetLevelAbove);
u_xlati15 = u_xlati10 << 0x2;
u_xlat15 = as_type<float>(_output_buf[(u_xlati15 >> 2) + 0]);
u_xlati2 = u_xlati10 + u_xlati5;
u_xlati2 = u_xlati2 << 0x2;
u_xlat2 = as_type<float>(_output_buf[(u_xlati2 >> 2) + 0]);
u_xlati7 = u_xlati5 << 0x1;
u_xlati7 = u_xlati10 + u_xlati7;
u_xlati7 = u_xlati7 << 0x2;
u_xlat7 = as_type<float>(_output_buf[(u_xlati7 >> 2) + 0]);
u_xlati5 = u_xlati5 * 0x3 + u_xlati10;
u_xlati5 = u_xlati5 << 0x2;
u_xlat5 = as_type<float>(_output_buf[(u_xlati5 >> 2) + 0]);
u_xlatb12.xy = (u_xlatu1.xw>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb10 = u_xlatb12.y || u_xlatb12.x;
if(u_xlatb10){
return;
}
u_xlati10 = int(u_xlatu1.w) * int(cbTranslationTableData.width) + int(u_xlatu1.x);
u_xlati10 = u_xlati10 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati12 = u_xlati10 << 0x2;
u_xlat3.x = as_type<float>(_output_buf[(u_xlati12 >> 2) + 0]);
u_xlati17 = int(cbTranslationTableData.width) * int(cbTranslationTableData.height) + u_xlati10;
u_xlati17 = u_xlati17 << 0x2;
u_xlat3.y = as_type<float>(_output_buf[(u_xlati17 >> 2) + 0]);
u_xlati4 = u_xlati0 << 0x1;
u_xlati4 = u_xlati10 + u_xlati4;
u_xlati4 = u_xlati4 << 0x2;
u_xlat3.z = as_type<float>(_output_buf[(u_xlati4 >> 2) + 0]);
u_xlati0 = u_xlati0 * 0x3 + u_xlati10;
u_xlati0 = u_xlati0 << 0x2;
u_xlat3.w = as_type<float>(_output_buf[(u_xlati0 >> 2) + 0]);
u_xlati10 = int(as_type<uint>(u_xlat3.x) & 0x80000000u);
if((uint(u_xlati10))!=uint(0)){
u_xlat3.x = as_type<float>(as_type<uint>(u_xlat3.x) & 0x7fffffffu);
}
u_xlati9 = int(as_type<uint>(u_xlat3.x) & 0xfu);
u_xlatb9 = u_xlati9!=int(cbTranslationTableData.invLevel);
u_xlatb14 = as_type<int>(u_xlat15)!=as_type<int>(u_xlat3.x);
u_xlatb9 = u_xlatb14 && u_xlatb9;
if(u_xlatb9){
u_xlat3.x = u_xlat15;
u_xlati15 = int(0xffffffffu);
} else {
u_xlati15 = int((u_xlati10!=0x0) ? 0xFFFFFFFFu : uint(0));
}
u_xlati10 = int(as_type<uint>(u_xlat3.y) & 0x80000000u);
if((uint(u_xlati10))!=uint(0)){
u_xlat3.y = as_type<float>(as_type<uint>(u_xlat3.y) & 0x7fffffffu);
u_xlati15 = int(0xffffffffu);
}
u_xlati10 = int(as_type<uint>(u_xlat3.y) & 0xfu);
u_xlatb10 = u_xlati10!=int(cbTranslationTableData.invLevel);
u_xlatb9 = as_type<int>(u_xlat2)!=as_type<int>(u_xlat3.y);
u_xlatb10 = u_xlatb10 && u_xlatb9;
if(u_xlatb10){
u_xlat3.y = u_xlat2;
u_xlati15 = int(0xffffffffu);
}
u_xlati10 = int(as_type<uint>(u_xlat3.z) & 0x80000000u);
if((uint(u_xlati10))!=uint(0)){
u_xlat3.z = as_type<float>(as_type<uint>(u_xlat3.z) & 0x7fffffffu);
u_xlati15 = int(0xffffffffu);
}
u_xlati10 = int(as_type<uint>(u_xlat3.z) & 0xfu);
u_xlatb10 = u_xlati10!=int(cbTranslationTableData.invLevel);
u_xlatb2 = as_type<int>(u_xlat7)!=as_type<int>(u_xlat3.z);
u_xlatb10 = u_xlatb10 && u_xlatb2;
if(u_xlatb10){
u_xlat3.z = u_xlat7;
u_xlati15 = int(0xffffffffu);
}
u_xlati10 = int(as_type<uint>(u_xlat3.w) & 0x80000000u);
if((uint(u_xlati10))!=uint(0)){
u_xlat3.w = as_type<float>(as_type<uint>(u_xlat3.w) & 0x7fffffffu);
u_xlati15 = int(0xffffffffu);
}
u_xlati10 = int(as_type<uint>(u_xlat3.w) & 0xfu);
u_xlatb10 = u_xlati10!=int(cbTranslationTableData.invLevel);
u_xlatb2 = as_type<int>(u_xlat5)!=as_type<int>(u_xlat3.w);
u_xlatb10 = u_xlatb10 && u_xlatb2;
if(u_xlatb10){
u_xlat3.w = u_xlat5;
u_xlati15 = int(0xffffffffu);
}
if((uint(u_xlati15))!=uint(0)){
_output_buf[(u_xlati12 >> 2)] = as_type<uint>(u_xlat3.x);
_output_buf[(u_xlati17 >> 2)] = as_type<uint>(u_xlat3.y);
_output_buf[(u_xlati4 >> 2)] = as_type<uint>(u_xlat3.z);
_output_buf[(u_xlati0 >> 2)] = as_type<uint>(u_xlat3.w);
translationTable.write(u_xlat3, u_xlatu1.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿ
lookupTextureÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿ³OþÊ­Þ #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
template <typename UVecType> UVecType bitFieldInsert(const UVecType width, const UVecType offset, const UVecType src2, const UVecType src3)
{
UVecType bitmask = (((UVecType(1) << width)-1) << offset) & 0xffffffff;
return ((src2 << offset) & bitmask) | (src3 & ~bitmask);
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
texture2d<uint, access::sample > lookupTexture [[ texture(0) ]] ,
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
int u_xlati0;
uint4 u_xlatu1;
float u_xlat2;
int u_xlati2;
uint2 u_xlatu2;
bool u_xlatb2;
float4 u_xlat3;
int u_xlati4;
int4 u_xlati5;
uint2 u_xlatu5;
int4 u_xlati6;
uint2 u_xlatu6;
int4 u_xlati7;
int4 u_xlati8;
float u_xlat9;
int u_xlati9;
float u_xlat11;
int u_xlati11;
int3 u_xlati13;
uint2 u_xlatu13;
bool u_xlatb13;
int u_xlati18;
uint2 u_xlatu18;
bool u_xlatb18;
int u_xlati19;
int u_xlati20;
bool2 u_xlatb20;
int2 u_xlati22;
uint u_xlatu22;
bool u_xlatb22;
int2 u_xlati24;
bool u_xlatb24;
float u_xlat27;
int u_xlati27;
bool u_xlatb27;
int u_xlati28;
uint u_xlatu28;
bool u_xlatb28;
int u_xlati29;
int u_xlati31;
uint u_xlatu31;
bool u_xlatb31;
u_xlati0 = int(cbTranslationTableData.height) * int(cbTranslationTableData.width);
u_xlati9 = u_xlati0 >> 0x2;
u_xlatu1.xy = mtl_ThreadGroupID.xy * uint2(0x20u, 0x20u) + mtl_ThreadIDInGroup.xy;
u_xlatu18.xy = u_xlatu1.xy >> uint2(0x1u, 0x1u);
u_xlatu2.x = cbTranslationTableData.width >> 0x1u;
u_xlati18 = int(u_xlatu18.y) * int(u_xlatu2.x) + int(u_xlatu18.x);
u_xlati18 = u_xlati18 + int(cbTranslationTableData.bufferOffsetLevelAbove);
u_xlati27 = u_xlati18 << 0x2;
u_xlat27 = as_type<float>(_output_buf[(u_xlati27 >> 2) + 0]);
u_xlati2 = u_xlati18 + u_xlati9;
u_xlati2 = u_xlati2 << 0x2;
u_xlat2 = as_type<float>(_output_buf[(u_xlati2 >> 2) + 0]);
u_xlati11 = u_xlati9 << 0x1;
u_xlati11 = u_xlati18 + u_xlati11;
u_xlati11 = u_xlati11 << 0x2;
u_xlat11 = as_type<float>(_output_buf[(u_xlati11 >> 2) + 0]);
u_xlati9 = u_xlati9 * 0x3 + u_xlati18;
u_xlati9 = u_xlati9 << 0x2;
u_xlat9 = as_type<float>(_output_buf[(u_xlati9 >> 2) + 0]);
u_xlatb20.xy = (u_xlatu1.xy>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb18 = u_xlatb20.y || u_xlatb20.x;
if(u_xlatb18){
return;
}
u_xlati18 = int(u_xlatu1.y) * int(cbTranslationTableData.width) + int(u_xlatu1.x);
u_xlati18 = u_xlati18 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati20 = u_xlati18 << 0x2;
u_xlat3.x = as_type<float>(_output_buf[(u_xlati20 >> 2) + 0]);
u_xlati29 = int(cbTranslationTableData.width) * int(cbTranslationTableData.height) + u_xlati18;
u_xlati29 = u_xlati29 << 0x2;
u_xlat3.y = as_type<float>(_output_buf[(u_xlati29 >> 2) + 0]);
u_xlati4 = u_xlati0 << 0x1;
u_xlati4 = u_xlati18 + u_xlati4;
u_xlati4 = u_xlati4 << 0x2;
u_xlat3.z = as_type<float>(_output_buf[(u_xlati4 >> 2) + 0]);
u_xlati0 = u_xlati0 * 0x3 + u_xlati18;
u_xlati0 = u_xlati0 << 0x2;
u_xlat3.w = as_type<float>(_output_buf[(u_xlati0 >> 2) + 0]);
u_xlatu1.zw = uint2(cbTranslationTableData.level);
u_xlati5 = int4(lookupTexture.read(u_xlatu1.xy, u_xlatu1.w));
u_xlati18 = int(as_type<uint>(u_xlat3.x) & 0x80000000u);
u_xlati19 = int((u_xlati18!=0x0) ? 0xFFFFFFFFu : uint(0));
if((uint(u_xlati18))!=uint(0)){
u_xlat3.x = as_type<float>(as_type<uint>(u_xlat3.x) & 0x7fffffffu);
}
u_xlati18 = int(as_type<uint>(u_xlat3.x) & 0xfu);
u_xlatb18 = u_xlati18==int(cbTranslationTableData.invLevel);
if(u_xlatb18){
u_xlatu6.y = 0x0u;
u_xlatu13.x = uint(0x0u);
u_xlatu13.y = uint(0x0u);
u_xlati18 = 0x0;
while(true){
u_xlatb28 = u_xlatu13.y>=cbTranslationTableData.numEvictedTiles;
u_xlati18 = 0x0;
if(u_xlatb28){break;}
u_xlatu28 = u_xlatu13.y >> 0x2u;
u_xlatu31 = u_xlatu13.y & 0x3u;
u_xlati24.x = 0 - int(u_xlatu31);
u_xlati7.xyz = int3(uint3((uint3(u_xlatu31)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati8.y = int(uint(u_xlati24.x) & uint(u_xlati7.y));
u_xlati31 = int(u_xlatu31) + int(0xfffffffdu);
u_xlati8.z = (u_xlati7.y != 0) ? 0x0 : u_xlati31;
u_xlati8.w = int((u_xlati7.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati8.x = u_xlati7.x;
u_xlati7 = int4(uint4(u_xlati8) & cbTranslationTableData.evictedTiles[int(u_xlatu28)]);
u_xlati24.xy = int2(uint2(u_xlati7.yw) | uint2(u_xlati7.xz));
u_xlati28 = int(uint(u_xlati24.y) | uint(u_xlati24.x));
u_xlatb28 = u_xlati5.x==u_xlati28;
if(u_xlatb28){
u_xlatu13.x = 0xffffffffu;
u_xlati18 = int(0xffffffffu);
break;
}
u_xlatu6.x = u_xlatu13.y + 0x1u;
u_xlatu13.xy = u_xlatu6.yx;
u_xlatb18 = u_xlatb28;
}
if((uint(u_xlati18))==uint(0)){
u_xlatu13.x = 0x0u;
}
if((u_xlatu13.x)!=uint(0)){
u_xlat3.x = u_xlat27;
u_xlati19 = int(0xffffffffu);
}
} else {
u_xlatu6.y = 0x0u;
u_xlatu13.x = uint(0x0u);
u_xlatu13.y = uint(0x0u);
u_xlati18 = 0x0;
while(true){
u_xlatb28 = u_xlatu13.y>=cbTranslationTableData.numAddedTiles;
u_xlati18 = 0x0;
if(u_xlatb28){break;}
u_xlatu28 = u_xlatu13.y >> 0x1u;
u_xlatu31 = bitFieldInsert(0x1u, 0x1u, u_xlatu13.y, 0x0u);
u_xlati7.x = int((u_xlatu31<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati7.y = int((u_xlati7.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati24.xy = int2(uint2(u_xlati7.xy) & cbTranslationTableData.addedTiles[int(u_xlatu28)].xz);
u_xlati24.x = int(uint(u_xlati24.y) | uint(u_xlati24.x));
u_xlatb24 = u_xlati5.x==u_xlati24.x;
if(u_xlatb24){
u_xlati31 = int(u_xlatu31) + 0x1;
u_xlatu31 = uint(u_xlati31) + 0xffffffffu;
u_xlati7.x = int((u_xlatu31<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati7.y = int((u_xlati7.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati7.xy = int2(uint2(u_xlati7.xy) & cbTranslationTableData.addedTiles[int(u_xlatu28)].yw);
u_xlatu13.x = uint(u_xlati7.y) | uint(u_xlati7.x);
u_xlati18 = int(0xffffffffu);
break;
}
u_xlatu6.x = u_xlatu13.y + 0x1u;
u_xlatu13.xy = u_xlatu6.yx;
u_xlatb18 = u_xlatb24;
}
if((uint(u_xlati18))==uint(0)){
u_xlatu13.x = 0xffffffffu;
}
u_xlatb18 = int(u_xlatu13.x)!=int(0xffffffffu);
if(u_xlatb18){
u_xlati18 = int(u_xlatu13.x & 0xfffffff0u);
u_xlat3.x = as_type<float>(uint(u_xlati18) | cbTranslationTableData.invLevel);
u_xlati19 = int(0xffffffffu);
} else {
u_xlatb18 = as_type<int>(u_xlat27)!=as_type<int>(u_xlat3.x);
if(u_xlatb18){
u_xlat3.x = u_xlat27;
u_xlati19 = int(0xffffffffu);
}
}
}
u_xlati18 = int(as_type<uint>(u_xlat3.y) & 0x80000000u);
if((uint(u_xlati18))!=uint(0)){
u_xlat3.y = as_type<float>(as_type<uint>(u_xlat3.y) & 0x7fffffffu);
u_xlati19 = int(0xffffffffu);
}
u_xlati18 = int(as_type<uint>(u_xlat3.y) & 0xfu);
u_xlatb18 = u_xlati18==int(cbTranslationTableData.invLevel);
if(u_xlatb18){
u_xlatu6.y = 0x0u;
u_xlatu18.x = uint(0x0u);
u_xlatu18.y = uint(0x0u);
u_xlati28 = 0x0;
while(true){
u_xlatb13 = u_xlatu18.y>=cbTranslationTableData.numEvictedTiles;
u_xlati28 = 0x0;
if(u_xlatb13){break;}
u_xlatu13.x = u_xlatu18.y >> 0x2u;
u_xlatu22 = u_xlatu18.y & 0x3u;
u_xlati31 = 0 - int(u_xlatu22);
u_xlati7.xyz = int3(uint3((uint3(u_xlatu22)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati8.y = int(uint(u_xlati31) & uint(u_xlati7.y));
u_xlati22.x = int(u_xlatu22) + int(0xfffffffdu);
u_xlati8.z = (u_xlati7.y != 0) ? 0x0 : u_xlati22.x;
u_xlati8.w = int((u_xlati7.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati8.x = u_xlati7.x;
u_xlati7 = int4(uint4(u_xlati8) & cbTranslationTableData.evictedTiles[int(u_xlatu13.x)]);
u_xlati13.xy = int2(uint2(u_xlati7.yw) | uint2(u_xlati7.xz));
u_xlati13.x = int(uint(u_xlati13.y) | uint(u_xlati13.x));
u_xlatb13 = u_xlati5.y==u_xlati13.x;
if(u_xlatb13){
u_xlatu18.x = 0xffffffffu;
u_xlati28 = int(0xffffffffu);
break;
}
u_xlatu6.x = u_xlatu18.y + 0x1u;
u_xlatu18.xy = u_xlatu6.yx;
u_xlatb28 = u_xlatb13;
}
if((uint(u_xlati28))==uint(0)){
u_xlatu18.x = 0x0u;
}
if((u_xlatu18.x)!=uint(0)){
u_xlat3.y = u_xlat2;
u_xlati19 = int(0xffffffffu);
}
} else {
u_xlatu6.y = 0x0u;
u_xlatu18.x = uint(0x0u);
u_xlatu18.y = uint(0x0u);
u_xlati28 = 0x0;
while(true){
u_xlatb13 = u_xlatu18.y>=cbTranslationTableData.numAddedTiles;
u_xlati28 = 0x0;
if(u_xlatb13){break;}
u_xlatu13.x = u_xlatu18.y >> 0x1u;
u_xlatu22 = bitFieldInsert(0x1u, 0x1u, u_xlatu18.y, 0x0u);
u_xlati7.x = int((u_xlatu22<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati7.y = int((u_xlati7.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati24.xy = int2(uint2(u_xlati7.xy) & cbTranslationTableData.addedTiles[int(u_xlatu13.x)].xz);
u_xlati31 = int(uint(u_xlati24.y) | uint(u_xlati24.x));
u_xlatb31 = u_xlati5.y==u_xlati31;
if(u_xlatb31){
u_xlati22.x = int(u_xlatu22) + 0x1;
u_xlatu22 = uint(u_xlati22.x) + 0xffffffffu;
u_xlati7.x = int((u_xlatu22<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati7.y = int((u_xlati7.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati13.xy = int2(uint2(u_xlati7.xy) & cbTranslationTableData.addedTiles[int(u_xlatu13.x)].yw);
u_xlatu18.x = uint(u_xlati13.y) | uint(u_xlati13.x);
u_xlati28 = int(0xffffffffu);
break;
}
u_xlatu6.x = u_xlatu18.y + 0x1u;
u_xlatu18.xy = u_xlatu6.yx;
u_xlatb28 = u_xlatb31;
}
if((uint(u_xlati28))==uint(0)){
u_xlatu18.x = 0xffffffffu;
}
u_xlatb27 = int(u_xlatu18.x)!=int(0xffffffffu);
if(u_xlatb27){
u_xlati18 = int(u_xlatu18.x & 0xfffffff0u);
u_xlat3.y = as_type<float>(uint(u_xlati18) | cbTranslationTableData.invLevel);
u_xlati19 = int(0xffffffffu);
} else {
u_xlatb18 = as_type<int>(u_xlat2)!=as_type<int>(u_xlat3.y);
if(u_xlatb18){
u_xlat3.y = u_xlat2;
u_xlati19 = int(0xffffffffu);
}
}
}
u_xlati18 = int(as_type<uint>(u_xlat3.z) & 0x80000000u);
if((uint(u_xlati18))!=uint(0)){
u_xlat3.z = as_type<float>(as_type<uint>(u_xlat3.z) & 0x7fffffffu);
u_xlati19 = int(0xffffffffu);
}
u_xlati18 = int(as_type<uint>(u_xlat3.z) & 0xfu);
u_xlatb18 = u_xlati18==int(cbTranslationTableData.invLevel);
if(u_xlatb18){
u_xlatu5.y = 0x0u;
u_xlatu18.x = uint(0x0u);
u_xlatu18.y = uint(0x0u);
u_xlati28 = 0x0;
while(true){
u_xlatb2 = u_xlatu18.y>=cbTranslationTableData.numEvictedTiles;
u_xlati28 = 0x0;
if(u_xlatb2){break;}
u_xlatu2.x = u_xlatu18.y >> 0x2u;
u_xlatu13.x = u_xlatu18.y & 0x3u;
u_xlati22.x = 0 - int(u_xlatu13.x);
u_xlati6.xyz = int3(uint3((u_xlatu13.xxx<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati7.y = int(uint(u_xlati22.x) & uint(u_xlati6.y));
u_xlati13.x = int(u_xlatu13.x) + int(0xfffffffdu);
u_xlati7.z = (u_xlati6.y != 0) ? 0x0 : u_xlati13.x;
u_xlati7.w = int((u_xlati6.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati7.x = u_xlati6.x;
u_xlati6 = int4(uint4(u_xlati7) & cbTranslationTableData.evictedTiles[int(u_xlatu2.x)]);
u_xlati13.xy = int2(uint2(u_xlati6.yw) | uint2(u_xlati6.xz));
u_xlati2 = int(uint(u_xlati13.y) | uint(u_xlati13.x));
u_xlatb2 = u_xlati5.z==u_xlati2;
if(u_xlatb2){
u_xlatu18.x = 0xffffffffu;
u_xlati28 = int(0xffffffffu);
break;
}
u_xlatu5.x = u_xlatu18.y + 0x1u;
u_xlatu18.xy = u_xlatu5.yx;
u_xlatb28 = u_xlatb2;
}
if((uint(u_xlati28))==uint(0)){
u_xlatu18.x = 0x0u;
}
if((u_xlatu18.x)!=uint(0)){
u_xlat3.z = u_xlat11;
u_xlati19 = int(0xffffffffu);
}
} else {
u_xlatu5.y = 0x0u;
u_xlatu18.x = uint(0x0u);
u_xlatu18.y = uint(0x0u);
u_xlati28 = 0x0;
while(true){
u_xlatb2 = u_xlatu18.y>=cbTranslationTableData.numAddedTiles;
u_xlati28 = 0x0;
if(u_xlatb2){break;}
u_xlatu2.x = u_xlatu18.y >> 0x1u;
u_xlatu13.x = bitFieldInsert(0x1u, 0x1u, u_xlatu18.y, 0x0u);
u_xlati6.x = int((u_xlatu13.x<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati6.y = int((u_xlati6.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati22.xy = int2(uint2(u_xlati6.xy) & cbTranslationTableData.addedTiles[int(u_xlatu2.x)].xz);
u_xlati22.x = int(uint(u_xlati22.y) | uint(u_xlati22.x));
u_xlatb22 = u_xlati5.z==u_xlati22.x;
if(u_xlatb22){
u_xlati13.x = int(u_xlatu13.x) + 0x1;
u_xlatu13.x = uint(u_xlati13.x) + 0xffffffffu;
u_xlati6.x = int((u_xlatu13.x<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati6.y = int((u_xlati6.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati13.xz = int2(uint2(u_xlati6.xy) & cbTranslationTableData.addedTiles[int(u_xlatu2.x)].yw);
u_xlatu18.x = uint(u_xlati13.z) | uint(u_xlati13.x);
u_xlati28 = int(0xffffffffu);
break;
}
u_xlatu5.x = u_xlatu18.y + 0x1u;
u_xlatu18.xy = u_xlatu5.yx;
u_xlatb28 = u_xlatb22;
}
if((uint(u_xlati28))==uint(0)){
u_xlatu18.x = 0xffffffffu;
}
u_xlatb27 = int(u_xlatu18.x)!=int(0xffffffffu);
if(u_xlatb27){
u_xlati18 = int(u_xlatu18.x & 0xfffffff0u);
u_xlat3.z = as_type<float>(uint(u_xlati18) | cbTranslationTableData.invLevel);
u_xlati19 = int(0xffffffffu);
} else {
u_xlatb18 = as_type<int>(u_xlat11)!=as_type<int>(u_xlat3.z);
if(u_xlatb18){
u_xlat3.z = u_xlat11;
u_xlati19 = int(0xffffffffu);
}
}
}
u_xlati18 = int(as_type<uint>(u_xlat3.w) & 0x80000000u);
if((uint(u_xlati18))!=uint(0)){
u_xlat3.w = as_type<float>(as_type<uint>(u_xlat3.w) & 0x7fffffffu);
u_xlati19 = int(0xffffffffu);
}
u_xlati18 = int(as_type<uint>(u_xlat3.w) & 0xfu);
u_xlatb18 = u_xlati18==int(cbTranslationTableData.invLevel);
if(u_xlatb18){
u_xlatu2.y = 0x0u;
u_xlatu18.x = uint(0x0u);
u_xlatu18.y = uint(0x0u);
u_xlati28 = 0x0;
while(true){
u_xlatb13 = u_xlatu18.y>=cbTranslationTableData.numEvictedTiles;
u_xlati28 = 0x0;
if(u_xlatb13){break;}
u_xlatu13.x = u_xlatu18.y >> 0x2u;
u_xlatu22 = u_xlatu18.y & 0x3u;
u_xlati31 = 0 - int(u_xlatu22);
u_xlati5.xyz = int3(uint3((uint3(u_xlatu22)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati6.y = int(uint(u_xlati31) & uint(u_xlati5.y));
u_xlati22.x = int(u_xlatu22) + int(0xfffffffdu);
u_xlati6.z = (u_xlati5.y != 0) ? 0x0 : u_xlati22.x;
u_xlati6.w = int((u_xlati5.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati6.x = u_xlati5.x;
u_xlati6 = int4(uint4(u_xlati6) & cbTranslationTableData.evictedTiles[int(u_xlatu13.x)]);
u_xlati13.xy = int2(uint2(u_xlati6.yw) | uint2(u_xlati6.xz));
u_xlati13.x = int(uint(u_xlati13.y) | uint(u_xlati13.x));
u_xlatb13 = u_xlati5.w==u_xlati13.x;
if(u_xlatb13){
u_xlatu18.x = 0xffffffffu;
u_xlati28 = int(0xffffffffu);
break;
}
u_xlatu2.x = u_xlatu18.y + 0x1u;
u_xlatu18.xy = u_xlatu2.yx;
u_xlatb28 = u_xlatb13;
}
if((uint(u_xlati28))==uint(0)){
u_xlatu18.x = 0x0u;
}
if((u_xlatu18.x)!=uint(0)){
u_xlat3.w = u_xlat9;
u_xlati19 = int(0xffffffffu);
}
} else {
u_xlatu2.y = 0x0u;
u_xlatu18.x = uint(0x0u);
u_xlatu18.y = uint(0x0u);
u_xlati28 = 0x0;
while(true){
u_xlatb13 = u_xlatu18.y>=cbTranslationTableData.numAddedTiles;
u_xlati28 = 0x0;
if(u_xlatb13){break;}
u_xlatu13.x = u_xlatu18.y >> 0x1u;
u_xlatu22 = bitFieldInsert(0x1u, 0x1u, u_xlatu18.y, 0x0u);
u_xlati5.x = int((u_xlatu22<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu13.x)].xz);
u_xlati31 = int(uint(u_xlati5.y) | uint(u_xlati5.x));
u_xlatb31 = u_xlati5.w==u_xlati31;
if(u_xlatb31){
u_xlati22.x = int(u_xlatu22) + 0x1;
u_xlatu22 = uint(u_xlati22.x) + 0xffffffffu;
u_xlati5.x = int((u_xlatu22<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati13.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu13.x)].yw);
u_xlatu18.x = uint(u_xlati13.y) | uint(u_xlati13.x);
u_xlati28 = int(0xffffffffu);
break;
}
u_xlatu2.x = u_xlatu18.y + 0x1u;
u_xlatu18.xy = u_xlatu2.yx;
u_xlatb28 = u_xlatb31;
}
if((uint(u_xlati28))==uint(0)){
u_xlatu18.x = 0xffffffffu;
}
u_xlatb27 = int(u_xlatu18.x)!=int(0xffffffffu);
if(u_xlatb27){
u_xlati18 = int(u_xlatu18.x & 0xfffffff0u);
u_xlat3.w = as_type<float>(uint(u_xlati18) | cbTranslationTableData.invLevel);
u_xlati19 = int(0xffffffffu);
} else {
u_xlatb18 = as_type<int>(u_xlat9)!=as_type<int>(u_xlat3.w);
if(u_xlatb18){
u_xlat3.w = u_xlat9;
u_xlati19 = int(0xffffffffu);
}
}
}
if((uint(u_xlati19))!=uint(0)){
_output_buf[(u_xlati20 >> 2)] = as_type<uint>(u_xlat3.x);
_output_buf[(u_xlati29 >> 2)] = as_type<uint>(u_xlat3.y);
_output_buf[(u_xlati4 >> 2)] = as_type<uint>(u_xlat3.z);
_output_buf[(u_xlati0 >> 2)] = as_type<uint>(u_xlat3.w);
translationTable.write(u_xlat3, u_xlatu1.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿ?þÊ­Þ #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
uint4 u_xlatu0;
int u_xlati1;
bool2 u_xlatb1;
float4 u_xlat2;
int u_xlati3;
int u_xlati5;
bool u_xlatb5;
int u_xlati7;
bool u_xlatb7;
int u_xlati9;
bool u_xlatb11;
int u_xlati13;
u_xlatu0 = mtl_ThreadGroupID.xyyy * uint4(0x20u, 0x20u, 0x20u, 0x20u) + mtl_ThreadIDInGroup.xyyy;
u_xlatb1.xy = (u_xlatu0.xw>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb1.x = u_xlatb1.y || u_xlatb1.x;
if(u_xlatb1.x){
return;
}
u_xlati1 = int(cbTranslationTableData.height) * int(cbTranslationTableData.width);
u_xlati5 = int(u_xlatu0.w) * int(cbTranslationTableData.width) + int(u_xlatu0.x);
u_xlati5 = u_xlati5 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati9 = u_xlati5 << 0x2;
u_xlat2.x = as_type<float>(_output_buf[(u_xlati9 >> 2) + 0]);
u_xlati13 = int(cbTranslationTableData.width) * int(cbTranslationTableData.height) + u_xlati5;
u_xlati13 = u_xlati13 << 0x2;
u_xlat2.y = as_type<float>(_output_buf[(u_xlati13 >> 2) + 0]);
u_xlati3 = u_xlati1 << 0x1;
u_xlati3 = u_xlati5 + u_xlati3;
u_xlati3 = u_xlati3 << 0x2;
u_xlat2.z = as_type<float>(_output_buf[(u_xlati3 >> 2) + 0]);
u_xlati1 = u_xlati1 * 0x3 + u_xlati5;
u_xlati1 = u_xlati1 << 0x2;
u_xlat2.w = as_type<float>(_output_buf[(u_xlati1 >> 2) + 0]);
u_xlati5 = int(as_type<uint>(u_xlat2.x) & 0x80000000u);
if((uint(u_xlati5))!=uint(0)){
u_xlat2.x = as_type<float>(as_type<uint>(u_xlat2.x) & 0x7fffffffu);
}
u_xlati7 = int(as_type<uint>(u_xlat2.x) & 0xfu);
u_xlatb7 = u_xlati7!=int(cbTranslationTableData.invLevel);
u_xlatb11 = as_type<int>(u_xlat2.x)!=int(0x7fffffffu);
u_xlatb7 = u_xlatb11 && u_xlatb7;
if(u_xlatb7){
u_xlat2.x = as_type<float>(int(0x7fffffffu));
u_xlati7 = int(0xffffffffu);
} else {
u_xlati7 = int((u_xlati5!=0x0) ? 0xFFFFFFFFu : uint(0));
}
u_xlati5 = int(as_type<uint>(u_xlat2.y) & 0x80000000u);
if((uint(u_xlati5))!=uint(0)){
u_xlat2.y = as_type<float>(as_type<uint>(u_xlat2.y) & 0x7fffffffu);
u_xlati7 = int(0xffffffffu);
}
u_xlati5 = int(as_type<uint>(u_xlat2.y) & 0xfu);
u_xlatb5 = u_xlati5!=int(cbTranslationTableData.invLevel);
u_xlatb11 = as_type<int>(u_xlat2.y)!=int(0x7fffffffu);
u_xlatb5 = u_xlatb5 && u_xlatb11;
if(u_xlatb5){
u_xlat2.y = as_type<float>(int(0x7fffffffu));
u_xlati7 = int(0xffffffffu);
}
u_xlati5 = int(as_type<uint>(u_xlat2.z) & 0x80000000u);
if((uint(u_xlati5))!=uint(0)){
u_xlat2.z = as_type<float>(as_type<uint>(u_xlat2.z) & 0x7fffffffu);
u_xlati7 = int(0xffffffffu);
}
u_xlati5 = int(as_type<uint>(u_xlat2.z) & 0xfu);
u_xlatb5 = u_xlati5!=int(cbTranslationTableData.invLevel);
u_xlatb11 = as_type<int>(u_xlat2.z)!=int(0x7fffffffu);
u_xlatb5 = u_xlatb5 && u_xlatb11;
if(u_xlatb5){
u_xlat2.z = as_type<float>(int(0x7fffffffu));
u_xlati7 = int(0xffffffffu);
}
u_xlati5 = int(as_type<uint>(u_xlat2.w) & 0x80000000u);
if((uint(u_xlati5))!=uint(0)){
u_xlat2.w = as_type<float>(as_type<uint>(u_xlat2.w) & 0x7fffffffu);
u_xlati7 = int(0xffffffffu);
}
u_xlati5 = int(as_type<uint>(u_xlat2.w) & 0xfu);
u_xlatb5 = u_xlati5!=int(cbTranslationTableData.invLevel);
u_xlatb11 = as_type<int>(u_xlat2.w)!=int(0x7fffffffu);
u_xlatb5 = u_xlatb5 && u_xlatb11;
if(u_xlatb5){
u_xlat2.w = as_type<float>(int(0x7fffffffu));
u_xlati7 = int(0xffffffffu);
}
if((uint(u_xlati7))!=uint(0)){
_output_buf[(u_xlati9 >> 2)] = as_type<uint>(u_xlat2.x);
_output_buf[(u_xlati13 >> 2)] = as_type<uint>(u_xlat2.y);
_output_buf[(u_xlati3 >> 2)] = as_type<uint>(u_xlat2.z);
_output_buf[(u_xlati1 >> 2)] = as_type<uint>(u_xlat2.w);
translationTable.write(u_xlat2, u_xlatu0.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿ
lookupTextureÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿKþÊ­Þ #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
template <typename UVecType> UVecType bitFieldInsert(const UVecType width, const UVecType offset, const UVecType src2, const UVecType src3)
{
UVecType bitmask = (((UVecType(1) << width)-1) << offset) & 0xffffffff;
return ((src2 << offset) & bitmask) | (src3 & ~bitmask);
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
texture2d<uint, access::sample > lookupTexture [[ texture(0) ]] ,
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
uint4 u_xlatu0;
int u_xlati1;
bool2 u_xlatb1;
float4 u_xlat2;
int u_xlati3;
int4 u_xlati4;
uint2 u_xlatu4;
bool u_xlatb4;
int4 u_xlati5;
uint2 u_xlatu5;
bool u_xlatb5;
int4 u_xlati6;
int4 u_xlati7;
int u_xlati9;
uint u_xlatu9;
bool u_xlatb9;
uint2 u_xlatu11;
int3 u_xlati13;
int u_xlati16;
bool u_xlatb16;
int u_xlati17;
int u_xlati20;
bool u_xlatb20;
int2 u_xlati21;
bool u_xlatb21;
int u_xlati24;
int u_xlati25;
int u_xlati27;
uint u_xlatu27;
u_xlatu0.xy = mtl_ThreadGroupID.xy * uint2(0x20u, 0x20u) + mtl_ThreadIDInGroup.xy;
u_xlatb1.xy = (u_xlatu0.xy>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb1.x = u_xlatb1.y || u_xlatb1.x;
if(u_xlatb1.x){
return;
}
u_xlati1 = int(cbTranslationTableData.height) * int(cbTranslationTableData.width);
u_xlati9 = int(u_xlatu0.y) * int(cbTranslationTableData.width) + int(u_xlatu0.x);
u_xlati9 = u_xlati9 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati17 = u_xlati9 << 0x2;
u_xlat2.x = as_type<float>(_output_buf[(u_xlati17 >> 2) + 0]);
u_xlati25 = int(cbTranslationTableData.width) * int(cbTranslationTableData.height) + u_xlati9;
u_xlati25 = u_xlati25 << 0x2;
u_xlat2.y = as_type<float>(_output_buf[(u_xlati25 >> 2) + 0]);
u_xlati3 = u_xlati1 << 0x1;
u_xlati3 = u_xlati9 + u_xlati3;
u_xlati3 = u_xlati3 << 0x2;
u_xlat2.z = as_type<float>(_output_buf[(u_xlati3 >> 2) + 0]);
u_xlati1 = u_xlati1 * 0x3 + u_xlati9;
u_xlati1 = u_xlati1 << 0x2;
u_xlat2.w = as_type<float>(_output_buf[(u_xlati1 >> 2) + 0]);
u_xlatu0.zw = uint2(cbTranslationTableData.level);
u_xlati4 = int4(lookupTexture.read(u_xlatu0.xy, u_xlatu0.w));
u_xlati16 = int(as_type<uint>(u_xlat2.x) & 0x80000000u);
u_xlati24 = int((u_xlati16!=0x0) ? 0xFFFFFFFFu : uint(0));
if((uint(u_xlati16))!=uint(0)){
u_xlat2.x = as_type<float>(as_type<uint>(u_xlat2.x) & 0x7fffffffu);
}
u_xlati16 = int(as_type<uint>(u_xlat2.x) & 0xfu);
u_xlatb16 = u_xlati16==int(cbTranslationTableData.invLevel);
if(u_xlatb16){
u_xlatu5.y = 0x0u;
u_xlatu11.x = uint(0x0u);
u_xlatu11.y = uint(0x0u);
u_xlati16 = 0x0;
while(true){
u_xlatb9 = u_xlatu11.y>=cbTranslationTableData.numEvictedTiles;
u_xlati16 = 0x0;
if(u_xlatb9){break;}
u_xlatu9 = u_xlatu11.y >> 0x2u;
u_xlatu27 = u_xlatu11.y & 0x3u;
u_xlati21.x = 0 - int(u_xlatu27);
u_xlati6.xyz = int3(uint3((uint3(u_xlatu27)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati7.y = int(uint(u_xlati21.x) & uint(u_xlati6.y));
u_xlati27 = int(u_xlatu27) + int(0xfffffffdu);
u_xlati7.z = (u_xlati6.y != 0) ? 0x0 : u_xlati27;
u_xlati7.w = int((u_xlati6.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati7.x = u_xlati6.x;
u_xlati6 = int4(uint4(u_xlati7) & cbTranslationTableData.evictedTiles[int(u_xlatu9)]);
u_xlati21.xy = int2(uint2(u_xlati6.yw) | uint2(u_xlati6.xz));
u_xlati9 = int(uint(u_xlati21.y) | uint(u_xlati21.x));
u_xlatb9 = u_xlati4.x==u_xlati9;
if(u_xlatb9){
u_xlatu11.x = 0xffffffffu;
u_xlati16 = int(0xffffffffu);
break;
}
u_xlatu5.x = u_xlatu11.y + 0x1u;
u_xlatu11.xy = u_xlatu5.yx;
u_xlatb16 = u_xlatb9;
}
if((uint(u_xlati16))==uint(0)){
u_xlatu11.x = 0x0u;
}
if((u_xlatu11.x)!=uint(0)){
u_xlat2.x = as_type<float>(int(0x7fffffffu));
u_xlati24 = int(0xffffffffu);
}
} else {
u_xlatu5.y = 0x0u;
u_xlatu11.x = uint(0x0u);
u_xlatu11.y = uint(0x0u);
u_xlati16 = 0x0;
while(true){
u_xlatb9 = u_xlatu11.y>=cbTranslationTableData.numAddedTiles;
u_xlati16 = 0x0;
if(u_xlatb9){break;}
u_xlatu9 = u_xlatu11.y >> 0x1u;
u_xlatu27 = bitFieldInsert(0x1u, 0x1u, u_xlatu11.y, 0x0u);
u_xlati6.x = int((u_xlatu27<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati6.y = int((u_xlati6.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati21.xy = int2(uint2(u_xlati6.xy) & cbTranslationTableData.addedTiles[int(u_xlatu9)].xz);
u_xlati21.x = int(uint(u_xlati21.y) | uint(u_xlati21.x));
u_xlatb21 = u_xlati4.x==u_xlati21.x;
if(u_xlatb21){
u_xlati27 = int(u_xlatu27) + 0x1;
u_xlatu27 = uint(u_xlati27) + 0xffffffffu;
u_xlati6.x = int((u_xlatu27<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati6.y = int((u_xlati6.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati6.xy = int2(uint2(u_xlati6.xy) & cbTranslationTableData.addedTiles[int(u_xlatu9)].yw);
u_xlatu11.x = uint(u_xlati6.y) | uint(u_xlati6.x);
u_xlati16 = int(0xffffffffu);
break;
}
u_xlatu5.x = u_xlatu11.y + 0x1u;
u_xlatu11.xy = u_xlatu5.yx;
u_xlatb16 = u_xlatb21;
}
if((uint(u_xlati16))==uint(0)){
u_xlatu11.x = 0xffffffffu;
}
u_xlatb16 = int(u_xlatu11.x)!=int(0xffffffffu);
if(u_xlatb16){
u_xlati16 = int(u_xlatu11.x & 0xfffffff0u);
u_xlat2.x = as_type<float>(uint(u_xlati16) | cbTranslationTableData.invLevel);
u_xlati24 = int(0xffffffffu);
} else {
u_xlatb16 = as_type<int>(u_xlat2.x)!=int(0x7fffffffu);
if(u_xlatb16){
u_xlati24 = int(0xffffffffu);
}
u_xlat2.x = as_type<float>(int(0x7fffffffu));
}
}
u_xlati16 = int(as_type<uint>(u_xlat2.y) & 0x80000000u);
if((uint(u_xlati16))!=uint(0)){
u_xlat2.y = as_type<float>(as_type<uint>(u_xlat2.y) & 0x7fffffffu);
u_xlati24 = int(0xffffffffu);
}
u_xlati16 = int(as_type<uint>(u_xlat2.y) & 0xfu);
u_xlatb16 = u_xlati16==int(cbTranslationTableData.invLevel);
if(u_xlatb16){
u_xlatu5.y = 0x0u;
u_xlatu11.x = uint(0x0u);
u_xlatu11.y = uint(0x0u);
u_xlati16 = 0x0;
while(true){
u_xlatb9 = u_xlatu11.y>=cbTranslationTableData.numEvictedTiles;
u_xlati16 = 0x0;
if(u_xlatb9){break;}
u_xlatu9 = u_xlatu11.y >> 0x2u;
u_xlatu27 = u_xlatu11.y & 0x3u;
u_xlati4.x = 0 - int(u_xlatu27);
u_xlati6.xyz = int3(uint3((uint3(u_xlatu27)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati7.y = int(uint(u_xlati4.x) & uint(u_xlati6.y));
u_xlati27 = int(u_xlatu27) + int(0xfffffffdu);
u_xlati7.z = (u_xlati6.y != 0) ? 0x0 : u_xlati27;
u_xlati7.w = int((u_xlati6.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati7.x = u_xlati6.x;
u_xlati6 = int4(uint4(u_xlati7) & cbTranslationTableData.evictedTiles[int(u_xlatu9)]);
u_xlati21.xy = int2(uint2(u_xlati6.yw) | uint2(u_xlati6.xz));
u_xlati9 = int(uint(u_xlati21.y) | uint(u_xlati21.x));
u_xlatb9 = u_xlati4.y==u_xlati9;
if(u_xlatb9){
u_xlatu11.x = 0xffffffffu;
u_xlati16 = int(0xffffffffu);
break;
}
u_xlatu5.x = u_xlatu11.y + 0x1u;
u_xlatu11.xy = u_xlatu5.yx;
u_xlatb16 = u_xlatb9;
}
if((uint(u_xlati16))==uint(0)){
u_xlatu11.x = 0x0u;
}
if((u_xlatu11.x)!=uint(0)){
u_xlat2.y = as_type<float>(int(0x7fffffffu));
u_xlati24 = int(0xffffffffu);
}
} else {
u_xlatu5.y = 0x0u;
u_xlatu11.x = uint(0x0u);
u_xlatu11.y = uint(0x0u);
u_xlati16 = 0x0;
while(true){
u_xlatb9 = u_xlatu11.y>=cbTranslationTableData.numAddedTiles;
u_xlati16 = 0x0;
if(u_xlatb9){break;}
u_xlatu9 = u_xlatu11.y >> 0x1u;
u_xlatu27 = bitFieldInsert(0x1u, 0x1u, u_xlatu11.y, 0x0u);
u_xlati6.x = int((u_xlatu27<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati6.y = int((u_xlati6.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati21.xy = int2(uint2(u_xlati6.xy) & cbTranslationTableData.addedTiles[int(u_xlatu9)].xz);
u_xlati4.x = int(uint(u_xlati21.y) | uint(u_xlati21.x));
u_xlatb4 = u_xlati4.y==u_xlati4.x;
if(u_xlatb4){
u_xlati27 = int(u_xlatu27) + 0x1;
u_xlatu27 = uint(u_xlati27) + 0xffffffffu;
u_xlati6.x = int((u_xlatu27<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati6.y = int((u_xlati6.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati21.xy = int2(uint2(u_xlati6.xy) & cbTranslationTableData.addedTiles[int(u_xlatu9)].yw);
u_xlatu11.x = uint(u_xlati21.y) | uint(u_xlati21.x);
u_xlati16 = int(0xffffffffu);
break;
}
u_xlatu5.x = u_xlatu11.y + 0x1u;
u_xlatu11.xy = u_xlatu5.yx;
u_xlatb16 = u_xlatb4;
}
if((uint(u_xlati16))==uint(0)){
u_xlatu11.x = 0xffffffffu;
}
u_xlatb16 = int(u_xlatu11.x)!=int(0xffffffffu);
if(u_xlatb16){
u_xlati16 = int(u_xlatu11.x & 0xfffffff0u);
u_xlat2.y = as_type<float>(uint(u_xlati16) | cbTranslationTableData.invLevel);
u_xlati24 = int(0xffffffffu);
} else {
u_xlatb16 = as_type<int>(u_xlat2.y)!=int(0x7fffffffu);
if(u_xlatb16){
u_xlati24 = int(0xffffffffu);
}
u_xlat2.y = as_type<float>(int(0x7fffffffu));
}
}
u_xlati16 = int(as_type<uint>(u_xlat2.z) & 0x80000000u);
if((uint(u_xlati16))!=uint(0)){
u_xlat2.z = as_type<float>(as_type<uint>(u_xlat2.z) & 0x7fffffffu);
u_xlati24 = int(0xffffffffu);
}
u_xlati16 = int(as_type<uint>(u_xlat2.z) & 0xfu);
u_xlatb16 = u_xlati16==int(cbTranslationTableData.invLevel);
if(u_xlatb16){
u_xlatu4.y = 0x0u;
u_xlatu11.x = uint(0x0u);
u_xlatu11.y = uint(0x0u);
u_xlati16 = 0x0;
while(true){
u_xlatb9 = u_xlatu11.y>=cbTranslationTableData.numEvictedTiles;
u_xlati16 = 0x0;
if(u_xlatb9){break;}
u_xlatu9 = u_xlatu11.y >> 0x2u;
u_xlatu27 = u_xlatu11.y & 0x3u;
u_xlati5.x = 0 - int(u_xlatu27);
u_xlati13.xyz = int3(uint3((uint3(u_xlatu27)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati6.y = int(uint(u_xlati5.x) & uint(u_xlati13.y));
u_xlati27 = int(u_xlatu27) + int(0xfffffffdu);
u_xlati6.z = (u_xlati13.y != 0) ? 0x0 : u_xlati27;
u_xlati6.w = int((u_xlati13.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati6.x = u_xlati13.x;
u_xlati5 = int4(uint4(u_xlati6) & cbTranslationTableData.evictedTiles[int(u_xlatu9)]);
u_xlati5.xy = int2(uint2(u_xlati5.yw) | uint2(u_xlati5.xz));
u_xlati9 = int(uint(u_xlati5.y) | uint(u_xlati5.x));
u_xlatb9 = u_xlati4.z==u_xlati9;
if(u_xlatb9){
u_xlatu11.x = 0xffffffffu;
u_xlati16 = int(0xffffffffu);
break;
}
u_xlatu4.x = u_xlatu11.y + 0x1u;
u_xlatu11.xy = u_xlatu4.yx;
u_xlatb16 = u_xlatb9;
}
if((uint(u_xlati16))==uint(0)){
u_xlatu11.x = 0x0u;
}
if((u_xlatu11.x)!=uint(0)){
u_xlat2.z = as_type<float>(int(0x7fffffffu));
u_xlati24 = int(0xffffffffu);
}
} else {
u_xlatu4.y = 0x0u;
u_xlatu11.x = uint(0x0u);
u_xlatu11.y = uint(0x0u);
u_xlati16 = 0x0;
while(true){
u_xlatb9 = u_xlatu11.y>=cbTranslationTableData.numAddedTiles;
u_xlati16 = 0x0;
if(u_xlatb9){break;}
u_xlatu9 = u_xlatu11.y >> 0x1u;
u_xlatu27 = bitFieldInsert(0x1u, 0x1u, u_xlatu11.y, 0x0u);
u_xlati5.x = int((u_xlatu27<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu9)].xz);
u_xlati5.x = int(uint(u_xlati5.y) | uint(u_xlati5.x));
u_xlatb5 = u_xlati4.z==u_xlati5.x;
if(u_xlatb5){
u_xlati27 = int(u_xlatu27) + 0x1;
u_xlatu27 = uint(u_xlati27) + 0xffffffffu;
u_xlati6.x = int((u_xlatu27<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati6.y = int((u_xlati6.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati13.xy = int2(uint2(u_xlati6.xy) & cbTranslationTableData.addedTiles[int(u_xlatu9)].yw);
u_xlatu11.x = uint(u_xlati13.y) | uint(u_xlati13.x);
u_xlati16 = int(0xffffffffu);
break;
}
u_xlatu4.x = u_xlatu11.y + 0x1u;
u_xlatu11.xy = u_xlatu4.yx;
u_xlatb16 = u_xlatb5;
}
if((uint(u_xlati16))==uint(0)){
u_xlatu11.x = 0xffffffffu;
}
u_xlatb16 = int(u_xlatu11.x)!=int(0xffffffffu);
if(u_xlatb16){
u_xlati16 = int(u_xlatu11.x & 0xfffffff0u);
u_xlat2.z = as_type<float>(uint(u_xlati16) | cbTranslationTableData.invLevel);
u_xlati24 = int(0xffffffffu);
} else {
u_xlatb16 = as_type<int>(u_xlat2.z)!=int(0x7fffffffu);
if(u_xlatb16){
u_xlati24 = int(0xffffffffu);
}
u_xlat2.z = as_type<float>(int(0x7fffffffu));
}
}
u_xlati16 = int(as_type<uint>(u_xlat2.w) & 0x80000000u);
if((uint(u_xlati16))!=uint(0)){
u_xlat2.w = as_type<float>(as_type<uint>(u_xlat2.w) & 0x7fffffffu);
u_xlati24 = int(0xffffffffu);
}
u_xlati16 = int(as_type<uint>(u_xlat2.w) & 0xfu);
u_xlatb16 = u_xlati16==int(cbTranslationTableData.invLevel);
if(u_xlatb16){
u_xlatu4.y = 0x0u;
u_xlatu11.x = uint(0x0u);
u_xlatu11.y = uint(0x0u);
u_xlati16 = 0x0;
while(true){
u_xlatb9 = u_xlatu11.y>=cbTranslationTableData.numEvictedTiles;
u_xlati16 = 0x0;
if(u_xlatb9){break;}
u_xlatu9 = u_xlatu11.y >> 0x2u;
u_xlatu27 = u_xlatu11.y & 0x3u;
u_xlati20 = 0 - int(u_xlatu27);
u_xlati5.xyz = int3(uint3((uint3(u_xlatu27)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati6.y = int(uint(u_xlati20) & uint(u_xlati5.y));
u_xlati27 = int(u_xlatu27) + int(0xfffffffdu);
u_xlati6.z = (u_xlati5.y != 0) ? 0x0 : u_xlati27;
u_xlati6.w = int((u_xlati5.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati6.x = u_xlati5.x;
u_xlati5 = int4(uint4(u_xlati6) & cbTranslationTableData.evictedTiles[int(u_xlatu9)]);
u_xlati5.xy = int2(uint2(u_xlati5.yw) | uint2(u_xlati5.xz));
u_xlati9 = int(uint(u_xlati5.y) | uint(u_xlati5.x));
u_xlatb9 = u_xlati4.w==u_xlati9;
if(u_xlatb9){
u_xlatu11.x = 0xffffffffu;
u_xlati16 = int(0xffffffffu);
break;
}
u_xlatu4.x = u_xlatu11.y + 0x1u;
u_xlatu11.xy = u_xlatu4.yx;
u_xlatb16 = u_xlatb9;
}
if((uint(u_xlati16))==uint(0)){
u_xlatu11.x = 0x0u;
}
if((u_xlatu11.x)!=uint(0)){
u_xlat2.w = as_type<float>(int(0x7fffffffu));
u_xlati24 = int(0xffffffffu);
}
} else {
u_xlatu4.y = 0x0u;
u_xlatu11.x = uint(0x0u);
u_xlatu11.y = uint(0x0u);
u_xlati16 = 0x0;
while(true){
u_xlatb9 = u_xlatu11.y>=cbTranslationTableData.numAddedTiles;
u_xlati16 = 0x0;
if(u_xlatb9){break;}
u_xlatu9 = u_xlatu11.y >> 0x1u;
u_xlatu27 = bitFieldInsert(0x1u, 0x1u, u_xlatu11.y, 0x0u);
u_xlati5.x = int((u_xlatu27<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu9)].xz);
u_xlati20 = int(uint(u_xlati5.y) | uint(u_xlati5.x));
u_xlatb20 = u_xlati4.w==u_xlati20;
if(u_xlatb20){
u_xlati27 = int(u_xlatu27) + 0x1;
u_xlatu27 = uint(u_xlati27) + 0xffffffffu;
u_xlati5.x = int((u_xlatu27<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu9)].yw);
u_xlatu11.x = uint(u_xlati5.y) | uint(u_xlati5.x);
u_xlati16 = int(0xffffffffu);
break;
}
u_xlatu4.x = u_xlatu11.y + 0x1u;
u_xlatu11.xy = u_xlatu4.yx;
u_xlatb16 = u_xlatb20;
}
if((uint(u_xlati16))==uint(0)){
u_xlatu11.x = 0xffffffffu;
}
u_xlatb16 = int(u_xlatu11.x)!=int(0xffffffffu);
if(u_xlatb16){
u_xlati16 = int(u_xlatu11.x & 0xfffffff0u);
u_xlat2.w = as_type<float>(uint(u_xlati16) | cbTranslationTableData.invLevel);
u_xlati24 = int(0xffffffffu);
} else {
u_xlatb16 = as_type<int>(u_xlat2.w)!=int(0x7fffffffu);
if(u_xlatb16){
u_xlati24 = int(0xffffffffu);
}
u_xlat2.w = as_type<float>(int(0x7fffffffu));
}
}
if((uint(u_xlati24))!=uint(0)){
_output_buf[(u_xlati17 >> 2)] = as_type<uint>(u_xlat2.x);
_output_buf[(u_xlati25 >> 2)] = as_type<uint>(u_xlat2.y);
_output_buf[(u_xlati3 >> 2)] = as_type<uint>(u_xlat2.z);
_output_buf[(u_xlati1 >> 2)] = as_type<uint>(u_xlat2.w);
translationTable.write(u_xlat2, u_xlatu0.xy);
}
return;
}
 @cbTranslationTableData 
levelinvLevelwidthheight bufferOffsetLevelbufferOffsetLevelAbovenumEvictedTiles
numAddedTiles
addedTiles  evictedTiles SoftUU UU




  !!!!!!  
 "$&()*+,------,+*)(&$" 
  #&),.035689:;<<<<;:986530.,)&#  
!%),/369<?BDFHIJKLLLLKJIHFDB?<963/,)%!
  $)-159=AEILORUWY[\^^^^^^\[YWUROLIEA=951-)$   "'+05:?DIMRVZ^aegjlmoppqqppomljgea^ZVRMID?:50+'"  #(-28>DJOTY^chlptwz|‚„„„„„„‚|zwtplhc^YTOJD>82-(# 
"'-3:@GNTZ`flqv{ƒ‡Š’”•–—˜˜—–•”’Їƒ{vqlf`ZTNG@:3-'"
 !&-3:BHPW^dksx~„‰’–™ £¥¦¨©ªªªª©¨¦¥£ ™–’‰„~xskd^WPHB:3-&! 
%+29AHPX`gov~…‹‘–œ ¤¨¬¯²´¶·¹º»»»»º¹·¶´²¯¬¨¤ œ–‘‹…~vog`XPHA92+%
 !(07?HPX`iqz‚‰£¨­±µ¹¼¿ÂÄÆÇÉÉÊËËÊÉÉÇÆÄ¿¼¹µ±­¨£‰‚zqi`XPH?70(!  %,4<DMV`ir{ƒ‹“𡍮³¸½ÁÅÉÌÎÑÒÔÕÖ×רØ××ÖÕÔÒÑÎÌÉÅÁ½¸³®¨¡š“‹ƒ{ri`VMD<4,% 
 (/8@IS]gpyƒŒ•¥¬²¸¾ÃÈÌÐÓÕØÛÝÞßáââããããââáßÞÝÛØÕÓÐÌÈþ¸²¬¥•Œƒypg]SI@8/( 

"*2;DNXclw‹”¦­µ»ÂÇÌÑÕØÜÞáäåæçééêëëëëëëêééçæåäáÞÜØÕÑÌÇ»µ­¦”‹wlcXND;2*"

$,4>GR]hs}ˆ’›¥­µ½ÄÊÏÔØÜàãåèêëíîïðñòòòóóòòòñðïîíëêèåãàÜØÔÏÊĽµ­¥›’ˆ}sh]RG>4,$

%.6@KValxƒŽ˜¢¬´½ÄËÑÖÛßãæèëîïñòóôõõöö÷÷÷÷÷÷ööõõôóòñïîëèæãßÛÖÑËĽ´¬¢˜ŽƒxlaVK@6.%

&.8BMXep|ˆ“ž©²»ÃÊÑ×Üàäèëíðòóõö÷øøøùúúúûûûûúúúùøøø÷öõóòðíëèäàÜ×ÑÊû²©ž“ˆ|peXMB8.&

'/9CO[gs€Œ˜£­·ÀÈÏÖÜáåéìïñóõö÷ùúúúûüüüýýýýýýýýüüüûúúúù÷öõóñïìéåáÜÖÏÈÀ·­£˜Œ€sg[OC9/'

'/9EP\iwƒ›§²»ÄÌÔÚàåéíðòôö÷ùúûûüýýýýýþþþþþþþþþþýýýýýüûûúù÷öôòðíéåàÚÔÌÄ»²§›ƒwi\PE9/'

&/9EQ^kx…’žªµ¿ÈÐØÞãèìðòõ÷øúûüüýýýþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþýýýüüûúø÷õòðìèãÞØÐÈ¿µªž’…xk^QE9/&
 %/9EQ_ky‡”¡­¸ÂËÓÛáæëïòõ÷øùûüüýýþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþýýüüûùø÷õòïëæáÛÓ˸­¡”‡yk_QE9/%  $-8DP^lzˆ•¢¯ºÄÎÖÝãéíñóöùùûüüýþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþýüüûùùöóñíéãÝÖÎĺ¯¢•ˆzl^PD8-$ 
#,6BO\kyˆ•£¯»ÆÏØßåêïòõ÷úûüüýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþýüüûú÷õòïêåßØÏÆ»¯£•ˆyk\OB6,#

 *5@M[ix‡•£°¼ÇÑÙàæìðó÷ùúüüýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþýüüúù÷óðìæàÙÑǼ°£•‡xi[M@5* 
 (2>KYgw…”¢¯¼ÇÑÚáèìñô÷ùûüýþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþýüûù÷ôñìèáÚÑǼ¯¢”…wgYK>2(  %/;GVesƒ’¡¯»ÇÑÚâèîòõøúûüýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþýüûúøõòîèâÚÑÇ»¯¡’ƒseVG;/% 
!,8DRap€ž­ºÆÑÚâèîòöøúüüþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþüüúøöòîèâÚÑÆº­ž€paRD8,!
 (4@M]l|Œ›ª¸ÄÏÙáèîòöùûüýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþýüûùöòîèáÙÏĸª›Œ|l]M@4(  $0<IXhxˆ˜§µÂÎØàçîòöùûüýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþýüûùöòîçàØÎµ§˜ˆxhXI<0$  !,7DScsƒ“£±¿ËÖßçìòöùûüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüûùöòìçßÖË¿±£“ƒscSD7,!  &2?M\m}Žž­»ÈÓÝåìñõøúüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüúøõñìåÝÓÈ»­žŽ}m\M?2&  "-9GVgvˆ˜©·ÄÐÛäëðôøúüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüúøôðëäÛÐÄ·©˜ˆvgVG9-"  '4@P`p’¢²ÀÌØáéïô÷úüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüú÷ôïéáØÌÀ²¢’p`P@4' 
".:HXiz‹›¬»ÈÔÞæíò÷ùûýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþýûù÷òíæÞÔÈ»¬›‹ziXH:."
 (4AParƒ”¥´ÃÏÚãëñõøûüþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþüûøõñëãÚÏô¥”ƒraPA4(  !-9HXi{Œ­½ÊÖàèïóøúüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüúøóïèàÖʽ­Œ{iXH9-! 
'2@P`qƒ•¦µÄÑÛåìòöùüüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüùöòìåÛÑĵ¦•ƒq`P@2'

 ,8GWhz‹­½Ë×áéðõùûüþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþüûùõðéá×˽­‹zhWG8, 
 $0>M^o‚“¥µÄÐÜåíò÷úüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüú÷òíåÜÐĵ¥“‚o^M>0$ 
)5DTev‰š¬»ÊÖàéðõøûüþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþüûøõðéàÖÊ»¬š‰veTD5)
 !-:IZk~¡²ÂÏÛäìò÷úüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüú÷òìäÛϲ¡~kZI:-!  %1?O`r…—¨¹ÈÔßèïõøûüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüûøõïèßÔȹ¨—…r`O?1% 
)5DTew‹®¾ÌØãëòöúüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüúöòëãØÌ¾®‹weTD5)

 ,9IYl~‘¢³ÃÑÜæíó÷ûüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüû÷óíæÜÑó¢‘~lYI9, 
 #/=M_q„–¨¹ÈÕàèðõùüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüùõðèàÕȹ¨–„q_M=/#  &3ARcv‰œ­½ÌØãëòöúüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüúöòëãØÌ½­œ‰vcRA3&  )6EVh{ ±ÁÐÜåîó÷ûýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýû÷óîåÜÐÁ± {hVE6)   ,9IZl’¤µÅÓÞèïõùüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüùõïèÞÓŵ¤’lZI9,   ".<L^pƒ–¨¹ÉÕáêñöúüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüúöñêáÕɹ¨–ƒp^L<."  $0?Oat‡™¬¼ÌØäëò÷úýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýú÷òëäØÌ¼¬™‡taO?0$  &3BRewН¿ÎÛåíóøúýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýúøóíåÛο¯ŠweRB3& 
(5DUgz ²ÂÑÝæîôøûýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýûøôîæÝѲ zgUD5(

)6FWj|£´ÄÒÞçïõøüýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýüøõïçÞÒÄ´£|jWF6)
 *8HYl’¥¶ÆÔßéðõùüýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýüùõðéßÔÆ¶¥’lYH8*   +9I[m€”¦·ÇÕáéñöúüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüúöñéáÕÇ·¦”€m[I9+  
 ,:J\o‚•¨¹ÉÖâêòöúýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýúöòêâÖɹ¨•‚o\J:, 

!-;K]p„–©ºÊ×âëò÷úýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýú÷òëâ×ʺ©–„p]K;-!

!-<L^q„—ª»Ê×ãëò÷ûýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýû÷òëã×Ê»ª—„q^L<-!

!-<L^q„˜ª»ËØãëó÷ûýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýû÷óëãØË»ª˜„q^L<-!

!-<L^q„˜ª»ËØãëó÷ûýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýû÷óëãØË»ª˜„q^L<-!

!-<L^q„—ª»Ê×ãëò÷ûýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýû÷òëã×Ê»ª—„q^L<-!

!-;K]p„–©ºÊ×âëò÷úýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýú÷òëâ×ʺ©–„p]K;-!

 ,:J\o‚•¨¹ÉÖâêòöúýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýúöòêâÖɹ¨•‚o\J:, 
  +9I[m€”¦·ÇÕáéñöúüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüúöñéáÕÇ·¦”€m[I9+   *8HYl’¥¶ÆÔßéðõùüýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýüùõðéßÔÆ¶¥’lYH8* 
)6FWj|£´ÄÒÞçïõøüýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýüøõïçÞÒÄ´£|jWF6)

(5DUgz ²ÂÑÝæîôøûýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýûøôîæÝѲ zgUD5(
 &3BRewН¿ÎÛåíóøúýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýúøóíåÛο¯ŠweRB3&  $0?Oat‡™¬¼ÌØäëò÷úýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýú÷òëäØÌ¼¬™‡taO?0$  ".<L^pƒ–¨¹ÉÕáêñöúüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüúöñêáÕɹ¨–ƒp^L<."   ,9IZl’¤µÅÓÞèïõùüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüùõïèÞÓŵ¤’lZI9,   )6EVh{ ±ÁÐÜåîó÷ûýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýû÷óîåÜÐÁ± {hVE6)  &3ARcv‰œ­½ÌØãëòöúüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüúöòëãØÌ½­œ‰vcRA3&  #/=M_q„–¨¹ÈÕàèðõùüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüùõðèàÕȹ¨–„q_M=/# 
 ,9IYl~‘¢³ÃÑÜæíó÷ûüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüû÷óíæÜÑó¢‘~lYI9, 

)5DTew‹®¾ÌØãëòöúüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüúöòëãØÌ¾®‹weTD5)
 %1?O`r…—¨¹ÈÔßèïõøûüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüûøõïèßÔȹ¨—…r`O?1%  !-:IZk~¡²ÂÏÛäìò÷úüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüú÷òìäÛϲ¡~kZI:-! 
)5DTev‰š¬»ÊÖàéðõøûüþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþüûøõðéàÖÊ»¬š‰veTD5)
 $0>M^o‚“¥µÄÐÜåíò÷úüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüú÷òíåÜÐĵ¥“‚o^M>0$ 
 ,8GWhz‹­½Ë×áéðõùûüþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþüûùõðéá×˽­‹zhWG8, 

'2@P`qƒ•¦µÄÑÛåìòöùüüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüùöòìåÛÑĵ¦•ƒq`P@2'
 !-9HXi{Œ­½ÊÖàèïóøúüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüúøóïèàÖʽ­Œ{iXH9-!  (4AParƒ”¥´ÃÏÚãëñõøûüþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþüûøõñëãÚÏô¥”ƒraPA4( 
".:HXiz‹›¬»ÈÔÞæíò÷ùûýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþýûù÷òíæÞÔÈ»¬›‹ziXH:."
 '4@P`p’¢²ÀÌØáéïô÷úüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüú÷ôïéáØÌÀ²¢’p`P@4'  "-9GVgvˆ˜©·ÄÐÛäëðôøúüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüúøôðëäÛÐÄ·©˜ˆvgVG9-"  &2?M\m}Žž­»ÈÓÝåìñõøúüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüúøõñìåÝÓÈ»­žŽ}m\M?2&  !,7DScsƒ“£±¿ËÖßçìòöùûüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüûùöòìçßÖË¿±£“ƒscSD7,!  $0<IXhxˆ˜§µÂÎØàçîòöùûüýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþýüûùöòîçàØÎµ§˜ˆxhXI<0$  (4@M]l|Œ›ª¸ÄÏÙáèîòöùûüýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþýüûùöòîèáÙÏĸª›Œ|l]M@4( 
!,8DRap€ž­ºÆÑÚâèîòöøúüüþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþüüúøöòîèâÚÑÆº­ž€paRD8,!
 %/;GVesƒ’¡¯»ÇÑÚâèîòõøúûüýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþýüûúøõòîèâÚÑÇ»¯¡’ƒseVG;/%  (2>KYgw…”¢¯¼ÇÑÚáèìñô÷ùûüýþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþýüûù÷ôñìèáÚÑǼ¯¢”…wgYK>2( 
 *5@M[ix‡•£°¼ÇÑÙàæìðó÷ùúüüýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþýüüúù÷óðìæàÙÑǼ°£•‡xi[M@5* 

#,6BO\kyˆ•£¯»ÆÏØßåêïòõ÷úûüüýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþýüüûú÷õòïêåßØÏÆ»¯£•ˆyk\OB6,#
 $-8DP^lzˆ•¢¯ºÄÎÖÝãéíñóöùùûüüýþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþýüüûùùöóñíéãÝÖÎĺ¯¢•ˆzl^PD8-$  %/9EQ_ky‡”¡­¸ÂËÓÛáæëïòõ÷øùûüüýýþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþýýüüûùø÷õòïëæáÛÓ˸­¡”‡yk_QE9/% 
&/9EQ^kx…’žªµ¿ÈÐØÞãèìðòõ÷øúûüüýýýþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþýýýüüûúø÷õòðìèãÞØÐÈ¿µªž’…xk^QE9/&

'/9EP\iwƒ›§²»ÄÌÔÚàåéíðòôö÷ùúûûüýýýýýþþþþþþþþþþýýýýýüûûúù÷öôòðíéåàÚÔÌÄ»²§›ƒwi\PE9/'

'/9CO[gs€Œ˜£­·ÀÈÏÖÜáåéìïñóõö÷ùúúúûüüüýýýýýýýýüüüûúúúù÷öõóñïìéåáÜÖÏÈÀ·­£˜Œ€sg[OC9/'

&.8BMXep|ˆ“ž©²»ÃÊÑ×Üàäèëíðòóõö÷øøøùúúúûûûûúúúùøøø÷öõóòðíëèäàÜ×ÑÊû²©ž“ˆ|peXMB8.&

%.6@KValxƒŽ˜¢¬´½ÄËÑÖÛßãæèëîïñòóôõõöö÷÷÷÷÷÷ööõõôóòñïîëèæãßÛÖÑËĽ´¬¢˜ŽƒxlaVK@6.%

$,4>GR]hs}ˆ’›¥­µ½ÄÊÏÔØÜàãåèêëíîïðñòòòóóòòòñðïîíëêèåãàÜØÔÏÊĽµ­¥›’ˆ}sh]RG>4,$

"*2;DNXclw‹”¦­µ»ÂÇÌÑÕØÜÞáäåæçééêëëëëëëêééçæåäáÞÜØÕÑÌÇ»µ­¦”‹wlcXND;2*"

 (/8@IS]gpyƒŒ•¥¬²¸¾ÃÈÌÐÓÕØÛÝÞßáââããããââáßÞÝÛØÕÓÐÌÈþ¸²¬¥•Œƒypg]SI@8/( 
 %,4<DMV`ir{ƒ‹“𡍮³¸½ÁÅÉÌÎÑÒÔÕÖ×רØ××ÖÕÔÒÑÎÌÉÅÁ½¸³®¨¡š“‹ƒ{ri`VMD<4,%  !(07?HPX`iqz‚‰£¨­±µ¹¼¿ÂÄÆÇÉÉÊËËÊÉÉÇÆÄ¿¼¹µ±­¨£‰‚zqi`XPH?70(! 
%+29AHPX`gov~…‹‘–œ ¤¨¬¯²´¶·¹º»»»»º¹·¶´²¯¬¨¤ œ–‘‹…~vog`XPHA92+%
 !&-3:BHPW^dksx~„‰’–™ £¥¦¨©ªªªª©¨¦¥£ ™–’‰„~xskd^WPHB:3-&! 
"'-3:@GNTZ`flqv{ƒ‡Š’”•–—˜˜—–•”’Їƒ{vqlf`ZTNG@:3-'"
 #(-28>DJOTY^chlptwz|‚„„„„„„‚|zwtplhc^YTOJD>82-(#  "'+05:?DIMRVZ^aegjlmoppqqppomljgea^ZVRMID?:50+'"   $)-159=AEILORUWY[\^^^^^^\[YWUROLIEA=951-)$  
!%),/369<?BDFHIJKLLLLKJIHFDB?<963/,)%!
  #&),.035689:;<<<<;:986530.,)&#  
 "$&()*+,------,+*)(&$" 
  !!!!!!  





   "'+/245542/+'"  %-4<CINQTUUTQNIC<4-%   *4?JS]elrvyzzyvrle]SJ?4*   *7ES_lx‚‹’˜œŸ¡¡Ÿœ˜’‹‚xl_SE7*  '5ETeuƒ‘§¯¶»¿ÁÃÃÁ¿»¶¯§‘ƒueTE5' 
 .>Pcvˆ˜¦³¾ÇÎÓØÚÜÝÝÜÚØÓÎǾ³¦˜ˆvcP>. 
$4F[p…˜©¹ÆÐÙßäèëíîïïîíëèäßÙÐÆ¹©˜…p[F4$&8Lcz‘¥¸ÇÔÝåëðóõöøøùùøøöõóðëåÝÔǸ¥‘zcL8&':Piš¯ÂÑÞçîóöùûüüýþþþþýüüûùöóîçÞѯšiP:'
&:Rk† ¶ÉÙåíô÷úüýþÿÿÿÿÿÿÿÿÿÿþýüú÷ôíåÙɶ †kR:&
 $7Plˆ¢»ÎÞéñ÷úüýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýüú÷ñéÞλ¢ˆlP7$   4Li†¢¼ÑáìôùüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüùôìáѼ¢†iL4  .Fc »ÑâîõúüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüúõîâÑ» cF. '>[zš¶Îàîöûýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýûöîàζšz[>' 5Pp‘¯ÉÞìõûýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýûõìÞɯ‘pP5 +Dc„¥ÂÙêôúýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýúôêÙÂ¥„cD+  7Tv˜¸ÑåñùýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýùñåѸ˜vT7  *Deˆ©ÇÞí÷üþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþü÷íÞÇ©ˆeD* 5Ru˜¹ÔçôûýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýûôçÔ¹˜uR5%?`ƒ¦ÆÝîøüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüøîÝÆ¦ƒ`?% -Jl‘³Ðåóúýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýúóåг‘lJ- 4Txœ¾ÙëöüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüöëÙ¾œxT4"<]‚§Çßðùýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýùðßǧ‚]<"'Ce‹¯Îäóûþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþûóäί‹eC'
+Il’¶ÓèõüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüõèÓ¶’lI+
/Nr˜»ØëöüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüöëØ»˜rN/ 2Qvœ¿ÚíøýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýøíÚ¿œvQ2
4TyŸÂÜîøþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþøîÜŸyT4
5U{¡ÃÝïùþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþùïÝá{U5
5U{¡ÃÝïùþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþùïÝá{U5
4TyŸÂÜîøþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþøîÜŸyT4
2Qvœ¿ÚíøýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýøíÚ¿œvQ2 /Nr˜»ØëöüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüöëØ»˜rN/
+Il’¶ÓèõüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüõèÓ¶’lI+
'Ce‹¯Îäóûþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþûóäί‹eC'"<]‚§Çßðùýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýùðßǧ‚]<"4Txœ¾ÙëöüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüöëÙ¾œxT4 -Jl‘³Ðåóúýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýúóåг‘lJ- %?`ƒ¦ÆÝîøüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüøîÝÆ¦ƒ`?%5Ru˜¹ÔçôûýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýûôçÔ¹˜uR5 *Deˆ©ÇÞí÷üþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþü÷íÞÇ©ˆeD*  7Tv˜¸ÑåñùýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýùñåѸ˜vT7  +Dc„¥ÂÙêôúýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýúôêÙÂ¥„cD+ 5Pp‘¯ÉÞìõûýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýûõìÞɯ‘pP5 '>[zš¶Îàîöûýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýûöîàζšz[>' .Fc »ÑâîõúüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüúõîâÑ» cF.  4Li†¢¼ÑáìôùüýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýüùôìáѼ¢†iL4   $7Plˆ¢»ÎÞéñ÷úüýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýüú÷ñéÞλ¢ˆlP7$ 
&:Rk† ¶ÉÙåíô÷úüýþÿÿÿÿÿÿÿÿÿÿþýüú÷ôíåÙɶ †kR:&
':Piš¯ÂÑÞçîóöùûüüýþþþþýüüûùöóîçÞѯšiP:'&8Lcz‘¥¸ÇÔÝåëðóõöøøùùøøöõóðëåÝÔǸ¥‘zcL8&$4F[p…˜©¹ÆÐÙßäèëíîïïîíëèäßÙÐÆ¹©˜…p[F4$
 .>Pcvˆ˜¦³¾ÇÎÓØÚÜÝÝÜÚØÓÎǾ³¦˜ˆvcP>. 
 '5ETeuƒ‘§¯¶»¿ÁÃÃÁ¿»¶¯§‘ƒueTE5'  *7ES_lx‚‹’˜œŸ¡¡Ÿœ˜’‹‚xl_SE7*   *4?JS]elrvyzzyvrle]SJ?4*   %-4<CINQTUUTQNIC<4-%  "'+/245542/+'"   
 %((% 
%7HWbggbWH7%
$>\x «±±« x\>$2V} ¼ÏÛâææâÛϼ }V2:f•¼Øéò÷úûûú÷ò騼•f::l¡ËæôûþÿÿÿÿÿÿþûôæË¡l:2f¡ÐìùýÿÿÿÿÿÿÿÿÿÿýùìСf2
$V•ËìúþÿÿÿÿÿÿÿÿÿÿÿÿþúìË•V$
?}¼æùþÿÿÿÿÿÿÿÿÿÿÿÿÿÿþùæ¼}? %\ ØôýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýôØ \% 7x¼éûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûé¼x7HÏòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþòÏHW ÛøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÛ W%b«âúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúâ«b%(g±æûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûæ±g((g±æûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûæ±g(%b«âúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúâ«b%W ÛøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÛ WHÏòþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþòÏH7x¼éûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûé¼x7 %\ ØôýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýôØ \% ?}¼æùþÿÿÿÿÿÿÿÿÿÿÿÿÿÿþùæ¼}?
$V•ËìúþÿÿÿÿÿÿÿÿÿÿÿÿþúìË•V$
2f¡ÐìùýÿÿÿÿÿÿÿÿÿÿýùìСf2:l¡ËæôûþÿÿÿÿÿÿþûôæË¡l::f•¼Øéò÷úûûú÷ò騼•f:2V} ¼ÏÛâææâÛϼ }V2$>\x «±±« x\>$
%7HWbggbWH7%
 %((%  Lt‰‰tL  :‰Çåïïålj: :ŸåûÿÿÿÿûåŸ: ‰åýÿÿÿÿÿÿýå‰ LÇûÿÿÿÿÿÿÿÿûÇLtåÿÿÿÿÿÿÿÿÿÿåt‰ïÿÿÿÿÿÿÿÿÿÿïÿÿÿÿÿÿÿÿÿÿï‰tåÿÿÿÿÿÿÿÿÿÿåtLÇûÿÿÿÿÿÿÿÿûÇL ‰åýÿÿÿÿÿÿýå‰ :ŸåûÿÿÿÿûåŸ: :‰Çåïïålj:  Lt‰‰tL HÌôôÌHÌÿÿÿÿÌôÿÿÿÿôôÿÿÿÿôÌÿÿÿÿÌHÌôôÌHÿÿÿÿ
Font Materialu'ÿÿÿÿ_MainTexw'€?€?_Color€?€?€?€?_MainTex Font Texturewhite_Color
Text Color€?€?€?€? öz*xžÙ5OS#É­VGlobals_MainTexunity_ObjectToWorld @ <noninit> A <noninit> @ <noninit> A <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>A <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit>unity_FogStart unity_FogEndunity_FogDensity <noninit> <noninit> <noninit> <noninit>unity_FogColorÿÿÿÿHIGNOREPROJECTORtrue PreviewTypePlaneQUEUE Transparent
RenderType Transparent!!ëë!!ëë!!ëë˜!! ë
ë!! ë
ë!! ë
ëIGNOREPROJECTORtrue PreviewTypePlaneQUEUE Transparent
RenderType TransparentSTEREO_INSTANCING_ONUNITY_SINGLE_PASS_STEREOSTEREO_MULTIVIEW_ONSTEREO_CUBEMAP_RENDER_ONGUI/Text Shaderöä0ö¢ ˆ¬b4p ¤ bH L
S”¼&P S !Hb(!Ü S%ø Sü(ô &ð, nºu
ðVGlobals˜/´±_MainTex_ST(³8@€b_Color8 $óunity_MatrixVP´ '@8¬¬ _X¬`cStereonB@4Ð!ÖÔœ€ÝT…EyeIndex, T!  XÐ Xp/ÿaþÊ
ð0<(@ÿÿÿÿ pxlatMtlü
#include <metal_stdlib>
ñ
texture>
using namespace ”;
struct ÿò_Type
{
float4 hlslcc_mtx4x4OÿObjectToWorld[4];0 Í +abhalf4 PT;
};
 ÊMtl_VertexInŸøPOSITION0 [[ attribute(0) ]] V[COLOR&1&P«2 TEXCOORD*2*:Out•Àmtl_PositionHp /]]“Ruser(i),v‰
 1(R{constanð&bbbufferA,6}` input(pstage_iÔ;)
{)~ioutputñ u_“01!" =hu.yyyy *ª.—,1]SOfma(@=0],…Txxxx,R)`+2`Ozzzz`
+31FQ¸1Fì;%0]Ñ ?/1)S&2S2Sy.…_3_Owwww_½ªQÇ4¹3.xy“,in,C!#zw™ereturnx|
P¤Ääÿ
NITY_SINGLE_PASS_STEREOð ÀÅâ_P[8];0V0?Inv3V”CameraProP?ion9?Inv< TCrô 6-3 _SdÞJos[2e/±ScaleOffset' D
!Oint Ÿ
ùÿx6ê&J1J &L2 N/i1&2¡ ÿSi 
.)i << 0x™£.(\+ 1)]cIX"W
/2)j6Â/2)2
22
|5/3)O
2O
žL
)Œ:
ï_INSTANCING_ONÿÿÿÿÿÿ—¼ÏMULTIVIEW_ONÄÿÿÿÿÿÿ€|À
#ifndef XLT_REMAP_O
#defineñ {0, 1, 2, 3, 4, 5, 6, 7}
#endif
Fexpr%u×øxlt_remap_o[] =T;
…Fragment ã  äyo{pSV_TargetJc&0]4fD Q8tsampler~1µ02d<•¢, access::,8 > A-²rQt¼
v
uÐ96_0„ 6_Ïœ., ²=).w {(Y3) */*.wT¾A.w =­();xyz…ܼøÿÿÿÌhôÿÿÿÌ ôÿÿÿ«PArial.oAt'PAw'€?þÿÿÿF,€¿F.€¿P,€¿P.€¿T,€¿T.€¿T:€¿T;€¿Ta€¿Tc€¿Te€¿To€¿Ts€¿V,€¿V.€¿Y,€¿Y-€¿Y.€¿Ye€¿Yo€¿Yq€¿ÍÌÌ=L<AP0ÀArial Font TexturepSphere1è·4€?€?€?Ð|)()(=)(<=<Q=<PQPeQPdedyedxyxyxŒŒ¡Œ ¡ µ¡ ´µ´Éµ´ÈÉÈÝÉÈÜÝÜñÝÜðñðñð-,-,A-,@A@UA@TUTiUThih}iUiji¤jAUVUjV-ABAVB-.-B.Vjkj¥kBVWVkW..BCBWCWklk¦lWlXCWX.C/./ñXlml§mCXD/CD/ñòÝñòXmYDXY/D0/0òÝòÞÉÝÞYmnm¨nDYE0DE0òóÞòóÉÞʵÉÊYnZEYZ0E101óÞóßÊÞߵʡµZnon©o1óôßóôÊßËÊË¡¢¡¢ ô ßôàËßàË·¢·¢ŽyŽô õàôõËàÌ·ËÌ¢·£Ž¢£yŽzeyzàõáÌàá·Ì¸£·¸Ž£zŽezfQefÌá͸ÌÍ£¸¤£¤z{fz{QfR=QR¸Í¹¤¸¹¤{f{gRfg=R>)=>¤¹¥¤¥{|g{|RgS>RS)>*)*¥|g|hSgh>S?*>?*|}h|}ShT?ST*?+*+++?@?T@Thih}i+,+@,@TUTiU,,@A@UA,-,A--UijAUVUjV-ABAVB-.-B..i~ji}~}~}¦¥¦¥º¦¥¹º¹Îº¹ÍÎÍâÎÍáâáöâáõöõ
öõ 
 
 2121F21EFEZFFZ[Zo[2FGF[G232G3
3ö
 
 [opoªpG[\[p\3GHG\H343H4\pqp«qH\]\q]ö ÷âö÷  4 4HIH]I]qrq¬r]r^I]^4I5 45   ÷  â÷ãÎâã^rsr­sI^J5IJ 5!  !÷ øã÷øÎãϺÎÏ^s_J^_5J6!56 !
ø 
ãøäÏãäºÏ»¦º»_sts®t!6"
!"ø
ùäøùÏäлÏЦ»§¦§
"ù
äùåÐäå»Ð¼§»¼§~ùúåùúÐåѼÐѧ¼¨§¨~j~åúæÑåæ¼Ñ½¨¼½¨jkVjkÑæÒ½ÑÒ¨½©¨©kVkWBVW½Ò¾©½¾©klWklBWC.BC©¾ª©ªlWlXCWX.C/./ªlmXlmCXD/CD/mXmYDXY/D0/000DEDYEYmnmn010E1EYZYnZ11EFEZF ˜121F2 2 
 ZnoFZ[Zo[2FGF[G232G3
3nƒonƒ
 š
ƒ«ª«ª¿«ª¾¿¾Ó¿¾ÒÓÒçÓÒæçæûçæúûúûú#"#"7#"676K76JKJ_KK_`_t`7KLK`L#787L8#$#8$û$`tut¯uL`a`ua8LMLaM$898M9auvu°vMabavbûüçûü$%$9%9MNMbNbvwv±wbwcNbc9N:%9:%üçüèÓçècwxw²xNcO:NO%:&%&üýèüýÓèÔ¿ÓÔcxdOcd:O;&:;&ýèýéÔèé¿ÔÀ«¿Àdxyx³y&;'&'ýþéýþÔéÕÀÔÕ«À¬«¬'þéþêÕéêÀÕÁ¬ÀÁ¬˜ƒ˜þÿêþÿÕêÖÁÕÖ¬Á­˜¬­ƒ˜oƒêÿëÖêëÁÖ­Á˜­˜op[opÖë×ÂÖ׭®­®p[p\G[\Â×îÂîššpq\pqG\H3GH®Ã¯š®¯šq\q]H\]3H434š¯šqr]qrH]I4HI4  r]r^I]^4I5 45  ! 5!5IJI^J^rsrs !
œ !565J6J^_^s_
!"!6"6JKJ_K
"
"676K7"#"7##ž_stK_`_t`7KLK`L#787L8#$#8$sˆtsˆ$Ÿœˆœ°œ¯°¯Ä°¯ÃÄÃØÄÃר×ìØ×ëìëìëÿÿÿ('('<(';<;P<;OPOdPPdedye<PQPeQ(<=<Q=()(=))eyzy´zQefezf=QRQfR)=>=R>fz{zµ{Rfgf{gg{{gRgSSg>RSSŽ?SŽ>S??Ž)>**>?)*+?*?++Œ**++Œ+ŒìŠìííØìíîíîïŠîïïŠØíÙÙíîÄØÙÚîïÙîÚÛïÚïÛÛˆÄÙÅÅÙÚ°ÄÅÆÚÛÅÚÆÇÛˆÆÛÇLj°Å±±ÅÆœ°±²ÆÇ±Æ²³Ç²Ç³³œ±±²ˆœž²³²žŸ³ž³ŸŸˆžtˆŠžŸžŠŸŠŸtuuŠ`tuvŠuŠvwvwwƒ`uaauvL`abvwavbcwƒbwccƒLaMMab8LMNbcMbNOcNcOO8M99MN$89:NO9N:;O:O;;$9%%9:$%&:;%:&';&;''~%%& &&'¡'~'¢~£· (PRKY¾%Ù|¿'F½]S¾cÙ|¿1úE½a7ž>ÄX5uxs¿€¿ÍÌL={˜¾%Ù|¿?P¼½m“¾cÙ|¿
I¼½y?.P4¼O¿€¿ÍÌL=ÍÌL=?P¼½%Ù|¿{˜¾èH¼½eÙ|¿P“¾½O?ɱ‘´y¿€¿ÍÌÌ=ÍÌL=%F½%Ù|¿JY¾kùE½cÙ|¿WS¾rxs?ñ¢³s7ž¾€¿š™>ÍÌL=%Ù|¿a0 ¾cÙ|¿* ¾€?¢šÅ²*ú4€¿ÍÌL>ÍÌL=%F=%Ù|¿IY¾yùE=cÙ|¿OS¾pxs?ë„37ž>€¿€>ÍÌL==P¼=%Ù|¿y˜¾ðH¼=cÙ|¿p“¾ºO?jƒ²y?€¿š™™>ÍÌL=x˜>%Ù|¿;P¼½s“>cÙ|¿çH¼½y?-Âj2¿O?€¿43³>ÍÌL=GY>%Ù|¿"F½^S>cÙ|¿†ùE½z7ž>JÌŒ³qxs?€¿ÎÌÌ>ÍÌL=_0 >%Ù|¿(* >cÙ|¿å²ú2sÍž1€?€¿hfæ>ÍÌL=GY>%Ù|¿"F=_S>cÙ|¿ŠùE=|7ž¾háˆ3pxs?€¿?ÍÌL=x˜>%Ù|¿:P¼=r“>eÙ|¿’H¼=y¿ €µ½O?€¿ÎÌ ?ÍÌL=:P¼=%Ù|¿w˜>íH¼=eÙ|¿R“O¿:R™´y?€¿›™?ÍÌL="F=%Ù|¿FY>qùE=cÙ|¿MS>qxs¿+°³w7ž>€¿hf&?ÍÌL=\0 1%Ù|¿]0 >eÙ|¿ * >€¿m†Ô²\Á'´€¿533?ÍÌL=F½%Ù|¿EY>|ùE½cÙ|¿WS>pxs¿¼•\3|7ž¾€¿@?ÍÌL=8P¼½%Ù|¿v˜>ïH¼½cÙ|¿z“O¿Ά³y¿€¿ÏÌL?ÍÌL=v˜¾%Ù|¿9P¼=s“¾cÙ|¿ØH¼=y¿Û#4¼O¿€¿œ™Y?ÍÌL=EY¾%Ù|¿F=]S¾cÙ|¿‹ùE=w7ž¾
娳qxs¿€¿iff?ÍÌL=\0 ¾%Ù|¿** ¾cÙ|¿½ ‰µ! -4€¿€¿63s?ÍÌL=y–¾qxs¿‘ý¹s–¾]ys¿ò‰Ã½\7ž>¿3uxs¿€¿ÍÌÌ=€¾qxs¿¸þ9¾Õö¾]ys¿ø9¾y?´EO¿€¿ÍÌL=ÍÌÌ=¸þ9¾qxs¿€¾ø9¾]ys¿Îö¾¾O?Š\Ö³y¿€¿ÍÌÌ=ÍÌÌ=‘ýqxs¿y–¾ŠÃ½]ys¿®s–¾qxs?tŸ›³v7ž¾€¿š™>ÍÌÌ=qxs¿7ž¾]ys¿Ò1ž¾€?ÂM?³?74€¿ÍÌL>ÍÌÌ=‘Ã=qxs¿y–¾ŠÃ=[ys¿½s–¾pxs?-Å‚³€7ž>€¿€>ÍÌÌ=¶þ9>qxs¿€¾ø9>Yys¿îö¾»O?!G´y?€¿š™™>ÍÌÌ=€>qxs¿µþ9¾ßö>[ys¿ø9¾y?;¨é³¾O?€¿43³>ÍÌÌ=y>qxs¿‘ýºs>[ys¿1ŠÃ½v7ž>7‹´qxs?€¿ÎÌÌ>ÍÌÌ=|7ž>qxs¿Ô1ž>[ys¿¢GÈ®0!®€?€¿hfæ>ÍÌÌ=y>qxs¿‘Ã=ºs>[ys¿&ŠÃ={7ž¾•þ4pxs?€¿?ÍÌÌ=€>qxs¿´þ9>ßö>]ys¿ø9>y¿áÔ´½O?€¿ÎÌ ?ÍÌÌ=´þ9>qxs¿€>
ø9>[ys¿ßöO¿PòN1y?€¿›™?ÍÌÌ=‘Ã=qxs¿y>
ŠÃ=[ys¿¹s>qxs¿g´k²u7ž>€¿hf&?ÍÌÌ=z72qxs¿{7ž>]ys¿Ò1ž>€¿©yJ³Ð´€¿533?ÍÌÌ= ‘ýqxs¿y>ŠÃ½[ys¿·s>pxs¿Ùl3{7ž¾€¿@?ÍÌÌ=±þ9¾qxs¿€>ø9¾[ys¿ßöO¿dTÿ°y¿€¿ÏÌL?ÍÌÌ=€¾qxs¿²þ9>ßö¾[ys¿ø9>y¿¿»´¼O¿€¿œ™Y?ÍÌÌ=y–¾qxs¿
‘Ã=¼s–¾[ys¿8ŠÃ=|7ž¾ÓX}´pxs¿€¿iff?ÍÌÌ=z7ž¾qxs¿Ö1ž¾[ys¿2Ð}µ—é¤4€¿€¿63s?ÍÌÌ=ݾd¿i¨¾
ݾÛd¿Ï£¾]7ž>Pô4uxs¿€¿š™ ¼¾d¿r ˆ¾¼¾Ûd¿(œˆ¾y?
&P3¼O¿€¿ÍÌL=š™>r ˆ¾d¿ò ¼¾"œˆ¾Ûd¿¼¾¿O?~n!³y¿€¿ÍÌÌ=š™>h¨¾d¿ݾޣ¾Ýd¿
ݾqxs?Ÿub³t7ž¾€¿š™>š™>d¿yqè¾Ûd¿*jè¾€?eV\³m@Ø3€¿ÍÌL>š™>h¨>d¿ݾì£d¿
ݾpxs?y[Þ2€7ž>€¿€>š™>p ˆ>d¿ï ¼¾*œˆ>Úd¿¼¾ºO?”ܲy?€¿š™™>š™ ¼>d¿o ˆ¾ ¼>Úd¿$œˆ¾y?´êÜ2¾O?€¿43³>š™>Ý>d¿e¨¾$
Ý>Úd¿à£¾v7ž>¸F‡3qxs?€¿ÎÌÌ>š™>vqè>d¿4jè>Ød¿H1×±-B[±€?€¿hfæ>š™>Ý>d¿e¨>%
Ý>Úd¿æ£>z7ž¾¥#5³pxs?€¿?š™ ¼>d¿n ˆ> ¼>Úd¿&œˆ>y¿·´¼O?€¿ÎÌ ?š™>n ˆ>d¿í ¼>%œˆ>Úd¿
¼>¾O¿3é¤3y?€¿›™?š™>e¨>d¿
Ý>å£d¿'
Ý>qxs¿j †2w7ž>€¿hf&?š™>rqh2d¿tqè>Ød¿6jè>€¿l×
³JDˆ³€¿533?š™>c¨¾d¿ Ý>룾Ød¿%
Ý>pxs¿”š¬1}7ž¾€¿@?š™>l ˆ¾d¿ì ¼>(œˆ¾Úd¿¼>½O¿øË8³y¿€¿ÏÌL?š™ ¼¾d¿m ˆ>
¼¾Ød¿-œˆ>y¿5´¼O¿€¿œ™Y?š™> ݾd¿d¨>%
ݾÚd¿ã£>x7ž¾ªK3qxs¿€¿iff?š™>rqè¾d¿0jè¾Úd¿¶9cµË„ç4€¿€¿63s?š™¿½O¿¸þ9¾¿ŽO¿Åù9¾\7ž>ñZ2vxs¿€¿ÍÌL>{xó¾½O¿Jä°¾,ró¾ŒO¿»ß°¾y?Ýÿ¤3¼O¿€¿ÍÌL=ÍÌL>Jä°¾½O¿zxó¾³ß°¾ŒO¿1ró¾¿O?ÝHf3y¿€¿ÍÌÌ=ÍÌL>·þ9¾½O¿Â¿äù9¾ŒO¿¿qxs?oEâ²u7ž¾€¿š™>ÍÌL>½O¿y¿ŠO¿<u¿€?Ñ—”³VÌ3€¿ÍÌL>ÍÌL>·þ9>½O¿Á¿òù9>O¿¿oxs?µâß²7ž>€¿€>ÍÌL>Hä°>½O¿vxó¾»ß°>O¿,ró¾ºO?©ù³y?€¿š™™>ÍÌL>uxó>½O¿Fä°¾0ró>ŠO¿¼ß°¾y?%©@´¾O?€¿43³>ÍÌL>¿O¿³þ9¾?O¿éù9¾w7ž>rvܲqxs?€¿ÎÌÌ>ÍÌL>yO¿<uO¿t~D1G½1€?€¿hfæ>ÍÌL>¿O¿³þ9>?O¿ðù9>{7ž¾=Ý‘3pxs?€¿?ÍÌL>txó>½O¿Eä°>.ró>ŠO¿¾ß°>y¿cx¬3»O?€¿ÎÌ ?ÍÌL>Eä°>½O¿sxó>·ß°>ŠO¿7ró>¾O¿Ò³3y?€¿›™?ÍÌL>³þ9>½O¿¾?æù9>ŠO¿?qxs¿ðK3v7ž>€¿hf&?ÍÌL>yO¿y?ŠO¿>u?€¿ |!°}L^°€¿533?ÍÌL>°þ9¾½O¿¾?ëù9¾ŠO¿?qxs¿ßœr³z7ž¾€¿@?ÍÌL>Cä°¾½O¿rxó>¼ß°¾‰O¿7ró>½O¿ö4³y¿€¿ÏÌL?ÍÌL>qxó¾½O¿Dä°>2ró¾‰O¿¾ß°>y¿¬ýÛ³½O¿€¿œ™Y?ÍÌL>½¿½O¿±þ9>¿‹O¿èù9>w7ž¾e±qxs¿€¿iff?ÍÌL>y¿½O¿>u¿ŠO¿Š4?µÄå
5€¿€¿63s?ÍÌL>ä(,¿ó5¿™À_¾€%,¿€5¿÷»_¾X7ž>Så³vxs¿€¿€>¤r¿ó5¿ÍÔ¾¼o¿5¿äÈÔ¾y?ŸÑO¿€¿ÍÌL=€>ÍÔ¾ó5¿£r¿ÜÈÔ¾5¿Áo¿¿O?I1±3y¿€¿ÍÌÌ=€>˜À_¾ó5¿ã(,¿)¼_¾~5¿~%,¿qxs?#€1v7ž¾€¿š™>€>ó5¿ù5¿~5¿h5¿€?©¶„³Ü»„3€¿ÍÌL>€>˜À_>ó5¿â(,¿7¼_>}5¿}%,¿pxs?gDc²€7ž>€¿€>€>ÍÔ>ó5¿¡r¿çÈÔ>~5¿½o¿ºO?~³y?€¿š™™>€> r5¿ÍÔ¾¿o?~5¿äÈÔ¾y?^Éг½O?€¿43³>€>à(,?ó5¿“À_¾~%,?~5¿/¼_¾x7ž>„3*³qxs?€¿ÎÌÌ>€>ö5?ó5¿h5?}5¿(O81ðG81€?€¿hfæ>€>à(,?ó5¿“À_>~%,?~5¿-¼_>y7ž¾vaå²qxs?€¿?€> r5¿ÍÔ>¿o?~5¿çÈÔ>y¿£›ã1»O?€¿ÎÌ ?€>ÍÔ>ó5¿Ÿr?âÈÔ>|5¿ÁoO¿í޲y?€¿›™?€>“À_>ó5¿Þ(,?+¼_>|5¿€%,?qxs¿Ð3w7ž>€¿hf&?€>óµ2ó5¿ô5?|5¿j5?€¿wh²p²€¿533?€>À_¾ó5¿Þ(,?5¼_¾|5¿%,?pxs¿×aÂ2|7ž¾€¿@?€>
ÍÔ¾ó5¿žr?èÈÔ¾{5¿ÁoO¿0N43y¿€¿ÏÌL?€>žr¿ó5¿ÍÔ>Áo¿|5¿æÈÔ>y¿´Ä•1½O¿€¿œ™Y?€>Ý(,¿ó5¿‘À_>%,¿|5¿,¼_>w7ž¾Gð0qxs¿€¿iff?€>ó5¿ó5¿j5¿{5¿Š,µñ&5€¿€¿63s?€>ÍøD¿y¿€¾ öD¿ñ|¿Uü¾Y7ž>£”³vxs¿€¿š™™>æ'¿y¿zx󾚋'¿ò|¿(uó¾y?!LO¿€¿ÍÌL=š™™>zxó¾y¿å'¿"uó¾ñ|¿'¿¿O?,O²y¿€¿ÍÌÌ=š™™>€¾y¿ËøD¿‚ü¾ð|¿öD¿rxs?gϾ2s7ž¾€¿š™>š™™>y¿ÃO¿ò|¿òO¿€?B›?³@; 3€¿ÍÌL>š™™>€>y¿ÊøD¿–ü>ò|¿öD¿pxs?”å3€7ž>€¿€>š™™>wxó>y¿ã'¿.uó>ñ|¿š‹'¿ºO?UK82y?€¿š™™>š™™>â'?y¿ux󾞋'?î|¿%uó¾y?f m²¿O?€¿43³>š™™>ÈøD?y¿€¾öD?ï|¿‰ü¾w7ž>¥L±qxs?€¿ÎÌÌ>š™™>ÀO?y¿óO?ï|¿d†ï±WÐ$²€?€¿hfæ>š™™>ÈøD?y¿€>öD?ñ|¿Šü>y7ž¾<‡»²qxs?€¿?š™™>á'?y¿txó>š‹'?ò|¿+uó>y¿¿
Z1»O?€¿ÎÌ ?š™™>txó>y¿à'?$uó>ð|¿'?¾O¿ÌB2y?€¿›™?š™™>€>y¿ÆøD?ü>ï|¿öD?qxs¿IÏ2y7ž>€¿hf&?š™™>½Ï2y¿¿O?ï|¿óO?€¿*HᲨ³£²€¿533?š™™>ÿÿ¾y¿ÆøD?˜ü¾ð|¿öD?pxs¿ïÁ…3~7ž¾€¿@?š™™>qxó¾y¿ß'?,uó¾ð|¿œ‹'?¼O¿¬Q2y¿€¿ÏÌL?š™™>ß'¿y¿rxó>'¿î|¿'uó>y¿/O¿€¿œ™Y?š™™>ÅøD¿y¿€>öD¿î|¿ˆü>v7ž¾8Ÿ[2qxs¿€¿iff?š™™>½O¿y¿óO¿í|¿2 ô§55€¿€¿63s?š™™>ïX¿rqè¾âøŒ¾UíX¿œxè¾÷Œ¾X7ž>.G†³vxs¿€¿43³>÷ˆ8¿rq辑¿t‡8¿œxè¾z¿y?"Š2¼O¿€¿ÍÌL=43³>‘¿rqè¾öˆ8¿v¿xè¾u‡8¿¿O?@“²y¿€¿ÍÌÌ=43³>áøŒ¾rqè¾ïX¿µ÷Œ¾£xè¾OíX¿rxs?ÉÄ2t7ž¾€¿š™>43³>rqè¾d¿£xè¾,d¿€?I&£²rH&2€¿ÍÌL>43³>áøŒ>rqè¾ïX¿À÷Œ>¢xè¾MíX¿pxs?£é1€7ž>€¿€>43³>?rqè¾óˆ8¿{? xè¾q‡8¿ºO?À4þ²y?€¿š™™>43³>òˆ8?rq辎¿u‡8?xè¾v¿y?*ÒJ1¿O?€¿43³>43³>ïX?rqè¾ÞøŒ¾OíX?Ÿx辺÷Œ¾x7ž>}˜±qxs?€¿ÎÌÌ>43³>d?rqè¾,d?¤xè¾øÆ±&3†±€?€¿hfæ>43³>ïX?rqè¾ÞøŒ>MíX?¤xè¾¹÷Œ>y7ž¾¦”'±qxs?€¿?43³>òˆ8?rq辎?q‡8? xè¾z?y¿‰ÉO?€¿ÎÌ ?43³>Ž?rqè¾ñˆ8?w?xè¾u‡8?¾O¿7E©±y?€¿›™?43³>ÞøŒ>rqè¾ïX?º÷Œ>xè¾PíX?qxs¿K°ˆ²x7ž>€¿hf&?43³>ä2rqè¾d?œxè¾.d?€¿÷§³ìBв€¿533?43³>ÜøŒ¾rqè¾
ïX?¾÷Œ¾šxè¾PíX?pxs¿æÀc®|7ž¾€¿@?43³>Œ¿rqè¾ðˆ8?y¿™xè¾u‡8?½O¿`ä
²y¿€¿ÏÌL?43³>ïˆ8¿rqè¾?u‡8¿˜xè¾x?y¿(¯2¾O¿€¿œ™Y?43³> ïX¿rqè¾ÝøŒ>PíX¿›x辺÷Œ>x7ž¾l÷ê0qxs¿€¿iff?43³>d¿rqè¾.d¿˜xè¾kÖo´tQë4€¿€¿63s?43³>ég¿y7ž¾y–¾
g¿=ž¾kx–¾Y7ž>¨ï²vxs¿€¿ÎÌÌ>ÍøD¿y7ž¾Ã¿ øD¿=ž¾6¿y?oƒ²¼O¿€¿ÍÌL=ÎÌÌ>ÿy7ž¾ÌøD¿2¿=ž¾
øD¿ÀO?‡­!3y¿€¿ÍÌÌ=ÎÌÌ>y–¾y7ž¾çg¿†x–¾=ž¾g¿qxs?‚R²v7ž¾€¿š™>ÎÌÌ>y7ž¾yxs¿=ž¾Šws¿€?ŠTÿ²âò%2€¿ÍÌL>ÎÌÌ>y>y7ž¾æg¿x>=ž¾g¿pxs?{2€7ž>€¿€>ÎÌÌ>Á?y7ž¾ÊøD¿9?=ž¾øD¿ºO?!¾Û1y?€¿š™™>ÎÌÌ>ÉøD?y7ž¾À¿ øD?=ž¾3¿y?$ÿ–²¿O?€¿43³>ÎÌÌ>ãg?y7ž¾y–¾g?=ž¾‰x–¾y7ž>Ô͉²qxs?€¿ÎÌÌ>ÎÌÌ>uxs?y7ž¾Šws?=ž¾mnį“—°€?€¿hfæ>ÎÌÌ>ãg?y7ž¾y>g?=ž¾Šx>z7ž¾Tk²qxs?€¿?ÎÌÌ>ÈøD?y7ž¾¿?
øD?ù<ž¾6?y¿Çx¬²½O?€¿ÎÌ ?ÎÌÌ>¿?y7ž¾ÇøD?4?ú<ž¾
øD?¿O¿ ¾2y?€¿›™?ÎÌÌ>y>y7ž¾ág?‡x>ÿ<ž¾g?qxs¿Æ]€2v7ž>€¿hf&?ÎÌÌ>qxó2y7ž¾sxs?=ž¾Œws?€¿€¸²$Iï±€¿533?ÎÌÌ>y–¾y7ž¾àg?Žx–¾=ž¾g?pxs¿Ø•°1~7ž¾€¿@?ÎÌÌ>½¿y7ž¾ÆøD?6¿=ž¾
øD?½O¿”™2y¿€¿ÏÌL?ÎÌÌ>ÅøD¿y7ž¾¾?
øD¿ÿ<ž¾5?y¿o`¬1½O¿€¿œ™Y?ÎÌÌ>ßg¿y7ž¾y>g¿ÿ<ž¾ˆx>w7ž¾ÐZ´¯qxs¿€¿iff?ÎÌÌ>qxs¿y7ž¾Œws¿ü<ž¾4>á³ÝG­4€¿€¿63s?ÎÌÌ>yp¿U0 ¾ÖDœ¾ßxp¿b6 ¾‰Dœ¾X7ž>C®²vxs¿€¿hfæ>L¿U0 ¾Üž¿ÉŽL¿Z6 ¾³ž¿y?R¹±½O¿€¿ÍÌL=hfæ>Üž¿U0 ¾L¿¯ž¿c6 ¾ËŽL¿¿O?‘ËÓ1y¿€¿ÍÌÌ=hfæ>ÕDœ¾U0 ¾yp¿¥Dœ¾c6 ¾Úxp¿qxs?ñh¤1u7ž¾€¿š™>hfæ>U0 ¾-Ù|¿^6 ¾èØ|¿€?LÊc²ÎU1€¿ÍÌL>hfæ>ÕDœ>U0 ¾yp¿±Dœ>_6 ¾Øxp¿oxs?Ätݰ7ž>€¿€>hfæ>Úž?U0 ¾ÿŽL¿·ž?\6 ¾ÅŽL¿¹O?þ܆2y?€¿š™™>hfæ>þŽL?U0 ¾Ùž¿ÊŽL?X6 ¾°ž¿y? t¤±¾O?€¿43³>hfæ>yp?U0 ¾ÒDœ¾Úxp?Q6 ¾¨Dœ¾w7ž>3
ذqxs?€¿ÎÌÌ>hfæ>)Ù|?U0 ¾èØ|?E6 ¾GJ"/'€0€?€¿hfæ>hfæ>yp?U0 ¾ÒDœ>Úxp?E6 ¾¬Dœ>{7ž¾NP±pxs?€¿?hfæ>ýŽL?U0 ¾Øž?ÉŽL?O6 ¾µž?y¿4Ÿ±¼O?€¿ÎÌ ?hfæ>Øž?U0 ¾üŽL?±ž?Z6 ¾ÊŽL?¾O¿4õ©1y?€¿›™?hfæ>ÒDœ>U0 ¾yp?§Dœ>a6 ¾Úxp?qxs¿Ð92v7ž>€¿hf&?hfæ>%Ùü2U0 ¾'Ù|?]6 ¾èØ|?€¿zƒ·±i€¿533?hfæ>ÏDœ¾U0 ¾yp?¬Dœ¾\6 ¾Øxp?pxs¿†õݰ|7ž¾€¿@?hfæ>Öž¿U0 ¾ûŽL?´ž¿Z6 ¾ÉŽL?¼O¿Rë1y¿€¿ÏÌL?hfæ>úŽL¿U0 ¾×ž?ÉŽL¿[6 ¾´ž?y¿¯©Ž±¼O¿€¿œ™Y?hfæ>yp¿U0 ¾ÐDœ>Úxp¿W6 ¾ªDœ>y7ž¾kPƒ±qxs¿€¿iff?hfæ>%Ù|¿U0 ¾èØ|¿\6 ¾…Xײþí)4€¿€¿63s?hfæ>{xs¿€7ž¾uxs¿Z7ž¾Z7ž>vxs¿€¿O¿y¿½O¿y¿y?½O¿€¿ÍÌL=?y¿ÅO¿y¿¿O¿¿O?y¿€¿ÍÌÌ=?7ž¾yxs¿o7ž¾qxs¿rxs?p7ž¾€¿š™>?€¿€¿€?€¿ÍÌL>?7ž>xxs¿7ž>pxs¿pxs?7ž>€¿€>?y?ÂO¿y?ºO¿ºO?y?€¿š™™>O?y¿¾O?y¿y?¾O?€¿43³>?uxs?|7ž¾qxs?x7ž¾x7ž>qxs?€¿ÎÌÌ>?€?€?€?€¿hfæ>?uxs?|7ž>qxs?}7ž>|7ž¾pxs?€¿?O?yO?y?y¿¼O?€¿ÎÌ ??y?¿O?y?¾O?¾O¿y?€¿›™??|7ž>sxs?s7ž>qxs?rxs¿s7ž>€¿hf&??3€?€?€¿€¿533??y7ž¾rxs?{7ž¾qxs?pxs¿{7ž¾€¿@??y¿¾O?y¿½O?½O¿y¿€¿ÏÌL?O¿yO¿y?y¿½O¿€¿œ™Y??qxs¿z7ž>qxs¿{7ž>{7ž¾pxs¿€¿iff??€¿€¿€¿€¿63s??yp¿U0 >ÖDœ¾ßxp¿b6 >Dœ¾Z7ž>˜×|2vxs¿€¿ÎÌ ?L¿U0 >Üž¿ÉŽL¿Z6 >³ž¿y? v1½O¿€¿ÍÌL=ÎÌ ?Üž¿U0 >L¿¯ž¿b6 >ËŽL¿¿O?Õ<
²y¿€¿ÍÌÌ=ÎÌ ?ÕDœ¾U0 >yp¿£Dœ¾b6 >Úxp¿rxs?Ìhc²s7ž¾€¿š™>ÎÌ ?U0 >-Ù|¿_6 >èØ|¿€?\Š2/1€¿ÍÌL>ÎÌ ?ÕDœ>U0 >yp¿±Dœ>_6 >Øxp¿oxs?¸€±7ž>€¿€>ÎÌ ?Úž?U0 >ÿŽL¿·ž?]6 >ÆŽL¿ºO? ²y?€¿š™™>ÎÌ ?þŽL?U0 >Ùž¿ÊŽL?X6 >°ž¿yÏ1¾O?€¿43³>ÎÌ ?yp?U0 >ÒDœ¾Úxp?R6 >©Dœ¾x7ž>|%n1qxs?€¿ÎÌÌ>ÎÌ ?)Ù|?U0 >èØ|?F6 >GJ"¯(€0€?€¿hfæ>ÎÌ ?yp?U0 >ÒDœ>Úxp?F6 >¬Dœ>{7ž¾¢üf0pxs?€¿?ÎÌ ?ýŽL?U0 >Øž?ÉŽL?O6 >´ž?y¿wP?2¼O?€¿ÎÌ ?ÎÌ ?Øž?U0 >üŽL?°ž?X6 >ÊŽL?¾O¿†#@²y?€¿›™?ÎÌ ?ÒDœ>U0 >yp?¦Dœ>_6 >Úxp?qxs¿Œü—²v7ž>€¿hf&?ÎÌ ?%Ùü2U0 >'Ù|?_6 >èØ|?€¿óŸú1ËÍž°€¿533?ÎÌ ?ÏDœ¾U0 >yp?¬Dœ¾]6 >Øxp?pxs¿Q~ °|7ž¾€¿@?ÎÌ ?Öž¿U0 >ûŽL?´ž¿[6 >ÉŽL?¼O¿ü»^°y¿€¿ÏÌL?ÎÌ ?úŽL¿U0 >מ?ÉŽL¿[6 >´ž?y¿ O¹1¼O¿€¿œ™Y?ÎÌ ?yp¿U0 >ÐDœ>Úxp¿X6 >«Dœ>z7ž¾¤#Ù1qxs¿€¿iff?ÎÌ ?%Ù|¿U0 >èØ|¿[6 >°.زý–*´€¿€¿63s?ÎÌ g¿y7ž>y–¾g¿=ž>lx–¾[7ž>—<æ1vxs¿€¿›™?ÍøD¿y7ž>ÿ øD¿=ž>6¿y?Íh;2¼O¿€¿ÍÌL=›™¿y7ž>ÌøD¿3¿=ž>
øD¿¿O?€ ª²y¿€¿ÍÌÌ=›™?y–¾y7ž>çg¿…x–¾=ž>g¿qxs?§²t7ž¾€¿š™>›™?y7ž>yxs¿=ž>Šws¿€?Dó›2G·Ê1€¿ÍÌL>›™?y>y7ž>æg¿x>=ž>g¿pxs?'§/€7ž>€¿€>›™?y7ž>ÊøD¿9?=ž>øD¿ºO?Ñøµ°y?€¿š™™>›™?ÉøD?y7ž>À¿ øD?=ž>3¿y?$82¾O?€¿43³>›™g?y7ž>y–¾g?=ž>ˆx–¾w7ž>Uô#1qxs?€¿ÎÌÌ>›™?uxs?y7ž>Šws?=ž>mnÄ/—°€?€¿hfæ>›™g?y7ž>y>g?=ž>Šx>z7ž¾óWà0qxs?€¿?›™?ÈøD?y7ž>¿?
øD?ú<ž>6?y¿Wlî2½O?€¿ÎÌ ?›™?¿?y7ž>ÇøD?5?ú<ž>
øD?¾O¿ŒùÔ®y?€¿›™?›™?y>y7ž>ág?†x>ÿ<ž>g?qxs¿#;³u7ž>€¿hf&?›™?qxó2y7ž>sxs?=ž>Œws?€¿¾3&µ'²€¿533?›™?y–¾y7ž>àg?x–¾=ž>g?pxs¿jú­²}7ž¾€¿@?›™¿y7ž>ÆøD?4¿=ž>
øD?¾O¿¤Oã2y¿€¿ÏÌL?›™?ÅøD¿y7ž>¾?
øD¿=ž>6?y¿ç>Ó2½O¿€¿œ™Y?›™g¿y7ž>y>g¿þ<ž>ˆx>w7ž¾}Ãòqxs¿€¿iff?›™?qxs¿y7ž>Œws¿ÿ<ž>Êpܳ–©´€¿€¿63s?›™?ïX¿rqè>âøŒ¾SíX¿Ÿxè>÷Œ¾Y7ž>±3vxs¿€¿hf&?÷ˆ8¿rqè>¿t‡8¿žxè>z¿y?©‘²¼O¿€¿ÍÌL=hf&?¿rqè>öˆ8¿u¿ xè>u‡8¿¿O?F1y¿€¿ÍÌÌ=hf&?áøŒ¾rqè>ïX¿µ÷Œ¾£xè>OíX¿rxs?6`²t7ž¾€¿š™>hf&?rqè>d¿£xè>,d¿€?b+2¾¬®1€¿ÍÌL>hf&?áøŒ>rqè>ïX¿¿÷Œ>£xè>LíX¿pxs?/Pv°7ž>€¿€>hf&??rqè>óˆ8¿|? xè>q‡8¿ºO?šLs2y?€¿š™™>hf&?òˆ8?rqè>Ž¿u‡8?xè>v¿y?òC²¿O?€¿43³>hf&?ïX?rqè>ÞøŒ¾OíX?Ÿxè>º÷Œ¾x7ž>FÐg2qxs?€¿ÎÌÌ>hf&?d?rqè>,d?¡xè>øÆ1$3†±€?€¿hfæ>hf&?ïX?rqè>ÞøŒ>OíX?£xè>»÷Œ>y7ž¾©§„°qxs?€¿?hf&?òˆ8?rqè>Ž?r‡8?¢xè>z?y¿H^²¼O?€¿ÎÌ ?hf&?Ž?rqè>ñˆ8?w?žxè>t‡8?¾O¿ª¨2y?€¿›™?hf&?ÞøŒ>rqè>ïX?º÷Œ>xè>PíX?qxs¿z˜¥1x7ž>€¿hf&?hf&?ä2rqè>d?xè>,d?€¿¾I13p±´²€¿533?hf&?ÜøŒ¾rqè>
ïX?¾÷Œ¾œxè>OíX?pxs¿sH1}7ž¾€¿@?hf&?Œ¿rqè>ðˆ8?x¿›xè>u‡8?¾O¿ML2y¿€¿ÏÌL?hf&?ïˆ8¿rqè>?t‡8¿™xè>y?y¿ÄvÀ2½O¿€¿œ™Y?hf&? ïX¿rqè>ÝøŒ>PíX¿›xè>º÷Œ>x7ž¾`Æ1qxs¿€¿iff?hf&?d¿rqè>.d¿œxè>)ïo´¿ië´€¿€¿63s?hf&?ÍøD¿y?€¾ öD¿ò|?Rü¾X7ž>çM3vxs¿€¿533?æ'¿y?zx󾙋'¿ó|?%uó¾y?CpR2¼O¿€¿ÍÌL=533?zxó¾y'¿#uó¾ò|?'¿¿O?ú­:°y¿€¿ÍÌÌ=533?€¾y?ËøD¿ü¾ð|?öD¿rxs?v"2s7ž¾€¿š™>533?yO¿ò|O¿€?ßÎL3Ó3€¿ÍÌL>533?€>y?ÊøD¿”ü>ò|?öD¿pxs?¹³7ž>€¿€>533?wxó>y'¿.uó>ñ|?™‹'¿ºO?[s·²y?€¿š™™>533?â'?y?ux󾞋'?ï|?#uó¾y?$<L²¿O?€¿43³>533?ÈøD?y?€¾öD?ð|?‰ü¾w7ž>Ä‚W2qxs?€¿ÎÌÌ>533?ÀO?y?óO?ï|?d†ï1WÐ$²€?€¿hfæ>533?ÈøD?y?€>öD?ñ|?Šü>y7ž¾Ù±13qxs?€¿?533?á'?y?txó>š‹'?ñ|?(uó>y¿'Ôñ2¼O?€¿ÎÌ ?533?txó>y'?$uó>ð|?'?¾O¿]M³y?€¿›™?533?€>y?ÆøD?ü>ï|?öD?qxs¿·12y7ž>€¿hf&?533?½Ï2y?¿O?î|O?€¿±gó°ýÞ°0€¿533?533?ÿÿ¾y?ÆøD?–ü¾ð|?öD?pxs¿9ŒS17ž¾€¿@?533?qxó¾y'?)uó¾ð|?œ‹'?½O¿Üî^²y¿€¿ÏÌL?533?ß'¿y?rxó>'¿ð|?(uó>y¿”gJ²½O¿€¿œ™Y?533?ÅøD¿y?€>öD¿ï|?‡ü>v7ž¾&ñò±qxs¿€¿iff?533?½O¿y?óO¿í|?ÌÒÈ´/
µ€¿€¿63s?533?ä(,¿ó5?™À_¾%,¿5?ú»_¾Y7ž>Pù–3vxs¿€¿@?¤r¿ó5?ÍÔ¾ºo¿‚5?ãÈÔ¾y?Y°Ð³»O¿€¿ÍÌL=@?ÍÔ¾ó5?£r¿ÝÈÔ¾5?Ào¿¿O?Õ.[³y¿€¿ÍÌÌ=@?˜À_¾ó5?ã(,¿)¼_¾~5?}%,¿qxs?ÎÿÁ2v7ž¾€¿š™>@?ó5?ù5¿~5?h5¿€?˜3
‡˜3€¿ÍÌL>@?˜À_>ó5?â(,¿6¼_>}5?~%,¿pxs?rðI3€7ž>€¿€>@?ÍÔ>ó5?¡r¿æÈÔ>~5?½o¿ºO?H3y?€¿š™™>@? r5?ÍÔ¾¿o?~5?ßÈÔ¾y?ÀeO?€¿43³>@?à(,?ó5?“À_¾~%,?}5?+¼_¾w7ž>¶œ¯qxs?€¿ÎÌÌ>@?ö5?ó5?i5?}5?&O8±ñG81€?€¿hfæ>@?à(,?ó5?“À_>~%,?~5?/¼_>z7ž¾ÚW±qxs?€¿?@? r5?ÍÔ>¿o?~5?çÈÔ>y¿À®±»O?€¿ÎÌ ?@?ÍÔ>ó5?Ÿr?âÈÔ>}5?ÂoO¿PJ‡²y?€¿›™?@?“À_>ó5?Þ(,?,¼_>}5?€%,?qxs¿õlM²v7ž>€¿hf&?@?óµ2ó5?ô5?|5?j5?€¿Ê€²Ð•€2€¿533?@?À_¾ó5?Þ(,?5¼_¾|5?~%,?pxs¿Ì]ž²}7ž¾€¿@?@?
ÍÔ¾ó5?žr?èÈÔ¾{5?ÁoO¿Ž³y¿€¿ÏÌL?@?žr¿ó5?ÍÔ>Áo¿{5?æÈÔ>y¿3ì°½O¿€¿œ™Y?@?Ý(,¿ó5?‘À_>%,¿|5?.¼_>x7ž¾Z62qxs¿€¿iff?@?ó5¿ó5?j5¿{5?Bµè<µ€¿€¿63s?@?ÿ½O?¸þ9¾¿ŽO?Éù9¾\7ž>üׇ³uxs¿€¿ÏÌL?{xó¾½O?Jä°¾)ró¾‹O?¿ß°¾y?–\V´»O¿€¿ÍÌL=ÏÌL?Jä°¾½O?zxó¾²ß°¾‹O?4ró¾¿O?¦¬Ë³y¿€¿ÍÌÌ=ÏÌL?·þ9¾½O?¿äù9¾ŒO?¿qxs?n]2v7ž¾€¿š™>ÏÌL?½O?y¿O?;u¿€?;03š¡Õ3€¿ÍÌL>ÏÌL?·þ9>½O?Á¿òù9>O?¿oxs?íŒ27ž>€¿€>ÏÌL?Hä°>½O?vxó¾½ß°>O?.ró¾ºO?Éÿ3y?€¿š™™>ÏÌL?uxó>½O?Fä°¾0ró>O?·ß°¾y? ͹3¿O?€¿43³>ÏÌL?¿O?³þ9¾?O?êù9¾x7ž>õw93qxs?€¿ÎÌÌ>ÏÌL?yO?<uO?t~D±G½1€?€¿hfæ>ÏÌL?¿O?³þ9>O?õù9>}7ž¾ð_´pxs?€¿?ÏÌL?txó>½O?Eä°>.ró>ŠO?½ß°>y¿T¸¤³»O?€¿ÎÌ ?ÏÌL?Eä°>½O?sxó>¸ß°>O?3ró>¾O¿e1y?€¿›™?ÏÌL?³þ9>½O?¾?èù9>O??qxs¿8;S²w7ž>€¿hf&?ÏÌL?yO?y?ŠO?>u?€¿¬+‰2õÓ¼²€¿533?ÏÌL?°þ9¾½O?¾?éù9¾‰O??qxs¿=²g3x7ž¾€¿@?ÏÌL?Cä°¾½O?rxó>¼ß°¾‰O?4ró>¼O¿²§œ2y¿€¿ÏÌL?ÏÌL?qxó¾½O?Dä°>5ró¾‰O?»ß°>y¿ZÚ‡²½O¿€¿œ™Y?ÏÌL?½¿½O?±þ9>¿ŠO?ðù9>x7ž¾0Š3qxs¿€¿iff?ÏÌL?y¿½O?>u¿ŠO?Çd>µ×N
µ€¿€¿63s?ÏÌL?ݾd?i¨¾
ݾÛd?Σ¾]7ž>9æú³uxs¿€¿œ™Y?ó ¼¾d?r ˆ¾¼¾Úd?-œˆ¾y?8'/´»O¿€¿ÍÌL=œ™Y?r ˆ¾d?ò ¼¾"œˆ¾Úd?¼¾ÀO?ˆr´y¿€¿ÍÌÌ=œ™Y?h¨¾d?ݾܣ¾Ûd?
ݾrxs?t³§²s7ž¾€¿š™>œ™Y?d?yqè¾Ýd?'jè¾€?/¤53êE²3€¿ÍÌL>œ™Y?h¨>d?ݾì£d?
ݾoxs?m†³7ž>€¿€>œ™Y?p ˆ>d?ï ¼¾*œˆ>Ûd?¼¾ºO?~Œ³y?€¿š™™>œ™Y?î ¼>d?o ˆ¾
¼>Ûd?"œˆ¾y? “ɳ¿O?€¿43³>œ™Y?Ý>d?e¨¾&
Ý>Úd?棾w7ž>ðœ01qxs?€¿ÎÌÌ>œ™Y?vqè>d?4jè>Ød?G1×1,B[±€?€¿hfæ>œ™Y?Ý>d?e¨>#
Ý>Ød?ö£>7ž¾g30´pxs?€¿?œ™Y?í ¼>d?n ˆ> ¼>Úd?&œˆ>y¿Ýf¼3¼O?€¿ÎÌ ?œ™Y?n ˆ>d?í ¼>&œˆ>Ûd? ¼>½O¿èà‡2y?€¿›™?œ™Y?e¨>d?
Ý>å£d?+
Ý>qxs¿%»K³v7ž>€¿hf&?œ™Y?rqh2d?tqè>Ød?9jè>€¿øY83Äî´³€¿533?œ™Y?c¨¾d? Ý>죾Úd?&
Ý>pxs¿‘%ý²{7ž¾€¿@?œ™Y?l ˆ¾d?ì ¼>)œˆ¾Úd? ¼>½O¿±é0y¿€¿ÏÌL?œ™Y?ë ¼¾d?m ˆ> ¼¾Ød?+œˆ>y¿ÁÖ`3½O¿€¿œ™Y?œ™Y? ݾd?d¨>&
ݾÚd?é£>x7ž¾´ð
3qxs¿€¿iff?œ™Y?rqè¾d?0jè¾Úd?dµ;^è´€¿€¿63s?œ™Y?y–¾qxs?‘ý¹s–¾]ys?ô‰Ã½\7ž> «³uxs¿€¿iff?€¾qxs?¸þ9¾Õö¾[ys?ø9¾y?(Ïi´»O¿€¿ÍÌL=iff?¸þ9¾qxs?€¾ø9¾[ys?ðö¾¿O?bk´y¿€¿ÍÌÌ=iff?‘ýqxs?y–¾ŠÃ½]ys?·s–¾qxs? µS±t7ž¾€¿š™>iff?qxs?7ž¾]ys?Ì1ž¾€?03Ø„4€¿ÍÌL>iff?‘Ã=qxs?y–¾ŠÃ=]ys?µs–¾oxs?d.7ž>€¿€>iff?¶þ9>qxs?€¾ø9>[ys?Ûö¾»O?‚ä3y?€¿š™™>iff?€>qxs?µþ9¾ãö>]ys?þ÷9¾y?'h>´¿O?€¿43³>iff?y>qxs?‘ýºs>[ys?ŠÃ½v7ž>¿´ï3qxs?€¿ÎÌÌ>iff?|7ž>qxs?Õ1ž>[ys?GÈ.Ö ®€?€¿hfæ>iff?y>qxs?‘Ã=ºs>[ys?BŠÃ=|7ž¾Ë—¯´pxs?€¿?iff?€>qxs?´þ9>Ýö>[ys? ø9>y¿α3¼O?€¿ÎÌ ?iff?´þ9>qxs?€>
ø9>[ys?ßöO¿¦±y?€¿›™?iff?‘Ã=qxs?y> ŠÃ=[ys?¼s>qxs¿¸SŒ²u7ž>€¿hf&?iff?z72qxs?{7ž>[ys?Ò1ž>€¿°832ü
´€¿533?iff? ‘ýqxs?y>ŠÃ½[ys?ºs>pxs¿’L³{7ž¾€¿@?iff?±þ9¾qxs?€>ø9¾[ys?âöO¿ŸH3y¿€¿ÏÌL?iff?€¾qxs?²þ9>àö¾[ys?ø9>y¿ð•ž²½O¿€¿œ™Y?iff?y–¾qxs?
‘Ã=¼s–¾[ys?#ŠÃ=z7ž¾¬
à3qxs¿€¿iff?iff?z7ž¾qxs?Õ1ž¾[ys?ž'µvÕ§´€¿€¿63s?iff?KY¾%Ù|?'F½]S¾cÙ|?(ùE½\7ž>?4uxs¿€¿63s?{˜¾%Ù|??P¼½n“¾eÙ|?ZH¼½y?áþd5¾O¿€¿ÍÌL=63s??P¼½%Ù|?{˜¾æH¼½eÙ|?D“¾¾O?lÅ4y¿€¿ÍÌÌ=63s?%F½%Ù|?JY¾iùE½cÙ|?bS¾rxs?¶‹Æ²s7ž¾€¿š™>63s?%Ù|?a0 ¾cÙ|?* ¾€?gÉ2ú4€¿ÍÌL>63s?%F=%Ù|?IY¾vùE=cÙ|?SS¾pxs?×·³7ž>€¿€>63s?=P¼=%Ù|?y˜¾ðH¼=eÙ|?N“¾ºO?ꮓ´y?€¿š™™>63s?x˜>%Ù|?;P¼½r“>eÙ|?wH¼½y?TÅ7µÀO?€¿43³>63s?GY>%Ù|?"F½\S>cÙ|?XùE½z7ž>ä¸Â³qxs?€¿ÎÌÌ>63s?_0 >%Ù|?(* >cÙ|?ÿ²ú²„Íž1€?€¿hfæ>63s?GY>%Ù|?"F=]S>cÙ|?ˆùE={7ž¾*%š³pxs?€¿?63s?x˜>%Ù|?:P¼=q“>cÙ|?ÓH¼=y¿ŸŠ:4¼O?€¿ÎÌ ?63s?:P¼=%Ù|?w˜>ëH¼=cÙ|?‚“O¿å´y?€¿›™?63s?"F=%Ù|?FY>oùE=cÙ|?ZS>qxs¿%Ó¤2v7ž>€¿hf&?63s?\0 1%Ù|?]0 >eÙ|? * >€¿+×2j×)´€¿533?63s?F½%Ù|?EY>}ùE½cÙ|?WS>pxs¿³ñd³|7ž¾€¿@?63s?8P¼½%Ù|?v˜>òH¼½eÙ|?T“O¿(<˜´y¿€¿ÏÌL?63s?v˜¾%Ù|?9P¼=t“¾eÙ|?€H¼=y¿[¶5µ¾O¿€¿œ™Y?63s?EY¾%Ù|?F=^S¾cÙ|?aùE=w7ž¾8Xj³qxs¿€¿iff?63s?\0 ¾%Ù|?)* ¾cÙ|?¶[ˆµÚ¿,´€¿€¿63s?63s?€¿€¿iqè>d¿€??€?€?iqè>d¿€??€?y–¾qxs¿‘ý¹s–¾]ys¿ò‰Ã½\7ž>¿3uxs¿€¿€?ÍÌÌ=KY¾%Ù|¿'F½]S¾cÙ|¿1úE½a7ž>ÄX5uxs¿€¿€?ÍÌL=ݾd¿i¨¾
ݾÛd¿Ï£¾]7ž>Pô4uxs¿€¿€?š™¿½O¿¸þ9¾¿ŽO¿Åù9¾\7ž>ñZ2vxs¿€¿€?ÍÌL>ä(,¿ó5¿™À_¾€%,¿€5¿÷»_¾X7ž>Så³vxs¿€¿€?€>ÍøD¿y¿€¾ öD¿ñ|¿Uü¾Y7ž>£”³vxs¿€¿€?š™™>ïX¿rqè¾âøŒ¾UíX¿œxè¾÷Œ¾X7ž>.G†³vxs¿€¿€?43³>ég¿y7ž¾y–¾
g¿=ž¾kx–¾Y7ž>¨ï²vxs¿€¿€?ÎÌÌ>yp¿U0 ¾ÖDœ¾ßxp¿b6 ¾‰Dœ¾X7ž>C®²vxs¿€¿€?hfæ>{xs¿€7ž¾uxs¿Z7ž¾Z7ž>vxs¿€¿€??yp¿U0 >ÖDœ¾ßxp¿b6 >Dœ¾Z7ž>˜×|2vxs¿€¿€?ÎÌ g¿y7ž>y–¾g¿=ž>lx–¾[7ž>—<æ1vxs¿€¿€?›™?ïX¿rqè>âøŒ¾SíX¿Ÿxè>÷Œ¾Y7ž>±3vxs¿€¿€?hf&?ÍøD¿y?€¾ öD¿ò|?Rü¾X7ž>çM3vxs¿€¿€?533?ä(,¿ó5?™À_¾%,¿5?ú»_¾Y7ž>Pù–3vxs¿€¿€?@?ÿ½O?¸þ9¾¿ŽO?Éù9¾\7ž>üׇ³uxs¿€¿€?ÏÌL?ݾd?i¨¾
ݾÛd?Σ¾]7ž>9æú³uxs¿€¿€?œ™Y?y–¾qxs?‘ý¹s–¾]ys?ô‰Ã½\7ž> «³uxs¿€¿€?iff?KY¾%Ù|?'F½]S¾cÙ|?(ùE½\7ž>?4uxs¿€¿€?63s?€¿€¿ò5?õ5¿€??€¿€¿d?oqè¾€??€¿€¿%Ù|?I0 ¾€??€¿€¿$Ù|?k0 >€¿?€¿€¿ÿd?xqè>€¿?€¿€¿ñ5?ö5?€¿?€¿€¿kqè>d?€¿?€¿€¿R0 >%Ù|?€¿?€¿€¿a0 ¾$Ù|?€¿?€¿€¿tqè¾d?€¿?€¿€¿ô5¿ò5?€¿?€¿€¿d¿oqè>€¿?€¿€¿%Ù|¿T0 >€¿?€¿€¿$Ù|¿a0 ¾€¿?€¿€¿d¿kqè¾€¿?€¿€¿÷5¿ï5¿€??€¿€¿}qè¾þd¿€??€¿€¿u0 ¾$Ù|¿€??€¿€¿C0 >&Ù|¿€??€?€?ò5?õ5¿€??€?€?€?d?oqè¾€??€?€?€?%Ù|?I0 ¾€??€?€?€?$Ù|?k0 >€¿?€?€?€?ÿd?xqè>€¿?€?€?€?ñ5?ö5?€¿?€?€?€?kqè>d?€¿?€?€?€?R0 >%Ù|?€¿?€?€?€?a0 ¾$Ù|?€¿?€?€?€?tqè¾d?€¿?€?€?€?ô5¿ò5?€¿?€?€?€?d¿oqè>€¿?€?€?€?%Ù|¿T0 >€¿?€?€?€?$Ù|¿a0 ¾€¿?€?€?€?d¿kqè¾€¿?€?€?€?÷5¿ï5¿€??€?€?€?}qè¾þd¿€??€?€?€?u0 ¾$Ù|¿€??€?€?€?C0 >&Ù|¿€??€?4@´€?€?€?A€?Cube$???H


  (0@?¿?€?€¿€¿~ä0?ˆ¿±>¿¿?€?€¿€¿€?ü$?ˆ¿±>???€?€¿€¿€?~ä0?@ '?¿??€?€¿€¿€?€?ü$?@ '???¿€?€¿€¿€?””ž>ƒ¿±>¿?¿€?€¿€¿€?€?<æ„;ƒ¿±>?¿¿€¿€¿€¿€?ƒ¿±>@ '?¿¿¿€¿€¿€¿€?€?@ '?@ '????€?€¿€¿””ž>@ '?¿??€?€¿€¿€?<æ„;@ '???¿€¿€¿€¿ƒ¿±>ƒ¿±>¿?¿€¿€¿€¿€?@ '?ƒ¿±>?¿¿€¿€¿€¿ƒ¿±><æ„;?¿?€¿€¿€¿€?ƒ¿±>””ž>¿¿?€¿€¿€¿€?€?@ '?””ž>¿¿¿€¿€¿€¿€?@ '?<æ„;¿¿?€¿€¿€¿¸µ0?””ž>¿??€¿€¿€¿€?4ö~?””ž>¿?¿€¿€¿€¿€?€?4ö~?<æ„;¿¿¿€¿€¿€¿€?¸µ0?<æ„;?¿¿€?€?€¿””ž><æ„;??¿€?€?€¿€?<æ„;<æ„;???€?€?€¿€?€?<æ„;””ž>?¿?€?€?€¿€?””ž>””ž>???€?ï=+A
pCylinder1ð|4@´€?€?€?à,(-./,01.230452674896:;8<=:>?<@A>BC@DEBFGDHIFJKHLMJNOLPQNRSPT)UUVWWXYYZ[[\]]^__`aabccdeefgghiijkklmmnoopqqrsstuuvwwxyyz{  

  ! !
!"
""###$$$%%%&&&'''**+| (@{xs¿€¿€7ž¾uxs¿X7ž¾Y7ž>vxs¿€¿ƒù">ÆO¿€¿y¿½O¿y¿y?½O¿€¿ÍÌL=ƒù">y¿€¿ÅO¿y¿¿O¿¿O?y¿€¿ÍÌÌ=ƒù">7ž¾€¿yxs¿s7ž¾qxs¿rxs?s7ž¾€¿š™>ƒù">€¿€¿€¿€?€¿ÍÌL>ƒù">7ž>€¿xxs¿~7ž>pxs¿pxs?~7ž>€¿€>ƒù">y?€¿ÂO¿y?ºO¿ºO?y?€¿š™™>ƒù">ÁO?€¿y¿¿O?y¿y?¿O?€¿43³>ƒù">uxs?€¿|7ž¾qxs?v7ž¾v7ž>qxs?€¿ÎÌÌ>ƒù">€?€¿€?€?€¿hfæ>ƒù">uxs?€¿|7ž>qxs?{7ž>{7ž¾pxs?€¿?ƒù">ÀO?€¿yO?y?y¿»O?€¿ÎÌ ?ƒù">y?€¿¿O?y?¾O?¾O¿y?€¿›™?ƒù">|7ž>€¿sxs?x7ž>qxs?qxs¿x7ž>€¿hf&?ƒù">3€¿€?€?€¿€¿533?ƒù">y7ž¾€¿rxs?}7ž¾qxs?pxs¿|7ž¾€¿@?ƒù">y¿€¿¾O?y¿½O?½O¿y¿€¿ÏÌL?ƒù">½O¿€¿yO¿y?y¿½O¿€¿œ™Y?ƒù">qxs¿€¿z7ž>qxs¿x7ž>x7ž¾qxs¿€¿iff?ƒù">€¿€¿€¿€¿€¿63s?ƒù">{xs¿€?€7ž¾uxs¿X7ž¾Y7ž>vxs¿€¿Dvô>ÆO¿€?y¿½O¿y¿y?½O¿€¿ÍÌL=Dvô>y¿€?ÅO¿y¿¿O¿¿O?y¿€¿ÍÌÌ=Dvô>7ž¾€?yxs¿s7ž¾qxs¿rxs?s7ž¾€¿š™>Dvô>€?€¿€¿€?€¿ÍÌL>Dvô>7ž>€?xxs¿~7ž>pxs¿pxs?~7ž>€¿€>Dvô>y?€?ÂO¿y?ºO¿ºO?y?€¿š™™>Dvô>ÁO?€?y¿¿O?y¿y?¿O?€¿43³>Dvô>uxs?€?|7ž¾qxs?v7ž¾v7ž>qxs?€¿ÎÌÌ>Dvô>€?€?€?€?€¿hfæ>Dvô>uxs?€?|7ž>qxs?{7ž>{7ž¾pxs?€¿?Dvô>ÀO?€?yO?y?y¿»O?€¿ÎÌ ?Dvô>y?€?¿O?y?¾O?¾O¿y?€¿›™?Dvô>|7ž>€?sxs?x7ž>qxs?qxs¿x7ž>€¿hf&?Dvô>3€?€?€?€¿€¿533?Dvô>y7ž¾€?rxs?}7ž¾qxs?pxs¿|7ž¾€¿@?Dvô>y¿€?¾O?y¿½O?½O¿y¿€¿ÏÌL?Dvô>½O¿€?yO¿y?y¿½O¿€¿œ™Y?Dvô>qxs¿€?z7ž>qxs¿x7ž>x7ž¾qxs¿€¿iff?Dvô>€¿€?€¿€¿€¿63s?Dvô>€¿€¿iqè>d¿€??€?€?iqè>d¿€??ƒù"?{xs¿€?€7ž¾uxs¿X7ž¾Y7ž>vxs¿€¿€?Dvô>{xs¿€¿€7ž¾uxs¿X7ž¾Y7ž>vxs¿€¿€?ƒù">ÆO¿€¿y¿€¿y?¼O¿€¿ÍÌL=ƒù">{xs¿€¿€7ž¾€¿\7ž>uxs¿€¿ƒù">y¿€¿ÅO¿€¿¿O?y¿€¿ÍÌÌ=ƒù">€¿€¿ò5?õ5¿€??7ž¾€¿yxs¿€¿rxs?t7ž¾€¿š™>ƒù">€¿€¿d?oqè¾€??€¿€¿€¿€?ãÃ3€¿ÍÌL>ƒù">€¿€¿%Ù|?I0 ¾€??7ž>€¿xxs¿€¿pxs?7ž>€¿€>ƒù">€¿€¿$Ù|?k0 >€¿?y?€¿ÂO¿€¿ºO?y?€¿š™™>ƒù">€¿€¿ÿd?xqè>€¿?ÁO?€¿y¿€¿y?¿O?€¿43³>ƒù">€¿€¿ñ5?ö5?€¿?uxs?€¿|7ž¾€¿v7ž>qxs?€¿ÎÌÌ>ƒù">€¿€¿kqè>d?€¿?€?€¿€¿Çpß"€?€¿hfæ>ƒù">€¿€¿Q0 >%Ù|?€¿?uxs?€¿|7ž>€¿z7ž¾pxs?€¿?ƒù">€¿€¿b0 ¾$Ù|?€¿?ÀO?€¿y?€¿y¿¼O?€¿ÎÌ ?ƒù">€¿€¿sqè¾d?€¿?y?€¿¿O?€¿¾O¿y?€¿›™?ƒù">€¿€¿ô5¿ò5?€¿?|7ž>€¿sxs?€¿qxs¿x7ž>€¿hf&?ƒù">€¿€¿d¿oqè>€¿?3€¿€?€¿€¿Ö;г€¿533?ƒù">€¿€¿%Ù|¿U0 >€¿?y7ž¾€¿rxs?€¿pxs¿|7ž¾€¿@?ƒù">€¿€¿$Ù|¿a0 ¾€¿?y¿€¿¾O?€¿½O¿y¿€¿ÏÌL?ƒù">€¿€¿d¿kqè¾€¿?½O¿€¿y?€¿y¿½O¿€¿œ™Y?ƒù">€¿€¿÷5¿ï5¿€??qxs¿€¿z7ž>€¿x7ž¾qxs¿€¿iff?ƒù">€¿€¿}qè¾þd¿€??€¿€¿€¿»XŒµ€¿€¿63s?ƒù">€¿€¿u0
   + *+**6+)*)*56)5*5A6()()45(4)5@A4@5@LA'('(34'3(4?@3?4@KL?K@KWL&'&'23&2'3>?2>3?JK>J?KVWJVKVbWVabambJUVUaV>IJIUJ2=>=I>&121=2almlxmlwxU`a`lakwl`klkvwITUT`U=HIHTI_k`T_`jvk_jkjuvS_THST<H=1<=^j_S^_iuj^ijituGSH<GHR^SGRS]i^R]^hti]hihstgshgrs\h]\ghQ]RQ\]FRGFQR;G<;FGfrgfqr[g\[fgP\QP[\EQFEPQeqfepqZf[ZefO[POZ[dpedopYeZYdecodcnoXcdXdYMXYNYZMYNNZOBMNBNCCNO7BCCODDOPDPE7C88CD,789DE8D9,8--89!,-9E::EF:F;!-"!"-9..9:"-./:;.:/" ".##./"#/;00;<0<1  # #/$$/0#$%01$0%%1&%&



$$%%

y (°?¥?€?€¿€¿ÍÌÌ>¥?€?€¿€¿ÍÌÌ=š™™>¥?€?€¿€¿ÍÌL>ÌÌL>¥?€?€¿€¿š™™>ÌÌÌ=¥?€?€¿€¿ÍÌÌ>¥?€?€¿€¿?ÐÌ̽¥?€?€¿€¿š™?ÌÌL¾¥?€?€¿€¿333?š™™¾¥?€?€¿€¿ÍÌL?ÎÌ̾¥?€?€¿€¿gff?¿¥?€?€¿€¿€??ÍÌ̤ÍÌÌ>€?€¿€¿ÍÌÌ=ÍÌÌ>ÍÌ̤ÍÌÌ>€?€¿€¿ÍÌÌ=ÍÌÌ=š™™>ÍÌ̤ÍÌÌ>€?€¿€¿ÍÌL>ÍÌÌ=ÌÌL>ÍÌ̤ÍÌÌ>€?€¿€¿š™™>ÍÌÌ=ÌÌÌ=ÍÌ̤ÍÌÌ>€?€¿€¿ÍÌÌ>ÍÌÌ=ÍÌ̤ÍÌÌ>€?€¿€¿?ÍÌÌ=ÐÌ̽ÍÌ̤ÍÌÌ>€?€¿€¿š™?ÍÌÌ=ÌÌL¾ÍÌ̤ÍÌÌ>€?€¿€¿333?ÍÌÌ=š™™¾ÍÌ̤ÍÌÌ>€?€¿€¿ÍÌL?ÍÌÌ=ÎÌ̾ÍÌ̤ÍÌÌ>€?€¿€¿gff?ÍÌÌ=¿ÍÌ̤ÍÌÌ>€?€¿€¿€?ÍÌÌ=?𙙤š™™>€?€¿€¿ÍÌL>ÍÌÌ>𙙤š™™>€?€¿€¿ÍÌÌ=ÍÌL>š™™>𙙤š™™>€?€¿€¿ÍÌL>ÍÌL>ÌÌL>𙙤š™™>€?€¿€¿š™™>ÍÌL>ÌÌÌ=𙙤š™™>€?€¿€¿ÍÌÌ>ÍÌL>𙙤š™™>€?€¿€¿?ÍÌL>ÐÌÌ½š™™¤š™™>€?€¿€¿š™?ÍÌL>ÌÌL¾š™™¤š™™>€?€¿€¿333?ÍÌL>𙙾𙙤š™™>€?€¿€¿ÍÌL?ÍÌL>ÎÌÌ¾š™™¤š™™>€?€¿€¿gff?ÍÌL>¿š™™¤š™™>€?€¿€¿€?ÍÌL>?ÌÌL¤ÌÌL>€?€¿€¿š™™>ÍÌÌ>ÌÌL¤ÌÌL>€?€¿€¿ÍÌÌ=š™™>š™™>ÌÌL¤ÌÌL>€?€¿€¿ÍÌL>š™™>ÌÌL>ÌÌL¤ÌÌL>€?€¿€¿š™™>š™™>ÌÌÌ=ÌÌL¤ÌÌL>€?€¿€¿ÍÌÌ>š™™>ÌÌL¤ÌÌL>€?€¿€¿?š™™>ÐÌ̽ÌÌL¤ÌÌL>€?€¿€¿š™?š™™>ÌÌL¾ÌÌL¤ÌÌL>€?€¿€¿333?š™™>š™™¾ÌÌL¤ÌÌL>€?€¿€¿ÍÌL?š™™>ÎÌ̾ÌÌL¤ÌÌL>€?€¿€¿gff?š™™>¿ÌÌL¤ÌÌL>€?€¿€¿€?š™™>?ÌÌÌ£ÌÌÌ=€?€¿€¿ÍÌÌ>ÍÌÌ>ÌÌÌ£ÌÌÌ=€?€¿€¿ÍÌÌ=ÍÌÌ>š™™>ÌÌÌ£ÌÌÌ=€?€¿€¿ÍÌL>ÍÌÌ>ÌÌL>ÌÌÌ£ÌÌÌ=€?€¿€¿š™™>ÍÌÌ>ÌÌÌ=ÌÌÌ£ÌÌÌ=€?€¿€¿ÍÌÌ>ÍÌÌ>ÌÌÌ£ÌÌÌ=€?€¿€¿?ÍÌÌ>ÐÌ̽ÌÌÌ£ÌÌÌ=€?€¿€¿š™?ÍÌÌ>ÌÌL¾ÌÌÌ£ÌÌÌ=€?€¿€¿333?ÍÌÌ>š™™¾ÌÌÌ£ÌÌÌ=€?€¿€¿ÍÌL?ÍÌÌ>ÎÌ̾ÌÌÌ£ÌÌÌ=€?€¿€¿gff?ÍÌÌ>¿ÌÌÌ£ÌÌÌ=€?€¿€¿€?ÍÌÌ>?€?€¿€¿?ÍÌÌ>€?€¿€¿ÍÌÌ=?š™™>€?€¿€¿ÍÌL>?ÌÌL>€?€¿€¿š™™>?



  !" !"!#$"#$#%&$%&%'Q&'Q'R½¾¿¿H½¿IHÀI¿¿wÀI<HH<=<)=<()()I><>(<(>*(*(í*>+*+*I?>?+>ìíìÙíì+ìØÙØÅÙîìîØìØÄÅ}ÅÄ}Ä~ÚÄØîÚØ~ÄÆÚÆÄ~Æî,+?,+ïÚîïîÆÇÇÛÆÚïÛÚÛÇÆ,ÇÈÈïÜÇÛÜÈÇðÛïðïðÜÛÈÉÉÝÈÜÝÉÈñÜðñÝÜðñðÉÊʃÞÉÝÞÊÉòÝñòÞÝñòñƒÊ˃ËßÊÞßËÊóÞòóßÞËÌÌàËßàÌËÌÍÍòóòôßóôàßáÌàáÍÌÍÎÎóôóõàôõáàâÍáâÎÍÎÏψ ô õôöáõöâáãÎâãÏΈÏЈÐ 
õ 
öõ÷âö÷ãâäÏãäÐÏÐÑÑŠ 
  ö
 ÷öøã÷øäãåÐäåÑЊÑÒŠÒ
 
 ÷  ø÷ùäøùåäæÑåæÒÑÒÓÓŒ     
ø 
ùøúåùúæåçÒæçÓÒŒÓÔŒÔ!  !
 ù
úùûæúûçæèÓçèÔÓÔÕÕŽ"
!"
úûúüçûüèçéÔèéÕÔŽÕÖŽÖ#"#ûüûýèüýéèêÕéêÖÕÖ××××ë×Ö×ëëÖêëëÿÿëêÿþêéÿêþþéýÿÿþþýþ'''ýýüü';˜;'&&;'&%&%˜;G˜G;&::&%G;:%$$$#GP|P:%99%$G:FF:9PGF9$88$#F988#77#"F8EE87PFE7"6E766"!|PÃÃ{|PEOÃPO6!55! E6DD65OED5 4D544 ÃOÂÂzÃODNÂON433D4CNDCC4332C322ÂNMNCM211C2BB21MCB10B100ÂMÁÁyÂMBLÁML0//B0ALBAA0//.A/..ÁLKLAK.---,A.@@.-@-,KA@@,?J@?K@JJ?IÀJIÀKJÁKÀÀxÁš (àLÅO¿€¿y¿ÜòN¿xÐ ½e[¿y?·Òª¯½O¿€¿ÍÌL=ƒù">ÅO¿€?y¿ÛòN¿wÐ =e[¿y?ÂW’°½O¿€¿ÍÌL=Dvô>zxs¿€?7ž¾fHs¿vÐ =!ž¾\7ž>'ÇQ1uxs¿€¿Dvô>zxs¿€¿7ž¾fHs¿vÐ ½!ž¾\7ž>'ÇQ±uxs¿€¿ƒù">y¿€¿ÅO¿c[¿yÐ ½ÜòN¿¾O?Ÿ+ž°y¿€¿ÍÌÌ=ƒù">y¿€?ÅO¿c[¿yÐ =ÜòN¿¾O?ž+ž0y¿€¿ÍÌÌ=Dvô>7ž¾€¿yxs¿9ž¾wÐ ½cHs¿rxs?àÇw/t7ž¾€¿š™>ƒù">7ž¾€?yxs¿9ž¾wÐ =cHs¿rxs?àÇw¯t7ž¾€¿š™>Dvô> Ó²€¿€¿qÐ ½xÍ¿€?ɲT¨/€¿ÍÌL>ƒù"> Ó²€?€¿qÐ =xÍ¿€?É2T¨/€¿ÍÌL>Dvô>}7ž>€¿wxs¿Dž>wÐ ½aHs¿pxs?Ùͱ7ž>€¿€>ƒù">}7ž>€?wxs¿Dž>wÐ =aHs¿pxs?ÙÍ17ž>€¿€>Dvô>y?€¿ÂO¿e[?yÐ ½ÛòN¿½O?—µ-°y?€¿š™™>ƒù">y?€?ÂO¿e[?yÐ =ÛòN¿½O?—µ-0y?€¿š™™>Dvô>ÁO?€¿y¿ÜòN?yÐ ½c[¿y?ß!U0¾O?€¿43³>ƒù">ÁO?€?y¿ÜòN?yÐ =c[¿y?ß!U°¾O?€¿43³>Dvô>uxs?€¿}7ž¾cHs?uÐ ½;ž¾v7ž>ÿ¬H¯qxs?€¿ÎÌÌ>ƒù">uxs?€?}7ž¾cHs?uÐ =;ž¾v7ž>ÿ¬H/qxs?€¿ÎÌÌ>Dvô>€?€¿Vt±xÍ?rÐ ½¡™¬¸]ô®€?€¿hfæ>ƒù">€?€?Vt±xÍ?rÐ =¡™¬¸]ô.€?€¿hfæ>Dvô>uxs?€¿|7ž>cHs?tÐ ½Bž>|7ž¾‡ß0pxs?€¿?ƒù">uxs?€?|7ž>cHs?tÐ =Bž>|7ž¾‡ß°pxs?€¿?Dvô>ÀO?€¿y?ÚòN?vÐ ½h[?y¿µI1»O?€¿ÎÌ ?ƒù">ÀO?€?y?ÚòN?vÐ =h[?y¿µI±»O?€¿ÎÌ ?Dvô>y?€¿¿O?c[?yÐ ½ÜòN?¾O¿ Ë=¯y?€¿›™?ƒù">y?€?¿O?c[?xÐ =ÜòN?¾O¿žË=/y?€¿›™?Dvô>{7ž>€¿sxs?=ž>xÐ ½cHs?qxs¿W ¯w7ž>€¿hf&?ƒù">{7ž>€?sxs?:ž>_Ð =cHs?qxs¿Ë¹r1u7ž>€¿hf&?Dvô>hµM2€¿€?sÐ ½xÍ?€¿‡çö¯ž9­€¿533?ƒù">hµM2€?€?@Ð =xÍ?€¿7ˆ¯F+-€¿533?Dvô>{7ž¾€¿sxs??ž¾wÐ ½cHs?qxs¿—Þ±y7ž¾€¿@?ƒù">{7ž¾€?sxs??ž¾]Ð =cHs?qxs¿çOƒ±y7ž¾€¿@?Dvô>y¿€¿¾O?e[¿yÐ ½ÛòN?½O¿° ±y¿€¿ÏÌL?ƒù">y¿€?¾O?f[¿yÐ =ÛòN?¼O¿Žeï/y¿€¿ÏÌL?Dvô>¾O¿€¿y?ÜòN¿oÐ ½c[?y¿×ä­¾O¿€¿œ™Y?ƒù">¾O¿€?y?ÜòN¿oÐ =c[?y¿×äO¿€¿œ™Y?Dvô>qxs¿€¿z7ž>cHs¿]Ð ½;ž>v7ž¾õíž/qxs¿€¿iff?ƒù">qxs¿€?z7ž>cHs¿]Ð =<ž>v7ž¾èkb0qxs¿€¿iff?Dvô>€¿€¿¿cÐ ½æPѰ˜x&3€¿€¿63s?ƒù">€¿€?¿cÐ =æPѰ˜x&³€¿€¿63s?Dvô>L¿ ”?Üž¿ÉŽL¿f6 >³ž¿y?ÄW€±½O¿€¿ÍÌL=ÎÌ ?yp¿ ”?×Dœ¾Ýxp¿d6 >Dœ¾]7ž>T£2uxs¿€¿ÎÌ ?Üž¿ ”?L¿±ž¿f6 >ÊŽL¿¾O?qÏ1y¿€¿ÍÌÌ=ÎÌ ?ÕDœ¾ ”?yp¿¤Dœ¾c6 >Úxp¿rxs?>ÆÌ±t7ž¾€¿š™>ÎÌ ?P­ ”?-Ù|¿`6 >èØ|¿€?d_ê2‡”1€¿ÍÌL>ÎÌ ?ÓDœ> ”?yp¿°Dœ>`6 >Øxp¿pxs?.ì2€7ž>€¿€>ÎÌ ?Ùž? ”?ÿŽL¿³ž?]6 >ÉŽL¿½O?CÚ¡1y?€¿š™™>ÎÌ ?þŽL? ”?Úž¿ÊŽL?^6 >±ž¿y?¥cˆ±¾O?€¿43³>ÎÌ ?yp? ”?ÓDœ¾Úxp?`6 >§Dœ¾v7ž>ÑÇ1qxs?€¿ÎÌÌ>ÎÌ ?)Ù|? ”?Tq±èØ|?`6 >0¦Id±€?€¿hfæ>ÎÌ ?yp? ”?ÒDœ>Øxp?_6 >ªDœ>z7ž¾$-å1pxs?€¿?ÎÌ ?ýŽL? ”?Øž?ÇŽL?]6 >´ž?y¿Á…ë.»O?€¿ÎÌ ?ÎÌ ?Øž? ”?üŽL?±ž?_6 >ÊŽL?¾O¿˜¼œ¯y?€¿›™?ÎÌ ?ÑDœ> ”?yp?¦Dœ>Z6 >Úxp?qxs¿eÝœ°v7ž>€¿hf&?ÎÌ ?-K2 ”?'Ù|?S6 >èØ|?€¿– ²Kù!1€¿533?ÎÌ ?ÑDœ¾ ”?yp?¬Dœ¾Z6 >Úxp?pxs¿$F 2{7ž¾€¿@?ÎÌ ?מ¿ ”?ûŽL?´ž¿_6 >ÉŽL?¼O¿DJ…1y¿€¿ÏÌL?ÎÌ ?ûŽL¿ ”?מ?ÊŽL¿_6 >±ž?y¿´p£±¾O¿€¿œ™Y?ÎÌ ?yp¿ ”?ÐDœ>Úxp¿`6 >¥Dœ>u7ž¾:_v²qxs¿€¿iff?ÎÌ ?%Ù|¿ ”?èØ|¿^6 >{Ųw´€¿€¿63s?ÎÌ ?ÌøD¿Þ§?ÿ øD¿=ž>6¿y?©Ö{±¼O¿€¿ÍÌL=›™g¿Þ§?y–¾g¿
=ž>nx–¾]7ž>Üu¾2uxs¿€¿›™¿Þ§?ÌøD¿3¿=ž>
øD¿¾O?ä$²y¿€¿ÍÌÌ=›™?y–¾Þ§?çg¿ƒx–¾=ž>g¿rxs?…zj²t7ž¾€¿š™>›™?@Ns²Þ§?yxs¿=ž>Šws¿€?+Z3 Ì2€¿ÍÌL>›™?y§?åg¿x>=ž>g¿pxs?À 2€7ž>€¿€>›™§?ÊøD¿6?=ž> øD¿¼O?Œy?€¿š™™>›™?ÉøD?Þ§?Á¿
øD?=ž>5¿y?{6•2½O?€¿43³>›™g?Þ§?y–¾g?=ž>†x–¾u7ž>šñÖ±qxs?€¿ÎÌÌ>›™?uxs?Þ§?À`h±Œws?=ž>Þίí$Ÿ0€?€¿hfæ>›™g?Þ§?y>g?=ž>‰x>y7ž¾ 22qxs?€¿?›™?ÈøD?Þ§?¿? øD?=ž>8?y¿R>]²»O?€¿ÎÌ ?›™?¿§?ÇøD?4?=ž>
øD?¿O¿„
y?€¿›™?›™?y§?ág?‡x>=ž>g?qxs¿DyJ²v7ž>€¿hf&?›™?ø£C2Þ§?sxs?=ž>Œws?€¿Bø°Z!0€¿533?›™?y–¾Þ§?ág?x–¾=ž>g?pxs¿–XÖ0{7ž¾€¿@?›™¿Þ§?ÆøD?6¿=ž>
øD?½O¿Mzb2y¿€¿ÏÌL?›™?ÆøD¿Þ§?¾? øD¿=ž>4?y¿„52¾O¿€¿œ™Y?›™g¿Þ§?y>g¿=ž>†x>u7ž¾öR{²qxs¿€¿iff?›™?qxs¿Þ§?Šws¿=ž>à|ɳd›´€¿€¿63s?›™?öˆ8¿\º?¿s‡8¿Ÿxè>y¿y?“Ò²¼O¿€¿ÍÌL=hf&?ïX¿\º?ãøŒ¾SíX¿ xè>¡÷Œ¾]7ž>a¥3uxs¿€¿hf&?¿\º?öˆ8¿w¿Ÿxè>u‡8¿¾O?ÃHŠ2y¿€¿ÍÌÌ=hf&?áøŒ¾\º?ïX¿µ÷Œ¾¡xè>OíX¿rxs?5`²t7ž¾€¿š™>hf&?€ñc²\º?d¿Ÿxè>,d¿€?
ÎA3ï†Å2€¿ÍÌL>hf&?ßøŒ>\º?ïX¿Á÷Œ>Ÿxè>OíX¿pxs?”2€7ž>€¿€>hf&?Ž?\º?óˆ8¿z?œxè>s‡8¿¼O?¦Oí±y?€¿š™™>hf&?òˆ8?\º?¿t‡8?žxè>x¿y?ÇG‡°½O?€¿43³>hf&?ïX?\º?ßøŒ¾PíX?xè>º÷Œ¾w7ž>@ 2qxs?€¿ÎÌÌ>hf&?d?\º?€´Y±,d?œxè>^«/þÝ'°€?€¿hfæ>hf&?ïX?\º?ÞøŒ>PíX?xè>¼÷Œ>z7ž¾üÝ»±qxs?€¿?hf&?òˆ8?\º?Ž?s‡8?œxè>z?y¿ûÌ%±¼O?€¿ÎÌ ?hf&?Ž?\º?ñˆ8?w?šxè>v‡8?¿O¿@†²y?€¿›™?hf&?ÞøŒ>\º?ïX?º÷Œ>xè>PíX?qxs¿sHW1x7ž>€¿hf&?hf&?¨I72\º?d?˜xè>.d?€¿I˜52¹±€¿533?hf&?ÞøŒ¾\º?ïX?¾÷Œ¾›xè>PíX?pxs¿{˱|7ž¾€¿@?hf&?¿\º?ðˆ8?{¿›xè>s‡8?»O¿6r+³y¿€¿ÏÌL?hf&?ðˆ8¿\º??v‡8¿šxè>w?y¿×¾²¾O¿€¿œ™Y?hf&? ïX¿\º?ÝøŒ>PíX¿–xè>¸÷Œ>v7ž¾#­m2qxs¿€¿iff?hf&?d¿\º?.d¿–xè>ôäY´ÖÉÕ´€¿€¿63s?hf&?å'¿Œ<Ë?zxó¾'¿î|?*uó¾y?a«±½O¿€¿ÍÌL=533?ÌøD¿Œ<Ë?€¾ öD¿ï|?^ü¾^7ž>2Ê3uxs¿€¿533?zxó¾Œ<Ë?å'¿&uó¾î|?ž‹'¿¾O?³*²y¿€¿ÍÌÌ=533?€¾Œ<Ë?ËøD¿…ü¾í|? öD¿rxs?Í02s7ž¾€¿š™>533?à÷N²Œ<Ë?ÃO¿í|O¿€?—3 s[3€¿ÍÌL>533?€>Œ<Ë?ÊøD¿–ü>í|?öD¿pxs? _»1~7ž>€¿€>533?uxó>Œ<Ë?ã'¿,uó>í|?'¿¼O?òù2y?€¿š™™>533?â'?Œ<Ë?wx󾟋'?ì|?*uó¾y?ìŽ ²¾O?€¿43³>533?ÈøD?Œ<Ë?€¾öD?ì|?Šü¾v7ž>q‰2qxs?€¿ÎÌÌ>533?ÀO?Œ<Ë?¬E±ôO?ì|?Å…1¸±€?€¿hfæ>533?ÈøD?Œ<Ë?€>öD?í|?‘ü>{7ž¾-%¢1pxs?€¿?533?á'?Œ<Ë?txó>'?î|?.uó>y¿:J¨1¼O?€¿ÎÌ ?533?txó>Œ<Ë?à'?&uó>í|?ž‹'?¾O¿&.²y?€¿›™?533?€>Œ<Ë?ÆøD?Žü>í|?öD?qxs¿ÐJR2y7ž>€¿hf&?533?øk&2Œ<Ë?¿O?ì|O?€¿:x¬±³¦z1€¿533?533?€¾Œ<Ë?ÆøD?•ü¾í|?öD?pxs¿½¨Q1~7ž¾€¿@?533?rxó¾Œ<Ë?ß'?,uó¾í|?'?¼O¿¾Vª1y¿€¿ÏÌL?533?ß'¿Œ<Ë?rxó>Ÿ‹'¿ì|?*uó>y¿‚•²½O¿€¿œ™Y?533?ÅøD¿Œ<Ë?€> öD¿ë|?‹ü>v7ž¾!;³2qxs¿€¿iff?533?½O¿Œ<Ë?öO¿ë|?ŽE´´Êø´€¿€¿63s?533?£r¿z‚Ú?ÍÔ¾¼o¿5?ßÈÔ¾y?R8ž±½O¿€¿ÍÌL=@?ã(,¿z‚Ú?›À_¾~%,¿5?¼_¾^7ž>P¨_3uxs¿€¿@?ÍÔ¾z‚Ú?£r¿ÞÈÔ¾5?¾o¿½O?õÿ²y¿€¿ÍÌÌ=@?˜À_¾z‚Ú?ã(,¿%¼_¾5?|%,¿qxs?³ȱu7ž¾€¿š™>@?å4²z‚Ú?ù5¿5?f5¿€?Sð4hö4€¿ÍÌL>@?•À_>z‚Ú?á(,¿4¼_>5?{%,¿pxs?ˆ62€7ž>€¿€>@?ÍÔ>z‚Ú?¡r¿ãÈÔ>5?¾o¿¼O?ëß-2y?€¿š™™>@? r?z‚Ú?ÍÔ¾¾o?€5?áÈÔ¾y?•ñO?€¿43³>@?à(,?z‚Ú?•À_¾|%,?5?'¼_¾v7ž>'Zð±qxs?€¿ÎÌÌ>@?ö5?z‚Ú?€Å,±f5?5?²6æ2€?€¿hfæ>@?à(,?z‚Ú?“À_>|%,?€5?.¼_>z7ž¾x¤²qxs?€¿?@? r?z‚Ú?ÍÔ>¾o?5?åÈÔ>y¿¸¢1»O?€¿ÎÌ ?@?ÍÔ>z‚Ú?Ÿr?ßÈÔ>}5?Áo?¿O¿6³y?€¿›™?@?’À_>z‚Ú?Þ(,?*¼_>~5?}%,?qxs¿Dj2w7ž>€¿hf&?@?@u2z‚Ú?ô5?5?g5?€¿tº¼²ÚÁ¼2€¿533?@?’À_¾z‚Ú?Þ(,?3¼_¾~5?}%,?pxs¿¦ý´²|7ž¾€¿@?@?ÍÔ¾z‚Ú?žr?æÈÔ¾}5?¿oO¿ñk<²y¿€¿ÏÌL?@?žr¿z‚Ú?ÍÔ>Áo¿}5?âÈÔ>y¿1_Û²¾O¿€¿œ™Y?@?Ý(,¿z‚Ú?‘À_>~%,¿}5?+¼_>w7ž¾ƒg0qxs¿€¿iff?@?ó5¿z‚Ú?h5¿}5?¹­û´Ý£û´€¿€¿63s?@?zxó¾Þç?Jä°¾êèð¾”ÍO?o#±¾©ª?lÅ-<DúK¿€¿ÍÌL=ÏÌL?¿Þç?¹þ9¾¿O?Àù9¾]7ž>„@3uxs¿€¿ÏÌL?Jä°¾Þç?zxó¾ ½¯¾üdN?pµö¾“•M?\Øg¼u¿€¿ÍÌÌ=ÏÌL?·þ9¾Þç?¿„@O?ü»¿Kju?ÙÈ´<ÅC‘¾€¿š™>ÏÌL?_²Þç?y¿Û;@O?ÎF¿öö?Ø|=¼¡GC¼€¿ÍÌL>ÏÌL?µþ9>Þç?À¿r7>@O?׿¿<q?ôÈ´<7ûª>€¿€>ÏÌL?Fä°>Þç?vx󾤱>@O?Ápò¾‘ßP?ÿ|=¼Óû?€¿š™™>ÏÌL?uxó>Þç?Hä°¾î_ó>ùdN?åS´¾O?÷®ó;û7O?€¿43³>ÏÌL?¿ç?µþ9¾¶I
?P|P?þ 7¾ô•>±-Y<êàt?€¿ÎÌÌ>ÏÌL?yç?ž±³q?ùdN?¤‚µ;|”"<xØg¼6ö?€¿hfæ>ÏÌL?¿ç?³þ9>Zx?údN?ùÌ5>ˆ–ž¾\®ó;gs?€¿?ÏÌL?txó>Þç?Eä°>_ð>O|P?<¤®>[I¿ˆ-Y<OAL?€¿ÎÌ ?ÏÌL?Eä°>Þç?sxó>"½¯>ùdN?vµö>“•M¿Øg¼t?€¿›™?ÏÌL?²þ9>Þç?¾<>@O?þ»?Kju¿úÈ´<ÅC>€¿hf&?ÏÌL?0Óñ1Þç?y»@O?ÑF?öö¿ç|=¼ðHC<€¿533?ÏÌL?²þ9¾Þç?¾?ûÌ5¾ødN?]x?gs¿w®ó;‡–ž¾€¿@?ÏÌL?Dä°¾Þç?rxó>=¤®¾O|P?_ð>OAL¿¥-Y<ZI¿€¿ÏÌL?ÏÌL?rxó¾Þç?Dä°>wµö¾ødN?#½¯>t¿Øg¼“•M¿€¿œ™Y?ÏÌL?½¿Þç?±þ9>˜¿ødN?ú–@>$Ö¾L®ó;T†s¿€¿iff?ÏÌL?y¿Þç?„‚¿’ÍO?è=Z;Ïÿþº 1;£ÿ¿€¿63s?ÏÌL?ò ¼¾€ ò?r ˆ¾ñB¶¾}Ud?{Á޾dw!?/<¦¤F¿€¿ÍÌL=œ™Y?ݾ€ ò?j¨¾w•Ù¾©Æd? ¾Éo°>hL<iLp¿€¿œ™Y?µåQ¾Ü•ò?%ù;QÚT¾º]c?ýØÑ¾ˆ_l?8#= ŒÃ¾€¿>œ™Y?²¦=Ü•ò?¶R侎w=Ëd?ïóâ¾­1|?È <ƒ­/>€¿fff>œ™Y?v£>Ü•ò?v£¾Ó!£>^ýc?;-¦¾
 :?é:¼Â5/?€¿gf¦>œ™Y?Ý>€ ò?f¨¾ÃüÚ>bÑd?óô ¾‚Ó>ø†»ˆs?€¿ÎÌÌ>œ™Y?³Rä>Ü•ò?¦ã>žd?K+=3½ ¾R³9ŽÓ|?€¿53ó>œ™Y?í ¼>€ ò?n ˆ>.ôº>bÑd?ôE…>ï´¿b¯¢<k^J?€¿ÎÌ ?œ™Y?¬åQ>Ü•ò?"ùÍ>Å—O>^ýc?<tÐ>WMk¿óýò<É>€¿ ?œ™Y?Á¦½Ü•ò?±Rä>Pû‹½?ed?}›ä>½W}¿…€»K¾€¿œ™9?
øD¿=ž¾5?y¿F€±²½O¿€¿œ™Y?ÎÌÌ>¾¿Þ§¿ÆøD?6¿=ž¾
øD?½O¿²y¿€¿ÏÌL?ÎÌÌ>y–¾Þ§¿ág?‹x–¾=ž¾g?pxs¿æ{±{7ž¾€¿@?ÎÌÌ>ø£C2Þ§¿sxs?=ž¾Œws?€¿¶ð°²r°€¿533?ÎÌÌ>y§¿ág?ˆx>=ž¾g?qxs¿Ûú°w7ž>€¿hf&?ÎÌÌ>¿§¿ÇøD?4?=ž¾
øD?¿O¿í…2y?€¿›™?ÎÌÌ>ÈøD?Þ§¿¿? øD?=ž¾8?y¿»’°2»O?€¿ÎÌ ?ÎÌÌ>ãg?Þ§¿y>g?=ž¾‹x>{7ž¾ìô°0pxs?€¿?ÎÌÌ>uxs?Þ§¿À`h±Œws?=ž¾¼˜°/½j±€?€¿hfæ>ÎÌÌ>ãg?Þ§¿y–¾g?=ž¾†x–¾u7ž>ÇGX2qxs?€¿ÎÌÌ>ÎÌÌ>ÉøD?Þ§¿Á¿
øD?=ž¾3¿y?(?ú1¾O?€¿43³>ÎÌÌ>À§¿ÊøD¿6?=ž¾ øD¿¼O??ÒI1y?€¿š™™>ÎÌÌ>y§¿åg¿x>=ž¾g¿oxs?Hv#27ž>€¿€>ÎÌÌ>@Ns²Þ§¿yxs¿=ž¾Šws¿€?¾[ƒ³ß¿ª2€¿ÍÌL>ÎÌÌ>y–¾Þ§¿çg¿„x–¾=ž¾g¿qxs?Þ^)1t7ž¾€¿š™>ÎÌÌ>ÿާ¿ÌøD¿3¿=ž¾
øD¿¾O?+bC2y¿€¿ÍÌÌ=ÎÌÌ>ÌøD¿Þ§¿Ã¿ øD¿=ž¾5¿y?›ß²½O¿€¿ÍÌL=ÎÌÌ>d¿\º¿.d¿–xè¾äõZ´¡ÕÖ4€¿€¿63s?43³>ïX¿\º¿ãøŒ¾SíX¿ xè¾¢÷Œ¾^7ž>»?³uxs¿€¿€?43³> ïX¿\º¿ÝøŒ>PíX¿–x辸÷Œ>v7ž¾|úŠ0qxs¿€¿iff?43³>ðˆ8¿\º¿?v‡8¿šxè¾w?y¿a¸>2¿O¿€¿œ™Y?43³>¿\º¿ðˆ8?z¿›xè¾t‡8?¼O¿Cy¿€¿ÏÌL?43³>ÞøŒ¾\º¿ïX?¾÷Œ¾›xè¾PíX?pxs¿Îö°|7ž¾€¿@?43³>¨I72\º¿d?˜xè¾.d?€¿
È62´Jº1€¿533?43³>ÞøŒ>\º¿ïX?º÷Œ>xè¾PíX?qxs¿yÂp²x7ž>€¿hf&?43³>Ž?\º¿ñˆ8?w?šxè¾v‡8?¿O¿cF2y?€¿›™?43³>òˆ8?\º¿Ž?s‡8?xè¾{?y¿z\Ð2»O?€¿ÎÌ ?43³>ïX?\º¿ÞøŒ>PíX?xè¾¼÷Œ>z7ž¾Ät>2qxs?€¿?43³>d?\º¿€´Y±,d?œxè¾r€±Ý ü±€?€¿hfæ>43³>ïX?\º¿ßøŒ¾PíX?x辺÷Œ¾x7ž>¹§!²qxs?€¿ÎÌÌ>43³>òˆ8?\º¿¿t‡8?žxè¾y¿y?òKÛ²½O?€¿43³>43³>Ž?\º¿óˆ8¿z?œxè¾s‡8¿¼O?£y?€¿š™™>43³>ßøŒ>\º¿ïX¿Á÷Œ>Ÿxè¾OíX¿pxs?-ì17ž>€¿€>43³>€ñc²\º¿d¿¡xè¾,d¿€?<³çÊ3€¿ÍÌL>43³>áøŒ¾\º¿ïX¿µ÷Œ¾¡xè¾OíX¿rxs?ÇÄ2t7ž¾€¿š™>43³>‘¿\º¿öˆ8¿w¿Ÿxè¾u‡8¿¾O??¢²y¿€¿ÍÌÌ=43³>öˆ8¿\º¿‘¿t‡8¿Ÿxè¾y¿y? Çm2½O¿€¿ÍÌL=43³>½O¿Œ<Ë¿öO¿ë|¿C÷¯´×(ò4€¿€¿63s?š™™>ÌøD¿Œ<Ë¿€¾ öD¿ï|¿^ü¾^7ž>¾ßû²uxs¿€¿€?š™™>ÅøD¿Œ<Ë¿€> öD¿ë|¿‰ü>v7ž¾RCà2qxs¿€¿iff?š™™>ß'¿Œ<Ë¿rxó>Ÿ‹'¿ì|¿*uó>y¿Ñœ±¾O¿€¿œ™Y?š™™>rxó¾Œ<Ë¿ß'?,uó¾í|¿'?¼O¿´ìX²y¿€¿ÏÌL?š™™>€¾Œ<Ë¿ÆøD?”ü¾í|¿öD?pxs¿†á ²|7ž¾€¿@?š™™>øk&2Œ<Ë¿¿O?ì|¿ôO?€¿2:V±@«±€¿533?š™™>€>Œ<Ë¿ÆøD?Žü>í|¿öD?qxs¿%Y°y7ž>€¿hf&?š™™>txó>Œ<Ë¿à'?&uó>í|¿ž‹'?¾O¿cˆ†0y?€¿›™?š™™>á'?Œ<Ë¿txó>'?î|¿.uó>y¿ ;в»O?€¿ÎÌ ?š™™>ÈøD?Œ<Ë¿€>öD?í|¿‘ü>z7ž¾ò~2qxs?€¿?š™™>ÀO?Œ<Ë¿¬E±ôO?ì|¿ô²/²ÍÊq²€?€¿hfæ>š™™>ÈøD?Œ<Ë¿€¾öD?ì|¿Šü¾w7ž>ñ0E±qxs?€¿ÎÌÌ>š™™>â'?Œ<Ë¿wx󾞋'?ë|¿*uó¾y?Mfϲ½O?€¿43³>š™™>uxó>Œ<Ë¿ã'¿,uó>í|¿'¿¼O?ø“2y?€¿š™™>š™™>€>Œ<Ë¿ÊøD¿˜ü>î|¿öD¿pxs?œx}²7ž>€¿€>š™™>à÷N²Œ<Ë¿ÃO¿í|¿ôO¿€?óųNòP3€¿ÍÌL>š™™>€¾Œ<Ë¿ËøD¿…ü¾í|¿ öD¿rxs?Çýª2t7ž¾€¿š™>š™™>zxó¾Œ<Ë¿å'¿&uó¾î|¿'¿¾O?BPɲy¿€¿ÍÌÌ=š™™>å'¿Œ<Ë¿zxó¾'¿ð|¿*uó¾y?éÆU±½O¿€¿ÍÌL=š™™>ó5¿z‚Ú¿h5¿}5¿}ÿ´~ ÿ4€¿€¿63s?€>ã(,¿z‚Ú¿›À_¾~%,¿5¿¼_¾^7ž>]Ÿ³uxs¿€¿€?€>Ý(,¿z‚Ú¿‘À_>%,¿}5¿+¼_>v7ž¾¦áµ0qxs¿€¿iff?€>žr¿z‚Ú¿ÍÔ>Ào¿~5¿ãÈÔ>y¿ÖFæ°½O¿€¿œ™Y?€>ÍÔ¾z‚Ú¿žr?æÈÔ¾}5¿¿oO¿#ý”2y¿€¿ÏÌL?€>’À_¾z‚Ú¿Þ(,?3¼_¾~5¿~%,?pxs¿{¨2|7ž¾€¿@?€>@u2z‚Ú¿ô5?5¿g5?€¿,Z…²g_…²€¿533?€>’À_>z‚Ú¿Þ(,?,¼_>5¿}%,?qxs¿±EŒ²x7ž>€¿hf&?€>ÍÔ>z‚Ú¿Ÿr?àÈÔ>~5¿ÀoO¿œ= ²y?€¿›™?€> r?z‚Ú¿ÍÔ>¾o?~5¿æÈÔ>y¿W…v2»O?€¿ÎÌ ?€>à(,?z‚Ú¿“À_>|%,?€5¿.¼_>z7ž¾n8!2pxs?€¿?€>ö5?z‚Ú¿€Å,±f5?5¿M>±×€?€¿hfæ>€>à(,?z‚Ú¿•À_¾|%,?€5¿)¼_¾w7ž>ò邲qxs?€¿ÎÌÌ>€> r?z‚Ú¿ÍÔ¾¾o?5¿àÈÔ¾y?7…õ°½O?€¿43³>€>ÍÔ>z‚Ú¿¡r¿áÈÔ>5¿½o¿¼O? ²y?€¿š™™>€>•À_>z‚Ú¿á(,¿5¼_>€5¿{%,¿oxs?V€9³7ž>€¿€>€>å4²z‚Ú¿ù5¿5¿f5¿€?(峎1å3€¿ÍÌL>€>˜À_¾z‚Ú¿ã(,¿$¼_¾€5¿|%,¿qxs?Ó:ö2u7ž¾€¿š™>€>ÍÔ¾z‚Ú¿£r¿ÞÈÔ¾5¿¾o¿¾O?ΪŽ2y¿€¿ÍÌÌ=€>£r¿z‚Ú¿ÍÔ¾¼o¿5¿ßÈÔ¾y?ìnS2½O¿€¿ÍÌL=€>y¿Þ翃‚¿“ÍO¿é=Z;åu§¼xÅ-<žî¿€¿63s?ÍÌL>¿Þ翹þ9¾¿O¿Áù9¾^7ž>zó*³uxs¿€¿€?ÍÌL>½¿Þ翱þ9>˜¿ødN¿ú–@>k\™¾eØg¼8t¿€¿iff?ÍÌL>rxó¾Þç¿Dä°>wµö¾ødN¿"½¯>ì ¿§®ó;ŠüN¿€¿œ™Y?ÍÌL>Dä°¾Þç¿rxó>=¤®¾O|P¿›_ð>~ÚQ¿’-Y<¾”¿€¿ÏÌL?ÍÌL>²þ9¾Þ翾?üÌ5¾ùdN¿\x?+¦r¿iØg¼i£¾€¿@?ÍÌL>0Óñ1Þç¿y»@O¿ÐF?.Ù¿ñÈ´<“QØ<€¿533?ÍÌL>²þ9>Þ翾?‰<>@O¿þ»?;at¿æ|=¼d˜>€¿hf&?ÍÌL>Eä°>Þç¿sxó>4®¯>@O¿iÝó>%K¿åÈ´<QÚ?€¿›™?ÍÌL>txó>Þç¿Eä°>fÝó>@O¿5®¯>¾ë¿}=¼GIM?€¿ÎÌ ?ÍÌL>¿翳þ9>ý»?@O¿‹<>ÇC‘¾üÈ´<Kju?€¿?ÍÌL>y翞±ÐF?@O¿Ü»ïHC¼ß|=¼öö?€¿hfæ>ÍÌL>¿翵þ9¾×?@O¿r7¾+ûª>èÈ´<Á<q?€¿ÎÌÌ>ÍÌL>uxó>Þç¿Hä°¾Ápò>@O¿¤±¾Óû?ù|=¼‘ßP?€¿43³>ÍÌL>Fä°>Þç¿vx󾤱>@O¿Àpò¾†õR?É´<<ê?€¿š™™>ÍÌL>µþ9>Þç¿À¿r7>@O¿Õ¿t~r?ì|=¼¾ÿ£>€¿€>ÍÌL>_²Þç¿y¿û;@O¿ÎF¿/Ù?üÈ´<ýPؼ€¿ÍÌL>ÍÌL>·þ9¾Þç¿Â¿„@O¿ü»¿;at?ä|=¼
d˜¾€¿š™>ÍÌL>Jä°¾Þç¿zxó¾ ½¯¾üdN¿pµö¾‰üN?1®ó;í ¿€¿ÍÌÌ=ÍÌL>zxó¾Þç¿Jä°¾êèð¾”ÍO¿p#±¾ûß?!1;ŠÐN¿€¿ÍÌL=ÍÌL>rqè¾€ ò¿´à¾6f¿"%Ì:í½½“2=o¨~¿€¿63s?š™>ݾ€ ò¿j¨¾w•Ù¾©Æd¿ ¾ÌyŸ>×&©;íBs¿€¿€?š™> ù;ܕò¿­åQ>dо c¿„U>!Ðà¾ë¼ýe¿€¿`?š™>m ˆ¾€ ò¿ì ¼>±œ‰¾Qe¿µV¶>W|R¿É”¨<²¿€¿ÏÌL?š™>¦½Ü•ò¿±Rä>Pû‹½>ed¿~›ä>&Õ~¿Eÿ<©¸½€¿œ™9?š™>«åQ>Ü•ò¿"ùÍ>ôBR>ÉQd¿°TÎ>‰:b¿ì<bšï>€¿ ?š™>&ùÍ>Ü•ò¿§åQ>°TÎ>ÉQd¿øBR>Ü5á¾4<6åe?€¿hf?š™>³Rä>Ü•ò¿½¦½/¸ä>ÉQd¿ç½B0>ô<K-|?€¿›™Ù>š™>v£>Ü•ò¿v£¾»¾£>ÉQd¿º¾£¾¶Ø7?â<±"2?€¿gf¦>š™>±¦=Ü•ò¿µR侑w=Ëd¿ïóâ¾K@~?à‰¡<§Šë=€¿fff>š™>µåQ¾Ü•ò¿&ù;QÚT¾º]c¿ýØÑ¾Ð´k?AA½‡ìƾ€¿>š™ ¼¾€ ò¿r ˆ¾ñB¶¾{Ud¿{Á޾1¢ ?ï æ»©RG¿€¿ÍÌL=
=ž>nx–¾]7ž>Üu¾2uxs¿€¿€?›™?ïX¿\º?ãøŒ¾SíX¿ xè>¡÷Œ¾]7ž>a¥3uxs¿€¿€?hf&?ÌøD¿Œ<Ë?€¾ öD¿ï|?^ü¾^7ž>2Ê3uxs¿€¿€?533?ã(,¿z‚Ú?›À_¾~%,¿5?¼_¾^7ž>P¨_3uxs¿€¿€?@?¿Þç?¹þ9¾¿O?Àù9¾]7ž>„@3uxs¿€¿€?ÏÌL?ݾ€ ò?j¨¾w•Ù¾©Æd? ¾Éo°>hL<iLp¿€¿€?œ™Y?¬d–¾.¿ù?výî,™¾*Ìs?Et½Eõ]>¨!ä;Oèy¿€¿œ™y?iff?Ð:¾ómþ?ŒÙE½E«¾øá|?Ý‘½ÑV>Ö <¼Qm}¿€¿œ™y?63s?Ð:¾ómþ?ŒÙE½E«¾øá|?Ý‘½ÑV>Ö <¼Qm}¿€?63s?@•)¼.ü?XWJ»×$h?/<¬Á×>€¿?€?@•)¼.ü?XWJ»%¸°>
Ô;Cp?€¿?€?@•)¼.ü?XWJ»˜Ë¿­ÐX»zS?€¿?€?@•)¼.ü?XWJ»§¿Õï+¼3gP½€¿?€?@•)¼.ü?XWJ»ûî¿t¼òIX¿€??€?Àü”)¼.ü¿gWJ»§¿Ñï+<=gP½€¿?Àü”)¼.ü¿gWJ»™Ë¿—ÐX;zS?€¿?Àü”)¼.ü¿gWJ»%¸°>
Ô»Cp?€¿?Àü”)¼.ü¿gWJ»×$h?/¼­Á×>€¿?Àü”)¼.ü¿gWJ»Õ‹A?c7¾»L'¿€??Ð:¾ómþ¿ŒÙE½C«¾øá|¿Ý‘½¡{>œZ'<à!}¿€¿ÍÌL=zxs¿€¿7ž¾fHs¿vÐ ½!ž¾\7ž>'ÇQ±uxs¿€¿€??€¿€¿¿cÐ ½æPѰ˜x&3€¿€¿63s??qxs¿€¿z7ž>cHs¿]Ð ½;ž>v7ž¾õíž/qxs¿€¿iff?O¿€¿y?ÜòN¿oÐ ½c[?y¿×ä­¾O¿€¿œ™Y??y¿€¿¾O?e[¿yÐ ½ÛòN?½O¿° ±y¿€¿ÏÌL??{7ž¾€¿sxs??ž¾wÐ ½cHs?qxs¿—Þ±y7ž¾€¿@??hµM2€¿€?sÐ ½xÍ?€¿‡çö¯ž9›­€¿533??{7ž>€¿sxs?=ž>xÐ ½cHs?qxs¿W ¯w7ž>€¿hf&??y?€¿¿O?c[?yÐ ½ÜòN?¾O¿ Ë=¯y?€¿›™?O?€¿y?ÚòN?vÐ ½h[?y¿µI1»O?€¿ÎÌ ??uxs?€¿|7ž>cHs?tÐ ½Bž>|7ž¾‡ß0pxs?€¿??€?€¿Vt±xÍ?rÐ ½¡™¬¸]ô®€?€¿hfæ>?uxs?€¿}7ž¾cHs?uÐ ½;ž¾v7ž>ÿ¬H¯qxs?€¿ÎÌÌ>O?€¿y¿ÜòN?yÐ ½c[¿y?ß!U0¾O?€¿43³>?y?€¿ÂO¿e[?yÐ ½ÛòN¿½O?—µ-°y?€¿š™™>?}7ž>€¿wxs¿Dž>wÐ ½aHs¿pxs?Ùͱ7ž>€¿€>? Ó²€¿€¿qÐ ½xÍ¿€?ɲT¨/€¿ÍÌL>?7ž¾€¿yxs¿9ž¾wÐ ½cHs¿rxs?àÇw/t7ž¾€¿š™>?y¿€¿ÅO¿c[¿yÐ ½ÜòN¿¾O?Ÿ+ž°y¿€¿ÍÌÌ=O¿€¿y¿ÜòN¿xÐ ½e[¿y?·Òª¯½O¿€¿ÍÌL=?yp¿ ”¿×Dœ¾Ýxp¿d6 ¾Dœ¾]7ž>FCl²uxs¿€¿hfæ>zxs¿€¿7ž¾fHs¿vÐ ½!ž¾\7ž>'ÇQ±uxs¿€¿g¿Þ§¿y–¾g¿ =ž¾mx–¾\7ž>Þ$ ³uxs¿€¿ÎÌÌ>ïX¿\º¿ãøŒ¾SíX¿ xè¾¢÷Œ¾^7ž>»?³uxs¿€¿43³>ÌøD¿Œ<Ë¿€¾ öD¿ï|¿^ü¾^7ž>¾ßû²uxs¿€¿š™™>ã(,¿z‚Ú¿›À_¾~%,¿5¿¼_¾^7ž>]Ÿ³uxs¿€¿€>¿Þ翹þ9¾¿O¿Áù9¾^7ž>zó*³uxs¿€¿ÍÌL>ݾ€ ò¿j¨¾w•Ù¾©Æd¿ ¾ÌyŸ>×&©;íBs¿€¿š™>¬d–¾.¿ù¿výî,™¾*Ìs¿Et½áŸ/>F<ç2|¿€¿ÍÌÌ=4@´€?@€?E¾ÅA€?CylinderðX€3À³?€??à *+*

  ! !
!"
""###$$$%%%&&&'',-.,./V)WU)VW)DT)UD)ES)TE)FR)SF)GQ)RG)HP)QH)IO)PI)JN)OJ)KM)NK)LL)MC(B1(CB(A0(1A(@2(0@(?3(2?(>4(3>(=5(4=(<6(5<(;7(6;(:8(7:(99(8X (0@{x󾀿€7¾uxs¿Y7ž¾[7ž>vxs¿€¿LÎ=³ãí9kÑ<Ëg*;ÆϾ€¿y–¾½O¿y¿y?½O¿€¿IQM>³ãí9{l=Ëg*;y–¾€¿ÅϾy¿¿O¿¿O?y¿€¿xÏ™>³ãí9΀Û=Ëg*;7¾€¿yxó¾s7ž¾qxs¿rxs?s7ž¾€¿IöÌ>³ãí9b >Ëg*;€¿¿€¿€?€¿Œ?³ãí9™S>Ëg*;7>€¿xxó¾~7ž>pxs¿pxs?~7ž>€¿ñ¡?³ãí9’Ò‚>Ëg*;y>€¿ÂϾy?ºO¿»O?y?€¿X53?³ãí9R#œ>Ëg*;ÁÏ>€¿y–¾¾O?y¿y?¾O?€¿¼ÈL?³ãí9tµ>h*;uxó>€¿|7¾qxs?u7ž¾v7ž>qxs?€¿ \f?³ãí9¾ÄÎ>h*;?€¿€?€?€¿ï?³ãí9kè>Ëg*;uxó>€¿|7>qxs?{7ž>{7ž¾pxs?€¿Î=³ãí9³?Ëg*;ÀÏ>€¿yO?y?y¿»O?€¿0QM>³ãí9e[
?Ëg*;y>€¿¿Ï>y?¾O?¾O¿y?€¿jÏ™>³ãí9¶?Ëg*;|7>€¿sxó>x7ž>qxs?qxs¿x7ž>€¿8öÌ>³ãí9¬&?Ëg*;€2€¿?€?€¿€¿„?³ãí9QT3?Ëg*;y7¾€¿rxó>|7ž¾qxs?pxs¿|7ž¾€¿é¡?³ãí9Ÿü??Ëg*;y–¾€¿¾Ï>y¿½O?½O¿y¿€¿O53?³ãí9÷¤L?Ëg*;½Ͼ€¿yO¿y?y¿½O¿€¿´ÈL?³ãí9MMY?Ëg*;qx󾀿z7>qxs¿x7ž>x7ž¾qxs¿€¿\f?³ãí9©õe?Ëg*;¿€¿€¿€¿€¿}ï?³ãí9 žr?Ëg*;{xó¾€?€7¾uxs¿Y7ž¾Z7ž>vxs¿€¿%Î=²Ú?ýÐ<Ë~"?ÆϾ€?y–¾½O¿y¿y?¼O¿€¿AQM>²Ú?{l=Ë~"?y–¾€?ÅϾy¿¿O¿¿O?y¿€¿xÏ™>²Ú?΀Û=Ë~"?7¾€?yxó¾s7ž¾qxs¿rxs?s7ž¾€¿IöÌ>²Ú?b >Ë~"?€?¿€¿€?€¿Œ?²Ú?™S>Ë~"?7>€?xxó¾~7ž>pxs¿pxs?~7ž>€¿ñ¡?²Ú?’Ò‚>Ë~"?y>€?ÂϾy?ºO¿»O?y?€¿Y53?²Ú?R#œ>Ë~"?ÁÏ>€?y–¾¾O?y¿y?¾O?€¿¿ÈL?²Ú?tµ>Ë~"?uxó>€?|7¾qxs?u7ž¾u7ž>qxs?€¿$\f?²Ú?ËÄÎ>Ë~"??€?€?€?€¿ï?²Ú?wè>Ë~"?uxó>€?|7>qxs?{7ž>y7ž¾qxs?€¿0Î=²Ú?³?Ë~"?ÀÏ>€?yO?y?y¿»O?€¿5QM>²Ú?e[
?Ë~"?y>€?¿Ï>y?¾O?¾O¿y?€¿jÏ™>²Ú?Ë~"?|7>€?sxó>x7ž>qxs?qxs¿x7ž>€¿8öÌ>²Ú?¬&?Ë~"?€2€??€?€¿€¿„?²Ú?QT3?Ë~"?y7¾€?rxó>|7ž¾qxs?pxs¿|7ž¾€¿é¡?²Ú?Ÿü??Ë~"?y–¾€?¾Ï>y¿½O?½O¿y¿€¿N53?²Ú?÷¤L?Ë~"?½Ͼ€?yO¿y?y¿½O¿€¿®ÈL?²Ú?MMY?Ë~"?qxó¾€?z7>qxs¿x7ž>x7ž¾qxs¿€¿\f?²Ú?©õe?Ë~"?¿€?€¿€¿€¿yï?²Ú? žr?Ë~"?€¿€¿€?§ÉÛ´€¿¬?²øÿ>¹
?ïÑS?€?€?€¿*&¨3€¿¶?®øÿ>¼3>îÑS??€¿€?€?€¿tØ5:³ãí9kè>Ëg*;?€?€?€?€¿Œð5:²Ú?wè>Ë~"?¿€¿€¿€¿€¿¬ÿ5:³ãí9 žr?Ëg*;¿€?€¿€¿€¿pç5:²Ú? žr?Ë~"?{xó¾€?€7¾uxs¿Y7ž¾Z7ž>vxs¿€¿%Î=²Ú?mF?Ë~"?{x󾀿€7¾uxs¿Y7ž¾[7ž>vxs¿€¿LÎ=³ãí9mF?Ëg*;ÆϾ€¿y–¾€¿ŸX?õš¿€¿}uÊ=G£J?²ÖÔ>.xm?{x󾀿€7¾€¿ñÍ9?¯0¿€¿è<;'?.qÈ>Na?y–¾€¿ÅϾ€¿mn?èmº¾€¿ÐžU>M¼f?%è>™w?7¾€¿yx󾀿
š{?Þÿ<¾€¿äž±>ƒÆx?ï<?WR}?€¿¿€¿€?³«Ù2€¿®?Øý~?¹
?u?7>€¿xx󾀿
š{?äÿ<>€¿ëM'?ƒÆx?5?WR}?y>€¿ÂϾ€¿mn?Ömº>€¿©µJ?K¼f?B_'?•w?ÁÏ>€¿y–¾€¿¥X?ëš?€¿«Îf?A£J?«1?+xm?uxó>€¿|7¾€¿ûÍ9?¥0?€¿ÙØx?‡;'?i97?Na??€¿€¿ÊW?’õ
?€¿+? øÿ>*\9?ìÑS?uxó>€¿|7>€¿€?}͇µ€¿ÕØx?5z±>i97?ÙUF?ÀÏ>€¿y>€¿€?ðk^µ€¿¡Îf?UU>©1?®+:?y>€¿¿Ï>€¿€?ÞÎû´€¿µJ?ãÉ=;_'?E„0?|7>€¿sxó>€¿€?/ÈÍ´€¿ßM'?ÆEæ<5?‡Q*?€2€¿?€¿€?`,Xµ€¿¤?Ýz;¹
?Å.(?y7¾€¿rxó>€¿€?¡€¿Øž±>ZFæ<ï<?‡Q*?y–¾€¿¾Ï>€¿€?€¿ÐžU><ãÉ=%è>F„0?½Ͼ€¿y>€¿€?)²´€¿•uÊ=°UU>²ÖÔ>°+:?qx󾀿z7>€¿€?‡ÙÚ3€¿Tè<Hz±>4qÈ>ÙUF?¿€¿€¿ÃW?õ
¿€¿@˜†;®øÿ>®+Ä>îÑS?{xó¾€?€7¾€?€¿µ€¿æØx?;'?¶‚¬>Na?ÆϾ€?y–¾€?€¿?[7µ€¿³Îf?G£J?6 >.xm?y–¾€?ÅϾ€?€¿!¿oµ€¿­µJ?M¼f?bÎŒ>•w?7¾€?yxó¾€?€¿v܇µ€¿ðM'?ƒÆx?
ôh>WR}?€?¿€?€¿Îϳ€¿³?Øý~?¼3>u?7>€?xxó¾€?€¿Ñ’5€¿îž±>ƒÆx?Ö&ú=WR}?y>€?ÂϾ€?€¿ 6¼5€¿õžU>K¼f?tÕ˜=•w?ÁÏ>€?y–¾€?€¿
„5€¿ÛuÊ=C£J?W4=(xm?uxó>€?|7¾€?€¿á  5€¿L‘è<‰;'?ü!P<ÿMa??€?€?ÇW¿—õ
?€¿ œ†;¤øÿ>†ãŽ;ìÑS?uxó>€?|7>€?÷Í9¿©0?€¿Œ‘è<7z±>ü!P<ÙUF?ÀÏ>€?y>€?X¿þš?€¿øuÊ=UU>‡4=®+:?y>€?¿Ï>€?mn¿ýmº>€¿ŸU>ãÉ=ŒÕ˜=E„0?|7>€?sxó>€? š{¿=>€¿õž±>¦Eæ<å&ú=†Q*?€2€??€?€¿ºÓ2€¿±?ˆÚz;¶3>Ä.(?y7¾€?rxó>€? š{¿þÿ<¾€¿ëM'?¶Eæ< ôh>†Q*?y–¾€?¾Ï>€?mn¿åmº¾€¿©µJ?ãÉ=ZÎŒ>C„0?½Ͼ€?y>€?ŸX¿õš¿€¿«Îf?“UU>0 >®+:?qxó¾€?z7>€?ýÍ9¿£0¿€¿ÝØx?;z±>®‚¬>ÙUF?¿€?€?ÒW¿†õ
¿€¿1?¦øÿ>2Ȱ>ìÑS?€3À³?€???Kª ASphere ???±²®±²­±®­°±°l±±lm²mÍml®²¯¯²d²ƒdª­®«®¯ª®«0°­/0­/­ª/ªªª«01°«1k°1k°kl«¬«¯¬¬ÇkÇ.ÊlkÊkÇÍlʬ¯c¯dc¬b¬cbbÆÇ.Æ.-ÉÊÇÉÇÆb¹¹bcºbº¹cd»c»ºÅÆ-Å-,¹dg»dg»gf»f¸º»¸¸fe¹º·º¸·¹·¸eµ·¸µµeµ"·µ´´µ"·´´"!´³³´!³³! ³³  jmÄŠjÁÄjÁjiijÍjŒÍiÍÌÌÍÊÌÊÉhiÌËÌÉhÌ˾Ái¾ihËÉÈÈÉÆÈÆÅhË(h(¾hË++ËÈ+È**ÈÅ*Å))Å,),'¾('½¾&½'½Á¾&¼½¼&#¼½ÀÁ¼À½ÀÄÁ#¿¼¼¿À#$¿ÀÃÄ¿ÃÀ$¿¿ÂÃ$%ÂÈÄĈÈÂÃÂ%Â%Öy ÕyÖÒÕÖÒÖÓÓÖpÖpÕxyÑÕÒÔxÕÑÔÕÏÒÓÎÑÒÎÒÏHÔÑGHÑGÑÎGÎÎ22ÎÏHIÔ2Ï3IwÔÔwxIw3ÏÐÏÓÐ3Ð4ëwëFîxwîwëÐÓoÓpo4ÐnÐon4nêëFêFEnÝÝ7noÞnÞÝopßoßÞ7ÝÚ7Ú6ÝÞÛÝÛÚ6Ú×6×55×858×98ÚØ×ר9ÚÛØØ:9ØÙ:ÛÙØÙ:ÞÜÛÛÜÙÞßÜÙqÜqÙ=qßrÜÜrq=qææqr<=æßsrpsßpŽs<æã;<ãærççrsãæç;ãà;àà>çsèèsãçäàãääçè>àáàäá>á?äèåáäå?áâáåâ?â@åèvèvåvuâåuâut@ât@tADAéDéEDBéAéêEBìéìêéCìBìíêíëêíîëCïìïíìïCïïðíðïðîíððñîñðñxîññyxyñyJœûJûûKJþûžþûüKþüûüLKžþšžüýLýLþÿüÿþÿýüšzzšý}O}ÿý}ýÿzÿôz˜ôO}
NO
z{ô{z~}
}~{~˜óôó˜N
MNô÷{ó÷ô{|÷|{~|
~ 
  ~òóòSòóö÷òöóSõòòõöSTõ÷ú|öú÷|
ú
|   
TøõTUøõùööùúõøùú
ùúUƒøUƒøùùøƒ

   ƒRƒƒ    MŸMŸ    ¡¡ ¡¢  ¢¢£££§§§¦RRQ¦


Q¦
¤
QP¤
P¤P¥±V²±V³±WV³"´"³ W"  XW´%"­%´ !X!X"# %#"#! ­%¬­![#$!$!%&#&%&$#¬«¬[.Z[.&$Š.Š&'$'&'Š$«ª«Z.+YZ+ˆ'ˆ'Šˆ'.Š/+.//Šª¨ª¨©©©®ˆˆ  ˆ/00 ®®¯ ¯¯°Ž 0 Ž,/0+/,3°3°¾6639Ž996-0Ž,0-(+,Y+(µY(µ((,)()),-)··)*)-*·*¸-Ž*-Ž9¸*Œ*Œ¸Œ¹98Œ8896¹Œ7Œ87¹7À865785563À74754À4¿53245223¾2¾½¿4142112½¿1º1½»º1»º»¼ÅÆÅ<Ä<Å<Ä;<Ã;Ä<?;?<?Ã:;Á:ÃÁÂ:;>?:>;?B>B?B Â=::=>ÂÇ=>AB=A>B ABâ Ç@==@AÇÈ@â]áâ]Aœ@œA]œÈ@@œÈÉá]\àá\]œZZœ\]ZWÉZWWÉÜà\[ßà[ß[Þ\ZYYZW[\YVWÜYWVVÜÛÞ[X[YXXYVÞXÝUVÛXVUÝXUUÛÙÝUØØUÙØÙÚÊ\ËÊC\ÌCÊC]\ÌFCÍFÌCD]FDCD^]ÍIFÎIÍÎÏIDE^E^FGDIGFGEDÏJIIJGÏÐJEaGHEJHGHEÐKJJKHÐÑKaR`aRHKHRÑKKÑÒ`RO_`ORSSORSTÒSTTÒš_OLÓ_LÓLÔOSPPSTLOPQTšPTQQšÔLMLPMMPQÔMÕNQMQNÕMNN˜ÕNÖÖN˜Ö˜×ìíîìgíògìgïíòjgójòghïjhghðïómjèmóhiðiñðjkhmkjkihèžmçžèi¡ñûñ¡klil¡imnkžnmnlkç`žæ`çû¡vúûvžŸn`Ÿžl¢¡v¡¢nolŸono¢læ_`å_æúvsõús`cŸ_c`Ÿ oc Ÿo£¢ £ov¢wsvww¢£å^_ã^åãä^_bc^b_äa^^abäéacf bfc 
£f
 w£xx£
édaéêdaebbefadef©
e©fê§dêë§d¨ee¨©d§¨¦
©x
¦twxswt{§ë{ë~¨§~§{©¨¦©¨~ux¦txupstõspôõpôpöptqöpqqtuöq÷÷qrqur÷røu¦¥ru¥¥¦ør¤r¥¤ø¤ù¥¤¥~ù¤¤ù~}}}~{|}||}{z|}zz{zÿ|y|zyyzÿyüyÿýüyýüýþ (0¨p^“>^“¾^“¾:Í?:Í¿;Í¿ Ò4?ÎL˺°75?€¿žb¿>üé¢>&:±>.:±>^“>^“¾^“>:Í?:Í¿;Í?³;5¿Í_ÛºÎ4?€¿¥?üé¢>&:±>òb'?^“¾^“¾^“¾:Í¿:Í¿;Í¿¬;5?ECÛº Î4¿€¿ ìý=üé¢>öb'?.:±>^“¾^“¾^“>;Í¿:Í¿:Í?Ò4¿©^˺¶75¿€¿æ˜_?üé¢>öb'?òb'?=â“>®g“>=⓾ƹ?ô?ƹ¿g/5? È©ºaÚ4?€¿žb¿>/?":1?¿‹>=â“>®g“>=â“>ƹ?ô?ƹ?óÓ4¿`cúÌ55?€¿¥?/?":1? 4=⓾®g“>=⓾ƹ¿ô?ƹ¿øÓ4?ºPúÇ55¿€¿ ìý=/?€?¿‹>=⓾®g“>=â“>ƹ¿ô?ƹ?g/5¿Æ©ºbÚ4¿€¿æ˜_?/?€? 4¿€¿ªµy¾ŒEx?€¿è5¿>9²< ? ?3³£1?
×£±€?`u{?¡€¿BÅ>’Åx?X?Ä‹>?3³£±0´?RD滟 oºÁšu:ËxT; ÿ?€¿jVÿ>ÿ:?Á‹>>®ÿ¯3{Ø#²?ÖHÞ»~þ?€¿ 
¸«ët´€¿Ÿ??ÿ:?ûÿÿ>€‹>¿3³£1¿G滆—oºÃ¬u:÷:X»ÿ¿€¿Ì’?ÿ:?ö‹>ôÿÿ>p´ëQ¸*¿LBî»Dþ¿€?O¶Ó· E4€¿¦Ý~>ÿ:?X?ìÿÿ>`e³Í|´¾Í|´¾ó5¿ó5¿„ÿ?Lƒ2;Mƒ2»€¿¦Ý~>Ìã> ?.:±>Í|´¾Í|´¾ó5¿ô5¿m:¤:m:¤ºæÿ¿€¿ˆqºÌã>öb'? ?Âu3Í|´¾Í|´>ñ5¿õ5?„ÿ¿Bƒ2;?ƒ2;€¿Ÿ??Ìã> ?òb'?Í|´>Í|´¾
×#3ô5?ó5¿Ù7¤ºÛ7¤ºæÿ?€¿jVÿ>Ìã>&:±> ?
µ>¤ ´>Âõ³m 5?zþ4?0Q»0ŸQ;Tÿ?€¿jVÿ>„9?":1?Ä‹>Âu3¤ ´>
µ>zþ4?m 5?Õÿ¿ØýѺÑîÑ:€¿Ÿ??„9?X? 4
µ¾¤ ´>m 5¿zþ4?¾“Q;¾¢Q;Tÿ¿€¿Ì’?„9?€?Ä‹>Âõ(´¤ ´>
µ¾zþ4?m 5¿Õÿ?6ýѺ/îѺ€¿¦Ý~>„9?X?¿‹µ>™™ ®Íµ>5?*¹¼5?ï5¿Ï‘>8ø5?€¿¥?ÿ:?À‹>
µ>…¤gº
µ¾¤5?Ót#¼¤5¿ù5?.ï=8î5?€¿žb¿>ÿ:?Á‹>À‹µ¾™™ .͵>5¿*¹¼5?ø5¿ >8ï5¿€¿æ˜_?ÿ:?ûÿÿ>4
µ¾+¢gº
µ¾¥5¿²t#¼¤5¿í5?r>8ù5¿€¿ ìý=ÿ:?õ‹>&:±>õu>R(ž¾R(ž¾C ö>Å¿¿Å¿¿¸ÆE?P½úJ"?€¿Î?µ>Žœ>«ëÄ>.:±>™9.>f¦©¾f¦©¾i¤®>È)*¿Ç)*¿cf?É8Ú<÷ÏÞ>€¿@¦>ÌÄ”>Ø>.:±>õX´=¦±¾¦±¾.5>Ò)2¿Ò)2¿üx?|"z<m>€¿ç«“>±>ˆNì>.:±>õu¾R(ž¾R(ž¾X ö¾Ë¿¿·¿¿P€I?[\ß;Ÿä¿€¿°;œ>$Š?.:±>™9.¾f¦©¾f¦©¾q¤®¾Õ)*¿¶)*¿Äb?D<ÖŒí¾€¿Ìœ1>ÌÄ”>h±?.:±>õX´½¦±¾¦±¾ë-5¾Ø)2¿Ï)2¿`Âx?*·6¼úŒq¾€¿zcV>±>œØ ?.:±>R(ž¾R(ž¾õu¾Å¿¿Å¿¿C ö¾g?Ñn¼P]I¿€¿Ø`Õ=œ>öb'?ŽëÄ>f¦©¾f¦©¾™9.¾Ç)*¿È)*¿i¤®¾ÿ#í>éb ¼àb¿€¿¤ž˜=ÊÄ”>öb'?.Ø>¦±¾¦±¾õX´½Ò)2¿Ò)2¿.5¾þ
p>³@P<xØx¿€¿€"=±>öb'?ÒNì>R(ž¾R(ž¾õu>·¿¿Ë¿¿X ö>ª "¿^ =¤ìE¿€¿Nªd?œ>öb'?=Š?f¦©¾f¦©¾™9.>¶)*¿Õ)*¿q¤®>£Nß¾c}м§Ff¿€¿–Bl?ÌÄ”>öb'?~±?¦±¾¦±¾õX´=Ï)2¿Ø)2¿ë-5> o¾aö`¼Çæx¿€¿Dtu?±>öb'?ÂØ ?õu¾R(ž¾R(ž>C ö¾Å¿¿Å¿?¶ÆE¿£‚½þJ"¿€¿}‡Z?Žœ>$Š?òb'?™9.¾f¦©¾f¦©>c¤®¾Æ)*¿Ê)*?cf¿Ö8Ú<ìÏÞ¾€¿8ïR?ÌÄ”>h±?òb'?õX´½¦±¾¦±>þ-5¾Ð)2¿Ö)2?üx¿!z<€¿Š½I?±>œØ ?òb'?õu>R(ž¾R(ž>X ö>Ë¿¿·¿?R€I¿KZß;œä?€¿ƒ¶$?Žœ>«ëÄ>òb'?™9.>f¦©¾f¦©>j¤®>Ó)*¿¹)*?Äb¿Þ<ÏŒí>€¿ÌN,?ÌÄ”>Ø>òb'?õX´=¦±¾¦±>â-5>Ô)2¿Ó)2?`Âx¿l¶6¼õŒq>€¿v€5?±>ˆNì>òb'?R(ž>R(ž¾õu>Å¿?Å¿¿C ö>a¿wl¼T]I?€¿³“œ>&:±>=Š?f¦©>f¦©¾™9.>Ç)*?È)*¿i¤®>ü#í¾}b ¼àb?€¿kû?ÊÄ”>&:±>~±?¦±>¦±¾õX´=Ó)2?Ò)2¿ .5> p¾˜@P<xØx?€¿¿É ?±>&:±>ÂØ ?R(ž>R(ž¾õu¾Å¿?Å¿¿C ö¾š "?z =±ìE?€¿p…É>Žœ>&:±>ŽëÄ>f¦©>f¦©¾™9.¾Ç)*?È)*¿i¤®¾Nß>ú|м¬Ff?€¿þµØ>ÌÄ”>&:±>.Ø>¦±>¦±¾õX´½Ò)2?Ó)2¿ .5¾o>|ø`¼Çæx?€¿Uë>±>&:±>ÒNì>뱞>ö@ž>°v¾²?mÖ?ÿñõ¾•?S*c< L?€¿p…É>¶m2?":1?VÚ‰>ë9ª>…é>\Ï.¾ñ"*?¥&*?@Ë®¾Íå>ÁÇ&<MÀd?€¿þµØ>˜6?":1?ÆQl>Â=²>®Ç±>3ó´½j02?z$2?E5¾¶8u>}nì;Sx?€¿Uë>~8?":1?ÀîD>뱞>ö@ž>°v>²?mÖ?ÿñõ>ê׿QÖF¼}ÖK?€¿³“?¶m2?":1?€‹=ë9ª>…é>\Ï.>ì"*?§&*?GË®>Aÿæ¾°í»ud?€¿kû?˜6?":1? Œ=Â=²>®Ç±>3ó´=g02?$2?H5>”˜»ª?x?€¿¿É ?~8?":1?Rì=°v>ö@ž>뱞>ÿñõ>mÖ?²?ä¶K¿6<Ã?€¿ƒ¶$?¶m2?ä;? 4\Ï.>…é>ë9ª>GË®>§&*?ì"*?á•d¿K´ <!zæ>€¿ÌN,?˜6?ŒëD? 43ó´=®Ç±>Â=²>M5>~$2?g02?oXx¿áëy;•€x>€¿v€5?~8?RÄN? 4°v¾ö@ž>뱞>ÿñõ¾mÖ?²?­)L¿³Xs¼.f¿€¿}‡Z?¶m2?4'v? 4\Ï.¾…é>ë9ª>GË®¾§&*?ì"*?6 d¿ŽH¼Pæ¾€¿8ïR?˜6?‚Nl? 43󴽮DZ>Â=²>I$2?g02?sx¿Ù¸»ÕÃv¾€¿Š½I?~8?Äub? 4뱞¾ö@ž>°v>²¿mÖ?ÿñõ>¿*c< L¿€¿Pªd?¶m2?€?€‹=ë9ª¾…é>\Ï.>ì"*¿§&*?GË®> Íå¾FÉ&<LÀd¿€¿–Bl?˜6?€? Œ=Â=²¾®Ç±>3ó´=h02¿$2?M5>Ê8u¾–mì;Rx¿€¿Dtu?~8?€?Rì=뱞¾ö@ž>°v¾²¿mÖ?ÿñõ¾è×?S×F¼~ÖK¿€¿Ø`Õ=¶m2?€?VÚ‰>ë9ª¾…é>\Ï.¾ì"*¿§&*?GË®¾?ÿæ>'±í»ud¿€¿¤ž˜=˜6?€?ÆQl>Â=²¾®Ç±>3ó´½h02¿$2?M5¾›z>×»ª?x¿€¿€"=~8?€?ÀîD>°v¾ö@ž>뱞¾ÿñõ¾mÖ?²¿ä¶K?6<ÿ€¿²;>¶m2?4'v?¿‹>\Ï.¾…é>ë9ª¾:Ë®¾¨&*?î"*¿ä•d?³ <zæ¾€¿Ìœ1>˜6?Nl?¿‹>3󴽮DZ>Â=²¾>$2?h02¿oXx?hçy;‘€x¾€¿zcV>~8?Äub?¿‹>°v>ö@ž>뱞¾ÿñõ>mÖ?²¿®)L?Ys¼-f?€¿Î?µ>¶m2?ä;?¿‹>\Ï.>…é>ë9ª¾@Ë®>¥&*?ñ"*¿8 d?ÀG¼Pæ>€¿@¦>˜6?ŒëD?¿‹>3ó´=®Ç±>Â=²¾>5>{$2?k02¿”sx?ø»ÂÃv>€¿é«“>~8?RÄN?¿‹>R(ž>õu¾R(ž>¼¿?m ö¾¼¿?;ê4¿W½‰:š5?€¿¥?(e²>8=f¦©>™9.¾f¦©>Å)*?z¤®¾Ä)*?7ÿ4¿Å«²9®
5?€¿¥?¿)É>w=¦±>õX´½¦±>î1?»a<¾î1?¥5¿­8A5?€¿¥?×ã>aQì=뱞>ðu>뱞>·?O6ö>ÿ¶?ó"5¿f.:Þæ4?€¿¥?kC'?ZÚ‰>ë9ª>Rø->ë9ª>à$*? Ë®>Á$*?“ 5¿…Ð9Qþ4?€¿¥? á?uQl>Â=²>¸6³=Â=²>292?<H3>(92?ž5¿3ø®8H5?€¿¥?rŠ?sîD>뱞>ðu>뱞¾·?O6ö>ÿ¶¿Øæ4?.Ëš:ù"5?€¿žb¿>kC'?ZÚ‰>À‹>ë9ª>Rø->ë9ª¾à$*? Ë®>Á$*¿\þ4?ýË9ˆ 5?€¿žb¿> á?vQl>À‹>Â=²>¸6³=Â=²¾«*2?ß5>¢*2¿¬5?GÏ9:5?€¿žb¿>rŠ?tîD>À‹>R(ž>õu¾R(ž¾¼¿?m ö¾¼¿¿™5?`º‰:<ê4?€¿žb¿>(e²><=À‹>f¦©>™9.¾f¦©¾Å)*?z¤®¾Ä)*¿­
5?ÿ¢²98ÿ4?€¿žb¿>¿)É>y=À‹>¦±>õX´½¦±¾{Ö1?$?¾|Ö1¿|5?wo69j5?€¿žb¿>×ã>cQì=À‹>R(ž¾õu¾R(ž>Å¿¿C ö¾Å¿5¿`Š:.ê4¿€¿æ˜_?(e²>‰ëÄ>4f¦©¾™9.¾f¦©>Ç)*¿i¤®¾È)*?ª
5¿b5²9;ÿ4¿€¿æ˜_?¿)É>ÿœØ>4¦±¾õX´½¦±>î1¿÷a<¾î1?>5¿/
5¿€¿æ˜_?×ã>‡Nì>4뱞¾ðu>뱞>·¿e6ö>·?áæ4¿‹Üš:ï"5¿€¿æ˜_?kC'?:Š?4ë9ª¾Rø->ë9ª>Ð$*¿Ë®>Ð$*?Uþ4¿· Î9 5¿€¿æ˜_? á?l±?4Â=²¾¸6³=Â=²>.92¿H3>.92?C5¿$ë®8£5¿€¿æ˜_?rŠ?–Ø ?4R(ž¾õu¾R(ž¾Å¿¿C ö¾Å¿¿.ê4?nŠ:¨5¿€¿ ìý=(e²>È‹=&:±>f¦©¾™9.¾f¦©¾È)*¿i¤®¾Ç)*¿:ÿ4?›?²9ª
5¿€¿ ìý=¿)É>s=&:±>¦±¾õX´½¦±¾yÖ1¿Q$?¾yÖ1¿n5?Ü49x5¿€¿ ìý=×ã>{Qì=&:±>뱞¾ðu>뱞¾·¿e6ö>·¿ð"5?TÝš:áæ4¿€¿ ìý=kC'?GÚ‰>&:±>ë9ª¾Rø->ë9ª¾Ð$*¿Ë®>Ð$*¿ 5?Î9Uþ4¿€¿ ìý= á?wQl>&:±>Â=²¾¸6³=Â=²¾¨*2¿Ã5>¨*2¿95?t{ 9­5¿€¿ ìý=rŠ?fîD>&:±>Â¥›²G!Ó¾öp¾
)T¿C¿_í?g—Z<ÞÛ¡¼€¿¦Ý~>G.o> ?ŽëÄ>®ï'³®Çê¾ÍLH¾ÿÖk¿n'Ǿ—¬~?°ð!=YÅ¿½€¿¦Ý~>†2> ?.Ø>G)K²™ùù¾pmνõ§z¿µ"P¾¢'z?Dä0=€¿¦Ý~>þÐ= ?ÒNì>öp¾G!Ó¾
×£2C¿
)T¿SÐ<suŒ¼<á¿€¿ˆqºI.o>$Š? ?ÍLH¾®Çê¾
·Ñ¯|'ǾüÖk¿ˆT¤=§Ä
½ò¿€¿ˆqºù€1>h±? ?Âmν™ùù¾Ã"P¾õ§z¿>áýÚ¼ºÆ}¿€¿ˆqº5’ã=œØ ? ?ÌÌL3G!Ó¾öp>
)T¿C?uõ¿Âu$<—s<€¿Ÿ??G.o> ?=Š?R¬²®Çê¾ÍLH>ÿÖk¿n'Ç>L¿ïI=Ê5 =€¿Ÿ??†2> ?~±?R€·²™ùù¾pmÎ=õ§z¿µ"P>¦¸~¿‚7¦<u,È=€¿Ÿ??ÝgÖ= ?ÂØ ?öp>G!Ó¾
×#3C?
)T¿¿˜¨¼Ü°c¼Êë?€¿jVÿ>G.o>«ëÄ> ?ÍLH>®Çê¾Â§2n'Ç>ÿÖk¿d×½Óâ5½ŠS~?€¿jVÿ>i£->Ø> ?pmÎ=™ùù¾
×#²°"P>õ§z¿¶C¾˜Á½$ß|?€¿jVÿ>ÒÇ=ˆNì> ?áò>bÓ>\³ü4?Œ2T?kñõ»$û¥;Pý?€¿jVÿ>ì=C?ä;?Ä‹>{üH>\ë>¸…³©ÔÆ>rèk?c“½hü÷<8?€¿jVÿ>FõP?ŒëD?Ä‹>¤ Ï=…Kú>p=
³áGN>|Àz?">¾ê<¡i}?€¿jVÿ>ìf?RÄN?Ä‹>ÌÌL3bÓ>áò>Œ2T?ü4?Pý¿sü¥»Zóõ;€¿Ÿ??ì=C?X?€‹=¸3\ë>{üH>wèk?™ÔÆ>L9¿‹÷¼2Ú’=€¿Ÿ??FõP?X? Œ=¸…2…Kú>R Ï=|Àz?ÏGN>^|¿¶Ù½ÜÜ.>€¿ý§??Ÿæf?X?Rì=áò¾bÓ>ü4¿Œ2T?óõ;Hü¥;Pý¿€¿Ì’?ì=C?4'v?Ä‹>{üH¾\ë>›Ôƾwèk?´¢”=•Œú<o4¿€¿Ì’?FõP?Nl?Ä‹>R Ͻ…Kú>ÌGN¾~Àz?Rk;>.=¸}{¿€¿Æs?+f?Äub?Ä‹>¸´bÓ>áò¾Œ2T?ý4¿Pý?wý¥»Øôõ»€¿¦Ý~>ì=C?X?VÚ‰>ëQ¸³\ë>{üH¾uèk?›Ôƾ—8?½û÷¼ “½€¿¦Ý~>FõP?X?ÆQl>¤p=³…Kú>R Ͻ|Àz?ÏGN¾~?jx̼1ø½€¿¦Ý~>ìf?X?ÀîD>G!Ó>öp¾
×#³)T?C¿ÓµF:ùÿ?€¿jVÿ>h¥><=>®Çê>ÍLH¾¤¨¤³üÖk?}'Ǿ¸{Ì¡¸€?€¿jVÿ>üâÀ>x=>™ùù>Âmν
×#³‹pz?xCT¾«ê°¹›øª9‰cº¸ÿÿ?€¿jVÿ>Œ³ß>bQì=>3ÛÔ>®Ç-ë9Ž>§£T?H? ¼†ˆ?܉¿üûÙ5¦¥T?€¿ ÷?ÿ:?À‹>@=3ƒì>™™.
ïC>†Kl? ø»òÄ>Šóľ‚sE7CMl?€¿ ?ÿ:?À‹>Œ={û>-ÂÅÇ=öýz?1nâ»úmI>9oI¾v& ·ÿz?€¿ õ?ÿ:?À‹>ØRì=¸ÖÓ>Gy>)\´4ET?V?µrºÓëH:ùÿ?€¿jVÿ>üÁ-?ZÚ‰>>£pë>f&H>
×#´Ãîk?°¶Æ>ýN8çvŸ¸€?€¿jVÿ>€ ?vQl>>{´ú>RhÍ={.´ÓÍz?†CM>áܺúëÃ9Pêˆ:öÿ?€¿jVÿ>9œ?tîD>>¸ÖÓ>¤gºáò¾<<T?ˆ^¼K!¿ï"?(g¸º>T?€¿¿¾Î>ÿ:?Á‹>;Ú‰>£pë>‚¤gº{üH¾èåk?Ó8 ¼cÔÆ¾,ÖÆ>)³˜¸!èk?€¿”Þ>ÿ:?Á‹>¼Ql>{´ú>ΤgºR ϽÔz?å[ú»P¢L¾ ªL>¥¡X;PÕz?€¿”Âî>ÿ:?Á‹>¸îD>)\3öp¾G!Ó>C¿
)T?ùÿ¿w F:¥»:€¿Ÿ??h¥>‰ëÄ>€‹>=š¢3ÍLH¾®Çê>'ǾúÖk?€¿f¡¡¸ }¸€¿Ÿ??üâÀ>ÿœØ>€‹>Bž¬3Âmν™ùù>˜T¾lz?€¿˜ž·R£†¶€¿Ÿ??Œ³ß>‡Nì>€‹>ë9޾p=
.3ÛÔ>†ˆ¿H? ¼§£T?¦¥T¿¢Ú5܉¿€¿ÖêW?ÿ:?ûÿÿ>ð‹=
ïC¾{­3ƒì>òľ ø»†Kl?CMl¿ªuE7Šóľ€¿l P?ÿ:?ûÿÿ>`Œ=ÂÅǽ
×.{û>ÿmI¾oâ»öýz?~ÿz¿†& ·>oI¾€¿ìèG?ÿ:?ûÿÿ>Sì=)\3Gy>¸ÖÓ>V?4ET?ùÿ¿lI:˜€º€¿Ÿ??üÁ-?:Š?€‹>
×£3f&H>£pë>»¶Æ>Àîk?€¿w*ž¸ 78€¿Ÿ??€ ?j±?€‹>
×£3¤hÍ={´ú>œÕM>[Æz?€¿5™[¸¸>47€¿Ÿ??9œ?–Ø ?€‹>ë9Ž>p=
®3ÛÔ>†ˆ?H? ¼§£T?¦¥T¿GNµÜ‰?€¿,S'?ÿ:?ûÿÿ>RÚ‰>
ïC>{-3ƒì>òÄ> ø»†Kl?CMl¿~
½¶‹óÄ>€¿–4/?ÿ:?ûÿÿ>¦Ql>ÂÅÇ=\®{û>nI>ýnâ»õýz?~ÿz¿Ù_¦5AoI>€¿U7?ÿ:?ûÿÿ>´îD>G!Ó¾öp¾
×#3)T¿C¿º«F:ùÿ¿€¿Ì’?h¥>Ì‹=ôÿÿ>®Çê¾ÍLH¾z%3ÿÖk¿n'Ǿ˜Ð 8˜3£¸€¿€¿Ì’?üâÀ>t‹=ôÿÿ>™ùù¾pmν
×#3pz¿gCT¾Íݰ¹t÷:¥¥“ºòÿ¿€¿Ì’?Œ³ß>|Qì=ôÿÿ>¸ÖÓ¾ ¢gºáò¾<<T¿^^¼K!¿ï"?#_8º>T¿€¿œ{À=ÿ:?õ‹>®ëÄ>£pë¾Ç¡gº{üH¾èåk¿§8 ¼cÔÆ¾+ÖÆ>õ†Ÿ8"èk¿€¿Hp=ÿ:?õ‹>.Ø>{´ú¾Ë¡gºR ϽÔz¿æ\ú»J¢L¾ªL>¼Y»PÕz¿€¿Ø=ÿ:?õ‹>ÞNì>¸ÖÓ¾Gy>4ET¿V?±‡
I:ùÿ¿€¿ˆqºüÁ-?GÚ‰>ôÿÿ>£pë¾f&H>Áîk¿º¶Æ>ݸŠÿ¸€¿€¿ˆqº€ ?xQl>ôÿÿ>{´ú¾¤hÍ=ÓÍz¿CM>EѺ(õ:B¤/¹ýÿ¿€¿ˆqº9œ?gîD>ôÿÿ>3ÛÔ¾…Ë­ë9Ž>§£T¿H? ¼†ˆ?܉¿¿Nµ¦¥T¿€¿øFg?ÿ:?ö‹>5Š?3ƒì¾™™®
ïC>†Kl¿ ø»òÄ>‹óľ!½¶CMl¿€¿b(o?ÿ:?ö‹>x±?{û¾­ÂÅÇ=öýz¿´oâ»þmI>:oI¾eŸ®5ÿz¿€¿âHw?ÿ:?ö‹>»Ø ?ÒÞ2öp¾G!Ó¾C¿
)T¿ùÿF:9µº€¿¦Ý~>h¥>ì;?ìÿÿ>Â-²ÍLH¾®Çê¾}'ǾüÖk¿€?”á¸Þ™8€¿¦Ý~>üâÀ>šëD?ìÿÿ>Â-3Âmν™ùù¾ÕîS¾uz¿óÿ?qÑœºr²„9€¿¦Ý~>Œ³ß>ZÄN?ìÿÿ>áò>°£gº¸ÖÓ¾K!?„^¼<<T¿º>T?æõ^8ï"?€¿~°>ÿ:?X?~ëÄ>{üH>ï£gº£pë¾`ÔÆ>Ç8 ¼èåk¿"èk?臟8)ÖÆ>€¿©C >ÿ:?X?"Ø>R Ï=T£gº{´ú¾J¢L>ú[ú»Ôz¿PÕz? ªL>€¿ª>ÿ:?X?¶Nì>\B´Gy>¸ÖÓ¾W?2ET¿ùÿI:ª:€¿¦Ý~>üÁ-?D'v?ìÿÿ>®Ga´f&H>£pë¾À¶Æ>Àîk¿€?ô7ž¸dB¸€¿¦Ý~>€ ?†Nl?ìÿÿ>…k´¤hÍ={´ú¾•±L>KÕz¿øÿ?5§s:›ÕF9€¿¦Ý~>9œ?ºub?ìÿÿ>áò¾a¢gº¸ÖÓ¾K!¿i^¼<<T¿º>T?“Dg¸ï"¿€¿P®>ÿ:?X?8Š?{üH¾ ¢gº£pë¾aÔÆ¾±8 ¼èåk¿"èk?±˜¸+ÖÆ¾€¿ú3=>ÿ:?X?z±?R Ͻ£gº{´ú¾U¢L¾w\ú»Ôz¿OÕz?H­X;ªL¾€¿úµ]>ÿ:?X?ÁØ ?®w~>G µ¾®w~¾ò!þ>‰T6¿ò!þ¾ô5?Ï›3ò5?€¿žb¿>Î>«ëÄ>ŽëÄ>33>Â=žÍ‡¾Oϲ>MF¿ªú¿h}T? °» Ä?€¿¯>h€>Ø>ŽëÄ>GÁ¸=R¨Ï¾Â
¾rà8>V™P¿Æ
¿9w?þ
7= m€>€¿H3™>ë–s>ˆNì>ŽëÄ>͇>Â=ž33¾ªú?MF¿Oϲ¾Ý<?]u<%ÇR?€¿(¨Ï>h€>«ëÄ>.Ø>…[<>¾Ù¾…[<¾ùé»>½ÐZ¿ù黾á6@?Ëö =É(?€¿žb¿>.\[>Ø>.Ø>Á=õˆæ¾…›D¾½BA>΂g¿ÒľŒöi?Mtœ<ú–Ï>€¿¢­¤>>>ˆNì>.Ø>Â
>R¨Ï¾GÁ¸½Ç
?V™P¿rà8¾¿™b>M"‡½Èy?€¿ô‘å>ë–s>«ëÄ>ÒNì>…›D>õˆæ¾Á½ÓÄ>΂g¿½BA¾°çã>*Ë:D=e?€¿™Ú>Wy3>Ø>ÒNì>¸>Ê=
õ¾¸>ʽí÷J>‘¼u¿ï÷J¾à«@?¾ÈŸ<b}(?€¿ØÂ¾>+Õ>ˆNì>ÒNì>®w~¾G µ¾®w~¾ò!þ¾‰T6¿ò!þ¾ô5?œÜJ³ó5¿€¿ ìý=Α>$Š?ŽëÄ>͇¾Â=ž33¾ªú¿MF¿Oϲ¾ü• ?·+Þ;û–V¿€¿ôÕ¼=h€>$Š?.Ø>Â
¾R¨Ï¾GÁ¸½Æ
¿V™P¿uà8¾
"‡>Yõ=5Âv¿€¿€]J=í–s>$Š?ÒNì>33¾Â=žÍ‡¾Oϲ¾MF¿ªú¿ü–V?ú+Þ»û• ¿€¿">h€>h±?ŽëÄ>…[<¾¾Ù¾…[<¾ù黾½ÐZ¿ù黾x"4?ìÙA;íå5¿€¿ ìý=`¯V>h±?.Ø>…›D¾õˆæ¾Á½Úľ͂g¿ÏBA¾üÓ>Áqp<ÿh¿€¿,“=åa>>h±?ÒNì>GÁ¸½R¨Ï¾Â
¾uà8¾V™P¿Ç
¿õ³v?(U
½ÿ”‡¾€¿¼TK>í–s>œØ ?ŽëÄ>Á½õˆæ¾…›D¾¿BA¾Î‚g¿Òľ"ci?2†¼«9Ò¾€¿`4>é>=>œØ ?.Ø>¸>ʽ
õ¾¸>ʽ÷÷J¾‘¼u¿øJ¾´‹,?ç‹Z<4=¿€¿œ5>g•>œØ ?ÒNì>®w~¾G µ¾®w~>ò!þ¾‰T6¿ò!þ>ð5¿Z
‡´ö5¿€¿æ˜_?Α>$Š?=Š?33¾Â=žÍ‡>Oϲ¾MF¿ªú?cƒW¿NI<‰!
¿€¿!vW?h€>h±?=Š?GÁ¸½R¨Ï¾Â
>uà8¾V™P¿Æ
?7jx¿Ÿée=¢¦p¾€¿<L?í–s>œØ ?=Ї¾Â=ž33>ªú¿MF¿Oϲ>qñ¿r‰¼@X¿€¿­»g?h€>$Š?~±?…[<¾¾Ù¾…[<>ù黾½ÐZ¿ùé»>~Ç0¿ke¼¬ 9¿€¿æ˜_?`¯V>h±?~±?Á½õˆæ¾…›D>¿BA¾Î‚g¿ÒÄ>%½h¿(p]< "Õ¾€¿h>R?§7:>œØ ?~±
¾R¨Ï¾GÁ¸=Ç
¿V™P¿uà8>Œd‚¾œ›+½•Sw¿€¿’°r?í–s>$Š?ÂØ ?…›D¾õˆæ¾Á=Úľ͂g¿ÏBA><5Ó¾žM}¼u+i¿€¿fól?åa>>h±?ÂØ ?¸>ʽ
õ¾¸>Ê=÷÷J¾‘¼u¿øJ>ΰ5¿d6Ž:gX4¿€¿Èa?…à>œØ ?ÂØ ?®w~>G µ¾®w~>ò!þ>‰T6¿ò!þ>õ5¿ý=´ñ5?€¿¥>«ëÄ>=Ї>Â=ž33>ªú?MF¿Oϲ>ñf
¿ñQ¹‡gU?€¿V?h€>«ëÄ>~±
>R¨Ï¾GÁ¸=Æ
?V™P¿uà8>H¾-BÀ<°²u?€¿p ?ë–s>«ëÄ>ÂØ ?33>Â=žÍ‡>Oϲ>MF¿ªú?ˆgU¿²<9ðf
?€¿ßÇ'?h€>Ø>=Š?…[<>¾Ù¾…[<>ùé»>½ÐZ¿ùé»>ÿ³6¿Gº»YP3?€¿¥?.\[>Ø>~±?…›D>õˆæ¾Á=ÒÄ>΂g¿½BA>ôÞ¾"™g;¹sf?€¿J9>Ø>ÂØ ?GÁ¸=R¨Ï¾Â
>và8>V™P¿Æ
?¤Ëu¿ú°È¼ÚŽ>€¿Æ¼2?ë–s>ˆNì>=Š?Á=õˆæ¾…›D>½BA>΂g¿ÒÄ>=÷i¿‹Žœ¼È“Ï>€¿šÿ,?åy;>ˆNì>~±?¸>Ê=
õ¾¸>Ê=í÷J>‘¼u¿ï÷J>¼Ý?¿NW”¼”j)?€¿çu?mG>ˆNì>ÂØ ?®7>-µ>®7¾þ>T`6?þ¾ó5?»²S3ô5?€¿žb¿>¸°9?ä;?VÚ‰>\‡>=rÅ>áª3¾°ñ?IF?1ú²¾g(?^”¼íR?€¿(¨Ï>nÕ>?ä;?ÆQl>Ž>™éÏ>=b¹½Qù ?%¢P?%Í8¾y>FRM=Oúw?€¿ô‘å>Â#B?ä;?ÀîD>áª3>=rÅ>\‡¾1ú²>IF?°ñ¿ïR?Ç]”<d(?€¿¯>nÕ>?ŒëD?VÚ‰>
ÿ<>Ú>
ÿ<¾ìÔ»>ÆÙZ?ìÔ»¾ô5?K˜²ó5?€¿žb¿>;WE?ŒëD?ÆQl>=BE>¤Ðæ>™1½¥¶Ã>8•g?‡A¾ŸZÍ>¦&¯<bqj?€¿›Ú>ÌO?ŒëD?ÀîD>=b¹=™éÏ>޾Í8>'¢P?Rù ¿Oúw?:RM½y>€¿H3™>Â#B?RÄN?VÚ‰>™1Â=¤Ðæ>=BE¾uA>:•g?ž¶Ã¾kqj?£'¯¼tZÍ>€¿¢­¤>ÌO?RÄN?ÆQl>fîÊ=™Yõ>fîʽñI>¡×u?"ñI¾n5?€œwºðm4?€¿žb¿>þà^?RÄN?ÀîD>®7>-µ>®7>þ>T`6?þ>ó5¿

³ô5?€¿¥?¸°9?ä;?€‹=áª3>=rÅ>\‡>1ú²>IF?°ñ?V¿1x;~ ?€¿ßÇ'?nÕ>?ŒëD?€‹==b¹=™éÏ>Ž>%Í8>%¢P?Qù ?Ù¨r¿Ü+¯»Ë£>€¿Æ¼2?Â#B?RÄN?€‹=\‡>=rÅ>áª3>°ñ?IF?1ú²>~ ¿*V?€¿V?nÕ>?ä;? Œ=
ÿ<>Ú>
ÿ<>ìÔ»>ÆÙZ?ìÔ»>ó5¿möq²ó5?€¿¥?;WE?ŒëD? Œ=™1Â=¤Ðæ>=BE>yA>:•g?ž¶Ã>¾\g¿3 ö;¯Û>€¿šÿ,?ÌO?RÄN? Œ=Ž>™éÏ>=b¹=Rù ?'¢P?#Í8>Σ¾÷,¯;Ù¨r?€¿p ?Â#B?ä;?Rì==BE>¤Ðæ>™1Â=¦¶Ã>8•g?…A>´Û¾ ö»½\g?€¿œJO?ŒëD?Rì=fîÊ=™Yõ>fîÊ=ñI>¡×u?ñI>÷5¿8x9íð4?€¿¥?þà^?RÄN?Rì=®7¾-µ>®7>þ¾T`6?þ>ò5¿œ½¦3ô5¿€¿æ˜_?¸°9?4'v?€‹=\‡¾=rÅ>áª3>°ñ¿IF?1ú²>i(¿Y^”¼ìR¿€¿­»g?nÕ>?4'v? Œ=޾™éÏ>=b¹=Rù ¿'¢P?&Í8>y¾1RM=Núw¿€¿”°r?Â#B?4'v?Rì=áª3¾=rÅ>\‡>1ú²¾IF?°ñR¿L^”<i(¿€¿!vW?nÕ>?Nl?€‹=
ÿ<¾Ú>
ÿ<>ìÔ»¾ÆÙZ?ìÔ»>ó5¿¨Jo²ó5¿€¿æ˜_?;WE?Nl? Œ==BE¾¤Ðæ>™1Â=ž¶Ã¾:•g?yA>Õ¬º¾Ô#=ô(n¿€¿fól?ÌO?Nl?Rì==b¹½™éÏ>Ž>#Í8¾'¢P?Rù ?Oúw¿@RM½ €¿<L?Â#B?Äub?€‹=™1½¤Ðæ>=BE>xA¾:•g?ž¶Ã>•Œm¿ñ½Jî½¾€¿h>R?ÌO?Äub? Œ=fîʽ™Yõ>fîÊ=ñI¾£×u?ñI>q{2¿þa„;¼„7¿€¿æ˜_?»k`?Äub?Rì=®7¾-µ>®7¾þ¾T`6?þ¾ó5?*†²ó5¿€¿ ìý=¸°9?4'v?VÚ‰>áª3¾=rÅ>\‡¾"ú²¾“IF?±ñ¿—V?x;~ ¿€¿">nÕ>?Nl?VÚ‰>ëa¹½™éÏ>޾Í8¾'¢P?Rù ¿ß¨r?ø'¯»¥£¾€¿ºTK>Â#B?Äub?VÚ‰>\‡¾=rÅ>áª3¾°ñ¿IF?1ú²¾~ ?V¿€¿ôÕ¼=nÕ>?4'v?ÆQl>
ÿ<¾Ú>
ÿ<¾æÔ»¾ÆÙZ?ôÔ»¾ú5?г5¿€¿ ìý=;WE?Nl?ÆQl>™1½¤Ðæ>=BE¾oA¾8•g?¨¶Ã¾¿\g?ö;©Û¾€¿`4>ÌO?Äub?ÆQl>޾™éÏ>=b¹½Rù ¿'¢P?#Í8¾Ñ£>ˆ-¯;بr¿€¿€]J=Â#B?4'v?ÀîD>=BE¾¤Ðæ>™1½ž¶Ã¾:•g?yA¾°Û> ö»½\g¿€¿,“=ÌO?Nl?ÀîD>fîʽ™Yõ>fîʽñI¾£×u? ñI¾ò5?E”«1ô5¿€¿ ìý=þà^?Äub?ÀîD>G µ>®w~¾®w~¾|T6?#"þ¾ç!þ¾Ïy?²bò»Ö£R?€¿ptÍ>¶±¯><=;Ú‰>Â=Å>͇¾3MF?´ú¿7ϲ¾ÈÜÐ>>¾±» ºi?€¿Œ£Ü>¹Àª><=¼Ql>R¨Ï>Â
¾GÁ¸½V™P?Æ
¿và8¾K
\>Af»æz?€¿%„í>êë¦><=¸îD>Â=Å>…3¾Í‡¾MF?jϲ¾©ú¿ªé?ê«âº¸S?€¿§uÎ>’ŸÇ>y=;Ú‰>¾Ù>…[<¾…[<¾ÂÐZ?껾Ò黾˜É>·»Rk?€¿áÞ>k­Ä>y=¼Ql>õˆæ>…›D¾Á½Í‚g?ÚľÏBA¾{ªP>[y§ºÙ z?€¿¸}î>Â>x=¸îD>R¨Ï>GÁ¸½Â
¾ò=P?~aB¾M¿ ¿¹T?>~ºT?€¿¦ÀÎ>$ã>cQì=;Ú‰>õˆæ>Á½…›D¾y"g?»ÂI¾[£Ã¾
{Ç>ØB?ºNÅk?€¿M„Þ>­¾á>cQì=¼Ql>
õ>¸>ʽ¸>ʽ‡u?éïP¾2éH¾ZM>~:­Ìz?€¿Äî>„]à>bQì=¸îD>G µ>®w~¾®w~>|T6?#"þ¾ç!þ>'¼¿!b¬;wR?€¿1œ?¶±¯>8=@=Â=Å>…3¾Í‡>MF?jϲ¾©ú?꿸^à:Ò·S?€¿–?’ŸÇ>w=@=R¨Ï>GÁ¸½Â
>=‡P?öF@¾ó€ ? ¿Ä%è7*NT?€¿ö?$ã>aQì=@=Â=Å>͇¾33>MF?¶ú¿6ϲ>ê×оWá³;»i?€¿£?¹Àª>8=Œ=¾Ù>…[<¾…[<>ÂÐZ?껾Òé»>
§É¾`èü:ÕNk?€¿ùI?k­Ä>x=Œ=õˆæ>Á½…›D>ã]g?,I¾U¸Â>ñ•ƾùç1¶¨õk?€¿C?­¾á>bQì=Œ=R¨Ï>Â
¾GÁ¸=V™P?Ä
¿rà8>-[¾D h;Ëz?€¿X”?êë¦><=ØRì=õˆæ>…›D¾Á=Í‚g?ÚľÍBA>‘«P¾{¦:Ë z?€¿?Â>x=ØRì=
õ>¸>ʽ¸>Ê=ž–u?DDQ¾‹iG>¶K¾oÀY5âz?€¿#ô?„]à>bQì=ØRì=롵>®w~>®7>Ðh6?ê(þ>Áàý>ÀS¿ó$ô»¾R?€¿2œ?$(?ZÚ‰>@={äÅ>ë ‡>áª3>8`F?Ÿà?1ɲ>,Ùо©»óºi?€¿¤+?ZÚ‰>Œ=^Ð>>=b¹=µP?ÙÜ ?ÃÒ8>0î[¾-“ »uz?€¿X”?-?ZÚ‰>ØRì={äÅ>Ø2>\‡>#hF?á²> Í?Á¸¿þ®ðºBÙS?€¿–?6¦?uQl>@=¸^Ú>
'<>
ÿ<>ÒñZ?g¨»>G‘»>].ɾ »šhk?€¿ùI?H?uQl>Œ=ë1ç>=rD>™1Â=õ›g?JÃ>§,A>ÙxP¾'ñ­ºm£z?€¿?{n?uQl>ØRì=^Ð>¤¨·=Ž>NûP?Û±7>;Œ ?,Û¿Ónx¹oT?€¿ö?ôã?sîD>@=ë1ç>ëyÀ==BE>jÑg?ƒgA>¥‚Â>¥
ƾ~¹Il?€¿C?¨–?sîD>Œ=̼õ>õ0É=fîÊ=òñu?uNJ>MG>K¾•–¹Fäz?€¿#ô?<G?sîD>ØRì=롵>®w~>®7¾Ðh6?ê(þ>Áàý¾æ¡?Ö·¡;U‰R?€¿ntÍ>$(?ZÚ‰>;Ú‰>{äÅ>Ø2>\‡¾#hF?á²> Í¿­¼?°U×: ÖS?€¿§uÎ>6¦?vQl>;Ú‰>^Ð>¤¨·=޾O½P?Ï8>áÐ ¿³%?q;:Û<T?€¿¦ÀÎ>ôã?tîD>;Ú‰>{äÅ>ë ‡>áª3¾;`F? à?#ɲ¾¢ÍÐ>sŒ®;x½i?€¿Œ£Ü>¢+?ZÚ‰>¼Ql>¸^Ú>
'<>
ÿ<¾ÒñZ?o¨»>?‘»¾µ7É>θ;£fk?€¿áÞ>H?vQl>¼Ql>ë1ç>ëyÀ==BE¾J¢g?ÍA>ñtþ›úÆ>ˆ‚:qàk?€¿M„Þ>¨–?tîD>¼Ql>^Ð>>ëa¹½µP?ÚÜ ?¶Ò8¾`[>y<b;Sz?€¿%„í>-?ZÚ‰>¸îD>ë1ç>=rD>™1½ò›g?TÃ>¨,A¾ËuP>¶º±:•£z?€¿¸}î>{n?vQl>¸îD>̼õ>õ0É=fîʽ éu?A=I>ZQI¾N@M>"Ò·9Îz?€¿Äî><G?tîD>¸îD>®w~>®w~¾G µ>"þ>"þ¾pT6?£R¿F_ò»ìy?€¿®&?¶±¯>‰ëÄ>RÚ‰>…3>͇¾Â=Å>@ϲ>µú¿MF? ºi¿‹¼±»ÖÜÐ>€¿“E.?¹Àª>‰ëÄ>¦Ql>õÀ¸=Â
¾R¨Ï>$à8>Æ
¿Z™P?íz¿˜n»Ó \>€¿Þµ6?êë¦>‰ëÄ>´îD>͇>…3¾Â=Å>´ú?Oϲ¾MF?
¸S¿³âº±é?€¿ .'?’ŸÇ>ÿœØ>RÚ‰>…[<>…[<¾¾Ù>Öé»>ä黾ÈÐZ?Rk¿¢»˜É>€¿=/?k­Ä>ÿœØ>¦Ql>Á=…›D¾õˆæ>¦BA>Õľ΂g?Û z¿ v§ºQªP>€¿ª27?Â>ÿœØ>´îD>Â
>GÁ¸½R¨Ï>ó€ ?öF@¾=‡P?¦NT¿¥e˸P ?€¿T'?$ã>ƒNì>RÚ‰>…›D>Á½õˆæ>V¸Â>)I¾ã]g?ök¿µ£¸þ“Æ>€¿ô5/?­¾á>‡Nì>¦Ql>¸>Ê=¸>ʽ
õ>iG>DDQ¾ž–u?âz¿ýpz6_¶K>€¿V7?„]à>‡Nì>´îD>®w~¾®w~¾G µ>ò!þ¾ò!þ¾‰T6?ývR¿mN¬;7¼¿€¿ýX?¶±¯>‰ëÄ>ð‹‡¾33¾Â=Å>ªú¿Oϲ¾MF?Ö·S¿Ïwà:ÿé¿€¿bX?’ŸÇ>ÿœØ>ð‹
¾GÁ¸½R¨Ï>õ€ ¿4G@¾;‡P?,NT¿¼I÷7 ¿€¿âéW?$ã>‡Nì>ð‹=33¾Í‡¾Â=Å>Bϲ¾«ú¿"MF?!»i¿Rî³;Õ×о€¿qøP?¹Àª>‰ëÄ>`Œ=…[<¾…[<¾¾Ù>ð黾껾½ÐZ?ÚNk¿o†ý:ï¦É¾€¿Ç=P?k­Ä>ÿœØ>`Œ=…›D¾Á½õˆæ>c¸Â¾HI¾Þ]g?¥õk¿e1*¶–ƾ€¿P?­¾á>‡Nì>`Œ=õÀ¸½Â
¾R¨Ï>\à8¾Æ
¿V™P?Ìz¿"h;á,[¾€¿$ˆH?êë¦>‰ëÄ>Sì=Á½…›D¾õˆæ>ÁBA¾âľ˂g?Ë z¿é¦:«P¾€¿Z H?Â>ÿœØ>Sì=¸>ʽ¸>ʽ
õ>ŒiG¾DDQ¾ž–u?âz¿^‡Q5¶K¾€¿îçG?„]à>‡Nì>Sì=®7¾®w~>롵>µàý¾)þ>Ãh6? ¾R¿­ô»ÊS¿€¿ÿX?$(?:Š?ð‹=áª3¾ë ‡>{äÅ>ɲ¾«à?7`F?öºi¿õz©»Ùо€¿qøP?¢+?:Š?`Œ==b¹½>^Ð>ÄÒ8¾ÙÜ ?µP?uz¿%” ».î[¾€¿$ˆH?-?:Š?Sì=\‡¾RØ2>{äÅ> Í¿+á²> hF?BÙS¿{¹ðºÁ¸¿€¿bX?6¦?l±?ð‹=
ÿ<¾
'<>¸^Ú>‘»¾p¨»>ØñZ?hk¿QI»s.ɾ€¿Ç=P?H?l±?`Œ=™1½=rD>ë1ç>·,A¾QÃ>ò›g?m£z¿=®ºÚxP¾€¿Z H?}n?l±?Sì=޾¤¨·=^Ð>;Œ ¿Ÿ±7>RûP?oT¿fÛy¹'Û¿€¿âéW?ôã?–Ø ?ð‹==BE¾ëyÀ=ë1ç>˜‚¾fgA>oÑg?Jl¿
«|¹ 
ƾ€¿P?¨–?–Ø ?`Œ=fîʽõ0É=̼õ>bG¾€NJ>ðñu?Fäz¿÷³¹ýŠK¾€¿îçG?<G?–Ø ?Sì=®7>®w~>롵>µàý>)þ>Ãh6?a‰R¿ÃË¡;Ö¡?€¿®&?$(?:Š?RÚ‰>\‡>RØ2>{äÅ> Í?+á²> hF?›ÖS¿
=×:³¼?€¿ .'?6¦?j±?RÚ‰>Ž>¤¨·=^Ð><Œ ?ž±7>QûP?oT¿‚³}9Û?€¿T'?ôã?–Ø ?RÚ‰>áª3>ë ‡>{äÅ>ɲ>ªà?7`F?s½i¿Ñ~®;¹ÍÐ>€¿“E.?¢+?:Š?šQl>
ÿ<>
'<>¸^Ú>!‘»>p¨»>ØñZ?œfk¿ô];×7É>€¿=/?H?j±?¦Ql>=BE>ëyÀ=ë1ç>˜‚Â>fgA>oÑg?Êl¿'ó9Æ>€¿ô5/?¨–?–Ø ?¦Ql>=b¹=>^Ð>ÈÒ8>ØÜ ?µP?Qz¿P4b;[>€¿Þµ6?-?:Š?´îD>™1Â==rD>ë1ç>¾,A>RÃ>ò›g?”£z¿Àñ:ÛuP>€¿ª27?}n?j±?´îD>fîÊ=õ0É=̼õ>iG>NJ>ðñu?&äz¿šÏ8~K>€¿V7?<G?–Ø ?´îD>G µ¾®w~¾®w~>|T6¿ç!þ¾#"þ>áy¿chò»É£R¿€¿Î¡f?¶±¯>Ì‹=5Š?Â=žÍ‡¾…3>MF¿©ú¿jϲ>ÿÜо⽱»ºi¿€¿\9n?¹Àª>Ì‹=x±?R¨Ï¾Â
¾GÁ¸=Y™P¿Ç
¿:à8>
g»êz¿€¿ª©v?êë¦>Ì‹=¼Ø ?Â=ž33¾Í‡>MF¿6ϲ¾¶ú?±é¿¨âº
¸S¿€¿l"g?’ŸÇ>u=5Š?¾Ù¾…[<¾…[<>ÂÐZ¿Ò黾ê»>ø—ɾËi»Rk¿€¿ ôn?k­Ä>u‹=x±?õˆæ¾…›D¾Á=Ó‚g¿Åľ¢BA>_ªP¾"\§ºÛ z¿€¿t&w?Â>t=¼Ø ?R¨Ï¾GÁ¸½Â
>;‡P¿4G@¾õ€ ?V ¿²yȸ¢NT¿€¿ëGg?$ã>}Qì=5Š?õˆæ¾Á½…›D>Þ]g¿HI¾c¸Â>”ƾm§¸ök¿€¿¾)o?­¾á>}Qì=x±?
õ¾¸>ʽ¸>Ê=Ÿ–u¿:DQ¾wiG>f¶K¾áÎÌ6âz¿€¿àIw?„]à>|Qì=»Ø ?G µ¾®w~¾®w~¾‰T6¿ò!þ¾ò!þ¾9¼?TL¬;üvR¿€¿Ø¤Å=¶±¯>È‹=®ëÄ>Â=ž33¾Í‡¾MF¿Oϲ¾ªú¿ÿé?xà:Ö·S¿€¿øŸÁ=’ŸÇ>s‹=®ëÄ>R¨Ï¾GÁ¸½Â
¾ï=P¿·aB¾J¿ ¿[T?‡“:ZT¿€¿üsÀ=$ã>{Qì=®ëÄ>Â=žÍ‡¾3MF¿ªú¿Oϲ¾ç×Ð>aí³;»i¿€¿hèˆ=¹Àª>È‹=.Ø>¾Ù¾…[<¾…[<¾½ÐZ¿ù黾ù黾ø¦É>„ý:ØNk¿€¿ƒ=k­Ä>t‹=.Ø>õˆæ¾Á½…›D¾t"g¿ÖÂI¾f£Ã¾ízÇ>'*A:TÅk¿€¿\e=­¾á>|Qì=.Ø>R¨Ï¾Â
¾GÁ¸½V™P¿Å
¿rà8¾-[>wh;Ëz¿€¿Ì
=êë¦>Ì‹=ÞNì>õˆæ¾…›D¾Á½Î‚g¿Òľ½BA¾„«P>ç¦:Ë z¿€¿pÿ=Â>t=ÞNì>
õ¾¸>ʽ¸>ʽ’‡u¿àïP¾éH¾Ú$M>H¥Ò9gÏz¿€¿¸È=„]à>|Qì=ÞNì>롵¾®w~>®7¾Ãh6¿)þ>µàý¾ÉSô» ¾R¿€¿Ü¤Å=$(?GÚ‰>®ëÄ>{äÅ¾ë ‡>áª3¾7`F¿«à?ɲ¾!ÙÐ>Ez©»öºi¿€¿hèˆ=¢+?GÚ‰>.Ø>^о>=b¹½µP¿ÙÜ ?ÅÒ8¾,î[>n• »uz¿€¿Ì
=-?GÚ‰>ÞNì>{äžRØ2>\‡¾ hF¿+á²> Í¿Á¸?N¹ðºBÙS¿€¿øŸÁ=6¦?wQl>®ëÄ>¸^Ú¾
'<>
ÿ<¾ØñZ¿p¨»>‘»¾t.É>$H»–hk¿€¿ƒ=H?wQl>.Ø>ë1ç¾=rD>™1½ò›g¿QÃ>»,A¾ÛxP>? ®ºm£z¿€¿pÿ=}n?wQl>ÞNì>^о¤¨·=޾S½P¿dÏ8>áÐ ¿.&?ÆÉ<T¿€¿üsÀ=ôã?fîD>®ëÄ>ë1ç¾ëyÀ==BE¾O¢g¿°A>ãtþIúÆ>Ykº‚àk¿€¿\e=¨–?fîD>.Ø>̼õ¾õ0É=fîʽéu¿L=I>gQI¾¤ýL>ê׺RÑz¿€¿¸È=<G?fîD>ÞNì>롵¾®w~>®7>Ãh6¿)þ>µàý>Ö¡¿ÁË¡;a‰R¿€¿Î¡f?$(?GÚ‰>5Š?{äžRØ2>\‡> hF¿+á²> Í?³¼¿þ:×:›ÖS¿€¿l"g?6¦?xQl>5Š?^о¤¨·=Ž>QûP¿ž±7><Œ ?Û¿6£}9oT¿€¿ëGg?ôã?gîD>5Š?{äÅ¾ë ‡>áª3>7`F¿ªà?ɲ>¶Íоæ®;t½i¿€¿\9n?¢+?GÚ‰>x±?¸^Ú¾
'<>
ÿ<>ØñZ¿p¨»>!‘»>×7ɾ ];œfk¿€¿ ôn?H?xQl>x±?ë1ç¾ëyÀ==BE>oÑg¿fgA>˜‚Â>ƾ[ÿl¿€¿¾)o?¨–?gîD>x±?^о>=b¹=µP¿ØÜ ?ÆÒ8>[¾o1b;Qz¿€¿ª©v?-?GÚ‰>»Ø ?ë1ç¾=rD>™1Â=ò›g¿QÃ>º,A>ÖuP¾;ı:”£z¿€¿t&w?}n?xQl>»Ø ?̼õ¾õ0É=fîÊ=ðñu¿€NJ>fG>{K¾¶÷Î8&äz¿€¿àIw?<G?gîD>»Ø ?®w~¾®w~¾G µ¾#"þ¾ç!þ¾|T6¿É£R?^hò»áy¿€¿°>¶±¯>ì;?8Š?…3¾Í‡¾Â=žjϲ¾©ú¿MF¿ºi?ô¾±»ýÜо€¿êw9>¹Àª>ì;?z±?GÁ¸½Â
¾R¨Ï¾9à8¾Æ
¿Y™P¿êz?Gi»ú \¾€¿9[>êë¦>ì;?ÁØ ?͇¾33¾Â=ž¶ú¿6ϲ¾MF¿
¸S?¤©âº±é¿€¿ >’ŸÇ>šëD?8Š?…[<¾…[<¾¾Ù¾껾Ò黾ÂÐZ¿Rk?Éi»ø—ɾ€¿”b<>k­Ä>šëD?z±?Á½…›D¾õˆæ¾¯BA¾Ëľ҂g¿Û z?{y§ºUªP¾€¿B,]>Â>šëD?ÁØ ?Â
¾GÁ¸½R¨Ï¾J¿ ¿·aB¾ï=P¿T?»!º¼T¿€¿ ²>$ã>ZÄN?8Š?…›D¾Á½õˆæ¾f£Ã¾ÖÂI¾t"g¿MÅk?ù·?º{Ǿ€¿l9=>­¾á>ZÄN?z±?¸>ʽ¸>ʽ
õ¾0éH¾èïP¾‡u¿­Ìz?õŽ:ZM¾€¿ð¹]>„]à>ZÄN?ÁØ ?®w~>®w~¾G µ¾ç!þ>#"þ¾|T6¿ wR?£c¬;&¼?€¿ÌP±>¶±¯>ì;?~ëÄ>͇>…3¾Â=ž©ú?jϲ¾MF¿Ò·S?qaà:ê?€¿—O°>’ŸÇ>šëD?~ëÄ>Â
>GÁ¸½R¨Ï¾M¿ ?~aB¾ò=P¿WT?&:`T?€¿–°>$ã>ZÄN?~ëÄ>33>͇¾Â=ž6ϲ>¶ú¿MF¿»i?¹ß³;î×Ð>€¿°!¢>¹Àª>ì;?"Ø>…[<>…[<¾¾Ù¾Òé»>껾ÂÐZ¿ÕNk?
êü: §É>€¿\¬ >k­Ä>šëD?"Ø>…›D>Á½õˆæ¾Y£Ã>¹ÂI¾y"g¿XÅk?ß%A:ÞzÇ>€¿ï@ >­¾á>ZÄN?"Ø>GÁ¸=Â
¾R¨Ï¾uà8>Ç
¿V™P¿Êz?Th;-[>€¿A>êë¦>ì;?¶Nì>Á=…›D¾õˆæ¾ÏBA>Úľ͂g¿Ë z?¦:–«P>€¿„G>Â>šëD?¶Nì>¸>Ê=¸>ʽ
õ¾.éH>åïP¾‡u¿gÏz?þçÓ9Ñ$M>€¿®>„]à>ZÄN?¶Nì>®7>®w~>롵¾µàý>)þ>Ãh6¿ ¾R?wô»ÊS?€¿ÌP±>$(?D'v?~ëÄ>áª3>ë ‡>{äžɲ>¬à?9`F¿ûºi?&{©» ÙÐ>€¿°!¢>¢+?D'v?"Ø>ëa¹=>^о¬Ò8>ÚÜ ?µP¿wz?Й »î[>€¿A>-?D'v?¶Nì>\‡>RØ2>{äž Í?+á²> hF¿BÙS?åºðºÁ¸?€¿—O°>6¦?†Nl?~ëÄ>
ÿ<>
'<>¸^Ú¾‘»>z¨»>ØñZ¿—hk?G»o.É>€¿\¬ >H?†Nl?"Ø>™1Â==rD>ë1羫,A>ZÃ>ñ›g¿m£z?, ®ºÍxP>€¿„G>}n?†Nl?¶Nì>Ž>¤¨·=^оáÐ ?bÏ8>S½P¿ˆ<T?ÚÈî¹.&?€¿–°>ôã?ºub?~ëÄ>=BE>ëyÀ=ë1ç¾ãtÃ>¯A>O¢g¿‚àk?lºIúÆ>€¿ï@ >¨–?ºub?"Ø>fîÊ=õ0É=̼õ¾_QI>L=I>éu¿RÑz? «×ºœýL>€¿®><G?ºub?¶Nì>®7¾®w~>롵¾µàý¾)þ>Ãh6¿a‰R?Ì¡;Ö¡¿€¿°>$(?D'v?7Š?\‡¾RØ2>{äž Í¿+á²> hF¿›ÖS?î<×:³¼¿€¿ >6¦?†Nl?7Š?޾¤¨·=^оàÐ ¿cÏ8>T½P¿Ú<T?ºÁ:´%¿€¿ ²>ôã?ºub?8Š?áª3¾ë ‡>{äžɲ¾¬à?9`F¿x½i?€®;¢Íо€¿êw9>¢+?D'v?z±?
ÿ<¾
'<>¸^Ú¾‘»¾z¨»>ØñZ¿fk?Ô];Ð7ɾ€¿”b<>H?†Nl?z±?=BE¾ëyÀ=ë1ç¾ätþ°A>O¢g¿tàk?÷m:Žúƾ€¿l9=>¨–?ºub?z±?ëa¹½>^о·Ò8¾ÚÜ ?µP¿Sz?:7b;o€¿9[>-?D'v?ÁØ ?™1½=rD>ë1羺,A¾]Ã>ñ›g¿”£z?⿱:ÛuP¾€¿B,]>}n?†Nl?ÁØ ?fîʽõ0É=̼õ¾pQI¾N=I>éu¿Îz?7:¹9A@M¾€¿ð¹]><G?ºub?ÁØ ?pmÎ=™ùù¾
×#²°"P>õ§z¿½ú#ƒ¼m4?€¿jVÿ>ÒÇ=ˆNì> ?¿€¿o v?ºd¾€?è5¿>9²< ? ?¿€¿ún+?Z>¿€¿h‘ô=9²< ? ?Í|´¾Í|´¾ó5¿ô5¿m:¤:m:¤ºæÿ¿€¿Ì’?Ìã>öb'? ?öp¾G!Ó¾
×£2C¿
)T¿SÐ<suŒ¼<á¿€¿Ì’?I.o>$Š? ?ÍLH¾®Çê¾
·Ñ¯|'ǾüÖk¿ˆT¤=§Ä
½ò¿€¿Ì’?ù€1>h±? ?Âmν™ùù¾Ã"P¾õ§z¿>áýÚ¼ºÆ}¿€¿Ì’?áüÓ=œØ ? ?¿€¿xÀ">ó¾|¿€¿¹_?6ô¦< ? ?¿€¿& |¿?3>€¿¹_?6ô¦< ? ?¿€¿Œ?¿e\*?€¿¿V?¦j< ? ?pmÎ=™ùù¾
×#²°"P>õ§z¿Ã+m¾ðD½ ¼x?€¿jVÿ>ÒÇ=ˆNì> ?3³£1?
×£±€?ô£U¾Ð]z?€¿BÅ>’Åx?X?Ä‹>3³£1?
×£±€?uÜ2¿î&7?€¿>©?Ôy?X?Ä‹>3³£1?
×£±€?/$x¿Æ{>€¿B`?¸y?X?Ä‹>3³£1?
×£±€?*Ðm>(y¿€¿B`?¸y?X?Ä‹>
µ¾¤ ´>m 5¿zþ4?¾“Q;¾¢Q;Tÿ¿€¿ˆqº„9?€?Ä‹>áò¾bÓ>ü4¿Œ2T?óõ;Hü¥;Pý¿€¿ˆqºì=C?4'v?Ä‹>{üH¾\ë>›Ôƾwèk?´¢”=•Œú<o4¿€¿ˆqºFõP?Nl?Ä‹>R Ͻ…Kú>ÌGN¾~Àz?Rk;>.=¸}{¿€¿ˆìf?Äub?Ä‹>3³£1?
×£±€?LD;?fŒ.¿€¿t”>’Åx?X?Ä‹>^“>^“¾^“¾:Í?:Í¿;Í¿ Ò4?ÎL˺°75?€¿žb¿>üé¢>€2À‹>R(ž>R(ž¾õu¾Å¿?Å¿¿C ö¾š "?z =±ìE?€¿p…É>Žœ>€2;Ú‰>f¦©>f¦©¾™9.¾Ç)*?È)*¿i¤®¾Nß>ú|м¬Ff?€¿þµØ>ÌÄ”>€2¼Ql>¦±>¦±¾õX´½Ò)2?Ó)2¿ .5¾o>|ø`¼Çæx?€¿Uë>±>€2¸îD>Í|´>Í|´¾
×#3ô5?ó5¿Ù7¤ºÛ7¤ºæÿ?€¿jVÿ>Ìã>€2>R(ž>R(ž¾õu>Å¿?Å¿¿C ö>a¿wl¼T]I?€¿³“œ>@=^“>^“¾^“>:Í?:Í¿;Í?³;5¿Í_ÛºÎ4?€¿¥?üé¢>f¦©>f¦©¾™9.>Ç)*?È)*¿i¤®>ü#í¾}b ¼àb?€¿kû?ÊÄ”>Œ=¦±>¦±¾õX´=Ó)2?Ò)2¿ .5> p¾˜@P<xØx?€¿¿É ?±>ØRì==â“>®g“>=â“>ƹ?ô?ƹ?óÓ4¿`cúÌ55?€¿¥?/?¹‹>뱞>ö@ž>°v>²?mÖ?ÿñõ>ê׿QÖF¼}ÖK?€¿³“?¶m2?¹‹>@=ë9ª>…é>\Ï.>ì"*?§&*?GË®>Aÿæ¾°í»ud?€¿kû?˜6?¹‹>Œ=Â=²>®Ç±>3ó´=g02?$2?H5>”˜»ª?x?€¿¿É ?~8?¹‹>ØRì=
µ>¤ ´>Âõ³m 5?zþ4?0Q»0ŸQ;Tÿ?€¿jVÿ>„9?¹‹>>뱞>ö@ž>°v¾²?mÖ?ÿñõ¾•?S*c< L?€¿p…É>¶m2?¹‹>;Ú‰>=â“>®g“>=⓾ƹ?ô?ƹ¿g/5? È©ºaÚ4?€¿žb¿>/?¹‹>À‹>ë9ª>…é>\Ï.¾ñ"*?¥&*?@Ë®¾Íå>ÁÇ&<MÀd?€¿þµØ>˜6?¹‹>¼Ql>Â=²>®Ç±>3ó´½j02?z$2?E5¾¶8u>}nì;Sx?€¿Uë>~8?¹‹>¸îD>^“>^“¾^“>:Í?:Í¿;Í?³;5¿Í_ÛºÎ4?€¿¥?üé¢> :±>¿‹>R(ž>õu¾R(ž>¼¿?m ö¾¼¿?;ê4¿W½‰:š5?€¿¥?(e²>‰ëÄ>¿‹>õu>R(ž¾R(ž>X ö>Ë¿¿·¿?R€I¿KZß;œä?€¿ƒ¶$?Žœ> :±>RÚ‰>™9.>f¦©¾f¦©>j¤®>Ó)*¿¹)*?Äb¿Þ<ÏŒí>€¿ÌN,?ÌÄ”> :±>¦Ql>õX´=¦±¾¦±>â-5>Ô)2¿Ó)2?`Âx¿l¶6¼õŒq>€¿v€5?±> :±>´îD>Âu3Í|´¾Í|´>ñ5¿õ5?„ÿ¿Bƒ2;?ƒ2;€¿Ÿ??Ìã> :±>€‹>f¦©>™9.¾f¦©>Å)*?z¤®¾Ä)*?7ÿ4¿Å«²9®
5?€¿¥?¿)É>ÿœØ>¿‹>¦±>õX´½¦±>î1?»a<¾î1?¥5¿­8A5?€¿¥?×ã>ƒNì>¿‹µ>™™ ®Íµ>5?*¹¼5?ï5¿Ï‘>8ø5?€¿¥?ÿ:?ûÿÿ>¿‹>õu¾R(ž¾R(ž>C ö¾Å¿¿Å¿?¶ÆE¿£‚½þJ"¿€¿}‡Z?Žœ> :±>ð‹=^“¾^“¾^“>;Í¿:Í¿:Í?Ò4¿©^˺¶75¿€¿æ˜_?üé¢> :±>4™9.¾f¦©¾f¦©>c¤®¾Æ)*¿Ê)*?cf¿Ö8Ú<ìÏÞ¾€¿8ïR?ÌÄ”> :±>`Œ=õX´½¦±¾¦±>þ-5¾Ð)2¿Ö)2?üx¿!z<€¿Š½I?±> :±>Sì==⓾®g“>=â“>ƹ¿ô?ƹ?g/5¿Æ©ºbÚ4¿€¿æ˜_?/?îb'?4°v¾ö@ž>뱞>ÿñõ¾mÖ?²?­)L¿³Xs¼.f¿€¿}‡Z?¶m2?îb'?ð‹=\Ï.¾…é>ë9ª>GË®¾§&*?ì"*?6 d¿ŽH¼Pæ¾€¿8ïR?˜6?îb'?`Œ=3󴽮DZ>Â=²>I$2?g02?sx¿Ù¸»ÕÃv¾€¿Š½I?~8?îb'?Sì=Âu3¤ ´>
µ>zþ4?m 5?Õÿ¿ØýѺÑîÑ:€¿Ÿ??„9?îb'?€‹>°v>ö@ž>뱞>ÿñõ>mÖ?²?ä¶K¿6<Ã?€¿ƒ¶$?¶m2?îb'?RÚ‰>뱞>ðu>뱞>·?O6ö>ÿ¶?ó"5¿f.:Þæ4?€¿¥?kC'?:Š?¿‹>=â“>®g“>=â“>ƹ?ô?ƹ?óÓ4¿`cúÌ55?€¿¥?/?îb'?¿‹>ë9ª>Rø->ë9ª>à$*? Ë®>Á$*?“ 5¿…Ð9Qþ4?€¿¥? á?j±?¿‹>Â=²>¸6³=Â=²>292?<H3>(92?ž5¿3ø®8H5?€¿¥?rŠ?–Ø ?¿‹>\Ï.>…é>ë9ª>GË®>§&*?ì"*?á•d¿K´ <!zæ>€¿ÌN,?˜6?îb'?šQl>3ó´=®Ç±>Â=²>M5>~$2?g02?oXx¿áëy;•€x>€¿v€5?~8?îb'?´îD>^“¾^“¾^“>;Í¿:Í¿:Í?Ò4¿©^˺¶75¿€¿æ˜_?üé¢>3òb'?R(ž¾õu¾R(ž>Å¿¿C ö¾Å¿5¿`Š:.ê4¿€¿æ˜_?(e²>Ì‹=òb'?R(ž¾R(ž¾õu>·¿¿Ë¿¿X ö>ª "¿^ =¤ìE¿€¿Nªd?œ>35Š?f¦©¾f¦©¾™9.>¶)*¿Õ)*¿q¤®>£Nß¾c}м§Ff¿€¿–Bl?ÌÄ”>3x±?¦±¾¦±¾õX´=Ï)2¿Ø)2¿ë-5> o¾aö`¼Çæx¿€¿Dtu?±>3¼Ø ?Í|´¾Í|´¾ó5¿ô5¿m:¤:m:¤ºæÿ¿€¿Ì’?Ìã>3ôÿÿ>f¦©¾™9.¾f¦©>Ç)*¿i¤®¾È)*?ª
5¿b5²9;ÿ4¿€¿æ˜_?¿)É>u=òb'?¦±¾õX´½¦±>î1¿÷a<¾î1?>5¿/
5¿€¿æ˜_?×ã>}Qì=òb'?͵¾™™ .͵>5¿*¹¼5?ø5¿ >8ï5¿€¿æ˜_?ÿ:?ö‹>òb'?R(ž¾R(ž¾õu¾Å¿¿Å¿¿C ö¾g?Ñn¼P]I¿€¿Ø`Õ=œ>€2®ëÄ>^“¾^“¾^“¾:Í¿:Í¿;Í¿¬;5?ECÛº Î4¿€¿ ìý=üé¢>€2&:±>f¦©¾f¦©¾™9.¾Ç)*¿È)*¿i¤®¾ÿ#í>éb ¼àb¿€¿¤ž˜=ÊÄ”>€2.Ø>¦±¾¦±¾õX´½Ò)2¿Ò)2¿.5¾þ
p>³@P<xØx¿€¿€"=±>€2ÞNì>Í|´¾Í|´¾ó5¿ô5¿m:¤:m:¤ºæÿ¿€¿ˆqºÌã>3ôÿÿ>G!Ó¾öp¾
×#3)T¿C¿º«F:ùÿ¿€¿ˆqºh¥>Ì‹=ôÿÿ>®Çê¾ÍLH¾z%3ÿÖk¿n'Ǿ˜Ð 8˜3£¸€¿€¿ˆqºüâÀ>t‹=ôÿÿ>™ùù¾pmν
×#3pz¿gCT¾Íݰ¹t÷:¥¥“ºòÿ¿€¿ˆqºŒ³ß>|Qì=ôÿÿ>¿3³£1¿G滆—oºÃ¬u:÷:X»ÿ¿€¿ˆqºÿ:?ö‹>ôÿÿ>=⓾®g“>=⓾ƹ¿ô?ƹ¿øÓ4?ºPúÇ55¿€¿ ìý=/?¿‹>&:±>뱞¾ö@ž>°v¾²¿mÖ?ÿñõ¾è×?S×F¼~ÖK¿€¿Ø`Õ=¶m2?¿‹>®ëÄ>ë9ª¾…é>\Ï.¾ì"*¿§&*?GË®¾?ÿæ>'±í»ud¿€¿¤ž˜=˜6?¿‹>.Ø>Â=²¾®Ç±>3ó´½h02¿$2?M5¾›z>×»ª?x¿€¿€"=~8?¿‹>ÞNì>
µ¾¤ ´>m 5¿zþ4?¾“Q;¾¢Q;Tÿ¿€¿ˆqº„9?¿‹>ôÿÿ>뱞¾ö@ž>°v>²¿mÖ?ÿñõ>¿*c< L¿€¿Pªd?¶m2?¿‹>4Š?뱞¾ðu>뱞>·¿e6ö>·?áæ4¿‹Üš:ï"5¿€¿æ˜_?kC'?GÚ‰>òb'?=⓾®g“>=â“>ƹ¿ô?ƹ?g/5¿Æ©ºbÚ4¿€¿æ˜_?/?¿‹>òb'?ë9ª¾Rø->ë9ª>Ð$*¿Ë®>Ð$*?Uþ4¿· Î9 5¿€¿æ˜_? á?xQl>òb'?Â=²¾¸6³=Â=²>.92¿H3>.92?C5¿$ë®8£5¿€¿æ˜_?rŠ?gîD>òb'?ë9ª¾…é>\Ï.>ì"*¿§&*?GË®> Íå¾FÉ&<LÀd¿€¿–Bl?˜6?¿‹>x±?Â=²¾®Ç±>3ó´=h02¿$2?M5>Ê8u¾–mì;Rx¿€¿Dtu?~8?¿‹>»Ø ?
µ¾¤ ´>m 5¿zþ4?¾“Q;¾¢Q;Tÿ¿€¿Ì’?„9?¿‹>ôÿÿ>¸ÖÓ¾Gy>4ET¿V?±‡
I:ùÿ¿€¿Ì’?üÁ-?GÚ‰>ôÿÿ>£pë¾f&H>Áîk¿º¶Æ>ݸŠÿ¸€¿€¿Ì’?€ ?xQl>ôÿÿ>{´ú¾¤hÍ=ÓÍz¿CM>EѺ(õ:B¤/¹ýÿ¿€¿Ì’?9œ?gîD>ôÿÿ>^“¾^“¾^“¾:Í¿:Í¿;Í¿¬;5?ECÛº Î4¿€¿ ìý=üé¢>*:1?ñb'?R(ž¾õu¾R(ž¾Å¿¿C ö¾Å¿¿.ê4?nŠ:¨5¿€¿ ìý=(e²>ì;?ñb'?õu¾R(ž¾R(ž¾X ö¾Ë¿¿·¿¿P€I?[\ß;Ÿä¿€¿°;œ>*:1?8Š?™9.¾f¦©¾f¦©¾q¤®¾Õ)*¿¶)*¿Äb?D<ÖŒí¾€¿Ìœ1>ÌÄ”>*:1?z±?õX´½¦±¾¦±¾ë-5¾Ø)2¿Ï)2¿`Âx?*·6¼úŒq¾€¿zcV>±>*:1?ÁØ ?`e³Í|´¾Í|´¾ó5¿ó5¿„ÿ?Lƒ2;Mƒ2»€¿¦Ý~>Ìã>*:1?ìÿÿ>f¦©¾™9.¾f¦©¾È)*¿i¤®¾Ç)*¿:ÿ4?›?²9ª
5¿€¿ ìý=¿)É>šëD?ñb'?¦±¾õX´½¦±¾yÖ1¿Q$?¾yÖ1¿n5?Ü49x5¿€¿ ìý=×ã>ZÄN?ñb'?
µ¾+¢gº
µ¾¥5¿²t#¼¤5¿í5?r>8ù5¿€¿ ìý=ÿ:?X?ñb'?õu>R(ž¾R(ž¾C ö>Å¿¿Å¿¿¸ÆE?P½úJ"?€¿Î?µ>Žœ>*:1?~ëÄ>R(ž>õu¾R(ž¾¼¿?m ö¾¼¿¿™5?`º‰:<ê4?€¿žb¿>(e²>ì;?&:±>^“>^“¾^“¾:Í?:Í¿;Í¿ Ò4?ÎL˺°75?€¿žb¿>üé¢>*:1?&:±>f¦©>™9.¾f¦©¾Å)*?z¤®¾Ä)*¿­
5?ÿ¢²98ÿ4?€¿žb¿>¿)É>šëD?&:±>¦±>õX´½¦±¾{Ö1?$?¾|Ö1¿|5?wo69j5?€¿žb¿>×ã>ZÄN?&:±>
µ>…¤gº
µ¾¤5?Ót#¼¤5¿ù5?.ï=8î5?€¿žb¿>ÿ:?X?&:±>™9.>f¦©¾f¦©¾i¤®>È)*¿Ç)*¿cf?É8Ú<÷ÏÞ>€¿@¦>ÌÄ”>*:1?"Ø>õX´=¦±¾¦±¾.5>Ò)2¿Ò)2¿üx?|"z<m>€¿ç«“>±>*:1?¶Nì>=â“>®g“>=⓾ƹ?ô?ƹ¿g/5? È©ºaÚ4?€¿žb¿>/?€?&:±>뱞>ðu>뱞¾·?O6ö>ÿ¶¿Øæ4?.Ëš:ù"5?€¿žb¿>kC'?D'v?&:±>°v>ö@ž>뱞¾ÿñõ>mÖ?²¿®)L?Ys¼-f?€¿Î?µ>¶m2?€?~ëÄ>\Ï.>…é>ë9ª¾@Ë®>¥&*?ñ"*¿8 d?ÀG¼Pæ>€¿@¦>˜6?€?"Ø>3ó´=®Ç±>Â=²¾>5>{$2?k02¿”sx?ø»ÂÃv>€¿é«“>~8?€?¶Nì>Âõ(´¤ ´>
µ¾zþ4?m 5¿Õÿ?6ýѺ/îѺ€¿¦Ý~>„9?€?ìÿÿ>ë9ª>Rø->ë9ª¾à$*? Ë®>Á$*¿\þ4?ýË9ˆ 5?€¿žb¿> á?†Nl?&:±>Â=²>¸6³=Â=²¾«*2?ß5>¢*2¿¬5?GÏ9:5?€¿žb¿>rŠ?ºub?&:±>°v¾ö@ž>뱞¾ÿñõ¾mÖ?²¿ä¶K?6<ÿ€¿²;>¶m2?€?7Š?뱞¾ðu>뱞¾·¿e6ö>·¿ð"5?TÝš:áæ4¿€¿ ìý=kC'?D'v?ñb'?=⓾®g“>=⓾ƹ¿ô?ƹ¿øÓ4?ºPúÇ55¿€¿ ìý=/?€?ñb'?ë9ª¾Rø->ë9ª¾Ð$*¿Ë®>Ð$*¿ 5?Î9Uþ4¿€¿ ìý= á?†Nl?ñb'?Â=²¾¸6³=Â=²¾¨*2¿Ã5>¨*2¿95?t{ 9­5¿€¿ ìý=rŠ?ºub?ñb'?\Ï.¾…é>ë9ª¾:Ë®¾¨&*?î"*¿ä•d?³ <zæ¾€¿Ìœ1>˜6?€?z±?3󴽮DZ>Â=²¾>$2?h02¿oXx?hçy;‘€x¾€¿zcV>~8?€?ÁØ ????¶Ò @ñÝÅ@CapsuleÀ &?€??²m±m²®±²®²¯¯²d²¢d±lm­±®°l±­°±«®¯ª­®ª®«0°­/0­/­ª/ªªª«01°«1k°°kl1k«¬«¯¬¬ÇkÇ.ÊlkÊkǬ¯c¯dc¬b¬cbbÆÇ.Æ.-b¹¹bcºbº¹cd»c»º¹dg»d£g»gf»f¸º»¸¸fe¹º·º¸·¹·¸eµ·¸µµeµ"·µ´´µ"·´´"!´³³´!³³! ³³  %¤¥%¥Â$%ÂÂ¥¦$¿#$¿Â¦ÿÂÃæ§#¿¼#¼¼&¿ÃÀ¼¿ÀçÄÀÃÄħ¨&¼½¼À½&½'ÀÄÁ½ÀÁ'½¾½Á¾'¾(ÁÄjÄ©j(¾h(h¾ÁiÁji¾ihhËË+hiÌhÌËijÍiÍÌ+ËÈ+È*jmÍjªmÍmlÍlÊÌÍÊËÌÉÌÊÉËÉÈÉÊÇÉÇÆÈÉÆ*ÈÅÈÆÅÅÆ-*Å)Å-,)Å,),Öy ÕyÖÒÕÖÒÖÓÓÖpÖ«pÕxyÑÕÒÔxÕÑÔÕÏÒÓÎÑÒÎÒÏHÔÑGHÑGÑÎGÎÎ22ÎÏHIÔ2Ï3IwÔÔwxIw3ÏÐÏÓÐ3Ð4ëwëFîxwîwëÐÓoÓpo4ÐnÐon4nêëFêFEnÝÝ7noÞnÞÝopßoßÞ7ÝÚ7Ú6ÝÞÛÝÛÚ6Ú×6×55×858×98ÚØ×ר9ÚÛØØ:9ØÙ:ÛÙØÙ:ÞÜÛÛÜÙÞßÜÙqÜqÙ=qßrÜÜrq=qææqr<=æßsrpsßp¬s<æã;<ãærççrsãæç;ãà;àà>çsèès­ãçäàãääçè>àáàäá>á?äèåáäå?áâáåâ?â@åèvè®våvuâåuâut@ât@tADAéDéEDBéAéêEBìéìêéCìBìíêíëêíîëCïìïíì¯ïC¯°ïïðí°ðïðîí°±ððñî±ñðñxî±²ññyx²yñ²³y¹Jº¹ûJ»û¹ûKJ»þû¼þ»ûüKþüûüLK¼þ¸¼üýLýLþÿüÿþÿýü¸z·z¸ýŠŠÿýŠýÿzÿ·ôzô·Š}O}z{ô{zŠ}Š{óôµóO}
NO
ô÷{ó÷ô{|÷|{Œ|Œ}~
}~~Œµòó´òµ´Sòóö÷òöóSõòòõöSTõ÷ú|öú÷|Œú|~ŒŒTøõTUøõùööùúõøùúùúUøUøŽùùŽøŽ

~
~ ƒƒŽ
ŽƒŽ 
 
 N
MNƒR

ƒƒ   M½M½¾¾¾¿     ¿ ¿À  ÀÀÁÁÁÅÅÅÄRRQÄ


QÄ
Â
QPÂ
PÂPÃÏVÐÏVÑÏWVÑ"Ò"Ñ W"  XWÒ%"Ë%Ò !X!ˆX"# %#"#! Ë%ÊË!ˆˆ#$!$!%&#&%&$#ÊÉÊ[&$&'$'&'$ÉÈÉ[.Z[.ˆ'ˆ'ˆ'Š.ŠŠÈÆÈÆÇÇÇ̈ˆƒƒˆŠƒÌÌ̓ÍÍÎ ƒƒ /Š.Š/ÎÎÝ 0 /0+./Z.+YZ+3Ý3ÝÜŽ 0 Ž6639Ž996+/,,/0Y+((+,ÓY(Ó(ÔÔ()(,)Ô)Õ,0--0Ž),-Õ)*)-*Õ*Ö-Ž*-Ž9Ö*Œ*ŒÖŒ×98Œ8896׌7Œ87×7ß865785563ß74754ß4Þ53245223Ü2ÜÛÞ4142112ÛÞ1Ø1ÛÙØ1ÙØÙÚäåä<ã<ä<ã;<â;ã<?;?<?â:;à:âàá:;>?:>;?B>B?Bá=::=>áæ=>AB=A>BABæ@==@Aæç@Aš@šAšç@@šçè]]šœœš]œèœèü]\\]œZZœ\]ZWüZWWüû\[ÿ[ÿ[þ\ZYYZW[\YVWûYWVVûúþ[X[YXXYVþXýUVúXVUýXUUúøýU÷÷Uø÷øùé\êéC\ëCéC]\ëFCìFëCD]FDCD^]ìIFíIìíîIDE^E^FGDIGFGEDîJIIJGîïJEGHEJHGHEïKJJKHïðKaHKHð˜KK˜ðñ˜aR`aR˜R˜ñ˜ñ `RO_`ORSSORST STT š_OLò_LòLóOSPPSTLOPQTšPTQQšóLMLPMMPQóMôNQMQNôMNN˜ôNõõN˜õ˜ö

gg
gjgjghjhghmj mhiijkhmkjkih žmž iœœklilœimnkžnmnlk`ž`œ¡¡žŸn`Ÿžlœ¡œnolŸonol_`_¡vv`cŸ_c`Ÿ oc Ÿož žo¡¢v¡¢¢ž^_^^_bc^b_a^^ab
acf bfc žf ¢ž££ž
da
 daebbefadef¡e¡f Ÿd  Ÿd ee ¡dŸ 
¡£
w¢£v¢w§Ÿ § #©¡ 
¡©¨ Ÿ¨Ÿ§© ¨x£
w£xsvwvss{§#{#"¦
©x
¦~¨§~§{©¨¦©¨~swttwxsppstpppqptqqtxuux¦qtuqrqurru¦¥ru¥¥¦r¤r¥¤¤¥¤¥~¤¤%~}}}~{%|}|%|$}{z|}zz{"z"!$|y|zyyz!$yy!y & (0Px°Á“¾ÔêI¿¯Á“><Í¿5Í¿=Í?NÕ4¿&L¾ºs45¿€¿Þ¿>à‘ä=ÌÕô>û•J?°Á“¾“üI¿¬Á“¾>Í¿8Í¿7Í¿–;5?þÚºÎ4¿€¿ü ?à‘ä=ÌÕô>tÔ?°Á“>ÕêI¿¯Á“>;Í?9Í¿<Í?˜;5¿ÞõÚºÎ4?€¿Yþ=Ø‘ä=ƒ>û•J?°Á“>”üI¿¯Á“¾:Í?7Í¿?Í¿UÕ4?­;¾ºl45?€¿ë6`?Ø‘ä=ƒ>tÔ?¬Á“¾ÙêI?¯Á“><Í¿:Í?9Í?t45¿~W¾ºLÕ4¿€¿Þ¿>Æmc?Žc>”»?¬Á“¾ÙêI?¬Á“¾<Í¿;Í?9Í¿Î4?{øÚºš;5¿€¿ý ?Æmc?Žc>}J?±Á“>ØêI?¯Á“>;Í?9Í?;Í?Î4¿KüÚº™;5?€¿Yþ=Æmc?”»?±Á“>ØêI?¬Á“¾<Í?9Í?;Í¿o45?÷:¾ºRÕ4?€¿ë6`?Æmc?}J?&™Ó3€¿ŒÊn3òÿ¿ê§¯:*éV>_¾«º[Lz¿€?<å}>ó—:çñ»>AÃ-?V>³€?JÙ³€?ï|¿Å÷>€¿Tcz>2•?ˆã=`ª-?¿
?ŠÒç2‚«¿“ëO=ê˜8?æ8c §:òÿ¿€¿??=!? žê=¢¥ˆ²¿?¿•WP=*«¿€?š·|ìØ´€¿ô$@?Ù??Û¼> žê=?
?ŠÒç2‚«?ñëO=Ý8!S~ºøÿ?€¿¬ºÙ??Š\c? žê=¢¥ˆ²
??ÕÇO= «?€¿’–Õ¶”­4€¿`t??ˆã=bvç=&™Ó3g…Z¿Ïö´>è5¿þ5?Wÿ¿»éO;£éO;€¿\t>ô.£=çñ»>û•J?Ïö´>g…Z¿ŒÊn3Ý5?û5¿~M
`»éûºÿ?€¿¬ºô.£=ƒ>AÃ-?&™Ó3&—Z¿Îö´¾ð5¿ö5¿Wÿ?çO;yçO»€¿ô$@?ô.£=çñ»>tÔ?Ïö´¾g…Z¿ŒÊn3Þ5¿ú5¿M‹:ƒÏÓ:hL»˜ÿ¿€¿?ô.£=ÌÕô>AÃ-?Òö´¾i…Z?ŠÒç2í5¿ø5?ÓçO;ÃçO;Wÿ¿€¿?"šk?Žc>`ª-?¢¥ˆ²i…Z?Ïö´¾õ5?ñ5¿Õÿ?¶Ñº¶Ñº€¿ô$@?"šk?ˆã=}J?Òö´>i…Z?ŠÒç2ø5?í5?į¤»Ë¯¤;Xþ?€¿o¹?"šk?`ª-?¢¥ˆ²i…Z?Óö´>ñ5?õ5?Õÿ¿n®Ñºk®Ñ:€¿\t>"šk?ˆã=”»?Íö´¾¿?Îö´¾ÖÕ4¿ ©8=ÕÕ4¿ö5?Râ»6ñ5¿€¿ý??œË? žê=Íö´¾
?Ïö´>Ö4¿Æ8="Ö4?õ5¿m;Š6ñ5¿€¿Þ¿>Ù??€¯=? žê=Ïö´>¿?Îö´¾ÛÕ4?4©8=ÎÕ4¿ê5?>º6ý5?€¿ë6`?Ù??%÷ƒ> žê=Ïö´>
?Ïö´>!Ö4?Ø8=Ö4?ó5¿?Š6ô5?€¿Yþ=Ù??™êF? žê=Æ›v¾›SO¿5“ž>„
ö¾„¿¿Š¿?n
L¿ähc<û¿€¿ª³µ>”DÏ=æ>û•J?V¯.¾ªU¿Tª>«¤®¾½)*¿Á)*?CÊd¿÷V%<œ¥å¾€¿®w¦>¼“¸=ÇnØ>û•J?Ó´½+Y¿W²>ú+5¾Ü)2¿é)2?x¿~
ð;ò<u¾€¿~”>Tɨ=x@Ê>û•J?Ë›v>™SO¿5“ž>‡
ö>†¿¿†¿?ÖK¿~jG¼hØ?€¿f>œDÏ=üF>û•J?`¯.>ªU¿Tª>±¤®>½)*¿¾)*?ƒd¿•æï»¨Çæ>€¿`ù1>¼“¸=õŸ>û•J?!Ó´=+Y¿W²>þ+5>Ý)2¿é)2?>x¿ñC»ü)z>€¿¼ÛV>Tɨ=ð¸­>û•J?5“ž>SO¿É›v>Š¿?…¿¿‚
ö>¤ý¿ˆÈ8<¢ºK?€¿<¯Õ=”DÏ=ƒ>Ë]C?Sª>ªU¿^¯.>Â)*?¹)*¿°¤®>hL澯@ <k¡d?€¿L¿˜=¼“¸=ƒ>%<?U²>+Y¿Ó´=ê)2?Ù)2¿,5>%x¾Ï;¡Wx?€¿ õ=Tɨ=ƒ>kí4?5“ž>YeO¿Å›v¾Š¿?‡¿¿}
ö¾m?«xq¼£$L?€¿%Le?”DÏ=ƒ>>
?Sª>i(U¿Y¯.¾Â)*?¹)*¿­¤®¾åæ>¡_¼˜¬d?€¿!êl?¼“¸=ƒ>lE?U²>ê*Y¿ Ó´½22?¡22¿4¾½sx>èL#»…Yx?€¿º"v?Tɨ=ƒ>Ÿ}&?Ë›v>XeO¿3“ž¾
ö>…¿¿Š¿¿p
L?3ic<ù?€¿³![?œDÏ=üF>tÔ?`¯.>i(U¿Rª¾¼¤®>½)*¿º)*¿=Êd?GW%<³¥å>€¿´ƒS?¼“¸=õŸ>tÔ?!Ó´=ê*Y¿U²¾ ,5>â)2¿ã)2¿x? ð; =u>€¿KJ?Tɨ=ð¸­>tÔ?Æ›v¾YeO¿3“ž¾
ö¾Š¿¿…¿¿ÖK?¶jG¼fØ¿€¿6(%?”DÏ=æ>tÔ?V¯.¾i(U¿Rª¾«¤®¾Á)*¿¼)*¿ ƒd?Céï»›Çæ¾€¿4Æ,?¼“¸=ÇnØ>tÔ?Ó´½ê*Y¿U²¾
,5¾â)2¿ã)2¿>x?JE»*z¾€¿Íþ5?Tɨ=x@Ê>tÔ?2“ž¾YeO¿Å›v¾‡¿¿†¿¿‡
ö¾§ý?ßÈ8< ºK¿€¿Äý?”DÏ=ÌÕô>>
?Tª¾i(U¿Y¯.¾¼)*¿½)*¿µ¤®¾oLæ>fA <i¡d¿€¿Æ_?¼“¸=ÌÕô>lE?W²¾ê*Y¿ Ó´½22¿¥22¿é4¾,žx>8ÿ;åVx¿€¿-'
?Tɨ=ÌÕô>Ÿ}&?2“ž¾›SO¿É›v>‡¿¿…¿¿‰
ö>m¿Qxq¼ž$L¿€¿ŽÊ>”DÏ=ÌÕô>Ë]C?Tª¾ªU¿^¯.>¼)*¿½)*¿¹¤®>æ¾G]¼¬d¿€¿ŠDÙ>¼“¸=ÌÕô>%<?W²¾+Y¿Ó´=ç)2¿Ý)2¿,5>àÔv¾…ð¹»~rx¿€¿»µë>Tɨ=ÌÕô>kí4?4“ž¾›SO?Ë›v>‡¿¿…¿?‚
ö>ú¿¨ic<o
L¿€¿ŽÊ>nf?Žc>^ô?Tª¾ªU?a¯.>»)*¿»)*?ä®>µ¥å¾þW%<<Êd¿€¿ŠDÙ>ˆíh?Žc>Œ,?U²¾/Y?Ó´=ß)2¿ç)2?ö+5>=u¾Ùð;x¿€¿»µë>Øæj?Žc>¾d&?4“ž¾›SO?Ç›v¾‡¿¿…¿?‚
ö¾fØ?rjG¼ÖK¿€¿Äý?nf?Žc>éDC?Tª¾ªU?[¯.¾¼)*¿¹)*?䮾ºÇæ>»çﻃd¿€¿Æ_?ˆíh?Žc>º <?U²¾/Y?
Ó´½á)2¿å)2?÷+5¾*z>.A»>x¿€¿-'
?Øæj?Žc>ŠÔ4?Æ›v¾œSO?4“ž¾~
ö¾†¿?Š¿¿¢ºK?È8<¤ý¿€¿6(%?nf?.G>}J?]¯.¾©U?Sª¾Á¤®¾·)*?Â)*¿`¡d?Ò< <“Læ¾€¿4Æ,?ˆíh?ƒÁ*>}J?Ó´½/Y?W²¾,5¾á)2?å)2¿¤Wx?*
;êŒx¾€¿Íþ5?Øæj?åd>}J?Λv>œSO?4“ž¾„
ö>†¿?ˆ¿¿¢$L?³yq¼m?€¿³![?nf?oã<}J?b¯.>ªU?Sª¾¿¤®>¸)*?À)*¿’¬d?_¼ÿæ>€¿´ƒS?ˆíh?€c=}J?Ó´=/Y?W²¾ñ+5>ã)2?ã)2¿}rx?›ì¹»íÔv>€¿KJ?Øæj?««ª=}J?6“ž>œSO?Ç›v¾Ž¿?ƒ¿?x
ö¾ù?Ùfc<p
L?€¿%Le?nf?éDC?Wª>©U?[¯.¾É)*?²)*?·¤®¾œ¥å>W%<BÊd?€¿!êl?ˆíh?º <?Y²>/Y?
Ó´½ì)2?Ú)2?,5¾ÀÅv>öñ»;hsx?€¿º"v?Øæj?ŠÔ4?6“ž>œSO?Ë›v>Ž¿?ƒ¿?x
ö>]Ø¿°jG¼ÖK?€¿<¯Õ=nf??Wª>©U?a¯.>È)*?±)*?¾¤®>´Çæ¾ÿãﻃd?€¿L¿˜=ˆíh?Œ,?Y²>/Y?Ó´=ì)2?Ú)2?,5>ð)z¾>H»>x?€¿ õ=Øæj?¾d&?Λv>œSO?7“ž>‡
ö>„¿?ˆ¿?£ºK¿¡Ê8<¢ý?€¿f>nf?oã<”»?b¯.>ªU?Wª>¹¤®>¸)*?Á)*?a¡d¿&< <Læ>€¿`ù1>ˆíh?€c=”»?Ó´=/Y?Y²>ê+5>à)2?æ)2?¥Wx¿^;ãŒx>€¿ÀÛV>Øæj?««ª=”»?Æ›v¾œSO?7“ž>
ö¾ƒ¿?Š¿?ž$L¿Õvq¼
m¿€¿ª³µ>nf?.G>”»?]¯.¾©U?Wª>¤®¾µ)*?Ã)*?¬d¿H^¼æ¾€¿®w¦>ˆíh?ƒÁ*>”»?Ó´½/Y?Y²>ÿ+5¾Þ)2?ç)2?}rx¿)ï¹»çÔv¾€¿€”>Øæj?åd>”»?4“ž¾°Â=¿3“ž¾†¿¿Š
ö¾„¿¿Qê4?2F‰:„5¿€¿ý ?º[
>œË?R<ý>Tª¾—Ç+¿Sª¾º)*¿¹¤®¾¾)*¿;ÿ4?Ѓ²9ª
5¿€¿ý ?PÃ->œË?¦’î>W²¾!¶¿W²¾å)2¿ð+5¾â)2¿Ñ5?õ95¿€¿ý ? ?W>œË?üèß>4“ž¾ó°=?4“ž¾„¿¿Œ
ö>‡¿¿5?‰3‰:Tê4¿€¿ý ?i]?œË?á·ó<Tª¾Ùµ+?Sª¾¶)*¿È¤®>¾)*¿¯
5?Äa²96ÿ4¿€¿ý ?,T?œË?Ô^m=Y²¾d¤?W²¾Ã(2¿ìN5>É(2¿,5?âY5¿€¿ý ?90J?œË?ýp°=4“ž¾ó°=?7“ž>¿¿
ö>‡¿?Uê4¿M‰:5¿€¿Þ¿>i]?€¯=?á·ó<Tª¾Ùµ+?Wª>¶)*¿Ã¤®>À)*??ÿ4¿Ep²9¦
5¿€¿Þ¿>,T?€¯=?Ô^m=Y²¾d¤?Y²>Þ)2¿Ò+5>ì)2?Ú5¿õº
9 5¿€¿Þ¿>90J?€¯=?ýp°=4“ž¾ò°=¿5“ž>‚¿¿
ö¾‡¿5¿P9‰:Rê4¿€¿Þ¿>º[
>€¯=?R<ý>Tª¾Øµ+¿Wª>¸)*¿¹¤®¾Â)*?±
5¿s²94ÿ4¿€¿Þ¿>PÃ->€¯=?¦’î>W²¾b¤¿Y²>ß)2¿á+5¾è)2?5¿y5¿€¿Þ¿> ?W>€¯=?üèß>5“ž>°Â=¿3“ž¾‰¿?y
ö¾Š¿¿‚5?q=‰:Tê4?€¿ë6`?º[
>%÷ƒ>R<ý>Tª>—Ç+¿Sª¾¾)*?½¤®¾¹)*¿ª
5?t„²9;ÿ4?€¿ë6`?PÃ->%÷ƒ>¦’î>X²>!¶¿W²¾ê)2?
,5¾Ù)2¿ 5?í$5?€¿ë6`? ?W>%÷ƒ>üèß>6“ž>ó°=?4“ž¾Š¿?|
ö>†¿¿Pê4?¶E‰:…5?€¿ë6`?i]?%÷ƒ>á·ó<Tª>Ùµ+?Sª¾Â)*?¹¤®>·)*¿3ÿ4?ƒx²9²
5?€¿ë6`?,T?%÷ƒ>Ô^m=Y²>d¤?W²¾Í(2?öN5>¿(2¿¶5?µ905?€¿ë6`?90J?%÷ƒ>ýp°=5“ž>ò°=¿5“ž>‰¿?
ö¾…¿?Sê4¿µ7‰:ƒ5?€¿Yþ=º[
>™êF?R<ý>Tª>ص+¿Wª>À)*?·¤®¾¹)*?6ÿ4¿Êl²9¯
5?€¿Yþ=PÃ->™êF?¦’î>X²>b¤¿Y²>å)2?ú+5¾à)2?Ï5¿žS95?€¿Yþ= ?W>™êF?üèß>6“ž>ó°=?7“ž>ˆ¿?
ö>†¿?5¿F‰:Tê4?€¿Yþ=i]?™êF?á·ó<Tª>Ùµ+?Wª>Â)*?µ¤®>¸)*?¦
5¿Av²9>ÿ4?€¿Yþ=,T?™êF?Ô^m=Y²>d¤?Y²>é)2?Û+5>ß)2?5¿Iì
5?€¿Yþ=90J?™êF?ýp°=&™Ó3âi¿ïÑ>E)T¿½B?–ú¿»ë;J.<€¿\t>è_M=çñ»>Ë]C?&™Ó3½u¿{ÔH>åÖk¿ã'Ç>å¿Ç 5<×dÖ<€¿Xt>ÿß<çñ»>%<?&™Ó3u[}¿RùÎ=áØz¿7kL>f/}¿CØñ<c>€¿Tt>àúO<çñ»>kí4?ðÑ>âi¿ŒÊn3A? *T¿f1 :ænZ¼©ö»Rø?€¿¬ºØ_M=üF>AÃ-?wÔH>½u¿ak3C$Ç>™×k¿÷ª:vä
½BqX¼ñÒ?€¿ªºÿß<õŸ>AÃ-?^ùÎ=u[}¿… n3ºeL>Ùz¿ë®:uˆ½jH¼wi?€¿ªºàúO<ð¸­>AÃ-?&™Ó3Óói¿ëѾF)T¿¸B¿–ú?­¸ë;œ‹.¼€¿õ$@?è_M=çñ»>>
?&™Ó3ÛÎu¿tÔH¾åÖk¿ã'ǾËÙ?›”Y<5Ô½€¿ö$@?ÿß<çñ»>lE?&™Ó34m}¿DùνZêz¿øþ|?°Kø<1e¾€¿ê$@?ÀP<çñ»>Ÿ}&?íѾâi¿ŒÊn3A¿ *T¿T1 :lm/<œ¼Ãù¿€¿?Ø_M=æ>AÃ-?yÔH¾½u¿žHp3B$Ǿ™×k¿
÷ª:"B=xq¼=Ø¿€¿?ÿß<ÇnØ>AÃ-?;ùνu[}¿… n3¦eL¾Ùz¿ë®:Þ»x=æñ`¼Ý€¿€¿?àúO<x@Ê>AÃ-?ìѾâi?ŠÒç2¹B¿H)T? Ô4<§5ô;0ú¿€¿?*s?.G>`ª-?wÔH¾½u?GÚá2þ'ǾàÖk?àö<ÚAP<Ý¿€¿?y?ƒÁ*>`ª-?Nùνx[}?ŠÒç2'kL¾áØz?*=nÇ<.Í¿€¿Â¼ÿ>¸ä|?åd>`ª-?¢¥ˆ²âi?ëѾF)T?¸B¿4ú?{è󻀿ô$@?*s?ˆã=éDC?¢¥ˆ²½u?uÔH¾âÖk?ö'Ǿ˜å?¬æ4¼Í8Ö¼€¿§ð??éy?ˆã=º <?¢¥ˆ²x[}?FùνãØz?#kL¾…o}?éãæ¼kª
¾€¿4÷>?»Ø|?ˆã=ŠÔ4?ñÑ>âi?ŠÒç2ºB?F)T?êé<–÷?€¿o¹?*s?oã<`ª-?|ÔH>½u?ðÆð2í'Ç>äÖk?œ½Þ©q<ÝÐ?€¿o¹?y?€c=`ª-?KùÎ=x[}?ŠÒç2kL>ãØz?¡Z€½È1Q<Ðy?€¿o¹?À|?««ª=`ª-?¢¥ˆ²âi?ïÑ>F)T?¸B?Ÿú¿Àæê»*ð-<€¿\t>*s?ˆã=^ô?¢¥ˆ²½u?{ÔH>âÖk?ö'Ç>õÙ¿ÒY¼Ñ=€¿\t>y?ˆã=Œ,?¢¥ˆ²x[}?SùÎ=ãØz?"kL>ÉÓ|¿mU½J{>€¿\t>À|?ˆã=¾d&?!°Ó¾õòG¿ŒÊn3³)T¿B¿mY:— ºô98ºúÿ¿€¿?$Rì==!?R<ý>;fë¾?2¿ak3(×k¿ž&ǾXAË7‚;ºîÿ¿€¿?žä >=!?¦’î>ï¢ú¾&鿌Ên3äÓz¿ÍL¾Sö9 í7æ"ƺíÿ¿€¿?†ÏP>=!?üèß>$°Ó¾¿?ëѾBÒS¿g <=H¿ºn?
ÏÓ·‰ T¿€¿$_??è ? žê=;f뾿?uÔH¾vk¿PÞC=qǾQ«Ç>p™¸»k¿€¿Ìw??•? žê=ò¢ú¾¿?Dùνpwz¿B)L=ó‚M¾ÓM>â%:jÆz¿€¿-Q??!? žê=$°Ó¾øòG?ŠÒç2D)T¿¿B?:sF:ùÿ¿€¿?½ub?=!?á·ó<=fë¾?2?ðÆð2äÖk¿î'Ç>¸jΠ¸€¿€¿?ØÆW?=!?Ô^m=ò¢ú¾'é?ŠÒç2gÓz¿¡ÖL>¸8¾ä‡¸6¹€¿€¿?ÌK?=!?ýp°=$°Ó¾
?ïÑ>®ÒS¿};=/H?™n¿.ì7  T¿€¿ÎEÏ>Ù??'“6? žê=;fë¾
?{ÔH>vk¿PC=qÇ>ùªÇ¾¾ù7.»k¿€¿~ß>Ù??þ{/? žê=ò¢ú¾
?RùÎ=Uwz¿(¾K=’‹M>¶ÌM¾^(Õ6ÐÆz¿€¿¼aï>Ù??Öd(? žê=&™Ó3´H¿$°Ó¾¾B¿B)T¿ùÿ?RF:5꺀¿ô$@?$Rì=Û¼>R<ý>¡­3ÛP2¿9fë¾í'ǾäÖk¿€?V˜¡¸·u8€¿ô$@? ä >Û¼>¦’î>¡­3äú¿ð¢ú¾ÎL¾ÖÓz¿€?žF!¹J¯8€¿ô$@?ˆÏP>Û¼>üèß>ìÑ>¿?$°Ó¾H <=BÒS¿‰ T?˜Ó·ºn?€¿ƒX?Ù??0> žê=|ÔH>¿?9fë¾qÇ>|ÞC= vk¿»k?£œ¸K«Ç>€¿º›P?Ù??i > žê=OùÎ=¿?î¢ú¾Ã‹M>'ML=Þvz¿ÉÆz?îP·/ÍM>€¿uH?Ù??¢®> žê=¢¥ˆ²øòG?$°Ó¾¸B?F)T¿ùÿ?ZOF:_è:€¿ô$@?½ub?Û¼>á·ó<¢¥ˆ²?2?9fë¾å'Ç>åÖk¿€?Ö ¸¦Ñ¸€¿ô$@?ØÆW?Û¼>Ô^m=¢¥ˆ²'é?î¢ú¾3ñL> Òz¿€?î(¹Î
¸€¿ô$@?ÌK?Û¼>ýp°=ìѾ¿?$°Ó¾H¿Ô <=BÒS¿Œ T?¸½8¶n¿€¿ÖÆ'?Ù??<†ç> žê=wÔH¾¿?9fë¾qǾ†ÞC= vk¿»k?* 8L«Ç¾€¿.®/?Ù??åWÙ> žê=Jùν¿?î¢ú¾Ä‹M¾ML=Þvz¿ÉÆz?¦7?ÍM¾€¿ÌÔ7?Ù??—)Ë> žê="°Ó>ùòG¿ŒÊn3³)T?B¿ŽY:¨£º2X):úÿ?€¿o¹?Rì=Š\c?R<ý>9fë>?2¿ÀDs3+×k?&Ǿ¸A: Þº‚צ8ýÿ?€¿o¹?žä >Š\c?¦’î>ì¢ú>&鿌Ên3âÓz?.ÍL¾Óõ9“<¹!ñ:þÿ?€¿o¹?†ÏP>Š\c?üèß>!°Ó>
?ïÑ>°ÒS?d};=(H?—n¿"Æ·¡ T?€¿DºÀ=Ù??N? žê=8fë>
?{ÔH>vk?*PC=ÿpÇ>ùªÇ¾òz÷·.»k?€¿€??#U? žê=î¢ú>
?RùÎ=Uwz?b¾K=¢‹M>»ÌM¾° ·ÏÆz?€¿(•??@\? žê=!°Ó>øòG?ŠÒç2H)T?¹B?¶×ºvº;·ÿ?€¿¬º½ub?Š\c?á·ó<=fë>?2?GÚá2âÖk?ð'Ç>ZZºkê:òÿ?€¿¬ºØÆW?Š\c?Ô^m=î¢ú>,é?ŠÒç2gÓz?­ÖL>Á
8 A¦¸Úcd9€?€¿¬º"ÌK?Š\c?ýp°=!°Ó>¿?ëѾFÒS?° <=H¿±n? Î8 T?€¿Äêg?Ù??%²x? žê=8fë>¿?uÔH¾vk?uÞC=qǾR«Ç>Ä 8»k?€¿Òo?Ù??úšq? žê=î¢ú>¿?Dùνpwz?w)L=ƒM¾–ÖM>­¹º=Æz?€¿ºøw?Ù??Óƒj? žê=&™Ó3õòG¿$°Ó>¿B¿D)T?ùÿ¿àXF:Îî:€¿\t>$Rì=ˆã=irü>¡­3?2¿=fë>ö'ǾâÖk?€¿àñ ¸.鸀¿\t> ä >ˆã=»Èí>¡­3&é¿î¢ú> ÎL¾ØÓz?€¿æ5!¹|¡¸€¿\t>ˆÏP>ˆã=ß>ìѾ
?$°Ó>0H¿™};=®ÒS? T¿>@Æ·n¿€¿nv°>Ù??oã<bvç=wÔH¾
?=fë>ùpǾYPC=vk?0»k¿(Ôù·òªÇ¾€¿»§ >Ù??€c=bvç=Iùν
?î¢ú>y¾K=Wwz?ÒÆz¿õ¸ ·’ÌM¾€¿€Z??««ª=bvç=¢¥ˆ²øòG?$°Ó>·B?H)T?ùÿ¿¸IF:Œäº€¿`t>½ub?ˆã=7ç<¢¥ˆ²?2?=fë>ò'Ç>âÖk?€¿_$¡¸Ô8€¿`t>ØÆW?ˆã=g=¢¥ˆ²'é?ð¢ú>ÎL>ØÓz?€¿Q2!¹”ž8€¿`t>ÌK?ˆã=TI­=ìÑ>
?$°Ó>1H?j};=«ÒS?ž T¿l{ì7œn?€¿äû??.G>bvç=|ÔH>
?=fë>ùpÇ>OPC=vk?0»k¿Øwù7òªÇ>€¿F™=>Ù??ƒÁ*>bvç=PùÎ=
?î¢ú>yM>$¾K=Wwz?ÑÆz¿í&Õ6œÌM>€¿À3^>Ù??åd>bvç=$¾âËZ¿$>Ž"þ¾T6¿“"þ>ô5¿É#2³ò5¿€¿Þ¿>h¢=æ>Ë]C?‰Œ3¾ ëb¿`‡>#ϲ¾MMF¿xú?6ªV¿y¸ì;x ¿€¿RŒ¯>T=ÇnØ>Ë]C?>¹½e$h¿=m>¯Þ8¾©™P¿q
?ÅIt¿÷Ó<>™¾€¿’™>([=x@Ê>Ë]C?`‡¾ ëb¿Œ3>qú¿OMF¿)ϲ>x ¿¹ì»1ªV¿€¿æ/Ð>T=æ>%<?åÚ<¾»2m¿êÚ<>r黾÷ÐZ¿pé»>ì5¿§€£´ú5¿€¿Þ¿>àC3=ÇnØ>%<?&½aœs¿µ E>BA¾Ú‚g¿ÏÄ>SÀg¿C©<útÙ¾€¿¥> Â=x@Ê>%<?=m¾e$h¿+>¹=k
¿­™P¿ÃÞ8>j™¾çѼ¾It¿€¿0*æ>([=æ>kí4?² E¾`œs¿5Â=ÆÄ¾Ú‚g¿ BA>uÙ¾9©¼PÀg¿€¿2§Ú>0Â=ÇnØ>kí4?nÇʽ`àz¿|ÇÊ=/I¾„ëu¿/I>¡E/¿/ô¼N“:¿€¿Þ¿>P<x@Ê>kí4? $>âËZ¿$>˜"þ>T6¿˜"þ>õ5¿ª•E´ñ5?€¿Yþ=h¢=üF>Ë]C?
`‡>¡ëb¿Œ3>ú?GMF¿$ϲ>×j ¿¬_m;9
V?€¿ä½=L=üF>%<?=m>e$h¿+>¹=r
?§™P¿¥Þ8>gŸ¾oY¬8íFs?€¿xQJ=([=üF>kí4?“Œ3> ëb¿`‡>&ϲ>DMF¿‚ú?:
V¿ê_m»Öj ?€¿Ð>TŸ>Ë]C?íÚ<>À2m¿êÚ<>ué»>÷ÐZ¿pé»>î5¿€Ä5?€¿Yþ=¸C3=õŸ>%<?´ E>`œs¿5Â=ÊÄ>Ý‚g¿ÒAA>Äᾚ²:ðe?€¿°4“=0Ÿ>kí4?+>¹=c$h¿=m>˜Þ8>¦™P¿v
?ïFs¿úr¬¸ñfŸ>€¿¨ÄK>0[=ð¸­>Ë]C?@Â=aœs¿µ E>ÜAA>Ü‚g¿ÍÄ>¹Ëe¿‹Hº@§á>€¿ª¾4> Â=ð¸­>%<?‡ÇÊ=^àz¿|ÇÊ=ý.I>…ëu¿é.I>û<3¿>ƒ9;È6?€¿zá>€´Œ<ð¸­>kí4? $>¡ÝZ¿ $¾“"þ>T6¿•"þ¾÷5?¾Á˜4ï5?€¿ë6`?h¢=üF>>
?“Œ3>^ýb¿
`‡¾(ϲ>FMF¿€ú¿>ªV?Z½ì;ûw ?€¿X?TŸ>>
?+>¹="6h¿:m¾šÞ8>§™P¿r
¿ÆIt?=Ó<4™>€¿âM?0[=ð¸­>>
?
`‡>`ýb¿‰Œ3¾ú?GMF¿#ϲ¾ûw ?W¼ì»>ªV?€¿Ð_h?L=üF>lE?íÚ<>~Dm¿åÚ<¾wé»>÷ÐZ¿p黾ê5?ÿ©ž´ü5?€¿ì6`?¸C3=õŸ>lE?@Â= ®s¿¯ E¾ÞAA>Ü‚g¿ÎľÁg?lÿ<¨oÙ>€¿bÒR? Â=ð¸­>lE?=m>#6h¿>¹½R
?e¦P¿œ£7¾€š>4ÕÔ»<#t?€¿õ\s?([=üF>Ÿ}&?´ E>®s¿&Â½Ä Ä>kg¿ò?¾Å€Ú>?rÝ»±‚g?€¿wm?0Ÿ>Ÿ}&?‡ÇÊ=òz¿nÇʽ,7I>•üu¿ì×G¾P,0?¯ Ù»?»9?€¿í6`?p<ð¸­>Ÿ}&?$¾¡ÝZ¿ $¾‹"þ¾T6¿’"þ¾ö5?Æ^ß²ð5¿€¿ü ?h¢=æ>>
?`‡¾^ýb¿‰Œ3¾qú¿OMF¿&ϲ¾áj ?ÿ`m;3
V¿€¿ê?T=æ>lE?=m¾#6h¿>¹½L
¿h¦P¿º£7¾lŸ>û赺Fs¿€¿óì ?([=æ>Ÿ}&?‰Œ3¾^ýb¿
`‡¾!ϲ¾NMF¿tú¿6
V?÷`m»Üj ¿€¿â;(?T=ÇnØ>>
?åÚ<¾yDm¿åÚ<¾p黾÷ÐZ¿p黾ñ5?"× 5¿€¿ý ?àC3=ÇnØ>lE?² E¾®s¿&½à ľh’g¿Rò?¾UÏá>ä¿7ºâÁe¿€¿q®?0Â=ÇnØ>Ÿ}&?>¹½#6h¿:m¾°Þ8¾ª™P¿n
¿ìFs?ØÂ¬¸gŸ¾€¿93?([=x@Ê>>
?&½ ®s¿¯ E¾BA¾Ú‚g¿ÐľìÃe?™Ì&º Çá¾€¿ˆw-? Â=x@Ê>lE?nÇʽòz¿nÇʽ37I¾“üu¿ØG¾25?gŠº¦ù4¿€¿ý ?P<x@Ê>Ÿ}&? $¾äËZ?$>ž"þ¾T6?"þ>ô5¿KÖ´ó5¿€¿Þ¿>Ô¼k?.G>^ô?`‡¾¤ëb?“Œ3>ú¿DMF?)ϲ>ûw ¿>¾ì;?ªV¿€¿æ/Ð>˜¼o?.G>Œ,?:m¾f$h?+>¹=s
¿«™P?mÞ8>ö™¾ Õ<ÐIt¿€¿0*æ>žNr?.G>¾d&?ŽŒ3¾¤ëb?`‡>1ϲ¾CMF?€ú?:ªV¿‹¼ì»x ¿€¿TŒ¯>˜¼o?ƒÁ*>^ô?êÚ<¾À2m?íÚ<>x黾÷ÐZ?ké»>è5¿˜yƒ4þ5¿€¿Þ¿>ÄËt?ƒÁ*>Œ,?· E¾bœs?8Â=ßľڂg?ÃAA>ÐXÛ¾áJì;]Og¿€¿3§Ú>Þów?ƒÁ*>¾d&?%>¹½f$h??m>uÞ8¾©™P?u
?ÑIt¿Äּ€¿’™>žNr?åd>^ô?/½cœs?¼ E>ÍAA¾Ú‚g?ÖÄ>]Àg¿"¨¼ÏtÙ¾€¿¥>ßów?åd>Œ,?wÇʽaàz?€ÇÊ=ò.I¾‡ëu?æ.I>o‡2¿jl;y7¿€¿Þ¿>v‡{?åd>¾d&? $¾äËZ? $¾›"þ¾T6?ž"þ¾ô5?\ü²ò5¿€¿ý ?Ô¼k?.G>éDC?ŽŒ3¾¤ëb?`‡¾.ϲ¾DMF?ú¿8
V?£cm;Ùj ¿€¿â;(?˜¼o?ƒÁ*>éDC?&>¹½f$h?:m¾sÞ8¾©™P?u
¿úFs?'®8°fŸ¾€¿93?žNr?åd>éDC?`‡¾¤ëb?Œ3¾ú¿DMF?*ϲ¾Öj ?÷cm»:
V¿€¿ê?˜¼o?.G>º <?êÚ<¾À2m?æÚ<¾u黾÷ÐZ?m黾ê4?ŒE¸¹Ç5¿€¿ü ?ÄËt?ƒÁ*>º <?0½cœs?´ E¾ÍAA¾Ú‚g?Úľɾe?ó:öÛá¾€¿×w-?Åów?åd <?;m¾f$h?>¹½s
¿«™P?mÞ8¾þ`Ÿ>Ï>ò¸èGs¿€¿ôì ?žNr?.G>ŠÔ4?· E¾bœs?)½Üľڂg?ÄAA¾ZÊà>3غ¿f¿€¿À°?}ïw?ƒÁ*>ŠÔ4?xÇʽaàz?pÇʽó.I¾‡ëu?ç.I¾`5?Qjä8„ó4¿€¿8õ?¸{?åd>ŠÔ4?$>äËZ? $¾Ÿ"þ>T6?™"þ¾ð5?/µ…3ö5?€¿ë6`?Ô¼k?oã<éDC?`‡>¤ëb?Œ3¾€ú?FMF?(ϲ¾þw ?ù»ì;<ªV?€¿Ð_h?˜¼o?oã<º <?>m>f$h?>¹½s
?ª™P?uÞ8¾#÷™>˜7<n$t?€¿õ\s?žNr?oã<ŠÔ4?•Œ3>¤ëb?`‡¾+ϲ>FMF?~ú¿<ªV?‚½ì»þw ?€¿X?˜¼o?€c=éDC?íÚ<>À2m?æÚ<¾jé»>úÐZ?j黾pû4?Ï«9u5?€¿ë6`?ÄËt?€c=º <?´ E>cœs?)½ÎÄ>Ý‚g?ÎAA¾ÙGÛ>6„î;YSg?€¿vm?ßów?€c=ŠÔ4?+>¹=f$h?=m¾hÞ8>­™P?r
¿uCt?*ù¼z-™>€¿âM?žNr?««ª=éDC?5Â=bœs?´ E¾ÆAA>Ý‚g?Ïľ Çg?,±¼€UÙ>€¿`ÒR?Þów?««ª=º <?}ÇÊ=`àz?pÇʽè.I>‡ëu?ò.I¾Š +?´·{<[>?€¿<†^?`Š{?««ª=ŠÔ4?$>äËZ?$> "þ>T6?"þ>ò5¿¸A4õ5?€¿Yþ=Ô¼k?oã<^ô?•Œ3>¤ëb?`‡>%ϲ>HMF?}ú?;
V¿Tdm;Ôj ?€¿Ð>˜¼o?€c=^ô?">¹=f$h?=m>eÞ8>­™P?r
?ÅFs¿}»ž8ògŸ>€¿¬ÄK>žNr?««ª=^ô?`‡>¤ëb?“Œ3>€ú?CMF?-ϲ>Ùj ¿Äam»8
V?€¿à½=˜¼o?oã<Œ,?íÚ<>À2m?íÚ<>gé»>úÐZ?pé»>T5¿ÂK´·“5?€¿Yþ=ÄËt?€c=Œ,?7Â=bœs?¼ E>ÅAA>Ü‚g?×Ä>¤Âe¿Æ
!:DÌá>€¿–È4>-ôw?««ª=Œ,?@m>f$h?.>¹=u
?©™P?uÞ8>´fŸ¾Ø ®¸ùFs?€¿xQJ=žNr?oã<¾d&?´ E>cœs?8Â=ËÄ>Ý‚g?ÌAA>>Åá¾`€(º]Äe?€¿°4“=ßów?€c=¾d&?~ÇÊ=`àz?€ÇÊ=ç.I>‡ëu?ï.I>>5¿ÓŒŽ·©5?€¿Yþ=v‡{?««ª=¾d&?ѵ¾Ó?¿$>T6¿ "þ¾œ"þ>z¿…/ò»]£R¿€¿…úÍ>†(>'“6?R<ý>BÞºC¿“Œ3>BMF¿ƒú¿+ϲ>oÜоaÒ±» ºi¿€¿5Ý>äòü=þ{/?R<ý>Ê4оÀF¿+>¹=¦™P¿{
¿kÞ8><»z¿€¿\"î>ˆñ=Öd(?R<ý>DÞ!í,¿`‡>DMF¿*ϲ¾€ú?oé¿§Úâº7¸S¿€¿}üÎ>d^+>'“6?¦’î>~QÚ¾¼@/¿îÚ<>óÐZ¿}黾é»>w—ɾfD»Rk¿€¿|«Þ>¢É&>þ{/?¦’î>Æ$ç¾.R1¿7Â=Ø‚g¿áľ¸AA>º¨P¾g1¨ºð z¿€¿¬ï>&·">Öd(?¦’î>É4оÅ1¿=m>§™P¿_Þ8¾z
?q[¿M$Ù¹’T¿€¿¶GÏ>¼(V>'“6?üèß>Ç$ç¾L¿· E>Ú‚g¿°AA¾ÞÄ>¸ˆÇ¾Ò "ºkÂk¿€¿;ß>þüS>þ{/?üèß>¾¬õ¾ïb¿€ÇÊ=«æu¿\^I¾k^I>JM¾&êé¹Íz¿€¿·cï>Ì×Q>Öd(?üèß>ѵ¾Áä?¿ $¾T6¿Ÿ"þ¾œ"þ¾Æ¼?´@¬;vR¿€¿È?†(>è ?R<ý>DÞàþ,¿`‡¾DMF¿)ϲ¾€ú¿Ôé?ÐMà:ó·S¿€¿Ëƒ?d^+>è ?¦’î>É4о„C¿:m¾§™P¿aÞ8¾w
¿•Z?Mé:&T¿€¿0^?¼(V>è ?üèß>BÞÅËC¿Œ3¾BMF¿ƒú¿+ϲ¾Ø×Ð>׳; »i¿€¿ƒg?äòü=•?R<ý>~QÚ¾{R/¿æÚ<¾óÐZ¿}黾}黾2¦É>_þý:Ok¿€¿M¬?¢É&>•?¦’î>Ç$ç¾Ã]¿° E¾Ú‚g¿±AA¾Þľ
ŠÇ>%:$Âk¿€¿nv?þüS>•?üèß>Ê4о\ÒF¿>¹½3¢P¿G
¿í8¾Z9[>£m;hz¿€¿Ýð?ˆñ=!?R<ý>Æ$ç¾íc1¿'½o‰g¿Üľ³@¾Ì¯P>n¹  z¿€¿µs?&·">!?¦’î>¾¬õ¾®t¿oÇʽ0êu¿4`I¾ÝI¾yOM>ÆJŠº1Íz¿€¿0P?Ì×Q>!?üèß>ƒµ¾Ó?? $¾T6¿£"þ>˜"þ¾~z?å.ò»^£R¿€¿É?àu^?è ?á·ó<BÞ ºC?Œ3¾@MF¿…ú?5ϲ¾sÜÐ>ïÕ±»ºi¿€¿ƒg?¥a`?•?á·ó<Ê4о ÀF?>¹½¦™P¿y
?€Þ8¾/\>
:»z¿€¿Ýð?ðÞa?!?á·ó<BÞ&í,?`‡¾BMF¿<ϲ>~ú¿pé?ÉÑâº6¸S¿€¿Ëƒ?j(U?è ?Ô^m=~QÚ¾½@/?æÚ<¾óÐZ¿€é»>z黾p—É> G» Rk¿€¿M¬?˜MV?•?Ô^m=Ç$ç¾/R1?'½ڂg¿ÚÄ>ÅAA¾Á¨P>'7¨ºð z¿€¿µs?7RW?!?Ô^m=Ì4оÄ1?<m¾=˜P¿l9>³
¿7[?u{ë¹¹T¿€¿0^?ÑuJ?è ?ýp°=Ç$ç¾L?° E¾<g¿¼dA>åÿþî‡Ç>Þ¯.º•Âk¿€¿nvK?•?ýp°=¾¬õ¾ðb?oÇʽÌåu¿ÒxI>ÿTI¾RM> p¹Íz¿€¿0P?ŠK?!?ýp°=ƒµ¾Ó??$>T6¿¦"þ>˜"þ>ʼ¿#<¬;˜vR¿€¿„úÍ>àu^?'“6?á·ó<BÞ&í,?`‡>BMF¿8ϲ>~ú?Öé¿‘<à:ñ·S¿€¿}üÎ>j(U?'“6?Ô^m=Ì4оÄ1?>m>§™P¿gÞ8>z
?˜Z¿ië:$T¿€¿¶GÏ>ÑuJ?'“6?ýp°=BÞ ºC?“Œ3>@MF¿„ú?5ϲ>î×о~Ò³;»i¿€¿5Ý>¥a`?þ{/?á·ó<~QÚ¾¼@/?íÚ<>óÐZ¿|é»>|é»>.¦É¾‘þ:Ok¿€¿|«Þ>˜MV?þ{/?Ô^m=Ç$ç¾L?· E>Ú‚g¿ÇAA>ÚÄ>ŠÇ¾(:%Âk¿€¿;ß>ÂK?þ{/?ýp°=Ì4оžÀF?.>¹=¦™P¿x
?‚Þ8>Ñ*[¾†þg;êz¿€¿\"î>ðÞa?Öd(?á·ó<Ç$ç¾/R1?7Â=Ü‚g¿ÖÄ>ËAA>ªP¾¦:Þ z¿€¿¬ï>7RW?Öd(?Ô^m=¾¬õ¾ðb?€ÇÊ=ªæu¿k^I>q^I>pNM¾e•½9GÍz¿€¿·cï>ŠK?Öd(?ýp°=$¾Âä?¿Äƒµ¾™"þ¾œ"þ¾T6¿`£R?}1ò»{z¿€¿0!'?(><†ç>R<ý>ŽŒ3¾ÆËC¿>Þ$ϲ¾ƒú¿DMF¿#ºi?»Ô±»aÜо€¿v¾.?àòü=åWÙ>R<ý>>¹½\ÒF¿É4о|Þ8¾{
¿¥™P¿z?·:»*€¿57?ˆñ=—)Ë>R<ý>`‡¾àþ,¿>Þú¿(ϲ¾DMF¿7¸S?ßÛâºné¿€¿,¢'?d^+><†ç>¦’î>çÚ<¾{R/¿}QÚ¾y黾|黾ôÐZ¿Rk?©@»s—ɾ€¿­y/?¢É&>åWÙ>¦’î>!½ëc1¿Æ$ç¾ÂAA¾ØÄ¾Ü‚g¿ð z?Í3¨º¿¨P¾€¿E²7?(·">—)Ë>¦’î>;m¾„C¿É4оw
¿ŒÞ8¾§™P¿“T?’)Ù¹o[¿€¿ÉÇ'?¼(V><†ç>üèß>² E¾Ä]¿Æ$ç¾ÓľØAA¾Ú‚g¿mÂk?×
"º¯ˆÇ¾€¿Œ¯/?üüS>åWÙ>üèß>nÇʽ­t¿»¬õ¾j^I¾y^I¾ªæu¿Íz?÷ãé¹JM¾€¿ÉÕ7?Î×Q>—)Ë>üèß> $>Áä?¿Âƒµ¾™"þ>"þ¾T6¿žvR?EA¬;Á¼?€¿¸(Y?†(>0>R<ý>`‡>àþ,¿>Þ€ú?3ϲ¾CMF¿ò·S?úJà:Õé?€¿¼§X?d^+>0>¦’î>=m>„C¿É4оy
?•Þ8¾£™P¿#T?÷×:™Z?€¿X?¼(V>0>üèß>“Œ3>ÆËC¿>Þ8ϲ>‚ú¿@MF¿»i?rÕ³;ê×Ð>€¿rQ?àòü=i >R<ý>òÚ<>{R/¿}QÚ¾Šé»>€é»¾îÐZ¿ÿNk?þöý:D¦É>€¿<ÐP?¢É&>i >¦’î>µ E>Ã]¿Æ$ç¾ÚÄ>ÒAA¾Ø‚g¿%Âk?­8:ŠÇ>€¿^šP?þüS>i >üèß>0>¹=[ÒF¿É4о€Þ8>{
¿¥™P¿éz?)ùg;Þ*[>€¿ÍI?Œñ=¢®>R<ý>;Â=íc1¿Æ$ç¾ÅAA>Úľڂg¿Þ z?q‹¦:ªP>€¿¤—H?&·">¢®>¦’î>‚ÇÊ=­t¿»¬õ¾u^I>q^I¾ªæu¿FÍz?蔽9tNM>€¿tH?Î×Q>¢®>üèß>$>Ó??ăµ¾–"þ>™"þ>T6¿a£R?ñ0ò»yz?€¿¸(Y?àu^?0>á·ó<•Œ3> ºC?>Þ*ϲ>ú?DMF¿"ºi?¾Ô±»gÜÐ>€¿rQ?¥a`?i >á·ó<!>¹= ÀF?É4о…Þ8>v
?§™P¿z?"8»9\>€¿ËI?ðÞa?¢®>á·ó<`‡>&í,?>Þú?0ϲ>DMF¿7¸S?–Ôâºoé?€¿¼§X?j(U?0>Ô^m=íÚ<>½@/?{QÚ¾xé»>}é»>ôÐZ¿ Rk?šE»o—É>€¿<ÐP?˜MV?i >Ô^m=5Â=/R1?Æ$ç¾ÂAA>ÒÄ>Ü‚g¿ð z?N7¨º¼¨P>€¿¤—H?7RW?¢®>Ô^m=@m>Æ1?É4о²
?9>;˜P¿¹T?Ùyë¹7[?€¿X?ÒuJ?0>ýp°=´ E>L?Æ$ç¾áÿÃ>ËdA><g¿–Âk?°±.ºë‡Ç>€¿\šP?ÂK?i >ýp°=xÇÊ=ðb?»¬õ¾‹]I>uI>ëäu¿‘Íz?;ý¹´HM>€¿tH?ŠK?¢®>ýp°= $¾Ó??ăµ¾Ž"þ¾™"þ>T6¿žvR?\=¬;Á¼¿€¿0!'?àu^?<†ç>á·ó<`‡¾&í,?>Þzú¿5ϲ>GMF¿ö·S?Dà:Ðé¿€¿,¢'?j(U?<†ç>Ô^m=;m¾Å1?É4о°
¿†9>=˜P¿]T?»–:BZ¿€¿ÉÇ'?ÑuJ?<†ç>ýp°=ŽŒ3¾ ºC?>Þ0ϲ¾ú?DMF¿ »i?dس;Ø×о€¿v¾.?¥a`?åWÙ>á·ó<êÚ<¾¼@/?{QÚ¾~黾ƒé»>ñÐZ¿Ok?õþ:3¦É¾€¿¬y/?˜MV?åWÙ>Ô^m=³ E¾L?Æ$ç¾æÿþÏdA>9g¿MÂk?|»:E‰Ç¾€¿Œ¯/?ÂK?åWÙ>ýp°=&>¹½ÀF?É4о—Þ8¾t
?§™P¿èz?6ýg;ë*[¾€¿57?ïÞa?—)Ë>á·ó<+½/R1?Æ$ç¾ÍAA¾ÙÄ>Ú‚g¿Þ z?¡¦:#ªP¾€¿E²7?7RW?—)Ë>Ô^m=xÇʽðb?»¬õ¾’]I¾yI>ëäu¿SÍz?Ò¼Ì9|MM¾€¿ÉÕ7?ŠK?—)Ë>ýp°=ăµ>Áä?¿ $¾T6?‰"þ¾"þ¾rz?á0ò»f£R?€¿ Eg?†(>%²x?R<ý>=ÃÅ>ÆËC¿Œ3¾IMF?}ú¿"ϲ¾\ÜÐ>4Ô±»$ºi?€¿dân?àòü=úšq?R<ý>Å4Ð>\ÒF¿>¹½3¢P?C
¿ 8¾v]>¾^:]öy?€¿
Yw?ˆñ=Óƒj?R<ý>=ÃÅ>àþ,¿`‡¾LMF?$ϲ¾xú¿eé?Ûâº=¸S?€¿Æg?d^+>%²x?¦’î>{QÚ>{R/¿æÚ<¾óÐZ?z黾}黾v—É>hB»Rk?€¿›o?¢É&>úšq?¦’î>Â$ç>íc1¿'½o‰g?ÔľE³@¾ 'Q>Ô]±:Ršz?€¿2Öw?&·">Óƒj?¦’î>Å4Ð>„C¿:m¾ª™P?Þ8¾q
¿j[?+Ù¹—T?€¿·ëg?¼(V>%²x?üèß>Â$ç>Ä]¿° E¾×‚g?ëAA¾ãľ¿ˆÇ>
"ºiÂk?€¿zÓo?üüS>úšq?üèß>»¬õ>®t¿oÇʽ,êu?c`I¾èI¾øiM>e§Í:ÊËz?€¿·ùw?Ì×Q>Óƒj?üèß>ăµ>Ó?¿$>T6?"þ¾"þ>¼¼¿#@¬;¢vR?€¿hçÅ=†(>N?R<ý>=ÃÅ>!í,¿`‡>JMF?#ϲ¾yú?Ìé¿MOà:ø·S?€¿ˆßÁ=d^+>N?¦’î>Å4Ð>Å1¿=m>ª™P?ŽÞ8¾r
?‘Z¿´è:)T?€¿¤²À=¼(V>N?üèß>=ÃÅ>ºC¿“Œ3>HMF?}ú¿%ϲ>Í×оËÖ³;#»i?€¿@ýˆ=àòü=#U?R<ý>{QÚ>¼@/¿îÚ<>óÐZ?z黾€é»>6¦É¾éøý:Ok?€¿ˆ#ƒ=¢É&>#U?¦’î>Â$ç>L¿· E>ׂg?éAA¾ãÄ>ŠÇ¾c#:"Âk?€¿Œt=üüS>#U?üèß>Å4Ð>ÀF¿+>¹=¥™P?w
¿ Þ8>+[¾¹÷g;çz?€¿
=ˆñ=@\?R<ý>Â$ç>.R1¿7Â=Ø‚g?ØÄ¾áAA>=ªP¾4‰¦:Ü z?€¿ ½=&·">@\?¦’î>»¬õ>ïb¿€ÇÊ=¨æu?Œ^I¾y^I>yNM¾½½9FÍz?€¿P…=Ì×Q>@\?üèß>ǃµ>Ó??$>T6?“"þ>…"þ>nz¿²0ò»i£R?€¿dçÅ=àu^?N?á·ó<=ÃÅ>ºC?“Œ3>IMF?zú?&ϲ>]ÜоtÕ±»$ºi?€¿@ýˆ=¤a`?#U?á·ó<Ç4Ð> ÀF?+>¹=©™P?r
?šÞ8>K\¾¥9»z?€¿
=ðÞa?@\?á·ó<=ÃÅ>&í,?`‡>JMF?%ϲ>wú?gé¿.Ðâº<¸S?€¿ˆßÁ=j(U?N?Ô^m={QÚ>½@/?íÚ<>óÐZ?}é»>zé»>q—ɾBF» Rk?€¿ˆ#ƒ=˜MV?#U?Ô^m=Å$ç>/R1?7Â=Ø‚g?ÚÄ>ãAA>å¨P¾n3¨ºî z?€¿ ½=7RW?@\?Ô^m=Ç4Ð>Æ1?>m>ª™P?yÞ8>r
?k[¿/
Ù¹–T?€¿¤²À=ÒuJ?N?ýp°=Å$ç>L?· E>Ú‚g?ÎAA>ÚÄ>µˆÇ¾ "ºlÂk?€¿ŒtK?#U?ýp°=»¬õ>ðb?€ÇÊ=ªæu?q^I>†^I>,JM¾‰Îé¹~Íz?€¿P…=ŠK?@\?ýp°=ǃµ>Ó?? $¾ T6?"þ>†"þ¾¹¼?µ=¬;¤vR?€¿ Eg?àu^?%²x?á·ó<=ÃÅ>&í,?`‡¾JMF?)ϲ>vú¿Ìé?D>à:ø·S?€¿Æg?j(U?%²x?Ô^m=Ç4Ð>Æ1?<m¾?˜P?†9>­
¿?Z?j™:_T?€¿·ëg?ÒuJ?%²x?ýp°==ÃÅ>ºC?Œ3¾LMF?xú?#ϲ¾Î×Ð>'Ô³;"»i?€¿dân?¤a`?úšq?á·ó<{QÚ>¼@/?æÚ<¾ôÐZ?}é»>v黾+¦É><üý:Ok?€¿›o?˜MV?úšq?Ô^m=Å$ç>L?° E¾:g?ËdA>èÿþE‰Ç>LÊ:MÂk?€¿zÓo?ÂK?úšq?ýp°=Ç4Ð>žÀF?>¹½ª™P?q
?œÞ8¾F4\>v.; z?€¿
Yw?ðÞa?Óƒj?á·ó<Å$ç>/R1?'½ׂg?ÝÄ>ëAA¾./Q>áf²7ý™z?€¿2Öw?7RW?Óƒj?Ô^m=»¬õ>ðb?oÇʽÊåu?ÙxI>UI¾7hM>`О¹õËz?€¿·ùw?ŠK?Óƒj?ýp°=$>Ó?¿Åƒµ>œ"þ>”"þ¾T6?^£R¿'/ò»~z?€¿Re>†(>.G>irü>“Œ3>ºC¿BÃÅ>"ϲ>ú¿FMF?#ºi¿Ó±»bÜÐ>€¿jÚ9>àòü=ƒÁ*>irü>0>¹=œÀF¿Æ4Ð>uÞ8>y
¿§™P?z¿á;»\>€¿þ´[>Œñ=åd>irü>`‡>!í,¿BÃÅ>}ú?ϲ¾IMF?:¸S¿ç×âºké?€¿Fi>d^+>.G>»Èí>òÚ<>¼@/¿}QÚ>~é»>s黾ôÐZ?Rk¿^B»w—É>€¿>Ç<>¢É&>ƒÁ*>»Èí>;Â=.R1¿Ä$ç>ÏAA>Ýľ؂g?ï z¿è9¨ºË¨P>€¿œ©]>&·">åd>»Èí>=m>Å1¿Æ4Ð>t
?‡Þ8¾§™P?•T¿@Ù¹m[?€¿²ÿ>¼(V>.G>ß>µ E>L¿Ä$ç>àÄ>ÚAA¾Ø‚g?jÂk¿ "º¼ˆÇ>€¿¼ž=>þüS>ƒÁ*>ß>‚ÇÊ=îb¿¾¬õ>s^I>q^I¾ªæu?Íz¿Ýê¹JM>€¿´7^>Î×Q>åd>ß>$¾Ó?¿Äƒµ>•"þ¾œ"þ¾T6?œvR¿e>¬;ļ¿€¿µÁ±>†(>oã<irü>`‡¾!í,¿BÃÅ>zú¿"ϲ¾IMF?ø·S¿¤Qà:Íé¿€¿½¿°>d^+>oã<»Èí>;m¾Å1¿Æ4Ð>s
¿Þ8¾ª™P?(T¿Áê:Z¿€¿†t°>¼(V>oã<ß>ŽŒ3¾ºC¿BÃÅ>ϲ¾ú¿HMF?%»i¿ÍÖ³;Ä×о€¿+‡¢>àòü=€c=irü>çÚ<¾¼@/¿}QÚ>u黾u黾÷ÐZ?Ok¿·þý:'¦É¾€¿¾¡>¢É&>€c=»Èí>² E¾L¿Ä$ç>ØÄ¾áAA¾Ø‚g?%Âk¿S:ŠÇ¾€¿¥ >üüS>€c=ß>>¹½ÀF¿Æ4Ð>qÞ8¾y
¿§™P?êz¿òúg;Æ*[¾€¿Þ™‘>ˆñ=««ª=irü>!½-R1¿Ä$ç>ËAA¾Ûľڂg?Þ z¿7„¦:)ªP¾€¿ŽŸ>(·">««ª=»Èí>nÇʽîb¿¾¬õ>k^I¾y^I¾ªæu?GÍz¿Ñ»½9gNM¾€¿„X>Î×Q>««ª=ß> $¾Ó??ѵ>Œ"þ¾›"þ>T6?d£R¿c.ò»vz¿€¿µÁ±>àu^?oã<7ç<ŽŒ3¾ ºC?BÃÅ>+ϲ¾~ú?FMF?!ºi¿aÓ±»jÜо€¿+‡¢>¥a`?€c=7ç<%>¹½žÀF?É4Ð>‡Þ8¾s
?ª™P?z¿W:»3€¿Þ™‘>ðÞa?««ª=7ç<`‡¾&í,?BÃÅ>zú¿/ϲ>HMF?:¸S¿UÏâºké¿€¿¼¿°>j(U?oã<g=çÚ<¾½@/?}QÚ>z黾|é»>óÐZ? Rk¿ I»o—ɾ€¿¾¡>˜MV?€c=g=*½/R1?Æ$ç>ÌAA¾ÜÄ>Ø‚g?ï z¿{4¨ºÌ¨P¾€¿ŽŸ>7RW?««ª=g=;m¾Å1?É4Ð>u
¿oÞ8>ª™P?•T¿Ù¹m[¿€¿†t°>ÑuJ?oã<TI­=³ E¾L?Æ$ç>ÛľÒAA>Ú‚g?kÂk¿R"º¶ˆÇ¾€¿¥ >ÂK?€c=TI­=wÇʽðb?¾¬õ>m^I¾j^I>ªæu?Íz¿vÞé¹JM¾€¿†X>ŠK?««ª=TI­=$>Ó??ѵ>•"þ>"þ>T6?vR¿¨;¬;Ƽ?€¿Re>àu^?.G>7ç<`‡>&í,?BÃÅ>{ú?+ϲ>HMF?õ·S¿;à:Ñé?€¿Di>j(U?.G>g=@m>Æ1?É4Ð>w
?lÞ8>©™P?&T¿Šì:”Z?€¿²ÿ>ÒuJ?.G>TI­=•Œ3> ºC?BÃÅ>%ϲ>}ú?HMF?!»i¿ÒÒ³;Ö×Ð>€¿hÚ9>¥a`?ƒÁ*>7ç<íÚ<>¼@/?}QÚ>sé»>wé»>öÐZ?Ok¿Sþ:$¦É>€¿@Ç<>˜MV?ƒÁ*>g=´ E>L?Æ$ç>ÕÄ>ÏAA>Ú‚g?&Âk¿2$:ŠÇ>€¿¾ž=>ÂK?ƒÁ*>TI­=->¹=žÀF?É4Ð>}Þ8>q
?«™P?êz¿+h;Â*[>€¿þ´[>ðÞa?åd>7ç<7Â=/R1?Æ$ç>ÏAA>ÛÄ>Ú‚g?Þ z¿7¦:$ªP>€¿ž©]>7RW?åd>g=yÇÊ=ðb?¾¬õ>m^I>j^I>ªæu?GÍz¿«ž½9lNM>€¿¶7^>ŠK?åd>TI­=¿
¿ŒÊn3 «¿˜ÇO½Ž8¾“ö¶ñšœºôÿ¿€¿?Pà>=!?T?Ñ>r¿2¿¿¿WÈO½ «¿€?¸„Þ¶ŒÕ´4€¿ô$@?Pà>Û¼>T?Ñ>?
¿ŠÒç2 «?@ÈO½†xŽ8JD·W:öÿ?€¿o¹?Pà>Š\c?T?Ñ>r¿2
¿?ÈO½ «?€¿]éÞ¶–'µ´€¿\t>Pà>ˆã=iuÐ>Ïö´¾¿¿Îö´¾"Ö4¿7Ö4¿ì5?͹Š6ú5¿€¿ý ?Pà>œË?T?Ñ>Ïö´¾
¿Ïö´>Ö4¿;Ö4?ö5¿Š6ñ5¿€¿Þ¿>Pà>€¯=?T?Ñ>Ïö´>¿¿Îö´¾&Ö4?SÖ4¿í5?1 k6ù5?€¿ë6`?Pà>%÷ƒ>T?Ñ>Ïö´>
¿Ïö´>!Ö4?YÖ4?î5¿ Ÿ6ø5?€¿Yþ=Pà>™êF?T?Ñ>!°Ó¾¿¿ëѾ°ÒS¿[};½+H¿–n?B,ì7¢ T¿€¿$_?Pà>è ?T?Ñ>8f뾿¿tÔH¾vk¿ÕOC½qǾüªÇ>[ïù7.»k¿€¿Ìw?Pà>•?T?Ñ>î¢ú¾¿¿Dùν;xz¿S¾K½zM¾‰ÌM>Õü°ºÂÆz¿€¿-Q?Pà>!?T?Ñ>!°Ó¾
¿ïÑ>®ÒS¿Z};½-H?›n¿âVÆ·Ÿ T¿€¿ÍEÏ>Pà>'“6?T?Ñ>8fë¾
¿{ÔH>vk¿ÕOC½qÇ>üªÇ¾ñx÷·-»k¿€¿~ß>Pà>þ{/?T?Ñ>î¢ú¾
¿RùÎ=Uwz¿õ½K½”‹M>­ÌM¾P™ ·ÐÆz¿€¿¼aï>Pà>Öd(?T?Ñ>ðÑ>¿¿$°Ó¾.H?§};½®ÒS¿  T?2ì7™n?€¿ƒX?Nà>0>T?Ñ>xÔH>¿¿9fë¾üpÇ>VPC½vk¿/»k?æÈþ7ôªÇ>€¿º›P?Pà>i >T?Ñ>YùÎ=¿¿ð¢ú¾—‹M>v¾K½Uwz¿ÏÆz?#VÔ6»ÌM>€¿uH?Pà>¢®>T?Ñ>íѾ¿¿$°Ó¾-H¿ª};½®ÒS¿Ÿ T?¾JÆ·›n¿€¿ÖÆ'?Pà><†ç>T?Ñ>wÔH¾¿¿9fë¾ùpǾVPC½vk¿0»k?÷l÷·òªÇ¾€¿.®/?Pà>åWÙ>T?Ñ>@ùν¿¿ð¢ú¾”‹M¾y¾K½Uwz¿ÐÆz?oÜ ·­ÌM¾€¿ÌÔ7?Pà>—)Ë>T?Ñ>"°Ó>
¿ïÑ>°ÒS?Þ};½(H?”n¿@ ì7£ T?€¿DºÀ=Pà>N?T?Ñ>9fë>
¿{ÔH>~vk?­PC½qÇ>ÿªÇ¾äáù7-»k?€¿€=Pà>#U?T?Ñ>ð¢ú>
¿RùÎ=Uwz?º¾K½M>ÀÌM¾lµÔ6ÏÆz?€¿ •=Pà>@\?T?Ñ>"°Ó>¿¿ëѾ²ÒS?â};½'H¿•n?1Æ·£ T?€¿Äêg?Pà>%²x?T?Ñ>9fë>¿¿tÔH¾~vk?­PC½qǾ«Ç>s÷·-»k?€¿Òo?Pà>úšq?T?Ñ>ð¢ú>¿¿Dùν;xz?¿K½)zM¾5ÌM>(­:ÇÆz?€¿ºøw?Pà>Óƒj?T?Ñ>íѾ
¿$°Ó>/H¿ ~;½®ÒS?  T¿ù!ì7™n¿€¿nv°>Pà>oã<iuÐ>wÔH¾
¿=fë>ùpǾ±PC½vk?0»k¿tíù7òªÇ¾€¿»§ >Pà>€c=iuÐ>@ùν
¿î¢ú>u‹M¾V¾K½Wwz?ÑÆz¿»ÖÔ6˜ÌM¾€¿€Z>Pà>««ª=iuÐ>ðÑ>
¿$°Ó>/H?~;½¬ÒS? T¿;%Æ·n?€¿âû>Nà>.G>iuÐ>xÔH>
¿=fë>ûpÇ>°PC½vk?/»k¿€ü·õªÇ>€¿F™=>Pà>ƒÁ*>iuÐ>YùÎ=
¿î¢ú>}M>W¾K½Wwz?ÑÆz¿îÅ ·–ÌM>€¿¾3^>Pà>åd>iuÐ>&™Ó3€¿ŒÊn3òÿ¿ê§¯:åt|¿Fÿh9ŠÈ)>€¿<å}>ó—:çñ»>AÃ-?&™Ó3€¿ŒÊn3òÿ¿ê§¯:
ƒ¿ö‘Œ:ªÝL?€¿<å}>ó—:çñ»>AÃ-?Ïö´>g…Z¿ŒÊn3Ý5?û5¿~M
`»éûºÿ?€¿o¹?ô.£=ƒ>AÃ-?ðÑ>âi¿ŒÊn3A? *T¿f1 :ænZ¼©ö»Rø?€¿o¹?Ø_M=üF>AÃ-?wÔH>½u¿ak3C$Ç>™×k¿÷ª:vä
½BqX¼ñÒ?€¿o¹?ÿß<õŸ>AÃ-?^ùÎ=u[}¿… n3ºeL>Ùz¿ë®:uˆ½jH¼wi?€¿o¹?àúO<ð¸­>AÃ-?&™Ó3€¿ŒÊn3òÿ¿ê§¯:Z¡~¾ƒ#ª:yõw?€?tn@?„ï:çñ»>AÃ-?&™Ó3€¿ŒÊn3òÿ¿ê§¯:ݶ|?bk`¹Ûˆ#¾€¿tn@?„ï:çñ»>AÃ-?&™Ó3€¿ŒÊn3òÿ¿ê§¯:0»?Útº Q¿€¿tn@?„ï:çñ»>AÃ-?V>³€?JÙ³€?~|>x¿€?Tcz>2•?ˆã=`ª-?V>³€?JÙ³€??ª~M¿€¿ -??-€?ˆã=`ª-?V>³€?JÙ³€?þ*}?å¾€¿ -??-€?ˆã=`ª-?V>³€?JÙ³€?NzN¾ä½z?€? -??-€?ˆã=`ª-?Òö´>i…Z?ŠÒç2ø5?í5?į¤»Ë¯¤;Xþ?€¿¬º"šk?`ª-?ñÑ>âi?ŠÒç2ºB?F)T?êé<–÷?€¿¬º*s?oã<`ª-?|ÔH>½u?ðÆð2í'Ç>äÖk?œ½Þ©q<ÝÐ?€¿ªºy?€c=`ª-?KùÎ=x[}?ŠÒç2kL>ãØz?¡Z€½È1Q<Ðy?€¿ªºÀ|?««ª=`ª-?V>³€?JÙ³€?¦Ê¿S?€¿Tcz>2•?ˆã=`ª-?°Á“¾ÔêI¿¯Á“><Í¿5Í¿=Í?NÕ4¿&L¾ºs45¿€¿Þ¿>à‘ä=€¯=?þò?2“ž¾›SO¿É›v>‡¿¿…¿¿‰
ö>m¿Qxq¼ž$L¿€¿ŽÊ>”DÏ='“6?þò?Tª¾ªU¿^¯.>¼)*¿½)*¿¹¤®>æ¾G]¼¬d¿€¿ŠDÙ>¼“¸=þ{/?þò?W²¾+Y¿Ó´=ç)2¿Ý)2¿,5>àÔv¾…ð¹»~rx¿€¿»µë>Tɨ=Öd(?þò?Ïö´¾g…Z¿ŒÊn3Þ5¿ú5¿M‹:ƒÏÓ:hL»˜ÿ¿€¿?ô.£==!?þò?2“ž¾YeO¿Å›v¾‡¿¿†¿¿‡
ö¾§ý?ßÈ8< ºK¿€¿Äý?”DÏ=è ?þò?°Á“¾“üI¿¬Á“¾>Í¿8Í¿7Í¿–;5?þÚºÎ4¿€¿ü ?à‘ä=œË?þò?Tª¾i(U¿Y¯.¾¼)*¿½)*¿µ¤®¾oLæ>fA <i¡d¿€¿Æ_?¼“¸=•?þò?W²¾ê*Y¿ Ó´½22¿¥22¿é4¾,žx>8ÿ;åVx¿€¿-'
?Tɨ=!?þò?¬Á“¾ÙêI?¬Á“¾<Í¿;Í?9Í¿Î4?{øÚºš;5¿€¿ý ?Æmc?œË?xêÉ:4“ž¾›SO?Ç›v¾‡¿¿…¿?‚
ö¾fØ?rjG¼ÖK¿€¿Äý?nf?è ?xêÉ:Tª¾ªU?[¯.¾¼)*¿¹)*?䮾ºÇæ>»çﻃd¿€¿Æ_?ˆíh?•?xêÉ:U²¾/Y?
Ó´½á)2¿å)2?÷+5¾*z>.A»>x¿€¿-'
?Øæj?!?xêÉ:Òö´¾i…Z?ŠÒç2í5¿ø5?ÓçO;ÃçO;Wÿ¿€¿?"šk?=!?xêÉ:4“ž¾›SO?Ë›v>‡¿¿…¿?‚
ö>ú¿¨ic<o
L¿€¿ŽÊ>nf?'“6?xêÉ:¬Á“¾ÙêI?¯Á“><Í¿:Í?9Í?t45¿~W¾ºLÕ4¿€¿Þ¿>Æmc?€¯=?xêÉ:Tª¾ªU?a¯.>»)*¿»)*?ä®>µ¥å¾þW%<<Êd¿€¿ŠDÙ>ˆíh?þ{/?xêÉ:U²¾/Y?Ó´=ß)2¿ç)2?ö+5>=u¾Ùð;x¿€¿»µë>Øæj?Öd(?xêÉ:°Á“¾“üI¿¬Á“¾>Í¿8Í¿7Í¿–;5?þÚºÎ4¿€¿ü ?à‘ä=ë¾õ>þò?4“ž¾°Â=¿3“ž¾†¿¿Š
ö¾„¿¿Qê4?2F‰:„5¿€¿ý ?º[
>ë¾õ>R<ý>Æ›v¾YeO¿3“ž¾
ö¾Š¿¿…¿¿ÖK?¶jG¼fØ¿€¿6(%?”DÏ=<†ç>þò?V¯.¾i(U¿Rª¾«¤®¾Á)*¿¼)*¿ ƒd?Céï»›Çæ¾€¿4Æ,?¼“¸=åWÙ>þò?Ó´½ê*Y¿U²¾
,5¾â)2¿ã)2¿>x?JE»*z¾€¿Íþ5?Tɨ=—)Ë>þò?&™Ó3&—Z¿Îö´¾ð5¿ö5¿Wÿ?çO;yçO»€¿ô$@?ô.£=Û¼>þò?Tª¾—Ç+¿Sª¾º)*¿¹¤®¾¾)*¿;ÿ4?Ѓ²9ª
5¿€¿ý ?PÃ->ë¾õ>¦’î>W²¾!¶¿W²¾å)2¿ð+5¾â)2¿Ñ5?õ95¿€¿ý ? ?W>ë¾õ>üèß>Ïö´¾¿¿Îö´¾"Ö4¿7Ö4¿ì5?͹Š6ú5¿€¿ý ?Pà>ë¾õ>T?Ñ>Ë›v>XeO¿3“ž¾
ö>…¿¿Š¿¿p
L?3ic<ù?€¿³![?œDÏ=0>þò?°Á“>”üI¿¯Á“¾:Í?7Í¿?Í¿UÕ4?­;¾ºl45?€¿ë6`?Ø‘ä=%÷ƒ>þò?`¯.>i(U¿Rª¾¼¤®>½)*¿º)*¿=Êd?GW%<³¥å>€¿´ƒS?¼“¸=i >þò?!Ó´=ê*Y¿U²¾ ,5>â)2¿ã)2¿x? ð; =u>€¿KJ?Tɨ=¢®>þò?±Á“>ØêI?¬Á“¾<Í?9Í?;Í¿o45?÷:¾ºRÕ4?€¿ë6`?Æmc?%÷ƒ>xêÉ:Λv>œSO?4“ž¾„
ö>†¿?ˆ¿¿¢$L?³yq¼m?€¿³![?nf?0>xêÉ:b¯.>ªU?Sª¾¿¤®>¸)*?À)*¿’¬d?_¼ÿæ>€¿´ƒS?ˆíh?i >xêÉ:Ó´=/Y?W²¾ñ+5>ã)2?ã)2¿}rx?›ì¹»íÔv>€¿KJ?Øæj?¢®>xêÉ:¢¥ˆ²i…Z?Ïö´¾õ5?ñ5¿Õÿ?¶Ñº¶Ñº€¿ô$@?"šk?Û¼>xêÉ:Æ›v¾œSO?4“ž¾~
ö¾†¿?Š¿¿¢ºK?È8<¤ý¿€¿6(%?nf?<†ç>xêÉ:4“ž¾ó°=?4“ž¾„¿¿Œ
ö>‡¿¿5?‰3‰:Tê4¿€¿ý ?i]?ë¾õ>á·ó<¬Á“¾ÙêI?¬Á“¾<Í¿;Í?9Í¿Î4?{øÚºš;5¿€¿ý ?Æmc?ë¾õ>xêÉ:Tª¾Ùµ+?Sª¾¶)*¿È¤®>¾)*¿¯
5?Äa²96ÿ4¿€¿ý ?,T?ë¾õ>Ô^m=Y²¾d¤?W²¾Ã(2¿ìN5>É(2¿,5?âY5¿€¿ý ?90J?ë¾õ>ýp°=Íö´¾¿?Îö´¾ÖÕ4¿ ©8=ÕÕ4¿ö5?Râ»6ñ5¿€¿ý??ë¾õ> žê=]¯.¾©U?Sª¾Á¤®¾·)*?Â)*¿`¡d?Ò< <“Læ¾€¿4Æ,?ˆíh?åWÙ>xêÉ:Ó´½/Y?W²¾,5¾á)2?å)2¿¤Wx?*
;êŒx¾€¿Íþ5?Øæj?—)Ë>xêÉ:°Á“>”üI¿¯Á“¾:Í?7Í¿?Í¿UÕ4?­;¾ºl45?€¿ë6`?Ø‘ä=}Î?þò?5“ž>°Â=¿3“ž¾‰¿?y
ö¾Š¿¿‚5?q=‰:Tê4?€¿ë6`?º[
>}Î?R<ý>5“ž>YeO¿Å›v¾Š¿?‡¿¿}
ö¾m?«xq¼£$L?€¿%Le?”DÏ=%²x?þò?Sª>i(U¿Y¯.¾Â)*?¹)*¿­¤®¾åæ>¡_¼˜¬d?€¿!êl?¼“¸=úšq?þò?U²>ê*Y¿ Ó´½22?¡22¿4¾½sx>èL#»…Yx?€¿º"v?Tɨ=Óƒj?þò?Ïö´>g…Z¿ŒÊn3Ý5?û5¿~M
`»éûºÿ?€¿o¹?ô.£=Š\c?þò?Tª>—Ç+¿Sª¾¾)*?½¤®¾¹)*¿ª
5?t„²9;ÿ4?€¿ë6`?PÃ->}Î?¦’î>X²>!¶¿W²¾ê)2?
,5¾Ù)2¿ 5?í$5?€¿ë6`? ?W>}Î?üèß>Ïö´>¿¿Îö´¾&Ö4?SÖ4¿í5?1 k6ù5?€¿ë6`?Pà>}Î?T?Ñ>5“ž>SO¿É›v>Š¿?…¿¿‚
ö>¤ý¿ˆÈ8<¢ºK?€¿<¯Õ=”DÏ=N?þò?°Á“>ÕêI¿¯Á“>;Í?9Í¿<Í?˜;5¿ÞõÚºÎ4?€¿Yþ=Ø‘ä=™êF?þò?Sª>ªU¿^¯.>Â)*?¹)*¿°¤®>hL澯@ <k¡d?€¿L¿˜=¼“¸=#U?þò?U²>+Y¿Ó´=ê)2?Ù)2¿,5>%x¾Ï;¡Wx?€¿ õ=Tɨ=@\?þò?Ïö´>g…Z¿ŒÊn3Ý5?û5¿~M
`»éûºÿ?€¿¬ºô.£=Š\c?þò?"°Ó>ùòG¿ŒÊn3³)T?B¿ŽY:¨£º2X):úÿ?€¿¬ºRì=Š\c?R<ý>9fë>?2¿ÀDs3+×k?&Ǿ¸A: Þº‚צ8ýÿ?€¿¬ºžä >Š\c?¦’î>ì¢ú>&鿌Ên3âÓz?.ÍL¾Óõ9“<¹!ñ:þÿ?€¿¬º†ÏP>Š\c?üèß>?
¿ŠÒç2 «?@ÈO½†xŽ8JD·W‘:öÿ?€¿¬ºPà>Š\c?T?Ñ>±Á“>ØêI?¯Á“>;Í?9Í?;Í?Î4¿KüÚº™;5?€¿Yþ=Æmc?™êF?xêÉ:6“ž>œSO?Ë›v>Ž¿?ƒ¿?x
ö>]Ø¿°jG¼ÖK?€¿<¯Õ=nf?N?xêÉ:Wª>©U?a¯.>È)*?±)*?¾¤®>´Çæ¾ÿãﻃd?€¿L¿˜=ˆíh?#U?xêÉ:Y²>/Y?Ó´=ì)2?Ú)2?,5>ð)z¾>H»>x?€¿ õ=Øæj?@\?xêÉ:Òö´>i…Z?ŠÒç2ø5?í5?į¤»Ë¯¤;Xþ?€¿¬º"šk?Š\c?xêÉ:6“ž>œSO?Ç›v¾Ž¿?ƒ¿?x
ö¾ù?Ùfc<p
L?€¿%Le?nf?%²x?xêÉ:6“ž>ó°=?4“ž¾Š¿?|
ö>†¿¿Pê4?¶E‰:…5?€¿ë6`?i]?}Î?á·ó<±Á“>ØêI?¬Á“¾<Í?9Í?;Í¿o45?÷:¾ºRÕ4?€¿ë6`?Æmc?}Î?xêÉ:Tª>Ùµ+?Sª¾Â)*?¹¤®>·)*¿3ÿ4?ƒx²9²
5?€¿ë6`?,T?}Î?Ô^m=Y²>d¤?W²¾Í(2?öN5>¿(2¿¶5?µ905?€¿ë6`?90J?}Î?ýp°=Ïö´>¿?Îö´¾ÛÕ4?4©8=ÎÕ4¿ê5?>º6ý5?€¿ë6`?Ù??}Î? žê=Wª>©U?[¯.¾É)*?²)*?·¤®¾œ¥å>W%<BÊd?€¿!êl?ˆíh?úšq?xêÉ:Y²>/Y?
Ó´½ì)2?Ú)2?,5¾ÀÅv>öñ»;hsx?€¿º"v?Øæj?Óƒj?xêÉ:Òö´>i…Z?ŠÒç2ø5?í5?į¤»Ë¯¤;Xþ?€¿o¹?"šk?Š\c?xêÉ:!°Ó>øòG?ŠÒç2H)T?¹B?¶×ºvº;·ÿ?€¿o¹?½ub?Š\c?á·ó<=fë>?2?GÚá2âÖk?ð'Ç>ZZºkê:òÿ?€¿o¹?ØÆW?Š\c?Ô^m=î¢ú>,é?ŠÒç2gÓz?­ÖL>Á
8 A¦¸Úcd9€?€¿o¹?"ÌK?Š\c?ýp°=?
?ŠÒç2‚«?ñëO=Ý8!S~ºøÿ?€¿o¹??Š\c? žê=°Á“>ÕêI¿¯Á“>;Í?9Í¿<Í?˜;5¿ÞõÚºÎ4?€¿Yþ=Ø‘ä=Žc>Ž?5“ž>ò°=¿5“ž>‰¿?
ö¾…¿?Sê4¿µ7‰:ƒ5?€¿Yþ=º[
c>irü>Ë›v>™SO¿5“ž>‡
ö>†¿¿†¿?ÖK¿~jG¼hØ?€¿f>œDÏ=.G>Ž?`¯.>ªU¿Tª>±¤®>½)*¿¾)*?ƒd¿•æï»¨Çæ>€¿`ù1>¼“¸=ƒÁ*>Ž?!Ó´=+Y¿W²>þ+5>Ý)2¿é)2?>x¿ñC»ü)z>€¿¼ÛV>Tɨ=åd>Ž?&™Ó3g…Z¿Ïö´>è5¿þ5?Wÿ¿»éO;£éO;€¿\t>ô.£=ˆã=Ž?Tª>ص+¿Wª>À)*?·¤®¾¹)*?6ÿ4¿Êl²9¯
5?€¿Yþ=PÃ->Žc>»Èí>X²>b¤¿Y²>å)2?ú+5¾à)2?Ï5¿žS95?€¿Yþ= ?W>Žc>ß>Ïö´>
¿Ïö´>!Ö4?YÖ4?î5¿ Ÿ6ø5?€¿Yþ=Pàc>iuÐ>Æ›v¾›SO¿5“ž>„
ö¾„¿¿Š¿?n
L¿ähc<û¿€¿ª³µ>”DÏ=oã<Ž?4“ž¾ò°=¿5“ž>‚¿¿
ö¾‡¿5¿P9‰:Rê4¿€¿Þ¿>º[
>irü>°Á“¾ÔêI¿¯Á“><Í¿5Í¿=Í?NÕ4¿&L¾ºs45¿€¿Þ¿>à‘ä=Ž?Tª¾Øµ+¿Wª>¸)*¿¹¤®¾Â)*?±
5¿s²94ÿ4¿€¿Þ¿>PÃ->»Èí>W²¾b¤¿Y²>ß)2¿á+5¾è)2?5¿y5¿€¿Þ¿> ?W>ß>Ïö´¾
¿Ïö´>Ö4¿;Ö4?ö5¿Š6ñ5¿€¿Þ¿>Pà>iuÐ>V¯.¾ªU¿Tª>«¤®¾½)*¿Á)*?CÊd¿÷V%<œ¥å¾€¿®w¦>¼“¸=€c=Ž?Ó´½+Y¿W²>ú+5¾Ü)2¿é)2?x¿~
ð;ò<u¾€¿~”>Tɨ=««ª=Ž?¬Á“¾ÙêI?¯Á“><Í¿:Í?9Í?t45¿~W¾ºLÕ4¿€¿Þ¿>Æmc?4“ž¾ó°=?7“ž>¿¿
ö>‡¿?Uê4¿M‰:5¿€¿Þ¿>i]?7ç<Æ›v¾œSO?7“ž>
ö¾ƒ¿?Š¿?ž$L¿Õvq¼
m¿€¿ª³µ>nf?oã<]¯.¾©U?Wª>¤®¾µ)*?Ã)*?¬d¿H^¼æ¾€¿®w¦>ˆíh?€c=Ó´½/Y?Y²>ÿ+5¾Þ)2?ç)2?}rx¿)ï¹»çÔv¾€¿€”>Øæj?««ª=¢¥ˆ²i…Z?Óö´>ñ5?õ5?Õÿ¿n®Ñºk®Ñ:€¿\t>"šk?ˆã=Tª¾Ùµ+?Wª>¶)*¿Ã¤®>À)*??ÿ4¿Ep²9¦
5¿€¿Þ¿>,T?g=Y²¾d¤?Y²>Þ)2¿Ò+5>ì)2?Ú5¿õº
9 5¿€¿Þ¿>90J?TI­=Íö´¾
?Ïö´>Ö4¿Æ8="Ö4?õ5¿m;Š6ñ5¿€¿Þ¿>Ù??bvç=Λv>œSO?7“ž>‡
ö>„¿?ˆ¿?£ºK¿¡Ê8<¢ý?€¿f>nf?.G>6“ž>ó°=?7“ž>ˆ¿?
ö>†¿?5¿F‰:Tê4?€¿Yþ=i]?Žc>7ç<±Á“>ØêI?¯Á“>;Í?9Í?;Í?Î4¿KüÚº™;5?€¿Yþ=Æmc?Žc>Tª>Ùµ+?Wª>Â)*?µ¤®>¸)*?¦
5¿Av²9>ÿ4?€¿Yþ=,T?Žc>g=Y²>d¤?Y²>é)2?Û+5>ß)2?5¿Iì
5?€¿Yþ=90J?Žc>TI­=Ïö´>
?Ïö´>!Ö4?Ø8=Ö4?ó5¿?Š6ô5?€¿Yþ=Ù??Žc>bvç=b¯.>ªU?Wª>¹¤®>¸)*?Á)*?a¡d¿&< <Læ>€¿`ù1>ˆíh?ƒÁ*>Ó´=/Y?Y²>ê+5>à)2?æ)2?¥Wx¿^;ãŒx>€¿ÀÛV>Øæj?åd>?€??Þß@ <APlaneXy @% @° 
   + *+**6+)*)*56)5*5A6()()45(4)5@A4@5@LA'('(34'3(4?@3?4@KL?K@KWL&'&'23&2'3>?2>3?JK>J?KVWJVKVbWVabambJUVUaV>IJIUJ2=>=I>&121=2almlxmlwxU`a`lakwl`klkvwITUT`U=HIHTI_k`T_`jvk_jkjuvS_THST<H=1<=^j_S^_iuj^ijituGSH<GHR^SGRS]i^R]^hti]hihstgshgrs\h]\ghQ]RQ\]FRGFQR;G<;FGfrgfqr[g\[fgP\QP[\EQFEPQeqfepqZf[ZefO[POZ[dpedopYeZYdecodcnoXcdXdYMXYNYZMYNNZOBMNBNCCNO7BCCODDOPDPE7C88CD,789DE8D9,8--89!,-9E::EF:F;!-"!"-9..9:"-./:;.:/" ".##./"#/;00;<0<1  # #/$$/0#$%01$0%%1&%&



$$%%

y (° @¥ @€?€¿€¿€@¥ @€?€¿€¿ÍÌÌ=@@¥ @€?€¿€¿ÍÌL>ÿÿÿ?¥ @€?€¿€¿š™™>ÿÿ?¥ @€?€¿€¿ÍÌÌ>¥ @€?€¿€¿?€¿¥ @€?€¿€¿š™?ÿÿÿ¿¥ @€?€¿€¿333?¥ @€?€¿€¿ÍÌL?€À¥ @€?€¿€¿gff? À¥ @€?€¿€¿€? @ÍÌ̤€@€?€¿€¿ÍÌÌ=€@ÍÌ̤€@€?€¿€¿ÍÌÌ=ÍÌÌ=@@ÍÌ̤€@€?€¿€¿ÍÌL>ÍÌÌ=ÿÿÿ?ÍÌ̤€@€?€¿€¿š™™>ÍÌÌ=ÿÿ?ÍÌ̤€@€?€¿€¿ÍÌÌ>ÍÌÌ=ÍÌ̤€@€?€¿€¿?ÍÌÌ=€¿ÍÌ̤€@€?€¿€¿š™?ÍÌÌ=ÿÿÿ¿ÍÌ̤€@€?€¿€¿333?ÍÌÌ=@ÀÍÌ̤€@€?€¿€¿ÍÌL?ÍÌÌ=€ÀÍÌ̤€@€?€¿€¿gff?ÍÌÌ= ÀÍÌ̤€@€?€¿€¿€?ÍÌÌ= @𙙤@@€?€¿€¿ÍÌL>€@𙙤@@€?€¿€¿ÍÌÌ=ÍÌL>@@𙙤@@€?€¿€¿ÍÌL>ÍÌL>ÿÿÿ?𙙤@@€?€¿€¿š™™>ÍÌL>ÿÿ?𙙤@@€?€¿€¿ÍÌÌ>ÍÌL>𙙤@@€?€¿€¿?ÍÌL>€¿š™™¤@@€?€¿€¿š™?ÍÌL>ÿÿÿ¿š™™¤@@€?€¿€¿333?ÍÌL>@À𙙤@@€?€¿€¿ÍÌL?ÍÌL>€À𙙤@@€?€¿€¿gff?ÍÌL> À𙙤@@€?€¿€¿€?ÍÌL> @ÌÌL¤ÿÿÿ?€?€¿€¿š™™>€@ÌÌL¤ÿÿÿ?€?€¿€¿ÍÌÌ=š™™>@@ÌÌL¤ÿÿÿ?€?€¿€¿ÍÌL>š™™>ÿÿÿ?ÌÌL¤ÿÿÿ?€?€¿€¿š™™>š™™>ÿÿ?ÌÌL¤ÿÿÿ?€?€¿€¿ÍÌÌ>š™™>ÌÌL¤ÿÿÿ?€?€¿€¿?š™™>€¿ÌÌL¤ÿÿÿ?€?€¿€¿š™?š™™>ÿÿÿ¿ÌÌL¤ÿÿÿ?€?€¿€¿333?š™™>@ÀÌÌL¤ÿÿÿ?€?€¿€¿ÍÌL?š™™>€ÀÌÌL¤ÿÿÿ?€?€¿€¿gff?š™™> ÀÌÌL¤ÿÿÿ?€?€¿€¿€?š™™> @ÌÌÌ£ÿÿ?€?€¿€¿ÍÌÌ>€@ÌÌÌ£ÿÿ?€?€¿€¿ÍÌÌ=ÍÌÌ>@@ÌÌÌ£ÿÿ?€?€¿€¿ÍÌL>ÍÌÌ>ÿÿÿ?ÌÌÌ£ÿÿ?€?€¿€¿š™™>ÍÌÌ>ÿÿ?ÌÌÌ£ÿÿ?€?€¿€¿ÍÌÌ>ÍÌÌ>ÌÌÌ£ÿÿ?€?€¿€¿?ÍÌÌ>€¿ÌÌÌ£ÿÿ?€?€¿€¿š™?ÍÌÌ>ÿÿÿ¿ÌÌÌ£ÿÿ?€?€¿€¿333?ÍÌÌ>@ÀÌÌÌ£ÿÿ?€?€¿€¿ÍÌL?ÍÌÌ>€ÀÌÌÌ£ÿÿ?€?€¿€¿gff?ÍÌÌ> ÀÌÌÌ£ÿÿ?€?€¿€¿€?ÍÌÌ> @€?€¿€¿?€@€?€¿€¿ÍÌÌ=?@@€?€¿€¿ÍÌL>?ÿÿÿ?€?€¿€¿š™™>?

  

 


 

    !!! ""#
#$$!#$!% !$%& &"%& '"&'"'
(#
(('#)$$)%%)&#())(')'&* ð{õ1¾í¿^õh?€?Õíˆ?€?¥ù¿,õh?€?Ww<¿¢í¿ú?€?¶ôè>@©¾^õh?€?{õ1¾í?^õh?€?¶ôè>@©>^õh?€?Ìa—¾ùôh¿óô>€?]¿<ú?€?òt¿kòô>€?Ww<¿¢í?ú?€?@ø ¿CŽ]¿€?2:‚¿W@©¾€?Ì툿€?2:‚¿W@©>€?^*F?bù¿óô>€?èôh?ú?€?@ø ?CŽ]¿€?2:?W@©¾€?^*F¿bù¿óô¾€?¾Þ]¿<ú¿€?Ìa—>ùôh¿óô¾€?èôh¿ú¿€?Ww<?¢í¿ú¿€?{õ1>í¿^õh¿€?¶ôè¾@©¾^õh¿€?2:?W@©>€?òt?kòô¾€?¥ù?,õh¿€?Õ툿€?¶ôè¾@©>^õh¿€?^*F¿bù?óô¾€?Ww<?¢í?ú¿€?{õ1>í?^õh¿€?^*F?bù?óô>€?@ø ¿CŽ]?€?¾Þ]?<ú¿€?Ìa—>ùôh?óô¾€?@ø ?CŽ]?€?]?<ú?€?Ìa—¾ùôh?óô>€?Ìíˆ?€?2:‚?Ìíˆ?Õíˆ?€?€? icosahedron< ¥õ?Šéˆ?ºó ?x  

  

  _𱾊鈿Øõ?€?ºó ?€?¥õ¿Øõ?€?îh¿:;)¿Øõ¿€?îh?:;)¿Øõ?€?_ð±>Šéˆ¿Øõ¿€?îh¿:;)?Øõ¿€?_𱾊éˆ?Øõ?€?ºó ¿€?¥õ?Øõ¿€?îh?:;)?Øõ?€?_ð±>Šéˆ?Øõ¿€?¥õ?Šéˆ?ºó ?€?€?pyramid?€?€??$ x€?€¿€?€?€?€?€?€?€?€¿€¿€?€?€?€¿€?€??€?€??€?€?UnityWatermark-small:tt


  !"######"!  
"%),.013344443310.,)%"
vvvvvvvvvvvvvvvvvv
#(-3,,,G;;;SJJJ`TTTjVVVn]]]ubbbzbbbzbbbzbbbzbbbzbbbzbbbzbbbz^^^uWWWnUUUjKKK`<<<S,,,G3-(#
vvvwwwwwwwwwwwwwww %,9CCCWTTTidddxjjjzrrr{|‘‘‘}›››~¡¡¡£££¤¤¤¦¦¦€§§§€§§§€¦¦¦¤¤¤£££¡¡¡›››~‘‘‘}|qqq{jjjzeeexTTTiDDDW9,% ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
$-;;;MVVVhgggyqqq{‘‘‘}¡¡¡~¬¬¬¥¥¥€“““€ƒƒƒ€xxx€bbb€PPP€PPP€PPP€PPP€PPP€PPP€PPP€PPP€bbb€xxx€ƒƒƒ€’’’€¢¢¢€§§§~~ŽŽŽ}pppzhhhyVVVh<<<M-$
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
#
-@@@Paaarnnnz|¤¤¤}§§§€‰‰‰€aaa€QQQ€DDDt;;;l///d###]WWWOMMPWWW%%%^000e;;;lGGGvQQQ€^^^€ˆˆˆ€£££€}‰‰‰|nnnzcccrAAAP
-#
ÿÿÿÿÿÿÿÿÿÿÿÿ '999Ibbbrqqqz”””}®®®’’’€[[[€JJJy;;;m[OMMMMMMMMMMMMMMMMMMP"""\>>>oLLL{[[[€€¤¤¤~}qqqzdddr;;;I' ÿÿÿÿÿÿÿÿÿ