diff --git a/Core/Game/Abilities/Essential/Move.cs b/Core/Game/Abilities/Essential/Move.cs index 841ecd58..1b19a726 100755 --- a/Core/Game/Abilities/Essential/Move.cs +++ b/Core/Game/Abilities/Essential/Move.cs @@ -26,7 +26,7 @@ public class Move : ActiveAbility private int RepathRate { - get { return FixedMath.Create(repathRate).Div(this.Speed).CeilToInt(); } + get { return FixedMath.Create(repathRate).Div(this.Speed > FixedMath.One ? this.Speed : FixedMath.One).CeilToInt(); } } private const int straightRepathRate = repathRate * 4; diff --git a/Core/Game/Managers/LockstepManager.cs b/Core/Game/Managers/LockstepManager.cs index 4c80ba92..73282274 100755 --- a/Core/Game/Managers/LockstepManager.cs +++ b/Core/Game/Managers/LockstepManager.cs @@ -307,6 +307,7 @@ internal static void Visualize () AgentController.Visualize (); ProjectileManager.Visualize (); EffectManager.Visualize (); + CommandManager.Visualize(); } diff --git a/Core/Game/Managers/ReplayManager.cs b/Core/Game/Managers/ReplayManager.cs index 060cd42a..64a9979a 100755 --- a/Core/Game/Managers/ReplayManager.cs +++ b/Core/Game/Managers/ReplayManager.cs @@ -92,7 +92,7 @@ public static Frame[] Deserialize (Reader reader) { bufferFrames.Clear(); int length = reader.ReadInt(); - int lastSavedFrame = 0; + int lastSavedFrame = -1; while (reader.Position < reader.Length) { int frameCount = reader.ReadInt(); diff --git a/Core/Game/Player/Commands/CommandManager.cs b/Core/Game/Player/Commands/CommandManager.cs index 34a67d9f..50962072 100755 --- a/Core/Game/Player/Commands/CommandManager.cs +++ b/Core/Game/Player/Commands/CommandManager.cs @@ -1,99 +1,101 @@ -using System; -using UnityEngine; -using System.Collections.Generic; -namespace Lockstep -{ - public static class CommandManager - { - - #region Recording - - - #endregion - - static readonly FastList bufferedBytes = new FastList(256); - - public static void Initialize() - { - } - - public static void Simulate() - { - SendOut(); - } - - public static void ProcessPacket(byte[] packet) - { - processBytes.FastClear(); - processBytes.AddRange(packet); - ProcessPacket(processBytes); - } - - static FastList processBytes = new FastList(); - - public static void ProcessPacket(FastList packet) - { - - if (packet == null || packet.Count < 4) - { - throw new System.Exception("Packet is null or not valid length"); - } - int frameCount = BitConverter.ToInt32(packet.innerArray, 0); - int index = 4; - - Frame frame = new Frame(); - - if (packet.Count > 4) - { - while (index < packet.Count) - { - Command com = new Command(); - index += com.Reconstruct(packet.innerArray, index); - frame.AddCommand(com); - } - } - ProcessFrame(frameCount, frame); - - } - - public static void ProcessFrame(int frameCount, Frame frame) - { - if (FrameManager.HasFrame(frameCount) == false) - { - FrameManager.AddFrame(frameCount, frame); - } - - } - - /// - /// Sends out all Commands - /// - public static void SendOut() - { - - if (bufferedBytes.Count > 0) - { - ClientManager.Distribute(bufferedBytes.ToArray()); - bufferedBytes.FastClear(); - } - - - } - //static FastList asdf = new FastList(); - public static void SendCommand(Command com, bool immediate = false) - { - if (com == null) - { - return; - } - - bufferedBytes.AddRange(com.Serialized); - if (immediate) - { - - SendOut(); - } - } - } - +using System; +using UnityEngine; +using System.Collections.Generic; +namespace Lockstep +{ + public static class CommandManager + { + + #region Recording + + + #endregion + + static readonly FastList bufferedBytes = new FastList(256); + + public static void Initialize() + { + } + + public static void Simulate() + { + SendOut(); + } + public static void Visualize() + { + SendOut(); + } + + public static void ProcessPacket(byte[] packet) + { + processBytes.FastClear(); + processBytes.AddRange(packet); + ProcessPacket(processBytes); + } + + static FastList processBytes = new FastList(); + + public static void ProcessPacket(FastList packet) + { + if (ReplayManager.IsPlayingBack) return; + if (packet == null || packet.Count < 4) + { + throw new System.Exception("Packet is null or not valid length"); + } + int frameCount = BitConverter.ToInt32(packet.innerArray, 0); + + int index = 4; + + Frame frame = new Frame(); + + if (packet.Count > 4) + { + + while (index < packet.Count) + { + Command com = new Command(); + index += com.Reconstruct(packet.innerArray, index); + frame.AddCommand(com); + } + + } + ProcessFrame(frameCount, frame); + } + + public static void ProcessFrame(int frameCount, Frame frame) + { + if (FrameManager.HasFrame(frameCount) == false) + { + FrameManager.AddFrame(frameCount, frame); + } + + } + + /// + /// Sends out all Commands + /// + public static void SendOut() + { + + if (bufferedBytes.Count > 0) + { + ClientManager.Distribute(bufferedBytes.ToArray()); + bufferedBytes.FastClear(); + } + + + } + //static FastList asdf = new FastList(); + public static void SendCommand(Command com) + { + if (com == null) + { + return; + } + + bufferedBytes.AddRange(com.Serialized); + + } + } + } \ No newline at end of file diff --git a/Example/ExampleGameManager.cs b/Example/ExampleGameManager.cs index cf855e2b..adc93d25 100755 --- a/Example/ExampleGameManager.cs +++ b/Example/ExampleGameManager.cs @@ -11,21 +11,24 @@ void OnGUI () { GUI.matrix = Matrix4x4.TRS (new Vector3(0, 0, 0), Quaternion.identity, new Vector3 (2.5f, 2.5f, 1)); - if (ReplayManager.CurrentReplay != null) - { - if (GUILayout.Button ("Stop")) { - ReplayManager.CurrentReplay = null; - ReplayManager.Stop (); - LSUtility.LoadLevel (SceneManager.GetActiveScene().name); - } - if (GUILayout.Button ("Rewind")) { - ReplayManager.Play (LastSave); - LSUtility.LoadLevel (SceneManager.GetActiveScene().name); + if (ReplayManager.IsPlayingBack) { + if (ReplayManager.CurrentReplay != null) + { + if (GUILayout.Button("Stop")) + { + ReplayManager.CurrentReplay = null; + ReplayManager.Stop(); + LSUtility.LoadLevel(SceneManager.GetActiveScene().name); + } + + if (GUILayout.Button("Rewind")) + { + ReplayManager.Play(LastSave); + LSUtility.LoadLevel(SceneManager.GetActiveScene().name); + } } - } - if (ReplayManager.IsPlayingBack) { } else { if (GUILayout.Button ("Restart")) { LSUtility.LoadLevel (SceneManager.GetActiveScene().name); diff --git a/Example/ExampleScene.unity b/Example/ExampleScene.unity index 69cfcbd8..ad223373 100644 --- a/Example/ExampleScene.unity +++ b/Example/ExampleScene.unity @@ -124,8 +124,8 @@ MonoBehaviour: _y: -50462 _height: 0 Rotation: - x: 65536 - y: 0 + x: 45714 + y: 46959 _environmentObjects: [] --- !u!4 &357143950 Transform: @@ -139,89 +139,7 @@ Transform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 ---- !u!1 &406878645 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 143428, guid: 7adf26d256267454bb6f9b55470051d7, type: 2} - m_PrefabInternal: {fileID: 1659204528} - serializedVersion: 4 - m_Component: - - 4: {fileID: 406878646} - - 33: {fileID: 406878649} - - 65: {fileID: 406878648} - - 23: {fileID: 406878647} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &406878646 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 422538, guid: 7adf26d256267454bb6f9b55470051d7, type: 2} - m_PrefabInternal: {fileID: 1659204528} - m_GameObject: {fileID: 406878645} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0.48} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.6} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_Children: [] - m_Father: {fileID: 2037861180} - m_RootOrder: 0 ---- !u!23 &406878647 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2347950, guid: 7adf26d256267454bb6f9b55470051d7, - type: 2} - m_PrefabInternal: {fileID: 1659204528} - m_GameObject: {fileID: 406878645} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: b30447a543b0c4e6b9494c581702fd8c, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedWireframeHidden: 0 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &406878648 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6514166, guid: 7adf26d256267454bb6f9b55470051d7, - type: 2} - m_PrefabInternal: {fileID: 1659204528} - m_GameObject: {fileID: 406878645} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &406878649 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3365602, guid: 7adf26d256267454bb6f9b55470051d7, - type: 2} - m_PrefabInternal: {fileID: 1659204528} - m_GameObject: {fileID: 406878645} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} + m_RootOrder: 3 --- !u!1 &705538422 GameObject: m_ObjectHideFlags: 0 @@ -301,202 +219,6 @@ MeshFilter: m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 705538422} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &769987904 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100310, guid: 7adf26d256267454bb6f9b55470051d7, type: 2} - m_PrefabInternal: {fileID: 1659204528} - serializedVersion: 4 - m_Component: - - 4: {fileID: 769987912} - - 114: {fileID: 769987911} - - 114: {fileID: 769987910} - - 114: {fileID: 769987909} - - 114: {fileID: 769987908} - - 114: {fileID: 769987907} - - 114: {fileID: 769987906} - - 114: {fileID: 769987905} - m_Layer: 0 - m_Name: TestAgent - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &769987905 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11447240, guid: 7adf26d256267454bb6f9b55470051d7, - type: 2} - m_PrefabInternal: {fileID: 1659204528} - m_GameObject: {fileID: 769987904} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: cc61d323ede6e5c4e934b394d3ec5080, type: 3} - m_Name: - m_EditorClassIdentifier: - _maxHealth: 65536000 - _currentHealth: 0 ---- !u!114 &769987906 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11479720, guid: 7adf26d256267454bb6f9b55470051d7, - type: 2} - m_PrefabInternal: {fileID: 1659204528} - m_GameObject: {fileID: 769987904} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4525e3f8c8889d43a4d23626ea32d54, type: 3} - m_Name: - m_EditorClassIdentifier: - _cooldown: 0 - _projectileCode: TestBullet - _range: 786432 - _sight: 655360 - _damage: 65536 - _attackRate: 32 - _targetAllegiance: 4 - _trackAttackAngle: 1 - _attackAngle: 11380 - _projectileOffset: - x: 0 - y: 0 - z: 0 - _secondaryProjectileOffsets: [] - _cycleProjectiles: 0 - _windup: 0 - _increasePriority: 1 ---- !u!114 &769987907 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11406140, guid: 7adf26d256267454bb6f9b55470051d7, - type: 2} - m_PrefabInternal: {fileID: 1659204528} - m_GameObject: {fileID: 769987904} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f42d52091a614957912ec7da50c9027, type: 3} - m_Name: - m_EditorClassIdentifier: - _mapIndex: 0 - _bonusHeight: 0 ---- !u!114 &769987908 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11425566, guid: 7adf26d256267454bb6f9b55470051d7, - type: 2} - m_PrefabInternal: {fileID: 1659204528} - m_GameObject: {fileID: 769987904} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a7cc9ef18533c9f4c943ac00aab4efd7, type: 3} - m_Name: - m_EditorClassIdentifier: - _cooldown: 0 - Destination: - x: 0 - y: 0 - _canMove: 1 - _canTurn: 1 - _speed: 131072 - _acceleration: 65536 - _canPathfind: 1 - StopTimer: 0 - DrawPath: 1 ---- !u!114 &769987909 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11439568, guid: 7adf26d256267454bb6f9b55470051d7, - type: 2} - m_PrefabInternal: {fileID: 1659204528} - m_GameObject: {fileID: 769987904} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5573488627c5d4e2989d3c77cde5bfb6, type: 3} - m_Name: - m_EditorClassIdentifier: - _turnRate: - x: 64276 - y: 12785 ---- !u!114 &769987910 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11485440, guid: 7adf26d256267454bb6f9b55470051d7, - type: 2} - m_PrefabInternal: {fileID: 1659204528} - m_GameObject: {fileID: 769987904} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: db60e16922dd049ceb3f90f627871a31, type: 3} - m_Name: - m_EditorClassIdentifier: - _deathTime: 64 - _agentType: 0 - _globalID: 0 - _boxPriority: 0 - _selectionPriority: 0 - _selectable: 1 - TypeIndex: 0 - Tag: 0 - _selectionRadius: 1 - _visualCenter: {fileID: 769987912} - VisualPositionChanged: 0 ---- !u!114 &769987911 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 11487560, guid: 7adf26d256267454bb6f9b55470051d7, - type: 2} - m_PrefabInternal: {fileID: 1659204528} - m_GameObject: {fileID: 769987904} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 53047ee8fe7aa8f429746c6b0e2b416a, type: 3} - m_Name: - m_EditorClassIdentifier: - _position: - x: 0 - y: 0 - _rotation: - x: 0 - y: 65536 - _heightPos: 0 - _velocity: - x: 0 - y: 0 - RealPoints: [] - Edges: [] - EdgeNorms: [] - PastGridXMin: 0 - PastGridXMax: 0 - PastGridYMin: 0 - PastGridYMax: 0 - _shape: 1 - _isTrigger: 0 - _layer: 0 - _halfWidth: 0 - _halfHeight: 0 - _radius: 32768 - _immovable: 0 - _basePriority: 0 - _vertices: [] - _height: 65536 - _positionalTransform: {fileID: 769987912} - _rotationalTransform: {fileID: 769987912} - _rotationOffset: {x: 0, y: 0, z: 0} ---- !u!4 &769987912 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 465378, guid: 7adf26d256267454bb6f9b55470051d7, type: 2} - m_PrefabInternal: {fileID: 1659204528} - m_GameObject: {fileID: 769987904} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_Children: - - {fileID: 2037861180} - m_Father: {fileID: 0} - m_RootOrder: 7 --- !u!1 &969049746 GameObject: m_ObjectHideFlags: 0 @@ -725,35 +447,7 @@ Transform: m_Children: - {fileID: 705538423} m_Father: {fileID: 0} - m_RootOrder: 8 ---- !u!1 &1217231139 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 4 - m_Component: - - 4: {fileID: 1217231140} - m_Layer: 0 - m_Name: GameObject - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1217231140 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1217231139} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -1.3439194, y: -2.9479918, z: 2.953869} - m_LocalScale: {x: 1, y: 1, z: 1} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 7 --- !u!1001 &1659204528 Prefab: m_ObjectHideFlags: 0 @@ -791,11 +485,18 @@ Prefab: objectReference: {fileID: 0} - target: {fileID: 465378, guid: 7adf26d256267454bb6f9b55470051d7, type: 2} propertyPath: m_RootOrder - value: 7 + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 11425566, guid: 7adf26d256267454bb6f9b55470051d7, type: 2} + propertyPath: _speed + value: 131072 + objectReference: {fileID: 0} + - target: {fileID: 11425566, guid: 7adf26d256267454bb6f9b55470051d7, type: 2} + propertyPath: _canTurn + value: 1 objectReference: {fileID: 0} m_RemovedComponents: [] m_ParentPrefab: {fileID: 100100000, guid: 7adf26d256267454bb6f9b55470051d7, type: 2} - m_RootGameObject: {fileID: 769987904} m_IsPrefabParent: 0 --- !u!1 &1766741197 GameObject: @@ -875,7 +576,7 @@ Transform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 5 + m_RootOrder: 4 --- !u!1 &1811928835 GameObject: m_ObjectHideFlags: 0 @@ -893,6 +594,8 @@ GameObject: - 114: {fileID: 1811928836} - 114: {fileID: 1811928845} - 114: {fileID: 1811928843} + - 114: {fileID: 1811928846} + - 114: {fileID: 1811928847} m_Layer: 0 m_Name: Manager m_TagString: Untagged @@ -1007,14 +710,8 @@ MonoBehaviour: Count: 100 ControllerIndex: 0 Position: - x: -1966080 - y: -1966080 - - AgentCode: TestAgent - Count: 100 - ControllerIndex: 1 - Position: - x: 1966080 - y: 1966080 + x: -655360 + y: 0 --- !u!4 &1811928844 Transform: m_ObjectHideFlags: 0 @@ -1052,81 +749,101 @@ MonoBehaviour: _maps: - _scanLayers: serializedVersion: 2 - m_Bits: 256 + m_Bits: 4294967295 _map: _width: 200 _height: 200 - _innerArray: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + _innerArray: 4d1d4d1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d1d4d1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200040004000400040004000300020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040004000400040004000400040004000400040004000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010002000400040004000700090009000700070008000900090009000900090007000400040004000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000400040004000400090009000a000e000e000e00120012000e000e000e000e000a00090009000500050005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030004000400040008000c000d000e001100160019001900180017001a0019001600160012001400110011000e000a00090009000400040004000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010004000400060009000a000c00170018001b001d0020002200230027002b0028002b002800220022001d001900170014000f000b000a000a0004000400040004000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030004000400070009000d0013001a001e00200024002d003100330039003b003a003b0037003b003c002e002a00280020001c001b00160013000e000e0009000400040004000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000400040009000b000f0016001b002400290035003900410047004d00500050005300530053004c004a0049003c00350030002900250020001c00140014000e000b00090004000400040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000400060009000e0018001f002b0033003b0045004f005900620066006b006f006f0072007000660061005d00570047004100380035002e00270023001b0017000e000e000900060004000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000400040009000e0019001f002a0039004300520062006e0077008100860092009300950091008f008a00810076006a00600053004b0046003c0036002c0025002100170012000e0009000600040004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040009000b0017001e002b003700480059006a007e008b009800a500ae00b600b400b700b400ae00a7009b00920087007c006f005f0057004b0044003c0035002d0021001a0013000e0009000600040004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010004000600090012001c002600340046005e00740086009e00b100c000cf00d500da00e000e000d900d200c600bc00ab00a000940084007e006e0063005a004f00440039002a0021001a0013000e0009000400040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100040006000a00170021002d003e00580070008900a500b900d400e800f600ff0004010401fc00f900ed00e200d500c700b700aa009a00900084007b006e00630055004500350029002100170012000b000400040003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040009000d001900240034004700630080009c00c000dd00f100080115012201280125011f0113010501f500e800d800c900c000b000a60099008e0080007300660054004100350029001d0012000e00090004000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040004000900120019002a00390051006f008c00b100d000f6000e0126013501400141013d013701280117010801f700e700d800cf00c100b500ab00a00091008400730061004b003c002f00230017000f0009000500030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000400090012001c002a003d00550076009500bc00e30000012201390149015101520149013e0133011d011101fc00f000de00d300c700c000b800ac00a0008f007f006a0055004300330023001b000f00090005000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040004000b0012001e002a00400056007a009900c100e600080127013f014f015701570150013f012e0119010901f600ea00de00d400c900c300bd00b100a900990087006f0059004700360027001b0012000d0005000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040004000b0012001b002a003d00550072009900b900e1000a0125013a014b01510151014301360120010f01f900ed00dd00d100cd00c300c000bb00b200a5009900850072005a004900380027001b0012000d0005000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040004000b0012001b00250039004f006b009100b200d500f90014012c0139013e0139012d0121010b01f500e700d800c600c300bd00b900b400b100aa00a1009300810071005a004600350027001b0012000d00050003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100040008000e00170021003400470063008100a000c000df00fb000e011a0120011c0111010001ef00de00cc00ba00b100ab00ab00a500a200a0009e0094008a007a006900540042003300230017000f000900050003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100040004000e0012001d002d003f0054006e008d00a800c400dc00ed00f800fa00f900ed00e100ce00bc00ae00a100970092008f008e008f008d008a00840078006e005a0049003c002b001f0017000f000900090006000300030003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040004000c0010001b002700330046005e0075009000a100ba00c900d000d000cf00c500b700a8009c008e0081007a007b0078007400770076007400700068005c004d004200320026001d00170011000d000900070004000400040004000400040001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040009000e0017001e002b0037004a005e00740084009100a200a900ab00a400a0009300860078006e00680060005f005b005d00630061005b005a0059004d00450039002d0029001f00180013000f0010000b00080008000800050004000400040004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040009000e0017001f002b00380048005400680074007c0082007f007f007c0072006800600054004d0049004700480047004d004a004b004c0046003e00360031002b0024001d001a00170013001400120012000e000b000b0009000700050004000400010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040009000900100018001f002b00330041004b0055005e005e0063005f00580051004b0046003d003c00350034003700360039003c003d00390039003800330033002e002a0029002100200021001d00170017001700120012000e000d000900050004000400020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040009000900120015001f0025002e0038003d0046004800470042003d003a00360031002c00290023002600230027002e002a002a0031003200300033003100310031002e002e002e0031002a002d002800250023001b00150011000e0009000900040004000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400090009001100130017001f00250029002e002e002e002e002e002500250020001b001b001a0017001b0021001c0021002a002a002f003600380038004000410042004100420042003e0041003d0039002f002c0025001d00170010000c000900040004000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030004000400040004000400040004000400000000000000040004000400040004000400040004000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000900090009000e001000140016001c001e001e001f0020001b001b001600160011000f0011000f00140014001c001e0025002a0032003c00410048005200520059005b005d005e005a005b0053004f004a003d003800280020001b0013000c0007000400040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200040004000400040004000400070009000900090009000e000c000700040004000400040004000400040004000400040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400090009000c000e000e001200120012001200120012001100090009000c000900090009001100130017001e0026002f003e00470056005e0069006f007c007c007f0084007f007b0073006c006300570047003a002e0021001a0012000c00040004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000400050009000a000e000e0013001300130012001200130012001200130014001200120013000e000e000900090006000400040004000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010004000600060007000a000a000a000a000a000a0009000700040004000600060009000e0011001a0021002b003b004b005b006a007a008c0096009e00a300a800a800a500a0009a008d007d006f005f004b003a002b002200170010000c00040003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300040009000c000e001100140017001a001a001e001c0024002400200021001c001e001b0017001a001a001500120012000c000900080004000400040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040004000400040004000400040004000400040004000400000000000d000e0014001c00290036004b006000750087009f00ab00bb00c900d000d600d500cf00c800c100b300a3008e00780062004d003a002c001d0012000e0009000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400080009000d0010001600220026002b003100310035003a00340032003300340034002c002c0030002600260023001a001800140010000a00090004000400040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200040004000400040004000400040004000000000000000000060009000d00140020002e00400058006f008d00a500c500d700eb00f900ff00070103010301f600e800d800c200ae00930077005e0047003500250019000e000a00080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300080009000e0019002200290030003500400048004d0052004e005800510055004c004a004d00440041004000380036002e0026001c00190012000d00090004000400040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600090011001900270038004d0069008900a700c900e4000301150127012e01330131012b011f011101fc00e100c800a8008e006f0053003d003000240017000f000d000600040004000400040000000000000000000000000000000000000000000000000000000000000000000000000000000100090009000f001b00210033003f004b00590065006c0073007a00790078007a00770075006c00690068005e00580052004600400036002c0020001c0016000d0009000400040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000900090012001d002e00410059007a009800c000e400050123013d014f0156015d0159015101470135011e010501e400c200a0007e0063004c0038002700200014000d000900040004000400040004000400010000000000000000000000000000000000000000000000000000000000000000000900090015001f002b00400048005400690075008b009700a600a800ac00ac00af009f00a2009900920090008900790072006200560049004200310020001c0016000a0008000400040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010009000b0012001f002e00460060008500a900d300fa001e013f015c01700177017b017a017101630152013a011b01fc00d900b10090007000530042002f0025001900140010000a000900090007000400040004000300000000000000000000000000000000000000000000000000000002000700100013002000280039004f0065007d009300ae00bf00cd00dc00e600e600e800e100dd00d300ce00c400b700b000a100930088007200610051003c002f00200019000e0009000400040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050009000b001300220033004a0068008d00b000e00007012f0154016d017e018a018e01890183017501650146012c010801e400c4009700780063004c003a002e0020001f00170011000e000e000e000900090004000400040000000400040004000400040004000400040003000000040004000c0013001e0029003f005600680087009d00c400e500ff00180120012b01290129012301160111010501fd00f000df00d400bb00ab00910078006300510039002a00200014000d000600040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050009000e001600240033004a0069008d00b500e1000c01330154016e0182018d018e01900187017a016601530135011601f200c900a30081006b005600440034002f0027001f001a001600150011000e000c00090005000900090004000400040004000400040004000400060009000900050016001c00270039004d006d008b00b000d4000001220140015b01720176017901740169015d0150014401330120011101fc00e400cb00ac00930078005e0044003400230019000e000900040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040009000e00160023003200490066008b00b700dc0006012a014d016a0179018701870184018101730160014c012c011701ee00d200ae008b007500620051004600390038002f002a0022001f00180015000f0012000e0009000a000d00090009000a000a0009000a000a000a0009000b001300200027003a004b0066008900b000d8000f013e0163018f01a901b901c601bc01b601ab01a2018e0181016e015601420126010801ea00c600a80089006c004d003b0025001c000e000900040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040009000b00160020002f00460062008100ab00ce00f6001c0137014f015f016c0171016d016701600150013c0128011201ef00cf00ae008e007b006a005d0056004d0044003b00370033002f0024001d001c001700120011000e0011000f000e00110011000e000f0012000f001100110021002900350047005d008700ac00dc000c0143017801a301cf01f10109020e020f02ff01eb01da01c501b0019d018a0168014d0127010501de00bb009a00760054003f002e001d0011000900040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007000a0014001d002e003e00570074009900b700db00fc0016012d013c0146014d014f0149014001350124011a01fe00ea00cb00ae009800850077006d00630060005c005200490043003c0039002d0021001d001b001800180017001800180018001800180018001800180018001d002b00310045005b007800a300cf0005013e017e01b601e501180233024d024a02430235021e020a02f701d801b8019e01860162013e011701eb00c800a0007f005f0046003300210013000c00040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000a000e001900250035004b0061008500a100bc00db00f000030111011f012001240123011a0116010b01fe00eb00d700c600ae009b008e0087007e007900780072006a00620058004c00450039002e00260024002000200020002400200024002400280024002400200020002a0037004600550074009600c100f20031016b01b201e70123024c026e0276027b0272025b02460224020902ed01cd01b4019401710142011f01f300cf00a60082005e0048003300220016000f000900040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040009000e0014001e002a003f005100660085009900b500c500da00e400eb00f300f400f600f300f000eb00e100d700c700ba00a6009d0093009100900095008e008c00840079006e006200540048003f0032002e002a002c002e0030003000300031003500300030002f002c003c004100570067008800b200dc00140156019701dc011602490273029502990296028b02700253022d020d02ef01cf01b4019101650143011901f000c900a800870065004d003a002b001c0012000e00070004000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030004000d000f001b00230033003f00510069007c008c00a100a800b600bc00c000c900cc00c900c900c900c000b800b200ab00a4009f009f009f00a600a800a600a400a000910084007800670056004a0043003800340039003c003f00410041004200460041003d003c003d004a0054006a0080009c00c800fe0038017501b201ee01300264028b02a402a3029a0286026902480222020702e301c101a1018001550135010d01ea00c500a500840063004f003c002b001f00170012000a00090009000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040005000e0012001b0025002f003d004f005f006f007800820089009500990098009e00a300a900a700a000a500a200a400a000a600a900b200bd00be00c200c200b800ab009c0089007600620054004d0045004300440048004f005000540059005700550051004d004d005600650072009100b700da00140146018a01c50107023d02640285029c0297028c026e0251022802ff01da01bc019901800161013b011701fc00d900ba009d0084006700560046003700290020001c000e000c0009000900020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010004000a000e0012001c0025002e003a00420050005900650068006e00710078007e007c00820087008c0090008d0096009f00a800b700c400c900d800d800d400d000bb00af009700830070005d00540050004b00510059006000630068006c00690067005f005d005e006300710086009c00c100ea001b0152019101c701000235025902730280027702610243022102fe01d201ad018d016c01580133011f01fe00e200c700ae009b0084006c0060005400430033002b002500180013000e0009000900020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040004000a000e0012001b0020002700300036003c00440048004f00540056005d00600065006e0076007d00860091009b00ac00c000cd00dd00e400ed00e800e000ca00ba00a4008800770065005900570058005d0065006c0073007d0080008000780073006d006b0071007d008c00ac00c800f200250157018a01bf01ef011a0238024a024e0242022d020e02e501bb019401720151013e0124010f01f100da00c800b600a5009200890078006c006300530047003b00300024001d0015000e00090009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100020004000400040004000400040004000400010000000000000000000000000000000000000000000000000000000400040009000e00110012001b002100240027002d00320037003b004300410045005100580060006d0079008900a000b200c700d500e900f400f600f700e700d600c100a9008d0077006b0060005e005d00680071007d0083008b008d008d0084007f0075007500770083009200a900ca00ef001a014c017d01a501d201f301090210020d020302e701c801a1017c015801360117010601f400e000cb00bd00b300a8009f00980096008d0084007b0072005f0053004400330028001d0012000a00090009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030004000400040004000400040004000400040004000400040004000000000000000000000000000000000000000000000000000400040006000e000e000f001200180018001a001e00230028002f00330037003a00460050005f00710086009c00b400ca00e000f100f800fd00f700e800d700c100a7009100770068005f005e0062006b00780084008b00960099009800900087007b007900790083009400a400ca00ed000a01340160018001a501c001d001d301c701b6019d0180015c0130011201f700e100cc00c400b400ac009f009c00a300a000a700a4009e009d0094008c007b006f0058004900360025001c00120009000900040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100040004000400060009000b000c000f000f000e000e000b00060006000400040000000000000000000000000000000000000000000000000004000400040008000c000e000e0012001200130017001d001d00200025002c00390044005200670080009700b100cb00e200ee00fd00ff00f600e800d800c000a6008c007a0068005d005d0062006d007900870091009a009e00970091008a007e007c0075007e008a009f00b500d800f60017013e016101750187018c018b017c016c01500139011901f600d900bf00af00a50095008f008e008d0092009e00aa00b200bb00c200c200bd00b1009d00850070005b0045003300220018000f0009000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030004000400090009000f00120012001700170017001200120012000e000e0009000900040000000000000000000000000000000000000000000000000000000400040004000400040005000900090009001100120016001d0021002c0038004d0063007b009300af00c600db00ec00f800f400ed00da00ca00b00099008300700062005b005d0062006900790085008d0096009a009600900085007e007100730075007e009000a700c100e000fc0011012f01400149014e014e013d012a011101f000d500b8009f00910081007c00720075007a0080008f00a900bc00c700da00e400e700e800dc00c600ad008d0070005400410030001f001300090005000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000400040008000d001200150019001c0020002300230023001e001c00150012000e000a00090005000000000000000000000000000000000000000000000000000000030004000400040004000400090009000c000c00110014001b002700330046005a0075008b00a300be00d500e100e600e500df00cc00c000a80090007c0069005f00560053005b0066006e007e0085008d0093008f0089007d0073006c006c006700770083009a00af00c600db00f300040117011b0115010e010101eb00dc00c200a4008e007900640061005d005b0067006a0078009300af00c800e70000010c0114010e01fe00e800cc00ab008d006a004d003700250017000e00050003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200040004000900100014001700200025002a0033003300330030002e002a0023001b0017000e000a0009000500000000000000000000000000000000000000000000000000000000000000000000000000000000000700090009000f00160020002e003d005000680080009c00b400bf00d200d700d500cd00bc00b0009b0085006c00600058004f004f0050005e006a00720079007e0087007f007d00740069005d005d0066006900720085009b00a800c600d600de00ea00f300f200e300d300c500af0095007f0066005b004b00480044004a00560067007d009c00b600db0000011a013a013f01360128011201ee00c600a1007d005d0041002d001d000e0006000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040004000a000f0015001a0024002f0036003d00440047004700470042003b00330027002000170010000a000900050000000000000000000000000000000000000000000000000000000000000000000000000000000000080009000e0014001e0029003a0049005e0077008b009d00ae00bc00bf00bf00bb00ac009e008e0079006a0059004e0046004b004b004f005a00660069006d0070006f0067006000590054005200560059006e0075008b00a100af00bc00cb00d700d600d000c200b300a00093007800650057004b0039003500320041004c005e007f00a200cb00f2001c013f01580161015e01520132010e01e400b4008d006b004a0030001f00110006000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040005000d0013001b00270033003e004800560060006000640060005a005100440038002c0020001800120009000900000000000000000000000000000000000000000000000000000000000000000000000000000000000400040009000e001400200030003d005300630078008c009d00a500ab00ae00a6009b008f0087007300620058004e0047004200420047004f0054005c005c005c005e00570052004b004a004800470055005e00720081009200ad00b200c100cd00c800bd00b500aa0096007f006f005700450038002e00280031003600450059007c00a300d7000401300159017701840185016e0153012801f500c7009b00710051003b00220016000600030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040004000d0014001b002700360046004f0060006f007b00820084008000770069005800490039002c00200016000d000900090000000000000000000000000000000000000000000000000000000000000000000000000000000400040009000d00120018002400360046005400660079008500920098009a009800920087007e007000620056004b00430040003e003f003f00440048004c00480047004700420041003a003c0046005400650074008c00a100ae00c000cf00d200d300d200c000ae00930081006a0055004700310027002b0029002f00430061008500b300e500130147016f0190019e019f01890168013b010701d700a5007e0054003b00280016000a0003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040009000c0013001a0026003100410054006c00810090009e00a400a600a2009700870072005f004c00380029001c00120009000900030000000000000000000000000000000000000000000000000000000000000000000000000000000400040009000e0016001d002a003a0047005600670072007e0086008d008b008f008b007f00790068005c0054004800460040003300360039003a003b00360035003300380038003b004100430056006d0081009600b500c700df00e900f300f000e800d900c500b2008b007600590045002d002700260027002a0043005f008600b900e800240152018201a001b301b0019a01790147011301de00aa007e0059003c002a0016000b0003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000400060009000f001a0020002f003f0051006d0081009900ac00c100c700ca00c300b800a6008d0072005a0047003300230017000f000900040000000000000000000000000000000000000000000000000000000000000000000000000000000400040008000c000e00170022002a003d00460056005f0072007a007f008a008900880083007b00740064005c004b0046003800350034002e002a002b002b0026002d003300340037003c004e00610077009800b500ce00eb000c011c01250125011c010901f000cd00b40097006d0052003b0030002a0028003800470066008e00bb00f3002b0160018a01aa01bc01b901a4017e0151011a01df00ae007e005a003b00270016000b00030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300040004000b000e0015001e002a003b004c0062007c009500b400d000de00eb00ed00e500d400c200a50086006c004f003b0029001800100009000400000000000000000000000000000000000000000000000000000000000000000000000000000000000400040009000c0015001a0025002e003c004a0059006400730082008b00930094008e0087008300780066005a004a003e0033002d002a002800200020002200230026002d00390043005b0075009000b200da00000123013f01560167016a016101440125010201d700ae008600650044003c0033002e003e004e0067009000c100f6002b0161019401b001c201bc01a301800151011601df00ae007c0058003b00250018000b00030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000400040009000e0012001c00250031004300570070009000ac00c900e600fc0009010e010601f200d700bb009d0079005b0043002d00210013000e0004000000000000000000000000000000000000000000000000000000000000000000000000000000000001000400040009000e0013001f0026002f003f004f005f00700081008d0094009f009f009b0095008700780063005300470038002f00250020001e001c001c001d0025002b00380056006b008600a600d600020132015c018801a401aa01b401a7018c01680137010401d700a5007b0056004800390034003c004f0067009000c200f6002e0160018801aa01bb01b3019f017c0147011101da00a50079005800380023001b000a000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040007000a000e0019001e002a003200440054006c0080009e00bf00df00fb001201210120011a010701e800c900a5008400650048003200230015000e0004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040004000e001000170020002a0039004a005b0069007d008f00a000a700a900ab009f009300870071005d004b003a003000230019001b001b0017001d002700320044005d007d00a300cf00000135016a019b01cb01ea01fb010002f201d701a20171013601f800c10093006d005100450039003a004d0067009000bc00ed002501570183019e01ac01a5018e016a0139010701d200a200750053003700240017000900030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040006000e001200160021002a0033004200510063007b009500b500ce00ef0005011f012b012f0123011201f800d200ac008a0069004d003600260018000e00040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040009000e001200180024003500410056006c0081009700a600b700bf00ba00b700a80091007e006e005300430030002500250019001f001c00210029003f0050006f009200be00f7002d0163019c01d9010d02360247024b023b021402e401a90165011f01e400ab007d005c0042003e003d004f0067008a00b100e70019014d0172018d0198018d01790157012901f500c300940067004e00320025001100090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050007000e00110015001e002d00380044005300650078008a009f00bd00db00f500090121012f012e0128011201f500d200ac008b0066004b003500210018000e000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100090009000e00150023003000400054006c0082009c00b000c100ce00ce00c800b700a6009000770063004b0038002c0025001e001b001c00280031004c0064008500aa00db00100150019201cf010c0243026a028302810270024e021902d7018c014001fa00ba008d0066004b003e004300460062007f00ab00d9000b0133015a0170017a01740161013c011201e100b4008800670045002e001c00110009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050009000c000f001b0022002a003b0048005800690077008b009a00ad00c900dd00f7000e0119012601210118010901ea00cb00a7008400680049003500210018000e000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040009000e00140020002b003f0050006b008200a400b900cc00d700d800d400c800b7009f0086006e0057003f002e0025001f0020001f002d003800540070009900c200f4002c017001b201f601330263029202a902af02990271023a02f801a3015a010d01c30098006d004e003f004300480054007800a000c700f2001d013b0156015a0152013d012101f400cb00a1007a0059003c002c001800110004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300090009001100170023002d003a0047005f006b00790090009e00b100bf00d100e000f00001010e0112010e010901f500da00bd0097007a005d0043003200210015000e000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040004000d0015001f002d003c0052006e008800a400ba00cd00df00e500e400d800c700af00940076005a00430037002700210024002600380044005d007f00a600d600080146018001c701030246027b029e02ba02b802a902790246020102ae015f011601cf0099006e0052003f0039004500510068008b00b700d700fe0018012a0130012a011401fc00d800b4008c006a004f003500210018000a000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100040009000e0014001e002a00380049005a00730084009500a200b200c300c900d600e300ea00f300fa00fd00f300eb00d600c200a90088006d0054003c002b001d0012000e00040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000400090012001900270037004d0067007f009d00b800d500e600ec00ef00e600d300bb00a300820068005500430038002f002e003000400054006a009200bc00ee00180153018d01ca010d02450272029502b002ae02950273023a02f201a7015a011001cb0095006e0050003d003800370048005e0079009b00b700d900f300040107010101f100d800b90097007a005c003c002e001f001400090004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040008000c000f0016001b002700360047005c006f0087009c00ad00c000ca00d500d700d700e100e100e000e200de00d800cb00bb00a1008e0071005a0046003500240018001000090004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200040007000f001700240036004a0062007e009a00b800d500e400f500f700f000e000c900ab008f0076005d004c003c0037003e003a004800600077009e00c600f300270159018d01c501f7012f02550276028802860271024c021902d50191014801fe00be008e0068005000360037003100390050006a0081009f00b700ca00d400d900d300c800af0099008100600047003800270016000c00090004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200040004000400060009000e0012001c0025003200470057006c0082009c00b800c700d500de00e500e000dc00da00d500ce00ca00c000b800aa009a00880077005d004c0039002a001d0013000e00040004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040007000e0012001f00330046005e007b009800b800d500eb00f8000101f800f000d300bb00a0008000670058004800410043004c005b0070008800b000d500ff00280153018701b101dd01050225023f024c02460236021502e401aa0167012301e900ad007f005c00440032002a002a0031003e0054006b007f009300a200a900ac00ac00a2008d00780062004e003b002a001c0012000a000900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040004000400040004000e000e001700190025002e003d005200660082009700b200ca00dc00e500ed00ef00e500e100d300c900bb00ad00a00096008d0079006c005d004a0039002a002100170012000900040004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040007000a0015001f002e004100590077009700b400d200ec00fc0002010101f300e100c300a7008b007b006200540052005400590068007b009800ba00e000020129014a0174019301b701d801e701f5010302fa01ed01cd01a4016f013901fd00c8009c00700052003a002d0025002500250031003d004e0069007800820087008c008b0079006b0060004e003d002a00200014000d000900080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040004000400070009000c00100014001c0023002d0039004b005d0078009200b000c800da00f600fb00fb00f400ea00dd00c900b600a70095008b0079006e0061005400450035002d002300180012000c00060004000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700090015001c002e003c00540071009200b500d300ed0005010d010d010101f200d300b5009d0082007000670063006300710084009300af00ce00f4000e012d014801650178018f019f01ae01ab01b301aa01990183015c0132010401cf00ab007e005d0044003000200020001c001e002800360042004d0058005f006600660063005e005400470038002c002000170010000b0009000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000400050009000a000e0010001800190021002a003800450052006e0086009f00bb00d800eb00f90007010101fa00e800d400bf00a8009300800070006400580048004000350029001f00160012000c0008000400040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005000a001100190028003800500073009200b200cd00ed00ff000f010b010601f700df00c400a60093008000760070007c008c009a00b300c800e60004011e0126013f014b015701640162016b016e01640159014b0134011901f300ce00ab00830069004a00380024001d00160019001b002000290031003d0048004b00530053004e0043003f0035002c001e0016000e000b0008000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000400070009000c00110015001f001f0028003100390044005400620077009100aa00cc00df00f400000105010501f900e500c900b20098007f006d005a00490040003300300024001800140012000b00070004000400010000000000000000000000000000000000000000000300030003000300010000000000000000000000000000000000000000000000000000000c000e00170028003a0054006c008a00ab00d000f00003010f0118010f01ff00e500cc00b300a30092008b008f009900b200c400d200ec000a01210135013d0147014301420141013801320127011d010c01fc00ec00d500ba00a1007f0066004e00380027001d0015001200130014001a0020002a00320035003d003e003c003c00360030002b002200190012000e000600040001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300040009000b00120018001d002300310033003a003e00490055006000770087009700b500ce00e500f60001010001fa00ec00d700c1009e008a007000570048004100320026001c001b0012001000090005000400040003000000000000000000000000000000010004000400040004000400040004000400040004000400010000000000000000000000000000000000000009000e00170021003a004c0069008e00b200d200f1000a011901210117010c01f600d600c300b100ab00a600ae00c100d500f1000b0121012c01400145014e0148013e013201280115010201f700e200d000c700b1009c00890078005c004b00390029001c001500110011000f0011001800210024002b00310033003600380032002d00280024001a00120011000c0004000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010004000a000e00120017001e002a0032003d0044004d0052005f00650070007f009100a400bf00d100dd00ed00f500f500e700da00c500af0093007a0061004b003e00300026001c00130013000a0009000500040004000000000000000000000000000000000003000400040004000400080008000800080008000400040004000400040000000000000000000000000000000300090009001b00250035004b0070008d00b200d000f2000a0119011d011b010b01f500e500d200c000bb00c600d800e700030123013e01520168016d01720172016201460133011901f600e300ce00b800a80087007b007100680051004300360026001d00130012000e000e000f00110016001e0027002b0032003300330031002e002b0024001d00190013000a00090006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060009000e0012001900270030003a00430054005e0063006a0078007d0086008e009a00a700bc00cc00da00e100e300e200d500c400b10098007d0065004d003a0030002200180010000c000c00040004000400040000000000000000000000000000000100040004000400060009000b000b000e000e000e000b000b0009000600040004000400000000000000000000000000030008000e00160023003c0051006e008b00b000d600f5000e01220122011e0116010101ec00d700d400d400e100fa0020013c01600184019f01b301bf01b4019e018a0166013e011801f300d900b3009800870073005a004c0046003e00300021001b0012000e000e000e000c000e0017001d00220028003000370038003800370033002e0029001e001a0012000e000700040004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000900090012001700240033003c004c005b006c0078007d008b009200950095009e00a300ab00b700c200ce00d300d200cb00c100af00980080006c0059004300320022001a0012000900090006000400040003000000000000000000000000000000000004000400060009000b000e0010001200120012001200120012000e000d00090004000400040000000000000000000000030005001100140029003800500074009300b700de00fb001a012a012d012a0118010801ed00e800e100f0000501220155017c01a201c701e90104020502fc01e301bb01940161012901fb00ce00a7007f006a005d0049003800330022001c0016000e000a000c0009000c000e001200180023002a00330039004000410041003c0038003300290021001c0017000c000900040004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200040007000a001100180025002e003d0052006000750089009500a200a800ad00af00aa00af00ac00ab00b400b700b900be00bc00b000a60092007d006a0059004600350026001b0013000c0007000700020000000000000000000000000000000000000000000400040006000b000d0010001500190019001e001e001e001c001900150010000e00090008000400040000000000000000000300060012001a0025003a00520075009a00bc00e00002011d012e0132012c01210114010101f200f7000701300153018401bc01f5011a023f025902600252023402ff01c10195014e010d01dc00aa00810066004b003e0027001f00170010000b0009000b00090009000b001200190021002a003100400049004f00510051004d0048003f0033002d001f0017000e000900060004000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700090011001700200028003300430055006c0084009300a700ba00bf00c500ca00c500c000ba00b300b000a800ab00a800a5009a00970088007500690054004600370029001b0012000c00090004000000000000000000000000000000000000000000000004000400090009000e00120017001c00210025002a002a002a00250021001e00170012000e000a00080004000400000000000000030009000e001d002d003f005e007b00a100c600f1000d012b0135013c013501260113010801100118012a0148018601bc01fb013e027602a602c102c302b60281024f020f02bb0176013601e700ad0082005c003c00340021000e000e000900090004000900040009000e0017001e002a00310042004b0055005d00620062005b00540048003c00300024001c0012000e0009000400040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200020002000200020001000000000000000000020002000400070009000c00100012001a001d0027003600430059006d0083009b00b400cc00e000e300e900e400df00d500c800b700af00a5009c0096008e0082007e00720062005100450035002b001f0016000f00090009000200000000000000000000000000000000000000000002000400070009000e0014001a00210028002f003400390039003900360031002a0023001b0014000e0009000500040004000000000002000c0010001a003100480060008500ab00d600fd001d01370143014b013f01330128011e011e01250147016901ac01f5013b028802c102f8021c0323031c03e902a5025402f901a60150010101c2008d0062004100280019000b000b0006000400020004000500090010001a0023002f003d004e005a0066006d00730073006e0064005800480039002d00210017000e000900040004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000400040004000400040004000400040004000500050004000500090009000a00130015001c00240031003d00490057006d008900a400c300d500e900fe000b0108010401f900ea00d500c200af009b008e008200780072006200570046003f0032002900200018000e000a0008000400000000000000000000000000000000000000000000000400040009000e001200190022003100390043004b004f00500050004a00420036002a0023001b0013000e000900040004000000000003000e001200220032004e0069008f00ba00e3000b012f0145015301560152014a013a0132012a013b015c018f01d60128028002c602120350036e037c0369033c03f302a0023802d20173012001d700950069003f00240015000d000400000000000400040009000d0014001c002800380047005600660077007e00840084007c007000640053004200320026001a0012000b000400040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000400040004000a000c000c000c000c000c000c000c00090009000b000c000e0011001c001c002400280032003f004e00610071008c00a500c200df00fb000d011f012b012c0120011001f900e000c300af0097008300710065005b004d00450036002e0026001f0015000f000d00090006000000000000000000000000000000000000000000000000000400050009000f00160025002e003c00480051005b005f00640061005c00530047003b002a002000170011000900060004000200000007000e001a0025003a00520077009d00c700f500200147015d016b016c016b01560152014401440163017c01b10101024d02ae020b0357039a03c403d303b9038d033c03d7027202000298013501e900ab006d004500290015000e000400000000000400040009000d00140020002c003d004c005f0072007f008a009000900088007c006d005a00470036002a001d0012000b0008000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000400040007000e000e000f000f0012001200100011001200120012001500180014001c001e002600290033003f004800580066007b009400af00c500e000fe001a0135013f0146014401360120010601e500c700a70090007c00650055004b003b00310026001f001a00150011000e00080004000300000000000000000000000000000000000000000000000400040009000c0018001f002b003a0047005a006600730079007b007800710065005600470039002d001d0012000e00090004000200000009000c001c0028003d005d007b00ac00d8000701350155016e017d0189018101720167015b0162017b01a801d30132028702e6023e039c03dc03fd030704ed03c3036f030c039d022a02b4014c01fa00b200770049002c0017000e000400000000000400040009000e00170020002e003d0050006300770085009000970096008e008200720060004c003b002a001e0012000e00080004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300040004000c000e00120012001a001b001c001d00200020001c001f001c002000210024002d00290036003b00460053006400740085009b00b300cc00ec0004011f0136014e0158015c015901480131011101ed00cc00a60085007000550046003900310027001d00180013000e000d0006000400040000000000000000000000000000000000000000000000000004000400090012001b0024003400450059006b007a008a00930093008c00850078006600520042003200260015000e000900040002000000090010001b002d00410060008700b600e400190146016e018501a2019a0194018d01830173018401a601c7010a026102bf021d037903c60310042f0437042104e70395032903b5023c02c6015401ff00b1007b004d002d0019000e000400000000000400040009000e00170020002e003e0052006300770089009100980096008e008200720060004d003b002a001e0012000e0008000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040006000d000f0014001c001e0024002a002d002f0032002d002e002b002d002f00300037003c0048004e005c006300730087009800aa00bf00d500f0000f0127013f01520164016c016d016101510136011401ec00c800a200820067004d003d002d00200019000f000c00090007000400040003000100000000000000000000000000000000000000000000000200040009000e0015001e002d003d005100660079008e009d00a600a700a2009700870072005e004c00370028001f00100009000400020005000e0010001b002f004a006a009200be00ef00250156017a019701a801ab019e019e0196019501a201cb01f90147029702fc025903ae03fe0336045f045c043804f20398032803b7024302c4015f01fe00b40080004e002f001a000e000400000000000400040009000e00140020002c003d004d006200720082008c00910091008a007d006f005b00480039002a001e0012000c000800040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040009000e0011001600200027002e00360039004100450045004500410043004000450044004e00500066006b00790087009200b100bf00d800ea00000114012b0144015701670173017a01740164014c0130011401eb00c2009d007b005b004600330029001d0011000a00090005000400040001000000000000000000000000000000000000000000000000000000020004000b000e0019002100320047005c0074008c009d00ae00ba00bb00b600a90096008000660052003f002b001f0017000c000400020005000e0012001f0032004e006d009a00c300fb002f015f018201ac01b801be01bb01b101aa01ad01cf01f2012e028e02dc0240039f03e60324045c0469045d043504f00390031d03a9023002b8014e01f800b0007a004a00310019000e000400000000000400040009000d0014001c0027003800490059006a00760082008800880081007500640053004300350026001a0012000b00080004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040005000c000f00180020002c00330042004b0055005d00600061005e00600059005700590062006600700080008f009d00ae00c300d400ea00fc000f01250133014d015d016f0175017901790170016101450128010601e300b4009000730055003a002c00200016000f000700040004000400020000000000000000000000000000000000000000000000000000000000020007000c000f001a00260036004e0064007e009800ac00be00c700ca00c300b500a200870070005a00430030001f0017000c000400020005000e0013001f0033004e006d009600cd0000012f0160018501ac01ba01bf01c401bb01bf01cb01f20123026d02bb021d037b03d903220454047704790462042904d3037503fa0287020d02a4013f01e700a1006f004800300019000b000400000000000000040008000a00120019002300310040004e005e0069007200770075007000680058004c003b002d002100190010000b00040004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040009000e00150020002c00380048005a00660072007f007f0080007f007b007a007a0074007c0083009200a000b200cf00d500e800010117012a013f0149015701690171017c017901770176016201590132011301ef00cf00a800880068004e00370027001b0014000900050004000400000000000000000000000000000000000000000000000000000000000000000002000900090013001d002b003c0053006b008500a000b800ca00d200d700ce00be00a900910074005a00440031002200170010000400020009000c001700220033004a006b009b00c600f7002b015e018201a701bc01ba01c201c001cc01ea010f025002a20201035903ba031804520485049e04880455041b04c1034d03db025e02ee0182011901cb00980060003f0024001500090004000000000000000400050009000f0016001e002a00360042004e0059006000630062005f0058004c004000340028001c0015000e00090004000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000040007000e0011001d002800390048006000730082009400a200a600a700a1009f009700900090009f00a200b000c800d500f100fe00130127013d0150015f01710172018401820183017e0176016701590141012301ff00de00ba00960073005a0041002d001f0016000c0006000100010000000000000000000000000000000000000000000000000000000000000000000000020009000c0013001f002f004100590074008c00a900c100d200da00de00d300c400ad00910076005c0044003000200013000e000400020006000c0013001f0030004b006a009100bf00f00020014a0178019201a801b001bd01c301cf01f20131026f02d0022e039a03f7034d048704a1049e0481044704f60390031a03ab023a02c5015b01fb00b8007e005400350020001400090004000000000000000400040009000c001200190022002a0036003f0048004d00510051004e0045003b00340028001f00180010000900060004000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000040009000e0016002200310045005a0074008a00a200b500c400cc00cb00c900c300b900b400b600b900c000ce00e200fb0012012a013901540162016e017f0186018e018601880183017601620155013a011d010501eb00cb009f00810066004f003900240019001200090004000000000000000000000000000000000000000000000000000000000000000000000000000000040009000e0017002100310044005c0074009500ad00c500d800df00e000d700c300ac00910075005c0044002d00220014000e00040002000400090013001c003000450063008700b200e10010013601600177018f019901a901b301ce01f5013c028602eb025003c5031d0472049804b1049e0476042404ce035a03e9026f02fb018d013901e5009c006900450029001b0011000900020000000000000002000400040009000e0014001b0022002a00310037003c003f003f003c0036003000290024001e00160011000e0009000900060000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000c000f001a0027003b0051006a008500a600c500d900e900f100f100f100e300db00cf00d200d500de00ed00fe0014012a013f0159016b017b018d01970197019701950188017a01640153013d0123010d01e800c600ae008f006c0054003f002f00200018000d00090004000000000000000000000000000000000000000000000000000000000000000000000000000000040009000e0018002200330044005f0079009500ad00c500d800df00e100d400c200ad008e0074005b0043002c001f0013000c00040002000400090010001c002a003d005b007c00a400c900f00019013d0156016501760188019401b301e5012e028c02ec026303d90338048004a204b40494045a040c04a5032e03b8024002d00165011001c4008c005c003600220015000c0009000000000000000000000004000400070009000e00130018001e00250029002b00300030002b002a00280021001d001700160011000c000c000900040004000400040000000000000000000000000000000000000000000000000000000000000000000000000004000c0011001d00300044005a0077009900bd00db00f3000901110114010e010301f900e900e800e800ee00fb0011012801380158016a017a018d0199019b019c019b018f0180016a015d0148012a010c01f100d100b3009600790062004b0032002800190010000900060004000000000000000000000000000000000000000000000000000000000000000000000000000400040004000e0014002400310047005c0079009500b100c600d600da00db00cd00bc00a4008a006f0054003e002b001c001200090004000200040009000e001b0024003a004e006c008c00b100d300f70017012c013d0150015f0177019f01ce0116028002ee025b03c7032e0470048c04910472043a04de03770302037d020e02a7014401ef00a900780052002d0019000f000900030000000000000000000000000004000400070009000e00120016001a001c001f001f002000240020001f0020001f001a0018001600140012000e000e0009000700060004000000000000000000000000000000000000000000000000000000000000000000000009000e00170022003100480062008200a700c900ed000c011f0128012a01240114010c01fc00f700f300f80005011c01320147015901730180018d019701970198019501920181016801500133011701f700dd00b7009f00870070004a003f002f001f0012000b00090004000400000000000000000000000000000000000000000000000000000000000000000000000000040004000900100017002200310044005e0074009100ad00be00cf00d300d200c600b3009b00800066004e003b0027001d001200090004000000040007000e00120022002f0042005d007b009800b500cf00ef00fe0011012601330151017501a301f4014b02ca023603a90306044304690467044c040704b1034c03d2026102f80184012d01dc009c0065004200350015000a00070000000000000000000000000000000000040004000b000d001000120016001600170019001c00180020001d001d00200021002400240024001d001b00160012000e00090009000400000000000000000000000000000000000000000000000000000000000000000009000e00170024003100490065008b00af00d000f80017012c0136013701330122010f010501fb00f300fc00080114012b0144014d016a01760186018e01970195019001860178015f014c0130011201f000d100ac00910074005f0048003400280018000e0009000400040003000000000000000000000000000000000000000000000000000000000000000000000000000400040009000c0018001f00300042005c0072008a00a200b700c300cc00c600ba00a9008f007a0061004700350024001a000e00090002000000000004000c000f001900270036004e0066007b009500a800c400d600e600f5000b01260148018001c90123028d02fb025d03b9030404220430040e04da0387032403b8023e02d60171011e01d200940064003d002a001e00070002000000000000000000000000000100030004000900090009000e000e000f00120017001700160019001a00220027002a0029002e002e002c002b00240020001d00190012000e000900040000000000000000000000000000000000000000000000000000000000000009000c00170020003400490067008600af00d300f8001a012701360136012e0122010d01fc00f600f200f100f90005011a01300141014d0162016f01770186018001820180016f015e014a012c010d01f200ca00a8008b00760057003b002e0025001200090006000400040000000000000000000000000000000000000000000000000000000000000000000000000000000400040009000c0013001f002b0040005300660080009600a600b600b600b200a9009b0083006b00540042003100210015000e0009000000d9000000040005000e00140020002c003d004d006300730084009c00a700b600c900dc00f600220154019f01e8014a02a7020f035e03b303d903e603d603aa035f03fa0294023402d5016f011501d30096006200410024001b000b00000000000000000000000000030004000400040004000e000e000e000e0011001200120014001c00210025002a002f00330041004500410041003f003c0035002d0021001c0013001000090004000000000000000000000000000000000000000000000000000000000009000c00150020003300460062008200a700c900eb000c011e012901290120011201ff00f200e700de00da00e500ed0002010f01240131013f01500161016a017201740172016d015e014a0130011401f200cc00a80089006a0056003a0029001d0015000b0004000400010000000000000000000000000000000000000000000000000000000000000000000000000000000100040004000c0012001f002b0037004c0060007400870096009f00a600a3009900860077005f004c0039002a001e0014000e000400000000000000040004000a0011001700220031003d004b00590066007600850093009e00ad00bc00e8001e015b01a101fb015302b6020d03560386039703990378033e03ec0291022f02c90173011b01d400990066004500280016001000000000000000000000000400040004000700090009000c001000120012001000150016001a001f0025002f00370044004e0054005b0060006000600054004d00410034002b001c001300100009000400000000000000000000000000000000000000000000000000000009000b0012001f002b0040005b0078009900ba00d800f8000801120113010c01fc00eb00da00ce00c300c600c800d400dd00f200f7000a011901330144014e015f0170017201730171015b01420126010501de00b8009400720054003f002d001c0010000e00040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040009000e00170026003200420056006600740084008c0090008a00830076006600510040003400240018001200090004000000000000000200040004000a001200190024002e00380043004b00530065006a00740086009700bb00e60020016001b00107025902ac02ef023303550364034e032503e70293023802da0174012c01e600a1006e004500280012000f000000000000000000040004000500090009000e000e0013001300130013001a001c001c0025002a0031003d004a005f0067007400800086008600820076006800590047003a002b001c0013000e00090001000000000000000000000000000000000000000000000000000900090012001a00270038004f0069008600a200bf00d800e800f100f000ea00df00cd00be00b200ad00ab00a600b000b800ce00d100e100f9000c012101350149015e0170017a0176016e015b013d011b01f600c700a5008200600044002d001d0011000e00020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040009000e0012001d002a00390047005300620070007600780075006e00620056004500340028001f0015000c000900040000000000000000000400040007000a00120018001d0025002f003400380046004f00540060006a009000bc00e20022016601b60104025602a402df020e03220325030b03d90297024702ea018d014101e800ab0075004a002d001d000f0000000000000004000400070009000c00110014001a001a001f001f001f002000240027002b002e003e005300660078009200a100ac00b800b800b200a2009300760060004a0037002a001a000f000e000600000000000000000000000000000000000000000000000000040009000e00140025002e004300570072008a009f00b400c400ca00cb00c400b800af00a00090008c00890086008e009300a000b000ba00d000ea0002012001390151016c017e01870184017501590136010e01e300b6008c006500490033002300160009000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000400070009001100170020002a003b0047005200590060006000600057005000450039002d00220016000f00090005000400000000000000000000000400040007000a00110017001b001f0021002700290035003f004900580071008f00bb00eb0025017101c001070255029602d40200031103fb02d40298024a02f401a2014701f800b7007b00500033001f000f000000000002000400070009000e00130018001d00210026002b002b002c003100310034003900430059006a0080009e00b900d000e000eb00eb00e200d200b8009f008200610049003400250017000e000b0000000000000000000000000000000000000000000000000000000900090012001c002500370047005a006e0082009300a000a500a3009e0094008d00800075006d0069006c006e007a007c0088009500ad00ca00e40009012c014d016a01850194019b018c01720150012601f400c7009700740051003d002200150009000400030000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000400040009000e0012001c0023002a003700420047004b004c004b0048004000350029002100180011000a0009000400040000000000000000000000000004000400070009000e001300170018001f0021002300290031004400650072009500c000f6003c017701c501130259029d02c602df02e602d0029c024f02fd01a9014901fe00b70081005700370020000f00000000000400040009000e00110018001f0027002d0034003b003b003b003f00430048004c0058006d008400a100c800e30002011801290127011c010601e600c3009f007b005c0040002c001d0011000e000000000000000000000000000000000000000000000000000000070009000c0013001e002a00380045005600640070007b0082007e007c00720069006300570050004d00550053005d005f006d007b008f00ab00ca00f2001601420166018d019801a1019b018801650133010401d200a100780058003e00260019000e000400040000000000000000000000000000000000000000000000000000000000000000000000000000000000010002000700090009000e000f0016001c00200028002d00330036003600350032002d0025001f001a0011000d0009000400040002000000000000000000000000000000040004000400090009000b00120012001200140023002a003500540061007f00a000d000010144019501df012a0267029e02c302ca02bd028f0250020002a3015201fb00b700850057003a0020000f0000000400040009000c001200190021002a0032003e00450049004c005100510054005900610073008500a600c700ef0014013e01550163016301540137011601ea00ba0095006e004c0034001f0015000e0003000000000000000000000000000000000000000000000000000000090009000f00160020002a00360042004900550059005b005e005c0059004e00460043003c00350038003d003f00460056005f007a009100b000da000a0131015f0184019901a701a1018f016c0147011101df00ae008000600041002b001a000e0004000400000000000000000000000000000000000000000000000000000000000000000000000000040004000400040009000d000e001100120017001b002000220021002500260026002500250021001c00170012000e00090005000400040000000000000000000000000000000000000004000400040005000c000e000e00140017001b002500360050005b0073009800ba00e6001d016001a701f00134026f029502a602950274024002ec0196014701fc00b800820057003a0020000f0000000400040009000e0017001f002900320042004a0056005d006100660066006b006b00730086009d00bd00e700140143016f018b019e019f018f016e0140010c01da00ab007f005d0038002a0019000e00030000000000000000000000000000000000000000000000000000000300090009000f0016001c0025002e003600390040004400410041003b003a0032002a002a00250025002a00310033003f004e0064007d009e00c600f2002201500173018f01a301a0018c01710148011401e300b1008600630043002b001c000e0004000400000000000000000000000000000000000000000000000000000000000000000002000400040006000b000b000e000e001200120016001500170019001e0020001e001a001c00190019001500120010000b0009000700040004000000000000000000000000000000000000000000000002000400090009000b0012001500190023002c003100530060006e008800a600d000000139017d01c4010102350258026d026a0245021102ca0180013301ed00ac007e005300380020000f00010004000600090010001900240031003e004e005a0066006e0072007c007d007f0085008a009a00b900dc00080138016e019b01bc01cd01cb01ba01970166013301f300bc008d00640045002a001b000e000300000000000000000000000000000000000000000000000000000000000400090009000e00160019001c0025002a002a002a002a002b002e00250020001d001b001b001a001b001d00250033003d0052006e008900b500df00080135015c017c018b018f01850165013b011301df00af008500610048002f001e000e00060004000000000000000000000000000000000000000000000000000000000000000400040005000c000e000e00130017001c001c00210021002000200020001c0017001b0017001300120012000e000d00090009000400040004000000000000000000000000000000000000000000000000000000020005000c00120017001e002a002f0038003a00510063007c009100a800ce00ed001b0151018d01c901f9011d02280223020602d9019b015b011c01d4009b0070004e00330020000f000400040009000e0015001c002800390049005700660077007e0083008d00910090009600a200b100cc00f50022015e019301bf01e101f301f501e201bb0181014b010701c90097006c00460032001b000f0003000000000000000000000000000000000000000000000000000000000000000400090009000e000e00140019001c001c001e001e001c001c001b001700140011000d000c00160014001c0023002f004200590077009c00c200ed001d013e015f0170017301680151012d010501d800a8008100610043002f001c00120006000400000000000000000000000000000000000000000000000000000002000200040004000e00100014001c0020002600280028002b002d0029002500240021001e00190019000f000c000a0009000900060004000400040000000000000000000000000000000000000000000000000000000000040005000e0012001c0027002f003f004c005d0069007d008d00a000ba00ce00ea000f01370167018d01b301d301de01d301bd019a0166013001ef00ba008900610042002a001e000f000400040009000e00150021002d003e004d006100720080008a008f00a2009e00a000a500ad00bf00dd00090140017501aa01df01050210020f02f501d201920153011601d700990070004a0032001d000f00030000000000000000000000000000000000000000000000000000000000000000000400050009000a000e000e000e0012001200120012000e000e0011000f0009000900070004000c0012001b0025003500480063008100a900cb00f2001501340147014a01460134011301ef00c7009c0077005b003e002b001c001200060004000000000000000000000000000000000000000000000000000000040004000a000e001200150021002a00300035003f0047004800440044003b0035002b0021001c001b0016000d0006000400040004000400030000000000000000000000000000000000000000000000000000000000040004000a0011001d0026003400470059006e007c008800a400ac00bc00c700d400e300f9001101350150016e0180018e018901740154012d01fe00cb009f00700053003700220016000f000400040009000e001700210030003f00520065007900860091009900a900a600aa00b000b900ca00ef001b014b018601c101ed0115021e021f020002d701990157011601d400a40070004b00320023000f00030000000000000000000000000000000000000000000000000000000000000000000000040004000700090009000a000a000e000e000c000a00090006000400060002000100010006000a0012001a00240039004a006a008900ab00d100f0000901190120011e010b01f300d300b1008b006d00530039002a0017000f00060004000000000000000000000000000000000000000000000000000100040004000e0011001a0024002f0040004b0055005e006000670063005e0053004a004100330029001c001700120009000600040004000100000000000000000000000000000000000000000000000000000000000000040004000e0016002400310045005c0076008800a400b800db00e100e400e800e900ef00f500fd00120126013401400140013e0127010c01ec00cc00a2007b005c0042002f00200012000e000400040009000e0017002100300040005300650079008a009300a100a100ac00ab00b200c000d600f90026015b018e01c501f501160221021c02ff01d101920155011001d00099006e004a002e001f000f00030000000000000000000000000000000000000000000000000000000000000000000000000000000400040004000400040004000400040004000400040003000000000000000000000008000e0012001e002e003f00560071008e00aa00c800dd00ed00f400f300e700d400b50096007a005f0045003200230015000e0006000400000000000000000000000000000000000000000000000100060009001000140020002c0038004b005b006900750083008b008e008a008300770063005300400036002600180012000b00040000000000000000000000000000000000000000000000000000010000000000000000020004000c000f001e00290040005a0072009400b200d600ed00fe001a011601190117010a0109010501fc00fe00010109010301fa00e800d000bc0098007c0063004700340020001700110009000400040009000e00160022002e003f00500064007300840091009a009b00ab00a700b400c400d80000012a0161019401c801f5010f0216020f02ee01c101840145010301c9009100680043002c001a000f00030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000e0019001f002e00440059006f008a009d00b100bd00c700c300b700ab0096007e0067004c003a002b001c0013000900040004000000000000000000000000000000000000000000030008000900090012001800280037004c00600073008f00a100b500bc00c100bc00b400a0008a0073005f0047003600260018000e00090004000000000000000000000000000000000000000000000100010000000000000000030004000e001600240032004e006c009200b800df00040126013e014d015b014a01440128011b010801f300e500de00d500ce00c300af009b008a0074005c004600340024001c0012000d000100040008000d0012001a0022002e003e004e005f0070007c00880092009600a500a600b100c700e100ff002d015e019301c401ec01ff010102f701d301a2016d012d01f000b60085005f003d00270017000c000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007000e000f001b002400330044005500680078008c00950099009b00930089007a0067005200410032001f0018000e00090004000400000000000100010004000400040004000600090009000d000d00170019002a0039004c00610081009f00b400d200e900f800f800f200e400d000b80097007b005d0043002e0020001800090009000000000000000000000000000000000000000001000100010001010001000100060005000e0018002400400059008100a900d8000a0135015e0179018b019a018f0177015c0138011601fa00e300c700b600a4008d00850075005f0050003f00320024001c0012000e0006000100060009000e001000190021002b00390049005400640071007c00880085009400a200aa00bf00d90001012d015c018e01b801d801ed01ec01d701b40183014d011401d900a400770054003d002200160009000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000e0012001e002500330041004b005c0063006f00750075006f0067005e004b003f00320022001a001300090004000400040000000400040004000400040004000700090009000d001200140020002a00380048005f0080009d00c200e4000e01240134013e01330123010801e600bf00990075005600400028001c000c000900020000000000000000000000000000000001000100010001000100010400040009000e0015001c002f00450068008f00bf00f6002d0166019601b501d101d401d401b7018a0164013101ff00df00bd00a0008a007500640057003e0038002f002100170012000e00090004000400060009000f0012001a0025002d00390040004c00580064006c007b007f00830094009f00b800db00fd00240152018201ac01c301d001c501b90192015d012e01f800c000910064004b0033001d0011000900030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020007000e001200190024002e00380042004a0050005400560054004d0043003a002d0023001a0015000f000c000900090007000900090009000b000b000900100010001000110016001c001c00270036004b005b0079009c00c000ee0018013c015e0173017d017601620141011601ef00ba0090006d004f0038002200150009000400000000000000000000000000000100010001000100010001000100010b0010001200180022003500470070009f00cf000b014e019201c501f5010b0210020002f101c5018f0155011a01ed00bf009f007c0066004f004000300023001e00170010000e00060003000400040009000e00100017001e0025002d0036003c0048004f005900600069006e00790088009b00b100cf00f60021014d0170019101a801af01a8018e016b0141010d01d400a7007d0058003f002e0016000d0006000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040005001100120017001e0025002c003300360038003c003a0037003200250020001b00180011000e00090009000900090009000e000e000f00120015001c0017001c001b00220025003100380046005a0075009400b400e6001301430173019c01b601bf01b401a10174014a011401e100ae0081005a003f00260017000e00040000000000000000000100000100010001000100010001000100010001000113001700200027003b0053007400a200db001e016201ad01ec011c023b0243023d021c02f301bb017a013801ff00c900a1007f006100490032002b001a0012000e000d00040004000400050009000a00120017001c0021002a0032003800400043004600540054005d0066006a007b009000ac00cc00ef001a013e0168017c018f018e018001630141011e01ea00ba008e00680047003300200011000c00040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040005000e00120017001c0020002400270028002800240024001e001b001c0016000f000f000c000e001200110011001400130017001a001a001f002300260026002b0030003200410049005e0070008700ad00d500070137017101a201c901e601f301ea01d401ac0172013701f900c60092006a0046002e0018001100050000000000000003000700000100010001000100010001000100010001000100012500280031003f005d007800aa00de0027017701ba0106023902640273026a0249021c02e601ab0164011d01e400ad00870069004a0036002300200012000900010002000400070009000c00110015001f0023002c00310036003c003d00410048004c004a0056005b00660070008c00a600c400e4000e012f014c0167016c01680155013d011a01ee00c900a100760056003f0029001b000f00080001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040008000d0011001200160017001b001b001b0017001600160011000f0011000f0012001400130018001c001f001e00220027002b002f00300035003a0039004200470055006000740086009f00c100f2001d0156018c01c301ee0110021b021602f701cc01920155011401d4009d0072004c0032001d00120006000000030009000c00110018000001000100010001000100010001000100010001000135003d0041005c007b00a900e80023017801c4010c024c0279028d028902730247020702bf017c014401ff00c000920070004d003600230017001100080000000400050009000e00110018001d0026002f0035003e003e004300470048004b0048004a004d0050005e006d0081009f00bd00e00001012001390147014901430133011a01f500ce00aa008400650046003000210016000900070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040004000400090009000a000d000e000e000e000e000f000e000e000f001100140013001b001c00230027002f00330036003b0040004500490049004e00520058005f0065007b0086009f00b800d900040135016a01a101d8010402260237022e021302e701af0167012101e400a8007a0054003500200012000a00040004001100160021002c0036000001000100010001000100010001000100014a004a004500500062007900a400e00025016701b70108024a02770297029c028b0262022c02e401a0015b011501df00a60082005a003a0024001e000e000e000b00040008000c00110016001f00280030003b0047004a0051005200530050004e004b0049004e0057005b006e007d009900b700d600f200110124012f012f0125010f01f300d500b40092006c0050003600230017000f00060003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040004000400070007000900090009000c000c000e000e001200160017001f002200280034003b00410044004b00520057005d005f00630066006c007100750080008f009c00b800ca00f20013013f017601ac01de010a022e02380231021602e901af016a012601e700ad007c0056003500220017000b00060014001f002a00340040004b005d000001000100010001000100010001690060005c005900580065007d009d00d00013015401a501f10132026a0292029c029902740248020702bf017d013d01fd00c800990071004f003500250017000e0012000c0009000e0014001d00270033003d00470053005c0060005f005f005a00540053004c004e0055005f006e007f009700b600ce00e70001010c0111010b01fd00e900cb00af0091007000550042002d001c001500090004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000400040004000400040004000600090009000e001200160017001d00290032003c0045004b005300600069006c0074007a007d00820086008600880094009800a300b300c400e000fd001e0146017501a701d50100021c02280222020302df01a70162012201e000aa00790055003c00250017001400120026002e003a004f006400790086009d0000010001000100010001af009700860075006900670065007b009600c400ff003d018701d0011502530279028e0290027c0257022102e701a40164012301ed00b4008e006300480031001d001900120010000d001100180024002f003b004c00580064006b00740072006f00690065005a0057005600540061006d008a009b00b600cb00e200f200fc00fa00f300e300cd00b30099007500600043003000230017000a00090004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000200020002000700070009000b00120018001f002a00370043004f005d006700740078008100920095009c009e00a100a500a300a500aa00aa00bf00c600d200e700fe001f0143016d019701b901e101f9010602ff01ea01c1018e014e010d01d3009f007200530039002600200019002a0031004100570071008700a700c500dc00f10000010c010601fb00e700ca00b3009a007d0077006f0077008b00b600db001c015c01a401ec012802560273027c0277025b023202fe01c50186014b010f01da00aa0081005a003f002b0020001e0019001d001f0023002f003c004c005d00660072007c0080008300800075006d005d005d005b005f00670078008b00a100b800c700dc00e600ec00e600db00c600ab0098007b0061004b00380028001b000e000900090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040009000e0015001d0029003b004500560067007300830093009a00a600b200b200b600c000be00c300bc00bb00c300c000c900d500e100ee00020118013601540175019c01b901d001d701ce01bb0195016a012e01f700c50093006e004d003c002b002a002500330042005e0077009a00ba00e400010125013f0157015701560146012c010601e000b8009d0082007700750080009f00c300fa002f017801b801f5012f025002610263025b0240021702e501b00174013301fc00c7009c00770053003d0038002a002300250028002f003b004c005c006900750085008d008e008d0088007e0075006e006b00640063006d007c008b00a100b600c700d300df00dc00d400c100af0096007e0066004b00380029001d0014000900090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300040009000b0013001a0024003300450056006b007d008f00a100ae00bd00c600d200d600df00db00dc00d800d600d000cc00d000d000dc00dd00e900f60007011c0136014f016c017f01940197019601840162013a010801d800a7007f00610045003a002c002d003b00470063007b00a200ca00f400270153017e019d01b001b301ae019601760145011201e200bf009b007e0075007d008d00aa00d100060147018501c401f60124023d025502500243022202fe01ca018f0159012001e700b80089006e005200430033002a002d0031003a00450052006600790088008a0096009a00990092008a007d00700067006900670073007f009700a800b600c700d200d200d200c500b4009b0083006b005a0040003100220015000e000900060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300040009000e0013001f002b003c00510066007a008e00a500bd00cb00db00e500f400f400f900fd00f800f300eb00e100d800d200d600d500db00e100e900f40006011201230137014e015c015a0156014a012d010a01de00b90090007200540040002f00320033004b0057007d00a000d5000a013e017101a701dc010002160219020f02ef01c501870149010801cd00b0008d007300740075009300b500dd0012014a018701b901f201180230023f023b0228020e02e401b10177013b010901d100a9008400610055004b0040003e0042004b005400640071007e008d009d00a3009f009b009d008c007f0077006c006c007100740085009700a900bb00c200cd00cc00c300b200a0008d0071005d004900360027001b0013000b00050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100040004000900100017002300330043005a006f008a00a500bd00d100e700f5000201100111011601110108010201f600e500dd00d200d100cf00cf00d100d300d700e300eb00f9000301100116011a0117010701f300d600b600960071005d0047003b00320036003c005c0073009c00d000080144018601ca010a0238025f027102740266023c020702c20177013701f000ba008d006e00660068007c009200b600e400180152018901ba01e50108022302340225020d02eb01c7018f015b011b01f000bf00970079006b005d005500540058005e00640070007f008a0097009d00a400a4009d0098008e00800078006d006c007b007f008a009c00ab00b900c100c300be00b700a90093007e006a0051003c002d00220019000b00070001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010004000600090010001700230035004800650079009600b200ce00e700fb000d0119012401280127011f0117010a01f900eb00d900cd00c300bd00c100bb00bd00bb00c100c600ca00d300db00e300e100dc00cf00c100ac008f00720060004c003d0032003600370050006a008c00c200fc003d018501ce011d0264029902c002d402d202b80284024202fa01a3014f010301c5009200740060005a006a0074009300ba00e5001a014d018001b001e00101020f0210020c02f301cc01a2016b0132010401d100b0009300860072007300730072007c007d0087008d0095009c00a0009e00a4009d009200890083007b00750076007600840092009e00af00b600bd00c300bc00ae009b00880072005d004900360027001b000e000a00060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010004000600090010001700260039004c00660081009e00bb00d700f3000b011e012a013101340132012a011c010901f900e700d000c000af00aa00a300a3009e009900a0009d009e00a600a900a800a900a4009b00910082006d005a004900350030002f0030003d0057007c00a700dd001e016d01c10119026b02b002eb0214032a031a03f902be0276021c02bd0165011201cd0098006e0058004e0055005c0077009600c300ed001e0154018001b001ce01ea01fc01f801e301c4019f01700142011001e300c600ad00a1009b009300930094009c009b00a100a200a200a400a4009f009b0096008d0085007f007700760075007e008a009b00a300af00b700bb00bb00af00a3008b00750060004d003c002e001b0014000e000600030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010004000400090010001700260038004a0065007e00a100bd00da00f600100120012f0135013c0133012d0119010501f000d800c000af00a00094008800850086007c007e007b007c007f007d0084007c007a00740066005f004e00420035002c002b002700310045005e008700ba00fc0047019a01f2014902a102ed022c0350035b034f032503e2028f023302cb0174011701cd008d006a004c004900420045005a0071009200bc00e60018014d017801a201c001d101d201ce01b6019201690142011501f600dc00ca00bd00bd00b900bc00bd00c300c000bf00ba00b300af00a5009e0094008c008a007c007700780076007d0083009400a000ac00b500ba00b600b100a200940084006c0058004200310027001a0011000900040003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040009001000180028003400490060007d009900b600d400f1000c0120013001320135012e011e010d01f800df00c400af009c0084007800710066006600620060005f005900590057005d005d00590052004b00420036002f00270025001d0028002e00480062009100ca000e015d01b70118027002d102170352037a037e036a033903f40298023802d3016e011901c9008a00680047003800310034004400580074009900c400ed001a013f016c018801a301af01a60199017c015b0136011a01ff00ea00e000de00e400e400ed00ed00f000e800e100d200c900bb00a900a2008a0086007f007700710077007e00820090009a00a700b100bc00c400b900b100a1008b007b00660050003d002a00220016000a000800040003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040009000e001500230030004100570071008e00ab00cc00e400fd0012011f012501250125011101fe00e700cf00b2009c008900750067005b0051004a00480044004400410041003f003d003c003800360033002700230020001d001a001c0025002e00480066009100d40017016901c90122028702d9022d035f037e03800365032f03e6028c022c02c50164010d01c20085005e004200330021002c0034004100590077009400bd00e3000c01350157016b017801760172015d0143012b011301ff00f900fc00fe000f0116011e011e01210116010701f500dc00c400af009a008c007c007500740070007700820091009d00b000ba00c400c700c200b800aa0099008400700056004500310023001900110009000400040002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300040009000b0013001e002b003b004d0066007d009a00b700cf00ea00fd000b01110113010801fc00e700d000b8009d00880073005d004f0045003c0037002f0033002b002c002500250020002600250025001a0017001200120012001700140022002d00450066009300d40017016a01c30120028202d90220034e036c03690347031603cd0271020d02a8015301fc00b4007a00550032002e001e001b0020002a0041005a0077009400b600dc00f90017013001410148013f013401260116010501fe00fe000b011d01310144014e0154015101450131011501f400d800b600a20088007f006d006a007000770088009900aa00bd00ca00d700d500ca00c000ac00970081006a0054003e0031001c0014000d00060004000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000400040009000e001a0024002f00410055006f008900a100b800d000e400f000f900f900ee00e700d100b900a2008900750060004a00400035002d002800220022001a001e001c001b001b0017001700140011000f000e000e000d000e0012001d00280043005d009100ca000a015901af0108026602b402f30222033c033b031903e2029d024502e8018c013301e500a70072004a002e001b001b001b001800230033004300570071008d00ac00ce00e200fd0007010c010c0109010201fa00f500fd0009011c013801500167017b0180017e016b01520132010a01e300c200a000890077006d006a00700082009700a800be00d200dc00e500e300da00c700b3009a007f0065004b0039002a001c0012000c00040004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040007000d0015001c002800350049005d00740089009f00b400c000d200d800da00d000c300b400a100890072005e004e003c003200240021001a0016001500120010000e000f000d000e000c000900080008000700040009000a000f00180027003e0058008600b800f7003f019001e00131027902bf02e802fb02f502d602a30261020902b70169011a01d1009000650043002b00170012000d0013001b0022002f00430058006f0085009c00ad00c300d200dd00e100e000da00df00e500f50009012501470169018601a201a101a0018a016b0147011a01eb00cb009e008a0079006f006f0072008f00a400b900d400e800f900fd00f500e600d100b2009900800063004c00380024001c000f0008000400030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040009001200170021002d003d0049005f00730082009700a600b000b900b900b200a60099008700710061004e003d002f0024001d00150013000c0009000e000c000900090009000600040004000400040004000400070004000c001500200034004f007700a000dc001c016701af01f901360273029602a702a2028a0258021c02d1018b013d01f700ba00850059003d0021001b0010000100090012001b0020002f003f0051006100700087009800a200ae00ae00b400b900bd00cf00e700010126014a0173019401a901ba01b1019d017b0151011f01ef00c9009f00870076006d006f007a009400b300c700e400fc00050109010101f600dc00ba009b007d00600048003100220018000d0008000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300040004000c001200180022002d00390049005a006900750089008e0096009700920089007b006b005f0050003b002f0024001900120011000f00050004000400050008000600030003000300030003000300000000000100040009000f001c002900440061008b00b800f00035016b01b101eb011e02400250024d0237020c02d801970159011501d800a5006f004b0036001e001c000600000001000d000f0019001f00290039004700550060006f0079007f00870092009800a200b500d300f9001e01440173019501ab01bc01b1019e017b014d012201f000c700a100860076007000730088009900bb00d900f9000501140117010b01fc00e300c2009e007e005e0044003200200017000d00040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040007000e001200180021002b003900410055005e00690072007900770073006d006100550049003800300026001c00150012000b000800040004000400040000000000000000000000000000000000000000000000040008000c001a0020003d004e006f009a00c400fb00310166019d01c301e501ef01f301e301c401940160012901eb00ba008900660043002c001e000f0004000000000003000e000e0017001a0026002e00360041004d0059005d0067007200770089009f00c100e30005013701640183019e01a801a1018d01710146011101e600c100990083007800750078008b00a700c900e0000101150120011e011301fe00e100c000a20077005c0040002c001e00120009000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040009000e001200190020002b00320039004800510058005a005a00590050004b004100350028001f001a0012000c0004000400020000000000000000000000000000000000000000000000000000000000000000000600090012001c002c003f0059007d009f00c800f6002501570175019001a301a4018e01740157012601fe00cb00a300730054003c0027001a000900040000000000000003000d000e00150017001c0027002e0033003c003f0042005500630072008900a500c600f3001d01410164017f0185018301710150012c010301d800b100930083007900790083009600b200d200eb0009011b012701240114010001de00ba0099007a00560041002d001c000e00080004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400050009000900120017001c0023002a0032003800410046004200420041003a002e002700210018001200090006000400040000000000000000000000000000000000000000000000000000000000000000000000030006000900140020002f0046005c007f009b00c000e4000b012d0144014e0155014b0138011501f600d100ad0081006500490032001d001100090004000000000000000000030009000e00120015002000200025002a003100340041004b005a006a008d00ad00d500f7001d013d0152015b015601460129010401e400bb00a100870076007100780083009900b800dc00f4000c012001240123010e01f900d500b1008e006d005200360026001a000e000600040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200090009000b000e00120017001e00230027002b002c002e002e002a0023001e00190015000e000b000900070007000600040004000400040004000400040002000000000000000000000000000000000000000000040009000d00190020003500460057007b009100b100cf00e200ff000d0112010b010001ee00cc00af008e00730054003900270016000c00090004000000000000000000000005000d000e000e0013001500190020002500270030003c004500580075009000af00d100f00008011d01250121011501fc00e400c500a6008c007c00720070007f008d00a800c000e300fb001401210124011c010b01ed00c900aa00880066004d003600230017000b0006000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090009000b000e00120017001a001c002000200020001b001b001900160012000d000a0009000900090009000400050005000500050005000500040004000400040000000000000000000000000000000000000004000900120019002000350042005600720081009d00b400c600d100d700d600ca00b800a7008e0073005c00400033001e0012000c000900040000000000000000000400040005000e001200170017001b001f0025002100270033003f004f00580072009200ab00c200d800e800ed00ec00e100d300bb00a2008b0078007500700073008b009800ae00d000ef00030115011c0120011001fc00e100bf009d007c005c004300310020001500090006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000400060009000b000e000f00120014001400140012000f000e000b00090009000900090006000700090009000c000c000c0009000900090007000400040004000000000000000000000000000000000000000400090012001600200031003b004e005f00770085008f009f009f00a0009b0091007e006b005a0045003500210016000e000900040004000000000000000400040007000c000e00150016001a001a001a001f0022002000270031003c004f005c006b0082009a00a600b400b800b700b000a4009600820072006d006b006f007c008e00a700bd00db00f4000c011a011d0119010501ee00d200b4008f00720052003a002a0019000f00090006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040004000800090009000c000d000d000d000d00090009000800060009000900090009000a000e000f001100120012000f000f000e000a00090004000400040001000000000000000000000000000000000003000e00120017001c002a003900440051005b006b0076007f007e0077006c00610057004800350024001b0011000d0008000400040000000000040005000a000e00110018001a001e0020002500250024002800240029002c002e003c004a00500060006e007e0088008800870085008300700068006900630066006f0085009900b600d100ed0002011301190119011101fa00dd00c300a2008100630048003400240017000e00090002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040004000400040005000500070009000900050005000500090009000900090009000e001100150016001b001b001b001b001600130011000e00090009000400040001000000000000000000000000000000000004000a00120018001c00230030003a004500510057005b0058005700530048004000320023001c0014000f000a000700040002000000040005000c00110019001f0027002d0031003600370036002e0030002f0029002a002c002e0037004200470051005a005d006100610060005c005700580059005d006c007a009800ad00c900ea00fa0012011a011e0119010601f200d300b3009400760059003f002c001d000f000c000500020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010004000400040004000400040004000400040005000900090009000b000f00140018001d002200250027002700240022001d00180012000e000b00090004000400010000000000000000000000000000000000040004000d0014001c00220027002e0036003c0040003f003e00390033002b0024001c0015000f000c000700040004000000040007000f0014001a0023002b0035003c0045004b004e004e0049004000400036002d002e002d002e0032003b0036003e004200430044004b004800460049005200610075008900a400c300de00f800150125012701270117010201e400c700aa00880064004e003600230017000e000700040002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400050008000d000f0016001b00240029002e0033003300330033002e00290020001b0015000e000900090004000400000000000000000000000000000000000000040008000d00100013001a00250028002b002f002e002b00260021001f001b0014000e000a00090005000400000002000500100012001b002300320040004a00590061006a006e006e0066005c00510049003c0031002a002a00220026002f002a002b002e0030003700370044004200530067007b009d00b900d800fe00170126013801360132011401fd00da00b900970079005d00420031001e0015000a00040004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200040006000a00100014001e0025002f0037003f0043004500450043003c0035002b0024001c0015000e000900040004000100000000000000000001000200040006000e000e00100017001b001e0020002000250023002500250023002300170012000e000c000900040004000200000006000e0012001b00250035004300570068007b0089008d009200900087007c006b0058004d003e003000250023001e0020001c001c001c0022002b00300039004a005f0073009300b600dd00fa001801340149014e01470135011d01fb00d500b3008d006e00550037002b0019000e000500040002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040009000e0012001c0025003100380044004f0054005900590054004b00430037002b002400180012000e000700040004000000000000000300040004000900090009001300170017001c0020002a002a002a00250025001e001c001c001700120009000800040004000400000004000b000e00150021003300460058006f008c009b00ae00bb00c000bc00b000a000880070005a0046003a002c0021001c00170017001200120020001f002e004000510067008300a600cc00ee001a013a0151015f016401580141011d01f900d400aa00830062004a0033002300130009000500040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000200040004000400040004000400020000000000000000000400050009000f00160022002c00380049005500610068006c006c0065005e005200430037002b001f0015000e00090004000400000002000400040004000b000e000e001a001b002200240028002c002f002e002c002e00250023001e001500130012000b00060004000300000004000d0010001c002400310042005b0078009100b000c600db00e600ee00ea00db00c700ae008c006d00550042002e002300190010000d0008001500190025002f0040005c0072009c00bd00f200190140015d016f01770172015f0141011f01f100cc00a0007800580040002f001b000f000900050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000400040004000500070009000900090009000900090007000500050009000c0013001b00270033004400550061006d0079007f007f0078006c0060004f003f00320026001a0013000e000d0009000500090009000d001200130014001d00220027002f00350039003f003e003e003800360033002c0023001c0015000e000e00080003000100040009000e0015001d002b003f00560070009000b300d400f30009011a011b0117010401e800cd00a500870065004d003500210015000e00060000001100140020003500490067008d00b100e4000d013b0163017f019301940185016a014a011d01ed00be00950079004f0037002b0016000e00080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030004000400040007000c000e000e000e000e000e000c000900090009000c0009000e001100140020002a003b004b005d007000810089008e008b0084007800690058004700370026001f00170010000d000e00090009000c00120017001d0027002d0038003a0042004b004f005a0059005a0051004e0043003b002e0024001d0015000f000a000900060007000e0012001e0027003c004f0068008900aa00d300f8001a0136014201460140012a010c01e600bf009900760055003f00250017000e000900080012001800270040005a007b009f00cf00ff0031015a017f019b01a401a5018f01740148011b01e800ba008f006c00480030002200140007000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010004000400050009000c000f001200130015001800170018001500130012000e0012000e000e001200180020002e004100540067007900880094009a009a009300870074005e004c003c002f00230017001300120012000f00130016001d0023002f00340043004c00580061006a0070007600750073006e0067005a00490040002e0023001d001800170012000f0012001200200026003100480060007e00a100c900f3001b013e0157016c01710162014a012901fe00d200a60080005d0040002f001a000e000e000e001600210034004b006c008d00b900ea00220150017d019e01b601be01b2019701750145011201e000b1008400610045002a0020000e000400040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030004000400070009001000140016001d001f00220023002400240023001f001b00170016001200170012001c00280032004500560068007e0091009d00a2009f009600870078006600550040002f0027001c001d001f001c001e0023002a002d00370043004b0058006500750084008f009b00a000a0009f0094008600760066005700490035002d0021001700170014001b001e002a0036004900580072009000b900e5000e013b015a017b0186018a017b015e013a010c01db00af008500600043002f001d000e0010000e001c0029003d0056007b00a200d80008013b016f019a01b701c901c901bd019f01750140010d01d500a8007d005a003b00260019000d0004000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000400040009000b00130016001a00240028003000330036003500360032002d0029002100200017001c001d00200029003700450057006d007f0092009c00a3009f0096008a00770069005400440035002e00250025002700250027002d0036003f004b00580068007e0087009900ab00be00c300cd00d000cb00c000b4009e0088007000580046003e002d00260022002200270027003600430057006d008400a800cc00f60022014d016e018c019901960189016a013e011001e000b1008600610044002f001d001200100013001c002d00450062008700b900e900220159018801b401cd01db01d301be0198016a013301fc00c80099007200490038002300170009000400030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040007000900110018001f00290032003900410048004b004e004d004a004300380033002e0025002000250025002d003a004a0059006c007f008d0099009f009f009600880077006600510049003d002f002a003200330037003c0044004e00570069006f0082009900ae00c000d500e900fb0000010401ff00f500e300ca00aa008f00750061004a00400037002b003100320037004a00560067007d009b00b700de000801320155017a018f0199019701860166013b010e01db00ab0081005d0043002b001c001700100017001f0035004d006e009c00c700fc0033016e019901c201dc01dd01d101b4018d015b012001f000b8008a0066003e002e001c00100009000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000400040009000e0019001f002b00350041004d005b006200670066006600620058004f0043003c003500300028002c0030003a004a005d006c007d008d0097009a0097008d008300740064005600460040003d0037003f0042004a0050005a006600780082009700a800bc00d200ee000301170132013b013701340125010f01f200d200b50096007e00600051004600420042003f004800560067007c009000ae00d100ee0012013b015a0177018a018e018701740153012d01f900cf00a400780057003d002a00190017001200190022003c0056007700a500d4000f0146017901a601c701da01d701c701a8017a0147011001d800aa007d005c003b00250017000e000900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040009000b0017001f002700370044005800660075007f0084008a00870080007400670057004b004300330031003100370040004a005d0067007800880091009600910087007e0072006200510047004200460046005000540065006d00790085009200a800bb00ce00e200fc0017013b014e015e0166016501640155013d011b01fa00d200b30096007e006c0058005500580054005c0067007e009200a800be00db00fb001c01390151016901760178017001560137011501e500ba0091006e004d00350022001a00170015001c00280042005a008100a700dd00140150017d01a601c601d301cc01bc01950163012901f500c60098006d004d003800200016000d0004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010004000600090010001c002300340042005a006c007f0095009e00aa00ac00a9009f00930083006f0060004f0043003c0039003e0041004d005d0070007b0088008f008f008d00830079006f00610054004f004b004b005b00610071007e008b009d00ad00bd00c800d600eb00030121013b0158016f018001910198018d01790160013f011a01f300d400b3009300840079006c006c006c0074007f009600a200bd00d100e70000011f012f014501530159015501490133011601f100ca00a2007e005e0044002f00200014001400150018002d0040005f008400b100e40019014c017d01a001b601bb01b401990175014a011101e100ae0084005e0041002c001e000b000900010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100040006000a00150021002c003b0052006a007f009600ab00c000cb00d000ce00c300b1009c008700720060004f0043003e00420046005400600071007c0088008f0090008900810079006b005d005700540056005d006c0080008e009e00b100c100d000de00eb00f900090121013f01590175019201a901ab01b601ac01a1017e0162013a011a01f200d000b3009f0091008900870084008f009300a600b800cb00de00f1000301140121012f0137013b01310122010a01f000c900a5008a006b004d00360027001f001200170015001c002d003f0061008300af00de00130140016d0188019d01a0019201770154012401f200c9009a007400500039002500150009000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040009000d0017002400330045005b0078009200ae00c600dc00e800ec00ea00e200ce00b5009f0086006c005b004f004b0049004c005c006700750080008d00940091008b0081007600690060005a005b0060006a0080009500ad00c200d900e900f700070114011b012c01410155016f0187019e01b401c201cc01bf01b5019f017e01570137010e01ef00d000b900b000a100a6009c00a600af00b900c800d500e500f000fc0008010f01130115010f010801f700dd00c500a8008a006e0051003e002900200017001000130015001c002c003e005c008200ab00d40003012e0152016e017e017f01710151012c01fd00d500ad0080005f0045002c001900100009000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040009000e001900250036004d0066008200a100bd00da00f000ff0009010301f600e400c800ae0095007c0063005b004e00510051005a006e007e0087008e009600910089008a0076006d006600620063006c007c009400b300c900e400f9000f011c0128012f0139014801540168017d018b01a201b301cc01d101cb01c601b20197016f01500132010d01ef00db00cb00c200bc00b800b500bc00c900cc00df00e200f100f200f500fa00f400f000e500db00cb00b400a10084006a005600420030002200160016000c000d0012001b0027003d00550073009f00c500ec00180133014a0155014e013f0127010101dc00b2008c00680052003600220013000e0008000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040009000e001c00260039004d0068008700a700ca00e400fc000c01130112010601f200d700bd009a0082006a005e00570054005a006600740086008b0099009a00990091008a007a006e006a0065006b0074008c00af00c900e80007011d01350145014f01500151015a016a01680182019101a801b601c901cc01cf01ce01bb01a20187016c014c012b010d01f600e400d700d000d100ce00c800d200d400e200e100de00e400e200dd00d500cc00bd00b500a10090007a0069004f00420031002400190012001200090009001000170023003a004d0069008b00b200d400f1000b01220123011d011301fb00da00b70093007500570041002c001c000e000a0004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040009000e001c00260039004d006a008600ab00c900e500fe000f01190115010b01f500de00c000a00086006f0062005b005a005c006b007700870093009f009f009d0091008d007e0071006e006b006f0083009800bb00db00fc0022013c0151015f0169016b016c0168016e0174017c0189019801b701bb01cc01ce01cd01c301b0019d017c015f01410127010e01ff00f000e600da00d900d200d500d200d300d800d200ce00c800c100b000a9009d008d007b006e005b004a003b002f002500170012000c000700090004000e00130021002e0046005c0079009300b700d200e500f400f300f100e400cb00b100960077005d0043003000210016000900090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040009000e001900260036004c0066008300a200c100e100f6000b0110010e010201ee00d800bb00a30087006f005f0057005d005f00700079008c0094009f009f009d0096008d007e0072006b00700077008a00a200c300e900140131015201660179017f0181017b01790172016f01780187018b01a901b801b901c201c601c301b901a7018f01730158013d0124010e01ff00ef00e100dd00d300d000c900c900c500c000ba00ae00a4009100860079006d0060005100450038002a001c00190015000a0009000400040004000c0013001a00260037004f0066007b009600a800bd00c900ca00c500b600a5008a0075005d0049003600280018000e000900040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040009000d0019002100310046005d007a009700b300d000e600f400fc00fb00ef00de00cc00b20097007d006a005a00550056005d006b007900880094009a009e009b0096008a00790072006b00700079008b00aa00cb00f50017014401630178018c018e018c01840182017601720171017b0180019201a401b301b801c301c001b801a70197017d0164014a01300119010401f100e600dc00d000c200bd00b600af00a3009f0098008700750068005f00530043003b00300027001e001700120009000900040000000400040009001000170020002b003c005300640075008a0093009b009f0099008d007c006e00580047003400250017000f000c00050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010004000600090017001c002d003d005600690085009e00b600cb00d700e000e200d600c700b5009e0082007100600054004f00530056006200740083008f0096009a0094009000850079006f006f006b0073008700ac00c900f800230145016a017d0187018f0196018f0181017b016f0171016d01790188019201a901aa01bc01b501b801a801990181016701500131011c010701f200e100cc00c000b400a800a00099008d00820075006f005d00510045003d0035002a0023001b0010000d000900090004000000000001000400040009001200180024002e003c0051005d0068006b0076007400700069005d004f004000340024001b0016000d0009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100040004000900100019002600320046005900710087009b00aa00b700c000be00b800aa009a0088007200630052004c0046004b0050005a00690076007e00850089008400800074006d006600620063006e008500a700c800f0001d01440166017e0191019a019701910186017d016d016901620167017c01820190019f01a801ac01ac01a30192017f015f0148012f011601f900e600ce00bd00ab00a000910088008100750069005e00540049003d0034002b0023001d00150013000b000600060003000100000000000000040004000600090013001c0024002b003900420051005300570057005400490040003700300024001c0015000c000900050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040008000d0016001e002a00360048005b006c007c008c0097009c00990094008c007c0070006000520045003e003f004200460052005c006a007100780078007700730067006100580058005c00640082009d00be00e60010013d015c017b018a019501960196018601760168015c015601590167016c01820188018d019a0199018e0182016801540133011f010201e700d600bb00a500910086007c00710065005f0055004a003d0031002b0023001c00120011000d0009000400040001000000000000000000000000000400040009000900150018001f0029002d0034003a003e003b003b003600300029001f00180011000d00080005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040009001200170020002d0038004700540060006d0074007b007b0074006d00610059004800410038003100320035003b0042004e0057005e0064006800640060005800550050004c0054005d0074009000b200dd00ff002f01510168018001890189018d0181016b016001580152014d014f0157015e016c017a0180017a01770167014b01380124010401e900ce00bb00a7008e007c006e0060005b00510045003d0035002d0023001f00180011000e000a000900050004000100000000000000000000000000000002000400040009000900120018001c001e002500260026002600260021001d00190013000f000d0009000500010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000400050009001200160020002a0036003e004800520059005a005a00570051004b0042003900320028002800280028002d003600420045004e005200520051004a004700400042003f004600510069008500a400c900f10015013e0158016e0181017d01740173016801550141013d01380132013e013e014c01520159015a0154013d012c011701fe00e300cc00af009e0088007600660058004c004100390036003000280024001a00140011000e0009000900070003000000000000000000000000000000000000000000030004000400090009000f001300150017001a001a001a0017001500120011000e000b00070004000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040005000c00120016001e0026002c00340038003e00410041003e00390034002d002a002300210020001900200023002a00300035003d003f0042003e0039003900340034003400350047005c0074009500b800de00000121014301590160016a0165015f014d01420132012c011a0116011f01200123012a0131013201290118010001ec00d900bf00a80097007e006d005d0051004400380033002d0022001f00180018000e000a00090005000500050000000000000000000000000000000000000000000000000000000300040004000500090009000a0012001200120012000f000e000e000b00090005000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040005000e000f0012001a002000260028002b002c002b002b002600230021001a001a0015001500150017001b002100230028002c00310031002f002c002c002c0026002d0030003b004d0063008200a400c600ea000b0125013b014a01540150014401350128011b0110010501fc00f400fb00fc00020105010001f900e900d600c500b0009b0089007600650057004700390031002a0021001d001a00150012000e0009000700040004000300000000000000000000000000000000000000000000000000000000000000000004000400040004000700090009000900090007000700050004000400040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040004000c000e000e00140017001c001c0020001c001c001c001700150012000f000e000a000e0012001200170019001c00200020002000200020001c0020001c002000280034003c0057006f008e00ad00d100ec00080120012f01350135012e011d010b01fa00ec00e100d700d000d200d500ce00d200cf00ca00b900aa009d008c00780067005b004b003e0038002a0025001b00170012000f000e000e0009000400040004000400000000000000000000000000000000000000000000000000000000000000000000000000040004000400040004000400040004000400040004000400040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000400040009000a000b000d0012001200100012001200100010000e000b0006000900090009000a000b000e00120014001400170019001500140014001600170015001c00280034004b005f007b009300b000cf00e900fb0008010a010f010101f700e600d900c500b700af00a800a000a700a100a5009f009d0092008500790066005c004c0041003900300029001e001700140010000d000b0009000500040004000400020000000000000000000000000000000000000000000000000000000000000000000000000000000000010002000200020002000200020002000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040008000900090009000900090009000d000d00090004000400040004000800040004000800090009000d000e000e000e000e000d000d000900120012001500200030003f004f0066007e009600ae00c700d800e400e500e800dc00d900c900b000a60097008f00860081007f007c007e00780075006b0062005a004e00420037002f00240020001d00170010000d00090009000900070004000400040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001000600060006000600060005000600040004000400040001000000020004000400040006000900090009000900090009000900060009000e001200150020002b00450054006d0081009500aa00b600bf00c200c300bb00ac009f00930088007b006c006800650060005c005d0058005200510049003d0033002d00270022001a00140011000a00060004000400030001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000400040004000400040004000400040004000400090008000e00120017002100350042004e00630073008500920094009b00970092008a007c00750066005b0056004d004b0045003f003b003f003f0038002d002900240020001b001400110010000b0004000400040003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000400040004000400040004000400040000000400040007000f0016001c00250032003f004f005b006800710073007800730070006e005f005000510044003e00380034002f002b002c002900260026001e001d00170014000f000e000e0005000400040004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040009000e0017001e00260032003b0047004e0057005a005d005a005600480046003e00340030002b002600220020001d001c001c0016001500110014000f000c000c000a000300030002000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400050009000e0013001a0021002a00300038003d003e0040003e003d00380030002b0026001f001c0018001c001500120012000e000e000e0009000900090009000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000400060009000e00120017001c002300270027002a002c002c002a00250021001c00160017001300100010000b000b000700070007000700070007000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000400060009000d000e00120017001b001d0020001b001b001b001b00170012000d0009000d000d00090009000400040004000400040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040004000600090009000b000e000f00110014001400140012000f000e000d00090009000900040001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040004000400080009000900090009000900090009000800040004000400030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100040004000400040004000600060006000400040004000400040001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040004000400040004000400040004000400030003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 _show: 0 ---- !u!1 &2037861179 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 137230, guid: 7adf26d256267454bb6f9b55470051d7, type: 2} - m_PrefabInternal: {fileID: 1659204528} - serializedVersion: 4 - m_Component: - - 4: {fileID: 2037861180} - - 33: {fileID: 2037861182} - - 23: {fileID: 2037861181} - m_Layer: 0 - m_Name: Sphere - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2037861180 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 450234, guid: 7adf26d256267454bb6f9b55470051d7, type: 2} - m_PrefabInternal: {fileID: 1659204528} - m_GameObject: {fileID: 2037861179} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.6, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_Children: - - {fileID: 406878646} - m_Father: {fileID: 769987912} - m_RootOrder: 0 ---- !u!23 &2037861181 -MeshRenderer: +--- !u!114 &1811928846 +MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2300012, guid: 7adf26d256267454bb6f9b55470051d7, - type: 2} - m_PrefabInternal: {fileID: 1659204528} - m_GameObject: {fileID: 2037861179} + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1811928835} m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: b30447a543b0c4e6b9494c581702fd8c, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_SelectedWireframeHidden: 0 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!33 &2037861182 -MeshFilter: + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0d644c12a0a174ba8ad093abcd70b9b2, type: 3} + m_Name: + m_EditorClassIdentifier: + _boxStyle: + m_Name: + m_Normal: + m_Background: {fileID: 2800000, guid: cf288909315184c4fbbcba9dc5ecf697, type: 3} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Hover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Active: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Focused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnNormal: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnHover: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnActive: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_OnFocused: + m_Background: {fileID: 0} + m_ScaledBackgrounds: [] + m_TextColor: {r: 0, g: 0, b: 0, a: 1} + m_Border: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Margin: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Overflow: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_Font: {fileID: 0} + m_FontSize: 0 + m_FontStyle: 0 + m_Alignment: 0 + m_WordWrap: 0 + m_RichText: 1 + m_TextClipping: 0 + m_ImagePosition: 0 + m_ContentOffset: {x: 0, y: 0} + m_FixedWidth: 0 + m_FixedHeight: 0 + m_StretchWidth: 1 + m_StretchHeight: 0 +--- !u!114 &1811928847 +MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3360344, guid: 7adf26d256267454bb6f9b55470051d7, - type: 2} - m_PrefabInternal: {fileID: 1659204528} - m_GameObject: {fileID: 2037861179} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1811928835} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6e07fc304b2004c61a69b62442a4055e, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &2073655911 GameObject: m_ObjectHideFlags: 0 @@ -1197,7 +914,7 @@ Transform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 + m_RootOrder: 5 --- !u!1001 &2144495884 Prefab: m_ObjectHideFlags: 0 @@ -1240,7 +957,7 @@ Prefab: - target: {fileID: 11491364, guid: 4314638711d1a4b3e897b98c105b4ed4, type: 2} propertyPath: _orderMarker value: - objectReference: {fileID: 1217231139} + objectReference: {fileID: 0} - target: {fileID: 184014, guid: 4314638711d1a4b3e897b98c105b4ed4, type: 2} propertyPath: m_StaticEditorFlags value: 0 @@ -1269,5 +986,4 @@ Prefab: - {fileID: 11491364, guid: 4314638711d1a4b3e897b98c105b4ed4, type: 2} - {fileID: 0} m_ParentPrefab: {fileID: 100100000, guid: 4314638711d1a4b3e897b98c105b4ed4, type: 2} - m_RootGameObject: {fileID: 1811928835} m_IsPrefabParent: 0 diff --git a/Example/TestAgent.prefab b/Example/TestAgent.prefab index b24a6dd1..bd2ff148 100644 --- a/Example/TestAgent.prefab +++ b/Example/TestAgent.prefab @@ -214,7 +214,7 @@ MonoBehaviour: _canTurn: 1 _speed: 131072 _acceleration: 65536 - _canPathfind: 1 + _canPathfind: 0 StopTimer: 0 DrawPath: 1 --- !u!114 &11439568