├── .gitignore ├── Assets ├── Example.meta ├── Example │ ├── ExampleScene.unity │ ├── ExampleScene.unity.meta │ ├── Ground.mat │ ├── Ground.mat.meta │ ├── RepeatedNoiseRingSourceTrigger.cs │ └── RepeatedNoiseRingSourceTrigger.cs.meta ├── NoiseRings.meta └── NoiseRings │ ├── CGNoise.meta │ ├── CGNoise │ ├── LICENSE.txt │ ├── LICENSE.txt.meta │ ├── Noise.cginc │ └── Noise.cginc.meta │ ├── DefaultLineTexture.png │ ├── DefaultLineTexture.png.meta │ ├── NoiseRing.shader │ ├── NoiseRing.shader.meta │ ├── NoiseRingGlobals.cginc │ ├── NoiseRingGlobals.cginc.meta │ ├── NoiseRingSource.cs │ ├── NoiseRingSource.cs.meta │ ├── UpdateShaderGlobals.cs │ └── UpdateShaderGlobals.cs.meta ├── LICENSE.txt ├── Packages └── manifest.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── NetworkManager.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset ├── UnityConnectSettings.asset └── VFXManager.asset ├── README.md └── preview.gif /.gitignore: -------------------------------------------------------------------------------- 1 | /* 2 | /*/ 3 | 4 | !.gitignore 5 | !/Assets/ 6 | !/Packages/ 7 | !/ProjectSettings/ 8 | !README.md 9 | !LICENSE.txt 10 | !preview.gif 11 | -------------------------------------------------------------------------------- /Assets/Example.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0100422c185c024499a3974f0735c0ba 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Example/ExampleScene.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | OcclusionCullingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_OcclusionBakeSettings: 8 | smallestOccluder: 5 9 | smallestHole: 0.25 10 | backfaceThreshold: 100 11 | m_SceneGUID: 00000000000000000000000000000000 12 | m_OcclusionCullingData: {fileID: 0} 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 9 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} 24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} 25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 0 28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} 29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} 30 | m_HaloStrength: 0.5 31 | m_FlareStrength: 1 32 | m_FlareFadeSpeed: 3 33 | m_HaloTexture: {fileID: 0} 34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 35 | m_DefaultReflectionMode: 0 36 | m_DefaultReflectionResolution: 128 37 | m_ReflectionBounces: 1 38 | m_ReflectionIntensity: 1 39 | m_CustomReflection: {fileID: 0} 40 | m_Sun: {fileID: 0} 41 | m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1} 42 | m_UseRadianceAmbientProbe: 0 43 | --- !u!157 &3 44 | LightmapSettings: 45 | m_ObjectHideFlags: 0 46 | serializedVersion: 11 47 | m_GIWorkflowMode: 0 48 | m_GISettings: 49 | serializedVersion: 2 50 | m_BounceScale: 1 51 | m_IndirectOutputScale: 1 52 | m_AlbedoBoost: 1 53 | m_EnvironmentLightingMode: 0 54 | m_EnableBakedLightmaps: 1 55 | m_EnableRealtimeLightmaps: 1 56 | m_LightmapEditorSettings: 57 | serializedVersion: 10 58 | m_Resolution: 2 59 | m_BakeResolution: 40 60 | m_AtlasSize: 1024 61 | m_AO: 0 62 | m_AOMaxDistance: 1 63 | m_CompAOExponent: 1 64 | m_CompAOExponentDirect: 0 65 | m_Padding: 2 66 | m_LightmapParameters: {fileID: 0} 67 | m_LightmapsBakeMode: 1 68 | m_TextureCompression: 1 69 | m_FinalGather: 0 70 | m_FinalGatherFiltering: 1 71 | m_FinalGatherRayCount: 256 72 | m_ReflectionCompression: 2 73 | m_MixedBakeMode: 2 74 | m_BakeBackend: 1 75 | m_PVRSampling: 1 76 | m_PVRDirectSampleCount: 32 77 | m_PVRSampleCount: 500 78 | m_PVRBounces: 2 79 | m_PVRFilterTypeDirect: 0 80 | m_PVRFilterTypeIndirect: 0 81 | m_PVRFilterTypeAO: 0 82 | m_PVRFilteringMode: 1 83 | m_PVRCulling: 1 84 | m_PVRFilteringGaussRadiusDirect: 1 85 | m_PVRFilteringGaussRadiusIndirect: 5 86 | m_PVRFilteringGaussRadiusAO: 2 87 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 88 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 89 | m_PVRFilteringAtrousPositionSigmaAO: 1 90 | m_ShowResolutionOverlay: 1 91 | m_LightingDataAsset: {fileID: 0} 92 | m_UseShadowmask: 1 93 | --- !u!196 &4 94 | NavMeshSettings: 95 | serializedVersion: 2 96 | m_ObjectHideFlags: 0 97 | m_BuildSettings: 98 | serializedVersion: 2 99 | agentTypeID: 0 100 | agentRadius: 0.5 101 | agentHeight: 2 102 | agentSlope: 45 103 | agentClimb: 0.4 104 | ledgeDropHeight: 0 105 | maxJumpAcrossDistance: 0 106 | minRegionArea: 2 107 | manualCellSize: 0 108 | cellSize: 0.16666667 109 | manualTileSize: 0 110 | tileSize: 256 111 | accuratePlacement: 0 112 | debug: 113 | m_Flags: 0 114 | m_NavMeshData: {fileID: 0} 115 | --- !u!43 &252354921 116 | Mesh: 117 | m_ObjectHideFlags: 0 118 | m_CorrespondingSourceObject: {fileID: 0} 119 | m_PrefabInstance: {fileID: 0} 120 | m_PrefabAsset: {fileID: 0} 121 | m_Name: 122 | serializedVersion: 9 123 | m_SubMeshes: 124 | - serializedVersion: 2 125 | firstByte: 0 126 | indexCount: 3072 127 | topology: 0 128 | baseVertex: 0 129 | firstVertex: 0 130 | vertexCount: 1024 131 | localAABB: 132 | m_Center: {x: 0, y: 0, z: 0} 133 | m_Extent: {x: 1, y: 1, z: 0} 134 | m_Shapes: 135 | vertices: [] 136 | shapes: [] 137 | channels: [] 138 | fullWeights: [] 139 | m_BindPose: [] 140 | m_BoneNameHashes: 141 | m_RootBoneNameHash: 0 142 | m_MeshCompression: 0 143 | m_IsReadable: 1 144 | m_KeepVertices: 0 145 | m_KeepIndices: 0 146 | m_IndexFormat: 0 147 | m_IndexBuffer: 00000200010001000200030002000400030003000400050004000600050005000600070006000800070007000800090008000a00090009000a000b000a000c000b000b000c000d000c000e000d000d000e000f000e0010000f000f001000110010001200110011001200130012001400130013001400150014001600150015001600170016001800170017001800190018001a00190019001a001b001a001c001b001b001c001d001c001e001d001d001e001f001e0020001f001f002000210020002200210021002200230022002400230023002400250024002600250025002600270026002800270027002800290028002a00290029002a002b002a002c002b002b002c002d002c002e002d002d002e002f002e0030002f002f003000310030003200310031003200330032003400330033003400350034003600350035003600370036003800370037003800390038003a00390039003a003b003a003c003b003b003c003d003c003e003d003d003e003f003e0040003f003f004000410040004200410041004200430042004400430043004400450044004600450045004600470046004800470047004800490048004a00490049004a004b004a004c004b004b004c004d004c004e004d004d004e004f004e0050004f004f005000510050005200510051005200530052005400530053005400550054005600550055005600570056005800570057005800590058005a00590059005a005b005a005c005b005b005c005d005c005e005d005d005e005f005e0060005f005f006000610060006200610061006200630062006400630063006400650064006600650065006600670066006800670067006800690068006a00690069006a006b006a006c006b006b006c006d006c006e006d006d006e006f006e0070006f006f007000710070007200710071007200730072007400730073007400750074007600750075007600770076007800770077007800790078007a00790079007a007b007a007c007b007b007c007d007c007e007d007d007e007f007e0080007f007f008000810080008200810081008200830082008400830083008400850084008600850085008600870086008800870087008800890088008a00890089008a008b008a008c008b008b008c008d008c008e008d008d008e008f008e0090008f008f009000910090009200910091009200930092009400930093009400950094009600950095009600970096009800970097009800990098009a00990099009a009b009a009c009b009b009c009d009c009e009d009d009e009f009e00a0009f009f00a000a100a000a200a100a100a200a300a200a400a300a300a400a500a400a600a500a500a600a700a600a800a700a700a800a900a800aa00a900a900aa00ab00aa00ac00ab00ab00ac00ad00ac00ae00ad00ad00ae00af00ae00b000af00af00b000b100b000b200b100b100b200b300b200b400b300b300b400b500b400b600b500b500b600b700b600b800b700b700b800b900b800ba00b900b900ba00bb00ba00bc00bb00bb00bc00bd00bc00be00bd00bd00be00bf00be00c000bf00bf00c000c100c000c200c100c100c200c300c200c400c300c300c400c500c400c600c500c500c600c700c600c800c700c700c800c900c800ca00c900c900ca00cb00ca00cc00cb00cb00cc00cd00cc00ce00cd00cd00ce00cf00ce00d000cf00cf00d000d100d000d200d100d100d200d300d200d400d300d300d400d500d400d600d500d500d600d700d600d800d700d700d800d900d800da00d900d900da00db00da00dc00db00db00dc00dd00dc00de00dd00dd00de00df00de00e000df00df00e000e100e000e200e100e100e200e300e200e400e300e300e400e500e400e600e500e500e600e700e600e800e700e700e800e900e800ea00e900e900ea00eb00ea00ec00eb00eb00ec00ed00ec00ee00ed00ed00ee00ef00ee00f000ef00ef00f000f100f000f200f100f100f200f300f200f400f300f300f400f500f400f600f500f500f600f700f600f800f700f700f800f900f800fa00f900f900fa00fb00fa00fc00fb00fb00fc00fd00fc00fe00fd00fd00fe00ff00fe000001ff00ff000001010100010201010101010201030102010401030103010401050104010601050105010601070106010801070107010801090108010a01090109010a010b010a010c010b010b010c010d010c010e010d010d010e010f010e0110010f010f011001110110011201110111011201130112011401130113011401150114011601150115011601170116011801170117011801190118011a01190119011a011b011a011c011b011b011c011d011c011e011d011d011e011f011e0120011f011f012001210120012201210121012201230122012401230123012401250124012601250125012601270126012801270127012801290128012a01290129012a012b012a012c012b012b012c012d012c012e012d012d012e012f012e0130012f012f013001310130013201310131013201330132013401330133013401350134013601350135013601370136013801370137013801390138013a01390139013a013b013a013c013b013b013c013d013c013e013d013d013e013f013e0140013f013f014001410140014201410141014201430142014401430143014401450144014601450145014601470146014801470147014801490148014a01490149014a014b014a014c014b014b014c014d014c014e014d014d014e014f014e0150014f014f015001510150015201510151015201530152015401530153015401550154015601550155015601570156015801570157015801590158015a01590159015a015b015a015c015b015b015c015d015c015e015d015d015e015f015e0160015f015f016001610160016201610161016201630162016401630163016401650164016601650165016601670166016801670167016801690168016a01690169016a016b016a016c016b016b016c016d016c016e016d016d016e016f016e0170016f016f017001710170017201710171017201730172017401730173017401750174017601750175017601770176017801770177017801790178017a01790179017a017b017a017c017b017b017c017d017c017e017d017d017e017f017e0180017f017f018001810180018201810181018201830182018401830183018401850184018601850185018601870186018801870187018801890188018a01890189018a018b018a018c018b018b018c018d018c018e018d018d018e018f018e0190018f018f019001910190019201910191019201930192019401930193019401950194019601950195019601970196019801970197019801990198019a01990199019a019b019a019c019b019b019c019d019c019e019d019d019e019f019e01a0019f019f01a001a101a001a201a101a101a201a301a201a401a301a301a401a501a401a601a501a501a601a701a601a801a701a701a801a901a801aa01a901a901aa01ab01aa01ac01ab01ab01ac01ad01ac01ae01ad01ad01ae01af01ae01b001af01af01b001b101b001b201b101b101b201b301b201b401b301b301b401b501b401b601b501b501b601b701b601b801b701b701b801b901b801ba01b901b901ba01bb01ba01bc01bb01bb01bc01bd01bc01be01bd01bd01be01bf01be01c001bf01bf01c001c101c001c201c101c101c201c301c201c401c301c301c401c501c401c601c501c501c601c701c601c801c701c701c801c901c801ca01c901c901ca01cb01ca01cc01cb01cb01cc01cd01cc01ce01cd01cd01ce01cf01ce01d001cf01cf01d001d101d001d201d101d101d201d301d201d401d301d301d401d501d401d601d501d501d601d701d601d801d701d701d801d901d801da01d901d901da01db01da01dc01db01db01dc01dd01dc01de01dd01dd01de01df01de01e001df01df01e001e101e001e201e101e101e201e301e201e401e301e301e401e501e401e601e501e501e601e701e601e801e701e701e801e901e801ea01e901e901ea01eb01ea01ec01eb01eb01ec01ed01ec01ee01ed01ed01ee01ef01ee01f001ef01ef01f001f101f001f201f101f101f201f301f201f401f301f301f401f501f401f601f501f501f601f701f601f801f701f701f801f901f801fa01f901f901fa01fb01fa01fc01fb01fb01fc01fd01fc01fe01fd01fd01fe01ff01fe010002ff01ff010002010200020202010201020202030202020402030203020402050204020602050205020602070206020802070207020802090208020a02090209020a020b020a020c020b020b020c020d020c020e020d020d020e020f020e0210020f020f021002110210021202110211021202130212021402130213021402150214021602150215021602170216021802170217021802190218021a02190219021a021b021a021c021b021b021c021d021c021e021d021d021e021f021e0220021f021f022002210220022202210221022202230222022402230223022402250224022602250225022602270226022802270227022802290228022a02290229022a022b022a022c022b022b022c022d022c022e022d022d022e022f022e0230022f022f023002310230023202310231023202330232023402330233023402350234023602350235023602370236023802370237023802390238023a02390239023a023b023a023c023b023b023c023d023c023e023d023d023e023f023e0240023f023f024002410240024202410241024202430242024402430243024402450244024602450245024602470246024802470247024802490248024a02490249024a024b024a024c024b024b024c024d024c024e024d024d024e024f024e0250024f024f025002510250025202510251025202530252025402530253025402550254025602550255025602570256025802570257025802590258025a02590259025a025b025a025c025b025b025c025d025c025e025d025d025e025f025e0260025f025f026002610260026202610261026202630262026402630263026402650264026602650265026602670266026802670267026802690268026a02690269026a026b026a026c026b026b026c026d026c026e026d026d026e026f026e0270026f026f027002710270027202710271027202730272027402730273027402750274027602750275027602770276027802770277027802790278027a02790279027a027b027a027c027b027b027c027d027c027e027d027d027e027f027e0280027f027f028002810280028202810281028202830282028402830283028402850284028602850285028602870286028802870287028802890288028a02890289028a028b028a028c028b028b028c028d028c028e028d028d028e028f028e0290028f028f029002910290029202910291029202930292029402930293029402950294029602950295029602970296029802970297029802990298029a02990299029a029b029a029c029b029b029c029d029c029e029d029d029e029f029e02a0029f029f02a002a102a002a202a102a102a202a302a202a402a302a302a402a502a402a602a502a502a602a702a602a802a702a702a802a902a802aa02a902a902aa02ab02aa02ac02ab02ab02ac02ad02ac02ae02ad02ad02ae02af02ae02b002af02af02b002b102b002b202b102b102b202b302b202b402b302b302b402b502b402b602b502b502b602b702b602b802b702b702b802b902b802ba02b902b902ba02bb02ba02bc02bb02bb02bc02bd02bc02be02bd02bd02be02bf02be02c002bf02bf02c002c102c002c202c102c102c202c302c202c402c302c302c402c502c402c602c502c502c602c702c602c802c702c702c802c902c802ca02c902c902ca02cb02ca02cc02cb02cb02cc02cd02cc02ce02cd02cd02ce02cf02ce02d002cf02cf02d002d102d002d202d102d102d202d302d202d402d302d302d402d502d402d602d502d502d602d702d602d802d702d702d802d902d802da02d902d902da02db02da02dc02db02db02dc02dd02dc02de02dd02dd02de02df02de02e002df02df02e002e102e002e202e102e102e202e302e202e402e302e302e402e502e402e602e502e502e602e702e602e802e702e702e802e902e802ea02e902e902ea02eb02ea02ec02eb02eb02ec02ed02ec02ee02ed02ed02ee02ef02ee02f002ef02ef02f002f102f002f202f102f102f202f302f202f402f302f302f402f502f402f602f502f502f602f702f602f802f702f702f802f902f802fa02f902f902fa02fb02fa02fc02fb02fb02fc02fd02fc02fe02fd02fd02fe02ff02fe020003ff02ff020003010300030203010301030203030302030403030303030403050304030603050305030603070306030803070307030803090308030a03090309030a030b030a030c030b030b030c030d030c030e030d030d030e030f030e0310030f030f031003110310031203110311031203130312031403130313031403150314031603150315031603170316031803170317031803190318031a03190319031a031b031a031c031b031b031c031d031c031e031d031d031e031f031e0320031f031f032003210320032203210321032203230322032403230323032403250324032603250325032603270326032803270327032803290328032a03290329032a032b032a032c032b032b032c032d032c032e032d032d032e032f032e0330032f032f033003310330033203310331033203330332033403330333033403350334033603350335033603370336033803370337033803390338033a03390339033a033b033a033c033b033b033c033d033c033e033d033d033e033f033e0340033f033f034003410340034203410341034203430342034403430343034403450344034603450345034603470346034803470347034803490348034a03490349034a034b034a034c034b034b034c034d034c034e034d034d034e034f034e0350034f034f035003510350035203510351035203530352035403530353035403550354035603550355035603570356035803570357035803590358035a03590359035a035b035a035c035b035b035c035d035c035e035d035d035e035f035e0360035f035f036003610360036203610361036203630362036403630363036403650364036603650365036603670366036803670367036803690368036a03690369036a036b036a036c036b036b036c036d036c036e036d036d036e036f036e0370036f036f037003710370037203710371037203730372037403730373037403750374037603750375037603770376037803770377037803790378037a03790379037a037b037a037c037b037b037c037d037c037e037d037d037e037f037e0380037f037f038003810380038203810381038203830382038403830383038403850384038603850385038603870386038803870387038803890388038a03890389038a038b038a038c038b038b038c038d038c038e038d038d038e038f038e0390038f038f039003910390039203910391039203930392039403930393039403950394039603950395039603970396039803970397039803990398039a03990399039a039b039a039c039b039b039c039d039c039e039d039d039e039f039e03a0039f039f03a003a103a003a203a103a103a203a303a203a403a303a303a403a503a403a603a503a503a603a703a603a803a703a703a803a903a803aa03a903a903aa03ab03aa03ac03ab03ab03ac03ad03ac03ae03ad03ad03ae03af03ae03b003af03af03b003b103b003b203b103b103b203b303b203b403b303b303b403b503b403b603b503b503b603b703b603b803b703b703b803b903b803ba03b903b903ba03bb03ba03bc03bb03bb03bc03bd03bc03be03bd03bd03be03bf03be03c003bf03bf03c003c103c003c203c103c103c203c303c203c403c303c303c403c503c403c603c503c503c603c703c603c803c703c703c803c903c803ca03c903c903ca03cb03ca03cc03cb03cb03cc03cd03cc03ce03cd03cd03ce03cf03ce03d003cf03cf03d003d103d003d203d103d103d203d303d203d403d303d303d403d503d403d603d503d503d603d703d603d803d703d703d803d903d803da03d903d903da03db03da03dc03db03db03dc03dd03dc03de03dd03dd03de03df03de03e003df03df03e003e103e003e203e103e103e203e303e203e403e303e303e403e503e403e603e503e503e603e703e603e803e703e703e803e903e803ea03e903e903ea03eb03ea03ec03eb03eb03ec03ed03ec03ee03ed03ed03ee03ef03ee03f003ef03ef03f003f103f003f203f103f103f203f303f203f403f303f303f403f503f403f603f503f503f603f703f603f803f703f703f803f903f803fa03f903f903fa03fb03fa03fc03fb03fb03fc03fd03fc03fe03fd03fd03fe03ff03fe030000ff03ff0300000100 148 | m_VertexData: 149 | serializedVersion: 2 150 | m_VertexCount: 1024 151 | m_Channels: 152 | - stream: 0 153 | offset: 0 154 | format: 0 155 | dimension: 3 156 | - stream: 0 157 | offset: 0 158 | format: 0 159 | dimension: 0 160 | - stream: 0 161 | offset: 0 162 | format: 0 163 | dimension: 0 164 | - stream: 0 165 | offset: 0 166 | format: 0 167 | dimension: 0 168 | - stream: 0 169 | offset: 12 170 | format: 0 171 | dimension: 3 172 | - stream: 0 173 | offset: 24 174 | format: 0 175 | dimension: 3 176 | - stream: 0 177 | offset: 36 178 | format: 0 179 | dimension: 3 180 | - stream: 0 181 | offset: 0 182 | format: 0 183 | dimension: 0 184 | - stream: 0 185 | offset: 0 186 | format: 0 187 | dimension: 0 188 | - stream: 0 189 | offset: 0 190 | format: 0 191 | dimension: 0 192 | - stream: 0 193 | offset: 0 194 | format: 0 195 | dimension: 0 196 | - stream: 0 197 | offset: 0 198 | format: 0 199 | dimension: 0 200 | - stream: 0 201 | offset: 0 202 | format: 0 203 | dimension: 0 204 | - stream: 0 205 | offset: 0 206 | format: 0 207 | dimension: 0 208 | m_DataSize: 49152 209 | _typelessdata: 0000803f000000000000000011fb7f3ffa0d49bc0000000011fb7f3f900e493c000000000000003f0000803f0000803f0000803f000000000000000011fb7f3ffa0d49bc0000000011fb7f3f900e493c000000000000003f00000000000080bf11fb7f3f900e493c000000000000803f000000000000000043ec7f3fb00ac93c000000000000003f0000803f0000803f11fb7f3f900e493c000000000000803f000000000000000043ec7f3fb00ac93c000000000000003f00000000000080bf43ec7f3fb00ac93c0000000011fb7f3f900e493c0000000097d37f3f2cc3163d000000000000003f0000803f0000803f43ec7f3fb00ac93c0000000011fb7f3f900e493c0000000097d37f3f2cc3163d000000000000003f00000000000080bf97d37f3f2cc3163d0000000043ec7f3fb00ac93c000000000fb17f3f30fb483d000000000000003f0000803f0000803f97d37f3f2cc3163d0000000043ec7f3fb00ac93c000000000fb17f3f30fb483d000000000000003f00000000000080bf0fb17f3f30fb483d0000000097d37f3f2cc3163d00000000ab847f3f752b7b3d000000000000003f0000803f0000803f0fb17f3f30fb483d0000000097d37f3f2cc3163d00000000ab847f3f752b7b3d000000000000003f00000000000080bfab847f3f752b7b3d000000000fb17f3f30fb483d000000006d4e7f3f05a9963d000000000000003f0000803f0000803fab847f3f752b7b3d000000000fb17f3f30fb483d000000006d4e7f3f05a9963d000000000000003f00000000000080bf6d4e7f3f05a9963d00000000ab847f3f752b7b3d00000000580e7f3f81b6af3d000000000000003f0000803f0000803f6d4e7f3f05a9963d00000000ab847f3f752b7b3d00000000580e7f3f81b6af3d000000000000003f00000000000080bf580e7f3f81b6af3d000000006d4e7f3f05a9963d000000006dc47e3f36bdc83d000000000000003f0000803f0000803f580e7f3f81b6af3d000000006d4e7f3f05a9963d000000006dc47e3f36bdc83d000000000000003f00000000000080bf6dc47e3f36bdc83d00000000580e7f3f81b6af3d00000000b0707e3f2ebce13d000000000000003f0000803f0000803f6dc47e3f36bdc83d00000000580e7f3f81b6af3d00000000b0707e3f2ebce13d000000000000003f00000000000080bfb0707e3f2ebce13d000000006dc47e3f36bdc83d0000000024137e3f73b2fa3d000000000000003f0000803f0000803fb0707e3f2ebce13d000000006dc47e3f36bdc83d0000000024137e3f73b2fa3d000000000000003f00000000000080bf24137e3f73b2fa3d00000000b0707e3f2ebce13d00000000ccab7d3f87cf093e000000000000003f0000803f0000803f24137e3f73b2fa3d00000000b0707e3f2ebce13d00000000ccab7d3f87cf093e000000000000003f00000000000080bfccab7d3f87cf093e0000000024137e3f73b2fa3d00000000ac3a7d3f8340163e000000000000003f0000803f0000803fccab7d3f87cf093e0000000024137e3f73b2fa3d00000000ac3a7d3f8340163e000000000000003f00000000000080bfac3a7d3f8340163e00000000ccab7d3f87cf093e00000000c9bf7c3fb6ab223e000000000000003f0000803f0000803fac3a7d3f8340163e00000000ccab7d3f87cf093e00000000c9bf7c3fb6ab223e000000000000003f00000000000080bfc9bf7c3fb6ab223e00000000ac3a7d3f8340163e00000000283b7c3fa3102f3e000000000000003f0000803f0000803fc9bf7c3fb6ab223e00000000ac3a7d3f8340163e00000000283b7c3fa3102f3e000000000000003f00000000000080bf283b7c3fa3102f3e00000000c9bf7c3fb6ab223e00000000cdac7b3fcf6e3b3e000000000000003f0000803f0000803f283b7c3fa3102f3e00000000c9bf7c3fb6ab223e00000000cdac7b3fcf6e3b3e000000000000003f00000000000080bfcdac7b3fcf6e3b3e00000000283b7c3fa3102f3e00000000be147b3fc2c5473e000000000000003f0000803f0000803fcdac7b3fcf6e3b3e00000000283b7c3fa3102f3e00000000be147b3fc2c5473e000000000000003f00000000000080bfbe147b3fc2c5473e00000000cdac7b3fcf6e3b3e0000000002737a3f0215543e000000000000003f0000803f0000803fbe147b3fc2c5473e00000000cdac7b3fcf6e3b3e0000000002737a3f0215543e000000000000003f00000000000080bf02737a3f0215543e00000000be147b3fc2c5473e000000009dc7793f135c603e000000000000003f0000803f0000803f02737a3f0215543e00000000be147b3fc2c5473e000000009dc7793f135c603e000000000000003f00000000000080bf9dc7793f135c603e0000000002737a3f0215543e000000009812793f809a6c3e000000000000003f0000803f0000803f9dc7793f135c603e0000000002737a3f0215543e000000009812793f809a6c3e000000000000003f00000000000080bf9812793f809a6c3e000000009dc7793f135c603e00000000f853783fcdcf783e000000000000003f0000803f0000803f9812793f809a6c3e000000009dc7793f135c603e00000000f853783fcdcf783e000000000000003f00000000000080bff853783fcdcf783e000000009812793f809a6c3e00000000c58b773fc17d823e000000000000003f0000803f0000803ff853783fcdcf783e000000009812793f809a6c3e00000000c58b773fc17d823e000000000000003f00000000000080bfc58b773fc17d823e00000000f853783fcdcf783e0000000007ba763f948e883e000000000000003f0000803f0000803fc58b773fc17d823e00000000f853783fcdcf783e0000000007ba763f948e883e000000000000003f00000000000080bf07ba763f948e883e00000000c58b773fc17d823e00000000c6de753f229a8e3e000000000000003f0000803f0000803f07ba763f948e883e00000000c58b773fc17d823e00000000c6de753f229a8e3e000000000000003f00000000000080bfc6de753f229a8e3e0000000007ba763f948e883e000000000bfa743f31a0943e000000000000003f0000803f0000803fc6de753f229a8e3e0000000007ba763f948e883e000000000bfa743f31a0943e000000000000003f00000000000080bf0bfa743f31a0943e00000000c6de753f229a8e3e00000000dd0b743f86a09a3e000000000000003f0000803f0000803f0bfa743f31a0943e00000000c6de753f229a8e3e00000000dd0b743f86a09a3e000000000000003f00000000000080bfdd0b743f86a09a3e000000000bfa743f31a0943e000000004714733fe59aa03e000000000000003f0000803f0000803fdd0b743f86a09a3e000000000bfa743f31a0943e000000004714733fe59aa03e000000000000003f00000000000080bf4714733fe59aa03e00000000dd0b743f86a09a3e000000005213723f138fa63e000000000000003f0000803f0000803f4714733fe59aa03e00000000dd0b743f86a09a3e000000005213723f138fa63e000000000000003f00000000000080bf5213723f138fa63e000000004714733fe59aa03e000000000809713fd47cac3e000000000000003f0000803f0000803f5213723f138fa63e000000004714733fe59aa03e000000000809713fd47cac3e000000000000003f00000000000080bf0809713fd47cac3e000000005213723f138fa63e0000000073f56f3fef63b23e000000000000003f0000803f0000803f0809713fd47cac3e000000005213723f138fa63e0000000073f56f3fef63b23e000000000000003f00000000000080bf73f56f3fef63b23e000000000809713fd47cac3e000000009ed86e3f2a44b83e000000000000003f0000803f0000803f73f56f3fef63b23e000000000809713fd47cac3e000000009ed86e3f2a44b83e000000000000003f00000000000080bf9ed86e3f2a44b83e0000000073f56f3fef63b23e0000000093b26d3f4a1dbe3e000000000000003f0000803f0000803f9ed86e3f2a44b83e0000000073f56f3fef63b23e0000000093b26d3f4a1dbe3e000000000000003f00000000000080bf93b26d3f4a1dbe3e000000009ed86e3f2a44b83e000000005e836c3f16efc33e000000000000003f0000803f0000803f93b26d3f4a1dbe3e000000009ed86e3f2a44b83e000000005e836c3f16efc33e000000000000003f00000000000080bf5e836c3f16efc33e0000000093b26d3f4a1dbe3e000000000c4b6b3f54b9c93e000000000000003f0000803f0000803f5e836c3f16efc33e0000000093b26d3f4a1dbe3e000000000c4b6b3f54b9c93e000000000000003f00000000000080bf0c4b6b3f54b9c93e000000005e836c3f16efc33e00000000a6096a3fcb7bcf3e000000000000003f0000803f0000803f0c4b6b3f54b9c93e000000005e836c3f16efc33e00000000a6096a3fcb7bcf3e000000000000003f00000000000080bfa6096a3fcb7bcf3e000000000c4b6b3f54b9c93e000000003bbf683f4236d53e000000000000003f0000803f0000803fa6096a3fcb7bcf3e000000000c4b6b3f54b9c93e000000003bbf683f4236d53e000000000000003f00000000000080bf3bbf683f4236d53e00000000a6096a3fcb7bcf3e00000000d86b673f80e8da3e000000000000003f0000803f0000803f3bbf683f4236d53e00000000a6096a3fcb7bcf3e00000000d86b673f80e8da3e000000000000003f00000000000080bfd86b673f80e8da3e000000003bbf683f4236d53e00000000880f663f4f92e03e000000000000003f0000803f0000803fd86b673f80e8da3e000000003bbf683f4236d53e00000000880f663f4f92e03e000000000000003f00000000000080bf880f663f4f92e03e00000000d86b673f80e8da3e0000000059aa643f7533e63e000000000000003f0000803f0000803f880f663f4f92e03e00000000d86b673f80e8da3e0000000059aa643f7533e63e000000000000003f00000000000080bf59aa643f7533e63e00000000880f663f4f92e03e000000005a3c633fbbcbeb3e000000000000003f0000803f0000803f59aa643f7533e63e00000000880f663f4f92e03e000000005a3c633fbbcbeb3e000000000000003f00000000000080bf5a3c633fbbcbeb3e0000000059aa643f7533e63e0000000097c5613fea5af13e000000000000003f0000803f0000803f5a3c633fbbcbeb3e0000000059aa643f7533e63e0000000097c5613fea5af13e000000000000003f00000000000080bf97c5613fea5af13e000000005a3c633fbbcbeb3e000000002146603fcae0f63e000000000000003f0000803f0000803f97c5613fea5af13e000000005a3c633fbbcbeb3e000000002146603fcae0f63e000000000000003f00000000000080bf2146603fcae0f63e0000000097c5613fea5af13e0000000005be5e3f285dfc3e000000000000003f0000803f0000803f2146603fcae0f63e0000000097c5613fea5af13e0000000005be5e3f285dfc3e000000000000003f00000000000080bf05be5e3f285dfc3e000000002146603fcae0f63e00000000532d5d3fe4e7003f000000000000003f0000803f0000803f05be5e3f285dfc3e000000002146603fcae0f63e00000000532d5d3fe4e7003f000000000000003f00000000000080bf532d5d3fe4e7003f0000000005be5e3f285dfc3e000000001a945b3f3d9c033f000000000000003f0000803f0000803f532d5d3fe4e7003f0000000005be5e3f285dfc3e000000001a945b3f3d9c033f000000000000003f00000000000080bf1a945b3f3d9c033f00000000532d5d3fe4e7003f000000006af2593f834b063f000000000000003f0000803f0000803f1a945b3f3d9c033f00000000532d5d3fe4e7003f000000006af2593f834b063f000000000000003f00000000000080bf6af2593f834b063f000000001a945b3f3d9c033f000000005348583f9bf5083f000000000000003f0000803f0000803f6af2593f834b063f000000001a945b3f3d9c033f000000005348583f9bf5083f000000000000003f00000000000080bf5348583f9bf5083f000000006af2593f834b063f00000000e595563f6b9a0b3f000000000000003f0000803f0000803f5348583f9bf5083f000000006af2593f834b063f00000000e595563f6b9a0b3f000000000000003f00000000000080bfe595563f6b9a0b3f000000005348583f9bf5083f0000000031db543fda390e3f000000000000003f0000803f0000803fe595563f6b9a0b3f000000005348583f9bf5083f0000000031db543fda390e3f000000000000003f00000000000080bf31db543fda390e3f00000000e595563f6b9a0b3f000000004818533fcdd3103f000000000000003f0000803f0000803f31db543fda390e3f00000000e595563f6b9a0b3f000000004818533fcdd3103f000000000000003f00000000000080bf4818533fcdd3103f0000000031db543fda390e3f000000003d4d513f2b68133f000000000000003f0000803f0000803f4818533fcdd3103f0000000031db543fda390e3f000000003d4d513f2b68133f000000000000003f00000000000080bf3d4d513f2b68133f000000004818533fcdd3103f000000001f7a4f3fdaf6153f000000000000003f0000803f0000803f3d4d513f2b68133f000000004818533fcdd3103f000000001f7a4f3fdaf6153f000000000000003f00000000000080bf1f7a4f3fdaf6153f000000003d4d513f2b68133f00000000029f4d3fc07f183f000000000000003f0000803f0000803f1f7a4f3fdaf6153f000000003d4d513f2b68133f00000000029f4d3fc07f183f000000000000003f00000000000080bf029f4d3fc07f183f000000001f7a4f3fdaf6153f00000000f8bb4b3fc5021b3f000000000000003f0000803f0000803f029f4d3fc07f183f000000001f7a4f3fdaf6153f00000000f8bb4b3fc5021b3f000000000000003f00000000000080bff8bb4b3fc5021b3f00000000029f4d3fc07f183f0000000012d1493fd27f1d3f000000000000003f0000803f0000803ff8bb4b3fc5021b3f00000000029f4d3fc07f183f0000000012d1493fd27f1d3f000000000000003f00000000000080bf12d1493fd27f1d3f00000000f8bb4b3fc5021b3f0000000065de473fcbf61f3f000000000000003f0000803f0000803f12d1493fd27f1d3f00000000f8bb4b3fc5021b3f0000000065de473fcbf61f3f000000000000003f00000000000080bf65de473fcbf61f3f0000000012d1493fd27f1d3f0000000003e4453f9a67223f000000000000003f0000803f0000803f65de473fcbf61f3f0000000012d1493fd27f1d3f0000000003e4453f9a67223f000000000000003f00000000000080bf03e4453f9a67223f0000000065de473fcbf61f3f0000000000e2433f25d2243f000000000000003f0000803f0000803f03e4453f9a67223f0000000065de473fcbf61f3f0000000000e2433f25d2243f000000000000003f00000000000080bf00e2433f25d2243f0000000003e4453f9a67223f0000000070d8413f5636273f000000000000003f0000803f0000803f00e2433f25d2243f0000000003e4453f9a67223f0000000070d8413f5636273f000000000000003f00000000000080bf70d8413f5636273f0000000000e2433f25d2243f0000000067c73f3f1594293f000000000000003f0000803f0000803f70d8413f5636273f0000000000e2433f25d2243f0000000067c73f3f1594293f000000000000003f00000000000080bf67c73f3f1594293f0000000070d8413f5636273f00000000f9ae3d3f4aeb2b3f000000000000003f0000803f0000803f67c73f3f1594293f0000000070d8413f5636273f00000000f9ae3d3f4aeb2b3f000000000000003f00000000000080bff9ae3d3f4aeb2b3f0000000067c73f3f1594293f000000003b8f3b3fde3b2e3f000000000000003f0000803f0000803ff9ae3d3f4aeb2b3f0000000067c73f3f1594293f000000003b8f3b3fde3b2e3f000000000000003f00000000000080bf3b8f3b3fde3b2e3f00000000f9ae3d3f4aeb2b3f000000004268393fbb85303f000000000000003f0000803f0000803f3b8f3b3fde3b2e3f00000000f9ae3d3f4aeb2b3f000000004268393fbb85303f000000000000003f00000000000080bf4268393fbb85303f000000003b8f3b3fde3b2e3f00000000223a373fcac8323f000000000000003f0000803f0000803f4268393fbb85303f000000003b8f3b3fde3b2e3f00000000223a373fcac8323f000000000000003f00000000000080bf223a373fcac8323f000000004268393fbb85303f00000000f304353ff304353f000000000000003f0000803f0000803f223a373fcac8323f000000004268393fbb85303f00000000f304353ff304353f000000000000003f00000000000080bff304353ff304353f00000000223a373fcac8323f00000000c9c8323f233a373f000000000000003f0000803f0000803ff304353ff304353f00000000223a373fcac8323f00000000c9c8323f233a373f000000000000003f00000000000080bfc9c8323f233a373f00000000f304353ff304353f00000000ba85303f4268393f000000000000003f0000803f0000803fc9c8323f233a373f00000000f304353ff304353f00000000ba85303f4268393f000000000000003f00000000000080bfba85303f4268393f00000000c9c8323f233a373f00000000de3b2e3f3b8f3b3f000000000000003f0000803f0000803fba85303f4268393f00000000c9c8323f233a373f00000000de3b2e3f3b8f3b3f000000000000003f00000000000080bfde3b2e3f3b8f3b3f00000000ba85303f4268393f0000000049eb2b3ffaae3d3f000000000000003f0000803f0000803fde3b2e3f3b8f3b3f00000000ba85303f4268393f0000000049eb2b3ffaae3d3f000000000000003f00000000000080bf49eb2b3ffaae3d3f00000000de3b2e3f3b8f3b3f000000001494293f67c73f3f000000000000003f0000803f0000803f49eb2b3ffaae3d3f00000000de3b2e3f3b8f3b3f000000001494293f67c73f3f000000000000003f00000000000080bf1494293f67c73f3f0000000049eb2b3ffaae3d3f000000005536273f71d8413f000000000000003f0000803f0000803f1494293f67c73f3f0000000049eb2b3ffaae3d3f000000005536273f71d8413f000000000000003f00000000000080bf5536273f71d8413f000000001494293f67c73f3f0000000025d2243f01e2433f000000000000003f0000803f0000803f5536273f71d8413f000000001494293f67c73f3f0000000025d2243f01e2433f000000000000003f00000000000080bf25d2243f01e2433f000000005536273f71d8413f000000009967223f03e4453f000000000000003f0000803f0000803f25d2243f01e2433f000000005536273f71d8413f000000009967223f03e4453f000000000000003f00000000000080bf9967223f03e4453f0000000025d2243f01e2433f00000000caf61f3f66de473f000000000000003f0000803f0000803f9967223f03e4453f0000000025d2243f01e2433f00000000caf61f3f66de473f000000000000003f00000000000080bfcaf61f3f66de473f000000009967223f03e4453f00000000d17f1d3f12d1493f000000000000003f0000803f0000803fcaf61f3f66de473f000000009967223f03e4453f00000000d17f1d3f12d1493f000000000000003f00000000000080bfd17f1d3f12d1493f00000000caf61f3f66de473f00000000c5021b3ff8bb4b3f000000000000003f0000803f0000803fd17f1d3f12d1493f00000000caf61f3f66de473f00000000c5021b3ff8bb4b3f000000000000003f00000000000080bfc5021b3ff8bb4b3f00000000d17f1d3f12d1493f00000000c07f183f029f4d3f000000000000003f0000803f0000803fc5021b3ff8bb4b3f00000000d17f1d3f12d1493f00000000c07f183f029f4d3f000000000000003f00000000000080bfc07f183f029f4d3f00000000c5021b3ff8bb4b3f00000000d9f6153f1f7a4f3f000000000000003f0000803f0000803fc07f183f029f4d3f00000000c5021b3ff8bb4b3f00000000d9f6153f1f7a4f3f000000000000003f00000000000080bfd9f6153f1f7a4f3f00000000c07f183f029f4d3f000000002a68133f3d4d513f000000000000003f0000803f0000803fd9f6153f1f7a4f3f00000000c07f183f029f4d3f000000002a68133f3d4d513f000000000000003f00000000000080bf2a68133f3d4d513f00000000d9f6153f1f7a4f3f00000000cdd3103f4918533f000000000000003f0000803f0000803f2a68133f3d4d513f00000000d9f6153f1f7a4f3f00000000cdd3103f4918533f000000000000003f00000000000080bfcdd3103f4918533f000000002a68133f3d4d513f00000000d9390e3f32db543f000000000000003f0000803f0000803fcdd3103f4918533f000000002a68133f3d4d513f00000000d9390e3f32db543f000000000000003f00000000000080bfd9390e3f32db543f00000000cdd3103f4918533f000000006b9a0b3fe595563f000000000000003f0000803f0000803fd9390e3f32db543f00000000cdd3103f4918533f000000006b9a0b3fe595563f000000000000003f00000000000080bf6b9a0b3fe595563f00000000d9390e3f32db543f000000009bf5083f5348583f000000000000003f0000803f0000803f6b9a0b3fe595563f00000000d9390e3f32db543f000000009bf5083f5348583f000000000000003f00000000000080bf9bf5083f5348583f000000006b9a0b3fe595563f00000000824b063f6af2593f000000000000003f0000803f0000803f9bf5083f5348583f000000006b9a0b3fe595563f00000000824b063f6af2593f000000000000003f00000000000080bf824b063f6af2593f000000009bf5083f5348583f000000003c9c033f1b945b3f000000000000003f0000803f0000803f824b063f6af2593f000000009bf5083f5348583f000000003c9c033f1b945b3f000000000000003f00000000000080bf3c9c033f1b945b3f00000000824b063f6af2593f00000000e5e7003f532d5d3f000000000000003f0000803f0000803f3c9c033f1b945b3f00000000824b063f6af2593f00000000e5e7003f532d5d3f000000000000003f00000000000080bfe5e7003f532d5d3f000000003c9c033f1b945b3f00000000275dfc3e05be5e3f000000000000003f0000803f0000803fe5e7003f532d5d3f000000003c9c033f1b945b3f00000000275dfc3e05be5e3f000000000000003f00000000000080bf275dfc3e05be5e3f00000000e5e7003f532d5d3f00000000c9e0f63e2246603f000000000000003f0000803f0000803f275dfc3e05be5e3f00000000e5e7003f532d5d3f00000000c9e0f63e2246603f000000000000003f00000000000080bfc9e0f63e2246603f00000000275dfc3e05be5e3f00000000e75af13e98c5613f000000000000003f0000803f0000803fc9e0f63e2246603f00000000275dfc3e05be5e3f00000000e75af13e98c5613f000000000000003f00000000000080bfe75af13e98c5613f00000000c9e0f63e2246603f00000000bbcbeb3e5a3c633f000000000000003f0000803f0000803fe75af13e98c5613f00000000c9e0f63e2246603f00000000bbcbeb3e5a3c633f000000000000003f00000000000080bfbbcbeb3e5a3c633f00000000e75af13e98c5613f000000007433e63e59aa643f000000000000003f0000803f0000803fbbcbeb3e5a3c633f00000000e75af13e98c5613f000000007433e63e59aa643f000000000000003f00000000000080bf7433e63e59aa643f00000000bbcbeb3e5a3c633f000000004d92e03e880f663f000000000000003f0000803f0000803f7433e63e59aa643f00000000bbcbeb3e5a3c633f000000004d92e03e880f663f000000000000003f00000000000080bf4d92e03e880f663f000000007433e63e59aa643f0000000081e8da3ed86b673f000000000000003f0000803f0000803f4d92e03e880f663f000000007433e63e59aa643f0000000081e8da3ed86b673f000000000000003f00000000000080bf81e8da3ed86b673f000000004d92e03e880f663f000000004136d53e3cbf683f000000000000003f0000803f0000803f81e8da3ed86b673f000000004d92e03e880f663f000000004136d53e3cbf683f000000000000003f00000000000080bf4136d53e3cbf683f0000000081e8da3ed86b673f00000000c97bcf3ea7096a3f000000000000003f0000803f0000803f4136d53e3cbf683f0000000081e8da3ed86b673f00000000c97bcf3ea7096a3f000000000000003f00000000000080bfc97bcf3ea7096a3f000000004136d53e3cbf683f0000000050b9c93e0c4b6b3f000000000000003f0000803f0000803fc97bcf3ea7096a3f000000004136d53e3cbf683f0000000050b9c93e0c4b6b3f000000000000003f00000000000080bf50b9c93e0c4b6b3f00000000c97bcf3ea7096a3f0000000015efc33e5e836c3f000000000000003f0000803f0000803f50b9c93e0c4b6b3f00000000c97bcf3ea7096a3f0000000015efc33e5e836c3f000000000000003f00000000000080bf15efc33e5e836c3f0000000050b9c93e0c4b6b3f00000000481dbe3e93b26d3f000000000000003f0000803f0000803f15efc33e5e836c3f0000000050b9c93e0c4b6b3f00000000481dbe3e93b26d3f000000000000003f00000000000080bf481dbe3e93b26d3f0000000015efc33e5e836c3f000000002744b83e9ed86e3f000000000000003f0000803f0000803f481dbe3e93b26d3f0000000015efc33e5e836c3f000000002744b83e9ed86e3f000000000000003f00000000000080bf2744b83e9ed86e3f00000000481dbe3e93b26d3f00000000ef63b23e73f56f3f000000000000003f0000803f0000803f2744b83e9ed86e3f00000000481dbe3e93b26d3f00000000ef63b23e73f56f3f000000000000003f00000000000080bfef63b23e73f56f3f000000002744b83e9ed86e3f00000000d37cac3e0809713f000000000000003f0000803f0000803fef63b23e73f56f3f000000002744b83e9ed86e3f00000000d37cac3e0809713f000000000000003f00000000000080bfd37cac3e0809713f00000000ef63b23e73f56f3f00000000108fa63e5313723f000000000000003f0000803f0000803fd37cac3e0809713f00000000ef63b23e73f56f3f00000000108fa63e5313723f000000000000003f00000000000080bf108fa63e5313723f00000000d37cac3e0809713f00000000e29aa03e4814733f000000000000003f0000803f0000803f108fa63e5313723f00000000d37cac3e0809713f00000000e29aa03e4814733f000000000000003f00000000000080bfe29aa03e4814733f00000000108fa63e5313723f0000000086a09a3edd0b743f000000000000003f0000803f0000803fe29aa03e4814733f00000000108fa63e5313723f0000000086a09a3edd0b743f000000000000003f00000000000080bf86a09a3edd0b743f00000000e29aa03e4814733f0000000030a0943e0bfa743f000000000000003f0000803f0000803f86a09a3edd0b743f00000000e29aa03e4814733f0000000030a0943e0bfa743f000000000000003f00000000000080bf30a0943e0bfa743f0000000086a09a3edd0b743f000000001f9a8e3ec7de753f000000000000003f0000803f0000803f30a0943e0bfa743f0000000086a09a3edd0b743f000000001f9a8e3ec7de753f000000000000003f00000000000080bf1f9a8e3ec7de753f0000000030a0943e0bfa743f00000000938e883e07ba763f000000000000003f0000803f0000803f1f9a8e3ec7de753f0000000030a0943e0bfa743f00000000938e883e07ba763f000000000000003f00000000000080bf938e883e07ba763f000000001f9a8e3ec7de753f00000000c07d823ec58b773f000000000000003f0000803f0000803f938e883e07ba763f000000001f9a8e3ec7de753f00000000c07d823ec58b773f000000000000003f00000000000080bfc07d823ec58b773f00000000938e883e07ba763f00000000c8cf783ef853783f000000000000003f0000803f0000803fc07d823ec58b773f00000000938e883e07ba763f00000000c8cf783ef853783f000000000000003f00000000000080bfc8cf783ef853783f00000000c07d823ec58b773f00000000819a6c3e9812793f000000000000003f0000803f0000803fc8cf783ef853783f00000000c07d823ec58b773f00000000819a6c3e9812793f000000000000003f00000000000080bf819a6c3e9812793f00000000c8cf783ef853783f00000000125c603e9dc7793f000000000000003f0000803f0000803f819a6c3e9812793f00000000c8cf783ef853783f00000000125c603e9dc7793f000000000000003f00000000000080bf125c603e9dc7793f00000000819a6c3e9812793f00000000fe14543e02737a3f000000000000003f0000803f0000803f125c603e9dc7793f00000000819a6c3e9812793f00000000fe14543e02737a3f000000000000003f00000000000080bffe14543e02737a3f00000000125c603e9dc7793f00000000bcc5473ebf147b3f000000000000003f0000803f0000803ffe14543e02737a3f00000000125c603e9dc7793f00000000bcc5473ebf147b3f000000000000003f00000000000080bfbcc5473ebf147b3f00000000fe14543e02737a3f00000000cf6e3b3ecdac7b3f000000000000003f0000803f0000803fbcc5473ebf147b3f00000000fe14543e02737a3f00000000cf6e3b3ecdac7b3f000000000000003f00000000000080bfcf6e3b3ecdac7b3f00000000bcc5473ebf147b3f00000000a0102f3e283b7c3f000000000000003f0000803f0000803fcf6e3b3ecdac7b3f00000000bcc5473ebf147b3f00000000a0102f3e283b7c3f000000000000003f00000000000080bfa0102f3e283b7c3f00000000cf6e3b3ecdac7b3f00000000b1ab223ec9bf7c3f000000000000003f0000803f0000803fa0102f3e283b7c3f00000000cf6e3b3ecdac7b3f00000000b1ab223ec9bf7c3f000000000000003f00000000000080bfb1ab223ec9bf7c3f00000000a0102f3e283b7c3f000000008540163eac3a7d3f000000000000003f0000803f0000803fb1ab223ec9bf7c3f00000000a0102f3e283b7c3f000000008540163eac3a7d3f000000000000003f00000000000080bf8540163eac3a7d3f00000000b1ab223ec9bf7c3f0000000085cf093eccab7d3f000000000000003f0000803f0000803f8540163eac3a7d3f00000000b1ab223ec9bf7c3f0000000085cf093eccab7d3f000000000000003f00000000000080bf85cf093eccab7d3f000000008540163eac3a7d3f000000006cb2fa3d24137e3f000000000000003f0000803f0000803f85cf093eccab7d3f000000008540163eac3a7d3f000000006cb2fa3d24137e3f000000000000003f00000000000080bf6cb2fa3d24137e3f0000000085cf093eccab7d3f0000000022bce13db0707e3f000000000000003f0000803f0000803f6cb2fa3d24137e3f0000000085cf093eccab7d3f0000000022bce13db0707e3f000000000000003f00000000000080bf22bce13db0707e3f000000006cb2fa3d24137e3f0000000035bdc83d6dc47e3f000000000000003f0000803f0000803f22bce13db0707e3f000000006cb2fa3d24137e3f0000000035bdc83d6dc47e3f000000000000003f00000000000080bf35bdc83d6dc47e3f0000000022bce13db0707e3f000000007bb6af3d580e7f3f000000000000003f0000803f0000803f35bdc83d6dc47e3f0000000022bce13db0707e3f000000007bb6af3d580e7f3f000000000000003f00000000000080bf7bb6af3d580e7f3f0000000035bdc83d6dc47e3f00000000fba8963d6d4e7f3f000000000000003f0000803f0000803f7bb6af3d580e7f3f0000000035bdc83d6dc47e3f00000000fba8963d6d4e7f3f000000000000003f00000000000080bffba8963d6d4e7f3f000000007bb6af3d580e7f3f00000000772b7b3dab847f3f000000000000003f0000803f0000803ffba8963d6d4e7f3f000000007bb6af3d580e7f3f00000000772b7b3dab847f3f000000000000003f00000000000080bf772b7b3dab847f3f00000000fba8963d6d4e7f3f0000000029fb483d0fb17f3f000000000000003f0000803f0000803f772b7b3dab847f3f00000000fba8963d6d4e7f3f0000000029fb483d0fb17f3f000000000000003f00000000000080bf29fb483d0fb17f3f00000000772b7b3dab847f3f000000001cc3163d98d37f3f000000000000003f0000803f0000803f29fb483d0fb17f3f00000000772b7b3dab847f3f000000001cc3163d98d37f3f000000000000003f00000000000080bf1cc3163d98d37f3f0000000029fb483d0fb17f3f000000007e0ac93c43ec7f3f000000000000003f0000803f0000803f1cc3163d98d37f3f0000000029fb483d0fb17f3f000000007e0ac93c43ec7f3f000000000000003f00000000000080bf7e0ac93c43ec7f3f000000001cc3163d98d37f3f00000000860e493c11fb7f3f000000000000003f0000803f0000803f7e0ac93c43ec7f3f000000001cc3163d98d37f3f00000000860e493c11fb7f3f000000000000003f00000000000080bf860e493c11fb7f3f000000007e0ac93c43ec7f3f000000002ebd3bb30000803f000000000000003f0000803f0000803f860e493c11fb7f3f000000007e0ac93c43ec7f3f000000002ebd3bb30000803f000000000000003f00000000000080bf2ebd3bb30000803f00000000860e493c11fb7f3f00000000e40e49bc11fb7f3f000000000000003f0000803f0000803f2ebd3bb30000803f00000000860e493c11fb7f3f00000000e40e49bc11fb7f3f000000000000003f00000000000080bfe40e49bc11fb7f3f000000002ebd3bb30000803f00000000ad0ac9bc43ec7f3f000000000000003f0000803f0000803fe40e49bc11fb7f3f000000002ebd3bb30000803f00000000ad0ac9bc43ec7f3f000000000000003f00000000000080bfad0ac9bc43ec7f3f00000000e40e49bc11fb7f3f0000000033c316bd97d37f3f000000000000003f0000803f0000803fad0ac9bc43ec7f3f00000000e40e49bc11fb7f3f0000000033c316bd97d37f3f000000000000003f00000000000080bf33c316bd97d37f3f00000000ad0ac9bc43ec7f3f0000000041fb48bd0fb17f3f000000000000003f0000803f0000803f33c316bd97d37f3f00000000ad0ac9bc43ec7f3f0000000041fb48bd0fb17f3f000000000000003f00000000000080bf41fb48bd0fb17f3f0000000033c316bd97d37f3f000000008e2b7bbdab847f3f000000000000003f0000803f0000803f41fb48bd0fb17f3f0000000033c316bd97d37f3f000000008e2b7bbdab847f3f000000000000003f00000000000080bf8e2b7bbdab847f3f0000000041fb48bd0fb17f3f0000000006a996bd6d4e7f3f000000000000003f0000803f0000803f8e2b7bbdab847f3f0000000041fb48bd0fb17f3f0000000006a996bd6d4e7f3f000000000000003f00000000000080bf06a996bd6d4e7f3f000000008e2b7bbdab847f3f0000000087b6afbd580e7f3f000000000000003f0000803f0000803f06a996bd6d4e7f3f000000008e2b7bbdab847f3f0000000087b6afbd580e7f3f000000000000003f00000000000080bf87b6afbd580e7f3f0000000006a996bd6d4e7f3f0000000041bdc8bd6dc47e3f000000000000003f0000803f0000803f87b6afbd580e7f3f0000000006a996bd6d4e7f3f0000000041bdc8bd6dc47e3f000000000000003f00000000000080bf41bdc8bd6dc47e3f0000000087b6afbd580e7f3f000000002ebce1bdb0707e3f000000000000003f0000803f0000803f41bdc8bd6dc47e3f0000000087b6afbd580e7f3f000000002ebce1bdb0707e3f000000000000003f00000000000080bf2ebce1bdb0707e3f0000000041bdc8bd6dc47e3f0000000077b2fabd23137e3f000000000000003f0000803f0000803f2ebce1bdb0707e3f0000000041bdc8bd6dc47e3f0000000077b2fabd23137e3f000000000000003f00000000000080bf77b2fabd23137e3f000000002ebce1bdb0707e3f000000008bcf09becbab7d3f000000000000003f0000803f0000803f77b2fabd23137e3f000000002ebce1bdb0707e3f000000008bcf09becbab7d3f000000000000003f00000000000080bf8bcf09becbab7d3f0000000077b2fabd23137e3f000000008a4016beac3a7d3f000000000000003f0000803f0000803f8bcf09becbab7d3f0000000077b2fabd23137e3f000000008a4016beac3a7d3f000000000000003f00000000000080bf8a4016beac3a7d3f000000008bcf09becbab7d3f00000000b7ab22bec9bf7c3f000000000000003f0000803f0000803f8a4016beac3a7d3f000000008bcf09becbab7d3f00000000b7ab22bec9bf7c3f000000000000003f00000000000080bfb7ab22bec9bf7c3f000000008a4016beac3a7d3f00000000a6102fbe283b7c3f000000000000003f0000803f0000803fb7ab22bec9bf7c3f000000008a4016beac3a7d3f00000000a6102fbe283b7c3f000000000000003f00000000000080bfa6102fbe283b7c3f00000000b7ab22bec9bf7c3f00000000d56e3bbecdac7b3f000000000000003f0000803f0000803fa6102fbe283b7c3f00000000b7ab22bec9bf7c3f00000000d56e3bbecdac7b3f000000000000003f00000000000080bfd56e3bbecdac7b3f00000000a6102fbe283b7c3f00000000c2c547bebe147b3f000000000000003f0000803f0000803fd56e3bbecdac7b3f00000000a6102fbe283b7c3f00000000c2c547bebe147b3f000000000000003f00000000000080bfc2c547bebe147b3f00000000d56e3bbecdac7b3f00000000041554be02737a3f000000000000003f0000803f0000803fc2c547bebe147b3f00000000d56e3bbecdac7b3f00000000041554be02737a3f000000000000003f00000000000080bf041554be02737a3f00000000c2c547bebe147b3f00000000185c60be9dc7793f000000000000003f0000803f0000803f041554be02737a3f00000000c2c547bebe147b3f00000000185c60be9dc7793f000000000000003f00000000000080bf185c60be9dc7793f00000000041554be02737a3f00000000869a6cbe9712793f000000000000003f0000803f0000803f185c60be9dc7793f00000000041554be02737a3f00000000869a6cbe9712793f000000000000003f00000000000080bf869a6cbe9712793f00000000185c60be9dc7793f00000000cdcf78bef853783f000000000000003f0000803f0000803f869a6cbe9712793f00000000185c60be9dc7793f00000000cdcf78bef853783f000000000000003f00000000000080bfcdcf78bef853783f00000000869a6cbe9712793f00000000c27d82bec58b773f000000000000003f0000803f0000803fcdcf78bef853783f00000000869a6cbe9712793f00000000c27d82bec58b773f000000000000003f00000000000080bfc27d82bec58b773f00000000cdcf78bef853783f00000000968e88be07ba763f000000000000003f0000803f0000803fc27d82bec58b773f00000000cdcf78bef853783f00000000968e88be07ba763f000000000000003f00000000000080bf968e88be07ba763f00000000c27d82bec58b773f00000000229a8ebec6de753f000000000000003f0000803f0000803f968e88be07ba763f00000000c27d82bec58b773f00000000229a8ebec6de753f000000000000003f00000000000080bf229a8ebec6de753f00000000968e88be07ba763f0000000033a094be0afa743f000000000000003f0000803f0000803f229a8ebec6de753f00000000968e88be07ba763f0000000033a094be0afa743f000000000000003f00000000000080bf33a094be0afa743f00000000229a8ebec6de753f0000000089a09abedd0b743f000000000000003f0000803f0000803f33a094be0afa743f00000000229a8ebec6de753f0000000089a09abedd0b743f000000000000003f00000000000080bf89a09abedd0b743f0000000033a094be0afa743f00000000e49aa0be4714733f000000000000003f0000803f0000803f89a09abedd0b743f0000000033a094be0afa743f00000000e49aa0be4714733f000000000000003f00000000000080bfe49aa0be4714733f0000000089a09abedd0b743f00000000138fa6be5213723f000000000000003f0000803f0000803fe49aa0be4714733f0000000089a09abedd0b743f00000000138fa6be5213723f000000000000003f00000000000080bf138fa6be5213723f00000000e49aa0be4714733f00000000d67cacbe0809713f000000000000003f0000803f0000803f138fa6be5213723f00000000e49aa0be4714733f00000000d67cacbe0809713f000000000000003f00000000000080bfd67cacbe0809713f00000000138fa6be5213723f00000000f263b2be72f56f3f000000000000003f0000803f0000803fd67cacbe0809713f00000000138fa6be5213723f00000000f263b2be72f56f3f000000000000003f00000000000080bff263b2be72f56f3f00000000d67cacbe0809713f000000002a44b8be9ed86e3f000000000000003f0000803f0000803ff263b2be72f56f3f00000000d67cacbe0809713f000000002a44b8be9ed86e3f000000000000003f00000000000080bf2a44b8be9ed86e3f00000000f263b2be72f56f3f000000004b1dbebe93b26d3f000000000000003f0000803f0000803f2a44b8be9ed86e3f00000000f263b2be72f56f3f000000004b1dbebe93b26d3f000000000000003f00000000000080bf4b1dbebe93b26d3f000000002a44b8be9ed86e3f0000000018efc3be5e836c3f000000000000003f0000803f0000803f4b1dbebe93b26d3f000000002a44b8be9ed86e3f0000000018efc3be5e836c3f000000000000003f00000000000080bf18efc3be5e836c3f000000004b1dbebe93b26d3f0000000053b9c9be0c4b6b3f000000000000003f0000803f0000803f18efc3be5e836c3f000000004b1dbebe93b26d3f0000000053b9c9be0c4b6b3f000000000000003f00000000000080bf53b9c9be0c4b6b3f0000000018efc3be5e836c3f00000000cb7bcfbea6096a3f000000000000003f0000803f0000803f53b9c9be0c4b6b3f0000000018efc3be5e836c3f00000000cb7bcfbea6096a3f000000000000003f00000000000080bfcb7bcfbea6096a3f0000000053b9c9be0c4b6b3f000000004036d5be3cbf683f000000000000003f0000803f0000803fcb7bcfbea6096a3f0000000053b9c9be0c4b6b3f000000004036d5be3cbf683f000000000000003f00000000000080bf4036d5be3cbf683f00000000cb7bcfbea6096a3f0000000080e8dabed86b673f000000000000003f0000803f0000803f4036d5be3cbf683f00000000cb7bcfbea6096a3f0000000080e8dabed86b673f000000000000003f00000000000080bf80e8dabed86b673f000000004036d5be3cbf683f000000004f92e0be870f663f000000000000003f0000803f0000803f80e8dabed86b673f000000004036d5be3cbf683f000000004f92e0be870f663f000000000000003f00000000000080bf4f92e0be870f663f0000000080e8dabed86b673f000000007633e6be59aa643f000000000000003f0000803f0000803f4f92e0be870f663f0000000080e8dabed86b673f000000007633e6be59aa643f000000000000003f00000000000080bf7633e6be59aa643f000000004f92e0be870f663f00000000becbebbe593c633f000000000000003f0000803f0000803f7633e6be59aa643f000000004f92e0be870f663f00000000becbebbe593c633f000000000000003f00000000000080bfbecbebbe593c633f000000007633e6be59aa643f00000000ed5af1be97c5613f000000000000003f0000803f0000803fbecbebbe593c633f000000007633e6be59aa643f00000000ed5af1be97c5613f000000000000003f00000000000080bfed5af1be97c5613f00000000becbebbe593c633f00000000cfe0f6be2046603f000000000000003f0000803f0000803fed5af1be97c5613f00000000becbebbe593c633f00000000cfe0f6be2046603f000000000000003f00000000000080bfcfe0f6be2046603f00000000ed5af1be97c5613f00000000265dfcbe06be5e3f000000000000003f0000803f0000803fcfe0f6be2046603f00000000ed5af1be97c5613f00000000265dfcbe06be5e3f000000000000003f00000000000080bf265dfcbe06be5e3f00000000cfe0f6be2046603f00000000e4e700bf532d5d3f000000000000003f0000803f0000803f265dfcbe06be5e3f00000000cfe0f6be2046603f00000000e4e700bf532d5d3f000000000000003f00000000000080bfe4e700bf532d5d3f00000000265dfcbe06be5e3f000000003d9c03bf1a945b3f000000000000003f0000803f0000803fe4e700bf532d5d3f00000000265dfcbe06be5e3f000000003d9c03bf1a945b3f000000000000003f00000000000080bf3d9c03bf1a945b3f00000000e4e700bf532d5d3f00000000834b06bf69f2593f000000000000003f0000803f0000803f3d9c03bf1a945b3f00000000e4e700bf532d5d3f00000000834b06bf69f2593f000000000000003f00000000000080bf834b06bf69f2593f000000003d9c03bf1a945b3f000000009cf508bf5248583f000000000000003f0000803f0000803f834b06bf69f2593f000000003d9c03bf1a945b3f000000009cf508bf5248583f000000000000003f00000000000080bf9cf508bf5248583f00000000834b06bf69f2593f000000006d9a0bbfe495563f000000000000003f0000803f0000803f9cf508bf5248583f00000000834b06bf69f2593f000000006d9a0bbfe495563f000000000000003f00000000000080bf6d9a0bbfe495563f000000009cf508bf5248583f00000000dc390ebf30db543f000000000000003f0000803f0000803f6d9a0bbfe495563f000000009cf508bf5248583f00000000dc390ebf30db543f000000000000003f00000000000080bfdc390ebf30db543f000000006d9a0bbfe495563f00000000ccd310bf4918533f000000000000003f0000803f0000803fdc390ebf30db543f000000006d9a0bbfe495563f00000000ccd310bf4918533f000000000000003f00000000000080bfccd310bf4918533f00000000dc390ebf30db543f000000002a6813bf3d4d513f000000000000003f0000803f0000803fccd310bf4918533f00000000dc390ebf30db543f000000002a6813bf3d4d513f000000000000003f00000000000080bf2a6813bf3d4d513f00000000ccd310bf4918533f00000000daf615bf1f7a4f3f000000000000003f0000803f0000803f2a6813bf3d4d513f00000000ccd310bf4918533f00000000daf615bf1f7a4f3f000000000000003f00000000000080bfdaf615bf1f7a4f3f000000002a6813bf3d4d513f00000000c17f18bf029f4d3f000000000000003f0000803f0000803fdaf615bf1f7a4f3f000000002a6813bf3d4d513f00000000c17f18bf029f4d3f000000000000003f00000000000080bfc17f18bf029f4d3f00000000daf615bf1f7a4f3f00000000c7021bbff7bb4b3f000000000000003f0000803f0000803fc17f18bf029f4d3f00000000daf615bf1f7a4f3f00000000c7021bbff7bb4b3f000000000000003f00000000000080bfc7021bbff7bb4b3f00000000c17f18bf029f4d3f00000000d37f1dbf11d1493f000000000000003f0000803f0000803fc7021bbff7bb4b3f00000000c17f18bf029f4d3f00000000d37f1dbf11d1493f000000000000003f00000000000080bfd37f1dbf11d1493f00000000c7021bbff7bb4b3f00000000cdf61fbf63de473f000000000000003f0000803f0000803fd37f1dbf11d1493f00000000c7021bbff7bb4b3f00000000cdf61fbf63de473f000000000000003f00000000000080bfcdf61fbf63de473f00000000d37f1dbf11d1493f00000000996722bf04e4453f000000000000003f0000803f0000803fcdf61fbf63de473f00000000d37f1dbf11d1493f00000000996722bf04e4453f000000000000003f00000000000080bf996722bf04e4453f00000000cdf61fbf63de473f0000000025d224bf00e2433f000000000000003f0000803f0000803f996722bf04e4453f00000000cdf61fbf63de473f0000000025d224bf00e2433f000000000000003f00000000000080bf25d224bf00e2433f00000000996722bf04e4453f00000000563627bf70d8413f000000000000003f0000803f0000803f25d224bf00e2433f00000000996722bf04e4453f00000000563627bf70d8413f000000000000003f00000000000080bf563627bf70d8413f0000000025d224bf00e2433f00000000159429bf66c73f3f000000000000003f0000803f0000803f563627bf70d8413f0000000025d224bf00e2433f00000000159429bf66c73f3f000000000000003f00000000000080bf159429bf66c73f3f00000000563627bf70d8413f000000004beb2bbff8ae3d3f000000000000003f0000803f0000803f159429bf66c73f3f00000000563627bf70d8413f000000004beb2bbff8ae3d3f000000000000003f00000000000080bf4beb2bbff8ae3d3f00000000159429bf66c73f3f00000000e03b2ebf398f3b3f000000000000003f0000803f0000803f4beb2bbff8ae3d3f00000000159429bf66c73f3f00000000e03b2ebf398f3b3f000000000000003f00000000000080bfe03b2ebf398f3b3f000000004beb2bbff8ae3d3f00000000bd8530bf4068393f000000000000003f0000803f0000803fe03b2ebf398f3b3f000000004beb2bbff8ae3d3f00000000bd8530bf4068393f000000000000003f00000000000080bfbd8530bf4068393f00000000e03b2ebf398f3b3f00000000c9c832bf233a373f000000000000003f0000803f0000803fbd8530bf4068393f00000000e03b2ebf398f3b3f00000000c9c832bf233a373f000000000000003f00000000000080bfc9c832bf233a373f00000000bd8530bf4068393f00000000f30435bff304353f000000000000003f0000803f0000803fc9c832bf233a373f00000000bd8530bf4068393f00000000f30435bff304353f000000000000003f00000000000080bff30435bff304353f00000000c9c832bf233a373f00000000233a37bfc9c8323f000000000000003f0000803f0000803ff30435bff304353f00000000c9c832bf233a373f00000000233a37bfc9c8323f000000000000003f00000000000080bf233a37bfc9c8323f00000000f30435bff304353f00000000436839bfba85303f000000000000003f0000803f0000803f233a37bfc9c8323f00000000f30435bff304353f00000000436839bfba85303f000000000000003f00000000000080bf436839bfba85303f00000000233a37bfc9c8323f000000003c8f3bbfdd3b2e3f000000000000003f0000803f0000803f436839bfba85303f00000000233a37bfc9c8323f000000003c8f3bbfdd3b2e3f000000000000003f00000000000080bf3c8f3bbfdd3b2e3f00000000436839bfba85303f00000000fbae3dbf48eb2b3f000000000000003f0000803f0000803f3c8f3bbfdd3b2e3f00000000436839bfba85303f00000000fbae3dbf48eb2b3f000000000000003f00000000000080bffbae3dbf48eb2b3f000000003c8f3bbfdd3b2e3f0000000069c73fbf1294293f000000000000003f0000803f0000803ffbae3dbf48eb2b3f000000003c8f3bbfdd3b2e3f0000000069c73fbf1294293f000000000000003f00000000000080bf69c73fbf1294293f00000000fbae3dbf48eb2b3f0000000070d841bf5636273f000000000000003f0000803f0000803f69c73fbf1294293f00000000fbae3dbf48eb2b3f0000000070d841bf5636273f000000000000003f00000000000080bf70d841bf5636273f0000000069c73fbf1294293f0000000001e243bf25d2243f000000000000003f0000803f0000803f70d841bf5636273f0000000069c73fbf1294293f0000000001e243bf25d2243f000000000000003f00000000000080bf01e243bf25d2243f0000000070d841bf5636273f0000000004e445bf9967223f000000000000003f0000803f0000803f01e243bf25d2243f0000000070d841bf5636273f0000000004e445bf9967223f000000000000003f00000000000080bf04e445bf9967223f0000000001e243bf25d2243f0000000066de47bfcaf61f3f000000000000003f0000803f0000803f04e445bf9967223f0000000001e243bf25d2243f0000000066de47bfcaf61f3f000000000000003f00000000000080bf66de47bfcaf61f3f0000000004e445bf9967223f0000000013d149bfd07f1d3f000000000000003f0000803f0000803f66de47bfcaf61f3f0000000004e445bf9967223f0000000013d149bfd07f1d3f000000000000003f00000000000080bf13d149bfd07f1d3f0000000066de47bfcaf61f3f00000000f9bb4bbfc4021b3f000000000000003f0000803f0000803f13d149bfd07f1d3f0000000066de47bfcaf61f3f00000000f9bb4bbfc4021b3f000000000000003f00000000000080bff9bb4bbfc4021b3f0000000013d149bfd07f1d3f00000000049f4dbfbd7f183f000000000000003f0000803f0000803ff9bb4bbfc4021b3f0000000013d149bfd07f1d3f00000000049f4dbfbd7f183f000000000000003f00000000000080bf049f4dbfbd7f183f00000000f9bb4bbfc4021b3f000000001f7a4fbfd9f6153f000000000000003f0000803f0000803f049f4dbfbd7f183f00000000f9bb4bbfc4021b3f000000001f7a4fbfd9f6153f000000000000003f00000000000080bf1f7a4fbfd9f6153f00000000049f4dbfbd7f183f000000003d4d51bf2a68133f000000000000003f0000803f0000803f1f7a4fbfd9f6153f00000000049f4dbfbd7f183f000000003d4d51bf2a68133f000000000000003f00000000000080bf3d4d51bf2a68133f000000001f7a4fbfd9f6153f00000000491853bfccd3103f000000000000003f0000803f0000803f3d4d51bf2a68133f000000001f7a4fbfd9f6153f00000000491853bfccd3103f000000000000003f00000000000080bf491853bfccd3103f000000003d4d51bf2a68133f0000000032db54bfd9390e3f000000000000003f0000803f0000803f491853bfccd3103f000000003d4d51bf2a68133f0000000032db54bfd9390e3f000000000000003f00000000000080bf32db54bfd9390e3f00000000491853bfccd3103f00000000e69556bf699a0b3f000000000000003f0000803f0000803f32db54bfd9390e3f00000000491853bfccd3103f00000000e69556bf699a0b3f000000000000003f00000000000080bfe69556bf699a0b3f0000000032db54bfd9390e3f00000000544858bf98f5083f000000000000003f0000803f0000803fe69556bf699a0b3f0000000032db54bfd9390e3f00000000544858bf98f5083f000000000000003f00000000000080bf544858bf98f5083f00000000e69556bf699a0b3f000000006cf259bf804b063f000000000000003f0000803f0000803f544858bf98f5083f00000000e69556bf699a0b3f000000006cf259bf804b063f000000000000003f00000000000080bf6cf259bf804b063f00000000544858bf98f5083f000000001a945bbf3d9c033f000000000000003f0000803f0000803f6cf259bf804b063f00000000544858bf98f5083f000000001a945bbf3d9c033f000000000000003f00000000000080bf1a945bbf3d9c033f000000006cf259bf804b063f00000000532d5dbfe4e7003f000000000000003f0000803f0000803f1a945bbf3d9c033f000000006cf259bf804b063f00000000532d5dbfe4e7003f000000000000003f00000000000080bf532d5dbfe4e7003f000000001a945bbf3d9c033f0000000006be5ebf255dfc3e000000000000003f0000803f0000803f532d5dbfe4e7003f000000001a945bbf3d9c033f0000000006be5ebf255dfc3e000000000000003f00000000000080bf06be5ebf255dfc3e00000000532d5dbfe4e7003f00000000224660bfc8e0f63e000000000000003f0000803f0000803f06be5ebf255dfc3e00000000532d5dbfe4e7003f00000000224660bfc8e0f63e000000000000003f00000000000080bf224660bfc8e0f63e0000000006be5ebf255dfc3e0000000099c561bfe65af13e000000000000003f0000803f0000803f224660bfc8e0f63e0000000006be5ebf255dfc3e0000000099c561bfe65af13e000000000000003f00000000000080bf99c561bfe65af13e00000000224660bfc8e0f63e000000005b3c63bfb6cbeb3e000000000000003f0000803f0000803f99c561bfe65af13e00000000224660bfc8e0f63e000000005b3c63bfb6cbeb3e000000000000003f00000000000080bf5b3c63bfb6cbeb3e0000000099c561bfe65af13e0000000059aa64bf7633e63e000000000000003f0000803f0000803f5b3c63bfb6cbeb3e0000000099c561bfe65af13e0000000059aa64bf7633e63e000000000000003f00000000000080bf59aa64bf7633e63e000000005b3c63bfb6cbeb3e00000000880f66bf4f92e03e000000000000003f0000803f0000803f59aa64bf7633e63e000000005b3c63bfb6cbeb3e00000000880f66bf4f92e03e000000000000003f00000000000080bf880f66bf4f92e03e0000000059aa64bf7633e63e00000000d86b67bf7fe8da3e000000000000003f0000803f0000803f880f66bf4f92e03e0000000059aa64bf7633e63e00000000d86b67bf7fe8da3e000000000000003f00000000000080bfd86b67bf7fe8da3e00000000880f66bf4f92e03e000000003cbf68bf3f36d53e000000000000003f0000803f0000803fd86b67bf7fe8da3e00000000880f66bf4f92e03e000000003cbf68bf3f36d53e000000000000003f00000000000080bf3cbf68bf3f36d53e00000000d86b67bf7fe8da3e00000000a7096abfc77bcf3e000000000000003f0000803f0000803f3cbf68bf3f36d53e00000000d86b67bf7fe8da3e00000000a7096abfc77bcf3e000000000000003f00000000000080bfa7096abfc77bcf3e000000003cbf68bf3f36d53e000000000c4b6bbf4fb9c93e000000000000003f0000803f0000803fa7096abfc77bcf3e000000003cbf68bf3f36d53e000000000c4b6bbf4fb9c93e000000000000003f00000000000080bf0c4b6bbf4fb9c93e00000000a7096abfc77bcf3e0000000060836cbf10efc33e000000000000003f0000803f0000803f0c4b6bbf4fb9c93e00000000a7096abfc77bcf3e0000000060836cbf10efc33e000000000000003f00000000000080bf60836cbf10efc33e000000000c4b6bbf4fb9c93e0000000093b26dbf4b1dbe3e000000000000003f0000803f0000803f60836cbf10efc33e000000000c4b6bbf4fb9c93e0000000093b26dbf4b1dbe3e000000000000003f00000000000080bf93b26dbf4b1dbe3e0000000060836cbf10efc33e000000009ed86ebf2a44b83e000000000000003f0000803f0000803f93b26dbf4b1dbe3e0000000060836cbf10efc33e000000009ed86ebf2a44b83e000000000000003f00000000000080bf9ed86ebf2a44b83e0000000093b26dbf4b1dbe3e0000000073f56fbfee63b23e000000000000003f0000803f0000803f9ed86ebf2a44b83e0000000093b26dbf4b1dbe3e0000000073f56fbfee63b23e000000000000003f00000000000080bf73f56fbfee63b23e000000009ed86ebf2a44b83e00000000090971bfd27cac3e000000000000003f0000803f0000803f73f56fbfee63b23e000000009ed86ebf2a44b83e00000000090971bfd27cac3e000000000000003f00000000000080bf090971bfd27cac3e0000000073f56fbfee63b23e00000000531372bf0f8fa63e000000000000003f0000803f0000803f090971bfd27cac3e0000000073f56fbfee63b23e00000000531372bf0f8fa63e000000000000003f00000000000080bf531372bf0f8fa63e00000000090971bfd27cac3e00000000481473bfe09aa03e000000000000003f0000803f0000803f531372bf0f8fa63e00000000090971bfd27cac3e00000000481473bfe09aa03e000000000000003f00000000000080bf481473bfe09aa03e00000000531372bf0f8fa63e00000000de0b74bf81a09a3e000000000000003f0000803f0000803f481473bfe09aa03e00000000531372bf0f8fa63e00000000de0b74bf81a09a3e000000000000003f00000000000080bfde0b74bf81a09a3e00000000481473bfe09aa03e000000000bfa74bf33a0943e000000000000003f0000803f0000803fde0b74bf81a09a3e00000000481473bfe09aa03e000000000bfa74bf33a0943e000000000000003f00000000000080bf0bfa74bf33a0943e00000000de0b74bf81a09a3e00000000c6de75bf229a8e3e000000000000003f0000803f0000803f0bfa74bf33a0943e00000000de0b74bf81a09a3e00000000c6de75bf229a8e3e000000000000003f00000000000080bfc6de75bf229a8e3e000000000bfa74bf33a0943e0000000007ba76bf928e883e000000000000003f0000803f0000803fc6de75bf229a8e3e000000000bfa74bf33a0943e0000000007ba76bf928e883e000000000000003f00000000000080bf07ba76bf928e883e00000000c6de75bf229a8e3e00000000c58b77bfbe7d823e000000000000003f0000803f0000803f07ba76bf928e883e00000000c6de75bf229a8e3e00000000c58b77bfbe7d823e000000000000003f00000000000080bfc58b77bfbe7d823e0000000007ba76bf928e883e00000000f85378bfc5cf783e000000000000003f0000803f0000803fc58b77bfbe7d823e0000000007ba76bf928e883e00000000f85378bfc5cf783e000000000000003f00000000000080bff85378bfc5cf783e00000000c58b77bfbe7d823e00000000981279bf769a6c3e000000000000003f0000803f0000803ff85378bfc5cf783e00000000c58b77bfbe7d823e00000000981279bf769a6c3e000000000000003f00000000000080bf981279bf769a6c3e00000000f85378bfc5cf783e000000009ec779bf085c603e000000000000003f0000803f0000803f981279bf769a6c3e00000000f85378bfc5cf783e000000009ec779bf085c603e000000000000003f00000000000080bf9ec779bf085c603e00000000981279bf769a6c3e0000000002737abf0315543e000000000000003f0000803f0000803f9ec779bf085c603e00000000981279bf769a6c3e0000000002737abf0315543e000000000000003f00000000000080bf02737abf0315543e000000009ec779bf085c603e00000000bf147bbfc1c5473e000000000000003f0000803f0000803f02737abf0315543e000000009ec779bf085c603e00000000bf147bbfc1c5473e000000000000003f00000000000080bfbf147bbfc1c5473e0000000002737abf0315543e00000000cdac7bbfcc6e3b3e000000000000003f0000803f0000803fbf147bbfc1c5473e0000000002737abf0315543e00000000cdac7bbfcc6e3b3e000000000000003f00000000000080bfcdac7bbfcc6e3b3e00000000bf147bbfc1c5473e00000000283b7cbf9d102f3e000000000000003f0000803f0000803fcdac7bbfcc6e3b3e00000000bf147bbfc1c5473e00000000283b7cbf9d102f3e000000000000003f00000000000080bf283b7cbf9d102f3e00000000cdac7bbfcc6e3b3e00000000c9bf7cbfaeab223e000000000000003f0000803f0000803f283b7cbf9d102f3e00000000cdac7bbfcc6e3b3e00000000c9bf7cbfaeab223e000000000000003f00000000000080bfc9bf7cbfaeab223e00000000283b7cbf9d102f3e00000000ac3a7dbf7a40163e000000000000003f0000803f0000803fc9bf7cbfaeab223e00000000283b7cbf9d102f3e00000000ac3a7dbf7a40163e000000000000003f00000000000080bfac3a7dbf7a40163e00000000c9bf7cbfaeab223e00000000ccab7dbf7acf093e000000000000003f0000803f0000803fac3a7dbf7a40163e00000000c9bf7cbfaeab223e00000000ccab7dbf7acf093e000000000000003f00000000000080bfccab7dbf7acf093e00000000ac3a7dbf7a40163e0000000023137ebf76b2fa3d000000000000003f0000803f0000803fccab7dbf7acf093e00000000ac3a7dbf7a40163e0000000023137ebf76b2fa3d000000000000003f00000000000080bf23137ebf76b2fa3d00000000ccab7dbf7acf093e00000000b0707ebf2dbce13d000000000000003f0000803f0000803f23137ebf76b2fa3d00000000ccab7dbf7acf093e00000000b0707ebf2dbce13d000000000000003f00000000000080bfb0707ebf2dbce13d0000000023137ebf76b2fa3d000000006dc47ebf30bdc83d000000000000003f0000803f0000803fb0707ebf2dbce13d0000000023137ebf76b2fa3d000000006dc47ebf30bdc83d000000000000003f00000000000080bf6dc47ebf30bdc83d00000000b0707ebf2dbce13d00000000580e7fbf75b6af3d000000000000003f0000803f0000803f6dc47ebf30bdc83d00000000b0707ebf2dbce13d00000000580e7fbf75b6af3d000000000000003f00000000000080bf580e7fbf75b6af3d000000006dc47ebf30bdc83d000000006e4e7fbff5a8963d000000000000003f0000803f0000803f580e7fbf75b6af3d000000006dc47ebf30bdc83d000000006e4e7fbff5a8963d000000000000003f00000000000080bf6e4e7fbff5a8963d00000000580e7fbf75b6af3d00000000ab847fbf4b2b7b3d000000000000003f0000803f0000803f6e4e7fbff5a8963d00000000580e7fbf75b6af3d00000000ab847fbf4b2b7b3d000000000000003f00000000000080bfab847fbf4b2b7b3d000000006e4e7fbff5a8963d000000000fb17fbffdfa483d000000000000003f0000803f0000803fab847fbf4b2b7b3d000000006e4e7fbff5a8963d000000000fb17fbffdfa483d000000000000003f00000000000080bf0fb17fbffdfa483d00000000ab847fbf4b2b7b3d0000000097d37fbf30c3163d000000000000003f0000803f0000803f0fb17fbffdfa483d00000000ab847fbf4b2b7b3d0000000097d37fbf30c3163d000000000000003f00000000000080bf97d37fbf30c3163d000000000fb17fbffdfa483d0000000043ec7fbfa60ac93c000000000000003f0000803f0000803f97d37fbf30c3163d000000000fb17fbffdfa483d0000000043ec7fbfa60ac93c000000000000003f00000000000080bf43ec7fbfa60ac93c0000000097d37fbf30c3163d0000000011fb7fbf570e493c000000000000003f0000803f0000803f43ec7fbfa60ac93c0000000097d37fbf30c3163d0000000011fb7fbf570e493c000000000000003f00000000000080bf11fb7fbf570e493c0000000043ec7fbfa60ac93c00000000000080bf2ebdbbb3000000000000003f0000803f0000803f11fb7fbf570e493c0000000043ec7fbfa60ac93c00000000000080bf2ebdbbb3000000000000003f00000000000080bf000080bf2ebdbbb30000000011fb7fbf570e493c0000000011fb7fbf130f49bc000000000000003f0000803f0000803f000080bf2ebdbbb30000000011fb7fbf570e493c0000000011fb7fbf130f49bc000000000000003f00000000000080bf11fb7fbf130f49bc00000000000080bf2ebdbbb30000000043ec7fbf040bc9bc000000000000003f0000803f0000803f11fb7fbf130f49bc00000000000080bf2ebdbbb30000000043ec7fbf040bc9bc000000000000003f00000000000080bf43ec7fbf040bc9bc0000000011fb7fbf130f49bc0000000097d37fbf5fc316bd000000000000003f0000803f0000803f43ec7fbf040bc9bc0000000011fb7fbf130f49bc0000000097d37fbf5fc316bd000000000000003f00000000000080bf97d37fbf5fc316bd0000000043ec7fbf040bc9bc000000000fb17fbf2cfb48bd000000000000003f0000803f0000803f97d37fbf5fc316bd0000000043ec7fbf040bc9bc000000000fb17fbf2cfb48bd000000000000003f00000000000080bf0fb17fbf2cfb48bd0000000097d37fbf5fc316bd00000000ab847fbf7a2b7bbd000000000000003f0000803f0000803f0fb17fbf2cfb48bd0000000097d37fbf5fc316bd00000000ab847fbf7a2b7bbd000000000000003f00000000000080bfab847fbf7a2b7bbd000000000fb17fbf2cfb48bd000000006d4e7fbf0ca996bd000000000000003f0000803f0000803fab847fbf7a2b7bbd000000000fb17fbf2cfb48bd000000006d4e7fbf0ca996bd000000000000003f00000000000080bf6d4e7fbf0ca996bd00000000ab847fbf7a2b7bbd00000000580e7fbf8db6afbd000000000000003f0000803f0000803f6d4e7fbf0ca996bd00000000ab847fbf7a2b7bbd00000000580e7fbf8db6afbd000000000000003f00000000000080bf580e7fbf8db6afbd000000006d4e7fbf0ca996bd000000006dc47ebf47bdc8bd000000000000003f0000803f0000803f580e7fbf8db6afbd000000006d4e7fbf0ca996bd000000006dc47ebf47bdc8bd000000000000003f00000000000080bf6dc47ebf47bdc8bd00000000580e7fbf8db6afbd00000000b0707ebf44bce1bd000000000000003f0000803f0000803f6dc47ebf47bdc8bd00000000580e7fbf8db6afbd00000000b0707ebf44bce1bd000000000000003f00000000000080bfb0707ebf44bce1bd000000006dc47ebf47bdc8bd0000000023137ebf8db2fabd000000000000003f0000803f0000803fb0707ebf44bce1bd000000006dc47ebf47bdc8bd0000000023137ebf8db2fabd000000000000003f00000000000080bf23137ebf8db2fabd00000000b0707ebf44bce1bd00000000ccab7dbf86cf09be000000000000003f0000803f0000803f23137ebf8db2fabd00000000b0707ebf44bce1bd00000000ccab7dbf86cf09be000000000000003f00000000000080bfccab7dbf86cf09be0000000023137ebf8db2fabd00000000ac3a7dbf854016be000000000000003f0000803f0000803fccab7dbf86cf09be0000000023137ebf8db2fabd00000000ac3a7dbf854016be000000000000003f00000000000080bfac3a7dbf854016be00000000ccab7dbf86cf09be00000000c9bf7cbfbaab22be000000000000003f0000803f0000803fac3a7dbf854016be00000000ccab7dbf86cf09be00000000c9bf7cbfbaab22be000000000000003f00000000000080bfc9bf7cbfbaab22be00000000ac3a7dbf854016be00000000283b7cbfa9102fbe000000000000003f0000803f0000803fc9bf7cbfbaab22be00000000ac3a7dbf854016be00000000283b7cbfa9102fbe000000000000003f00000000000080bf283b7cbfa9102fbe00000000c9bf7cbfbaab22be00000000cdac7bbfd86e3bbe000000000000003f0000803f0000803f283b7cbfa9102fbe00000000c9bf7cbfbaab22be00000000cdac7bbfd86e3bbe000000000000003f00000000000080bfcdac7bbfd86e3bbe00000000283b7cbfa9102fbe00000000be147bbfcdc547be000000000000003f0000803f0000803fcdac7bbfd86e3bbe00000000283b7cbfa9102fbe00000000be147bbfcdc547be000000000000003f00000000000080bfbe147bbfcdc547be00000000cdac7bbfd86e3bbe0000000001737abf0e1554be000000000000003f0000803f0000803fbe147bbfcdc547be00000000cdac7bbfd86e3bbe0000000001737abf0e1554be000000000000003f00000000000080bf01737abf0e1554be00000000be147bbfcdc547be000000009dc779bf135c60be000000000000003f0000803f0000803f01737abf0e1554be00000000be147bbfcdc547be000000009dc779bf135c60be000000000000003f00000000000080bf9dc779bf135c60be0000000001737abf0e1554be00000000981279bf819a6cbe000000000000003f0000803f0000803f9dc779bf135c60be0000000001737abf0e1554be00000000981279bf819a6cbe000000000000003f00000000000080bf981279bf819a6cbe000000009dc779bf135c60be00000000f85378bfd0cf78be000000000000003f0000803f0000803f981279bf819a6cbe000000009dc779bf135c60be00000000f85378bfd0cf78be000000000000003f00000000000080bff85378bfd0cf78be00000000981279bf819a6cbe00000000c58b77bfc47d82be000000000000003f0000803f0000803ff85378bfd0cf78be00000000981279bf819a6cbe00000000c58b77bfc47d82be000000000000003f00000000000080bfc58b77bfc47d82be00000000f85378bfd0cf78be0000000007ba76bf988e88be000000000000003f0000803f0000803fc58b77bfc47d82be00000000f85378bfd0cf78be0000000007ba76bf988e88be000000000000003f00000000000080bf07ba76bf988e88be00000000c58b77bfc47d82be00000000c5de75bf289a8ebe000000000000003f0000803f0000803f07ba76bf988e88be00000000c58b77bfc47d82be00000000c5de75bf289a8ebe000000000000003f00000000000080bfc5de75bf289a8ebe0000000007ba76bf988e88be000000000afa74bf38a094be000000000000003f0000803f0000803fc5de75bf289a8ebe0000000007ba76bf988e88be000000000afa74bf38a094be000000000000003f00000000000080bf0afa74bf38a094be00000000c5de75bf289a8ebe00000000dd0b74bf86a09abe000000000000003f0000803f0000803f0afa74bf38a094be00000000c5de75bf289a8ebe00000000dd0b74bf86a09abe000000000000003f00000000000080bfdd0b74bf86a09abe000000000afa74bf38a094be00000000471473bfe69aa0be000000000000003f0000803f0000803fdd0b74bf86a09abe000000000afa74bf38a094be00000000471473bfe69aa0be000000000000003f00000000000080bf471473bfe69aa0be00000000dd0b74bf86a09abe00000000521372bf148fa6be000000000000003f0000803f0000803f471473bfe69aa0be00000000dd0b74bf86a09abe00000000521372bf148fa6be000000000000003f00000000000080bf521372bf148fa6be00000000471473bfe69aa0be00000000080971bfd77cacbe000000000000003f0000803f0000803f521372bf148fa6be00000000471473bfe69aa0be00000000080971bfd77cacbe000000000000003f00000000000080bf080971bfd77cacbe00000000521372bf148fa6be0000000072f56fbff363b2be000000000000003f0000803f0000803f080971bfd77cacbe00000000521372bf148fa6be0000000072f56fbff363b2be000000000000003f00000000000080bf72f56fbff363b2be00000000080971bfd77cacbe000000009dd86ebf2f44b8be000000000000003f0000803f0000803f72f56fbff363b2be00000000080971bfd77cacbe000000009dd86ebf2f44b8be000000000000003f00000000000080bf9dd86ebf2f44b8be0000000072f56fbff363b2be0000000092b26dbf501dbebe000000000000003f0000803f0000803f9dd86ebf2f44b8be0000000072f56fbff363b2be0000000092b26dbf501dbebe000000000000003f00000000000080bf92b26dbf501dbebe000000009dd86ebf2f44b8be000000005e836cbf15efc3be000000000000003f0000803f0000803f92b26dbf501dbebe000000009dd86ebf2f44b8be000000005e836cbf15efc3be000000000000003f00000000000080bf5e836cbf15efc3be0000000092b26dbf501dbebe000000000b4b6bbf54b9c9be000000000000003f0000803f0000803f5e836cbf15efc3be0000000092b26dbf501dbebe000000000b4b6bbf54b9c9be000000000000003f00000000000080bf0b4b6bbf54b9c9be000000005e836cbf15efc3be00000000a6096abfcd7bcfbe000000000000003f0000803f0000803f0b4b6bbf54b9c9be000000005e836cbf15efc3be00000000a6096abfcd7bcfbe000000000000003f00000000000080bfa6096abfcd7bcfbe000000000b4b6bbf54b9c9be000000003bbf68bf4536d5be000000000000003f0000803f0000803fa6096abfcd7bcfbe000000000b4b6bbf54b9c9be000000003bbf68bf4536d5be000000000000003f00000000000080bf3bbf68bf4536d5be00000000a6096abfcd7bcfbe00000000d76b67bf85e8dabe000000000000003f0000803f0000803f3bbf68bf4536d5be00000000a6096abfcd7bcfbe00000000d76b67bf85e8dabe000000000000003f00000000000080bfd76b67bf85e8dabe000000003bbf68bf4536d5be00000000860f66bf5492e0be000000000000003f0000803f0000803fd76b67bf85e8dabe000000003bbf68bf4536d5be00000000860f66bf5492e0be000000000000003f00000000000080bf860f66bf5492e0be00000000d76b67bf85e8dabe0000000057aa64bf7b33e6be000000000000003f0000803f0000803f860f66bf5492e0be00000000d76b67bf85e8dabe0000000057aa64bf7b33e6be000000000000003f00000000000080bf57aa64bf7b33e6be00000000860f66bf5492e0be000000005a3c63bfbbcbebbe000000000000003f0000803f0000803f57aa64bf7b33e6be00000000860f66bf5492e0be000000005a3c63bfbbcbebbe000000000000003f00000000000080bf5a3c63bfbbcbebbe0000000057aa64bf7b33e6be0000000097c561bfeb5af1be000000000000003f0000803f0000803f5a3c63bfbbcbebbe0000000057aa64bf7b33e6be0000000097c561bfeb5af1be000000000000003f00000000000080bf97c561bfeb5af1be000000005a3c63bfbbcbebbe00000000214660bfcde0f6be000000000000003f0000803f0000803f97c561bfeb5af1be000000005a3c63bfbbcbebbe00000000214660bfcde0f6be000000000000003f00000000000080bf214660bfcde0f6be0000000097c561bfeb5af1be0000000004be5ebf2a5dfcbe000000000000003f0000803f0000803f214660bfcde0f6be0000000097c561bfeb5af1be0000000004be5ebf2a5dfcbe000000000000003f00000000000080bf04be5ebf2a5dfcbe00000000214660bfcde0f6be00000000522d5dbfe6e700bf000000000000003f0000803f0000803f04be5ebf2a5dfcbe00000000214660bfcde0f6be00000000522d5dbfe6e700bf000000000000003f00000000000080bf522d5dbfe6e700bf0000000004be5ebf2a5dfcbe0000000019945bbf3f9c03bf000000000000003f0000803f0000803f522d5dbfe6e700bf0000000004be5ebf2a5dfcbe0000000019945bbf3f9c03bf000000000000003f00000000000080bf19945bbf3f9c03bf00000000522d5dbfe6e700bf000000006af259bf824b06bf000000000000003f0000803f0000803f19945bbf3f9c03bf00000000522d5dbfe6e700bf000000006af259bf824b06bf000000000000003f00000000000080bf6af259bf824b06bf0000000019945bbf3f9c03bf00000000534858bf9bf508bf000000000000003f0000803f0000803f6af259bf824b06bf0000000019945bbf3f9c03bf00000000534858bf9bf508bf000000000000003f00000000000080bf534858bf9bf508bf000000006af259bf824b06bf00000000e49556bf6c9a0bbf000000000000003f0000803f0000803f534858bf9bf508bf000000006af259bf824b06bf00000000e49556bf6c9a0bbf000000000000003f00000000000080bfe49556bf6c9a0bbf00000000534858bf9bf508bf0000000030db54bfdb390ebf000000000000003f0000803f0000803fe49556bf6c9a0bbf00000000534858bf9bf508bf0000000030db54bfdb390ebf000000000000003f00000000000080bf30db54bfdb390ebf00000000e49556bf6c9a0bbf00000000481853bfced310bf000000000000003f0000803f0000803f30db54bfdb390ebf00000000e49556bf6c9a0bbf00000000481853bfced310bf000000000000003f00000000000080bf481853bfced310bf0000000030db54bfdb390ebf000000003b4d51bf2d6813bf000000000000003f0000803f0000803f481853bfced310bf0000000030db54bfdb390ebf000000003b4d51bf2d6813bf000000000000003f00000000000080bf3b4d51bf2d6813bf00000000481853bfced310bf000000001e7a4fbfdcf615bf000000000000003f0000803f0000803f3b4d51bf2d6813bf00000000481853bfced310bf000000001e7a4fbfdcf615bf000000000000003f00000000000080bf1e7a4fbfdcf615bf000000003b4d51bf2d6813bf00000000029f4dbfc07f18bf000000000000003f0000803f0000803f1e7a4fbfdcf615bf000000003b4d51bf2d6813bf00000000029f4dbfc07f18bf000000000000003f00000000000080bf029f4dbfc07f18bf000000001e7a4fbfdcf615bf00000000f7bb4bbfc6021bbf000000000000003f0000803f0000803f029f4dbfc07f18bf000000001e7a4fbfdcf615bf00000000f7bb4bbfc6021bbf000000000000003f00000000000080bff7bb4bbfc6021bbf00000000029f4dbfc07f18bf0000000012d149bfd27f1dbf000000000000003f0000803f0000803ff7bb4bbfc6021bbf00000000029f4dbfc07f18bf0000000012d149bfd27f1dbf000000000000003f00000000000080bf12d149bfd27f1dbf00000000f7bb4bbfc6021bbf0000000064de47bfccf61fbf000000000000003f0000803f0000803f12d149bfd27f1dbf00000000f7bb4bbfc6021bbf0000000064de47bfccf61fbf000000000000003f00000000000080bf64de47bfccf61fbf0000000012d149bfd27f1dbf0000000002e445bf9b6722bf000000000000003f0000803f0000803f64de47bfccf61fbf0000000012d149bfd27f1dbf0000000002e445bf9b6722bf000000000000003f00000000000080bf02e445bf9b6722bf0000000064de47bfccf61fbf00000000ffe143bf27d224bf000000000000003f0000803f0000803f02e445bf9b6722bf0000000064de47bfccf61fbf00000000ffe143bf27d224bf000000000000003f00000000000080bfffe143bf27d224bf0000000002e445bf9b6722bf000000006ed841bf583627bf000000000000003f0000803f0000803fffe143bf27d224bf0000000002e445bf9b6722bf000000006ed841bf583627bf000000000000003f00000000000080bf6ed841bf583627bf00000000ffe143bf27d224bf0000000067c73fbf159429bf000000000000003f0000803f0000803f6ed841bf583627bf00000000ffe143bf27d224bf0000000067c73fbf159429bf000000000000003f00000000000080bf67c73fbf159429bf000000006ed841bf583627bf00000000f9ae3dbf4aeb2bbf000000000000003f0000803f0000803f67c73fbf159429bf000000006ed841bf583627bf00000000f9ae3dbf4aeb2bbf000000000000003f00000000000080bff9ae3dbf4aeb2bbf0000000067c73fbf159429bf000000003a8f3bbfdf3b2ebf000000000000003f0000803f0000803ff9ae3dbf4aeb2bbf0000000067c73fbf159429bf000000003a8f3bbfdf3b2ebf000000000000003f00000000000080bf3a8f3bbfdf3b2ebf00000000f9ae3dbf4aeb2bbf00000000416839bfbc8530bf000000000000003f0000803f0000803f3a8f3bbfdf3b2ebf00000000f9ae3dbf4aeb2bbf00000000416839bfbc8530bf000000000000003f00000000000080bf416839bfbc8530bf000000003a8f3bbfdf3b2ebf00000000213a37bfcbc832bf000000000000003f0000803f0000803f416839bfbc8530bf000000003a8f3bbfdf3b2ebf00000000213a37bfcbc832bf000000000000003f00000000000080bf213a37bfcbc832bf00000000416839bfbc8530bf00000000f10435bff50435bf000000000000003f0000803f0000803f213a37bfcbc832bf00000000416839bfbc8530bf00000000f10435bff50435bf000000000000003f00000000000080bff10435bff50435bf00000000213a37bfcbc832bf00000000c7c832bf253a37bf000000000000003f0000803f0000803ff10435bff50435bf00000000213a37bfcbc832bf00000000c7c832bf253a37bf000000000000003f00000000000080bfc7c832bf253a37bf00000000f10435bff50435bf00000000bb8530bf426839bf000000000000003f0000803f0000803fc7c832bf253a37bf00000000f10435bff50435bf00000000bb8530bf426839bf000000000000003f00000000000080bfbb8530bf426839bf00000000c7c832bf253a37bf00000000de3b2ebf3b8f3bbf000000000000003f0000803f0000803fbb8530bf426839bf00000000c7c832bf253a37bf00000000de3b2ebf3b8f3bbf000000000000003f00000000000080bfde3b2ebf3b8f3bbf00000000bb8530bf426839bf0000000049eb2bbffaae3dbf000000000000003f0000803f0000803fde3b2ebf3b8f3bbf00000000bb8530bf426839bf0000000049eb2bbffaae3dbf000000000000003f00000000000080bf49eb2bbffaae3dbf00000000de3b2ebf3b8f3bbf00000000139429bf68c73fbf000000000000003f0000803f0000803f49eb2bbffaae3dbf00000000de3b2ebf3b8f3bbf00000000139429bf68c73fbf000000000000003f00000000000080bf139429bf68c73fbf0000000049eb2bbffaae3dbf00000000573627bf6fd841bf000000000000003f0000803f0000803f139429bf68c73fbf0000000049eb2bbffaae3dbf00000000573627bf6fd841bf000000000000003f00000000000080bf573627bf6fd841bf00000000139429bf68c73fbf0000000026d224bf00e243bf000000000000003f0000803f0000803f573627bf6fd841bf00000000139429bf68c73fbf0000000026d224bf00e243bf000000000000003f00000000000080bf26d224bf00e243bf00000000573627bf6fd841bf000000009a6722bf03e445bf000000000000003f0000803f0000803f26d224bf00e243bf00000000573627bf6fd841bf000000009a6722bf03e445bf000000000000003f00000000000080bf9a6722bf03e445bf0000000026d224bf00e243bf00000000cbf61fbf65de47bf000000000000003f0000803f0000803f9a6722bf03e445bf0000000026d224bf00e243bf00000000cbf61fbf65de47bf000000000000003f00000000000080bfcbf61fbf65de47bf000000009a6722bf03e445bf00000000d17f1dbf13d149bf000000000000003f0000803f0000803fcbf61fbf65de47bf000000009a6722bf03e445bf00000000d17f1dbf13d149bf000000000000003f00000000000080bfd17f1dbf13d149bf00000000cbf61fbf65de47bf00000000c5021bbff8bb4bbf000000000000003f0000803f0000803fd17f1dbf13d149bf00000000cbf61fbf65de47bf00000000c5021bbff8bb4bbf000000000000003f00000000000080bfc5021bbff8bb4bbf00000000d17f1dbf13d149bf00000000be7f18bf039f4dbf000000000000003f0000803f0000803fc5021bbff8bb4bbf00000000d17f1dbf13d149bf00000000be7f18bf039f4dbf000000000000003f00000000000080bfbe7f18bf039f4dbf00000000c5021bbff8bb4bbf00000000d7f615bf217a4fbf000000000000003f0000803f0000803fbe7f18bf039f4dbf00000000c5021bbff8bb4bbf00000000d7f615bf217a4fbf000000000000003f00000000000080bfd7f615bf217a4fbf00000000be7f18bf039f4dbf00000000286813bf3f4d51bf000000000000003f0000803f0000803fd7f615bf217a4fbf00000000be7f18bf039f4dbf00000000286813bf3f4d51bf000000000000003f00000000000080bf286813bf3f4d51bf00000000d7f615bf217a4fbf00000000cad310bf4b1853bf000000000000003f0000803f0000803f286813bf3f4d51bf00000000d7f615bf217a4fbf00000000cad310bf4b1853bf000000000000003f00000000000080bfcad310bf4b1853bf00000000286813bf3f4d51bf00000000d6390ebf34db54bf000000000000003f0000803f0000803fcad310bf4b1853bf00000000286813bf3f4d51bf00000000d6390ebf34db54bf000000000000003f00000000000080bfd6390ebf34db54bf00000000cad310bf4b1853bf00000000679a0bbfe89556bf000000000000003f0000803f0000803fd6390ebf34db54bf00000000cad310bf4b1853bf00000000679a0bbfe89556bf000000000000003f00000000000080bf679a0bbfe89556bf00000000d6390ebf34db54bf0000000096f508bf564858bf000000000000003f0000803f0000803f679a0bbfe89556bf00000000d6390ebf34db54bf0000000096f508bf564858bf000000000000003f00000000000080bf96f508bf564858bf00000000679a0bbfe89556bf000000007d4b06bf6df259bf000000000000003f0000803f0000803f96f508bf564858bf00000000679a0bbfe89556bf000000007d4b06bf6df259bf000000000000003f00000000000080bf7d4b06bf6df259bf0000000096f508bf564858bf000000003e9c03bf19945bbf000000000000003f0000803f0000803f7d4b06bf6df259bf0000000096f508bf564858bf000000003e9c03bf19945bbf000000000000003f00000000000080bf3e9c03bf19945bbf000000007d4b06bf6df259bf00000000e5e700bf532d5dbf000000000000003f0000803f0000803f3e9c03bf19945bbf000000007d4b06bf6df259bf00000000e5e700bf532d5dbf000000000000003f00000000000080bfe5e700bf532d5dbf000000003e9c03bf19945bbf00000000275dfcbe05be5ebf000000000000003f0000803f0000803fe5e700bf532d5dbf000000003e9c03bf19945bbf00000000275dfcbe05be5ebf000000000000003f00000000000080bf275dfcbe05be5ebf00000000e5e700bf532d5dbf00000000cae0f6be214660bf000000000000003f0000803f0000803f275dfcbe05be5ebf00000000e5e700bf532d5dbf00000000cae0f6be214660bf000000000000003f00000000000080bfcae0f6be214660bf00000000275dfcbe05be5ebf00000000e85af1be98c561bf000000000000003f0000803f0000803fcae0f6be214660bf00000000275dfcbe05be5ebf00000000e85af1be98c561bf000000000000003f00000000000080bfe85af1be98c561bf00000000cae0f6be214660bf00000000b8cbebbe5a3c63bf000000000000003f0000803f0000803fe85af1be98c561bf00000000cae0f6be214660bf00000000b8cbebbe5a3c63bf000000000000003f00000000000080bfb8cbebbe5a3c63bf00000000e85af1be98c561bf000000007133e6be5aaa64bf000000000000003f0000803f0000803fb8cbebbe5a3c63bf00000000e85af1be98c561bf000000007133e6be5aaa64bf000000000000003f00000000000080bf7133e6be5aaa64bf00000000b8cbebbe5a3c63bf000000004a92e0be890f66bf000000000000003f0000803f0000803f7133e6be5aaa64bf00000000b8cbebbe5a3c63bf000000004a92e0be890f66bf000000000000003f00000000000080bf4a92e0be890f66bf000000007133e6be5aaa64bf000000007be8dabed96b67bf000000000000003f0000803f0000803f4a92e0be890f66bf000000007133e6be5aaa64bf000000007be8dabed96b67bf000000000000003f00000000000080bf7be8dabed96b67bf000000004a92e0be890f66bf000000003b36d5be3dbf68bf000000000000003f0000803f0000803f7be8dabed96b67bf000000004a92e0be890f66bf000000003b36d5be3dbf68bf000000000000003f00000000000080bf3b36d5be3dbf68bf000000007be8dabed96b67bf00000000c27bcfbea8096abf000000000000003f0000803f0000803f3b36d5be3dbf68bf000000007be8dabed96b67bf00000000c27bcfbea8096abf000000000000003f00000000000080bfc27bcfbea8096abf000000003b36d5be3dbf68bf000000004ab9c9be0e4b6bbf000000000000003f0000803f0000803fc27bcfbea8096abf000000003b36d5be3dbf68bf000000004ab9c9be0e4b6bbf000000000000003f00000000000080bf4ab9c9be0e4b6bbf00000000c27bcfbea8096abf000000000befc3be61836cbf000000000000003f0000803f0000803f4ab9c9be0e4b6bbf00000000c27bcfbea8096abf000000000befc3be61836cbf000000000000003f00000000000080bf0befc3be61836cbf000000004ab9c9be0e4b6bbf000000004d1dbebe92b26dbf000000000000003f0000803f0000803f0befc3be61836cbf000000004ab9c9be0e4b6bbf000000004d1dbebe92b26dbf000000000000003f00000000000080bf4d1dbebe92b26dbf000000000befc3be61836cbf000000002c44b8be9dd86ebf000000000000003f0000803f0000803f4d1dbebe92b26dbf000000000befc3be61836cbf000000002c44b8be9dd86ebf000000000000003f00000000000080bf2c44b8be9dd86ebf000000004d1dbebe92b26dbf00000000f063b2be73f56fbf000000000000003f0000803f0000803f2c44b8be9dd86ebf000000004d1dbebe92b26dbf00000000f063b2be73f56fbf000000000000003f00000000000080bff063b2be73f56fbf000000002c44b8be9dd86ebf00000000d47cacbe080971bf000000000000003f0000803f0000803ff063b2be73f56fbf000000002c44b8be9dd86ebf00000000d47cacbe080971bf000000000000003f00000000000080bfd47cacbe080971bf00000000f063b2be73f56fbf00000000118fa6be521372bf000000000000003f0000803f0000803fd47cacbe080971bf00000000f063b2be73f56fbf00000000118fa6be521372bf000000000000003f00000000000080bf118fa6be521372bf00000000d47cacbe080971bf00000000e39aa0be481473bf000000000000003f0000803f0000803f118fa6be521372bf00000000d47cacbe080971bf00000000e39aa0be481473bf000000000000003f00000000000080bfe39aa0be481473bf00000000118fa6be521372bf0000000083a09abede0b74bf000000000000003f0000803f0000803fe39aa0be481473bf00000000118fa6be521372bf0000000083a09abede0b74bf000000000000003f00000000000080bf83a09abede0b74bf00000000e39aa0be481473bf000000002da094be0bfa74bf000000000000003f0000803f0000803f83a09abede0b74bf00000000e39aa0be481473bf000000002da094be0bfa74bf000000000000003f00000000000080bf2da094be0bfa74bf0000000083a09abede0b74bf000000001d9a8ebec7de75bf000000000000003f0000803f0000803f2da094be0bfa74bf0000000083a09abede0b74bf000000001d9a8ebec7de75bf000000000000003f00000000000080bf1d9a8ebec7de75bf000000002da094be0bfa74bf000000008d8e88be08ba76bf000000000000003f0000803f0000803f1d9a8ebec7de75bf000000002da094be0bfa74bf000000008d8e88be08ba76bf000000000000003f00000000000080bf8d8e88be08ba76bf000000001d9a8ebec7de75bf00000000b97d82bec68b77bf000000000000003f0000803f0000803f8d8e88be08ba76bf000000001d9a8ebec7de75bf00000000b97d82bec68b77bf000000000000003f00000000000080bfb97d82bec68b77bf000000008d8e88be08ba76bf00000000bacf78bef95378bf000000000000003f0000803f0000803fb97d82bec68b77bf000000008d8e88be08ba76bf00000000bacf78bef95378bf000000000000003f00000000000080bfbacf78bef95378bf00000000b97d82bec68b77bf000000006b9a6cbe991279bf000000000000003f0000803f0000803fbacf78bef95378bf00000000b97d82bec68b77bf000000006b9a6cbe991279bf000000000000003f00000000000080bf6b9a6cbe991279bf00000000bacf78bef95378bf00000000fd5b60be9fc779bf000000000000003f0000803f0000803f6b9a6cbe991279bf00000000bacf78bef95378bf00000000fd5b60be9fc779bf000000000000003f00000000000080bffd5b60be9fc779bf000000006b9a6cbe991279bf00000000081554be01737abf000000000000003f0000803f0000803ffd5b60be9fc779bf000000006b9a6cbe991279bf00000000081554be01737abf000000000000003f00000000000080bf081554be01737abf00000000fd5b60be9fc779bf00000000c6c547bebe147bbf000000000000003f0000803f0000803f081554be01737abf00000000fd5b60be9fc779bf00000000c6c547bebe147bbf000000000000003f00000000000080bfc6c547bebe147bbf00000000081554be01737abf00000000d16e3bbecdac7bbf000000000000003f0000803f0000803fc6c547bebe147bbf00000000081554be01737abf00000000d16e3bbecdac7bbf000000000000003f00000000000080bfd16e3bbecdac7bbf00000000c6c547bebe147bbf00000000a2102fbe283b7cbf000000000000003f0000803f0000803fd16e3bbecdac7bbf00000000c6c547bebe147bbf00000000a2102fbe283b7cbf000000000000003f00000000000080bfa2102fbe283b7cbf00000000d16e3bbecdac7bbf00000000b3ab22bec9bf7cbf000000000000003f0000803f0000803fa2102fbe283b7cbf00000000d16e3bbecdac7bbf00000000b3ab22bec9bf7cbf000000000000003f00000000000080bfb3ab22bec9bf7cbf00000000a2102fbe283b7cbf000000007f4016beac3a7dbf000000000000003f0000803f0000803fb3ab22bec9bf7cbf00000000a2102fbe283b7cbf000000007f4016beac3a7dbf000000000000003f00000000000080bf7f4016beac3a7dbf00000000b3ab22bec9bf7cbf000000007fcf09beccab7dbf000000000000003f0000803f0000803f7f4016beac3a7dbf00000000b3ab22bec9bf7cbf000000007fcf09beccab7dbf000000000000003f00000000000080bf7fcf09beccab7dbf000000007f4016beac3a7dbf0000000060b2fabd24137ebf000000000000003f0000803f0000803f7fcf09beccab7dbf000000007f4016beac3a7dbf0000000060b2fabd24137ebf000000000000003f00000000000080bf60b2fabd24137ebf000000007fcf09beccab7dbf0000000017bce1bdb0707ebf000000000000003f0000803f0000803f60b2fabd24137ebf000000007fcf09beccab7dbf0000000017bce1bdb0707ebf000000000000003f00000000000080bf17bce1bdb0707ebf0000000060b2fabd24137ebf000000001abdc8bd6dc47ebf000000000000003f0000803f0000803f17bce1bdb0707ebf0000000060b2fabd24137ebf000000001abdc8bd6dc47ebf000000000000003f00000000000080bf1abdc8bd6dc47ebf0000000017bce1bdb0707ebf0000000060b6afbd580e7fbf000000000000003f0000803f0000803f1abdc8bd6dc47ebf0000000017bce1bdb0707ebf0000000060b6afbd580e7fbf000000000000003f00000000000080bf60b6afbd580e7fbf000000001abdc8bd6dc47ebf00000000dfa896bd6e4e7fbf000000000000003f0000803f0000803f60b6afbd580e7fbf000000001abdc8bd6dc47ebf00000000dfa896bd6e4e7fbf000000000000003f00000000000080bfdfa896bd6e4e7fbf0000000060b6afbd580e7fbf000000001f2b7bbdab847fbf000000000000003f0000803f0000803fdfa896bd6e4e7fbf0000000060b6afbd580e7fbf000000001f2b7bbdab847fbf000000000000003f00000000000080bf1f2b7bbdab847fbf00000000dfa896bd6e4e7fbf00000000d2fa48bd0fb17fbf000000000000003f0000803f0000803f1f2b7bbdab847fbf00000000dfa896bd6e4e7fbf00000000d2fa48bd0fb17fbf000000000000003f00000000000080bfd2fa48bd0fb17fbf000000001f2b7bbdab847fbf0000000044c316bd97d37fbf000000000000003f0000803f0000803fd2fa48bd0fb17fbf000000001f2b7bbdab847fbf0000000044c316bd97d37fbf000000000000003f00000000000080bf44c316bd97d37fbf00000000d2fa48bd0fb17fbf00000000cf0ac9bc43ec7fbf000000000000003f0000803f0000803f44c316bd97d37fbf00000000d2fa48bd0fb17fbf00000000cf0ac9bc43ec7fbf000000000000003f00000000000080bfcf0ac9bc43ec7fbf0000000044c316bd97d37fbf00000000a80e49bc11fb7fbf000000000000003f0000803f0000803fcf0ac9bc43ec7fbf0000000044c316bd97d37fbf00000000a80e49bc11fb7fbf000000000000003f00000000000080bfa80e49bc11fb7fbf00000000cf0ac9bc43ec7fbf000000002ede4c32000080bf000000000000003f0000803f0000803fa80e49bc11fb7fbf00000000cf0ac9bc43ec7fbf000000002ede4c32000080bf000000000000003f00000000000080bf2ede4c32000080bf00000000a80e49bc11fb7fbf00000000c20e493c11fb7fbf000000000000003f0000803f0000803f2ede4c32000080bf00000000a80e49bc11fb7fbf00000000c20e493c11fb7fbf000000000000003f00000000000080bfc20e493c11fb7fbf000000002ede4c32000080bf00000000db0ac93c43ec7fbf000000000000003f0000803f0000803fc20e493c11fb7fbf000000002ede4c32000080bf00000000db0ac93c43ec7fbf000000000000003f00000000000080bfdb0ac93c43ec7fbf00000000c20e493c11fb7fbf000000004bc3163d97d37fbf000000000000003f0000803f0000803fdb0ac93c43ec7fbf00000000c20e493c11fb7fbf000000004bc3163d97d37fbf000000000000003f00000000000080bf4bc3163d97d37fbf00000000db0ac93c43ec7fbf0000000058fb483d0fb17fbf000000000000003f0000803f0000803f4bc3163d97d37fbf00000000db0ac93c43ec7fbf0000000058fb483d0fb17fbf000000000000003f00000000000080bf58fb483d0fb17fbf000000004bc3163d97d37fbf00000000a62b7b3dab847fbf000000000000003f0000803f0000803f58fb483d0fb17fbf000000004bc3163d97d37fbf00000000a62b7b3dab847fbf000000000000003f00000000000080bfa62b7b3dab847fbf0000000058fb483d0fb17fbf0000000022a9963d6d4e7fbf000000000000003f0000803f0000803fa62b7b3dab847fbf0000000058fb483d0fb17fbf0000000022a9963d6d4e7fbf000000000000003f00000000000080bf22a9963d6d4e7fbf00000000a62b7b3dab847fbf00000000a3b6af3d580e7fbf000000000000003f0000803f0000803f22a9963d6d4e7fbf00000000a62b7b3dab847fbf00000000a3b6af3d580e7fbf000000000000003f00000000000080bfa3b6af3d580e7fbf0000000022a9963d6d4e7fbf000000005dbdc83d6dc47ebf000000000000003f0000803f0000803fa3b6af3d580e7fbf0000000022a9963d6d4e7fbf000000005dbdc83d6dc47ebf000000000000003f00000000000080bf5dbdc83d6dc47ebf00000000a3b6af3d580e7fbf000000005abce13daf707ebf000000000000003f0000803f0000803f5dbdc83d6dc47ebf00000000a3b6af3d580e7fbf000000005abce13daf707ebf000000000000003f00000000000080bf5abce13daf707ebf000000005dbdc83d6dc47ebf00000000a3b2fa3d23137ebf000000000000003f0000803f0000803f5abce13daf707ebf000000005dbdc83d6dc47ebf00000000a3b2fa3d23137ebf000000000000003f00000000000080bfa3b2fa3d23137ebf000000005abce13daf707ebf0000000081cf093eccab7dbf000000000000003f0000803f0000803fa3b2fa3d23137ebf000000005abce13daf707ebf0000000081cf093eccab7dbf000000000000003f00000000000080bf81cf093eccab7dbf00000000a3b2fa3d23137ebf000000008040163eac3a7dbf000000000000003f0000803f0000803f81cf093eccab7dbf00000000a3b2fa3d23137ebf000000008040163eac3a7dbf000000000000003f00000000000080bf8040163eac3a7dbf0000000081cf093eccab7dbf00000000b5ab223ec9bf7cbf000000000000003f0000803f0000803f8040163eac3a7dbf0000000081cf093eccab7dbf00000000b5ab223ec9bf7cbf000000000000003f00000000000080bfb5ab223ec9bf7cbf000000008040163eac3a7dbf00000000a4102f3e283b7cbf000000000000003f0000803f0000803fb5ab223ec9bf7cbf000000008040163eac3a7dbf00000000a4102f3e283b7cbf000000000000003f00000000000080bfa4102f3e283b7cbf00000000b5ab223ec9bf7cbf00000000d36e3b3ecdac7bbf000000000000003f0000803f0000803fa4102f3e283b7cbf00000000b5ab223ec9bf7cbf00000000d36e3b3ecdac7bbf000000000000003f00000000000080bfd36e3b3ecdac7bbf00000000a4102f3e283b7cbf00000000c8c5473ebe147bbf000000000000003f0000803f0000803fd36e3b3ecdac7bbf00000000a4102f3e283b7cbf00000000c8c5473ebe147bbf000000000000003f00000000000080bfc8c5473ebe147bbf00000000d36e3b3ecdac7bbf000000000915543e01737abf000000000000003f0000803f0000803fc8c5473ebe147bbf00000000d36e3b3ecdac7bbf000000000915543e01737abf000000000000003f00000000000080bf0915543e01737abf00000000c8c5473ebe147bbf000000001e5c603e9dc779bf000000000000003f0000803f0000803f0915543e01737abf00000000c8c5473ebe147bbf000000001e5c603e9dc779bf000000000000003f00000000000080bf1e5c603e9dc779bf000000000915543e01737abf000000008c9a6c3e971279bf000000000000003f0000803f0000803f1e5c603e9dc779bf000000000915543e01737abf000000008c9a6c3e971279bf000000000000003f00000000000080bf8c9a6c3e971279bf000000001e5c603e9dc779bf00000000dbcf783ef75378bf000000000000003f0000803f0000803f8c9a6c3e971279bf000000001e5c603e9dc779bf00000000dbcf783ef75378bf000000000000003f00000000000080bfdbcf783ef75378bf000000008c9a6c3e971279bf00000000c97d823ec48b77bf000000000000003f0000803f0000803fdbcf783ef75378bf000000008c9a6c3e971279bf00000000c97d823ec48b77bf000000000000003f00000000000080bfc97d823ec48b77bf00000000dbcf783ef75378bf000000009d8e883e06ba76bf000000000000003f0000803f0000803fc97d823ec48b77bf00000000dbcf783ef75378bf000000009d8e883e06ba76bf000000000000003f00000000000080bf9d8e883e06ba76bf00000000c97d823ec48b77bf000000002d9a8e3ec5de75bf000000000000003f0000803f0000803f9d8e883e06ba76bf00000000c97d823ec48b77bf000000002d9a8e3ec5de75bf000000000000003f00000000000080bf2d9a8e3ec5de75bf000000009d8e883e06ba76bf000000003da0943e09fa74bf000000000000003f0000803f0000803f2d9a8e3ec5de75bf000000009d8e883e06ba76bf000000003da0943e09fa74bf000000000000003f00000000000080bf3da0943e09fa74bf000000002d9a8e3ec5de75bf0000000084a09a3ede0b74bf000000000000003f0000803f0000803f3da0943e09fa74bf000000002d9a8e3ec5de75bf0000000084a09a3ede0b74bf000000000000003f00000000000080bf84a09a3ede0b74bf000000003da0943e09fa74bf00000000e39aa03e481473bf000000000000003f0000803f0000803f84a09a3ede0b74bf000000003da0943e09fa74bf00000000e39aa03e481473bf000000000000003f00000000000080bfe39aa03e481473bf0000000084a09a3ede0b74bf00000000128fa63e521372bf000000000000003f0000803f0000803fe39aa03e481473bf0000000084a09a3ede0b74bf00000000128fa63e521372bf000000000000003f00000000000080bf128fa63e521372bf00000000e39aa03e481473bf00000000d57cac3e080971bf000000000000003f0000803f0000803f128fa63e521372bf00000000e39aa03e481473bf00000000d57cac3e080971bf000000000000003f00000000000080bfd57cac3e080971bf00000000128fa63e521372bf00000000f163b23e73f56fbf000000000000003f0000803f0000803fd57cac3e080971bf00000000128fa63e521372bf00000000f163b23e73f56fbf000000000000003f00000000000080bff163b23e73f56fbf00000000d57cac3e080971bf000000002d44b83e9dd86ebf000000000000003f0000803f0000803ff163b23e73f56fbf00000000d57cac3e080971bf000000002d44b83e9dd86ebf000000000000003f00000000000080bf2d44b83e9dd86ebf00000000f163b23e73f56fbf000000004e1dbe3e92b26dbf000000000000003f0000803f0000803f2d44b83e9dd86ebf00000000f163b23e73f56fbf000000004e1dbe3e92b26dbf000000000000003f00000000000080bf4e1dbe3e92b26dbf000000002d44b83e9dd86ebf000000001befc33e5d836cbf000000000000003f0000803f0000803f4e1dbe3e92b26dbf000000002d44b83e9dd86ebf000000001befc33e5d836cbf000000000000003f00000000000080bf1befc33e5d836cbf000000004e1dbe3e92b26dbf0000000059b9c93e0a4b6bbf000000000000003f0000803f0000803f1befc33e5d836cbf000000004e1dbe3e92b26dbf0000000059b9c93e0a4b6bbf000000000000003f00000000000080bf59b9c93e0a4b6bbf000000001befc33e5d836cbf00000000d27bcf3ea5096abf000000000000003f0000803f0000803f59b9c93e0a4b6bbf000000001befc33e5d836cbf00000000d27bcf3ea5096abf000000000000003f00000000000080bfd27bcf3ea5096abf0000000059b9c93e0a4b6bbf000000004a36d53e3abf68bf000000000000003f0000803f0000803fd27bcf3ea5096abf0000000059b9c93e0a4b6bbf000000004a36d53e3abf68bf000000000000003f00000000000080bf4a36d53e3abf68bf00000000d27bcf3ea5096abf000000008ae8da3ed56b67bf000000000000003f0000803f0000803f4a36d53e3abf68bf00000000d27bcf3ea5096abf000000008ae8da3ed56b67bf000000000000003f00000000000080bf8ae8da3ed56b67bf000000004a36d53e3abf68bf000000005992e03e850f66bf000000000000003f0000803f0000803f8ae8da3ed56b67bf000000004a36d53e3abf68bf000000005992e03e850f66bf000000000000003f00000000000080bf5992e03e850f66bf000000008ae8da3ed56b67bf000000008033e63e56aa64bf000000000000003f0000803f0000803f5992e03e850f66bf000000008ae8da3ed56b67bf000000008033e63e56aa64bf000000000000003f00000000000080bf8033e63e56aa64bf000000005992e03e850f66bf00000000b9cbeb3e5a3c63bf000000000000003f0000803f0000803f8033e63e56aa64bf000000005992e03e850f66bf00000000b9cbeb3e5a3c63bf000000000000003f00000000000080bfb9cbeb3e5a3c63bf000000008033e63e56aa64bf00000000e95af13e98c561bf000000000000003f0000803f0000803fb9cbeb3e5a3c63bf000000008033e63e56aa64bf00000000e95af13e98c561bf000000000000003f00000000000080bfe95af13e98c561bf00000000b9cbeb3e5a3c63bf00000000cbe0f63e214660bf000000000000003f0000803f0000803fe95af13e98c561bf00000000b9cbeb3e5a3c63bf00000000cbe0f63e214660bf000000000000003f00000000000080bfcbe0f63e214660bf00000000e95af13e98c561bf00000000285dfc3e05be5ebf000000000000003f0000803f0000803fcbe0f63e214660bf00000000e95af13e98c561bf00000000285dfc3e05be5ebf000000000000003f00000000000080bf285dfc3e05be5ebf00000000cbe0f63e214660bf00000000e5e7003f532d5dbf000000000000003f0000803f0000803f285dfc3e05be5ebf00000000cbe0f63e214660bf00000000e5e7003f532d5dbf000000000000003f00000000000080bfe5e7003f532d5dbf00000000285dfc3e05be5ebf000000003e9c033f19945bbf000000000000003f0000803f0000803fe5e7003f532d5dbf00000000285dfc3e05be5ebf000000003e9c033f19945bbf000000000000003f00000000000080bf3e9c033f19945bbf00000000e5e7003f532d5dbf00000000854b063f69f259bf000000000000003f0000803f0000803f3e9c033f19945bbf00000000e5e7003f532d5dbf00000000854b063f69f259bf000000000000003f00000000000080bf854b063f69f259bf000000003e9c033f19945bbf000000009df5083f514858bf000000000000003f0000803f0000803f854b063f69f259bf000000003e9c033f19945bbf000000009df5083f514858bf000000000000003f00000000000080bf9df5083f514858bf00000000854b063f69f259bf000000006e9a0b3fe39556bf000000000000003f0000803f0000803f9df5083f514858bf00000000854b063f69f259bf000000006e9a0b3fe39556bf000000000000003f00000000000080bf6e9a0b3fe39556bf000000009df5083f514858bf00000000dd390e3f2fdb54bf000000000000003f0000803f0000803f6e9a0b3fe39556bf000000009df5083f514858bf00000000dd390e3f2fdb54bf000000000000003f00000000000080bfdd390e3f2fdb54bf000000006e9a0b3fe39556bf00000000d1d3103f461853bf000000000000003f0000803f0000803fdd390e3f2fdb54bf000000006e9a0b3fe39556bf00000000d1d3103f461853bf000000000000003f00000000000080bfd1d3103f461853bf00000000dd390e3f2fdb54bf000000002f68133f3a4d51bf000000000000003f0000803f0000803fd1d3103f461853bf00000000dd390e3f2fdb54bf000000002f68133f3a4d51bf000000000000003f00000000000080bf2f68133f3a4d51bf00000000d1d3103f461853bf00000000def6153f1c7a4fbf000000000000003f0000803f0000803f2f68133f3a4d51bf00000000d1d3103f461853bf00000000def6153f1c7a4fbf000000000000003f00000000000080bfdef6153f1c7a4fbf000000002f68133f3a4d51bf00000000bf7f183f039f4dbf000000000000003f0000803f0000803fdef6153f1c7a4fbf000000002f68133f3a4d51bf00000000bf7f183f039f4dbf000000000000003f00000000000080bfbf7f183f039f4dbf00000000def6153f1c7a4fbf00000000c5021b3ff8bb4bbf000000000000003f0000803f0000803fbf7f183f039f4dbf00000000def6153f1c7a4fbf00000000c5021b3ff8bb4bbf000000000000003f00000000000080bfc5021b3ff8bb4bbf00000000bf7f183f039f4dbf00000000d17f1d3f12d149bf000000000000003f0000803f0000803fc5021b3ff8bb4bbf00000000bf7f183f039f4dbf00000000d17f1d3f12d149bf000000000000003f00000000000080bfd17f1d3f12d149bf00000000c5021b3ff8bb4bbf00000000cbf61f3f65de47bf000000000000003f0000803f0000803fd17f1d3f12d149bf00000000c5021b3ff8bb4bbf00000000cbf61f3f65de47bf000000000000003f00000000000080bfcbf61f3f65de47bf00000000d17f1d3f12d149bf000000009a67223f03e445bf000000000000003f0000803f0000803fcbf61f3f65de47bf00000000d17f1d3f12d149bf000000009a67223f03e445bf000000000000003f00000000000080bf9a67223f03e445bf00000000cbf61f3f65de47bf0000000026d2243f00e243bf000000000000003f0000803f0000803f9a67223f03e445bf00000000cbf61f3f65de47bf0000000026d2243f00e243bf000000000000003f00000000000080bf26d2243f00e243bf000000009a67223f03e445bf000000005736273f6fd841bf000000000000003f0000803f0000803f26d2243f00e243bf000000009a67223f03e445bf000000005736273f6fd841bf000000000000003f00000000000080bf5736273f6fd841bf0000000026d2243f00e243bf000000001794293f65c73fbf000000000000003f0000803f0000803f5736273f6fd841bf0000000026d2243f00e243bf000000001794293f65c73fbf000000000000003f00000000000080bf1794293f65c73fbf000000005736273f6fd841bf000000004ceb2b3ff7ae3dbf000000000000003f0000803f0000803f1794293f65c73fbf000000005736273f6fd841bf000000004ceb2b3ff7ae3dbf000000000000003f00000000000080bf4ceb2b3ff7ae3dbf000000001794293f65c73fbf00000000e13b2e3f388f3bbf000000000000003f0000803f0000803f4ceb2b3ff7ae3dbf000000001794293f65c73fbf00000000e13b2e3f388f3bbf000000000000003f00000000000080bfe13b2e3f388f3bbf000000004ceb2b3ff7ae3dbf00000000be85303f3f6839bf000000000000003f0000803f0000803fe13b2e3f388f3bbf000000004ceb2b3ff7ae3dbf00000000be85303f3f6839bf000000000000003f00000000000080bfbe85303f3f6839bf00000000e13b2e3f388f3bbf00000000cdc8323f1f3a37bf000000000000003f0000803f0000803fbe85303f3f6839bf00000000e13b2e3f388f3bbf00000000cdc8323f1f3a37bf000000000000003f00000000000080bfcdc8323f1f3a37bf00000000be85303f3f6839bf00000000f704353fef0435bf000000000000003f0000803f0000803fcdc8323f1f3a37bf00000000be85303f3f6839bf00000000f704353fef0435bf000000000000003f00000000000080bff704353fef0435bf00000000cdc8323f1f3a37bf00000000273a373fc5c832bf000000000000003f0000803f0000803ff704353fef0435bf00000000cdc8323f1f3a37bf00000000273a373fc5c832bf000000000000003f00000000000080bf273a373fc5c832bf00000000f704353fef0435bf000000004168393fbc8530bf000000000000003f0000803f0000803f273a373fc5c832bf00000000f704353fef0435bf000000004168393fbc8530bf000000000000003f00000000000080bf4168393fbc8530bf00000000273a373fc5c832bf000000003b8f3b3fde3b2ebf000000000000003f0000803f0000803f4168393fbc8530bf00000000273a373fc5c832bf000000003b8f3b3fde3b2ebf000000000000003f00000000000080bf3b8f3b3fde3b2ebf000000004168393fbc8530bf00000000f9ae3d3f4aeb2bbf000000000000003f0000803f0000803f3b8f3b3fde3b2ebf000000004168393fbc8530bf00000000f9ae3d3f4aeb2bbf000000000000003f00000000000080bff9ae3d3f4aeb2bbf000000003b8f3b3fde3b2ebf0000000067c73f3f149429bf000000000000003f0000803f0000803ff9ae3d3f4aeb2bbf000000003b8f3b3fde3b2ebf0000000067c73f3f149429bf000000000000003f00000000000080bf67c73f3f149429bf00000000f9ae3d3f4aeb2bbf0000000071d8413f553627bf000000000000003f0000803f0000803f67c73f3f149429bf00000000f9ae3d3f4aeb2bbf0000000071d8413f553627bf000000000000003f00000000000080bf71d8413f553627bf0000000067c73f3f149429bf0000000002e2433f24d224bf000000000000003f0000803f0000803f71d8413f553627bf0000000067c73f3f149429bf0000000002e2433f24d224bf000000000000003f00000000000080bf02e2433f24d224bf0000000071d8413f553627bf0000000005e4453f976722bf000000000000003f0000803f0000803f02e2433f24d224bf0000000071d8413f553627bf0000000005e4453f976722bf000000000000003f00000000000080bf05e4453f976722bf0000000002e2433f24d224bf0000000067de473fc8f61fbf000000000000003f0000803f0000803f05e4453f976722bf0000000002e2433f24d224bf0000000067de473fc8f61fbf000000000000003f00000000000080bf67de473fc8f61fbf0000000005e4453f976722bf0000000014d1493fcf7f1dbf000000000000003f0000803f0000803f67de473fc8f61fbf0000000005e4453f976722bf0000000014d1493fcf7f1dbf000000000000003f00000000000080bf14d1493fcf7f1dbf0000000067de473fc8f61fbf00000000fabb4b3fc2021bbf000000000000003f0000803f0000803f14d1493fcf7f1dbf0000000067de473fc8f61fbf00000000fabb4b3fc2021bbf000000000000003f00000000000080bffabb4b3fc2021bbf0000000014d1493fcf7f1dbf00000000059f4d3fbc7f18bf000000000000003f0000803f0000803ffabb4b3fc2021bbf0000000014d1493fcf7f1dbf00000000059f4d3fbc7f18bf000000000000003f00000000000080bf059f4d3fbc7f18bf00000000fabb4b3fc2021bbf00000000227a4f3fd5f615bf000000000000003f0000803f0000803f059f4d3fbc7f18bf00000000fabb4b3fc2021bbf00000000227a4f3fd5f615bf000000000000003f00000000000080bf227a4f3fd5f615bf00000000059f4d3fbc7f18bf00000000404d513f266813bf000000000000003f0000803f0000803f227a4f3fd5f615bf00000000059f4d3fbc7f18bf00000000404d513f266813bf000000000000003f00000000000080bf404d513f266813bf00000000227a4f3fd5f615bf000000004c18533fc8d310bf000000000000003f0000803f0000803f404d513f266813bf00000000227a4f3fd5f615bf000000004c18533fc8d310bf000000000000003f00000000000080bf4c18533fc8d310bf00000000404d513f266813bf0000000031db543fdb390ebf000000000000003f0000803f0000803f4c18533fc8d310bf00000000404d513f266813bf0000000031db543fdb390ebf000000000000003f00000000000080bf31db543fdb390ebf000000004c18533fc8d310bf00000000e595563f6c9a0bbf000000000000003f0000803f0000803f31db543fdb390ebf000000004c18533fc8d310bf00000000e595563f6c9a0bbf000000000000003f00000000000080bfe595563f6c9a0bbf0000000031db543fdb390ebf000000005348583f9bf508bf000000000000003f0000803f0000803fe595563f6c9a0bbf0000000031db543fdb390ebf000000005348583f9bf508bf000000000000003f00000000000080bf5348583f9bf508bf00000000e595563f6c9a0bbf000000006af2593f824b06bf000000000000003f0000803f0000803f5348583f9bf508bf00000000e595563f6c9a0bbf000000006af2593f824b06bf000000000000003f00000000000080bf6af2593f824b06bf000000005348583f9bf508bf000000001b945b3f3c9c03bf000000000000003f0000803f0000803f6af2593f824b06bf000000005348583f9bf508bf000000001b945b3f3c9c03bf000000000000003f00000000000080bf1b945b3f3c9c03bf000000006af2593f824b06bf00000000542d5d3fe3e700bf000000000000003f0000803f0000803f1b945b3f3c9c03bf000000006af2593f824b06bf00000000542d5d3fe3e700bf000000000000003f00000000000080bf542d5d3fe3e700bf000000001b945b3f3c9c03bf0000000007be5e3f235dfcbe000000000000003f0000803f0000803f542d5d3fe3e700bf000000001b945b3f3c9c03bf0000000007be5e3f235dfcbe000000000000003f00000000000080bf07be5e3f235dfcbe00000000542d5d3fe3e700bf000000002346603fc5e0f6be000000000000003f0000803f0000803f07be5e3f235dfcbe00000000542d5d3fe3e700bf000000002346603fc5e0f6be000000000000003f00000000000080bf2346603fc5e0f6be0000000007be5e3f235dfcbe0000000099c5613fe35af1be000000000000003f0000803f0000803f2346603fc5e0f6be0000000007be5e3f235dfcbe0000000099c5613fe35af1be000000000000003f00000000000080bf99c5613fe35af1be000000002346603fc5e0f6be000000005c3c633fb3cbebbe000000000000003f0000803f0000803f99c5613fe35af1be000000002346603fc5e0f6be000000005c3c633fb3cbebbe000000000000003f00000000000080bf5c3c633fb3cbebbe0000000099c5613fe35af1be000000005baa643f6c33e6be000000000000003f0000803f0000803f5c3c633fb3cbebbe0000000099c5613fe35af1be000000005baa643f6c33e6be000000000000003f00000000000080bf5baa643f6c33e6be000000005c3c633fb3cbebbe000000008a0f663f4592e0be000000000000003f0000803f0000803f5baa643f6c33e6be000000005c3c633fb3cbebbe000000008a0f663f4592e0be000000000000003f00000000000080bf8a0f663f4592e0be000000005baa643f6c33e6be00000000da6b673f76e8dabe000000000000003f0000803f0000803f8a0f663f4592e0be000000005baa643f6c33e6be00000000da6b673f76e8dabe000000000000003f00000000000080bfda6b673f76e8dabe000000008a0f663f4592e0be000000003ebf683f3636d5be000000000000003f0000803f0000803fda6b673f76e8dabe000000008a0f663f4592e0be000000003ebf683f3636d5be000000000000003f00000000000080bf3ebf683f3636d5be00000000da6b673f76e8dabe00000000a6096a3fcc7bcfbe000000000000003f0000803f0000803f3ebf683f3636d5be00000000da6b673f76e8dabe00000000a6096a3fcc7bcfbe000000000000003f00000000000080bfa6096a3fcc7bcfbe000000003ebf683f3636d5be000000000b4b6b3f54b9c9be000000000000003f0000803f0000803fa6096a3fcc7bcfbe000000003ebf683f3636d5be000000000b4b6b3f54b9c9be000000000000003f00000000000080bf0b4b6b3f54b9c9be00000000a6096a3fcc7bcfbe000000005f836c3f15efc3be000000000000003f0000803f0000803f0b4b6b3f54b9c9be00000000a6096a3fcc7bcfbe000000005f836c3f15efc3be000000000000003f00000000000080bf5f836c3f15efc3be000000000b4b6b3f54b9c9be0000000093b26d3f481dbebe000000000000003f0000803f0000803f5f836c3f15efc3be000000000b4b6b3f54b9c9be0000000093b26d3f481dbebe000000000000003f00000000000080bf93b26d3f481dbebe000000005f836c3f15efc3be000000009ed86e3f2744b8be000000000000003f0000803f0000803f93b26d3f481dbebe000000005f836c3f15efc3be000000009ed86e3f2744b8be000000000000003f00000000000080bf9ed86e3f2744b8be0000000093b26d3f481dbebe0000000074f56f3feb63b2be000000000000003f0000803f0000803f9ed86e3f2744b8be0000000093b26d3f481dbebe0000000074f56f3feb63b2be000000000000003f00000000000080bf74f56f3feb63b2be000000009ed86e3f2744b8be000000000909713fcf7cacbe000000000000003f0000803f0000803f74f56f3feb63b2be000000009ed86e3f2744b8be000000000909713fcf7cacbe000000000000003f00000000000080bf0909713fcf7cacbe0000000074f56f3feb63b2be000000005313723f0c8fa6be000000000000003f0000803f0000803f0909713fcf7cacbe0000000074f56f3feb63b2be000000005313723f0c8fa6be000000000000003f00000000000080bf5313723f0c8fa6be000000000909713fcf7cacbe000000004914733fde9aa0be000000000000003f0000803f0000803f5313723f0c8fa6be000000000909713fcf7cacbe000000004914733fde9aa0be000000000000003f00000000000080bf4914733fde9aa0be000000005313723f0c8fa6be00000000df0b743f7ea09abe000000000000003f0000803f0000803f4914733fde9aa0be000000005313723f0c8fa6be00000000df0b743f7ea09abe000000000000003f00000000000080bfdf0b743f7ea09abe000000004914733fde9aa0be000000000cfa743f28a094be000000000000003f0000803f0000803fdf0b743f7ea09abe000000004914733fde9aa0be000000000cfa743f28a094be000000000000003f00000000000080bf0cfa743f28a094be00000000df0b743f7ea09abe00000000c8de753f179a8ebe000000000000003f0000803f0000803f0cfa743f28a094be00000000df0b743f7ea09abe00000000c8de753f179a8ebe000000000000003f00000000000080bfc8de753f179a8ebe000000000cfa743f28a094be0000000009ba763f878e88be000000000000003f0000803f0000803fc8de753f179a8ebe000000000cfa743f28a094be0000000009ba763f878e88be000000000000003f00000000000080bf09ba763f878e88be00000000c8de753f179a8ebe00000000c78b773fb47d82be000000000000003f0000803f0000803f09ba763f878e88be00000000c8de753f179a8ebe00000000c78b773fb47d82be000000000000003f00000000000080bfc78b773fb47d82be0000000009ba763f878e88be00000000f853783fcfcf78be000000000000003f0000803f0000803fc78b773fb47d82be0000000009ba763f878e88be00000000f853783fcfcf78be000000000000003f00000000000080bff853783fcfcf78be00000000c78b773fb47d82be000000009812793f809a6cbe000000000000003f0000803f0000803ff853783fcfcf78be00000000c78b773fb47d82be000000009812793f809a6cbe000000000000003f00000000000080bf9812793f809a6cbe00000000f853783fcfcf78be000000009dc7793f125c60be000000000000003f0000803f0000803f9812793f809a6cbe00000000f853783fcfcf78be000000009dc7793f125c60be000000000000003f00000000000080bf9dc7793f125c60be000000009812793f809a6cbe0000000002737a3ffd1454be000000000000003f0000803f0000803f9dc7793f125c60be000000009812793f809a6cbe0000000002737a3ffd1454be000000000000003f00000000000080bf02737a3ffd1454be000000009dc7793f125c60be00000000bf147b3fbcc547be000000000000003f0000803f0000803f02737a3ffd1454be000000009dc7793f125c60be00000000bf147b3fbcc547be000000000000003f00000000000080bfbf147b3fbcc547be0000000002737a3ffd1454be00000000ceac7b3fc66e3bbe000000000000003f0000803f0000803fbf147b3fbcc547be0000000002737a3ffd1454be00000000ceac7b3fc66e3bbe000000000000003f00000000000080bfceac7b3fc66e3bbe00000000bf147b3fbcc547be00000000283b7c3f97102fbe000000000000003f0000803f0000803fceac7b3fc66e3bbe00000000bf147b3fbcc547be00000000283b7c3f97102fbe000000000000003f00000000000080bf283b7c3f97102fbe00000000ceac7b3fc66e3bbe00000000cabf7c3fa8ab22be000000000000003f0000803f0000803f283b7c3f97102fbe00000000ceac7b3fc66e3bbe00000000cabf7c3fa8ab22be000000000000003f00000000000080bfcabf7c3fa8ab22be00000000283b7c3f97102fbe00000000ad3a7d3f744016be000000000000003f0000803f0000803fcabf7c3fa8ab22be00000000283b7c3f97102fbe00000000ad3a7d3f744016be000000000000003f00000000000080bfad3a7d3f744016be00000000cabf7c3fa8ab22be00000000ccab7d3f75cf09be000000000000003f0000803f0000803fad3a7d3f744016be00000000cabf7c3fa8ab22be00000000ccab7d3f75cf09be000000000000003f00000000000080bfccab7d3f75cf09be00000000ad3a7d3f744016be0000000024137e3f4ab2fabd000000000000003f0000803f0000803fccab7d3f75cf09be00000000ad3a7d3f744016be0000000024137e3f4ab2fabd000000000000003f00000000000080bf24137e3f4ab2fabd00000000ccab7d3f75cf09be00000000b1707e3f01bce1bd000000000000003f0000803f0000803f24137e3f4ab2fabd00000000ccab7d3f75cf09be00000000b1707e3f01bce1bd000000000000003f00000000000080bfb1707e3f01bce1bd0000000024137e3f4ab2fabd000000006ec47e3f04bdc8bd000000000000003f0000803f0000803fb1707e3f01bce1bd0000000024137e3f4ab2fabd000000006ec47e3f04bdc8bd000000000000003f00000000000080bf6ec47e3f04bdc8bd00000000b1707e3f01bce1bd00000000580e7f3f4ab6afbd000000000000003f0000803f0000803f6ec47e3f04bdc8bd00000000b1707e3f01bce1bd00000000580e7f3f4ab6afbd000000000000003f00000000000080bf580e7f3f4ab6afbd000000006ec47e3f04bdc8bd000000006d4e7f3f09a996bd000000000000003f0000803f0000803f580e7f3f4ab6afbd000000006ec47e3f04bdc8bd000000006d4e7f3f09a996bd000000000000003f00000000000080bf6d4e7f3f09a996bd00000000580e7f3f4ab6afbd00000000ab847f3f742b7bbd000000000000003f0000803f0000803f6d4e7f3f09a996bd00000000580e7f3f4ab6afbd00000000ab847f3f742b7bbd000000000000003f00000000000080bfab847f3f742b7bbd000000006d4e7f3f09a996bd000000000fb17f3f26fb48bd000000000000003f0000803f0000803fab847f3f742b7bbd000000006d4e7f3f09a996bd000000000fb17f3f26fb48bd000000000000003f00000000000080bf0fb17f3f26fb48bd00000000ab847f3f742b7bbd0000000098d37f3f19c316bd000000000000003f0000803f0000803f0fb17f3f26fb48bd00000000ab847f3f742b7bbd0000000098d37f3f19c316bd000000000000003f00000000000080bf98d37f3f19c316bd000000000fb17f3f26fb48bd0000000043ec7f3f770ac9bc000000000000003f0000803f0000803f98d37f3f19c316bd000000000fb17f3f26fb48bd0000000043ec7f3f770ac9bc000000000000003f00000000000080bf43ec7f3f770ac9bc0000000098d37f3f19c316bd0000000011fb7f3ffa0d49bc000000000000003f0000803f0000803f43ec7f3f770ac9bc0000000098d37f3f19c316bd0000000011fb7f3ffa0d49bc000000000000003f00000000000080bf11fb7f3ffa0d49bc0000000043ec7f3f770ac9bc000000000000803f00000000000000000000003f0000803f0000803f11fb7f3ffa0d49bc0000000043ec7f3f770ac9bc000000000000803f00000000000000000000003f00000000000080bf 210 | m_CompressedMesh: 211 | m_Vertices: 212 | m_NumItems: 0 213 | m_Range: 0 214 | m_Start: 0 215 | m_Data: 216 | m_BitSize: 0 217 | m_UV: 218 | m_NumItems: 0 219 | m_Range: 0 220 | m_Start: 0 221 | m_Data: 222 | m_BitSize: 0 223 | m_Normals: 224 | m_NumItems: 0 225 | m_Range: 0 226 | m_Start: 0 227 | m_Data: 228 | m_BitSize: 0 229 | m_Tangents: 230 | m_NumItems: 0 231 | m_Range: 0 232 | m_Start: 0 233 | m_Data: 234 | m_BitSize: 0 235 | m_Weights: 236 | m_NumItems: 0 237 | m_Data: 238 | m_BitSize: 0 239 | m_NormalSigns: 240 | m_NumItems: 0 241 | m_Data: 242 | m_BitSize: 0 243 | m_TangentSigns: 244 | m_NumItems: 0 245 | m_Data: 246 | m_BitSize: 0 247 | m_FloatColors: 248 | m_NumItems: 0 249 | m_Range: 0 250 | m_Start: 0 251 | m_Data: 252 | m_BitSize: 0 253 | m_BoneIndices: 254 | m_NumItems: 0 255 | m_Data: 256 | m_BitSize: 0 257 | m_Triangles: 258 | m_NumItems: 0 259 | m_Data: 260 | m_BitSize: 0 261 | m_UVInfo: 0 262 | m_LocalAABB: 263 | m_Center: {x: 0, y: 0, z: 0} 264 | m_Extent: {x: 1, y: 1, z: 0} 265 | m_MeshUsageFlags: 0 266 | m_BakedConvexCollisionMesh: 267 | m_BakedTriangleCollisionMesh: 268 | m_MeshMetrics[0]: 1 269 | m_MeshMetrics[1]: 1 270 | m_MeshOptimized: 0 271 | m_StreamData: 272 | offset: 0 273 | size: 0 274 | path: 275 | --- !u!1 &600625805 276 | GameObject: 277 | m_ObjectHideFlags: 0 278 | m_CorrespondingSourceObject: {fileID: 0} 279 | m_PrefabInstance: {fileID: 0} 280 | m_PrefabAsset: {fileID: 0} 281 | serializedVersion: 6 282 | m_Component: 283 | - component: {fileID: 600625807} 284 | - component: {fileID: 600625806} 285 | - component: {fileID: 600625808} 286 | m_Layer: 0 287 | m_Name: NoiseRingSource 288 | m_TagString: Untagged 289 | m_Icon: {fileID: 0} 290 | m_NavMeshLayer: 0 291 | m_StaticEditorFlags: 0 292 | m_IsActive: 1 293 | --- !u!114 &600625806 294 | MonoBehaviour: 295 | m_ObjectHideFlags: 0 296 | m_CorrespondingSourceObject: {fileID: 0} 297 | m_PrefabInstance: {fileID: 0} 298 | m_PrefabAsset: {fileID: 0} 299 | m_GameObject: {fileID: 600625805} 300 | m_Enabled: 1 301 | m_EditorHideFlags: 0 302 | m_Script: {fileID: 11500000, guid: aa8bfed8ba57c834a896da7103208ad1, type: 3} 303 | m_Name: 304 | m_EditorClassIdentifier: 305 | numberOfSegments: 512 306 | numberOfRings: 16 307 | radialOffset: 0.5 308 | lineTexture: {fileID: 2800000, guid: c7fc83601dfcaf6419daeccf9d160bf8, type: 3} 309 | color: {r: 1, g: 0.35442418, b: 0, a: 1} 310 | multiplier: 1 311 | lineWidth: 0.1 312 | noiseScale: 0.7 313 | noiseHeight: 3 314 | detailNoiseScale: 4 315 | detailNoiseHeight: 0.3 316 | speed: 1 317 | animationDuration: 3 318 | endRadius: 10 319 | intensityCurve: 320 | serializedVersion: 2 321 | m_Curve: 322 | - serializedVersion: 3 323 | time: 0 324 | value: 0 325 | inSlope: 2 326 | outSlope: 2 327 | tangentMode: 0 328 | weightedMode: 0 329 | inWeight: 0.33333334 330 | outWeight: 0.33333334 331 | - serializedVersion: 3 332 | time: 0.7932739 333 | value: 1 334 | inSlope: 0 335 | outSlope: 0 336 | tangentMode: 0 337 | weightedMode: 0 338 | inWeight: 0.33333334 339 | outWeight: 0.33333334 340 | - serializedVersion: 3 341 | time: 1 342 | value: 0 343 | inSlope: 0 344 | outSlope: 0 345 | tangentMode: 0 346 | weightedMode: 0 347 | inWeight: 0 348 | outWeight: 0 349 | m_PreInfinity: 2 350 | m_PostInfinity: 2 351 | m_RotationOrder: 4 352 | maxHeight: 1 353 | heightCurve: 354 | serializedVersion: 2 355 | m_Curve: 356 | - serializedVersion: 3 357 | time: 0 358 | value: 0 359 | inSlope: 0.6133072 360 | outSlope: 0.6133072 361 | tangentMode: 0 362 | weightedMode: 0 363 | inWeight: 0.33333334 364 | outWeight: 0.064446814 365 | - serializedVersion: 3 366 | time: 0.7 367 | value: 1 368 | inSlope: 0 369 | outSlope: 0 370 | tangentMode: 0 371 | weightedMode: 0 372 | inWeight: 0.33333334 373 | outWeight: 0.2136586 374 | - serializedVersion: 3 375 | time: 1 376 | value: 0 377 | inSlope: -5.106617 378 | outSlope: -5.106617 379 | tangentMode: 0 380 | weightedMode: 0 381 | inWeight: 0.117969014 382 | outWeight: 0.33333334 383 | m_PreInfinity: 2 384 | m_PostInfinity: 2 385 | m_RotationOrder: 4 386 | testTrigger: 0 387 | ringMesh: {fileID: 252354921} 388 | --- !u!4 &600625807 389 | Transform: 390 | m_ObjectHideFlags: 0 391 | m_CorrespondingSourceObject: {fileID: 0} 392 | m_PrefabInstance: {fileID: 0} 393 | m_PrefabAsset: {fileID: 0} 394 | m_GameObject: {fileID: 600625805} 395 | m_LocalRotation: {x: -0.7071066, y: -0, z: -0, w: 0.70710707} 396 | m_LocalPosition: {x: 0, y: 0, z: 0} 397 | m_LocalScale: {x: 1, y: 1, z: 1} 398 | m_Children: [] 399 | m_Father: {fileID: 0} 400 | m_RootOrder: 2 401 | m_LocalEulerAnglesHint: {x: -90.00001, y: 0, z: 0} 402 | --- !u!114 &600625808 403 | MonoBehaviour: 404 | m_ObjectHideFlags: 0 405 | m_CorrespondingSourceObject: {fileID: 0} 406 | m_PrefabInstance: {fileID: 0} 407 | m_PrefabAsset: {fileID: 0} 408 | m_GameObject: {fileID: 600625805} 409 | m_Enabled: 1 410 | m_EditorHideFlags: 0 411 | m_Script: {fileID: 11500000, guid: 29b07fcb549866c44a214c0954042b5c, type: 3} 412 | m_Name: 413 | m_EditorClassIdentifier: 414 | --- !u!1 &612172945 415 | GameObject: 416 | m_ObjectHideFlags: 0 417 | m_CorrespondingSourceObject: {fileID: 0} 418 | m_PrefabInstance: {fileID: 0} 419 | m_PrefabAsset: {fileID: 0} 420 | serializedVersion: 6 421 | m_Component: 422 | - component: {fileID: 612172947} 423 | - component: {fileID: 612172946} 424 | m_Layer: 0 425 | m_Name: Directional Light 426 | m_TagString: Untagged 427 | m_Icon: {fileID: 0} 428 | m_NavMeshLayer: 0 429 | m_StaticEditorFlags: 0 430 | m_IsActive: 1 431 | --- !u!108 &612172946 432 | Light: 433 | m_ObjectHideFlags: 0 434 | m_CorrespondingSourceObject: {fileID: 0} 435 | m_PrefabInstance: {fileID: 0} 436 | m_PrefabAsset: {fileID: 0} 437 | m_GameObject: {fileID: 612172945} 438 | m_Enabled: 1 439 | serializedVersion: 8 440 | m_Type: 1 441 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} 442 | m_Intensity: 1 443 | m_Range: 10 444 | m_SpotAngle: 30 445 | m_CookieSize: 10 446 | m_Shadows: 447 | m_Type: 2 448 | m_Resolution: -1 449 | m_CustomResolution: -1 450 | m_Strength: 1 451 | m_Bias: 0.05 452 | m_NormalBias: 0.4 453 | m_NearPlane: 0.2 454 | m_Cookie: {fileID: 0} 455 | m_DrawHalo: 0 456 | m_Flare: {fileID: 0} 457 | m_RenderMode: 0 458 | m_CullingMask: 459 | serializedVersion: 2 460 | m_Bits: 4294967295 461 | m_Lightmapping: 4 462 | m_LightShadowCasterMode: 0 463 | m_AreaSize: {x: 1, y: 1} 464 | m_BounceIntensity: 1 465 | m_ColorTemperature: 6570 466 | m_UseColorTemperature: 0 467 | m_ShadowRadius: 0 468 | m_ShadowAngle: 0 469 | --- !u!4 &612172947 470 | Transform: 471 | m_ObjectHideFlags: 0 472 | m_CorrespondingSourceObject: {fileID: 0} 473 | m_PrefabInstance: {fileID: 0} 474 | m_PrefabAsset: {fileID: 0} 475 | m_GameObject: {fileID: 612172945} 476 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} 477 | m_LocalPosition: {x: 0, y: 3, z: 0} 478 | m_LocalScale: {x: 1, y: 1, z: 1} 479 | m_Children: [] 480 | m_Father: {fileID: 0} 481 | m_RootOrder: 1 482 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} 483 | --- !u!1 &1424501515 484 | GameObject: 485 | m_ObjectHideFlags: 0 486 | m_CorrespondingSourceObject: {fileID: 0} 487 | m_PrefabInstance: {fileID: 0} 488 | m_PrefabAsset: {fileID: 0} 489 | serializedVersion: 6 490 | m_Component: 491 | - component: {fileID: 1424501517} 492 | - component: {fileID: 1424501516} 493 | m_Layer: 0 494 | m_Name: UpdateShaderGlobals 495 | m_TagString: Untagged 496 | m_Icon: {fileID: 0} 497 | m_NavMeshLayer: 0 498 | m_StaticEditorFlags: 0 499 | m_IsActive: 1 500 | --- !u!114 &1424501516 501 | MonoBehaviour: 502 | m_ObjectHideFlags: 0 503 | m_CorrespondingSourceObject: {fileID: 0} 504 | m_PrefabInstance: {fileID: 0} 505 | m_PrefabAsset: {fileID: 0} 506 | m_GameObject: {fileID: 1424501515} 507 | m_Enabled: 1 508 | m_EditorHideFlags: 0 509 | m_Script: {fileID: 11500000, guid: 0758bde6866ac4b439f61179bbd2cda6, type: 3} 510 | m_Name: 511 | m_EditorClassIdentifier: 512 | --- !u!4 &1424501517 513 | Transform: 514 | m_ObjectHideFlags: 0 515 | m_CorrespondingSourceObject: {fileID: 0} 516 | m_PrefabInstance: {fileID: 0} 517 | m_PrefabAsset: {fileID: 0} 518 | m_GameObject: {fileID: 1424501515} 519 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 520 | m_LocalPosition: {x: 0, y: 0, z: 0} 521 | m_LocalScale: {x: 1, y: 1, z: 1} 522 | m_Children: [] 523 | m_Father: {fileID: 0} 524 | m_RootOrder: 3 525 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 526 | --- !u!1 &1710629700 527 | GameObject: 528 | m_ObjectHideFlags: 0 529 | m_CorrespondingSourceObject: {fileID: 0} 530 | m_PrefabInstance: {fileID: 0} 531 | m_PrefabAsset: {fileID: 0} 532 | serializedVersion: 6 533 | m_Component: 534 | - component: {fileID: 1710629704} 535 | - component: {fileID: 1710629703} 536 | - component: {fileID: 1710629702} 537 | - component: {fileID: 1710629701} 538 | m_Layer: 0 539 | m_Name: GroundPlane 540 | m_TagString: Untagged 541 | m_Icon: {fileID: 0} 542 | m_NavMeshLayer: 0 543 | m_StaticEditorFlags: 0 544 | m_IsActive: 1 545 | --- !u!64 &1710629701 546 | MeshCollider: 547 | m_ObjectHideFlags: 0 548 | m_CorrespondingSourceObject: {fileID: 0} 549 | m_PrefabInstance: {fileID: 0} 550 | m_PrefabAsset: {fileID: 0} 551 | m_GameObject: {fileID: 1710629700} 552 | m_Material: {fileID: 0} 553 | m_IsTrigger: 0 554 | m_Enabled: 1 555 | serializedVersion: 3 556 | m_Convex: 0 557 | m_CookingOptions: 14 558 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 559 | --- !u!23 &1710629702 560 | MeshRenderer: 561 | m_ObjectHideFlags: 0 562 | m_CorrespondingSourceObject: {fileID: 0} 563 | m_PrefabInstance: {fileID: 0} 564 | m_PrefabAsset: {fileID: 0} 565 | m_GameObject: {fileID: 1710629700} 566 | m_Enabled: 1 567 | m_CastShadows: 1 568 | m_ReceiveShadows: 1 569 | m_DynamicOccludee: 1 570 | m_MotionVectors: 1 571 | m_LightProbeUsage: 1 572 | m_ReflectionProbeUsage: 1 573 | m_RenderingLayerMask: 1 574 | m_RendererPriority: 0 575 | m_Materials: 576 | - {fileID: 2100000, guid: fbc4c04b9d0722a4294bd47f647c82dc, type: 2} 577 | m_StaticBatchInfo: 578 | firstSubMesh: 0 579 | subMeshCount: 0 580 | m_StaticBatchRoot: {fileID: 0} 581 | m_ProbeAnchor: {fileID: 0} 582 | m_LightProbeVolumeOverride: {fileID: 0} 583 | m_ScaleInLightmap: 1 584 | m_PreserveUVs: 0 585 | m_IgnoreNormalsForChartDetection: 0 586 | m_ImportantGI: 0 587 | m_StitchLightmapSeams: 0 588 | m_SelectedEditorRenderState: 3 589 | m_MinimumChartSize: 4 590 | m_AutoUVMaxDistance: 0.5 591 | m_AutoUVMaxAngle: 89 592 | m_LightmapParameters: {fileID: 0} 593 | m_SortingLayerID: 0 594 | m_SortingLayer: 0 595 | m_SortingOrder: 0 596 | --- !u!33 &1710629703 597 | MeshFilter: 598 | m_ObjectHideFlags: 0 599 | m_CorrespondingSourceObject: {fileID: 0} 600 | m_PrefabInstance: {fileID: 0} 601 | m_PrefabAsset: {fileID: 0} 602 | m_GameObject: {fileID: 1710629700} 603 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 604 | --- !u!4 &1710629704 605 | Transform: 606 | m_ObjectHideFlags: 0 607 | m_CorrespondingSourceObject: {fileID: 0} 608 | m_PrefabInstance: {fileID: 0} 609 | m_PrefabAsset: {fileID: 0} 610 | m_GameObject: {fileID: 1710629700} 611 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 612 | m_LocalPosition: {x: 0, y: 0, z: 0} 613 | m_LocalScale: {x: 10, y: 10, z: 10} 614 | m_Children: [] 615 | m_Father: {fileID: 0} 616 | m_RootOrder: 4 617 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 618 | --- !u!1 &2033932778 619 | GameObject: 620 | m_ObjectHideFlags: 0 621 | m_CorrespondingSourceObject: {fileID: 0} 622 | m_PrefabInstance: {fileID: 0} 623 | m_PrefabAsset: {fileID: 0} 624 | serializedVersion: 6 625 | m_Component: 626 | - component: {fileID: 2033932781} 627 | - component: {fileID: 2033932780} 628 | - component: {fileID: 2033932779} 629 | m_Layer: 0 630 | m_Name: Main Camera 631 | m_TagString: MainCamera 632 | m_Icon: {fileID: 0} 633 | m_NavMeshLayer: 0 634 | m_StaticEditorFlags: 0 635 | m_IsActive: 1 636 | --- !u!81 &2033932779 637 | AudioListener: 638 | m_ObjectHideFlags: 0 639 | m_CorrespondingSourceObject: {fileID: 0} 640 | m_PrefabInstance: {fileID: 0} 641 | m_PrefabAsset: {fileID: 0} 642 | m_GameObject: {fileID: 2033932778} 643 | m_Enabled: 1 644 | --- !u!20 &2033932780 645 | Camera: 646 | m_ObjectHideFlags: 0 647 | m_CorrespondingSourceObject: {fileID: 0} 648 | m_PrefabInstance: {fileID: 0} 649 | m_PrefabAsset: {fileID: 0} 650 | m_GameObject: {fileID: 2033932778} 651 | m_Enabled: 1 652 | serializedVersion: 2 653 | m_ClearFlags: 1 654 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} 655 | m_projectionMatrixMode: 1 656 | m_SensorSize: {x: 36, y: 24} 657 | m_LensShift: {x: 0, y: 0} 658 | m_GateFitMode: 2 659 | m_FocalLength: 50 660 | m_NormalizedViewPortRect: 661 | serializedVersion: 2 662 | x: 0 663 | y: 0 664 | width: 1 665 | height: 1 666 | near clip plane: 0.3 667 | far clip plane: 1000 668 | field of view: 60 669 | orthographic: 0 670 | orthographic size: 5 671 | m_Depth: -1 672 | m_CullingMask: 673 | serializedVersion: 2 674 | m_Bits: 4294967295 675 | m_RenderingPath: -1 676 | m_TargetTexture: {fileID: 0} 677 | m_TargetDisplay: 0 678 | m_TargetEye: 3 679 | m_HDR: 1 680 | m_AllowMSAA: 1 681 | m_AllowDynamicResolution: 0 682 | m_ForceIntoRT: 0 683 | m_OcclusionCulling: 1 684 | m_StereoConvergence: 10 685 | m_StereoSeparation: 0.022 686 | --- !u!4 &2033932781 687 | Transform: 688 | m_ObjectHideFlags: 0 689 | m_CorrespondingSourceObject: {fileID: 0} 690 | m_PrefabInstance: {fileID: 0} 691 | m_PrefabAsset: {fileID: 0} 692 | m_GameObject: {fileID: 2033932778} 693 | m_LocalRotation: {x: -0.22044417, y: 0.22073303, z: -0.05128661, w: -0.9487102} 694 | m_LocalPosition: {x: 7.631777, y: 8.492876, z: -15.512779} 695 | m_LocalScale: {x: 1, y: 1, z: 1} 696 | m_Children: [] 697 | m_Father: {fileID: 0} 698 | m_RootOrder: 0 699 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 700 | -------------------------------------------------------------------------------- /Assets/Example/ExampleScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 553a27608c123e048bc27dd4631da955 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Example/Ground.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Ground 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.275 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0.18867922, g: 0.18867922, b: 0.18867922, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | -------------------------------------------------------------------------------- /Assets/Example/Ground.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fbc4c04b9d0722a4294bd47f647c82dc 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Example/RepeatedNoiseRingSourceTrigger.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using NoiseRings; 3 | 4 | public class RepeatedNoiseRingSourceTrigger : MonoBehaviour 5 | { 6 | NoiseRingSource source; 7 | float animationTime = 0.0f; 8 | 9 | void OnEnable () 10 | { 11 | source = GetComponent(); 12 | 13 | if (source != null) 14 | source.Trigger(); 15 | else 16 | Debug.LogError("Must be attached to a GameObject with a NoiseRingSource component"); 17 | } 18 | 19 | void Update () 20 | { 21 | if (source == null) 22 | return; 23 | 24 | float animationDuration = source.AnimationDuration(); 25 | 26 | animationTime += Time.deltaTime; 27 | 28 | while (animationTime >= animationDuration) 29 | { 30 | source.Trigger(); 31 | animationTime -= animationDuration; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Assets/Example/RepeatedNoiseRingSourceTrigger.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 29b07fcb549866c44a214c0954042b5c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NoiseRings.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1d9842ab04303244db999b79b928a48b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/NoiseRings/CGNoise.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1cd2b490266a9ce46993b532c8b97ef3 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/NoiseRings/CGNoise/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (C) 2011 by Ashima Arts 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | 21 | -------------------------------------------------------------------------------- /Assets/NoiseRings/CGNoise/LICENSE.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 914798df2e7079140b45ff1addd954d0 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/NoiseRings/CGNoise/Noise.cginc: -------------------------------------------------------------------------------- 1 | #ifndef NOISE_INCLUDED 2 | #define NOISE_INCLUDED 3 | // 4 | // Description : Array and textureless GLSL 2D simplex noise function. 5 | // Author : Ian McEwan, Ashima Arts. 6 | // Maintainer : ijm 7 | // Lastmod : 20110822 (ijm) 8 | // License : Copyright (C) 2011 Ashima Arts. All rights reserved. 9 | // Distributed under the MIT License. See LICENSE file. 10 | // https://github.com/ashima/webgl-noise 11 | // 12 | 13 | float4 mod289(float4 x) { 14 | return x - floor(x * (1.0 / 289.0)) * 289.0; 15 | } 16 | float3 mod289(float3 x) { 17 | return x - floor(x * (1.0 / 289.0)) * 289.0; 18 | } 19 | 20 | float2 mod289(float2 x) { 21 | return x - floor(x * (1.0 / 289.0)) * 289.0; 22 | } 23 | 24 | float mod289(float x) { 25 | return x - floor(x * (1.0 / 289.0)) * 289.0; 26 | } 27 | 28 | float permute(float x) { 29 | return mod289(((x*34.0) + 1.0)*x); 30 | } 31 | 32 | float3 permute(float3 x) { 33 | return mod289(((x*34.0) + 1.0)*x); 34 | } 35 | 36 | float4 permute(float4 x) { 37 | return mod289(((x*34.0) + 1.0)*x); 38 | } 39 | 40 | float4 taylorInvSqrt(float4 r) 41 | { 42 | return 1.79284291400159 - 0.85373472095314 * r; 43 | } 44 | 45 | float taylorInvSqrt(float r) 46 | { 47 | return 1.79284291400159 - 0.85373472095314 * r; 48 | } 49 | 50 | float4 grad4(float j, float4 ip) 51 | { 52 | const float4 ones = float4(1.0, 1.0, 1.0, -1.0); 53 | float4 p, s; 54 | 55 | //p.xyz = floor( frac (float3(j) * ip.xyz) * 7.0) * ip.z - 1.0; // Error? 56 | p.xyz = floor(frac(float3(j, j, j) * ip.xyz) * 7.0) * ip.z - 1.0; 57 | p.w = 1.5 - dot(abs(p.xyz), ones.xyz); 58 | //s = p;//float4(lessThan(p, float4(0.0))); 59 | if (p.x<0) 60 | s.x = 1; 61 | else 62 | s.x = 0; 63 | if (p.y<0) 64 | s.y = 1; 65 | else 66 | s.y = 0; 67 | if (p.z<0) 68 | s.z = 1; 69 | else 70 | s.z = 0; 71 | if (p.w<0) 72 | s.w = 1; 73 | else 74 | s.w = 0; 75 | p.xyz = p.xyz + (s.xyz*2.0 - 1.0) * s.www; 76 | 77 | return p; 78 | } 79 | 80 | 81 | float snoise(float2 v) 82 | { 83 | const float4 C = float4(0.211324865405187, // (3.0-sqrt(3.0))/6.0 84 | 0.366025403784439, // 0.5*(sqrt(3.0)-1.0) 85 | -0.577350269189626, // -1.0 + 2.0 * C.x 86 | 0.024390243902439); // 1.0 / 41.0 87 | // First corner 88 | float2 i = floor(v + dot(v, C.yy)); 89 | float2 x0 = v - i + dot(i, C.xx); 90 | 91 | // Other corners 92 | float2 i1; 93 | //i1.x = step( x0.y, x0.x ); // x0.x > x0.y ? 1.0 : 0.0 94 | //i1.y = 1.0 - i1.x; 95 | i1 = (x0.x > x0.y) ? float2(1.0, 0.0) : float2(0.0, 1.0); 96 | // x0 = x0 - 0.0 + 0.0 * C.xx ; 97 | // x1 = x0 - i1 + 1.0 * C.xx ; 98 | // x2 = x0 - 1.0 + 2.0 * C.xx ; 99 | float4 x12 = x0.xyxy + C.xxzz; 100 | x12.xy -= i1; 101 | 102 | // Permutations 103 | i = mod289(i); // Avoid truncation effects in permutation 104 | float3 p = permute(permute(i.y + float3(0.0, i1.y, 1.0)) 105 | + i.x + float3(0.0, i1.x, 1.0)); 106 | 107 | float3 m = max(0.5 - float3(dot(x0, x0), dot(x12.xy, x12.xy), dot(x12.zw, x12.zw)), 0.0); 108 | m = m*m; 109 | m = m*m; 110 | 111 | // Gradients: 41 points uniformly over a line, mapped onto a diamond. 112 | // The ring size 17*17 = 289 is close to a multiple of 41 (41*7 = 287) 113 | 114 | float3 x = 2.0 * frac(p * C.www) - 1.0; 115 | float3 h = abs(x) - 0.5; 116 | float3 ox = floor(x + 0.5); 117 | float3 a0 = x - ox; 118 | 119 | // Normalise gradients implicitly by scaling m 120 | // Approximation of: m *= inversesqrt( a0*a0 + h*h ); 121 | m *= 1.79284291400159 - 0.85373472095314 * (a0*a0 + h*h); 122 | 123 | // Compute final noise value at P 124 | float3 g; 125 | g.x = a0.x * x0.x + h.x * x0.y; 126 | g.yz = a0.yz * x12.xz + h.yz * x12.yw; 127 | return 130.0 * dot(m, g); 128 | } 129 | 130 | float snoise(float3 v) 131 | { 132 | const float2 C = float2(1.0 / 6.0, 1.0 / 3.0); 133 | const float4 D = float4(0.0, 0.5, 1.0, 2.0); 134 | 135 | // First corner 136 | float3 i = floor(v + dot(v, C.yyy)); 137 | float3 x0 = v - i + dot(i, C.xxx); 138 | 139 | // Other corners 140 | float3 g = step(x0.yzx, x0.xyz); 141 | float3 l = 1.0 - g; 142 | float3 i1 = min(g.xyz, l.zxy); 143 | float3 i2 = max(g.xyz, l.zxy); 144 | 145 | // x0 = x0 - 0.0 + 0.0 * C.xxx; 146 | // x1 = x0 - i1 + 1.0 * C.xxx; 147 | // x2 = x0 - i2 + 2.0 * C.xxx; 148 | // x3 = x0 - 1.0 + 3.0 * C.xxx; 149 | float3 x1 = x0 - i1 + C.xxx; 150 | float3 x2 = x0 - i2 + C.yyy; // 2.0*C.x = 1/3 = C.y 151 | float3 x3 = x0 - D.yyy; // -1.0+3.0*C.x = -0.5 = -D.y 152 | 153 | // Permutations 154 | i = mod289(i); 155 | float4 p = permute(permute(permute( 156 | i.z + float4(0.0, i1.z, i2.z, 1.0)) 157 | + i.y + float4(0.0, i1.y, i2.y, 1.0)) 158 | + i.x + float4(0.0, i1.x, i2.x, 1.0)); 159 | 160 | // Gradients: 7x7 points over a square, mapped onto an octahedron. 161 | // The ring size 17*17 = 289 is close to a multiple of 49 (49*6 = 294) 162 | float n_ = 0.142857142857; // 1.0/7.0 163 | float3 ns = n_ * D.wyz - D.xzx; 164 | 165 | float4 j = p - 49.0 * floor(p * ns.z * ns.z); // mod(p,7*7) 166 | 167 | float4 x_ = floor(j * ns.z); 168 | float4 y_ = floor(j - 7.0 * x_); // mod(j,N) 169 | 170 | float4 x = x_ *ns.x + ns.yyyy; 171 | float4 y = y_ *ns.x + ns.yyyy; 172 | float4 h = 1.0 - abs(x) - abs(y); 173 | 174 | float4 b0 = float4(x.xy, y.xy); 175 | float4 b1 = float4(x.zw, y.zw); 176 | 177 | //float4 s0 = float4(lessThan(b0,0.0))*2.0 - 1.0; 178 | //float4 s1 = float4(lessThan(b1,0.0))*2.0 - 1.0; 179 | float4 s0 = floor(b0)*2.0 + 1.0; 180 | float4 s1 = floor(b1)*2.0 + 1.0; 181 | float4 sh = -step(h, float4(0.0, 0.0, 0.0, 0.0)); 182 | 183 | float4 a0 = b0.xzyw + s0.xzyw*sh.xxyy; 184 | float4 a1 = b1.xzyw + s1.xzyw*sh.zzww; 185 | 186 | float3 p0 = float3(a0.xy, h.x); 187 | float3 p1 = float3(a0.zw, h.y); 188 | float3 p2 = float3(a1.xy, h.z); 189 | float3 p3 = float3(a1.zw, h.w); 190 | 191 | //Normalise gradients 192 | float4 norm = taylorInvSqrt(float4(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3))); 193 | p0 *= norm.x; 194 | p1 *= norm.y; 195 | p2 *= norm.z; 196 | p3 *= norm.w; 197 | 198 | // Mix final noise value 199 | float4 m = max(0.6 - float4(dot(x0, x0), dot(x1, x1), dot(x2, x2), dot(x3, x3)), 0.0); 200 | m = m * m; 201 | return 42.0 * dot(m*m, float4(dot(p0, x0), dot(p1, x1), 202 | dot(p2, x2), dot(p3, x3))); 203 | } 204 | 205 | // (sqrt(5) - 1)/4 = F4, used once below 206 | #define F4 0.309016994374947451 207 | 208 | float snoise(float4 v) 209 | { 210 | const float4 C = float4(0.138196601125011, // (5 - sqrt(5))/20 G4 211 | 0.276393202250021, // 2 * G4 212 | 0.414589803375032, // 3 * G4 213 | -0.447213595499958); // -1 + 4 * G4 214 | 215 | // First corner 216 | float4 i = floor(v + dot(v, float4(F4, F4, F4, F4))); 217 | float4 x0 = v - i + dot(i, C.xxxx); 218 | 219 | // Other corners 220 | 221 | // Rank sorting originally contributed by Bill Licea-Kane, AMD (formerly ATI) 222 | float4 i0; 223 | float3 isX = step(x0.yzw, x0.xxx); 224 | float3 isYZ = step(x0.zww, x0.yyz); 225 | // i0.x = dot( isX, float3( 1.0 ) ); 226 | i0.x = isX.x + isX.y + isX.z; 227 | i0.yzw = 1.0 - isX; 228 | // i0.y += dot( isYZ.xy, float2( 1.0 ) ); 229 | i0.y += isYZ.x + isYZ.y; 230 | i0.zw += 1.0 - isYZ.xy; 231 | i0.z += isYZ.z; 232 | i0.w += 1.0 - isYZ.z; 233 | 234 | // i0 now contains the unique values 0,1,2,3 in each channel 235 | float4 i3 = clamp(i0, 0.0, 1.0); 236 | float4 i2 = clamp(i0 - 1.0, 0.0, 1.0); 237 | float4 i1 = clamp(i0 - 2.0, 0.0, 1.0); 238 | 239 | // x0 = x0 - 0.0 + 0.0 * C.xxxx 240 | // x1 = x0 - i1 + 1.0 * C.xxxx 241 | // x2 = x0 - i2 + 2.0 * C.xxxx 242 | // x3 = x0 - i3 + 3.0 * C.xxxx 243 | // x4 = x0 - 1.0 + 4.0 * C.xxxx 244 | float4 x1 = x0 - i1 + C.xxxx; 245 | float4 x2 = x0 - i2 + C.yyyy; 246 | float4 x3 = x0 - i3 + C.zzzz; 247 | float4 x4 = x0 + C.wwww; 248 | 249 | // Permutations 250 | i = mod289(i); 251 | float j0 = permute(permute(permute(permute(i.w) + i.z) + i.y) + i.x); 252 | float4 j1 = permute(permute(permute(permute( 253 | i.w + float4(i1.w, i2.w, i3.w, 1.0)) 254 | + i.z + float4(i1.z, i2.z, i3.z, 1.0)) 255 | + i.y + float4(i1.y, i2.y, i3.y, 1.0)) 256 | + i.x + float4(i1.x, i2.x, i3.x, 1.0)); 257 | 258 | // Gradients: 7x7x6 points over a cube, mapped onto a 4-cross polytope 259 | // 7*7*6 = 294, which is close to the ring size 17*17 = 289. 260 | float4 ip = float4(1.0 / 294.0, 1.0 / 49.0, 1.0 / 7.0, 0.0); 261 | 262 | float4 p0 = grad4(j0, ip); 263 | float4 p1 = grad4(j1.x, ip); 264 | float4 p2 = grad4(j1.y, ip); 265 | float4 p3 = grad4(j1.z, ip); 266 | float4 p4 = grad4(j1.w, ip); 267 | 268 | // Normalise gradients 269 | float4 norm = taylorInvSqrt(float4(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3))); 270 | p0 *= norm.x; 271 | p1 *= norm.y; 272 | p2 *= norm.z; 273 | p3 *= norm.w; 274 | p4 *= taylorInvSqrt(dot(p4, p4)); 275 | 276 | // Mix contributions from the five corners 277 | float3 m0 = max(0.6 - float3(dot(x0, x0), dot(x1, x1), dot(x2, x2)), 0.0); 278 | float2 m1 = max(0.6 - float2(dot(x3, x3), dot(x4, x4)), 0.0); 279 | m0 = m0 * m0; 280 | m1 = m1 * m1; 281 | return 49.0 * (dot(m0*m0, float3(dot(p0, x0), dot(p1, x1), dot(p2, x2))) 282 | + dot(m1*m1, float2(dot(p3, x3), dot(p4, x4)))); 283 | 284 | } 285 | 286 | float3 snoise3D(float3 v) { 287 | float3 n = float3( 288 | snoise(float2(v.x, v.y)), 289 | snoise(float2(v.y, v.z)), 290 | snoise(float2(v.z, v.x)) 291 | ); 292 | return n; 293 | } 294 | 295 | // generate curl noise 296 | // http://www.cs.ubc.ca/~rbridson/docs/bridson-siggraph2007-curlnoise.pdf 297 | // http://prideout.net/blog/?p=63 298 | 299 | float curlX(float3 v, float d) { 300 | return ((snoise3D(float3(v.x, v.y + d, v.z)).z - snoise3D(float3(v.x, v.y - d, v.z)).z) - (snoise3D(float3(v.x, v.y, v.z + d)).y - snoise3D(float3(v.x, v.y, v.z - d)).y)) / 2 / d; 301 | } 302 | 303 | float curlY(float3 v, float d) { 304 | return ((snoise3D(float3(v.x, v.y, v.z + d)).x - snoise3D(float3(v.x, v.y, v.z - d)).x) - (snoise3D(float3(v.x + d, v.y, v.z)).z - snoise3D(float3(v.x - d, v.y, v.z)).z)) / 2 / d; 305 | } 306 | 307 | float curlZ(float3 v, float d) { 308 | return ((snoise3D(float3(v.x + d, v.y, v.z)).y - snoise3D(float3(v.x - d, v.y, v.z)).y) - (snoise3D(float3(v.x, v.y + d, v.z)).x - snoise3D(float3(v.x, v.y - d, v.z)).x)) / 2 / d; 309 | } 310 | #endif // NOISE_INCLUDED -------------------------------------------------------------------------------- /Assets/NoiseRings/CGNoise/Noise.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7fbe7bafd4a76624ca39ac3fd5925041 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/NoiseRings/DefaultLineTexture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaelb/NoiseRings/d1abda1252debb5cf3d5a3ba2759c2f5b727aad0/Assets/NoiseRings/DefaultLineTexture.png -------------------------------------------------------------------------------- /Assets/NoiseRings/DefaultLineTexture.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c7fc83601dfcaf6419daeccf9d160bf8 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 0 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 512 64 | resizeAlgorithm: 0 65 | textureFormat: 4 66 | textureCompression: 0 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | - serializedVersion: 2 73 | buildTarget: Standalone 74 | maxTextureSize: 512 75 | resizeAlgorithm: 0 76 | textureFormat: 4 77 | textureCompression: 0 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | androidETC2FallbackOverride: 0 83 | spriteSheet: 84 | serializedVersion: 2 85 | sprites: [] 86 | outline: [] 87 | physicsShape: [] 88 | bones: [] 89 | spriteID: 90 | vertices: [] 91 | indices: 92 | edges: [] 93 | weights: [] 94 | spritePackingTag: 95 | pSDRemoveMatte: 0 96 | pSDShowRemoveMatteOption: 0 97 | userData: 98 | assetBundleName: 99 | assetBundleVariant: 100 | -------------------------------------------------------------------------------- /Assets/NoiseRings/NoiseRing.shader: -------------------------------------------------------------------------------- 1 | Shader "Hidden/NoiseRing" 2 | { 3 | Properties 4 | { 5 | } 6 | SubShader 7 | { 8 | Cull Front 9 | Blend One One 10 | ZWrite Off 11 | Tags 12 | { 13 | "RenderType"="Transparent" 14 | "Queue"="Transparent" 15 | } 16 | 17 | Pass 18 | { 19 | CGPROGRAM 20 | #pragma target 3.0 21 | #pragma enable_d3d11_debug_symbols 22 | #pragma vertex vert 23 | #pragma fragment frag 24 | 25 | #include "UnityCG.cginc" 26 | #include "NoiseRingGlobals.cginc" 27 | #include "CGNoise/Noise.cginc" 28 | 29 | struct appdata 30 | { 31 | float4 vertex : POSITION; 32 | float3 prevVertex : TEXCOORD0; 33 | float3 nextVertex : TEXCOORD1; 34 | float3 uvAndOrientation : TEXCOORD2; 35 | }; 36 | 37 | struct v2f 38 | { 39 | float4 vertex : SV_POSITION; 40 | float2 uv : TEXCOORD0; 41 | }; 42 | 43 | sampler2D _LineTexture; 44 | fixed4 _Color; 45 | float _Multiplier; 46 | float _LineWidth; 47 | float _Radius; 48 | float _Height; 49 | float _Intensity; 50 | float _NoiseScale; 51 | float _NoiseHeight; 52 | float _DetailNoiseScale; 53 | float _DetailNoiseHeight; 54 | float _Speed; 55 | float _NoiseTime; 56 | 57 | 58 | float3 applyNoise (float3 pos, float intensity) 59 | { 60 | float speedTime = _Speed * _NoiseTime; 61 | float bigTime = 100.0 * _NoiseTime; 62 | float3 noisePos = pos; 63 | float noiseSample = 0.5 * snoise(float3(_NoiseScale * pos.xy, speedTime)) + 0.5; 64 | float detailNoiseSample = 0.5 * snoise(float3(_DetailNoiseScale * pos.xy, bigTime)) + 0.5; 65 | float sumNoise = _NoiseHeight * noiseSample + _DetailNoiseHeight * detailNoiseSample; 66 | noisePos.z = _Height + intensity * sumNoise; 67 | return noisePos; 68 | } 69 | 70 | v2f vert (appdata v) 71 | { 72 | float2 uv = v.uvAndOrientation.xy; 73 | float orientation = v.uvAndOrientation.z; 74 | 75 | float2 aspect = float2(_ScreenParams.x / _ScreenParams.y, 1.0); 76 | 77 | v.vertex.xy *= _Radius; 78 | v.prevVertex.xy *= _Radius; 79 | v.nextVertex.xy *= _Radius; 80 | 81 | float2 dirA = float2(0.0, 0.0); 82 | float2 dirB = float2(0.0, 0.0); 83 | float2 perp = float2(0.0, 0.0); 84 | 85 | float3 noisePos = applyNoise(v.vertex.xyz, _Intensity); 86 | float4 currClipPos = UnityObjectToClipPos(noisePos); 87 | float2 currScreenPos = currClipPos.xy / currClipPos.w * aspect; 88 | 89 | float3 prevNoisePos = applyNoise(v.prevVertex, _Intensity); 90 | float4 prevClipPos = UnityObjectToClipPos(prevNoisePos); 91 | float2 prevScreenPos = prevClipPos.xy / prevClipPos.w * aspect; 92 | dirA = normalize(currScreenPos - prevScreenPos); 93 | perp = float2(-dirA.y, dirA.x); 94 | 95 | float3 nextNoisePos = applyNoise(v.nextVertex, _Intensity); 96 | float4 nextClipPos = UnityObjectToClipPos(nextNoisePos); 97 | float2 nextScreenPos = nextClipPos.xy / nextClipPos.w * aspect; 98 | dirB = normalize(nextScreenPos - currScreenPos); 99 | 100 | float2 tangent = normalize(dirA + dirB); 101 | float2 miter = float2(-tangent.y, tangent.x); 102 | 103 | float4x4 clipToWorld = NoiseRingGlobals_ClipToWorldMatrix(); 104 | float3 worldMiter = normalize(mul(clipToWorld, float4(miter / aspect, 0.0, 0.0)).xyz); 105 | float3 worldPerp = normalize(mul(clipToWorld, float4(perp / aspect, 0.0, 0.0)).xyz); 106 | 107 | float width = _LineWidth / dot(worldMiter, worldPerp); 108 | width = min(width, 1.5 * _LineWidth); 109 | width = max(width, 0.0); 110 | 111 | float3 worldPos = mul(unity_ObjectToWorld, float4(noisePos, 1.0)).xyz; 112 | worldPos += 0.5 * width * orientation * worldMiter; 113 | 114 | v2f o; 115 | o.vertex = mul(UNITY_MATRIX_VP, float4(worldPos, 1.0)); 116 | o.uv = uv; 117 | return o; 118 | } 119 | 120 | fixed4 frag (v2f i) : SV_Target 121 | { 122 | fixed4 col = fixed4(_Color.rgb * tex2D(_LineTexture, i.uv) * _Multiplier, 0.0); 123 | return col; 124 | } 125 | ENDCG 126 | } 127 | } 128 | } 129 | -------------------------------------------------------------------------------- /Assets/NoiseRings/NoiseRing.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f87731c3e48f1584ab8180a485b7af8e 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/NoiseRings/NoiseRingGlobals.cginc: -------------------------------------------------------------------------------- 1 | #ifndef NOISE_RING_GLOBALS_CGINC 2 | #define NOISE_RING_GLOBALS_CGINC 3 | 4 | #include "UnityCG.cginc" 5 | 6 | float4x4 NoiseRingGlobals_ClipToWorld[2]; 7 | 8 | // This function is necessary to retrieve the correct ClipToWorld matrix for 9 | // the current eye if Unity's Single Pass Stereo rendering mode is used. 10 | float4x4 NoiseRingGlobals_ClipToWorldMatrix() 11 | { 12 | #if UNITY_SINGLE_PASS_STEREO 13 | int index = unity_StereoEyeIndex; 14 | #else 15 | int index = 0; 16 | #endif 17 | return NoiseRingGlobals_ClipToWorld[index]; 18 | } 19 | 20 | #endif //NOISE_RING_GLOBALS_CGINC -------------------------------------------------------------------------------- /Assets/NoiseRings/NoiseRingGlobals.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9ba923d144ec4ef44b68be51a7d236d0 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/NoiseRings/NoiseRingSource.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | 4 | namespace NoiseRings 5 | { 6 | 7 | [ExecuteInEditMode] 8 | public class NoiseRingSource : MonoBehaviour 9 | { 10 | // 11 | // Settings 12 | // 13 | [Header("Settings")] 14 | [SerializeField] int numberOfSegments = 128; 15 | [SerializeField] int numberOfRings = 4; 16 | [SerializeField] float radialOffset = 0.1f; 17 | [SerializeField] Texture2D lineTexture = null; 18 | [SerializeField] Color color = Color.white; 19 | [SerializeField] float multiplier = 1.0f; 20 | [SerializeField] float lineWidth = 0.1f; 21 | [SerializeField] float noiseScale = 0.7f; 22 | [SerializeField] float noiseHeight = 3.0f; 23 | [SerializeField] float detailNoiseScale = 4.0f; 24 | [SerializeField] float detailNoiseHeight = 0.3f; 25 | [SerializeField] float speed = 1.0f; 26 | 27 | // 28 | // Animation settings 29 | // 30 | [Space] 31 | [Header("Animation Settings")] 32 | [SerializeField] float animationDuration = 1.75f; 33 | [SerializeField] float endRadius = 10.0f; 34 | [SerializeField] AnimationCurve intensityCurve = null; 35 | [SerializeField] float maxHeight = 1.0f; 36 | [SerializeField] AnimationCurve heightCurve = null; 37 | 38 | // 39 | // Debug 40 | // 41 | [Space] 42 | [Header("Debug")] 43 | [SerializeField] bool testTrigger = false; 44 | 45 | 46 | [SerializeField] [HideInInspector] Mesh ringMesh; 47 | Material ringMaterial; 48 | MaterialPropertyBlock propertyBlock; 49 | 50 | // 51 | // Mesh generation variables 52 | // 53 | Vector3[] vertices; 54 | Vector3[] prevVertices; 55 | Vector3[] nextVertices; 56 | Vector3[] uvsAndOrientations; 57 | int[] triangles; 58 | 59 | // 60 | // Animation variables 61 | // 62 | float animationTime = 0.0f; 63 | float animationProgress = 0.0f; 64 | bool animating = false; 65 | 66 | float noiseTime = 0.0f; 67 | float currentLineWidth; 68 | 69 | static class Uniforms 70 | { 71 | public static readonly int LineTexture = Shader.PropertyToID("_LineTexture"); 72 | public static readonly int Color = Shader.PropertyToID("_Color"); 73 | public static readonly int Multiplier = Shader.PropertyToID("_Multiplier"); 74 | public static readonly int LineWidth = Shader.PropertyToID("_LineWidth"); 75 | public static readonly int Radius = Shader.PropertyToID("_Radius"); 76 | public static readonly int Height = Shader.PropertyToID("_Height"); 77 | public static readonly int Intensity = Shader.PropertyToID("_Intensity"); 78 | public static readonly int NoiseScale = Shader.PropertyToID("_NoiseScale"); 79 | public static readonly int NoiseHeight = Shader.PropertyToID("_NoiseHeight"); 80 | public static readonly int DetailNoiseScale = Shader.PropertyToID("_DetailNoiseScale"); 81 | public static readonly int DetailNoiseHeight = Shader.PropertyToID("_DetailNoiseHeight"); 82 | public static readonly int Speed = Shader.PropertyToID("_Speed"); 83 | public static readonly int NoiseTime = Shader.PropertyToID("_NoiseTime"); 84 | } 85 | 86 | 87 | void OnEnable () 88 | { 89 | Shader ringShader = Shader.Find("Hidden/NoiseRing"); 90 | if (ringShader != null) 91 | { 92 | ringMaterial = new Material(ringShader); 93 | ringMaterial.hideFlags = HideFlags.HideAndDontSave; 94 | 95 | propertyBlock = new MaterialPropertyBlock(); 96 | } 97 | else 98 | Debug.LogError("Cannot find Hidden/NoiseLine shader"); 99 | 100 | currentLineWidth = lineWidth * transform.lossyScale.z; 101 | 102 | Camera.onPreRender += HandlePreRender; 103 | } 104 | 105 | void OnDisable () 106 | { 107 | Camera.onPreRender -= HandlePreRender; 108 | } 109 | 110 | void Update () 111 | { 112 | if (Application.isEditor && !Application.isPlaying) 113 | { 114 | EditorUpdate(); 115 | return; 116 | } 117 | 118 | if (ringMesh == null) 119 | return; 120 | 121 | if (testTrigger) 122 | { 123 | testTrigger = false; 124 | Trigger(); 125 | } 126 | 127 | noiseTime += Time.deltaTime; 128 | 129 | if (!animating) 130 | return; 131 | 132 | animationTime += Time.deltaTime; 133 | 134 | if (animationTime > animationDuration) 135 | { 136 | animating = false; 137 | return; 138 | } 139 | 140 | animationProgress = animationTime / animationDuration; 141 | 142 | // line width follows lossyScale 143 | currentLineWidth = lineWidth * transform.lossyScale.z; 144 | 145 | // calculate maxium possible mesh bounds 146 | float maxBoundsWidth = currentLineWidth + 2.0f * endRadius; 147 | float maxBoundsHeight = currentLineWidth + maxHeight + noiseHeight + detailNoiseHeight; 148 | ringMesh.bounds = new Bounds( 149 | new Vector3(0.0f, 0.0f, 0.5f * maxBoundsHeight), 150 | new Vector3(maxBoundsWidth, maxBoundsWidth, maxBoundsHeight) 151 | ); 152 | 153 | float radius; 154 | float radialProgress; 155 | float height; 156 | float intensity; 157 | for (int i = 0; i < numberOfRings; i++) 158 | { 159 | radius = Mathf.Lerp(-radialOffset * i, endRadius, animationProgress); 160 | if (radius < 0.0f) 161 | continue; 162 | 163 | radialProgress = radius / endRadius; 164 | height = maxHeight * heightCurve.Evaluate(radialProgress); 165 | intensity = intensityCurve.Evaluate(radialProgress); 166 | 167 | propertyBlock.SetFloat(Uniforms.Radius, radius); 168 | propertyBlock.SetFloat(Uniforms.Height, height); 169 | propertyBlock.SetFloat(Uniforms.Intensity, intensity); 170 | 171 | Graphics.DrawMesh( 172 | ringMesh, 173 | transform.localToWorldMatrix, 174 | ringMaterial, 175 | LayerMask.NameToLayer("Default"), 176 | null, 177 | 0, 178 | propertyBlock, 179 | false, 180 | false 181 | ); 182 | } 183 | } 184 | 185 | public void Trigger () 186 | { 187 | animationTime = 0.0f; 188 | animating = true; 189 | } 190 | 191 | public void EndAnimation () 192 | { 193 | animating = false; 194 | } 195 | 196 | public float AnimationDuration () 197 | { 198 | return animationDuration; 199 | } 200 | 201 | void HandlePreRender (Camera cam) 202 | { 203 | if (ringMaterial == null || ringMesh == null) 204 | return; 205 | 206 | ringMaterial.SetTexture(Uniforms.LineTexture, lineTexture); 207 | ringMaterial.SetColor(Uniforms.Color, color); 208 | ringMaterial.SetFloat(Uniforms.Multiplier, multiplier); 209 | ringMaterial.SetFloat(Uniforms.LineWidth, currentLineWidth); 210 | ringMaterial.SetFloat(Uniforms.NoiseScale, noiseScale); 211 | ringMaterial.SetFloat(Uniforms.NoiseHeight, noiseHeight); 212 | ringMaterial.SetFloat(Uniforms.DetailNoiseScale, detailNoiseScale); 213 | ringMaterial.SetFloat(Uniforms.DetailNoiseHeight, detailNoiseHeight); 214 | ringMaterial.SetFloat(Uniforms.Speed, speed); 215 | ringMaterial.SetFloat(Uniforms.NoiseTime, noiseTime); 216 | } 217 | 218 | void EditorUpdate () 219 | { 220 | if (numberOfSegments < 3) 221 | numberOfSegments = 3; 222 | 223 | if (numberOfRings < 1) 224 | numberOfRings = 1; 225 | 226 | if (vertices == null || vertices.Length != 2 * numberOfSegments) 227 | GenerateMesh(); 228 | } 229 | 230 | // Generates a unit circle mesh with the specified number of segments. 231 | // The mesh is transformed and expanded appropriately in the 232 | // NoiseRing.shader line renderer. Each vertex also stores the position 233 | // of the previous and next vertex in the ring to supply to the line 234 | // renderer. 235 | void GenerateMesh () 236 | { 237 | vertices = new Vector3[numberOfSegments * 2]; 238 | prevVertices = new Vector3[numberOfSegments * 2]; 239 | nextVertices = new Vector3[numberOfSegments * 2]; 240 | uvsAndOrientations = new Vector3[numberOfSegments * 2]; 241 | triangles = new int[numberOfSegments * 6]; 242 | 243 | float theta; 244 | Vector3 vertex; 245 | for (int i = 0; i < numberOfSegments * 2; i += 2) 246 | { 247 | theta = (2.0f * Mathf.PI) * (i / 2) / numberOfSegments; 248 | vertex = new Vector3(Mathf.Cos(theta), Mathf.Sin(theta), 0.0f); 249 | vertices[i] = vertex; 250 | vertices[i + 1] = vertex; 251 | prevVertices[(i + 2) % (numberOfSegments * 2)] = vertex; 252 | prevVertices[(i + 3) % (numberOfSegments * 2)] = vertex; 253 | nextVertices[(i - 2 < 0) ? numberOfSegments * 2 - 2 : i - 2] = vertex; 254 | nextVertices[(i - 1 < 0) ? numberOfSegments * 2 - 1 : i - 1] = vertex; 255 | uvsAndOrientations[i] = new Vector3(0.5f, 1.0f, 1.0f); 256 | uvsAndOrientations[i + 1] = new Vector3(0.5f, 0.0f, -1.0f); 257 | 258 | int tri = i * 3; 259 | triangles[tri] = i; 260 | triangles[tri + 1] = (i + 2) % (numberOfSegments * 2); 261 | triangles[tri + 2] = i + 1; 262 | triangles[tri + 3] = i + 1; 263 | triangles[tri + 4] = (i + 2) % (numberOfSegments * 2); 264 | triangles[tri + 5] = (i + 3) % (numberOfSegments * 2); 265 | } 266 | 267 | if (ringMesh != null) 268 | DestroyImmediate(ringMesh); 269 | 270 | ringMesh = new Mesh(); 271 | ringMesh.vertices = vertices; 272 | ringMesh.SetUVs(0, new List(prevVertices)); 273 | ringMesh.SetUVs(1, new List(nextVertices)); 274 | ringMesh.SetUVs(2, new List(uvsAndOrientations)); 275 | ringMesh.triangles = triangles; 276 | } 277 | } 278 | 279 | } //namespace NoiseRings -------------------------------------------------------------------------------- /Assets/NoiseRings/NoiseRingSource.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aa8bfed8ba57c834a896da7103208ad1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: 7 | - lineTexture: {fileID: 2800000, guid: c7fc83601dfcaf6419daeccf9d160bf8, type: 3} 8 | - ringMesh: {instanceID: 0} 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/NoiseRings/UpdateShaderGlobals.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | 4 | namespace NoiseRings 5 | { 6 | 7 | [ExecuteInEditMode] 8 | public class UpdateShaderGlobals : MonoBehaviour 9 | { 10 | static Matrix4x4[] clipToWorldMatrices; 11 | 12 | static class Uniforms 13 | { 14 | public static readonly int ClipToWorld = Shader.PropertyToID("NoiseRingGlobals_ClipToWorld"); 15 | } 16 | 17 | void OnEnable () 18 | { 19 | Camera.onPreRender += CameraUpdate; 20 | } 21 | 22 | void OnDisable () 23 | { 24 | Camera.onPreRender -= CameraUpdate; 25 | } 26 | 27 | static void CameraUpdate (Camera cam) 28 | { 29 | // ClipToWorld update 30 | if (clipToWorldMatrices == null) 31 | clipToWorldMatrices = new Matrix4x4[2]; 32 | 33 | if (cam.stereoEnabled) 34 | { 35 | Matrix4x4 leftProj = cam.GetStereoProjectionMatrix(Camera.StereoscopicEye.Left); 36 | Matrix4x4 leftView = cam.GetStereoViewMatrix(Camera.StereoscopicEye.Left); 37 | Matrix4x4 rightProj = cam.GetStereoProjectionMatrix(Camera.StereoscopicEye.Right); 38 | Matrix4x4 rightView = cam.GetStereoViewMatrix(Camera.StereoscopicEye.Right); 39 | clipToWorldMatrices[0] = CalculateClipToWorld(leftProj, leftView); 40 | clipToWorldMatrices[1] = CalculateClipToWorld(rightProj, rightView); 41 | } 42 | else 43 | { 44 | clipToWorldMatrices[0] = CalculateClipToWorld(cam.projectionMatrix, cam.worldToCameraMatrix); 45 | clipToWorldMatrices[1] = Matrix4x4.identity; 46 | } 47 | 48 | Shader.SetGlobalMatrixArray(Uniforms.ClipToWorld, clipToWorldMatrices); 49 | } 50 | 51 | static Matrix4x4 CalculateClipToWorld (Matrix4x4 proj, Matrix4x4 view) 52 | { 53 | Matrix4x4 p = GL.GetGPUProjectionMatrix(proj, true); 54 | p[2, 3] = p[3, 2] = 0.0f; 55 | p[3, 3] = 1.0f; 56 | return Matrix4x4.Inverse(p * view) * Matrix4x4.TRS(new Vector3(0, 0, -p[2,2]), Quaternion.identity, Vector3.one); 57 | } 58 | } 59 | 60 | } //namespace NoiseRings -------------------------------------------------------------------------------- /Assets/NoiseRings/UpdateShaderGlobals.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0758bde6866ac4b439f61179bbd2cda6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2018 Kael Barton 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.package-manager-ui": "2.0.3", 4 | "com.unity.modules.ai": "1.0.0", 5 | "com.unity.modules.animation": "1.0.0", 6 | "com.unity.modules.assetbundle": "1.0.0", 7 | "com.unity.modules.audio": "1.0.0", 8 | "com.unity.modules.cloth": "1.0.0", 9 | "com.unity.modules.director": "1.0.0", 10 | "com.unity.modules.imageconversion": "1.0.0", 11 | "com.unity.modules.imgui": "1.0.0", 12 | "com.unity.modules.jsonserialize": "1.0.0", 13 | "com.unity.modules.particlesystem": "1.0.0", 14 | "com.unity.modules.physics": "1.0.0", 15 | "com.unity.modules.physics2d": "1.0.0", 16 | "com.unity.modules.screencapture": "1.0.0", 17 | "com.unity.modules.terrain": "1.0.0", 18 | "com.unity.modules.terrainphysics": "1.0.0", 19 | "com.unity.modules.tilemap": "1.0.0", 20 | "com.unity.modules.ui": "1.0.0", 21 | "com.unity.modules.uielements": "1.0.0", 22 | "com.unity.modules.umbra": "1.0.0", 23 | "com.unity.modules.unityanalytics": "1.0.0", 24 | "com.unity.modules.unitywebrequest": "1.0.0", 25 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 26 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 27 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 28 | "com.unity.modules.unitywebrequestwww": "1.0.0", 29 | "com.unity.modules.vehicles": "1.0.0", 30 | "com.unity.modules.video": "1.0.0", 31 | "com.unity.modules.vr": "1.0.0", 32 | "com.unity.modules.wind": "1.0.0", 33 | "com.unity.modules.xr": "1.0.0" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 1024 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 8 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0 18 | m_ClothInterCollisionStiffness: 0 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 0 23 | m_ReuseCollisionCallbacks: 1 24 | m_ClothInterCollisionSettingsToggle: 0 25 | m_ContactPairsMode: 0 26 | m_BroadphaseType: 0 27 | m_WorldBounds: 28 | m_Center: {x: 0, y: 0, z: 0} 29 | m_Extent: {x: 250, y: 250, z: 250} 30 | m_WorldSubdivisions: 8 31 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/Scenes/SampleScene.unity 10 | guid: 99c9720ab356a0642a771bea13969a05 11 | m_configObjects: {} 12 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 7 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 2 10 | m_DefaultBehaviorMode: 0 11 | m_SpritePackerMode: 0 12 | m_SpritePackerPaddingPower: 1 13 | m_EtcTextureCompressorBehavior: 1 14 | m_EtcTextureFastCompressor: 1 15 | m_EtcTextureNormalCompressor: 2 16 | m_EtcTextureBestCompressor: 4 17 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd 18 | m_ProjectGenerationRootNamespace: 19 | m_UserGeneratedProjectSuffix: 20 | m_CollabEditorSettings: 21 | inProgressEnabled: 1 22 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 12 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 38 | - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} 39 | m_PreloadedShaders: [] 40 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 41 | type: 0} 42 | m_CustomRenderPipeline: {fileID: 0} 43 | m_TransparencySortMode: 0 44 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 45 | m_DefaultRenderingPath: 1 46 | m_DefaultMobileRenderingPath: 1 47 | m_TierSettings: [] 48 | m_LightmapStripping: 0 49 | m_FogStripping: 0 50 | m_InstancingStripping: 0 51 | m_LightmapKeepPlain: 1 52 | m_LightmapKeepDirCombined: 1 53 | m_LightmapKeepDynamicPlain: 1 54 | m_LightmapKeepDynamicDirCombined: 1 55 | m_LightmapKeepShadowMask: 1 56 | m_LightmapKeepSubtractive: 1 57 | m_FogKeepLinear: 1 58 | m_FogKeepExp: 1 59 | m_FogKeepExp2: 1 60 | m_AlbedoSwatchInfos: [] 61 | m_LightsUseLinearIntensity: 0 62 | m_LightsUseColorTemperature: 0 63 | -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Axes: 8 | - serializedVersion: 3 9 | m_Name: Horizontal 10 | descriptiveName: 11 | descriptiveNegativeName: 12 | negativeButton: left 13 | positiveButton: right 14 | altNegativeButton: a 15 | altPositiveButton: d 16 | gravity: 3 17 | dead: 0.001 18 | sensitivity: 3 19 | snap: 1 20 | invert: 0 21 | type: 0 22 | axis: 0 23 | joyNum: 0 24 | - serializedVersion: 3 25 | m_Name: Vertical 26 | descriptiveName: 27 | descriptiveNegativeName: 28 | negativeButton: down 29 | positiveButton: up 30 | altNegativeButton: s 31 | altPositiveButton: w 32 | gravity: 3 33 | dead: 0.001 34 | sensitivity: 3 35 | snap: 1 36 | invert: 0 37 | type: 0 38 | axis: 0 39 | joyNum: 0 40 | - serializedVersion: 3 41 | m_Name: Fire1 42 | descriptiveName: 43 | descriptiveNegativeName: 44 | negativeButton: 45 | positiveButton: left ctrl 46 | altNegativeButton: 47 | altPositiveButton: mouse 0 48 | gravity: 1000 49 | dead: 0.001 50 | sensitivity: 1000 51 | snap: 0 52 | invert: 0 53 | type: 0 54 | axis: 0 55 | joyNum: 0 56 | - serializedVersion: 3 57 | m_Name: Fire2 58 | descriptiveName: 59 | descriptiveNegativeName: 60 | negativeButton: 61 | positiveButton: left alt 62 | altNegativeButton: 63 | altPositiveButton: mouse 1 64 | gravity: 1000 65 | dead: 0.001 66 | sensitivity: 1000 67 | snap: 0 68 | invert: 0 69 | type: 0 70 | axis: 0 71 | joyNum: 0 72 | - serializedVersion: 3 73 | m_Name: Fire3 74 | descriptiveName: 75 | descriptiveNegativeName: 76 | negativeButton: 77 | positiveButton: left shift 78 | altNegativeButton: 79 | altPositiveButton: mouse 2 80 | gravity: 1000 81 | dead: 0.001 82 | sensitivity: 1000 83 | snap: 0 84 | invert: 0 85 | type: 0 86 | axis: 0 87 | joyNum: 0 88 | - serializedVersion: 3 89 | m_Name: Jump 90 | descriptiveName: 91 | descriptiveNegativeName: 92 | negativeButton: 93 | positiveButton: space 94 | altNegativeButton: 95 | altPositiveButton: 96 | gravity: 1000 97 | dead: 0.001 98 | sensitivity: 1000 99 | snap: 0 100 | invert: 0 101 | type: 0 102 | axis: 0 103 | joyNum: 0 104 | - serializedVersion: 3 105 | m_Name: Mouse X 106 | descriptiveName: 107 | descriptiveNegativeName: 108 | negativeButton: 109 | positiveButton: 110 | altNegativeButton: 111 | altPositiveButton: 112 | gravity: 0 113 | dead: 0 114 | sensitivity: 0.1 115 | snap: 0 116 | invert: 0 117 | type: 1 118 | axis: 0 119 | joyNum: 0 120 | - serializedVersion: 3 121 | m_Name: Mouse Y 122 | descriptiveName: 123 | descriptiveNegativeName: 124 | negativeButton: 125 | positiveButton: 126 | altNegativeButton: 127 | altPositiveButton: 128 | gravity: 0 129 | dead: 0 130 | sensitivity: 0.1 131 | snap: 0 132 | invert: 0 133 | type: 1 134 | axis: 1 135 | joyNum: 0 136 | - serializedVersion: 3 137 | m_Name: Mouse ScrollWheel 138 | descriptiveName: 139 | descriptiveNegativeName: 140 | negativeButton: 141 | positiveButton: 142 | altNegativeButton: 143 | altPositiveButton: 144 | gravity: 0 145 | dead: 0 146 | sensitivity: 0.1 147 | snap: 0 148 | invert: 0 149 | type: 1 150 | axis: 2 151 | joyNum: 0 152 | - serializedVersion: 3 153 | m_Name: Horizontal 154 | descriptiveName: 155 | descriptiveNegativeName: 156 | negativeButton: 157 | positiveButton: 158 | altNegativeButton: 159 | altPositiveButton: 160 | gravity: 0 161 | dead: 0.19 162 | sensitivity: 1 163 | snap: 0 164 | invert: 0 165 | type: 2 166 | axis: 0 167 | joyNum: 0 168 | - serializedVersion: 3 169 | m_Name: Vertical 170 | descriptiveName: 171 | descriptiveNegativeName: 172 | negativeButton: 173 | positiveButton: 174 | altNegativeButton: 175 | altPositiveButton: 176 | gravity: 0 177 | dead: 0.19 178 | sensitivity: 1 179 | snap: 0 180 | invert: 1 181 | type: 2 182 | axis: 1 183 | joyNum: 0 184 | - serializedVersion: 3 185 | m_Name: Fire1 186 | descriptiveName: 187 | descriptiveNegativeName: 188 | negativeButton: 189 | positiveButton: joystick button 0 190 | altNegativeButton: 191 | altPositiveButton: 192 | gravity: 1000 193 | dead: 0.001 194 | sensitivity: 1000 195 | snap: 0 196 | invert: 0 197 | type: 0 198 | axis: 0 199 | joyNum: 0 200 | - serializedVersion: 3 201 | m_Name: Fire2 202 | descriptiveName: 203 | descriptiveNegativeName: 204 | negativeButton: 205 | positiveButton: joystick button 1 206 | altNegativeButton: 207 | altPositiveButton: 208 | gravity: 1000 209 | dead: 0.001 210 | sensitivity: 1000 211 | snap: 0 212 | invert: 0 213 | type: 0 214 | axis: 0 215 | joyNum: 0 216 | - serializedVersion: 3 217 | m_Name: Fire3 218 | descriptiveName: 219 | descriptiveNegativeName: 220 | negativeButton: 221 | positiveButton: joystick button 2 222 | altNegativeButton: 223 | altPositiveButton: 224 | gravity: 1000 225 | dead: 0.001 226 | sensitivity: 1000 227 | snap: 0 228 | invert: 0 229 | type: 0 230 | axis: 0 231 | joyNum: 0 232 | - serializedVersion: 3 233 | m_Name: Jump 234 | descriptiveName: 235 | descriptiveNegativeName: 236 | negativeButton: 237 | positiveButton: joystick button 3 238 | altNegativeButton: 239 | altPositiveButton: 240 | gravity: 1000 241 | dead: 0.001 242 | sensitivity: 1000 243 | snap: 0 244 | invert: 0 245 | type: 0 246 | axis: 0 247 | joyNum: 0 248 | - serializedVersion: 3 249 | m_Name: Submit 250 | descriptiveName: 251 | descriptiveNegativeName: 252 | negativeButton: 253 | positiveButton: return 254 | altNegativeButton: 255 | altPositiveButton: joystick button 0 256 | gravity: 1000 257 | dead: 0.001 258 | sensitivity: 1000 259 | snap: 0 260 | invert: 0 261 | type: 0 262 | axis: 0 263 | joyNum: 0 264 | - serializedVersion: 3 265 | m_Name: Submit 266 | descriptiveName: 267 | descriptiveNegativeName: 268 | negativeButton: 269 | positiveButton: enter 270 | altNegativeButton: 271 | altPositiveButton: space 272 | gravity: 1000 273 | dead: 0.001 274 | sensitivity: 1000 275 | snap: 0 276 | invert: 0 277 | type: 0 278 | axis: 0 279 | joyNum: 0 280 | - serializedVersion: 3 281 | m_Name: Cancel 282 | descriptiveName: 283 | descriptiveNegativeName: 284 | negativeButton: 285 | positiveButton: escape 286 | altNegativeButton: 287 | altPositiveButton: joystick button 1 288 | gravity: 1000 289 | dead: 0.001 290 | sensitivity: 1000 291 | snap: 0 292 | invert: 0 293 | type: 0 294 | axis: 0 295 | joyNum: 0 296 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_AutoSimulation: 1 23 | m_QueriesHitTriggers: 1 24 | m_QueriesStartInColliders: 1 25 | m_ChangeStopsCallbacks: 0 26 | m_CallbacksOnDisable: 1 27 | m_ReuseCollisionCallbacks: 1 28 | m_AutoSyncTransforms: 0 29 | m_AlwaysShowColliders: 0 30 | m_ShowColliderSleep: 1 31 | m_ShowColliderContacts: 0 32 | m_ShowColliderAABB: 0 33 | m_ContactArrowScale: 0.2 34 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 35 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 36 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 37 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 38 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 39 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | m_DefaultList: 7 | - type: 8 | m_NativeTypeID: 108 9 | m_ManagedTypePPtr: {fileID: 0} 10 | m_ManagedTypeFallback: 11 | defaultPresets: 12 | - m_Preset: {fileID: 2655988077585873504, guid: c1cf8506f04ef2c4a88b64b6c4202eea, 13 | type: 2} 14 | - type: 15 | m_NativeTypeID: 1020 16 | m_ManagedTypePPtr: {fileID: 0} 17 | m_ManagedTypeFallback: 18 | defaultPresets: 19 | - m_Preset: {fileID: 2655988077585873504, guid: 0cd792cc87e492d43b4e95b205fc5cc6, 20 | type: 2} 21 | - type: 22 | m_NativeTypeID: 1006 23 | m_ManagedTypePPtr: {fileID: 0} 24 | m_ManagedTypeFallback: 25 | defaultPresets: 26 | - m_Preset: {fileID: 2655988077585873504, guid: 7a99f8aa944efe94cb9bd74562b7d5f9, 27 | type: 2} 28 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!129 &1 4 | PlayerSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 15 7 | productGUID: 05344bcf81c8c2843af066243dc124b5 8 | AndroidProfiler: 0 9 | AndroidFilterTouchesWhenObscured: 0 10 | AndroidEnableSustainedPerformanceMode: 0 11 | defaultScreenOrientation: 4 12 | targetDevice: 2 13 | useOnDemandResources: 0 14 | accelerometerFrequency: 60 15 | companyName: DefaultCompany 16 | productName: NoiseRings 17 | defaultCursor: {fileID: 0} 18 | cursorHotspot: {x: 0, y: 0} 19 | m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} 20 | m_ShowUnitySplashScreen: 1 21 | m_ShowUnitySplashLogo: 1 22 | m_SplashScreenOverlayOpacity: 1 23 | m_SplashScreenAnimation: 1 24 | m_SplashScreenLogoStyle: 1 25 | m_SplashScreenDrawMode: 0 26 | m_SplashScreenBackgroundAnimationZoom: 1 27 | m_SplashScreenLogoAnimationZoom: 1 28 | m_SplashScreenBackgroundLandscapeAspect: 1 29 | m_SplashScreenBackgroundPortraitAspect: 1 30 | m_SplashScreenBackgroundLandscapeUvs: 31 | serializedVersion: 2 32 | x: 0 33 | y: 0 34 | width: 1 35 | height: 1 36 | m_SplashScreenBackgroundPortraitUvs: 37 | serializedVersion: 2 38 | x: 0 39 | y: 0 40 | width: 1 41 | height: 1 42 | m_SplashScreenLogos: [] 43 | m_VirtualRealitySplashScreen: {fileID: 0} 44 | m_HolographicTrackingLossScreen: {fileID: 0} 45 | defaultScreenWidth: 1024 46 | defaultScreenHeight: 768 47 | defaultScreenWidthWeb: 960 48 | defaultScreenHeightWeb: 600 49 | m_StereoRenderingPath: 0 50 | m_ActiveColorSpace: 0 51 | m_MTRendering: 1 52 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000 53 | iosShowActivityIndicatorOnLoading: -1 54 | androidShowActivityIndicatorOnLoading: -1 55 | iosAppInBackgroundBehavior: 0 56 | displayResolutionDialog: 1 57 | iosAllowHTTPDownload: 1 58 | allowedAutorotateToPortrait: 1 59 | allowedAutorotateToPortraitUpsideDown: 1 60 | allowedAutorotateToLandscapeRight: 1 61 | allowedAutorotateToLandscapeLeft: 1 62 | useOSAutorotation: 1 63 | use32BitDisplayBuffer: 1 64 | preserveFramebufferAlpha: 0 65 | disableDepthAndStencilBuffers: 0 66 | androidStartInFullscreen: 1 67 | androidRenderOutsideSafeArea: 0 68 | androidBlitType: 0 69 | defaultIsNativeResolution: 1 70 | macRetinaSupport: 1 71 | runInBackground: 1 72 | captureSingleScreen: 0 73 | muteOtherAudioSources: 0 74 | Prepare IOS For Recording: 0 75 | Force IOS Speakers When Recording: 0 76 | deferSystemGesturesMode: 0 77 | hideHomeButton: 0 78 | submitAnalytics: 1 79 | usePlayerLog: 1 80 | bakeCollisionMeshes: 0 81 | forceSingleInstance: 0 82 | resizableWindow: 0 83 | useMacAppStoreValidation: 0 84 | macAppStoreCategory: public.app-category.games 85 | gpuSkinning: 1 86 | graphicsJobs: 0 87 | xboxPIXTextureCapture: 0 88 | xboxEnableAvatar: 0 89 | xboxEnableKinect: 0 90 | xboxEnableKinectAutoTracking: 0 91 | xboxEnableFitness: 0 92 | visibleInBackground: 1 93 | allowFullscreenSwitch: 1 94 | graphicsJobMode: 0 95 | fullscreenMode: 1 96 | xboxSpeechDB: 0 97 | xboxEnableHeadOrientation: 0 98 | xboxEnableGuest: 0 99 | xboxEnablePIXSampling: 0 100 | metalFramebufferOnly: 0 101 | xboxOneResolution: 0 102 | xboxOneSResolution: 0 103 | xboxOneXResolution: 3 104 | xboxOneMonoLoggingLevel: 0 105 | xboxOneLoggingLevel: 1 106 | xboxOneDisableEsram: 0 107 | xboxOnePresentImmediateThreshold: 0 108 | switchQueueCommandMemory: 0 109 | vulkanEnableSetSRGBWrite: 0 110 | m_SupportedAspectRatios: 111 | 4:3: 1 112 | 5:4: 1 113 | 16:10: 1 114 | 16:9: 1 115 | Others: 1 116 | bundleVersion: 0.1 117 | preloadedAssets: [] 118 | metroInputSource: 0 119 | wsaTransparentSwapchain: 0 120 | m_HolographicPauseOnTrackingLoss: 1 121 | xboxOneDisableKinectGpuReservation: 0 122 | xboxOneEnable7thCore: 0 123 | isWsaHolographicRemotingEnabled: 0 124 | vrSettings: 125 | cardboard: 126 | depthFormat: 0 127 | enableTransitionView: 0 128 | daydream: 129 | depthFormat: 0 130 | useSustainedPerformanceMode: 0 131 | enableVideoLayer: 0 132 | useProtectedVideoMemory: 0 133 | minimumSupportedHeadTracking: 0 134 | maximumSupportedHeadTracking: 1 135 | hololens: 136 | depthFormat: 1 137 | depthBufferSharingEnabled: 0 138 | oculus: 139 | sharedDepthBuffer: 1 140 | dashSupport: 1 141 | enable360StereoCapture: 0 142 | protectGraphicsMemory: 0 143 | enableFrameTimingStats: 0 144 | useHDRDisplay: 0 145 | m_ColorGamuts: 00000000 146 | targetPixelDensity: 30 147 | resolutionScalingMode: 0 148 | androidSupportedAspectRatio: 1 149 | androidMaxAspectRatio: 2.1 150 | applicationIdentifier: {} 151 | buildNumber: {} 152 | AndroidBundleVersionCode: 1 153 | AndroidMinSdkVersion: 16 154 | AndroidTargetSdkVersion: 0 155 | AndroidPreferredInstallLocation: 1 156 | aotOptions: 157 | stripEngineCode: 1 158 | iPhoneStrippingLevel: 0 159 | iPhoneScriptCallOptimization: 0 160 | ForceInternetPermission: 0 161 | ForceSDCardPermission: 0 162 | CreateWallpaper: 0 163 | APKExpansionFiles: 0 164 | keepLoadedShadersAlive: 0 165 | StripUnusedMeshComponents: 1 166 | VertexChannelCompressionMask: 4054 167 | iPhoneSdkVersion: 988 168 | iOSTargetOSVersionString: 9.0 169 | tvOSSdkVersion: 0 170 | tvOSRequireExtendedGameController: 0 171 | tvOSTargetOSVersionString: 9.0 172 | uIPrerenderedIcon: 0 173 | uIRequiresPersistentWiFi: 0 174 | uIRequiresFullScreen: 1 175 | uIStatusBarHidden: 1 176 | uIExitOnSuspend: 0 177 | uIStatusBarStyle: 0 178 | iPhoneSplashScreen: {fileID: 0} 179 | iPhoneHighResSplashScreen: {fileID: 0} 180 | iPhoneTallHighResSplashScreen: {fileID: 0} 181 | iPhone47inSplashScreen: {fileID: 0} 182 | iPhone55inPortraitSplashScreen: {fileID: 0} 183 | iPhone55inLandscapeSplashScreen: {fileID: 0} 184 | iPhone58inPortraitSplashScreen: {fileID: 0} 185 | iPhone58inLandscapeSplashScreen: {fileID: 0} 186 | iPadPortraitSplashScreen: {fileID: 0} 187 | iPadHighResPortraitSplashScreen: {fileID: 0} 188 | iPadLandscapeSplashScreen: {fileID: 0} 189 | iPadHighResLandscapeSplashScreen: {fileID: 0} 190 | appleTVSplashScreen: {fileID: 0} 191 | appleTVSplashScreen2x: {fileID: 0} 192 | tvOSSmallIconLayers: [] 193 | tvOSSmallIconLayers2x: [] 194 | tvOSLargeIconLayers: [] 195 | tvOSLargeIconLayers2x: [] 196 | tvOSTopShelfImageLayers: [] 197 | tvOSTopShelfImageLayers2x: [] 198 | tvOSTopShelfImageWideLayers: [] 199 | tvOSTopShelfImageWideLayers2x: [] 200 | iOSLaunchScreenType: 0 201 | iOSLaunchScreenPortrait: {fileID: 0} 202 | iOSLaunchScreenLandscape: {fileID: 0} 203 | iOSLaunchScreenBackgroundColor: 204 | serializedVersion: 2 205 | rgba: 0 206 | iOSLaunchScreenFillPct: 100 207 | iOSLaunchScreenSize: 100 208 | iOSLaunchScreenCustomXibPath: 209 | iOSLaunchScreeniPadType: 0 210 | iOSLaunchScreeniPadImage: {fileID: 0} 211 | iOSLaunchScreeniPadBackgroundColor: 212 | serializedVersion: 2 213 | rgba: 0 214 | iOSLaunchScreeniPadFillPct: 100 215 | iOSLaunchScreeniPadSize: 100 216 | iOSLaunchScreeniPadCustomXibPath: 217 | iOSUseLaunchScreenStoryboard: 0 218 | iOSLaunchScreenCustomStoryboardPath: 219 | iOSDeviceRequirements: [] 220 | iOSURLSchemes: [] 221 | iOSBackgroundModes: 0 222 | iOSMetalForceHardShadows: 0 223 | metalEditorSupport: 1 224 | metalAPIValidation: 1 225 | iOSRenderExtraFrameOnPause: 0 226 | appleDeveloperTeamID: 227 | iOSManualSigningProvisioningProfileID: 228 | tvOSManualSigningProvisioningProfileID: 229 | iOSManualSigningProvisioningProfileType: 0 230 | tvOSManualSigningProvisioningProfileType: 0 231 | appleEnableAutomaticSigning: 0 232 | iOSRequireARKit: 0 233 | appleEnableProMotion: 0 234 | clonedFromGUID: c0afd0d1d80e3634a9dac47e8a0426ea 235 | templatePackageId: com.unity.template.3d@1.0.4 236 | templateDefaultScene: Assets/Scenes/SampleScene.unity 237 | AndroidTargetArchitectures: 5 238 | AndroidSplashScreenScale: 0 239 | androidSplashScreen: {fileID: 0} 240 | AndroidKeystoreName: 241 | AndroidKeyaliasName: 242 | AndroidBuildApkPerCpuArchitecture: 0 243 | AndroidTVCompatibility: 1 244 | AndroidIsGame: 1 245 | AndroidEnableTango: 0 246 | androidEnableBanner: 1 247 | androidUseLowAccuracyLocation: 0 248 | m_AndroidBanners: 249 | - width: 320 250 | height: 180 251 | banner: {fileID: 0} 252 | androidGamepadSupportLevel: 0 253 | resolutionDialogBanner: {fileID: 0} 254 | m_BuildTargetIcons: [] 255 | m_BuildTargetPlatformIcons: [] 256 | m_BuildTargetBatching: 257 | - m_BuildTarget: Standalone 258 | m_StaticBatching: 1 259 | m_DynamicBatching: 0 260 | - m_BuildTarget: tvOS 261 | m_StaticBatching: 1 262 | m_DynamicBatching: 0 263 | - m_BuildTarget: Android 264 | m_StaticBatching: 1 265 | m_DynamicBatching: 0 266 | - m_BuildTarget: iPhone 267 | m_StaticBatching: 1 268 | m_DynamicBatching: 0 269 | - m_BuildTarget: WebGL 270 | m_StaticBatching: 0 271 | m_DynamicBatching: 0 272 | m_BuildTargetGraphicsAPIs: 273 | - m_BuildTarget: AndroidPlayer 274 | m_APIs: 0b00000008000000 275 | m_Automatic: 1 276 | - m_BuildTarget: iOSSupport 277 | m_APIs: 10000000 278 | m_Automatic: 1 279 | - m_BuildTarget: AppleTVSupport 280 | m_APIs: 10000000 281 | m_Automatic: 0 282 | - m_BuildTarget: WebGLSupport 283 | m_APIs: 0b000000 284 | m_Automatic: 1 285 | m_BuildTargetVRSettings: 286 | - m_BuildTarget: Standalone 287 | m_Enabled: 0 288 | m_Devices: 289 | - Oculus 290 | - OpenVR 291 | m_BuildTargetEnableVuforiaSettings: [] 292 | openGLRequireES31: 0 293 | openGLRequireES31AEP: 0 294 | m_TemplateCustomTags: {} 295 | mobileMTRendering: 296 | Android: 1 297 | iPhone: 1 298 | tvOS: 1 299 | m_BuildTargetGroupLightmapEncodingQuality: [] 300 | m_BuildTargetGroupLightmapSettings: [] 301 | playModeTestRunnerEnabled: 0 302 | runPlayModeTestAsEditModeTest: 0 303 | actionOnDotNetUnhandledException: 1 304 | enableInternalProfiler: 0 305 | logObjCUncaughtExceptions: 1 306 | enableCrashReportAPI: 0 307 | cameraUsageDescription: 308 | locationUsageDescription: 309 | microphoneUsageDescription: 310 | switchNetLibKey: 311 | switchSocketMemoryPoolSize: 6144 312 | switchSocketAllocatorPoolSize: 128 313 | switchSocketConcurrencyLimit: 14 314 | switchScreenResolutionBehavior: 2 315 | switchUseCPUProfiler: 0 316 | switchApplicationID: 0x01004b9000490000 317 | switchNSODependencies: 318 | switchTitleNames_0: 319 | switchTitleNames_1: 320 | switchTitleNames_2: 321 | switchTitleNames_3: 322 | switchTitleNames_4: 323 | switchTitleNames_5: 324 | switchTitleNames_6: 325 | switchTitleNames_7: 326 | switchTitleNames_8: 327 | switchTitleNames_9: 328 | switchTitleNames_10: 329 | switchTitleNames_11: 330 | switchTitleNames_12: 331 | switchTitleNames_13: 332 | switchTitleNames_14: 333 | switchPublisherNames_0: 334 | switchPublisherNames_1: 335 | switchPublisherNames_2: 336 | switchPublisherNames_3: 337 | switchPublisherNames_4: 338 | switchPublisherNames_5: 339 | switchPublisherNames_6: 340 | switchPublisherNames_7: 341 | switchPublisherNames_8: 342 | switchPublisherNames_9: 343 | switchPublisherNames_10: 344 | switchPublisherNames_11: 345 | switchPublisherNames_12: 346 | switchPublisherNames_13: 347 | switchPublisherNames_14: 348 | switchIcons_0: {fileID: 0} 349 | switchIcons_1: {fileID: 0} 350 | switchIcons_2: {fileID: 0} 351 | switchIcons_3: {fileID: 0} 352 | switchIcons_4: {fileID: 0} 353 | switchIcons_5: {fileID: 0} 354 | switchIcons_6: {fileID: 0} 355 | switchIcons_7: {fileID: 0} 356 | switchIcons_8: {fileID: 0} 357 | switchIcons_9: {fileID: 0} 358 | switchIcons_10: {fileID: 0} 359 | switchIcons_11: {fileID: 0} 360 | switchIcons_12: {fileID: 0} 361 | switchIcons_13: {fileID: 0} 362 | switchIcons_14: {fileID: 0} 363 | switchSmallIcons_0: {fileID: 0} 364 | switchSmallIcons_1: {fileID: 0} 365 | switchSmallIcons_2: {fileID: 0} 366 | switchSmallIcons_3: {fileID: 0} 367 | switchSmallIcons_4: {fileID: 0} 368 | switchSmallIcons_5: {fileID: 0} 369 | switchSmallIcons_6: {fileID: 0} 370 | switchSmallIcons_7: {fileID: 0} 371 | switchSmallIcons_8: {fileID: 0} 372 | switchSmallIcons_9: {fileID: 0} 373 | switchSmallIcons_10: {fileID: 0} 374 | switchSmallIcons_11: {fileID: 0} 375 | switchSmallIcons_12: {fileID: 0} 376 | switchSmallIcons_13: {fileID: 0} 377 | switchSmallIcons_14: {fileID: 0} 378 | switchManualHTML: 379 | switchAccessibleURLs: 380 | switchLegalInformation: 381 | switchMainThreadStackSize: 1048576 382 | switchPresenceGroupId: 383 | switchLogoHandling: 0 384 | switchReleaseVersion: 0 385 | switchDisplayVersion: 1.0.0 386 | switchStartupUserAccount: 0 387 | switchTouchScreenUsage: 0 388 | switchSupportedLanguagesMask: 0 389 | switchLogoType: 0 390 | switchApplicationErrorCodeCategory: 391 | switchUserAccountSaveDataSize: 0 392 | switchUserAccountSaveDataJournalSize: 0 393 | switchApplicationAttribute: 0 394 | switchCardSpecSize: -1 395 | switchCardSpecClock: -1 396 | switchRatingsMask: 0 397 | switchRatingsInt_0: 0 398 | switchRatingsInt_1: 0 399 | switchRatingsInt_2: 0 400 | switchRatingsInt_3: 0 401 | switchRatingsInt_4: 0 402 | switchRatingsInt_5: 0 403 | switchRatingsInt_6: 0 404 | switchRatingsInt_7: 0 405 | switchRatingsInt_8: 0 406 | switchRatingsInt_9: 0 407 | switchRatingsInt_10: 0 408 | switchRatingsInt_11: 0 409 | switchLocalCommunicationIds_0: 410 | switchLocalCommunicationIds_1: 411 | switchLocalCommunicationIds_2: 412 | switchLocalCommunicationIds_3: 413 | switchLocalCommunicationIds_4: 414 | switchLocalCommunicationIds_5: 415 | switchLocalCommunicationIds_6: 416 | switchLocalCommunicationIds_7: 417 | switchParentalControl: 0 418 | switchAllowsScreenshot: 1 419 | switchAllowsVideoCapturing: 1 420 | switchAllowsRuntimeAddOnContentInstall: 0 421 | switchDataLossConfirmation: 0 422 | switchUserAccountLockEnabled: 0 423 | switchSupportedNpadStyles: 3 424 | switchNativeFsCacheSize: 32 425 | switchIsHoldTypeHorizontal: 0 426 | switchSupportedNpadCount: 8 427 | switchSocketConfigEnabled: 0 428 | switchTcpInitialSendBufferSize: 32 429 | switchTcpInitialReceiveBufferSize: 64 430 | switchTcpAutoSendBufferSizeMax: 256 431 | switchTcpAutoReceiveBufferSizeMax: 256 432 | switchUdpSendBufferSize: 9 433 | switchUdpReceiveBufferSize: 42 434 | switchSocketBufferEfficiency: 4 435 | switchSocketInitializeEnabled: 1 436 | switchNetworkInterfaceManagerInitializeEnabled: 1 437 | switchPlayerConnectionEnabled: 1 438 | ps4NPAgeRating: 12 439 | ps4NPTitleSecret: 440 | ps4NPTrophyPackPath: 441 | ps4ParentalLevel: 11 442 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000 443 | ps4Category: 0 444 | ps4MasterVersion: 01.00 445 | ps4AppVersion: 01.00 446 | ps4AppType: 0 447 | ps4ParamSfxPath: 448 | ps4VideoOutPixelFormat: 0 449 | ps4VideoOutInitialWidth: 1920 450 | ps4VideoOutBaseModeInitialWidth: 1920 451 | ps4VideoOutReprojectionRate: 60 452 | ps4PronunciationXMLPath: 453 | ps4PronunciationSIGPath: 454 | ps4BackgroundImagePath: 455 | ps4StartupImagePath: 456 | ps4StartupImagesFolder: 457 | ps4IconImagesFolder: 458 | ps4SaveDataImagePath: 459 | ps4SdkOverride: 460 | ps4BGMPath: 461 | ps4ShareFilePath: 462 | ps4ShareOverlayImagePath: 463 | ps4PrivacyGuardImagePath: 464 | ps4NPtitleDatPath: 465 | ps4RemotePlayKeyAssignment: -1 466 | ps4RemotePlayKeyMappingDir: 467 | ps4PlayTogetherPlayerCount: 0 468 | ps4EnterButtonAssignment: 1 469 | ps4ApplicationParam1: 0 470 | ps4ApplicationParam2: 0 471 | ps4ApplicationParam3: 0 472 | ps4ApplicationParam4: 0 473 | ps4DownloadDataSize: 0 474 | ps4GarlicHeapSize: 2048 475 | ps4ProGarlicHeapSize: 2560 476 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ 477 | ps4pnSessions: 1 478 | ps4pnPresence: 1 479 | ps4pnFriends: 1 480 | ps4pnGameCustomData: 1 481 | playerPrefsSupport: 0 482 | enableApplicationExit: 0 483 | resetTempFolder: 1 484 | restrictedAudioUsageRights: 0 485 | ps4UseResolutionFallback: 0 486 | ps4ReprojectionSupport: 0 487 | ps4UseAudio3dBackend: 0 488 | ps4SocialScreenEnabled: 0 489 | ps4ScriptOptimizationLevel: 0 490 | ps4Audio3dVirtualSpeakerCount: 14 491 | ps4attribCpuUsage: 0 492 | ps4PatchPkgPath: 493 | ps4PatchLatestPkgPath: 494 | ps4PatchChangeinfoPath: 495 | ps4PatchDayOne: 0 496 | ps4attribUserManagement: 0 497 | ps4attribMoveSupport: 0 498 | ps4attrib3DSupport: 0 499 | ps4attribShareSupport: 0 500 | ps4attribExclusiveVR: 0 501 | ps4disableAutoHideSplash: 0 502 | ps4videoRecordingFeaturesUsed: 0 503 | ps4contentSearchFeaturesUsed: 0 504 | ps4attribEyeToEyeDistanceSettingVR: 0 505 | ps4IncludedModules: [] 506 | monoEnv: 507 | splashScreenBackgroundSourceLandscape: {fileID: 0} 508 | splashScreenBackgroundSourcePortrait: {fileID: 0} 509 | spritePackerPolicy: 510 | webGLMemorySize: 256 511 | webGLExceptionSupport: 1 512 | webGLNameFilesAsHashes: 0 513 | webGLDataCaching: 1 514 | webGLDebugSymbols: 0 515 | webGLEmscriptenArgs: 516 | webGLModulesDirectory: 517 | webGLTemplate: APPLICATION:Default 518 | webGLAnalyzeBuildSize: 0 519 | webGLUseEmbeddedResources: 0 520 | webGLCompressionFormat: 1 521 | webGLLinkerTarget: 1 522 | webGLThreadsSupport: 0 523 | scriptingDefineSymbols: {} 524 | platformArchitecture: {} 525 | scriptingBackend: {} 526 | il2cppCompilerConfiguration: {} 527 | managedStrippingLevel: {} 528 | incrementalIl2cppBuild: {} 529 | allowUnsafeCode: 0 530 | additionalIl2CppArgs: 531 | scriptingRuntimeVersion: 1 532 | apiCompatibilityLevelPerPlatform: {} 533 | m_RenderingPath: 1 534 | m_MobileRenderingPath: 1 535 | metroPackageName: Template_3D 536 | metroPackageVersion: 537 | metroCertificatePath: 538 | metroCertificatePassword: 539 | metroCertificateSubject: 540 | metroCertificateIssuer: 541 | metroCertificateNotAfter: 0000000000000000 542 | metroApplicationDescription: Template_3D 543 | wsaImages: {} 544 | metroTileShortName: 545 | metroTileShowName: 0 546 | metroMediumTileShowName: 0 547 | metroLargeTileShowName: 0 548 | metroWideTileShowName: 0 549 | metroSupportStreamingInstall: 0 550 | metroLastRequiredScene: 0 551 | metroDefaultTileSize: 1 552 | metroTileForegroundText: 2 553 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} 554 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, 555 | a: 1} 556 | metroSplashScreenUseBackgroundColor: 0 557 | platformCapabilities: {} 558 | metroTargetDeviceFamilies: {} 559 | metroFTAName: 560 | metroFTAFileTypes: [] 561 | metroProtocolName: 562 | metroCompilationOverrides: 1 563 | XboxOneProductId: 564 | XboxOneUpdateKey: 565 | XboxOneSandboxId: 566 | XboxOneContentId: 567 | XboxOneTitleId: 568 | XboxOneSCId: 569 | XboxOneGameOsOverridePath: 570 | XboxOnePackagingOverridePath: 571 | XboxOneAppManifestOverridePath: 572 | XboxOneVersion: 1.0.0.0 573 | XboxOnePackageEncryption: 0 574 | XboxOnePackageUpdateGranularity: 2 575 | XboxOneDescription: 576 | XboxOneLanguage: 577 | - enus 578 | XboxOneCapability: [] 579 | XboxOneGameRating: {} 580 | XboxOneIsContentPackage: 0 581 | XboxOneEnableGPUVariability: 0 582 | XboxOneSockets: {} 583 | XboxOneSplashScreen: {fileID: 0} 584 | XboxOneAllowedProductIds: [] 585 | XboxOnePersistentLocalStorageSize: 0 586 | XboxOneXTitleMemory: 8 587 | xboxOneScriptCompiler: 0 588 | XboxOneOverrideIdentityName: 589 | vrEditorSettings: 590 | daydream: 591 | daydreamIconForeground: {fileID: 0} 592 | daydreamIconBackground: {fileID: 0} 593 | cloudServicesEnabled: 594 | UNet: 1 595 | luminIcon: 596 | m_Name: 597 | m_ModelFolderPath: 598 | m_PortalFolderPath: 599 | luminCert: 600 | m_CertPath: 601 | m_PrivateKeyPath: 602 | luminIsChannelApp: 0 603 | luminVersion: 604 | m_VersionCode: 1 605 | m_VersionName: 606 | facebookSdkVersion: 7.9.4 607 | facebookAppId: 608 | facebookCookies: 1 609 | facebookLogging: 1 610 | facebookStatus: 1 611 | facebookXfbml: 0 612 | facebookFrictionlessRequests: 1 613 | apiCompatibilityLevel: 6 614 | cloudProjectId: 615 | framebufferDepthMemorylessMode: 0 616 | projectName: 617 | organizationId: 618 | cloudEnabled: 0 619 | enableNativePlatformBackendsForNewInputSystem: 0 620 | disableOldInputManagerSupport: 0 621 | legacyClampBlendShapeWeights: 0 622 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2018.3.0f2 2 | -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 4 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Very Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | blendWeights: 1 22 | textureQuality: 1 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.3 31 | maximumLODLevel: 0 32 | particleRaycastBudget: 4 33 | asyncUploadTimeSlice: 2 34 | asyncUploadBufferSize: 16 35 | resolutionScalingFixedDPIFactor: 1 36 | excludedTargetPlatforms: [] 37 | - serializedVersion: 2 38 | name: Low 39 | pixelLightCount: 0 40 | shadows: 0 41 | shadowResolution: 0 42 | shadowProjection: 1 43 | shadowCascades: 1 44 | shadowDistance: 20 45 | shadowNearPlaneOffset: 3 46 | shadowCascade2Split: 0.33333334 47 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 48 | shadowmaskMode: 0 49 | blendWeights: 2 50 | textureQuality: 0 51 | anisotropicTextures: 0 52 | antiAliasing: 0 53 | softParticles: 0 54 | softVegetation: 0 55 | realtimeReflectionProbes: 0 56 | billboardsFaceCameraPosition: 0 57 | vSyncCount: 0 58 | lodBias: 0.4 59 | maximumLODLevel: 0 60 | particleRaycastBudget: 16 61 | asyncUploadTimeSlice: 2 62 | asyncUploadBufferSize: 16 63 | resolutionScalingFixedDPIFactor: 1 64 | excludedTargetPlatforms: [] 65 | - serializedVersion: 2 66 | name: Medium 67 | pixelLightCount: 1 68 | shadows: 1 69 | shadowResolution: 0 70 | shadowProjection: 1 71 | shadowCascades: 1 72 | shadowDistance: 20 73 | shadowNearPlaneOffset: 3 74 | shadowCascade2Split: 0.33333334 75 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 76 | shadowmaskMode: 0 77 | blendWeights: 2 78 | textureQuality: 0 79 | anisotropicTextures: 1 80 | antiAliasing: 0 81 | softParticles: 0 82 | softVegetation: 0 83 | realtimeReflectionProbes: 0 84 | billboardsFaceCameraPosition: 0 85 | vSyncCount: 1 86 | lodBias: 0.7 87 | maximumLODLevel: 0 88 | particleRaycastBudget: 64 89 | asyncUploadTimeSlice: 2 90 | asyncUploadBufferSize: 16 91 | resolutionScalingFixedDPIFactor: 1 92 | excludedTargetPlatforms: [] 93 | - serializedVersion: 2 94 | name: High 95 | pixelLightCount: 2 96 | shadows: 2 97 | shadowResolution: 1 98 | shadowProjection: 1 99 | shadowCascades: 2 100 | shadowDistance: 40 101 | shadowNearPlaneOffset: 3 102 | shadowCascade2Split: 0.33333334 103 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 104 | shadowmaskMode: 1 105 | blendWeights: 2 106 | textureQuality: 0 107 | anisotropicTextures: 1 108 | antiAliasing: 2 109 | softParticles: 0 110 | softVegetation: 1 111 | realtimeReflectionProbes: 1 112 | billboardsFaceCameraPosition: 1 113 | vSyncCount: 1 114 | lodBias: 1 115 | maximumLODLevel: 0 116 | particleRaycastBudget: 256 117 | asyncUploadTimeSlice: 2 118 | asyncUploadBufferSize: 16 119 | resolutionScalingFixedDPIFactor: 1 120 | excludedTargetPlatforms: [] 121 | - serializedVersion: 2 122 | name: Very High 123 | pixelLightCount: 3 124 | shadows: 2 125 | shadowResolution: 2 126 | shadowProjection: 1 127 | shadowCascades: 2 128 | shadowDistance: 40 129 | shadowNearPlaneOffset: 3 130 | shadowCascade2Split: 0.33333334 131 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 132 | shadowmaskMode: 1 133 | blendWeights: 4 134 | textureQuality: 0 135 | anisotropicTextures: 1 136 | antiAliasing: 4 137 | softParticles: 1 138 | softVegetation: 1 139 | realtimeReflectionProbes: 1 140 | billboardsFaceCameraPosition: 1 141 | vSyncCount: 1 142 | lodBias: 1.5 143 | maximumLODLevel: 0 144 | particleRaycastBudget: 1024 145 | asyncUploadTimeSlice: 2 146 | asyncUploadBufferSize: 16 147 | resolutionScalingFixedDPIFactor: 1 148 | excludedTargetPlatforms: [] 149 | - serializedVersion: 2 150 | name: Ultra 151 | pixelLightCount: 4 152 | shadows: 2 153 | shadowResolution: 2 154 | shadowProjection: 1 155 | shadowCascades: 4 156 | shadowDistance: 150 157 | shadowNearPlaneOffset: 3 158 | shadowCascade2Split: 0.33333334 159 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 160 | shadowmaskMode: 1 161 | blendWeights: 4 162 | textureQuality: 0 163 | anisotropicTextures: 1 164 | antiAliasing: 4 165 | softParticles: 1 166 | softVegetation: 1 167 | realtimeReflectionProbes: 1 168 | billboardsFaceCameraPosition: 1 169 | vSyncCount: 1 170 | lodBias: 2 171 | maximumLODLevel: 0 172 | particleRaycastBudget: 4096 173 | asyncUploadTimeSlice: 2 174 | asyncUploadBufferSize: 16 175 | resolutionScalingFixedDPIFactor: 1 176 | excludedTargetPlatforms: [] 177 | m_PerPlatformDefaultQuality: 178 | Android: 2 179 | Nintendo 3DS: 5 180 | Nintendo Switch: 5 181 | PS4: 5 182 | PSP2: 2 183 | Standalone: 5 184 | Tizen: 2 185 | WebGL: 3 186 | WiiU: 5 187 | Windows Store Apps: 5 188 | XboxOne: 5 189 | iPhone: 2 190 | tvOS: 2 191 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - PostProcessing 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.1 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 0 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_TestInitMode: 0 13 | CrashReportingSettings: 14 | m_EventUrl: https://perf-events.cloud.unity3d.com 15 | m_Enabled: 0 16 | m_LogBufferSize: 10 17 | m_CaptureEditorExceptions: 1 18 | UnityPurchasingSettings: 19 | m_Enabled: 0 20 | m_TestMode: 0 21 | UnityAnalyticsSettings: 22 | m_Enabled: 0 23 | m_TestMode: 0 24 | m_InitializeOnStartup: 1 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_RenderPipeSettingsPath: 10 | m_FixedTimeStep: 0.016666668 11 | m_MaxDeltaTime: 0.05 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # NoiseRings 2 | 3 | *NoiseRings* is a noisy emanating ring effect for Unity adapted with permission from the VR music video experience [Chorus]. Tested with Unity 2018.3.0f2. 4 | 5 | ![Noisy rings emanate from a central source](preview.gif) 6 | 7 | ## Usage 8 | 9 | An example is provided in `Assets/Example/ExampleScene.unity`. Attach a `NoiseRingSource` component to the GameObject you would like the noise rings to emanate from. For the `NoiseRingSource` to render correctly the `UpdateShaderGlobals` component must be attached to a GameObject in the scene. The noise ring animation can be triggered by calling `Trigger()` on the `NoiseRingSource`. 10 | 11 | ## Settings 12 | 13 | Name | Type | Description 14 | :---- |:---- |:----------- 15 | Number Of Segments | `int` | Number of segments in the generated ring mesh. Increase this value if the rings appear too jagged. 16 | Number Of Rings | `int` | Number of rings to emanate when the animation is triggered. 17 | Radial Offset | `float` | Radial distance between the rings when emanated. This allows you to control how far apart the rings appear to be spaced. Note that the distance will shrink as the animation progresses and the rings will converge at the end. 18 | Line Texture | `Texture2D` | Texture to use for rendering the ring lines. The texture will be stretched horizontally around the circumference of the ring. 19 | Color | `Color` | Line color. 20 | Multiplier | `float` | Line color multiplier. 21 | Line Width | `float` | Line width. This is scaled with the transform's z scale value. 22 | Noise Scale | `float` | Scale of the noise applied to the rings. Higher is bumpier, lower is smoother. 23 | Noise Height | `float` | How much the noise affects the height of the rings. 24 | Detail Noise Scale | `float` | Scale of the detail noise applied to the rings. Higher is bumpier, lower is smoother. 25 | Detail Noise Height | `float` | How much the detail noise affects the height of the rings. 26 | Speed | `float` | Speed at which the noise changes. 27 | 28 | ## Animation Settings 29 | 30 | Name | Type | Description 31 | :---- |:---- |:----------- 32 | Animation Duration | `float` | Total duration in seconds for the animation to complete after being triggered. 33 | End Radius | `float` | The final radius the rings will reach and converge at. 34 | Intensity Curve | `AnimationCurve` | Curve that determines how much the noise affects the rings as they progress outward. 35 | Max Height | `float` | Maximum height above the ground the rings will reach. 36 | Height Curve | `AnimationCurve` | Curve that determines the height of the rings relative to the max height as they progress outward. 37 | 38 | ## Public Methods 39 | 40 | Name | Return Type | Description 41 | :---- |:----------- |:----------- 42 | `Trigger()` | `void` | Triggers the animation. 43 | `EndAnimation()` | `void` | Ends the animation early. 44 | `AnimationDuration()` | `float` | Returns the animation duration. 45 | 46 | [Chorus]: http://tylerhurd.com/projects/chorus/ -------------------------------------------------------------------------------- /preview.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaelb/NoiseRings/d1abda1252debb5cf3d5a3ba2759c2f5b727aad0/preview.gif --------------------------------------------------------------------------------