[
  {
    "path": ".github/workflows/toc.yml",
    "content": "on: push\nname: TOC Generator\njobs:\n  generateTOC:\n    name: TOC Generator\n    runs-on: ubuntu-latest\n    steps:\n      - uses: technote-space/toc-generator@v4"
  },
  {
    "path": ".gitignore",
    "content": "# This .gitignore file should be placed at the root of your Unity project directory\n#\n# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore\n#\n/[Ll]ibrary/\n/[Tt]emp/\n/[Oo]bj/\n/[Bb]uild/\n/[Bb]uilds/\n/[Ll]ogs/\n/[Uu]ser[Ss]ettings/\n\n# MemoryCaptures can get excessive in size.\n# They also could contain extremely sensitive data\n/[Mm]emoryCaptures/\n\n# Asset meta data should only be ignored when the corresponding asset is also ignored\n!/[Aa]ssets/**/*.meta\n\n# Uncomment this line if you wish to ignore the asset store tools plugin\n# /[Aa]ssets/AssetStoreTools*\n\n# Autogenerated Jetbrains Rider plugin\n/[Aa]ssets/Plugins/Editor/JetBrains*\n\n# Visual Studio cache directory\n.vs/\n\n# Gradle cache directory\n.gradle/\n\n# Autogenerated VS/MD/Consulo solution and project files\nExportedObj/\n.consulo/\n*.csproj\n*.unityproj\n*.sln\n*.suo\n*.tmp\n*.user\n*.userprefs\n*.pidb\n*.booproj\n*.svd\n*.pdb\n*.mdb\n*.opendb\n*.VC.db\n\n# Unity3D generated meta files\n*.pidb.meta\n*.pdb.meta\n*.mdb.meta\n\n# Unity3D generated file on crash reports\nsysinfo.txt\n\n# Builds\n*.apk\n*.aab\n*.unitypackage\n\n# Crashlytics generated file\ncrashlytics-build.properties\n\n# Packed Addressables\n/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*\n\n# Temporary auto-generated Android Assets\n/[Aa]ssets/[Ss]treamingAssets/aa.meta\n/[Aa]ssets/[Ss]treamingAssets/aa/*\n\n.idea/"
  },
  {
    "path": "Assets/Demo/Prefabs/pfb_demo_carousel_cell.prefab",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1 &1047693792088076\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 224586824547443490}\n  - component: {fileID: 222671064185272594}\n  - component: {fileID: 114187527074109412}\n  m_Layer: 5\n  m_Name: Text\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!224 &224586824547443490\nRectTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1047693792088076}\n  m_LocalRotation: {x: 0.008726558, y: 0, z: 0, w: 0.999962}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children: []\n  m_Father: {fileID: 224942455461622062}\n  m_RootOrder: 0\n  m_LocalEulerAnglesHint: {x: 1, y: 0, z: 0}\n  m_AnchorMin: {x: 1, y: 0}\n  m_AnchorMax: {x: 1, y: 0}\n  m_AnchoredPosition: {x: 0, y: 0}\n  m_SizeDelta: {x: 600, y: 300}\n  m_Pivot: {x: 1, y: 0}\n--- !u!222 &222671064185272594\nCanvasRenderer:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1047693792088076}\n  m_CullTransparentMesh: 0\n--- !u!114 &114187527074109412\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1047693792088076}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Material: {fileID: 0}\n  m_Color: {r: 1, g: 1, b: 1, a: 0.8666667}\n  m_RaycastTarget: 0\n  m_Maskable: 1\n  m_OnCullStateChanged:\n    m_PersistentCalls:\n      m_Calls: []\n  m_FontData:\n    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}\n    m_FontSize: 45\n    m_FontStyle: 1\n    m_BestFit: 0\n    m_MinSize: 0\n    m_MaxSize: 60\n    m_Alignment: 4\n    m_AlignByGeometry: 0\n    m_RichText: 1\n    m_HorizontalOverflow: 0\n    m_VerticalOverflow: 0\n    m_LineSpacing: 1\n  m_Text: Demo\n--- !u!1 &1090456633889264\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 224549255076533924}\n  - component: {fileID: 222720373810649850}\n  - component: {fileID: 8968080924771193172}\n  m_Layer: 5\n  m_Name: pfb_demo_carousel_cell\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!224 &224549255076533924\nRectTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1090456633889264}\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children:\n  - {fileID: 224942455461622062}\n  m_Father: {fileID: 0}\n  m_RootOrder: 0\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n  m_AnchorMin: {x: 0.5, y: 0.5}\n  m_AnchorMax: {x: 0.5, y: 0.5}\n  m_AnchoredPosition: {x: 0, y: 0}\n  m_SizeDelta: {x: 600, y: 300}\n  m_Pivot: {x: 0.5, y: 0.5}\n--- !u!222 &222720373810649850\nCanvasRenderer:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1090456633889264}\n  m_CullTransparentMesh: 0\n--- !u!114 &8968080924771193172\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1090456633889264}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 28a5bb785df764c9396f84b117e1f93f, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  _image: {fileID: 114563267192182474}\n  _text: {fileID: 114187527074109412}\n  _button: {fileID: 6129412484393356487}\n--- !u!1 &1567147101442258\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 224942455461622062}\n  - component: {fileID: 222329272886881190}\n  - component: {fileID: 114563267192182474}\n  - component: {fileID: 6129412484393356487}\n  m_Layer: 5\n  m_Name: Image\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!224 &224942455461622062\nRectTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1567147101442258}\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children:\n  - {fileID: 224586824547443490}\n  m_Father: {fileID: 224549255076533924}\n  m_RootOrder: 0\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n  m_AnchorMin: {x: 0, y: 0}\n  m_AnchorMax: {x: 1, y: 1}\n  m_AnchoredPosition: {x: 0, y: 0}\n  m_SizeDelta: {x: 0, y: 0}\n  m_Pivot: {x: 0.5, y: 0.5}\n--- !u!222 &222329272886881190\nCanvasRenderer:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1567147101442258}\n  m_CullTransparentMesh: 0\n--- !u!114 &114563267192182474\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1567147101442258}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Material: {fileID: 0}\n  m_Color: {r: 1, g: 1, b: 1, a: 1}\n  m_RaycastTarget: 1\n  m_Maskable: 1\n  m_OnCullStateChanged:\n    m_PersistentCalls:\n      m_Calls: []\n  m_Sprite: {fileID: 0}\n  m_Type: 0\n  m_PreserveAspect: 0\n  m_FillCenter: 1\n  m_FillMethod: 4\n  m_FillAmount: 1\n  m_FillClockwise: 1\n  m_FillOrigin: 0\n  m_UseSpriteMesh: 0\n  m_PixelsPerUnitMultiplier: 1\n--- !u!114 &6129412484393356487\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1567147101442258}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Navigation:\n    m_Mode: 3\n    m_SelectOnUp: {fileID: 0}\n    m_SelectOnDown: {fileID: 0}\n    m_SelectOnLeft: {fileID: 0}\n    m_SelectOnRight: {fileID: 0}\n  m_Transition: 1\n  m_Colors:\n    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}\n    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}\n    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}\n    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}\n    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}\n    m_ColorMultiplier: 1\n    m_FadeDuration: 0.1\n  m_SpriteState:\n    m_HighlightedSprite: {fileID: 0}\n    m_PressedSprite: {fileID: 0}\n    m_SelectedSprite: {fileID: 0}\n    m_DisabledSprite: {fileID: 0}\n  m_AnimationTriggers:\n    m_NormalTrigger: Normal\n    m_HighlightedTrigger: Highlighted\n    m_PressedTrigger: Pressed\n    m_SelectedTrigger: Selected\n    m_DisabledTrigger: Disabled\n  m_Interactable: 1\n  m_TargetGraphic: {fileID: 114563267192182474}\n  m_OnClick:\n    m_PersistentCalls:\n      m_Calls: []\n"
  },
  {
    "path": "Assets/Demo/Prefabs/pfb_demo_carousel_cell.prefab.meta",
    "content": "fileFormatVersion: 2\nguid: 07f957860e6fb4856bfb31bb7dbb5541\ntimeCreated: 1508240682\nlicenseType: Free\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFileID: 100100000\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Demo/Prefabs.meta",
    "content": "fileFormatVersion: 2\nguid: 9fdf8a3538dab49458e471d728ddf257\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Demo/Resources/tex_demo_banner_00.png.meta",
    "content": "fileFormatVersion: 2\nguid: 1b9684536565941baabd99e254db31d7\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjects: {}\n  serializedVersion: 11\n  mipmaps:\n    mipMapMode: 0\n    enableMipMap: 0\n    sRGBTexture: 1\n    linearTexture: 0\n    fadeOut: 0\n    borderMipMap: 0\n    mipMapsPreserveCoverage: 0\n    alphaTestReferenceValue: 0.5\n    mipMapFadeDistanceStart: 1\n    mipMapFadeDistanceEnd: 3\n  bumpmap:\n    convertToNormalMap: 0\n    externalNormalMap: 0\n    heightScale: 0.25\n    normalMapFilter: 0\n  isReadable: 0\n  streamingMipmaps: 0\n  streamingMipmapsPriority: 0\n  grayScaleToAlpha: 0\n  generateCubemap: 6\n  cubemapConvolution: 0\n  seamlessCubemap: 0\n  textureFormat: 1\n  maxTextureSize: 2048\n  textureSettings:\n    serializedVersion: 2\n    filterMode: -1\n    aniso: -1\n    mipBias: -100\n    wrapU: 1\n    wrapV: 1\n    wrapW: -1\n  nPOTScale: 0\n  lightmap: 0\n  compressionQuality: 50\n  spriteMode: 1\n  spriteExtrude: 1\n  spriteMeshType: 1\n  alignment: 0\n  spritePivot: {x: 0.5, y: 0.5}\n  spritePixelsToUnits: 100\n  spriteBorder: {x: 0, y: 0, z: 0, w: 0}\n  spriteGenerateFallbackPhysicsShape: 1\n  alphaUsage: 1\n  alphaIsTransparency: 1\n  spriteTessellationDetail: -1\n  textureType: 8\n  textureShape: 1\n  singleChannelComponent: 0\n  maxTextureSizeSet: 0\n  compressionQualitySet: 0\n  textureFormatSet: 0\n  applyGammaDecoding: 0\n  platformSettings:\n  - serializedVersion: 3\n    buildTarget: DefaultTexturePlatform\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: Standalone\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: iPhone\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: Android\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  spriteSheet:\n    serializedVersion: 2\n    sprites: []\n    outline: []\n    physicsShape: []\n    bones: []\n    spriteID: 5e97eb03825dee720800000000000000\n    internalID: 0\n    vertices: []\n    indices: \n    edges: []\n    weights: []\n    secondaryTextures: []\n  spritePackingTag: \n  pSDRemoveMatte: 0\n  pSDShowRemoveMatteOption: 0\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Demo/Resources/tex_demo_banner_01.png.meta",
    "content": "fileFormatVersion: 2\nguid: 369a2d353bee344a29b62a7d227d1be8\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjects: {}\n  serializedVersion: 11\n  mipmaps:\n    mipMapMode: 0\n    enableMipMap: 0\n    sRGBTexture: 1\n    linearTexture: 0\n    fadeOut: 0\n    borderMipMap: 0\n    mipMapsPreserveCoverage: 0\n    alphaTestReferenceValue: 0.5\n    mipMapFadeDistanceStart: 1\n    mipMapFadeDistanceEnd: 3\n  bumpmap:\n    convertToNormalMap: 0\n    externalNormalMap: 0\n    heightScale: 0.25\n    normalMapFilter: 0\n  isReadable: 0\n  streamingMipmaps: 0\n  streamingMipmapsPriority: 0\n  grayScaleToAlpha: 0\n  generateCubemap: 6\n  cubemapConvolution: 0\n  seamlessCubemap: 0\n  textureFormat: 1\n  maxTextureSize: 2048\n  textureSettings:\n    serializedVersion: 2\n    filterMode: -1\n    aniso: -1\n    mipBias: -100\n    wrapU: 1\n    wrapV: 1\n    wrapW: -1\n  nPOTScale: 0\n  lightmap: 0\n  compressionQuality: 50\n  spriteMode: 1\n  spriteExtrude: 1\n  spriteMeshType: 1\n  alignment: 0\n  spritePivot: {x: 0.5, y: 0.5}\n  spritePixelsToUnits: 100\n  spriteBorder: {x: 0, y: 0, z: 0, w: 0}\n  spriteGenerateFallbackPhysicsShape: 1\n  alphaUsage: 1\n  alphaIsTransparency: 1\n  spriteTessellationDetail: -1\n  textureType: 8\n  textureShape: 1\n  singleChannelComponent: 0\n  maxTextureSizeSet: 0\n  compressionQualitySet: 0\n  textureFormatSet: 0\n  applyGammaDecoding: 0\n  platformSettings:\n  - serializedVersion: 3\n    buildTarget: DefaultTexturePlatform\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: Standalone\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: iPhone\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: Android\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  spriteSheet:\n    serializedVersion: 2\n    sprites: []\n    outline: []\n    physicsShape: []\n    bones: []\n    spriteID: 5e97eb03825dee720800000000000000\n    internalID: 0\n    vertices: []\n    indices: \n    edges: []\n    weights: []\n    secondaryTextures: []\n  spritePackingTag: \n  pSDRemoveMatte: 0\n  pSDShowRemoveMatteOption: 0\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Demo/Resources/tex_demo_banner_02.png.meta",
    "content": "fileFormatVersion: 2\nguid: 7a204816dd74146768c85d99000e772f\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjects: {}\n  serializedVersion: 11\n  mipmaps:\n    mipMapMode: 0\n    enableMipMap: 0\n    sRGBTexture: 1\n    linearTexture: 0\n    fadeOut: 0\n    borderMipMap: 0\n    mipMapsPreserveCoverage: 0\n    alphaTestReferenceValue: 0.5\n    mipMapFadeDistanceStart: 1\n    mipMapFadeDistanceEnd: 3\n  bumpmap:\n    convertToNormalMap: 0\n    externalNormalMap: 0\n    heightScale: 0.25\n    normalMapFilter: 0\n  isReadable: 0\n  streamingMipmaps: 0\n  streamingMipmapsPriority: 0\n  grayScaleToAlpha: 0\n  generateCubemap: 6\n  cubemapConvolution: 0\n  seamlessCubemap: 0\n  textureFormat: 1\n  maxTextureSize: 2048\n  textureSettings:\n    serializedVersion: 2\n    filterMode: -1\n    aniso: -1\n    mipBias: -100\n    wrapU: 1\n    wrapV: 1\n    wrapW: -1\n  nPOTScale: 0\n  lightmap: 0\n  compressionQuality: 50\n  spriteMode: 1\n  spriteExtrude: 1\n  spriteMeshType: 1\n  alignment: 0\n  spritePivot: {x: 0.5, y: 0.5}\n  spritePixelsToUnits: 100\n  spriteBorder: {x: 0, y: 0, z: 0, w: 0}\n  spriteGenerateFallbackPhysicsShape: 1\n  alphaUsage: 1\n  alphaIsTransparency: 1\n  spriteTessellationDetail: -1\n  textureType: 8\n  textureShape: 1\n  singleChannelComponent: 0\n  maxTextureSizeSet: 0\n  compressionQualitySet: 0\n  textureFormatSet: 0\n  applyGammaDecoding: 0\n  platformSettings:\n  - serializedVersion: 3\n    buildTarget: DefaultTexturePlatform\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: Standalone\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: iPhone\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: Android\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  spriteSheet:\n    serializedVersion: 2\n    sprites: []\n    outline: []\n    physicsShape: []\n    bones: []\n    spriteID: 5e97eb03825dee720800000000000000\n    internalID: 0\n    vertices: []\n    indices: \n    edges: []\n    weights: []\n    secondaryTextures: []\n  spritePackingTag: \n  pSDRemoveMatte: 0\n  pSDShowRemoveMatteOption: 0\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Demo/Resources.meta",
    "content": "fileFormatVersion: 2\nguid: 6e8b0e5781bcd4398ad46f36b4ee77cb\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Demo/Scenes/CarouselDemo.unity",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!29 &1\nOcclusionCullingSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 2\n  m_OcclusionBakeSettings:\n    smallestOccluder: 5\n    smallestHole: 0.25\n    backfaceThreshold: 100\n  m_SceneGUID: 00000000000000000000000000000000\n  m_OcclusionCullingData: {fileID: 0}\n--- !u!104 &2\nRenderSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 9\n  m_Fog: 0\n  m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}\n  m_FogMode: 3\n  m_FogDensity: 0.01\n  m_LinearFogStart: 0\n  m_LinearFogEnd: 300\n  m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}\n  m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}\n  m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}\n  m_AmbientIntensity: 1\n  m_AmbientMode: 0\n  m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}\n  m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}\n  m_HaloStrength: 0.5\n  m_FlareStrength: 1\n  m_FlareFadeSpeed: 3\n  m_HaloTexture: {fileID: 0}\n  m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}\n  m_DefaultReflectionMode: 0\n  m_DefaultReflectionResolution: 128\n  m_ReflectionBounces: 1\n  m_ReflectionIntensity: 1\n  m_CustomReflection: {fileID: 0}\n  m_Sun: {fileID: 0}\n  m_IndirectSpecularColor: {r: 0.44657874, g: 0.49641275, b: 0.5748172, a: 1}\n  m_UseRadianceAmbientProbe: 0\n--- !u!157 &3\nLightmapSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 12\n  m_GIWorkflowMode: 1\n  m_GISettings:\n    serializedVersion: 2\n    m_BounceScale: 1\n    m_IndirectOutputScale: 1\n    m_AlbedoBoost: 1\n    m_EnvironmentLightingMode: 0\n    m_EnableBakedLightmaps: 1\n    m_EnableRealtimeLightmaps: 0\n  m_LightmapEditorSettings:\n    serializedVersion: 12\n    m_Resolution: 2\n    m_BakeResolution: 40\n    m_AtlasSize: 1024\n    m_AO: 0\n    m_AOMaxDistance: 1\n    m_CompAOExponent: 1\n    m_CompAOExponentDirect: 0\n    m_ExtractAmbientOcclusion: 0\n    m_Padding: 2\n    m_LightmapParameters: {fileID: 0}\n    m_LightmapsBakeMode: 1\n    m_TextureCompression: 1\n    m_FinalGather: 0\n    m_FinalGatherFiltering: 1\n    m_FinalGatherRayCount: 256\n    m_ReflectionCompression: 2\n    m_MixedBakeMode: 2\n    m_BakeBackend: 1\n    m_PVRSampling: 1\n    m_PVRDirectSampleCount: 32\n    m_PVRSampleCount: 512\n    m_PVRBounces: 2\n    m_PVREnvironmentSampleCount: 256\n    m_PVREnvironmentReferencePointCount: 2048\n    m_PVRFilteringMode: 1\n    m_PVRDenoiserTypeDirect: 1\n    m_PVRDenoiserTypeIndirect: 1\n    m_PVRDenoiserTypeAO: 1\n    m_PVRFilterTypeDirect: 0\n    m_PVRFilterTypeIndirect: 0\n    m_PVRFilterTypeAO: 0\n    m_PVREnvironmentMIS: 1\n    m_PVRCulling: 1\n    m_PVRFilteringGaussRadiusDirect: 1\n    m_PVRFilteringGaussRadiusIndirect: 5\n    m_PVRFilteringGaussRadiusAO: 2\n    m_PVRFilteringAtrousPositionSigmaDirect: 0.5\n    m_PVRFilteringAtrousPositionSigmaIndirect: 2\n    m_PVRFilteringAtrousPositionSigmaAO: 1\n    m_ExportTrainingData: 0\n    m_TrainingDataDestination: TrainingData\n    m_LightProbeSampleCountMultiplier: 4\n  m_LightingDataAsset: {fileID: 0}\n  m_LightingSettings: {fileID: 0}\n--- !u!196 &4\nNavMeshSettings:\n  serializedVersion: 2\n  m_ObjectHideFlags: 0\n  m_BuildSettings:\n    serializedVersion: 2\n    agentTypeID: 0\n    agentRadius: 0.5\n    agentHeight: 2\n    agentSlope: 45\n    agentClimb: 0.4\n    ledgeDropHeight: 0\n    maxJumpAcrossDistance: 0\n    minRegionArea: 2\n    manualCellSize: 0\n    cellSize: 0.16666667\n    manualTileSize: 0\n    tileSize: 256\n    accuratePlacement: 0\n    maxJobWorkers: 0\n    preserveTilesOutsideBounds: 0\n    debug:\n      m_Flags: 0\n  m_NavMeshData: {fileID: 0}\n--- !u!1 &63914003\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 63914005}\n  - component: {fileID: 63914004}\n  m_Layer: 0\n  m_Name: Demo\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!114 &63914004\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 63914003}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: c81471d0f53e947b98e24b95bf6550e3, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  _carouselView: {fileID: 1539422973}\n  _bannerCount: 3\n  _setupButton: {fileID: 288338531}\n  _cleanupButton: {fileID: 1006705426}\n--- !u!4 &63914005\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 63914003}\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children: []\n  m_Father: {fileID: 0}\n  m_RootOrder: 4\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n--- !u!1 &122447817\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 122447818}\n  - component: {fileID: 122447820}\n  - component: {fileID: 122447819}\n  m_Layer: 5\n  m_Name: Text\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!224 &122447818\nRectTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 122447817}\n  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children: []\n  m_Father: {fileID: 1006705425}\n  m_RootOrder: 0\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n  m_AnchorMin: {x: 0, y: 0}\n  m_AnchorMax: {x: 1, y: 1}\n  m_AnchoredPosition: {x: 0, y: 0}\n  m_SizeDelta: {x: 0, y: 0}\n  m_Pivot: {x: 0.5, y: 0.5}\n--- !u!114 &122447819\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 122447817}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Material: {fileID: 0}\n  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}\n  m_RaycastTarget: 1\n  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}\n  m_Maskable: 1\n  m_OnCullStateChanged:\n    m_PersistentCalls:\n      m_Calls: []\n  m_FontData:\n    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}\n    m_FontSize: 32\n    m_FontStyle: 0\n    m_BestFit: 0\n    m_MinSize: 3\n    m_MaxSize: 40\n    m_Alignment: 4\n    m_AlignByGeometry: 0\n    m_RichText: 1\n    m_HorizontalOverflow: 0\n    m_VerticalOverflow: 0\n    m_LineSpacing: 1\n  m_Text: Cleanup\n--- !u!222 &122447820\nCanvasRenderer:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 122447817}\n  m_CullTransparentMesh: 1\n--- !u!1 &148086138\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 148086143}\n  - component: {fileID: 148086142}\n  - component: {fileID: 148086141}\n  - component: {fileID: 148086140}\n  m_Layer: 5\n  m_Name: Canvas\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!114 &148086140\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 148086138}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_IgnoreReversedGraphics: 1\n  m_BlockingObjects: 0\n  m_BlockingMask:\n    serializedVersion: 2\n    m_Bits: 4294967295\n--- !u!114 &148086141\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 148086138}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_UiScaleMode: 1\n  m_ReferencePixelsPerUnit: 100\n  m_ScaleFactor: 1\n  m_ReferenceResolution: {x: 750, y: 1336}\n  m_ScreenMatchMode: 0\n  m_MatchWidthOrHeight: 0\n  m_PhysicalUnit: 3\n  m_FallbackScreenDPI: 96\n  m_DefaultSpriteDPI: 96\n  m_DynamicPixelsPerUnit: 1\n  m_PresetInfoIsWorld: 0\n--- !u!223 &148086142\nCanvas:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 148086138}\n  m_Enabled: 1\n  serializedVersion: 3\n  m_RenderMode: 1\n  m_Camera: {fileID: 768640782}\n  m_PlaneDistance: 100\n  m_PixelPerfect: 0\n  m_ReceivesEvents: 1\n  m_OverrideSorting: 0\n  m_OverridePixelPerfect: 0\n  m_SortingBucketNormalizedSize: 0\n  m_AdditionalShaderChannelsFlag: 25\n  m_SortingLayerID: 0\n  m_SortingOrder: 0\n  m_TargetDisplay: 0\n--- !u!224 &148086143\nRectTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 148086138}\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 0, y: 0, z: 0}\n  m_Children:\n  - {fileID: 515421546}\n  - {fileID: 676918069}\n  m_Father: {fileID: 0}\n  m_RootOrder: 2\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n  m_AnchorMin: {x: 0, y: 0}\n  m_AnchorMax: {x: 0, y: 0}\n  m_AnchoredPosition: {x: 0, y: 0}\n  m_SizeDelta: {x: 0, y: 0}\n  m_Pivot: {x: 0, y: 0}\n--- !u!1 &288338529\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 288338530}\n  - component: {fileID: 288338533}\n  - component: {fileID: 288338532}\n  - component: {fileID: 288338531}\n  m_Layer: 5\n  m_Name: SetupButton\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!224 &288338530\nRectTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 288338529}\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children:\n  - {fileID: 1307930892}\n  m_Father: {fileID: 676918069}\n  m_RootOrder: 0\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n  m_AnchorMin: {x: 0, y: 0}\n  m_AnchorMax: {x: 0, y: 0}\n  m_AnchoredPosition: {x: 0, y: 0}\n  m_SizeDelta: {x: 0, y: 0}\n  m_Pivot: {x: 0.5, y: 0.5}\n--- !u!114 &288338531\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 288338529}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Navigation:\n    m_Mode: 3\n    m_WrapAround: 0\n    m_SelectOnUp: {fileID: 0}\n    m_SelectOnDown: {fileID: 0}\n    m_SelectOnLeft: {fileID: 0}\n    m_SelectOnRight: {fileID: 0}\n  m_Transition: 1\n  m_Colors:\n    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}\n    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}\n    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}\n    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}\n    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}\n    m_ColorMultiplier: 1\n    m_FadeDuration: 0.1\n  m_SpriteState:\n    m_HighlightedSprite: {fileID: 0}\n    m_PressedSprite: {fileID: 0}\n    m_SelectedSprite: {fileID: 0}\n    m_DisabledSprite: {fileID: 0}\n  m_AnimationTriggers:\n    m_NormalTrigger: Normal\n    m_HighlightedTrigger: Highlighted\n    m_PressedTrigger: Pressed\n    m_SelectedTrigger: Selected\n    m_DisabledTrigger: Disabled\n  m_Interactable: 1\n  m_TargetGraphic: {fileID: 288338532}\n  m_OnClick:\n    m_PersistentCalls:\n      m_Calls: []\n--- !u!114 &288338532\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 288338529}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Material: {fileID: 0}\n  m_Color: {r: 1, g: 1, b: 1, a: 1}\n  m_RaycastTarget: 1\n  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}\n  m_Maskable: 1\n  m_OnCullStateChanged:\n    m_PersistentCalls:\n      m_Calls: []\n  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}\n  m_Type: 1\n  m_PreserveAspect: 0\n  m_FillCenter: 1\n  m_FillMethod: 4\n  m_FillAmount: 1\n  m_FillClockwise: 1\n  m_FillOrigin: 0\n  m_UseSpriteMesh: 0\n  m_PixelsPerUnitMultiplier: 1\n--- !u!222 &288338533\nCanvasRenderer:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 288338529}\n  m_CullTransparentMesh: 1\n--- !u!114 &446624512 stripped\nMonoBehaviour:\n  m_CorrespondingSourceObject: {fileID: 5609355829170890579, guid: 4e95dd339e71b40aa8e0269426c1dd21,\n    type: 3}\n  m_PrefabInstance: {fileID: 1353156686}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 0}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: d1686675fc52e4c6da26d2cd3ea79921, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n--- !u!1 &515421545\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 515421546}\n  - component: {fileID: 515421547}\n  m_Layer: 5\n  m_Name: Container\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!224 &515421546\nRectTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 515421545}\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children:\n  - {fileID: 1539422975}\n  - {fileID: 1353156687}\n  m_Father: {fileID: 148086143}\n  m_RootOrder: 0\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n  m_AnchorMin: {x: 0, y: 0}\n  m_AnchorMax: {x: 1, y: 1}\n  m_AnchoredPosition: {x: 0, y: 0}\n  m_SizeDelta: {x: 0, y: 0}\n  m_Pivot: {x: 0.5, y: 0.5}\n--- !u!114 &515421547\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 515421545}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Padding:\n    m_Left: 0\n    m_Right: 0\n    m_Top: 0\n    m_Bottom: 0\n  m_ChildAlignment: 4\n  m_Spacing: 10\n  m_ChildForceExpandWidth: 0\n  m_ChildForceExpandHeight: 0\n  m_ChildControlWidth: 0\n  m_ChildControlHeight: 0\n  m_ChildScaleWidth: 0\n  m_ChildScaleHeight: 0\n  m_ReverseArrangement: 0\n--- !u!1 &676918068\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 676918069}\n  - component: {fileID: 676918070}\n  m_Layer: 5\n  m_Name: Buttons\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!224 &676918069\nRectTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 676918068}\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children:\n  - {fileID: 288338530}\n  - {fileID: 1006705425}\n  m_Father: {fileID: 148086143}\n  m_RootOrder: 1\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n  m_AnchorMin: {x: 0, y: 0}\n  m_AnchorMax: {x: 1, y: 0}\n  m_AnchoredPosition: {x: 0, y: 16}\n  m_SizeDelta: {x: 0, y: 100}\n  m_Pivot: {x: 0.5, y: 0}\n--- !u!114 &676918070\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 676918068}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Padding:\n    m_Left: 16\n    m_Right: 16\n    m_Top: 0\n    m_Bottom: 0\n  m_ChildAlignment: 1\n  m_Spacing: 12\n  m_ChildForceExpandWidth: 1\n  m_ChildForceExpandHeight: 1\n  m_ChildControlWidth: 1\n  m_ChildControlHeight: 1\n  m_ChildScaleWidth: 0\n  m_ChildScaleHeight: 0\n  m_ReverseArrangement: 0\n--- !u!1 &768640780\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 768640783}\n  - component: {fileID: 768640782}\n  - component: {fileID: 768640781}\n  m_Layer: 0\n  m_Name: Main Camera\n  m_TagString: MainCamera\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!81 &768640781\nAudioListener:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 768640780}\n  m_Enabled: 1\n--- !u!20 &768640782\nCamera:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 768640780}\n  m_Enabled: 1\n  serializedVersion: 2\n  m_ClearFlags: 2\n  m_BackGroundColor: {r: 0.9150943, g: 0.9150943, b: 0.9150943, a: 0}\n  m_projectionMatrixMode: 1\n  m_GateFitMode: 2\n  m_FOVAxisMode: 0\n  m_SensorSize: {x: 36, y: 24}\n  m_LensShift: {x: 0, y: 0}\n  m_FocalLength: 50\n  m_NormalizedViewPortRect:\n    serializedVersion: 2\n    x: 0\n    y: 0\n    width: 1\n    height: 1\n  near clip plane: 0.3\n  far clip plane: 1000\n  field of view: 60\n  orthographic: 0\n  orthographic size: 5\n  m_Depth: -1\n  m_CullingMask:\n    serializedVersion: 2\n    m_Bits: 4294967295\n  m_RenderingPath: -1\n  m_TargetTexture: {fileID: 0}\n  m_TargetDisplay: 0\n  m_TargetEye: 3\n  m_HDR: 1\n  m_AllowMSAA: 1\n  m_AllowDynamicResolution: 0\n  m_ForceIntoRT: 0\n  m_OcclusionCulling: 1\n  m_StereoConvergence: 10\n  m_StereoSeparation: 0.022\n--- !u!4 &768640783\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 768640780}\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 1, z: -10}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children: []\n  m_Father: {fileID: 0}\n  m_RootOrder: 0\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n--- !u!1 &1006705424\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 1006705425}\n  - component: {fileID: 1006705428}\n  - component: {fileID: 1006705427}\n  - component: {fileID: 1006705426}\n  m_Layer: 5\n  m_Name: CleanupButton\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!224 &1006705425\nRectTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1006705424}\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children:\n  - {fileID: 122447818}\n  m_Father: {fileID: 676918069}\n  m_RootOrder: 1\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n  m_AnchorMin: {x: 0, y: 0}\n  m_AnchorMax: {x: 0, y: 0}\n  m_AnchoredPosition: {x: 0, y: 0}\n  m_SizeDelta: {x: 0, y: 0}\n  m_Pivot: {x: 0.5, y: 0.5}\n--- !u!114 &1006705426\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1006705424}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Navigation:\n    m_Mode: 3\n    m_WrapAround: 0\n    m_SelectOnUp: {fileID: 0}\n    m_SelectOnDown: {fileID: 0}\n    m_SelectOnLeft: {fileID: 0}\n    m_SelectOnRight: {fileID: 0}\n  m_Transition: 1\n  m_Colors:\n    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}\n    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}\n    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}\n    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}\n    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}\n    m_ColorMultiplier: 1\n    m_FadeDuration: 0.1\n  m_SpriteState:\n    m_HighlightedSprite: {fileID: 0}\n    m_PressedSprite: {fileID: 0}\n    m_SelectedSprite: {fileID: 0}\n    m_DisabledSprite: {fileID: 0}\n  m_AnimationTriggers:\n    m_NormalTrigger: Normal\n    m_HighlightedTrigger: Highlighted\n    m_PressedTrigger: Pressed\n    m_SelectedTrigger: Selected\n    m_DisabledTrigger: Disabled\n  m_Interactable: 1\n  m_TargetGraphic: {fileID: 1006705427}\n  m_OnClick:\n    m_PersistentCalls:\n      m_Calls: []\n--- !u!114 &1006705427\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1006705424}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Material: {fileID: 0}\n  m_Color: {r: 1, g: 1, b: 1, a: 1}\n  m_RaycastTarget: 1\n  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}\n  m_Maskable: 1\n  m_OnCullStateChanged:\n    m_PersistentCalls:\n      m_Calls: []\n  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}\n  m_Type: 1\n  m_PreserveAspect: 0\n  m_FillCenter: 1\n  m_FillMethod: 4\n  m_FillAmount: 1\n  m_FillClockwise: 1\n  m_FillOrigin: 0\n  m_UseSpriteMesh: 0\n  m_PixelsPerUnitMultiplier: 1\n--- !u!222 &1006705428\nCanvasRenderer:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1006705424}\n  m_CullTransparentMesh: 1\n--- !u!1 &1214493610\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 1214493612}\n  - component: {fileID: 1214493611}\n  m_Layer: 0\n  m_Name: Directional Light\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!108 &1214493611\nLight:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1214493610}\n  m_Enabled: 1\n  serializedVersion: 10\n  m_Type: 1\n  m_Shape: 0\n  m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}\n  m_Intensity: 1\n  m_Range: 10\n  m_SpotAngle: 30\n  m_InnerSpotAngle: 21.80208\n  m_CookieSize: 10\n  m_Shadows:\n    m_Type: 2\n    m_Resolution: -1\n    m_CustomResolution: -1\n    m_Strength: 1\n    m_Bias: 0.05\n    m_NormalBias: 0.4\n    m_NearPlane: 0.2\n    m_CullingMatrixOverride:\n      e00: 1\n      e01: 0\n      e02: 0\n      e03: 0\n      e10: 0\n      e11: 1\n      e12: 0\n      e13: 0\n      e20: 0\n      e21: 0\n      e22: 1\n      e23: 0\n      e30: 0\n      e31: 0\n      e32: 0\n      e33: 1\n    m_UseCullingMatrixOverride: 0\n  m_Cookie: {fileID: 0}\n  m_DrawHalo: 0\n  m_Flare: {fileID: 0}\n  m_RenderMode: 0\n  m_CullingMask:\n    serializedVersion: 2\n    m_Bits: 4294967295\n  m_RenderingLayerMask: 1\n  m_Lightmapping: 4\n  m_LightShadowCasterMode: 0\n  m_AreaSize: {x: 1, y: 1}\n  m_BounceIntensity: 1\n  m_ColorTemperature: 6570\n  m_UseColorTemperature: 0\n  m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}\n  m_UseBoundingSphereOverride: 0\n  m_UseViewFrustumForShadowCasterCull: 1\n  m_ShadowRadius: 0\n  m_ShadowAngle: 0\n--- !u!4 &1214493612\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1214493610}\n  m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}\n  m_LocalPosition: {x: 0, y: 3, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children: []\n  m_Father: {fileID: 0}\n  m_RootOrder: 1\n  m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}\n--- !u!1 &1307930891\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 1307930892}\n  - component: {fileID: 1307930894}\n  - component: {fileID: 1307930893}\n  m_Layer: 5\n  m_Name: Text\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!224 &1307930892\nRectTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1307930891}\n  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children: []\n  m_Father: {fileID: 288338530}\n  m_RootOrder: 0\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n  m_AnchorMin: {x: 0, y: 0}\n  m_AnchorMax: {x: 1, y: 1}\n  m_AnchoredPosition: {x: 0, y: 0}\n  m_SizeDelta: {x: 0, y: 0}\n  m_Pivot: {x: 0.5, y: 0.5}\n--- !u!114 &1307930893\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1307930891}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Material: {fileID: 0}\n  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}\n  m_RaycastTarget: 1\n  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}\n  m_Maskable: 1\n  m_OnCullStateChanged:\n    m_PersistentCalls:\n      m_Calls: []\n  m_FontData:\n    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}\n    m_FontSize: 32\n    m_FontStyle: 0\n    m_BestFit: 0\n    m_MinSize: 3\n    m_MaxSize: 40\n    m_Alignment: 4\n    m_AlignByGeometry: 0\n    m_RichText: 1\n    m_HorizontalOverflow: 0\n    m_VerticalOverflow: 0\n    m_LineSpacing: 1\n  m_Text: Setup\n--- !u!222 &1307930894\nCanvasRenderer:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1307930891}\n  m_CullTransparentMesh: 1\n--- !u!1001 &1353156686\nPrefabInstance:\n  m_ObjectHideFlags: 0\n  serializedVersion: 2\n  m_Modification:\n    m_TransformParent: {fileID: 515421546}\n    m_Modifications:\n    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,\n        type: 3}\n      propertyPath: m_Pivot.x\n      value: 0.5\n      objectReference: {fileID: 0}\n    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,\n        type: 3}\n      propertyPath: m_Pivot.y\n      value: 0\n      objectReference: {fileID: 0}\n    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,\n        type: 3}\n      propertyPath: m_RootOrder\n      value: 1\n      objectReference: {fileID: 0}\n    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,\n        type: 3}\n      propertyPath: m_AnchorMax.x\n      value: 0\n      objectReference: {fileID: 0}\n    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,\n        type: 3}\n      propertyPath: m_AnchorMax.y\n      value: 0\n      objectReference: {fileID: 0}\n    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,\n        type: 3}\n      propertyPath: m_AnchorMin.x\n      value: 0\n      objectReference: {fileID: 0}\n    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,\n        type: 3}\n      propertyPath: m_AnchorMin.y\n      value: 0\n      objectReference: {fileID: 0}\n    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,\n        type: 3}\n      propertyPath: m_SizeDelta.x\n      value: 750\n      objectReference: {fileID: 0}\n    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,\n        type: 3}\n      propertyPath: m_SizeDelta.y\n      value: 30\n      objectReference: {fileID: 0}\n    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,\n        type: 3}\n      propertyPath: m_LocalPosition.x\n      value: 0\n      objectReference: {fileID: 0}\n    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,\n        type: 3}\n      propertyPath: m_LocalPosition.y\n      value: 0\n      objectReference: {fileID: 0}\n    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,\n        type: 3}\n      propertyPath: m_LocalPosition.z\n      value: 0\n      objectReference: {fileID: 0}\n    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,\n        type: 3}\n      propertyPath: m_LocalRotation.w\n      value: 1\n      objectReference: {fileID: 0}\n    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,\n        type: 3}\n      propertyPath: m_LocalRotation.x\n      value: -0\n      objectReference: {fileID: 0}\n    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,\n        type: 3}\n      propertyPath: m_LocalRotation.y\n      value: -0\n      objectReference: {fileID: 0}\n    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,\n        type: 3}\n      propertyPath: m_LocalRotation.z\n      value: -0\n      objectReference: {fileID: 0}\n    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,\n        type: 3}\n      propertyPath: m_AnchoredPosition.x\n      value: 0\n      objectReference: {fileID: 0}\n    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,\n        type: 3}\n      propertyPath: m_AnchoredPosition.y\n      value: 0\n      objectReference: {fileID: 0}\n    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,\n        type: 3}\n      propertyPath: m_LocalEulerAnglesHint.x\n      value: 0\n      objectReference: {fileID: 0}\n    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,\n        type: 3}\n      propertyPath: m_LocalEulerAnglesHint.y\n      value: 0\n      objectReference: {fileID: 0}\n    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,\n        type: 3}\n      propertyPath: m_LocalEulerAnglesHint.z\n      value: 0\n      objectReference: {fileID: 0}\n    - target: {fileID: 5609355829170890581, guid: 4e95dd339e71b40aa8e0269426c1dd21,\n        type: 3}\n      propertyPath: m_Name\n      value: pfb_default_carousel_progress_view\n      objectReference: {fileID: 0}\n    m_RemovedComponents: []\n  m_SourcePrefab: {fileID: 100100000, guid: 4e95dd339e71b40aa8e0269426c1dd21, type: 3}\n--- !u!224 &1353156687 stripped\nRectTransform:\n  m_CorrespondingSourceObject: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,\n    type: 3}\n  m_PrefabInstance: {fileID: 1353156686}\n  m_PrefabAsset: {fileID: 0}\n--- !u!1 &1539422972\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 1539422975}\n  - component: {fileID: 1539422977}\n  - component: {fileID: 1539422976}\n  - component: {fileID: 1539422974}\n  - component: {fileID: 1539422973}\n  m_Layer: 5\n  m_Name: Carousel View\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!114 &1539422973\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1539422972}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 7ac5fc66c6bf74808a1fead45d9b1b43, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  cellInterval: 0.2\n  scrollOffset: 0.5\n  loop: 1\n  cellContainer: {fileID: 1539422975}\n  _scroller: {fileID: 1539422974}\n  _cellPrefab: {fileID: 8968080924771193172, guid: 07f957860e6fb4856bfb31bb7dbb5541,\n    type: 3}\n  _cellSize: {x: 600, y: 300}\n  _cellSpacing: 30\n  _snapAnimationDuration: 0.25\n  _snapAnimationType: 17\n  _autoScrollingEnabled: 1\n  _autoScrollingIntervalSec: 3\n  _inverseAutoScrollingDirection: 0\n  _progressView: {fileID: 446624512}\n  _progressViewInteraction: 1\n--- !u!114 &1539422974\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1539422972}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 93e8ff52edf1e4551a9383367d899f3d, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  viewport: {fileID: 1539422975}\n  scrollDirection: 1\n  movementType: 0\n  elasticity: 0.1\n  scrollSensitivity: 1\n  inertia: 0\n  decelerationRate: 0.03\n  snap:\n    Enable: 0\n    VelocityThreshold: 0.5\n    Duration: 0.3\n    Easing: 24\n  draggable: 1\n  scrollbar: {fileID: 0}\n--- !u!224 &1539422975\nRectTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1539422972}\n  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children: []\n  m_Father: {fileID: 515421546}\n  m_RootOrder: 0\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n  m_AnchorMin: {x: 0, y: 0}\n  m_AnchorMax: {x: 0, y: 0}\n  m_AnchoredPosition: {x: 0, y: 0}\n  m_SizeDelta: {x: 750, y: 300}\n  m_Pivot: {x: 0.5, y: 0.5}\n--- !u!114 &1539422976\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1539422972}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Material: {fileID: 0}\n  m_Color: {r: 1, g: 1, b: 1, a: 0}\n  m_RaycastTarget: 1\n  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}\n  m_Maskable: 1\n  m_OnCullStateChanged:\n    m_PersistentCalls:\n      m_Calls: []\n  m_Sprite: {fileID: 0}\n  m_Type: 1\n  m_PreserveAspect: 0\n  m_FillCenter: 1\n  m_FillMethod: 4\n  m_FillAmount: 1\n  m_FillClockwise: 1\n  m_FillOrigin: 0\n  m_UseSpriteMesh: 0\n  m_PixelsPerUnitMultiplier: 1\n--- !u!222 &1539422977\nCanvasRenderer:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1539422972}\n  m_CullTransparentMesh: 0\n--- !u!1 &1553209351\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 1553209354}\n  - component: {fileID: 1553209353}\n  - component: {fileID: 1553209352}\n  m_Layer: 0\n  m_Name: EventSystem\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!114 &1553209352\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1553209351}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_HorizontalAxis: Horizontal\n  m_VerticalAxis: Vertical\n  m_SubmitButton: Submit\n  m_CancelButton: Cancel\n  m_InputActionsPerSecond: 10\n  m_RepeatDelay: 0.5\n  m_ForceModuleActive: 0\n--- !u!114 &1553209353\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1553209351}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_FirstSelected: {fileID: 0}\n  m_sendNavigationEvents: 1\n  m_DragThreshold: 10\n--- !u!4 &1553209354\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1553209351}\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children: []\n  m_Father: {fileID: 0}\n  m_RootOrder: 3\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n"
  },
  {
    "path": "Assets/Demo/Scenes/CarouselDemo.unity.meta",
    "content": "fileFormatVersion: 2\nguid: fb0930c4c73004bb2be56aca5302a87f\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Demo/Scenes/WithScrollViewDemo.unity",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!29 &1\nOcclusionCullingSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 2\n  m_OcclusionBakeSettings:\n    smallestOccluder: 5\n    smallestHole: 0.25\n    backfaceThreshold: 100\n  m_SceneGUID: 00000000000000000000000000000000\n  m_OcclusionCullingData: {fileID: 0}\n--- !u!104 &2\nRenderSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 9\n  m_Fog: 0\n  m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}\n  m_FogMode: 3\n  m_FogDensity: 0.01\n  m_LinearFogStart: 0\n  m_LinearFogEnd: 300\n  m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}\n  m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}\n  m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}\n  m_AmbientIntensity: 1\n  m_AmbientMode: 0\n  m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}\n  m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}\n  m_HaloStrength: 0.5\n  m_FlareStrength: 1\n  m_FlareFadeSpeed: 3\n  m_HaloTexture: {fileID: 0}\n  m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}\n  m_DefaultReflectionMode: 0\n  m_DefaultReflectionResolution: 128\n  m_ReflectionBounces: 1\n  m_ReflectionIntensity: 1\n  m_CustomReflection: {fileID: 0}\n  m_Sun: {fileID: 0}\n  m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}\n  m_UseRadianceAmbientProbe: 0\n--- !u!157 &3\nLightmapSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 11\n  m_GIWorkflowMode: 1\n  m_GISettings:\n    serializedVersion: 2\n    m_BounceScale: 1\n    m_IndirectOutputScale: 1\n    m_AlbedoBoost: 1\n    m_EnvironmentLightingMode: 0\n    m_EnableBakedLightmaps: 1\n    m_EnableRealtimeLightmaps: 0\n  m_LightmapEditorSettings:\n    serializedVersion: 12\n    m_Resolution: 2\n    m_BakeResolution: 40\n    m_AtlasSize: 1024\n    m_AO: 0\n    m_AOMaxDistance: 1\n    m_CompAOExponent: 1\n    m_CompAOExponentDirect: 0\n    m_ExtractAmbientOcclusion: 0\n    m_Padding: 2\n    m_LightmapParameters: {fileID: 0}\n    m_LightmapsBakeMode: 1\n    m_TextureCompression: 1\n    m_FinalGather: 0\n    m_FinalGatherFiltering: 1\n    m_FinalGatherRayCount: 256\n    m_ReflectionCompression: 2\n    m_MixedBakeMode: 2\n    m_BakeBackend: 1\n    m_PVRSampling: 1\n    m_PVRDirectSampleCount: 32\n    m_PVRSampleCount: 512\n    m_PVRBounces: 2\n    m_PVREnvironmentSampleCount: 256\n    m_PVREnvironmentReferencePointCount: 2048\n    m_PVRFilteringMode: 1\n    m_PVRDenoiserTypeDirect: 1\n    m_PVRDenoiserTypeIndirect: 1\n    m_PVRDenoiserTypeAO: 1\n    m_PVRFilterTypeDirect: 0\n    m_PVRFilterTypeIndirect: 0\n    m_PVRFilterTypeAO: 0\n    m_PVREnvironmentMIS: 1\n    m_PVRCulling: 1\n    m_PVRFilteringGaussRadiusDirect: 1\n    m_PVRFilteringGaussRadiusIndirect: 5\n    m_PVRFilteringGaussRadiusAO: 2\n    m_PVRFilteringAtrousPositionSigmaDirect: 0.5\n    m_PVRFilteringAtrousPositionSigmaIndirect: 2\n    m_PVRFilteringAtrousPositionSigmaAO: 1\n    m_ExportTrainingData: 0\n    m_TrainingDataDestination: TrainingData\n    m_LightProbeSampleCountMultiplier: 4\n  m_LightingDataAsset: {fileID: 0}\n  m_UseShadowmask: 1\n--- !u!196 &4\nNavMeshSettings:\n  serializedVersion: 2\n  m_ObjectHideFlags: 0\n  m_BuildSettings:\n    serializedVersion: 2\n    agentTypeID: 0\n    agentRadius: 0.5\n    agentHeight: 2\n    agentSlope: 45\n    agentClimb: 0.4\n    ledgeDropHeight: 0\n    maxJumpAcrossDistance: 0\n    minRegionArea: 2\n    manualCellSize: 0\n    cellSize: 0.16666667\n    manualTileSize: 0\n    tileSize: 256\n    accuratePlacement: 0\n    debug:\n      m_Flags: 0\n  m_NavMeshData: {fileID: 0}\n--- !u!1 &63914003\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 63914005}\n  - component: {fileID: 63914004}\n  m_Layer: 0\n  m_Name: Demo\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!114 &63914004\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 63914003}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: c81471d0f53e947b98e24b95bf6550e3, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  _carouselView: {fileID: 1539422973}\n  _bannerCount: 3\n--- !u!4 &63914005\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 63914003}\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children: []\n  m_Father: {fileID: 0}\n  m_RootOrder: 4\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n--- !u!1 &148086138\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 148086143}\n  - component: {fileID: 148086142}\n  - component: {fileID: 148086141}\n  - component: {fileID: 148086140}\n  m_Layer: 5\n  m_Name: Canvas\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!114 &148086140\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 148086138}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_IgnoreReversedGraphics: 1\n  m_BlockingObjects: 0\n  m_BlockingMask:\n    serializedVersion: 2\n    m_Bits: 4294967295\n--- !u!114 &148086141\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 148086138}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_UiScaleMode: 1\n  m_ReferencePixelsPerUnit: 100\n  m_ScaleFactor: 1\n  m_ReferenceResolution: {x: 750, y: 1336}\n  m_ScreenMatchMode: 0\n  m_MatchWidthOrHeight: 0\n  m_PhysicalUnit: 3\n  m_FallbackScreenDPI: 96\n  m_DefaultSpriteDPI: 96\n  m_DynamicPixelsPerUnit: 1\n--- !u!223 &148086142\nCanvas:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 148086138}\n  m_Enabled: 1\n  serializedVersion: 3\n  m_RenderMode: 1\n  m_Camera: {fileID: 768640782}\n  m_PlaneDistance: 100\n  m_PixelPerfect: 0\n  m_ReceivesEvents: 1\n  m_OverrideSorting: 0\n  m_OverridePixelPerfect: 0\n  m_SortingBucketNormalizedSize: 0\n  m_AdditionalShaderChannelsFlag: 25\n  m_SortingLayerID: 0\n  m_SortingOrder: 0\n  m_TargetDisplay: 0\n--- !u!224 &148086143\nRectTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 148086138}\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 0, y: 0, z: 0}\n  m_Children:\n  - {fileID: 1211844880}\n  m_Father: {fileID: 0}\n  m_RootOrder: 2\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n  m_AnchorMin: {x: 0, y: 0}\n  m_AnchorMax: {x: 0, y: 0}\n  m_AnchoredPosition: {x: 0, y: 0}\n  m_SizeDelta: {x: 0, y: 0}\n  m_Pivot: {x: 0, y: 0}\n--- !u!1 &203296992\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 203296993}\n  - component: {fileID: 203296995}\n  - component: {fileID: 203296994}\n  m_Layer: 5\n  m_Name: Handle\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!224 &203296993\nRectTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 203296992}\n  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children: []\n  m_Father: {fileID: 2020594374}\n  m_RootOrder: 0\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n  m_AnchorMin: {x: 0, y: 0}\n  m_AnchorMax: {x: 0, y: 0}\n  m_AnchoredPosition: {x: 0, y: 0}\n  m_SizeDelta: {x: 20, y: 20}\n  m_Pivot: {x: 0.5, y: 0.5}\n--- !u!114 &203296994\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 203296992}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Material: {fileID: 0}\n  m_Color: {r: 1, g: 1, b: 1, a: 1}\n  m_RaycastTarget: 1\n  m_Maskable: 1\n  m_OnCullStateChanged:\n    m_PersistentCalls:\n      m_Calls: []\n  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}\n  m_Type: 1\n  m_PreserveAspect: 0\n  m_FillCenter: 1\n  m_FillMethod: 4\n  m_FillAmount: 1\n  m_FillClockwise: 1\n  m_FillOrigin: 0\n  m_UseSpriteMesh: 0\n  m_PixelsPerUnitMultiplier: 1\n--- !u!222 &203296995\nCanvasRenderer:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 203296992}\n  m_CullTransparentMesh: 0\n--- !u!1 &222335923\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 222335924}\n  - component: {fileID: 222335927}\n  - component: {fileID: 222335926}\n  - component: {fileID: 222335925}\n  m_Layer: 5\n  m_Name: Viewport\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!224 &222335924\nRectTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 222335923}\n  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children:\n  - {fileID: 1004805412}\n  m_Father: {fileID: 1211844880}\n  m_RootOrder: 0\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n  m_AnchorMin: {x: 0, y: 0}\n  m_AnchorMax: {x: 1, y: 1}\n  m_AnchoredPosition: {x: 0, y: 0}\n  m_SizeDelta: {x: -17, y: 0}\n  m_Pivot: {x: 0, y: 1}\n--- !u!114 &222335925\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 222335923}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_ShowMaskGraphic: 0\n--- !u!114 &222335926\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 222335923}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Material: {fileID: 0}\n  m_Color: {r: 1, g: 1, b: 1, a: 1}\n  m_RaycastTarget: 1\n  m_Maskable: 1\n  m_OnCullStateChanged:\n    m_PersistentCalls:\n      m_Calls: []\n  m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0}\n  m_Type: 1\n  m_PreserveAspect: 0\n  m_FillCenter: 1\n  m_FillMethod: 4\n  m_FillAmount: 1\n  m_FillClockwise: 1\n  m_FillOrigin: 0\n  m_UseSpriteMesh: 0\n  m_PixelsPerUnitMultiplier: 1\n--- !u!222 &222335927\nCanvasRenderer:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 222335923}\n  m_CullTransparentMesh: 0\n--- !u!1 &768640780\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 768640783}\n  - component: {fileID: 768640782}\n  - component: {fileID: 768640781}\n  m_Layer: 0\n  m_Name: Main Camera\n  m_TagString: MainCamera\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!81 &768640781\nAudioListener:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 768640780}\n  m_Enabled: 1\n--- !u!20 &768640782\nCamera:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 768640780}\n  m_Enabled: 1\n  serializedVersion: 2\n  m_ClearFlags: 2\n  m_BackGroundColor: {r: 0.9150943, g: 0.9150943, b: 0.9150943, a: 0}\n  m_projectionMatrixMode: 1\n  m_GateFitMode: 2\n  m_FOVAxisMode: 0\n  m_SensorSize: {x: 36, y: 24}\n  m_LensShift: {x: 0, y: 0}\n  m_FocalLength: 50\n  m_NormalizedViewPortRect:\n    serializedVersion: 2\n    x: 0\n    y: 0\n    width: 1\n    height: 1\n  near clip plane: 0.3\n  far clip plane: 1000\n  field of view: 60\n  orthographic: 0\n  orthographic size: 5\n  m_Depth: -1\n  m_CullingMask:\n    serializedVersion: 2\n    m_Bits: 4294967295\n  m_RenderingPath: -1\n  m_TargetTexture: {fileID: 0}\n  m_TargetDisplay: 0\n  m_TargetEye: 3\n  m_HDR: 1\n  m_AllowMSAA: 1\n  m_AllowDynamicResolution: 0\n  m_ForceIntoRT: 0\n  m_OcclusionCulling: 1\n  m_StereoConvergence: 10\n  m_StereoSeparation: 0.022\n--- !u!4 &768640783\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 768640780}\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 1, z: -10}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children: []\n  m_Father: {fileID: 0}\n  m_RootOrder: 0\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n--- !u!1 &1004805411\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 1004805412}\n  m_Layer: 5\n  m_Name: Content\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!224 &1004805412\nRectTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1004805411}\n  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children:\n  - {fileID: 1539422975}\n  m_Father: {fileID: 222335924}\n  m_RootOrder: 0\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n  m_AnchorMin: {x: 0, y: 1}\n  m_AnchorMax: {x: 1, y: 1}\n  m_AnchoredPosition: {x: 0, y: 0.0006085058}\n  m_SizeDelta: {x: 0, y: 426.6}\n  m_Pivot: {x: 0, y: 1}\n--- !u!1 &1027899955\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 1027899956}\n  - component: {fileID: 1027899959}\n  - component: {fileID: 1027899958}\n  - component: {fileID: 1027899957}\n  m_Layer: 5\n  m_Name: Scrollbar Vertical\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!224 &1027899956\nRectTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1027899955}\n  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children:\n  - {fileID: 2020594374}\n  m_Father: {fileID: 1211844880}\n  m_RootOrder: 2\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n  m_AnchorMin: {x: 1, y: 0}\n  m_AnchorMax: {x: 1, y: 1}\n  m_AnchoredPosition: {x: 0, y: 0}\n  m_SizeDelta: {x: 20, y: -17}\n  m_Pivot: {x: 1, y: 1}\n--- !u!114 &1027899957\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1027899955}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Navigation:\n    m_Mode: 3\n    m_SelectOnUp: {fileID: 0}\n    m_SelectOnDown: {fileID: 0}\n    m_SelectOnLeft: {fileID: 0}\n    m_SelectOnRight: {fileID: 0}\n  m_Transition: 1\n  m_Colors:\n    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}\n    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}\n    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}\n    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}\n    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}\n    m_ColorMultiplier: 1\n    m_FadeDuration: 0.1\n  m_SpriteState:\n    m_HighlightedSprite: {fileID: 0}\n    m_PressedSprite: {fileID: 0}\n    m_SelectedSprite: {fileID: 0}\n    m_DisabledSprite: {fileID: 0}\n  m_AnimationTriggers:\n    m_NormalTrigger: Normal\n    m_HighlightedTrigger: Highlighted\n    m_PressedTrigger: Pressed\n    m_SelectedTrigger: Selected\n    m_DisabledTrigger: Disabled\n  m_Interactable: 1\n  m_TargetGraphic: {fileID: 203296994}\n  m_HandleRect: {fileID: 203296993}\n  m_Direction: 2\n  m_Value: 0.99987084\n  m_Size: 0.98892397\n  m_NumberOfSteps: 0\n  m_OnValueChanged:\n    m_PersistentCalls:\n      m_Calls: []\n--- !u!114 &1027899958\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1027899955}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Material: {fileID: 0}\n  m_Color: {r: 1, g: 1, b: 1, a: 1}\n  m_RaycastTarget: 1\n  m_Maskable: 1\n  m_OnCullStateChanged:\n    m_PersistentCalls:\n      m_Calls: []\n  m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}\n  m_Type: 1\n  m_PreserveAspect: 0\n  m_FillCenter: 1\n  m_FillMethod: 4\n  m_FillAmount: 1\n  m_FillClockwise: 1\n  m_FillOrigin: 0\n  m_UseSpriteMesh: 0\n  m_PixelsPerUnitMultiplier: 1\n--- !u!222 &1027899959\nCanvasRenderer:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1027899955}\n  m_CullTransparentMesh: 0\n--- !u!1 &1056800079\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 1056800080}\n  m_Layer: 5\n  m_Name: Sliding Area\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!224 &1056800080\nRectTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1056800079}\n  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children:\n  - {fileID: 1850097301}\n  m_Father: {fileID: 1083025691}\n  m_RootOrder: 0\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n  m_AnchorMin: {x: 0, y: 0}\n  m_AnchorMax: {x: 1, y: 1}\n  m_AnchoredPosition: {x: 0, y: 0}\n  m_SizeDelta: {x: -20, y: -20}\n  m_Pivot: {x: 0.5, y: 0.5}\n--- !u!1 &1083025690\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 1083025691}\n  - component: {fileID: 1083025694}\n  - component: {fileID: 1083025693}\n  - component: {fileID: 1083025692}\n  m_Layer: 5\n  m_Name: Scrollbar Horizontal\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 0\n--- !u!224 &1083025691\nRectTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1083025690}\n  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children:\n  - {fileID: 1056800080}\n  m_Father: {fileID: 1211844880}\n  m_RootOrder: 1\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n  m_AnchorMin: {x: 0, y: 0}\n  m_AnchorMax: {x: 1, y: 0}\n  m_AnchoredPosition: {x: 0, y: 0}\n  m_SizeDelta: {x: -17, y: 20}\n  m_Pivot: {x: 0, y: 0}\n--- !u!114 &1083025692\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1083025690}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Navigation:\n    m_Mode: 3\n    m_SelectOnUp: {fileID: 0}\n    m_SelectOnDown: {fileID: 0}\n    m_SelectOnLeft: {fileID: 0}\n    m_SelectOnRight: {fileID: 0}\n  m_Transition: 1\n  m_Colors:\n    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}\n    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}\n    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}\n    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}\n    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}\n    m_ColorMultiplier: 1\n    m_FadeDuration: 0.1\n  m_SpriteState:\n    m_HighlightedSprite: {fileID: 0}\n    m_PressedSprite: {fileID: 0}\n    m_SelectedSprite: {fileID: 0}\n    m_DisabledSprite: {fileID: 0}\n  m_AnimationTriggers:\n    m_NormalTrigger: Normal\n    m_HighlightedTrigger: Highlighted\n    m_PressedTrigger: Pressed\n    m_SelectedTrigger: Selected\n    m_DisabledTrigger: Disabled\n  m_Interactable: 1\n  m_TargetGraphic: {fileID: 1850097302}\n  m_HandleRect: {fileID: 1850097301}\n  m_Direction: 0\n  m_Value: 1\n  m_Size: 1\n  m_NumberOfSteps: 0\n  m_OnValueChanged:\n    m_PersistentCalls:\n      m_Calls: []\n--- !u!114 &1083025693\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1083025690}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Material: {fileID: 0}\n  m_Color: {r: 1, g: 1, b: 1, a: 1}\n  m_RaycastTarget: 1\n  m_Maskable: 1\n  m_OnCullStateChanged:\n    m_PersistentCalls:\n      m_Calls: []\n  m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}\n  m_Type: 1\n  m_PreserveAspect: 0\n  m_FillCenter: 1\n  m_FillMethod: 4\n  m_FillAmount: 1\n  m_FillClockwise: 1\n  m_FillOrigin: 0\n  m_UseSpriteMesh: 0\n  m_PixelsPerUnitMultiplier: 1\n--- !u!222 &1083025694\nCanvasRenderer:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1083025690}\n  m_CullTransparentMesh: 0\n--- !u!1 &1211844879\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 1211844880}\n  - component: {fileID: 1211844883}\n  - component: {fileID: 1211844882}\n  - component: {fileID: 1211844881}\n  m_Layer: 5\n  m_Name: Scroll View\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!224 &1211844880\nRectTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1211844879}\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children:\n  - {fileID: 222335924}\n  - {fileID: 1083025691}\n  - {fileID: 1027899956}\n  m_Father: {fileID: 148086143}\n  m_RootOrder: 0\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n  m_AnchorMin: {x: 0, y: 0}\n  m_AnchorMax: {x: 1, y: 1}\n  m_AnchoredPosition: {x: 0, y: 0}\n  m_SizeDelta: {x: 0, y: 0}\n  m_Pivot: {x: 0.5, y: 0.5}\n--- !u!114 &1211844881\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1211844879}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Content: {fileID: 1004805412}\n  m_Horizontal: 0\n  m_Vertical: 1\n  m_MovementType: 1\n  m_Elasticity: 0.1\n  m_Inertia: 1\n  m_DecelerationRate: 0.135\n  m_ScrollSensitivity: 1\n  m_Viewport: {fileID: 222335924}\n  m_HorizontalScrollbar: {fileID: 1083025692}\n  m_VerticalScrollbar: {fileID: 1027899957}\n  m_HorizontalScrollbarVisibility: 0\n  m_VerticalScrollbarVisibility: 0\n  m_HorizontalScrollbarSpacing: -3\n  m_VerticalScrollbarSpacing: -3\n  m_OnValueChanged:\n    m_PersistentCalls:\n      m_Calls: []\n--- !u!114 &1211844882\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1211844879}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Material: {fileID: 0}\n  m_Color: {r: 1, g: 1, b: 1, a: 0.392}\n  m_RaycastTarget: 1\n  m_Maskable: 1\n  m_OnCullStateChanged:\n    m_PersistentCalls:\n      m_Calls: []\n  m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}\n  m_Type: 1\n  m_PreserveAspect: 0\n  m_FillCenter: 1\n  m_FillMethod: 4\n  m_FillAmount: 1\n  m_FillClockwise: 1\n  m_FillOrigin: 0\n  m_UseSpriteMesh: 0\n  m_PixelsPerUnitMultiplier: 1\n--- !u!222 &1211844883\nCanvasRenderer:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1211844879}\n  m_CullTransparentMesh: 0\n--- !u!1 &1214493610\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 1214493612}\n  - component: {fileID: 1214493611}\n  m_Layer: 0\n  m_Name: Directional Light\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!108 &1214493611\nLight:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1214493610}\n  m_Enabled: 1\n  serializedVersion: 10\n  m_Type: 1\n  m_Shape: 0\n  m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}\n  m_Intensity: 1\n  m_Range: 10\n  m_SpotAngle: 30\n  m_InnerSpotAngle: 21.80208\n  m_CookieSize: 10\n  m_Shadows:\n    m_Type: 2\n    m_Resolution: -1\n    m_CustomResolution: -1\n    m_Strength: 1\n    m_Bias: 0.05\n    m_NormalBias: 0.4\n    m_NearPlane: 0.2\n    m_CullingMatrixOverride:\n      e00: 1\n      e01: 0\n      e02: 0\n      e03: 0\n      e10: 0\n      e11: 1\n      e12: 0\n      e13: 0\n      e20: 0\n      e21: 0\n      e22: 1\n      e23: 0\n      e30: 0\n      e31: 0\n      e32: 0\n      e33: 1\n    m_UseCullingMatrixOverride: 0\n  m_Cookie: {fileID: 0}\n  m_DrawHalo: 0\n  m_Flare: {fileID: 0}\n  m_RenderMode: 0\n  m_CullingMask:\n    serializedVersion: 2\n    m_Bits: 4294967295\n  m_RenderingLayerMask: 1\n  m_Lightmapping: 4\n  m_LightShadowCasterMode: 0\n  m_AreaSize: {x: 1, y: 1}\n  m_BounceIntensity: 1\n  m_ColorTemperature: 6570\n  m_UseColorTemperature: 0\n  m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}\n  m_UseBoundingSphereOverride: 0\n  m_ShadowRadius: 0\n  m_ShadowAngle: 0\n--- !u!4 &1214493612\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1214493610}\n  m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}\n  m_LocalPosition: {x: 0, y: 3, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children: []\n  m_Father: {fileID: 0}\n  m_RootOrder: 1\n  m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}\n--- !u!1 &1539422972\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 1539422975}\n  - component: {fileID: 1539422977}\n  - component: {fileID: 1539422976}\n  - component: {fileID: 1539422974}\n  - component: {fileID: 1539422973}\n  - component: {fileID: 1539422978}\n  m_Layer: 5\n  m_Name: Carousel View\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!114 &1539422973\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1539422972}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 7ac5fc66c6bf74808a1fead45d9b1b43, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  cellInterval: 0.2\n  scrollOffset: 0.5\n  loop: 1\n  cellContainer: {fileID: 1539422975}\n  _scroller: {fileID: 1539422974}\n  _cellPrefab: {fileID: 8968080924771193172, guid: 07f957860e6fb4856bfb31bb7dbb5541,\n    type: 3}\n  _cellSize: {x: 600, y: 300}\n  _cellSpacing: 30\n  _snapAnimationDuration: 0.25\n  _snapAnimationType: 17\n  _autoScrollingEnabled: 1\n  _autoScrollingIntervalSec: 3\n  _inverseAutoScrollingDirection: 0\n  _progressView: {fileID: 0}\n--- !u!114 &1539422974\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1539422972}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 93e8ff52edf1e4551a9383367d899f3d, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  viewport: {fileID: 1539422975}\n  scrollDirection: 1\n  movementType: 0\n  elasticity: 0.1\n  scrollSensitivity: 1\n  inertia: 0\n  decelerationRate: 0.03\n  snap:\n    Enable: 0\n    VelocityThreshold: 0.5\n    Duration: 0.3\n    Easing: 24\n  draggable: 1\n  scrollbar: {fileID: 0}\n--- !u!224 &1539422975\nRectTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1539422972}\n  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children: []\n  m_Father: {fileID: 1004805412}\n  m_RootOrder: 0\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n  m_AnchorMin: {x: 0, y: 1}\n  m_AnchorMax: {x: 0, y: 1}\n  m_AnchoredPosition: {x: 374.99997, y: -217.98}\n  m_SizeDelta: {x: 750, y: 300}\n  m_Pivot: {x: 0.5, y: 0.5}\n--- !u!114 &1539422976\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1539422972}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Material: {fileID: 0}\n  m_Color: {r: 1, g: 1, b: 1, a: 0}\n  m_RaycastTarget: 1\n  m_Maskable: 1\n  m_OnCullStateChanged:\n    m_PersistentCalls:\n      m_Calls: []\n  m_Sprite: {fileID: 0}\n  m_Type: 1\n  m_PreserveAspect: 0\n  m_FillCenter: 1\n  m_FillMethod: 4\n  m_FillAmount: 1\n  m_FillClockwise: 1\n  m_FillOrigin: 0\n  m_UseSpriteMesh: 0\n  m_PixelsPerUnitMultiplier: 1\n--- !u!222 &1539422977\nCanvasRenderer:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1539422972}\n  m_CullTransparentMesh: 0\n--- !u!114 &1539422978\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1539422972}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 85aedb7fe77344521bcb21f230abd15a, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n--- !u!1 &1553209351\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 1553209354}\n  - component: {fileID: 1553209353}\n  - component: {fileID: 1553209352}\n  m_Layer: 0\n  m_Name: EventSystem\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!114 &1553209352\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1553209351}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_HorizontalAxis: Horizontal\n  m_VerticalAxis: Vertical\n  m_SubmitButton: Submit\n  m_CancelButton: Cancel\n  m_InputActionsPerSecond: 10\n  m_RepeatDelay: 0.5\n  m_ForceModuleActive: 0\n--- !u!114 &1553209353\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1553209351}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_FirstSelected: {fileID: 0}\n  m_sendNavigationEvents: 1\n  m_DragThreshold: 10\n--- !u!4 &1553209354\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1553209351}\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children: []\n  m_Father: {fileID: 0}\n  m_RootOrder: 3\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n--- !u!1 &1850097300\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 1850097301}\n  - component: {fileID: 1850097303}\n  - component: {fileID: 1850097302}\n  m_Layer: 5\n  m_Name: Handle\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!224 &1850097301\nRectTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1850097300}\n  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children: []\n  m_Father: {fileID: 1056800080}\n  m_RootOrder: 0\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n  m_AnchorMin: {x: 0, y: 0}\n  m_AnchorMax: {x: 1, y: 1}\n  m_AnchoredPosition: {x: 0, y: 0}\n  m_SizeDelta: {x: 20, y: 20}\n  m_Pivot: {x: 0.5, y: 0.5}\n--- !u!114 &1850097302\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1850097300}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Material: {fileID: 0}\n  m_Color: {r: 1, g: 1, b: 1, a: 1}\n  m_RaycastTarget: 1\n  m_Maskable: 1\n  m_OnCullStateChanged:\n    m_PersistentCalls:\n      m_Calls: []\n  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}\n  m_Type: 1\n  m_PreserveAspect: 0\n  m_FillCenter: 1\n  m_FillMethod: 4\n  m_FillAmount: 1\n  m_FillClockwise: 1\n  m_FillOrigin: 0\n  m_UseSpriteMesh: 0\n  m_PixelsPerUnitMultiplier: 1\n--- !u!222 &1850097303\nCanvasRenderer:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1850097300}\n  m_CullTransparentMesh: 0\n--- !u!1 &2020594373\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 2020594374}\n  m_Layer: 5\n  m_Name: Sliding Area\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!224 &2020594374\nRectTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 2020594373}\n  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children:\n  - {fileID: 203296993}\n  m_Father: {fileID: 1027899956}\n  m_RootOrder: 0\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n  m_AnchorMin: {x: 0, y: 0}\n  m_AnchorMax: {x: 1, y: 1}\n  m_AnchoredPosition: {x: 0, y: 0}\n  m_SizeDelta: {x: -20, y: -20}\n  m_Pivot: {x: 0.5, y: 0.5}\n"
  },
  {
    "path": "Assets/Demo/Scenes/WithScrollViewDemo.unity.meta",
    "content": "fileFormatVersion: 2\nguid: 8b680c169da4149b1a297879c8f59137\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Demo/Scenes.meta",
    "content": "fileFormatVersion: 2\nguid: 8cbde3d5203604c709c287e48bf8c87a\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Demo/Scripts/Demo.cs",
    "content": "﻿using System.Linq;\nusing UnityEngine;\nusing UnityEngine.UI;\n\nnamespace Demo.Scripts\n{\n    public class Demo : MonoBehaviour\n    {\n        [SerializeField] private DemoCarouselView _carouselView;\n        [SerializeField] [Range(1, 3)] private int _bannerCount = 3;\n        [SerializeField] private Button _setupButton;\n        [SerializeField] private Button _cleanupButton;\n\n        private bool _isSetup;\n\n        private void Start()\n        {\n            _setupButton.onClick.AddListener(Setup);\n            _cleanupButton.onClick.AddListener(Cleanup);\n\n            Setup();\n        }\n\n        private void Setup()\n        {\n            if (_isSetup)\n                return;\n\n            var items = Enumerable.Range(0, _bannerCount)\n                .Select(i =>\n                {\n                    var spriteResourceKey = $\"tex_demo_banner_{i:D2}\";\n                    var text = $\"Demo Banner {i:D2}\";\n                    return new DemoData(spriteResourceKey, text, () => Debug.Log($\"Clicked: {text}\"));\n                })\n                .ToArray();\n            _carouselView.Setup(items);\n            _isSetup = true;\n        }\n\n        private void Cleanup()\n        {\n            if (!_isSetup)\n                return;\n\n            _carouselView.Cleanup();\n            _isSetup = false;\n        }\n    }\n}\n"
  },
  {
    "path": "Assets/Demo/Scripts/Demo.cs.meta",
    "content": "fileFormatVersion: 2\nguid: c81471d0f53e947b98e24b95bf6550e3\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences: []\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Demo/Scripts/DemoCarouselCell.cs",
    "content": "﻿using FancyCarouselView.Runtime.Scripts;\nusing UnityEngine;\nusing UnityEngine.UI;\n\nnamespace Demo.Scripts\n{\n    public class DemoCarouselCell : CarouselCell<DemoData, DemoCarouselCell>\n    {\n        [SerializeField] private Image _image;\n        [SerializeField] private Text _text;\n        [SerializeField] private Button _button;\n\n        private DemoData _data;\n\n        protected override void Refresh(DemoData data)\n        {\n            _data = data;\n            _image.sprite = Resources.Load<Sprite>(data.SpriteResourceKey);\n            _text.text = data.Text;\n        }\n\n        protected override void OnVisibilityChanged(bool visibility)\n        {\n            if (visibility)\n                _button.onClick.AddListener(OnClick);\n            else\n                _button.onClick.RemoveListener(OnClick);\n        }\n\n        private void OnClick()\n        {\n            _data?.Clicked?.Invoke();\n        }\n    }\n}\n"
  },
  {
    "path": "Assets/Demo/Scripts/DemoCarouselCell.cs.meta",
    "content": "fileFormatVersion: 2\nguid: 28a5bb785df764c9396f84b117e1f93f\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences: []\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Demo/Scripts/DemoCarouselView.cs",
    "content": "﻿using FancyCarouselView.Runtime.Scripts;\n\nnamespace Demo.Scripts\n{\n    public class DemoCarouselView : CarouselView<DemoData, DemoCarouselCell>\n    {\n    }\n}\n"
  },
  {
    "path": "Assets/Demo/Scripts/DemoCarouselView.cs.meta",
    "content": "fileFormatVersion: 2\nguid: 7ac5fc66c6bf74808a1fead45d9b1b43\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences: []\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Demo/Scripts/DemoData.cs",
    "content": "﻿using System;\n\nnamespace Demo.Scripts\n{\n    public class DemoData\n    {\n        public string SpriteResourceKey { get; }\n        public string Text { get; }\n        public Action Clicked { get; }\n\n        public DemoData(string spriteResourceKey, string text, Action clicked)\n        {\n            SpriteResourceKey = spriteResourceKey;\n            Text = text;\n            Clicked = clicked;\n        }\n    }\n}\n"
  },
  {
    "path": "Assets/Demo/Scripts/DemoData.cs.meta",
    "content": "fileFormatVersion: 2\nguid: 8cb719b15a25c4e08bcee7f68e07877c\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences: []\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Demo/Scripts.meta",
    "content": "fileFormatVersion: 2\nguid: 4bf9b07effb3c451aabb4d7a11e9476f\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/Demo.meta",
    "content": "fileFormatVersion: 2\nguid: 998c2781c67bd4fc48996faec98cb8ca\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Editor/FancyCarouselView.Editor.asmdef",
    "content": "{\n    \"name\": \"FancyCarouselView.Editor\",\n    \"references\": [\n        \"GUID:59f6770f7492c42ff827a64ac010ac49\",\n        \"GUID:310eb4609be1c41459e5ebb1bde5ac5a\",\n        \"GUID:508cd0edd40d740d38308988898213a3\"\n    ],\n    \"includePlatforms\": [\n        \"Editor\"\n    ],\n    \"excludePlatforms\": [],\n    \"allowUnsafeCode\": false,\n    \"overrideReferences\": false,\n    \"precompiledReferences\": [],\n    \"autoReferenced\": true,\n    \"defineConstraints\": [],\n    \"versionDefines\": [],\n    \"noEngineReferences\": false\n}"
  },
  {
    "path": "Assets/FancyCarouselView/Editor/FancyCarouselView.Editor.asmdef.meta",
    "content": "fileFormatVersion: 2\nguid: 4237a468895ff4622b504d121475cdfa\nAssemblyDefinitionImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Editor/Scripts/CarouselScrollerEditor.cs",
    "content": "﻿using FancyCarouselView.Runtime.Scripts;\nusing UnityEditor;\nusing UnityEngine;\n\nnamespace FancyCarouselView.Editor.Scripts\n{\n    /// <summary>\n    ///     Custom editor for CarouselScroller\n    /// </summary>\n    [CustomEditor(typeof(CarouselScroller))]\n    public class CarouselScrollerEditor : UnityEditor.Editor\n    {\n        public override void OnInspectorGUI()\n        {\n            var carouselScroller = (CarouselScroller)target;\n            serializedObject.Update();\n\n            var viewportProp = serializedObject.FindProperty(\"viewport\");\n            var scrollSensitivityProp = serializedObject.FindProperty(\"scrollSensitivity\");\n            var inertiaProp = serializedObject.FindProperty(\"inertia\");\n            var scrollbarProp = serializedObject.FindProperty(\"scrollbar\");\n            var snapEnableProp = serializedObject.FindProperty(\"snap.Enable\");\n\n            // NOTE: The following parameters are controlled by CarouselViewEditor, so not do anything here.\n            // scrollDirection, movementType, elasticity, draggable\n\n            if (viewportProp.objectReferenceValue == null)\n            {\n                viewportProp.objectReferenceValue = (RectTransform)carouselScroller.transform;\n            }\n\n            inertiaProp.boolValue = false;\n            snapEnableProp.boolValue = false;\n            scrollSensitivityProp.floatValue = 1.0f;\n            scrollbarProp.objectReferenceValue = null;\n\n            serializedObject.ApplyModifiedProperties();\n        }\n    }\n}"
  },
  {
    "path": "Assets/FancyCarouselView/Editor/Scripts/CarouselScrollerEditor.cs.meta",
    "content": "fileFormatVersion: 2\nguid: 03d5e2634b8494c2981fd527ae259f7c\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences: []\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Editor/Scripts/CarouselViewEditor.cs",
    "content": "﻿using System;\nusing FancyCarouselView.Runtime.Scripts;\nusing FancyScrollView;\nusing UnityEditor;\nusing UnityEngine;\n\nnamespace FancyCarouselView.Editor.Scripts\n{\n    /// <summary>\n    ///     Custom editor for the CarouselView.\n    /// </summary>\n    [CustomEditor(typeof(CarouselView<,>), true)]\n    public class CarouselViewEditor : UnityEditor.Editor\n    {\n        public override void OnInspectorGUI()\n        {\n            var targetBehaviour = (MonoBehaviour)target;\n            var carouselScroller = targetBehaviour.gameObject.GetComponent<CarouselScroller>();\n            serializedObject.Update();\n            var carouselScrollerSo = new SerializedObject(carouselScroller);\n\n            var offsetProp = serializedObject.FindProperty(\"scrollOffset\");\n            var loopProp = serializedObject.FindProperty(\"loop\");\n            var cellContainerProp = serializedObject.FindProperty(\"cellContainer\");\n            var scrollerProp = serializedObject.FindProperty(\"_scroller\");\n            var cellPrefabProp = serializedObject.FindProperty(\"_cellPrefab\");\n            var cellSizeProp = serializedObject.FindProperty(\"_cellSize\");\n            var cellSpacingProp = serializedObject.FindProperty(\"_cellSpacing\");\n            var snapAnimationDurationProp = serializedObject.FindProperty(\"_snapAnimationDuration\");\n            var snapAnimationTypeProp = serializedObject.FindProperty(\"_snapAnimationType\");\n            var autoScrollingProp = serializedObject.FindProperty(\"_autoScrollingEnabled\");\n            var autoScrollingIntervalSecProp = serializedObject.FindProperty(\"_autoScrollingIntervalSec\");\n            var inverseAutoScrollingDirectionProp = serializedObject.FindProperty(\"_inverseAutoScrollingDirection\");\n            var progressView = serializedObject.FindProperty(\"_progressView\");\n            var progressViewInteraction = serializedObject.FindProperty(\"_progressViewInteraction\");\n            var csMovementTypeProp = carouselScrollerSo.FindProperty(\"movementType\");\n            var csScrollDirectionProp = carouselScrollerSo.FindProperty(\"scrollDirection\");\n            var csDraggableProp = carouselScrollerSo.FindProperty(\"draggable\");\n\n            // NOTE: CellInterval is calculated at runtime, so hide it from the Inspector.\n\n            offsetProp.floatValue = 0.5f;\n            scrollerProp.objectReferenceValue = carouselScroller;\n\n            EditorGUILayout.PropertyField(cellContainerProp);\n            EditorGUILayout.PropertyField(cellPrefabProp);\n            EditorGUILayout.PropertyField(cellSizeProp);\n            EditorGUILayout.PropertyField(cellSpacingProp);\n            EditorGUILayout.PropertyField(snapAnimationDurationProp);\n            EditorGUILayout.PropertyField(snapAnimationTypeProp);\n            EditorGUILayout.PropertyField(autoScrollingProp, new GUIContent(\"Auto Scrolling\"));\n            if (autoScrollingProp.boolValue)\n            {\n                EditorGUI.indentLevel++;\n                EditorGUILayout.PropertyField(autoScrollingIntervalSecProp, new GUIContent(\"Interval\"));\n                EditorGUILayout.PropertyField(inverseAutoScrollingDirectionProp, new GUIContent(\"Inverse Direction\"));\n                EditorGUI.indentLevel--;\n            }\n\n            EditorGUILayout.PropertyField(csScrollDirectionProp);\n\n            EditorGUILayout.PropertyField(loopProp);\n            var movementType = (MovementType)csMovementTypeProp.intValue;\n            if (loopProp.boolValue)\n            {\n                // If loop is enabled, force the movementType to Unrestricted. \n                csMovementTypeProp.intValue = (int)MovementType.Unrestricted;\n            }\n            else\n            {\n                if (movementType == MovementType.Unrestricted)\n                {\n                    // If loop is disabled and movementType is Unrestricted, force the movementType to Elastic for now.\n                    csMovementTypeProp.intValue = (int)MovementType.Elastic;\n                    movementType = (MovementType)csMovementTypeProp.intValue;\n                }\n\n                using (new EditorGUI.IndentLevelScope())\n                {\n                    var endMovementType = (EndMovementType)movementType;\n                    csMovementTypeProp.intValue =\n                        Convert.ToInt32(EditorGUILayout.EnumPopup(\"Movement Type\", endMovementType));\n                }\n            }\n\n            EditorGUILayout.PropertyField(csDraggableProp);\n            EditorGUILayout.PropertyField(progressView);\n            using (new EditorGUI.IndentLevelScope())\n            {\n                EditorGUILayout.PropertyField(progressViewInteraction, new GUIContent(\"Clickable\"));\n            }\n\n            carouselScrollerSo.ApplyModifiedProperties();\n            carouselScrollerSo.Dispose();\n            serializedObject.ApplyModifiedProperties();\n        }\n    }\n}\n"
  },
  {
    "path": "Assets/FancyCarouselView/Editor/Scripts/CarouselViewEditor.cs.meta",
    "content": "fileFormatVersion: 2\nguid: e5955c9c414044577b12dda85dda441d\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences: []\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Editor/Scripts/DotCarouselProgressViewEditor.cs",
    "content": "﻿using FancyCarouselView.Runtime.Scripts;\nusing UnityEditor;\nusing UnityEngine.UI;\n\nnamespace FancyCarouselView.Editor.Scripts\n{\n    [CustomEditor(typeof(DotCarouselProgressView))]\n    public class DotCarouselProgressViewEditor : UnityEditor.Editor\n    {\n        public override void OnInspectorGUI()\n        {\n            var dotCarouselProgressView = (DotCarouselProgressView)target;\n            base.OnInspectorGUI();\n\n            if (dotCarouselProgressView.GetComponent<HorizontalLayoutGroup>() == null &&\n                dotCarouselProgressView.GetComponent<VerticalLayoutGroup>() == null)\n            {\n                var message =\n                    $\"{nameof(DotCarouselProgressView)} requires {nameof(HorizontalLayoutGroup)} or {nameof(VerticalLayoutGroup)}.\";\n                EditorGUILayout.HelpBox(message, MessageType.Error);\n            }\n        }\n    }\n}"
  },
  {
    "path": "Assets/FancyCarouselView/Editor/Scripts/DotCarouselProgressViewEditor.cs.meta",
    "content": "fileFormatVersion: 2\nguid: f7722779df1ef4b8c9274060eee5803e\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences: []\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Editor/Scripts.meta",
    "content": "fileFormatVersion: 2\nguid: a0f8946a9e14e4141932db7384e8393c\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Editor.meta",
    "content": "fileFormatVersion: 2\nguid: f2c2e8f402e354b5a83d620304a3518c\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/FancyCarouselView.asmdef",
    "content": "{\n    \"name\": \"FancyCarouselView\",\n    \"references\": [\n        \"GUID:59f6770f7492c42ff827a64ac010ac49\"\n    ],\n    \"includePlatforms\": [],\n    \"excludePlatforms\": [],\n    \"allowUnsafeCode\": false,\n    \"overrideReferences\": false,\n    \"precompiledReferences\": [],\n    \"autoReferenced\": true,\n    \"defineConstraints\": [],\n    \"versionDefines\": [],\n    \"noEngineReferences\": false\n}"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/FancyCarouselView.asmdef.meta",
    "content": "fileFormatVersion: 2\nguid: 508cd0edd40d740d38308988898213a3\nAssemblyDefinitionImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Prefabs/pfb_default_carousel_progress_element.prefab",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1 &4104172994114863044\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 3087972215184282101}\n  - component: {fileID: 7864125402320758684}\n  - component: {fileID: 5558453293591899642}\n  - component: {fileID: 8322769320186498922}\n  - component: {fileID: -4403850070855006380}\n  m_Layer: 5\n  m_Name: pfb_default_carousel_progress_element\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!224 &3087972215184282101\nRectTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 4104172994114863044}\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children: []\n  m_Father: {fileID: 0}\n  m_RootOrder: 0\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n  m_AnchorMin: {x: 0, y: 0}\n  m_AnchorMax: {x: 0, y: 0}\n  m_AnchoredPosition: {x: 0, y: 0}\n  m_SizeDelta: {x: 20, y: 20}\n  m_Pivot: {x: 0.5, y: 0.5}\n--- !u!222 &7864125402320758684\nCanvasRenderer:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 4104172994114863044}\n  m_CullTransparentMesh: 0\n--- !u!114 &5558453293591899642\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 4104172994114863044}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Material: {fileID: 0}\n  m_Color: {r: 1, g: 1, b: 1, a: 1}\n  m_RaycastTarget: 1\n  m_Maskable: 1\n  m_OnCullStateChanged:\n    m_PersistentCalls:\n      m_Calls: []\n  m_Sprite: {fileID: 21300000, guid: 017ef9d77d979469382c91c9fa2a9980, type: 3}\n  m_Type: 0\n  m_PreserveAspect: 0\n  m_FillCenter: 1\n  m_FillMethod: 4\n  m_FillAmount: 1\n  m_FillClockwise: 1\n  m_FillOrigin: 0\n  m_UseSpriteMesh: 0\n  m_PixelsPerUnitMultiplier: 1\n--- !u!114 &8322769320186498922\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 4104172994114863044}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 94de8ebe798ee47fcab93af25a89c863, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  _image: {fileID: 5558453293591899642}\n  _activeColor: {r: 0, g: 0, b: 0, a: 1}\n  _deactiveColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}\n  _button: {fileID: -4403850070855006380}\n--- !u!114 &-4403850070855006380\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 4104172994114863044}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Navigation:\n    m_Mode: 3\n    m_SelectOnUp: {fileID: 0}\n    m_SelectOnDown: {fileID: 0}\n    m_SelectOnLeft: {fileID: 0}\n    m_SelectOnRight: {fileID: 0}\n  m_Transition: 0\n  m_Colors:\n    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}\n    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}\n    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}\n    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}\n    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}\n    m_ColorMultiplier: 1\n    m_FadeDuration: 0.1\n  m_SpriteState:\n    m_HighlightedSprite: {fileID: 0}\n    m_PressedSprite: {fileID: 0}\n    m_SelectedSprite: {fileID: 0}\n    m_DisabledSprite: {fileID: 0}\n  m_AnimationTriggers:\n    m_NormalTrigger: Normal\n    m_HighlightedTrigger: Highlighted\n    m_PressedTrigger: Pressed\n    m_SelectedTrigger: Selected\n    m_DisabledTrigger: Disabled\n  m_Interactable: 1\n  m_TargetGraphic: {fileID: 5558453293591899642}\n  m_OnClick:\n    m_PersistentCalls:\n      m_Calls: []\n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Prefabs/pfb_default_carousel_progress_element.prefab.meta",
    "content": "fileFormatVersion: 2\nguid: 2676e288b8c1b44bdb3aeb4168f32a2c\nPrefabImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Prefabs/pfb_default_carousel_progress_view.prefab",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1 &5609355829170890581\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 5609355829170890578}\n  - component: {fileID: 5609355829170890579}\n  - component: {fileID: 5609355829170890576}\n  m_Layer: 5\n  m_Name: Carousel Progress View\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!224 &5609355829170890578\nRectTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 5609355829170890581}\n  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_Children: []\n  m_Father: {fileID: 0}\n  m_RootOrder: 0\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n  m_AnchorMin: {x: 0.5, y: 0.5}\n  m_AnchorMax: {x: 0.5, y: 0.5}\n  m_AnchoredPosition: {x: 0, y: 0}\n  m_SizeDelta: {x: 750, y: 30}\n  m_Pivot: {x: 0.5, y: 0}\n--- !u!114 &5609355829170890579\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 5609355829170890581}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: d1686675fc52e4c6da26d2cd3ea79921, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  progressElementPrefab: {fileID: 8322769320186498922, guid: 2676e288b8c1b44bdb3aeb4168f32a2c,\n    type: 3}\n--- !u!114 &5609355829170890576\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 5609355829170890581}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Padding:\n    m_Left: 0\n    m_Right: 0\n    m_Top: 0\n    m_Bottom: 0\n  m_ChildAlignment: 4\n  m_Spacing: 10\n  m_ChildForceExpandWidth: 0\n  m_ChildForceExpandHeight: 0\n  m_ChildControlWidth: 0\n  m_ChildControlHeight: 0\n  m_ChildScaleWidth: 0\n  m_ChildScaleHeight: 0\n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Prefabs/pfb_default_carousel_progress_view.prefab.meta",
    "content": "fileFormatVersion: 2\nguid: 4e95dd339e71b40aa8e0269426c1dd21\nPrefabImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Prefabs.meta",
    "content": "fileFormatVersion: 2\nguid: 5ee7c0026d5c6474584118d2f0ff9fea\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/AnimationUtils.cs",
    "content": "﻿using System;\nusing System.Collections;\nusing EasingCore;\nusing UnityEngine;\nusing UnityEngine.Assertions;\n\nnamespace FancyCarouselView.Runtime.Scripts\n{\n    internal static class AnimationUtils\n    {\n        public static IEnumerator CreateFloatAnimationRoutine(float from, float to, float duration, Ease easeType,\n            Action<float> onValueChanged, Action onComplete)\n        {\n            Assert.IsTrue(duration > 0);\n\n            var time = 0.0f;\n\n            while (true)\n            {\n                time = Mathf.Clamp(time, 0.0f, duration);\n                var progress = time / duration;\n                progress = Easing.Get(easeType).Invoke(progress);\n                var value = Mathf.Lerp(from, to, progress);\n                onValueChanged?.Invoke(value);\n                if (time >= duration)\n                {\n                    break;\n                }\n\n                yield return null;\n                time += Time.deltaTime;\n            }\n\n            onComplete?.Invoke();\n        }\n    }\n}"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/AnimationUtils.cs.meta",
    "content": "fileFormatVersion: 2\nguid: d19e23c008f3d4c7d8ad917b8af5225d\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences: []\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/CarouselCell.cs",
    "content": "﻿using FancyScrollView;\nusing UnityEngine;\n\nnamespace FancyCarouselView.Runtime.Scripts\n{\n    /// <summary>\n    ///     Base class for the cell of the <see cref=\"CarouselView{TData,TCell}\" />.\n    /// </summary>\n    /// <typeparam name=\"TData\"></typeparam>\n    /// <typeparam name=\"TCell\"></typeparam>\n    public abstract class CarouselCell<TData, TCell> : FancyCell<TData, CarouselContext<TData, TCell>>\n        where TCell : CarouselCell<TData, TCell>\n    {\n        /// <summary>\n        ///     Refresh the cell based on the <see cref=\"itemData\" />.\n        /// </summary>\n        /// <param name=\"itemData\"></param>\n        protected abstract void Refresh(TData itemData);\n\n        /// <summary>\n        ///     This method will be called after the visibility of the cell is changed.\n        /// </summary>\n        /// <param name=\"visibility\"></param>\n        protected virtual void OnVisibilityChanged(bool visibility)\n        {\n        }\n\n        /// <summary>\n        ///     <para>This method will be called after the cell is initialized.</para>\n        ///     <para>Override this method if you want to write the process when the cell is instantiated.</para>\n        /// </summary>\n        protected virtual void OnInitialized()\n        {\n        }\n\n        /// <summary>\n        ///     <para>This method will be called after the position of the cell is changed.</para>\n        ///     <para>Override this method if you want to customize the movement of the cell.</para>\n        /// </summary>\n        /// <param name=\"position\"></param>\n        protected virtual void OnPositionUpdated(float position)\n        {\n        }\n\n        public override void UpdateContent(TData itemData)\n        {\n            Refresh(itemData);\n            Context.CarouselCellRefreshedDelegate?.Invoke((TCell)this, itemData);\n        }\n\n        public override void SetVisible(bool visibility)\n        {\n            if (gameObject.activeSelf == visibility)\n            {\n                return;\n            }\n\n            gameObject.SetActive(visibility);\n\n            OnVisibilityChanged(visibility);\n\n            Context.CarouselCellVisibilityChanged?.Invoke((TCell)this, visibility);\n        }\n\n        public override void Initialize()\n        {\n            var rectTrans = (RectTransform)transform;\n            var anchorMin = rectTrans.anchorMin;\n            var anchorMax = rectTrans.anchorMax;\n            var pivot = rectTrans.pivot;\n            rectTrans.anchorMin = Vector2.one * 0.5f;\n            rectTrans.anchorMax = Vector2.one * 0.5f;\n            rectTrans.pivot = Vector2.one * 0.5f;\n            rectTrans.sizeDelta = Context.CellSize;\n            rectTrans.anchorMin = anchorMin;\n            rectTrans.anchorMax = anchorMax;\n            rectTrans.pivot = pivot;\n\n            OnInitialized();\n\n            Context.CarouselCellInstantiated?.Invoke((TCell)this);\n        }\n\n        public override void UpdatePosition(float position)\n        {\n            var pos = transform.localPosition;\n            if (Context.ScrollDirection == ScrollDirection.Horizontal)\n            {\n                pos.x = Mathf.Lerp(-Context.CarouselSize, Context.CarouselSize, position);\n            }\n            else\n            {\n                pos.y = Mathf.Lerp(Context.CarouselSize, -Context.CarouselSize, position);\n            }\n\n            transform.localPosition = pos;\n\n            OnPositionUpdated(position);\n        }\n    }\n}\n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/CarouselCell.cs.meta",
    "content": "fileFormatVersion: 2\nguid: c599b360db88a414e92999489bad4f2f\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences: []\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/CarouselContext.cs",
    "content": "﻿using FancyScrollView;\nusing UnityEngine;\n\nnamespace FancyCarouselView.Runtime.Scripts\n{\n    /// <summary>\n    ///     Data container shared between <see cref=\"CarouselView{TData,TCell}\" /> and <see cref=\"CarouselCell{TData,TCell}\" />\n    /// </summary>\n    /// <typeparam name=\"TData\"></typeparam>\n    /// <typeparam name=\"TCell\"></typeparam>\n    public sealed class CarouselContext<TData, TCell> where TCell : CarouselCell<TData, TCell>\n    {\n        /// <summary>\n        ///     Delegate called when the carousel cell is instantiated.\n        /// </summary>\n        public CarouselCellInstantiatedDelegate<TData, TCell> CarouselCellInstantiated;\n\n        /// <summary>\n        ///     Delegate called when the carousel cell is refreshed.\n        /// </summary>\n        public CarouselCellRefreshedDelegate<TData, TCell> CarouselCellRefreshedDelegate;\n\n        /// <summary>\n        ///     Delegate called when the visibility of the carousel cell is changed.\n        /// </summary>\n        public CarouselCellVisibilityChangedDelegate<TData, TCell> CarouselCellVisibilityChanged;\n\n        /// <summary>\n        ///     Size of the carousel view.\n        /// </summary>\n        public float CarouselSize { get; set; }\n\n        /// <summary>\n        ///     Size of the carousel cell.\n        /// </summary>\n        public Vector2 CellSize { get; set; }\n\n        /// <summary>\n        ///     Scroll direction.\n        /// </summary>\n        public ScrollDirection ScrollDirection { get; set; }\n    }\n}"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/CarouselContext.cs.meta",
    "content": "fileFormatVersion: 2\nguid: 894ccca287a714e69b7c602873e5b6a7\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences: []\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/CarouselProgressView.cs",
    "content": "﻿using System;\nusing UnityEngine;\n\nnamespace FancyCarouselView.Runtime.Scripts\n{\n    /// <summary>\n    ///     View that shows the progress of the carousel view.\n    /// </summary>\n    public abstract class CarouselProgressView : MonoBehaviour\n    {\n        /// <summary>\n        ///     Set up.\n        /// </summary>\n        /// <param name=\"elementCount\"></param>\n        public abstract void Setup(int elementCount);\n\n        /// <summary>\n        ///     Set the active data index.\n        /// </summary>\n        /// <param name=\"elementIndex\"></param>\n        public abstract void SetActiveIndex(int elementIndex);\n    }\n\n    public abstract class ClickableCarouselProgressView : CarouselProgressView\n    {\n        /// <summary>\n        ///     Event called when the element of the carousel is clicked.\n        /// </summary>\n        public abstract event Action<int> ElementClicked;\n    }\n}\n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/CarouselProgressView.cs.meta",
    "content": "fileFormatVersion: 2\nguid: 38e06e7f07d2a42e4b2566ddfe11b75a\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences: []\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/CarouselScroller.cs",
    "content": "﻿using FancyScrollView;\nusing UnityEditor;\nusing UnityEngine;\n\nnamespace FancyCarouselView.Runtime.Scripts\n{\n    [DisallowMultipleComponent]\n    public sealed class CarouselScroller : Scroller\n    {\n#if UNITY_EDITOR\n        protected override void Reset()\n        {\n            base.Reset();\n\n            // Set the initial values when this component is attached or reset.\n            SetInitialValues();\n        }\n\n        private void SetInitialValues()\n        {\n            var so = new SerializedObject(this);\n            so.Update();\n\n            so.FindProperty(\"scrollDirection\").intValue = (int)ScrollDirection.Horizontal;\n            Draggable = true;\n\n            so.ApplyModifiedProperties();\n            so.Dispose();\n        }\n#endif\n    }\n}"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/CarouselScroller.cs.meta",
    "content": "fileFormatVersion: 2\nguid: 93e8ff52edf1e4551a9383367d899f3d\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences: []\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/CarouselView.cs",
    "content": "﻿using System;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.Linq;\nusing EasingCore;\nusing FancyScrollView;\nusing UnityEditor;\nusing UnityEngine;\nusing UnityEngine.EventSystems;\nusing UnityEngine.UI;\n\nnamespace FancyCarouselView.Runtime.Scripts\n{\n    /// <summary>\n    ///     Base class for the carousel view.\n    /// </summary>\n    /// <typeparam name=\"TData\"></typeparam>\n    /// <typeparam name=\"TCell\"></typeparam>\n    [RequireComponent(typeof(CarouselScroller))]\n    [RequireComponent(typeof(Image))]\n    [DisallowMultipleComponent]\n    public abstract class CarouselView<TData, TCell> : FancyScrollView<TData, CarouselContext<TData, TCell>>,\n        ICarouselView<TData, TCell>, IBeginDragHandler, IDragHandler,\n        IEndDragHandler where TCell : CarouselCell<TData, TCell>\n    {\n        private const float FlickThreshold = 3.0f;\n\n        [SerializeField] private Scroller _scroller;\n        [SerializeField] private TCell _cellPrefab;\n        [SerializeField] private Vector2 _cellSize = new Vector2(100, 100);\n        [SerializeField] private float _cellSpacing = 30.0f;\n        [SerializeField] private float _snapAnimationDuration = 0.2f;\n        [SerializeField] private Ease _snapAnimationType = Ease.OutQuad;\n        [SerializeField] private bool _autoScrollingEnabled;\n        [SerializeField] private float _autoScrollingIntervalSec = 3.0f;\n        [SerializeField] private bool _inverseAutoScrollingDirection;\n        [SerializeField] private CarouselProgressView _progressView;\n        [SerializeField] private bool _progressViewInteraction;\n        private int _activeCellIndex = -1;\n        private Coroutine _autoScrollCoroutine;\n        private bool _scrollerDraggableCache;\n        private Coroutine _scrollCoroutine;\n\n        protected override GameObject CellPrefab => _cellPrefab.gameObject;\n\n        public Scroller Scroller\n        {\n            get => _scroller;\n            set => _scroller = value;\n        }\n\n        public TCell CellPrefabInternal\n        {\n            get => _cellPrefab;\n            set => _cellPrefab = value;\n        }\n\n        public Vector2 CellSize\n        {\n            get => _cellSize;\n            set => _cellSize = value;\n        }\n\n        public float CellSpacing\n        {\n            get => _cellSpacing;\n            set => _cellSpacing = value;\n        }\n\n        public float SnapAnimationDuration\n        {\n            get => _snapAnimationDuration;\n            set => _snapAnimationDuration = value;\n        }\n\n        public Ease SnapAnimationType\n        {\n            get => _snapAnimationType;\n            set => _snapAnimationType = value;\n        }\n\n        public bool AutoScrollingEnabled\n        {\n            get => _autoScrollingEnabled;\n            set => _autoScrollingEnabled = value;\n        }\n\n        public float AutoScrollingIntervalSec\n        {\n            get => _autoScrollingIntervalSec;\n            set => _autoScrollingIntervalSec = value;\n        }\n\n        public bool InverseAutoScrollingDirection\n        {\n            get => _inverseAutoScrollingDirection;\n            set => _inverseAutoScrollingDirection = value;\n        }\n\n        public CarouselProgressView ProgressView\n        {\n            get => _progressView;\n            set => _progressView = value;\n        }\n\n        public bool ProgressViewInteraction\n        {\n            get => _progressViewInteraction;\n            set => _progressViewInteraction = value;\n        }\n\n        private int ActiveCellPosition => Mathf.RoundToInt(_scroller.Position);\n\n        private void OnEnable()\n        {\n            if (_progressView != null) \n                ActiveCellChanged += _progressView.SetActiveIndex;\n            \n            if (_autoScrollingEnabled) \n                StartAutoScrolling();\n        }\n\n        private void OnDisable()\n        {\n            if (_progressView != null) \n                ActiveCellChanged -= _progressView.SetActiveIndex;\n            \n            if (IsAutoScrolling)\n                StopAutoScrolling();\n            \n            if (IsScrolling)\n                StopScrolling();\n            \n            _scroller.Position = GetCircularPosition(ActiveCellPosition);\n        }\n\n        void IBeginDragHandler.OnBeginDrag(PointerEventData eventData)\n        {\n            // If the scroller draggable is set to false, do nothing.\n            if (!_scroller.Draggable)\n                return;\n\n            // On mobile device, by using two fingers, it is possible to trigger this method twice before OnEndDrag.\n            // So to ignore second finger, do nothing if _draggingPinterId has already been set.\n            if (_draggingPinterId != -1)\n                return;\n\n            _scrollerDraggableCache = _scroller.Draggable;\n            _draggingPinterId = eventData.pointerId;\n\n            var isInvalidDragging = false;\n            isInvalidDragging |= _scroller.ScrollDirection == ScrollDirection.Vertical &&\n                                 Math.Abs(eventData.delta.x) > Math.Abs(eventData.delta.y);\n            isInvalidDragging |= _scroller.ScrollDirection == ScrollDirection.Horizontal &&\n                                 Math.Abs(eventData.delta.x) < Math.Abs(eventData.delta.y);\n            if (isInvalidDragging)\n            {\n                // If the drag direction is invalid, prevent the scroller from responding to the drag event.\n                // This flag will be reset to _scrollerDraggableCache in OnEndDrag.\n                _scroller.Draggable = false;\n                return;\n            }\n\n            if (IsScrolling)\n                StopScrolling();\n\n            if (IsAutoScrolling)\n                StopAutoScrolling();\n        }\n\n        public ActiveCellChangedDelegate ActiveCellChanged { get; set; }\n\n        public CarouselDataChangedDelegate DataChanged { get; set; }\n\n        public CarouselCellInstantiatedDelegate<TData, TCell> CarouselCellInstantiated { get; set; }\n\n        public CarouselCellRefreshedDelegate<TData, TCell> CarouselCellRefreshed { get; set; }\n\n        public CarouselCellVisibilityChangedDelegate<TData, TCell> CarouselCellVisibilityChanged { get; set; }\n\n        public int DataCount { get; private set; }\n\n        public bool IsScrolling => _scrollCoroutine != null;\n\n        public bool IsAutoScrolling => _autoScrollCoroutine != null;\n\n        public bool IsDragging => _draggingPinterId != -1;\n\n        private int _draggingPinterId = -1;\n\n        public bool Draggable => _scroller.Draggable;\n\n        public int ActiveCellIndex => (int)GetCircularPosition(ActiveCellPosition);\n\n        public ScrollDirection ScrollDirection => _scroller.ScrollDirection;\n\n        void ICarouselView<TData, TCell>.Setup(IList<TData> dataList)\n        {\n            Setup((IReadOnlyList<TData>)dataList);\n        }\n\n        public void Setup(IReadOnlyList<TData> dataList)\n        {\n            DataCount = dataList.Count;\n\n            // FancyScrollView only accepts IList, so if it can be converted to IList, convert it, and if it cannot be converted, create a new List.\n            var list = dataList as IList<TData> ?? dataList.ToList();\n\n            UpdateContents(list);\n            _scroller.SetTotalCount(DataCount);\n            _scroller.Position = 0;\n            DataChanged?.Invoke();\n            if (_progressView != null)\n                _progressView.Setup(DataCount);\n        }\n\n        public void Cleanup()\n        {\n            Setup(Array.Empty<TData>());\n        }\n\n        public void ScrollToBefore(float duration, Ease easeType, Action onComplete = null)\n        {\n            var position = ActiveCellPosition - 1;\n            if (!loop) position = Mathf.Max(0, position);\n            ScrollTo(position, duration, easeType, onComplete);\n        }\n\n        public void ScrollToAfter(float duration, Ease easeType, Action onComplete = null)\n        {\n            var position = ActiveCellPosition + 1;\n            if (!loop) position = Mathf.Min(DataCount - 1, position);\n            ScrollTo(position, duration, easeType, onComplete);\n        }\n\n        public void ScrollTo(float position, float duration, Ease easeType, Action onComplete = null)\n        {\n            if (duration <= 0f)\n            {\n                onComplete?.Invoke();\n                return;\n            }\n\n            if (IsScrolling)\n                StopScrolling();\n\n            var animationRoutine = ScrollRoutine(position, duration, easeType,\n                () =>\n                {\n                    _scrollCoroutine = null;\n                    onComplete?.Invoke();\n                });\n            _scrollCoroutine = StartCoroutine(animationRoutine);\n        }\n\n        void IDragHandler.OnDrag(PointerEventData eventData)\n        {\n        }\n\n        void IEndDragHandler.OnEndDrag(PointerEventData eventData)\n        {\n            // If the scroller draggable is false before OnBeginDrag, do nothing.\n            if (!_scrollerDraggableCache)\n                return;\n\n            // If the pointer id is not the same as the one when the drag started, do nothing.\n            // This is possible when using two fingers on mobile devices.\n            if (_draggingPinterId != eventData.pointerId)\n                return;\n\n            var pos1 = Mathf.FloorToInt(_scroller.Position);\n            var pos2 = Mathf.CeilToInt(_scroller.Position);\n            if (!loop)\n            {\n                pos1 = Mathf.Max(0, pos1);\n                pos2 = Mathf.Min(DataCount - 1, pos2);\n            }\n\n            float position;\n            var deltaX = ScrollDirection == ScrollDirection.Horizontal ? eventData.delta.x : eventData.delta.y;\n            if (deltaX < -FlickThreshold)\n                position = ScrollDirection == ScrollDirection.Horizontal ? pos2 : pos1;\n            else if (deltaX > FlickThreshold)\n                position = ScrollDirection == ScrollDirection.Horizontal ? pos1 : pos2;\n            else\n                position = ActiveCellPosition;\n\n            ScrollTo(position, _snapAnimationDuration, _snapAnimationType);\n            if (_autoScrollingEnabled)\n                StartAutoScrolling();\n\n            _scroller.Draggable = _scrollerDraggableCache;\n            _draggingPinterId = -1;\n        }\n\n        private void OnProgressViewElementClicked(int index)\n        {\n            if (!_progressViewInteraction)\n                return;\n\n            if (IsAutoScrolling)\n                StopAutoScrolling();\n\n            ScrollTo(index, _snapAnimationDuration, _snapAnimationType, () =>\n            {\n                if (_autoScrollingEnabled)\n                    StartAutoScrolling();\n            });\n        }\n\n        private void StartAutoScrolling()\n        {\n            if (IsAutoScrolling)\n                StopAutoScrolling();\n\n            _autoScrollCoroutine = StartCoroutine(AutoScrollRoutine());\n        }\n\n        private IEnumerator AutoScrollRoutine()\n        {\n            while (true)\n            {\n                yield return new WaitForSeconds(_autoScrollingIntervalSec);\n                var beforeScrollPosition = ActiveCellPosition - 1;\n                var afterScrollPosition = ActiveCellPosition + 1;\n                if (!loop)\n                {\n                    beforeScrollPosition = Mathf.Max(0, beforeScrollPosition);\n                    afterScrollPosition = Mathf.Min(DataCount - 1, afterScrollPosition);\n                }\n\n                var position = _inverseAutoScrollingDirection ? beforeScrollPosition : afterScrollPosition;\n                yield return ScrollRoutine(position, _snapAnimationDuration, _snapAnimationType);\n            }\n        }\n\n        private IEnumerator ScrollRoutine(float position, float duration, Ease easeType, Action onComplete = null)\n        {\n            return AnimationUtils.CreateFloatAnimationRoutine(_scroller.Position, position, duration, easeType,\n                x => { _scroller.Position = x; },\n                () =>\n                {\n                    _scroller.Position = GetCircularPosition(position);\n                    onComplete?.Invoke();\n                });\n        }\n\n        protected override void Initialize()\n        {\n            if (cellContainer == null) cellContainer = transform;\n\n            var rectTrans = (RectTransform)cellContainer.transform;\n            var carouselSize = _scroller.ScrollDirection == ScrollDirection.Horizontal\n                ? rectTrans.rect.width\n                : rectTrans.rect.height;\n            var intervalPerPx = 0.5f / carouselSize;\n            var cellSize = _scroller.ScrollDirection == ScrollDirection.Horizontal ? _cellSize.x : _cellSize.y;\n            var zeroSpacingInterval = 0.5f - (carouselSize - cellSize) * intervalPerPx;\n            cellInterval = zeroSpacingInterval + intervalPerPx * _cellSpacing;\n\n            Context.CarouselSize = carouselSize;\n            Context.CellSize = _cellSize;\n            Context.ScrollDirection = _scroller.ScrollDirection;\n            Context.CarouselCellInstantiated += cell => CarouselCellInstantiated?.Invoke(cell);\n            Context.CarouselCellVisibilityChanged += (cell, visible) => CarouselCellVisibilityChanged?.Invoke(cell, visible);\n            Context.CarouselCellRefreshedDelegate += (cell, visible) => CarouselCellRefreshed?.Invoke(cell, visible);\n\n            _activeCellIndex = ActiveCellIndex;\n            ActiveCellChanged?.Invoke(ActiveCellIndex);\n            _scroller.OnValueChanged(OnScrolled);\n\n            if (_autoScrollingEnabled) StartAutoScrolling();\n\n            if (_progressView != null && _progressView is ClickableCarouselProgressView clickableView)\n                clickableView.ElementClicked += OnProgressViewElementClicked;\n        }\n\n        private void OnScrolled(float position)\n        {\n            UpdatePosition(position);\n\n            if (_activeCellIndex != ActiveCellIndex)\n            {\n                _activeCellIndex = ActiveCellIndex;\n                ActiveCellChanged?.Invoke(ActiveCellIndex);\n            }\n        }\n\n        private void StopScrolling()\n        {\n            if (!IsScrolling) return;\n\n            StopCoroutine(_scrollCoroutine);\n            _scrollCoroutine = null;\n        }\n\n        private void StopAutoScrolling()\n        {\n            if (!IsAutoScrolling) return;\n\n            StopCoroutine(_autoScrollCoroutine);\n            _autoScrollCoroutine = null;\n        }\n\n        private float GetCircularPosition(float position)\n        {\n            var size = DataCount;\n            return size < 1 ? 0 : position < 0 ? size - 1 + (position + 1) % size : position % size;\n        }\n#if UNITY_EDITOR\n\n        private void Reset()\n        {\n            loop = true;\n            GetComponent<Image>().color = Color.clear;\n            if (cellContainer == null) cellContainer = transform;\n        }\n\n        private void OnDrawGizmos()\n        {\n            if (cellContainer != null && _scroller != null) DrawCellRect();\n        }\n\n        private void DrawCellRect()\n        {\n            var isHorizontal = ScrollDirection == ScrollDirection.Horizontal;\n            var cellContainerTrans = cellContainer.transform;\n            var cellRect = new Rect\n            {\n                size = _cellSize,\n                center = Vector2.zero\n            };\n            var color = Color.white;\n            color.a = 0.25f;\n            var outlineColor = Color.clear;\n            var pos = cellContainerTrans.position;\n            var q = Quaternion.identity;\n            var s = cellContainerTrans.lossyScale;\n            var handlesMatrix = Handles.matrix;\n            Handles.matrix = Matrix4x4.TRS(pos, q, s);\n            Handles.DrawSolidRectangleWithOutline(cellRect, color, outlineColor);\n            Handles.matrix = handlesMatrix;\n        }\n\n#endif\n    }\n}\n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/CarouselView.cs.meta",
    "content": "fileFormatVersion: 2\nguid: 7baec707322b84341a3ff1ac20164a86\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences: []\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/CarouselViewDelegates.cs",
    "content": "﻿namespace FancyCarouselView.Runtime.Scripts\n{\n    /// <summary>\n    ///     Delegate called when the active cell is changed.\n    /// </summary>\n    public delegate void ActiveCellChangedDelegate(int cellIndex);\n\n    /// <summary>\n    ///     Delegate called when the data of the carousel view is updated.\n    /// </summary>\n    public delegate void CarouselDataChangedDelegate();\n\n    /// <summary>\n    ///     Delegate called when the carousel cell is instantiated.\n    /// </summary>\n    /// <typeparam name=\"TData\"></typeparam>\n    /// <typeparam name=\"TCell\"></typeparam>\n    public delegate void CarouselCellInstantiatedDelegate<TData, TCell>(TCell cell)\n        where TCell : CarouselCell<TData, TCell>;\n\n    /// <summary>\n    ///     Delegate called when the visibility of the carousel cell is changed.\n    /// </summary>\n    /// <typeparam name=\"TData\"></typeparam>\n    /// <typeparam name=\"TCell\"></typeparam>\n    public delegate void CarouselCellVisibilityChangedDelegate<TData, TCell>(TCell cell, bool visibility)\n        where TCell : CarouselCell<TData, TCell>;\n\n    /// <summary>\n    ///     Delegate called shen the carousel cell is refreshed.\n    /// </summary>\n    /// <typeparam name=\"TData\"></typeparam>\n    /// <typeparam name=\"TCell\"></typeparam>\n    public delegate void CarouselCellRefreshedDelegate<TData, TCell>(TCell cell, TData data)\n        where TCell : CarouselCell<TData, TCell>;\n}\n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/CarouselViewDelegates.cs.meta",
    "content": "fileFormatVersion: 2\nguid: 8ed85712bc3e940fa860a26e5bc90165\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences: []\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/DotCarouselProgressElement.cs",
    "content": "﻿using System;\nusing UnityEngine;\nusing UnityEngine.UI;\n\nnamespace FancyCarouselView.Runtime.Scripts\n{\n    /// <summary>\n    ///     Element of the <see cref=\"DotCarouselProgressView\" />.\n    /// </summary>\n    public sealed class DotCarouselProgressElement : MonoBehaviour\n    {\n        [SerializeField] private Image _image;\n        [SerializeField] private Color _activeColor = Color.white;\n        [SerializeField] private Color _deactiveColor = Color.grey;\n        [SerializeField] private Button _button;\n\n        /// <summary>\n        ///     Active or not.\n        /// </summary>\n        public bool IsActive { get; private set; }\n\n        public Button Button => _button;\n\n        /// <summary>\n        ///     Set whether or not it is active.\n        /// </summary>\n        /// <param name=\"isActive\"></param>\n        public void SetActive(bool isActive)\n        {\n            _image.color = isActive ? _activeColor : _deactiveColor;\n            IsActive = isActive;\n        }\n    }\n}\n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/DotCarouselProgressElement.cs.meta",
    "content": "fileFormatVersion: 2\nguid: 94de8ebe798ee47fcab93af25a89c863\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences: []\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/DotCarouselProgressView.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\nusing UnityEngine;\nusing UnityEngine.UI;\n\nnamespace FancyCarouselView.Runtime.Scripts\n{\n    /// <summary>\n    ///     View that represents the progress of the carousel view with dots.\n    /// </summary>\n    public sealed class DotCarouselProgressView : ClickableCarouselProgressView\n    {\n        [SerializeField] private DotCarouselProgressElement progressElementPrefab;\n        private int _activeIndex = -1;\n\n        private List<DotCarouselProgressElement> _progressElementInstances = new List<DotCarouselProgressElement>();\n\n        public override event Action<int> ElementClicked;\n\n        /// <summary>\n        ///     Set up.\n        /// </summary>\n        /// <param name=\"elementCount\"></param>\n        /// <exception cref=\"InvalidOperationException\"></exception>\n        public override void Setup(int elementCount)\n        {\n            if (GetComponent<HorizontalLayoutGroup>() == null && GetComponent<VerticalLayoutGroup>() == null)\n                throw new InvalidOperationException(\n                    $\"{nameof(DotCarouselProgressView)} requires {nameof(HorizontalLayoutGroup)} or {nameof(VerticalLayoutGroup)}. Make sure it is attached.\");\n\n\n            // Remove all instances if exists\n            foreach (var instance in _progressElementInstances)\n                Destroy(instance.gameObject);\n            _progressElementInstances.Clear();\n\n            _progressElementInstances = new List<DotCarouselProgressElement>(elementCount);\n            for (var i = 0; i < elementCount; i++)\n            {\n                var index = i;\n                var instance = Instantiate(progressElementPrefab, transform);\n                instance.SetActive(false);\n                instance.Button.onClick.AddListener(() => OnElementClicked(index));\n                _progressElementInstances.Add(instance);\n            }\n\n            if (_activeIndex != -1) SetActiveIndex(_activeIndex);\n        }\n\n        /// <summary>\n        ///     Set the active data index.\n        /// </summary>\n        /// <param name=\"elementIndex\"></param>\n        public override void SetActiveIndex(int elementIndex)\n        {\n            if (_activeIndex != -1 && _progressElementInstances.Count - 1 >= _activeIndex)\n            {\n                var instance = _progressElementInstances[_activeIndex];\n                instance.SetActive(false);\n            }\n\n            if (_progressElementInstances.Count - 1 >= elementIndex)\n            {\n                var instance = _progressElementInstances[elementIndex];\n                instance.SetActive(true);\n            }\n\n            _activeIndex = elementIndex;\n        }\n\n        private void OnElementClicked(int index)\n        {\n            ElementClicked?.Invoke(index);\n        }\n    }\n}\n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/DotCarouselProgressView.cs.meta",
    "content": "fileFormatVersion: 2\nguid: d1686675fc52e4c6da26d2cd3ea79921\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences: []\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/EndMovementType.cs",
    "content": "﻿using FancyScrollView;\n\nnamespace FancyCarouselView.Runtime.Scripts\n{\n    public enum EndMovementType\n    {\n        Elastic = MovementType.Elastic,\n        Clamped = MovementType.Clamped\n    }\n}"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/EndMovementType.cs.meta",
    "content": "fileFormatVersion: 2\nguid: 46048a56dac2645a38cdb3a190a4ea03\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences: []\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/ICarouselView.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\nusing EasingCore;\nusing FancyScrollView;\n\nnamespace FancyCarouselView.Runtime.Scripts\n{\n    /// <summary>\n    ///     Interface of the carousel view (Non Generic).\n    /// </summary>\n    public interface ICarouselView\n    {\n        /// <summary>\n        ///     Delegate called when the active cell is changed.\n        /// </summary>\n        ActiveCellChangedDelegate ActiveCellChanged { get; set; }\n\n        /// <summary>\n        ///     Delegate called when the data is updated.\n        /// </summary>\n        CarouselDataChangedDelegate DataChanged { get; set; }\n\n        /// <summary>\n        ///     Total count of the data.\n        /// </summary>\n        int DataCount { get; }\n\n        /// <summary>\n        ///     Return true if the carousel view is scrolling.\n        /// </summary>\n        bool IsScrolling { get; }\n\n        /// <summary>\n        ///     Return true if the carousel view is auto scrolling.\n        /// </summary>\n        bool IsAutoScrolling { get; }\n\n        /// <summary>\n        ///     Return true when the carousel view is being dragged.\n        /// </summary>\n        bool IsDragging { get; }\n\n        /// <summary>\n        ///     Draggable or not.\n        /// </summary>\n        bool Draggable { get; }\n\n        /// <summary>\n        ///     Index of the active cell.\n        /// </summary>\n        int ActiveCellIndex { get; }\n\n        /// <summary>\n        ///     Scroll direction.\n        /// </summary>\n        ScrollDirection ScrollDirection { get; }\n\n        /// <summary>\n        ///     Scroll to the before position.\n        /// </summary>\n        /// <param name=\"duration\"></param>\n        /// <param name=\"easeType\"></param>\n        /// <param name=\"onComplete\"></param>\n        void ScrollToBefore(float duration, Ease easeType, Action onComplete = null);\n\n        /// <summary>\n        ///     Scroll to the after position.\n        /// </summary>\n        /// <param name=\"duration\"></param>\n        /// <param name=\"easeType\"></param>\n        /// <param name=\"onComplete\"></param>\n        void ScrollToAfter(float duration, Ease easeType, Action onComplete = null);\n\n        /// <summary>\n        ///     Scroll to the specified position.\n        /// </summary>\n        /// <param name=\"position\"></param>\n        /// <param name=\"duration\"></param>\n        /// <param name=\"easeType\"></param>\n        /// <param name=\"onComplete\"></param>\n        void ScrollTo(float position, float duration, Ease easeType, Action onComplete = null);\n    }\n\n    /// <summary>\n    ///     Interface of the carousel view.\n    /// </summary>\n    /// <typeparam name=\"TData\"></typeparam>\n    /// <typeparam name=\"TCell\"></typeparam>\n    public interface ICarouselView<TData, TCell> : ICarouselView where TCell : CarouselCell<TData, TCell>\n    {\n        /// <summary>\n        ///     Delegate called when the cell is instantiated.\n        /// </summary>\n        CarouselCellInstantiatedDelegate<TData, TCell> CarouselCellInstantiated { get; set; }\n\n        /// <summary>\n        ///     Delegate called when the cell is refreshed.\n        /// </summary>\n        CarouselCellRefreshedDelegate<TData, TCell> CarouselCellRefreshed { get; set; }\n\n        /// <summary>\n        ///     Delegate called when the visibility of the cell is changed.\n        /// </summary>\n        CarouselCellVisibilityChangedDelegate<TData, TCell> CarouselCellVisibilityChanged { get; set; }\n\n        /// <summary>\n        ///     Set up the carousel view.\n        /// </summary>\n        /// <param name=\"dataList\"></param>\n        void Setup(IList<TData> dataList);\n    }\n}"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/ICarouselView.cs.meta",
    "content": "fileFormatVersion: 2\nguid: 388e0f4cbd2d044abbc3240b15f755a8\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences: []\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/ScrollEventPropagator.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\nusing FancyScrollView;\nusing UnityEngine;\nusing UnityEngine.EventSystems;\nusing UnityEngine.UI;\n\nnamespace FancyCarouselView.Runtime.Scripts\n{\n    [RequireComponent(typeof(Scroller))]\n    public class ScrollEventPropagator : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler\n    {\n        private IEnumerable<IBeginDragHandler> _beginDragHandlers;\n        private IEnumerable<IDragHandler> _dragHandlers;\n        private IEnumerable<IEndDragHandler> _endDragHandlers;\n        private bool _isEnabled;\n        private Scroller _scroller;\n\n        private void Start()\n        {\n            _scroller = GetComponent<Scroller>();\n            var parentScrollRect = GetComponentInParent<ScrollRect>();\n            if (parentScrollRect != null)\n            {\n                _beginDragHandlers = parentScrollRect.GetComponents<IBeginDragHandler>();\n                _dragHandlers = parentScrollRect.GetComponents<IDragHandler>();\n                _endDragHandlers = parentScrollRect.GetComponents<IEndDragHandler>();\n            }\n        }\n\n        void IBeginDragHandler.OnBeginDrag(PointerEventData eventData)\n        {\n            if (_scroller.ScrollDirection == ScrollDirection.Vertical\n                && Math.Abs(eventData.delta.x) > Math.Abs(eventData.delta.y))\n            {\n                _isEnabled = true;\n            }\n            else if (_scroller.ScrollDirection == ScrollDirection.Horizontal\n                     && Math.Abs(eventData.delta.x) < Math.Abs(eventData.delta.y))\n            {\n                _isEnabled = true;\n            }\n            else\n            {\n                _isEnabled = false;\n            }\n\n            if (!_isEnabled || _beginDragHandlers == null)\n            {\n                return;\n            }\n\n            foreach (var handler in _beginDragHandlers)\n            {\n                handler.OnBeginDrag(eventData);\n            }\n        }\n\n        void IDragHandler.OnDrag(PointerEventData eventData)\n        {\n            if (!_isEnabled || _dragHandlers == null)\n            {\n                return;\n            }\n\n            foreach (var handler in _dragHandlers)\n            {\n                handler.OnDrag(eventData);\n            }\n        }\n\n        void IEndDragHandler.OnEndDrag(PointerEventData eventData)\n        {\n            if (!_isEnabled || _endDragHandlers == null)\n            {\n                return;\n            }\n\n            foreach (var handler in _endDragHandlers)\n            {\n                handler.OnEndDrag(eventData);\n            }\n        }\n    }\n}"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/ScrollEventPropagator.cs.meta",
    "content": "fileFormatVersion: 2\nguid: 85aedb7fe77344521bcb21f230abd15a\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences: []\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts.meta",
    "content": "fileFormatVersion: 2\nguid: 71dcd41f7c1754f8bbb8139976e7baf4\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Textures/tex_carousel_dot.png.meta",
    "content": "fileFormatVersion: 2\nguid: 017ef9d77d979469382c91c9fa2a9980\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjects: {}\n  serializedVersion: 11\n  mipmaps:\n    mipMapMode: 0\n    enableMipMap: 0\n    sRGBTexture: 1\n    linearTexture: 0\n    fadeOut: 0\n    borderMipMap: 0\n    mipMapsPreserveCoverage: 0\n    alphaTestReferenceValue: 0.5\n    mipMapFadeDistanceStart: 1\n    mipMapFadeDistanceEnd: 3\n  bumpmap:\n    convertToNormalMap: 0\n    externalNormalMap: 0\n    heightScale: 0.25\n    normalMapFilter: 0\n  isReadable: 0\n  streamingMipmaps: 0\n  streamingMipmapsPriority: 0\n  grayScaleToAlpha: 0\n  generateCubemap: 6\n  cubemapConvolution: 0\n  seamlessCubemap: 0\n  textureFormat: 1\n  maxTextureSize: 2048\n  textureSettings:\n    serializedVersion: 2\n    filterMode: -1\n    aniso: -1\n    mipBias: -100\n    wrapU: 1\n    wrapV: 1\n    wrapW: -1\n  nPOTScale: 0\n  lightmap: 0\n  compressionQuality: 50\n  spriteMode: 1\n  spriteExtrude: 1\n  spriteMeshType: 1\n  alignment: 0\n  spritePivot: {x: 0.5, y: 0.5}\n  spritePixelsToUnits: 100\n  spriteBorder: {x: 0, y: 0, z: 0, w: 0}\n  spriteGenerateFallbackPhysicsShape: 1\n  alphaUsage: 1\n  alphaIsTransparency: 0\n  spriteTessellationDetail: -1\n  textureType: 8\n  textureShape: 1\n  singleChannelComponent: 0\n  maxTextureSizeSet: 0\n  compressionQualitySet: 0\n  textureFormatSet: 0\n  applyGammaDecoding: 0\n  platformSettings:\n  - serializedVersion: 3\n    buildTarget: DefaultTexturePlatform\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: Standalone\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: iPhone\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: Android\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  spriteSheet:\n    serializedVersion: 2\n    sprites: []\n    outline: []\n    physicsShape: []\n    bones: []\n    spriteID: 5e97eb03825dee720800000000000000\n    internalID: 0\n    vertices: []\n    indices: \n    edges: []\n    weights: []\n    secondaryTextures: []\n  spritePackingTag: \n  pSDRemoveMatte: 0\n  pSDShowRemoveMatteOption: 0\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Textures.meta",
    "content": "fileFormatVersion: 2\nguid: 3f632718d609a4c6fac7a99a5779d2f4\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime.meta",
    "content": "fileFormatVersion: 2\nguid: 6b05caa752ad84d078159f730dca44f7\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView/package.json",
    "content": "{\n  \"name\": \"com.harumak.fancycarouselview\",\n  \"displayName\": \"FancyCarouselView\",\n  \"version\": \"1.1.6\",\n  \"unity\": \"2019.4\",\n  \"license\": \"MIT\",\n  \"dependencies\": {\n  },\n  \"author\": {\n    \"name\": \"Haruki Yano\",\n    \"url\": \"https://github.com/Haruma-K\"\n  },\n  \"type\": \"tool\",\n  \"description\": \"Carousel View for Unity uGUI using Fancy Scroll View.\"\n}\n"
  },
  {
    "path": "Assets/FancyCarouselView/package.json.meta",
    "content": "fileFormatVersion: 2\nguid: 0e6ecae1128034cb3b9cb9fee998bdf1\nTextScriptImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Assets/FancyCarouselView.meta",
    "content": "fileFormatVersion: 2\nguid: fc4067a7660f8471db62ddedaf734e17\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "LICENSE.md",
    "content": "Copyright 2021 Haruki Yano\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "Packages/manifest.json",
    "content": "{\n  \"dependencies\": {\n    \"com.unity.collab-proxy\": \"1.17.2\",\n    \"com.unity.ide.rider\": \"3.0.15\",\n    \"com.unity.ide.visualstudio\": \"2.0.16\",\n    \"com.unity.ide.vscode\": \"1.2.5\",\n    \"com.unity.test-framework\": \"1.1.31\",\n    \"com.unity.textmeshpro\": \"3.0.6\",\n    \"com.unity.timeline\": \"1.4.8\",\n    \"com.unity.ugui\": \"1.0.0\",\n    \"jp.setchi.fancyscrollview\": \"https://github.com/setchi/FancyScrollView.git#upm\",\n    \"com.unity.modules.ai\": \"1.0.0\",\n    \"com.unity.modules.androidjni\": \"1.0.0\",\n    \"com.unity.modules.animation\": \"1.0.0\",\n    \"com.unity.modules.assetbundle\": \"1.0.0\",\n    \"com.unity.modules.audio\": \"1.0.0\",\n    \"com.unity.modules.cloth\": \"1.0.0\",\n    \"com.unity.modules.director\": \"1.0.0\",\n    \"com.unity.modules.imageconversion\": \"1.0.0\",\n    \"com.unity.modules.imgui\": \"1.0.0\",\n    \"com.unity.modules.jsonserialize\": \"1.0.0\",\n    \"com.unity.modules.particlesystem\": \"1.0.0\",\n    \"com.unity.modules.physics\": \"1.0.0\",\n    \"com.unity.modules.physics2d\": \"1.0.0\",\n    \"com.unity.modules.screencapture\": \"1.0.0\",\n    \"com.unity.modules.terrain\": \"1.0.0\",\n    \"com.unity.modules.terrainphysics\": \"1.0.0\",\n    \"com.unity.modules.tilemap\": \"1.0.0\",\n    \"com.unity.modules.ui\": \"1.0.0\",\n    \"com.unity.modules.uielements\": \"1.0.0\",\n    \"com.unity.modules.umbra\": \"1.0.0\",\n    \"com.unity.modules.unityanalytics\": \"1.0.0\",\n    \"com.unity.modules.unitywebrequest\": \"1.0.0\",\n    \"com.unity.modules.unitywebrequestassetbundle\": \"1.0.0\",\n    \"com.unity.modules.unitywebrequestaudio\": \"1.0.0\",\n    \"com.unity.modules.unitywebrequesttexture\": \"1.0.0\",\n    \"com.unity.modules.unitywebrequestwww\": \"1.0.0\",\n    \"com.unity.modules.vehicles\": \"1.0.0\",\n    \"com.unity.modules.video\": \"1.0.0\",\n    \"com.unity.modules.vr\": \"1.0.0\",\n    \"com.unity.modules.wind\": \"1.0.0\",\n    \"com.unity.modules.xr\": \"1.0.0\"\n  }\n}\n"
  },
  {
    "path": "Packages/packages-lock.json",
    "content": "{\n  \"dependencies\": {\n    \"com.unity.collab-proxy\": {\n      \"version\": \"1.17.2\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.services.core\": \"1.0.1\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.ext.nunit\": {\n      \"version\": \"1.0.6\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.ide.rider\": {\n      \"version\": \"3.0.15\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.ext.nunit\": \"1.0.6\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.ide.visualstudio\": {\n      \"version\": \"2.0.16\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.test-framework\": \"1.1.9\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.ide.vscode\": {\n      \"version\": \"1.2.5\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.services.core\": {\n      \"version\": \"1.0.1\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.modules.unitywebrequest\": \"1.0.0\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.test-framework\": {\n      \"version\": \"1.1.31\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.ext.nunit\": \"1.0.6\",\n        \"com.unity.modules.imgui\": \"1.0.0\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.textmeshpro\": {\n      \"version\": \"3.0.6\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.ugui\": \"1.0.0\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.timeline\": {\n      \"version\": \"1.4.8\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.modules.director\": \"1.0.0\",\n        \"com.unity.modules.animation\": \"1.0.0\",\n        \"com.unity.modules.audio\": \"1.0.0\",\n        \"com.unity.modules.particlesystem\": \"1.0.0\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.ugui\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.ui\": \"1.0.0\",\n        \"com.unity.modules.imgui\": \"1.0.0\"\n      }\n    },\n    \"jp.setchi.fancyscrollview\": {\n      \"version\": \"https://github.com/setchi/FancyScrollView.git#upm\",\n      \"depth\": 0,\n      \"source\": \"git\",\n      \"dependencies\": {},\n      \"hash\": \"e5d10d3e5961848f93be43c2911344750b509a88\"\n    },\n    \"com.unity.modules.ai\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.androidjni\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.animation\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.assetbundle\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.audio\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.cloth\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.physics\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.director\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.audio\": \"1.0.0\",\n        \"com.unity.modules.animation\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.imageconversion\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.imgui\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.jsonserialize\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.particlesystem\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.physics\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.physics2d\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.screencapture\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.imageconversion\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.subsystems\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 1,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.terrain\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.terrainphysics\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.physics\": \"1.0.0\",\n        \"com.unity.modules.terrain\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.tilemap\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.physics2d\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.ui\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.uielements\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.ui\": \"1.0.0\",\n        \"com.unity.modules.imgui\": \"1.0.0\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\",\n        \"com.unity.modules.uielementsnative\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.uielementsnative\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 1,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.ui\": \"1.0.0\",\n        \"com.unity.modules.imgui\": \"1.0.0\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.umbra\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.unityanalytics\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.unitywebrequest\": \"1.0.0\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.unitywebrequest\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.unitywebrequestassetbundle\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.assetbundle\": \"1.0.0\",\n        \"com.unity.modules.unitywebrequest\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.unitywebrequestaudio\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.unitywebrequest\": \"1.0.0\",\n        \"com.unity.modules.audio\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.unitywebrequesttexture\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.unitywebrequest\": \"1.0.0\",\n        \"com.unity.modules.imageconversion\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.unitywebrequestwww\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.unitywebrequest\": \"1.0.0\",\n        \"com.unity.modules.unitywebrequestassetbundle\": \"1.0.0\",\n        \"com.unity.modules.unitywebrequestaudio\": \"1.0.0\",\n        \"com.unity.modules.audio\": \"1.0.0\",\n        \"com.unity.modules.assetbundle\": \"1.0.0\",\n        \"com.unity.modules.imageconversion\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.vehicles\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.physics\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.video\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.audio\": \"1.0.0\",\n        \"com.unity.modules.ui\": \"1.0.0\",\n        \"com.unity.modules.unitywebrequest\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.vr\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.jsonserialize\": \"1.0.0\",\n        \"com.unity.modules.physics\": \"1.0.0\",\n        \"com.unity.modules.xr\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.wind\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.xr\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.physics\": \"1.0.0\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\",\n        \"com.unity.modules.subsystems\": \"1.0.0\"\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "ProjectSettings/AudioManager.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!11 &1\nAudioManager:\n  m_ObjectHideFlags: 0\n  serializedVersion: 2\n  m_Volume: 1\n  Rolloff Scale: 1\n  Doppler Factor: 1\n  Default Speaker Mode: 2\n  m_SampleRate: 0\n  m_DSPBufferSize: 1024\n  m_VirtualVoiceCount: 512\n  m_RealVoiceCount: 32\n  m_SpatializerPlugin: \n  m_AmbisonicDecoderPlugin: \n  m_DisableAudio: 0\n  m_VirtualizeEffects: 1\n  m_RequestedDSPBufferSize: 1024\n"
  },
  {
    "path": "ProjectSettings/ClusterInputManager.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!236 &1\nClusterInputManager:\n  m_ObjectHideFlags: 0\n  m_Inputs: []\n"
  },
  {
    "path": "ProjectSettings/DynamicsManager.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!55 &1\nPhysicsManager:\n  m_ObjectHideFlags: 0\n  serializedVersion: 11\n  m_Gravity: {x: 0, y: -9.81, z: 0}\n  m_DefaultMaterial: {fileID: 0}\n  m_BounceThreshold: 2\n  m_SleepThreshold: 0.005\n  m_DefaultContactOffset: 0.01\n  m_DefaultSolverIterations: 6\n  m_DefaultSolverVelocityIterations: 1\n  m_QueriesHitBackfaces: 0\n  m_QueriesHitTriggers: 1\n  m_EnableAdaptiveForce: 0\n  m_ClothInterCollisionDistance: 0\n  m_ClothInterCollisionStiffness: 0\n  m_ContactsGeneration: 1\n  m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n  m_AutoSimulation: 1\n  m_AutoSyncTransforms: 0\n  m_ReuseCollisionCallbacks: 1\n  m_ClothInterCollisionSettingsToggle: 0\n  m_ContactPairsMode: 0\n  m_BroadphaseType: 0\n  m_WorldBounds:\n    m_Center: {x: 0, y: 0, z: 0}\n    m_Extent: {x: 250, y: 250, z: 250}\n  m_WorldSubdivisions: 8\n  m_FrictionType: 0\n  m_EnableEnhancedDeterminism: 0\n  m_EnableUnifiedHeightmaps: 1\n  m_DefaultMaxAngluarSpeed: 7\n"
  },
  {
    "path": "ProjectSettings/EditorBuildSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1045 &1\nEditorBuildSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 2\n  m_Scenes:\n  - enabled: 1\n    path: Assets/Demo/Scenes/CarouselDemo.unity\n    guid: fb0930c4c73004bb2be56aca5302a87f\n  m_configObjects: {}\n"
  },
  {
    "path": "ProjectSettings/EditorSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!159 &1\nEditorSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 9\n  m_ExternalVersionControlSupport: Visible Meta Files\n  m_SerializationMode: 2\n  m_LineEndingsForNewScripts: 0\n  m_DefaultBehaviorMode: 0\n  m_PrefabRegularEnvironment: {fileID: 0}\n  m_PrefabUIEnvironment: {fileID: 0}\n  m_SpritePackerMode: 0\n  m_SpritePackerPaddingPower: 1\n  m_EtcTextureCompressorBehavior: 1\n  m_EtcTextureFastCompressor: 1\n  m_EtcTextureNormalCompressor: 2\n  m_EtcTextureBestCompressor: 4\n  m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref\n  m_ProjectGenerationRootNamespace: \n  m_CollabEditorSettings:\n    inProgressEnabled: 1\n  m_EnableTextureStreamingInEditMode: 1\n  m_EnableTextureStreamingInPlayMode: 1\n  m_AsyncShaderCompilation: 1\n  m_EnterPlayModeOptionsEnabled: 0\n  m_EnterPlayModeOptions: 3\n  m_ShowLightmapResolutionOverlay: 1\n  m_UseLegacyProbeSampleCount: 0\n  m_AssetPipelineMode: 1\n  m_CacheServerMode: 0\n  m_CacheServerEndpoint: \n  m_CacheServerNamespacePrefix: default\n  m_CacheServerEnableDownload: 1\n  m_CacheServerEnableUpload: 1\n"
  },
  {
    "path": "ProjectSettings/GraphicsSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!30 &1\nGraphicsSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 13\n  m_Deferred:\n    m_Mode: 1\n    m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}\n  m_DeferredReflections:\n    m_Mode: 1\n    m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0}\n  m_ScreenSpaceShadows:\n    m_Mode: 1\n    m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0}\n  m_LegacyDeferred:\n    m_Mode: 1\n    m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0}\n  m_DepthNormals:\n    m_Mode: 1\n    m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0}\n  m_MotionVectors:\n    m_Mode: 1\n    m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0}\n  m_LightHalo:\n    m_Mode: 1\n    m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0}\n  m_LensFlare:\n    m_Mode: 1\n    m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0}\n  m_AlwaysIncludedShaders:\n  - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}\n  - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0}\n  - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0}\n  - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0}\n  - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}\n  - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}\n  - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0}\n  - {fileID: 16001, guid: 0000000000000000f000000000000000, type: 0}\n  - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0}\n  m_PreloadedShaders: []\n  m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,\n    type: 0}\n  m_CustomRenderPipeline: {fileID: 0}\n  m_TransparencySortMode: 0\n  m_TransparencySortAxis: {x: 0, y: 0, z: 1}\n  m_DefaultRenderingPath: 1\n  m_DefaultMobileRenderingPath: 1\n  m_TierSettings: []\n  m_LightmapStripping: 0\n  m_FogStripping: 0\n  m_InstancingStripping: 0\n  m_LightmapKeepPlain: 1\n  m_LightmapKeepDirCombined: 1\n  m_LightmapKeepDynamicPlain: 1\n  m_LightmapKeepDynamicDirCombined: 1\n  m_LightmapKeepShadowMask: 1\n  m_LightmapKeepSubtractive: 1\n  m_FogKeepLinear: 1\n  m_FogKeepExp: 1\n  m_FogKeepExp2: 1\n  m_AlbedoSwatchInfos: []\n  m_LightsUseLinearIntensity: 0\n  m_LightsUseColorTemperature: 0\n  m_LogWhenShaderIsCompiled: 0\n  m_AllowEnlightenSupportForUpgradedProject: 0\n"
  },
  {
    "path": "ProjectSettings/InputManager.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!13 &1\nInputManager:\n  m_ObjectHideFlags: 0\n  serializedVersion: 2\n  m_Axes:\n  - serializedVersion: 3\n    m_Name: Horizontal\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: left\n    positiveButton: right\n    altNegativeButton: a\n    altPositiveButton: d\n    gravity: 3\n    dead: 0.001\n    sensitivity: 3\n    snap: 1\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Vertical\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: down\n    positiveButton: up\n    altNegativeButton: s\n    altPositiveButton: w\n    gravity: 3\n    dead: 0.001\n    sensitivity: 3\n    snap: 1\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Fire1\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: left ctrl\n    altNegativeButton: \n    altPositiveButton: mouse 0\n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Fire2\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: left alt\n    altNegativeButton: \n    altPositiveButton: mouse 1\n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Fire3\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: left shift\n    altNegativeButton: \n    altPositiveButton: mouse 2\n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Jump\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: space\n    altNegativeButton: \n    altPositiveButton: \n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Mouse X\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: \n    altNegativeButton: \n    altPositiveButton: \n    gravity: 0\n    dead: 0\n    sensitivity: 0.1\n    snap: 0\n    invert: 0\n    type: 1\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Mouse Y\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: \n    altNegativeButton: \n    altPositiveButton: \n    gravity: 0\n    dead: 0\n    sensitivity: 0.1\n    snap: 0\n    invert: 0\n    type: 1\n    axis: 1\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Mouse ScrollWheel\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: \n    altNegativeButton: \n    altPositiveButton: \n    gravity: 0\n    dead: 0\n    sensitivity: 0.1\n    snap: 0\n    invert: 0\n    type: 1\n    axis: 2\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Horizontal\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: \n    altNegativeButton: \n    altPositiveButton: \n    gravity: 0\n    dead: 0.19\n    sensitivity: 1\n    snap: 0\n    invert: 0\n    type: 2\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Vertical\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: \n    altNegativeButton: \n    altPositiveButton: \n    gravity: 0\n    dead: 0.19\n    sensitivity: 1\n    snap: 0\n    invert: 1\n    type: 2\n    axis: 1\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Fire1\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: joystick button 0\n    altNegativeButton: \n    altPositiveButton: \n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Fire2\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: joystick button 1\n    altNegativeButton: \n    altPositiveButton: \n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Fire3\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: joystick button 2\n    altNegativeButton: \n    altPositiveButton: \n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Jump\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: joystick button 3\n    altNegativeButton: \n    altPositiveButton: \n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Submit\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: return\n    altNegativeButton: \n    altPositiveButton: joystick button 0\n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Submit\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: enter\n    altNegativeButton: \n    altPositiveButton: space\n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Cancel\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: escape\n    altNegativeButton: \n    altPositiveButton: joystick button 1\n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n"
  },
  {
    "path": "ProjectSettings/NavMeshAreas.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!126 &1\nNavMeshProjectSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 2\n  areas:\n  - name: Walkable\n    cost: 1\n  - name: Not Walkable\n    cost: 1\n  - name: Jump\n    cost: 2\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  m_LastAgentTypeID: -887442657\n  m_Settings:\n  - serializedVersion: 2\n    agentTypeID: 0\n    agentRadius: 0.5\n    agentHeight: 2\n    agentSlope: 45\n    agentClimb: 0.75\n    ledgeDropHeight: 0\n    maxJumpAcrossDistance: 0\n    minRegionArea: 2\n    manualCellSize: 0\n    cellSize: 0.16666667\n    manualTileSize: 0\n    tileSize: 256\n    accuratePlacement: 0\n    debug:\n      m_Flags: 0\n  m_SettingNames:\n  - Humanoid\n"
  },
  {
    "path": "ProjectSettings/PackageManagerSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &1\nMonoBehaviour:\n  m_ObjectHideFlags: 61\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 0}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_ScopedRegistriesSettingsExpanded: 1\n  oneTimeWarningShown: 0\n  m_Registries:\n  - m_Id: main\n    m_Name: \n    m_Url: https://packages.unity.com\n    m_Scopes: []\n    m_IsDefault: 1\n  m_UserSelectedRegistryName: \n  m_UserAddingNewScopedRegistry: 0\n  m_RegistryInfoDraft:\n    m_ErrorMessage: \n    m_Original:\n      m_Id: \n      m_Name: \n      m_Url: \n      m_Scopes: []\n      m_IsDefault: 0\n    m_Modified: 0\n    m_Name: \n    m_Url: \n    m_Scopes:\n    - \n    m_SelectedScopeIndex: 0\n"
  },
  {
    "path": "ProjectSettings/Physics2DSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!19 &1\nPhysics2DSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 4\n  m_Gravity: {x: 0, y: -9.81}\n  m_DefaultMaterial: {fileID: 0}\n  m_VelocityIterations: 8\n  m_PositionIterations: 3\n  m_VelocityThreshold: 1\n  m_MaxLinearCorrection: 0.2\n  m_MaxAngularCorrection: 8\n  m_MaxTranslationSpeed: 100\n  m_MaxRotationSpeed: 360\n  m_BaumgarteScale: 0.2\n  m_BaumgarteTimeOfImpactScale: 0.75\n  m_TimeToSleep: 0.5\n  m_LinearSleepTolerance: 0.01\n  m_AngularSleepTolerance: 2\n  m_DefaultContactOffset: 0.01\n  m_JobOptions:\n    serializedVersion: 2\n    useMultithreading: 0\n    useConsistencySorting: 0\n    m_InterpolationPosesPerJob: 100\n    m_NewContactsPerJob: 30\n    m_CollideContactsPerJob: 100\n    m_ClearFlagsPerJob: 200\n    m_ClearBodyForcesPerJob: 200\n    m_SyncDiscreteFixturesPerJob: 50\n    m_SyncContinuousFixturesPerJob: 50\n    m_FindNearestContactsPerJob: 100\n    m_UpdateTriggerContactsPerJob: 100\n    m_IslandSolverCostThreshold: 100\n    m_IslandSolverBodyCostScale: 1\n    m_IslandSolverContactCostScale: 10\n    m_IslandSolverJointCostScale: 10\n    m_IslandSolverBodiesPerJob: 50\n    m_IslandSolverContactsPerJob: 50\n  m_AutoSimulation: 1\n  m_QueriesHitTriggers: 1\n  m_QueriesStartInColliders: 1\n  m_CallbacksOnDisable: 1\n  m_ReuseCollisionCallbacks: 1\n  m_AutoSyncTransforms: 0\n  m_AlwaysShowColliders: 0\n  m_ShowColliderSleep: 1\n  m_ShowColliderContacts: 0\n  m_ShowColliderAABB: 0\n  m_ContactArrowScale: 0.2\n  m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412}\n  m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}\n  m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}\n  m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}\n  m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n"
  },
  {
    "path": "ProjectSettings/PresetManager.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1386491679 &1\nPresetManager:\n  m_ObjectHideFlags: 0\n  serializedVersion: 2\n  m_DefaultPresets: {}\n"
  },
  {
    "path": "ProjectSettings/ProjectSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!129 &1\nPlayerSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 20\n  productGUID: 8646ab54ca45349b2813daf8cb28a5fe\n  AndroidProfiler: 0\n  AndroidFilterTouchesWhenObscured: 0\n  AndroidEnableSustainedPerformanceMode: 0\n  defaultScreenOrientation: 4\n  targetDevice: 2\n  useOnDemandResources: 0\n  accelerometerFrequency: 60\n  companyName: DefaultCompany\n  productName: FancyCarouselView\n  defaultCursor: {fileID: 0}\n  cursorHotspot: {x: 0, y: 0}\n  m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1}\n  m_ShowUnitySplashScreen: 1\n  m_ShowUnitySplashLogo: 1\n  m_SplashScreenOverlayOpacity: 1\n  m_SplashScreenAnimation: 1\n  m_SplashScreenLogoStyle: 1\n  m_SplashScreenDrawMode: 0\n  m_SplashScreenBackgroundAnimationZoom: 1\n  m_SplashScreenLogoAnimationZoom: 1\n  m_SplashScreenBackgroundLandscapeAspect: 1\n  m_SplashScreenBackgroundPortraitAspect: 1\n  m_SplashScreenBackgroundLandscapeUvs:\n    serializedVersion: 2\n    x: 0\n    y: 0\n    width: 1\n    height: 1\n  m_SplashScreenBackgroundPortraitUvs:\n    serializedVersion: 2\n    x: 0\n    y: 0\n    width: 1\n    height: 1\n  m_SplashScreenLogos: []\n  m_VirtualRealitySplashScreen: {fileID: 0}\n  m_HolographicTrackingLossScreen: {fileID: 0}\n  defaultScreenWidth: 1024\n  defaultScreenHeight: 768\n  defaultScreenWidthWeb: 960\n  defaultScreenHeightWeb: 600\n  m_StereoRenderingPath: 0\n  m_ActiveColorSpace: 0\n  m_MTRendering: 1\n  m_StackTraceTypes: 010000000100000001000000010000000100000001000000\n  iosShowActivityIndicatorOnLoading: -1\n  androidShowActivityIndicatorOnLoading: -1\n  iosUseCustomAppBackgroundBehavior: 0\n  iosAllowHTTPDownload: 1\n  allowedAutorotateToPortrait: 1\n  allowedAutorotateToPortraitUpsideDown: 1\n  allowedAutorotateToLandscapeRight: 1\n  allowedAutorotateToLandscapeLeft: 1\n  useOSAutorotation: 1\n  use32BitDisplayBuffer: 1\n  preserveFramebufferAlpha: 0\n  disableDepthAndStencilBuffers: 0\n  androidStartInFullscreen: 1\n  androidRenderOutsideSafeArea: 1\n  androidUseSwappy: 0\n  androidBlitType: 0\n  defaultIsNativeResolution: 1\n  macRetinaSupport: 1\n  runInBackground: 1\n  captureSingleScreen: 0\n  muteOtherAudioSources: 0\n  Prepare IOS For Recording: 0\n  Force IOS Speakers When Recording: 0\n  deferSystemGesturesMode: 0\n  hideHomeButton: 0\n  submitAnalytics: 1\n  usePlayerLog: 1\n  bakeCollisionMeshes: 0\n  forceSingleInstance: 0\n  useFlipModelSwapchain: 1\n  resizableWindow: 0\n  useMacAppStoreValidation: 0\n  macAppStoreCategory: public.app-category.games\n  gpuSkinning: 1\n  xboxPIXTextureCapture: 0\n  xboxEnableAvatar: 0\n  xboxEnableKinect: 0\n  xboxEnableKinectAutoTracking: 0\n  xboxEnableFitness: 0\n  visibleInBackground: 1\n  allowFullscreenSwitch: 1\n  fullscreenMode: 1\n  xboxSpeechDB: 0\n  xboxEnableHeadOrientation: 0\n  xboxEnableGuest: 0\n  xboxEnablePIXSampling: 0\n  metalFramebufferOnly: 0\n  xboxOneResolution: 0\n  xboxOneSResolution: 0\n  xboxOneXResolution: 3\n  xboxOneMonoLoggingLevel: 0\n  xboxOneLoggingLevel: 1\n  xboxOneDisableEsram: 0\n  xboxOneEnableTypeOptimization: 0\n  xboxOnePresentImmediateThreshold: 0\n  switchQueueCommandMemory: 0\n  switchQueueControlMemory: 16384\n  switchQueueComputeMemory: 262144\n  switchNVNShaderPoolsGranularity: 33554432\n  switchNVNDefaultPoolsGranularity: 16777216\n  switchNVNOtherPoolsGranularity: 16777216\n  stadiaPresentMode: 0\n  stadiaTargetFramerate: 0\n  vulkanNumSwapchainBuffers: 3\n  vulkanEnableSetSRGBWrite: 0\n  m_SupportedAspectRatios:\n    4:3: 1\n    5:4: 1\n    16:10: 1\n    16:9: 1\n    Others: 1\n  bundleVersion: 0.1\n  preloadedAssets: []\n  metroInputSource: 0\n  wsaTransparentSwapchain: 0\n  m_HolographicPauseOnTrackingLoss: 1\n  xboxOneDisableKinectGpuReservation: 1\n  xboxOneEnable7thCore: 1\n  vrSettings:\n    cardboard:\n      depthFormat: 0\n      enableTransitionView: 0\n    daydream:\n      depthFormat: 0\n      useSustainedPerformanceMode: 0\n      enableVideoLayer: 0\n      useProtectedVideoMemory: 0\n      minimumSupportedHeadTracking: 0\n      maximumSupportedHeadTracking: 1\n    hololens:\n      depthFormat: 1\n      depthBufferSharingEnabled: 1\n    lumin:\n      depthFormat: 0\n      frameTiming: 2\n      enableGLCache: 0\n      glCacheMaxBlobSize: 524288\n      glCacheMaxFileSize: 8388608\n    oculus:\n      sharedDepthBuffer: 1\n      dashSupport: 1\n      lowOverheadMode: 0\n      protectedContext: 0\n      v2Signing: 1\n    enable360StereoCapture: 0\n  isWsaHolographicRemotingEnabled: 0\n  enableFrameTimingStats: 0\n  useHDRDisplay: 0\n  D3DHDRBitDepth: 0\n  m_ColorGamuts: 00000000\n  targetPixelDensity: 30\n  resolutionScalingMode: 0\n  androidSupportedAspectRatio: 1\n  androidMaxAspectRatio: 2.1\n  applicationIdentifier: {}\n  buildNumber: {}\n  AndroidBundleVersionCode: 1\n  AndroidMinSdkVersion: 19\n  AndroidTargetSdkVersion: 0\n  AndroidPreferredInstallLocation: 1\n  aotOptions: \n  stripEngineCode: 1\n  iPhoneStrippingLevel: 0\n  iPhoneScriptCallOptimization: 0\n  ForceInternetPermission: 0\n  ForceSDCardPermission: 0\n  CreateWallpaper: 0\n  APKExpansionFiles: 0\n  keepLoadedShadersAlive: 0\n  StripUnusedMeshComponents: 1\n  VertexChannelCompressionMask: 4054\n  iPhoneSdkVersion: 988\n  iOSTargetOSVersionString: 10.0\n  tvOSSdkVersion: 0\n  tvOSRequireExtendedGameController: 0\n  tvOSTargetOSVersionString: 10.0\n  uIPrerenderedIcon: 0\n  uIRequiresPersistentWiFi: 0\n  uIRequiresFullScreen: 1\n  uIStatusBarHidden: 1\n  uIExitOnSuspend: 0\n  uIStatusBarStyle: 0\n  appleTVSplashScreen: {fileID: 0}\n  appleTVSplashScreen2x: {fileID: 0}\n  tvOSSmallIconLayers: []\n  tvOSSmallIconLayers2x: []\n  tvOSLargeIconLayers: []\n  tvOSLargeIconLayers2x: []\n  tvOSTopShelfImageLayers: []\n  tvOSTopShelfImageLayers2x: []\n  tvOSTopShelfImageWideLayers: []\n  tvOSTopShelfImageWideLayers2x: []\n  iOSLaunchScreenType: 0\n  iOSLaunchScreenPortrait: {fileID: 0}\n  iOSLaunchScreenLandscape: {fileID: 0}\n  iOSLaunchScreenBackgroundColor:\n    serializedVersion: 2\n    rgba: 0\n  iOSLaunchScreenFillPct: 100\n  iOSLaunchScreenSize: 100\n  iOSLaunchScreenCustomXibPath: \n  iOSLaunchScreeniPadType: 0\n  iOSLaunchScreeniPadImage: {fileID: 0}\n  iOSLaunchScreeniPadBackgroundColor:\n    serializedVersion: 2\n    rgba: 0\n  iOSLaunchScreeniPadFillPct: 100\n  iOSLaunchScreeniPadSize: 100\n  iOSLaunchScreeniPadCustomXibPath: \n  iOSUseLaunchScreenStoryboard: 0\n  iOSLaunchScreenCustomStoryboardPath: \n  iOSDeviceRequirements: []\n  iOSURLSchemes: []\n  iOSBackgroundModes: 0\n  iOSMetalForceHardShadows: 0\n  metalEditorSupport: 1\n  metalAPIValidation: 1\n  iOSRenderExtraFrameOnPause: 0\n  appleDeveloperTeamID: \n  iOSManualSigningProvisioningProfileID: \n  tvOSManualSigningProvisioningProfileID: \n  iOSManualSigningProvisioningProfileType: 0\n  tvOSManualSigningProvisioningProfileType: 0\n  appleEnableAutomaticSigning: 0\n  iOSRequireARKit: 0\n  iOSAutomaticallyDetectAndAddCapabilities: 1\n  appleEnableProMotion: 0\n  clonedFromGUID: c0afd0d1d80e3634a9dac47e8a0426ea\n  templatePackageId: com.unity.template.3d@4.2.8\n  templateDefaultScene: Assets/Scenes/SampleScene.unity\n  AndroidTargetArchitectures: 1\n  AndroidSplashScreenScale: 0\n  androidSplashScreen: {fileID: 0}\n  AndroidKeystoreName: \n  AndroidKeyaliasName: \n  AndroidBuildApkPerCpuArchitecture: 0\n  AndroidTVCompatibility: 0\n  AndroidIsGame: 1\n  AndroidEnableTango: 0\n  androidEnableBanner: 1\n  androidUseLowAccuracyLocation: 0\n  androidUseCustomKeystore: 0\n  m_AndroidBanners:\n  - width: 320\n    height: 180\n    banner: {fileID: 0}\n  androidGamepadSupportLevel: 0\n  AndroidValidateAppBundleSize: 1\n  AndroidAppBundleSizeToValidate: 150\n  m_BuildTargetIcons: []\n  m_BuildTargetPlatformIcons:\n  - m_BuildTarget: Android\n    m_Icons:\n    - m_Textures: []\n      m_Width: 432\n      m_Height: 432\n      m_Kind: 2\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 324\n      m_Height: 324\n      m_Kind: 2\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 216\n      m_Height: 216\n      m_Kind: 2\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 162\n      m_Height: 162\n      m_Kind: 2\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 108\n      m_Height: 108\n      m_Kind: 2\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 81\n      m_Height: 81\n      m_Kind: 2\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 192\n      m_Height: 192\n      m_Kind: 0\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 144\n      m_Height: 144\n      m_Kind: 0\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 96\n      m_Height: 96\n      m_Kind: 0\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 72\n      m_Height: 72\n      m_Kind: 0\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 48\n      m_Height: 48\n      m_Kind: 0\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 36\n      m_Height: 36\n      m_Kind: 0\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 192\n      m_Height: 192\n      m_Kind: 1\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 144\n      m_Height: 144\n      m_Kind: 1\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 96\n      m_Height: 96\n      m_Kind: 1\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 72\n      m_Height: 72\n      m_Kind: 1\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 48\n      m_Height: 48\n      m_Kind: 1\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 36\n      m_Height: 36\n      m_Kind: 1\n      m_SubKind: \n  m_BuildTargetBatching:\n  - m_BuildTarget: Standalone\n    m_StaticBatching: 1\n    m_DynamicBatching: 0\n  - m_BuildTarget: tvOS\n    m_StaticBatching: 1\n    m_DynamicBatching: 0\n  - m_BuildTarget: Android\n    m_StaticBatching: 1\n    m_DynamicBatching: 0\n  - m_BuildTarget: iPhone\n    m_StaticBatching: 1\n    m_DynamicBatching: 0\n  - m_BuildTarget: WebGL\n    m_StaticBatching: 0\n    m_DynamicBatching: 0\n  m_BuildTargetGraphicsJobs:\n  - m_BuildTarget: MacStandaloneSupport\n    m_GraphicsJobs: 0\n  - m_BuildTarget: Switch\n    m_GraphicsJobs: 1\n  - m_BuildTarget: MetroSupport\n    m_GraphicsJobs: 1\n  - m_BuildTarget: AppleTVSupport\n    m_GraphicsJobs: 0\n  - m_BuildTarget: BJMSupport\n    m_GraphicsJobs: 1\n  - m_BuildTarget: LinuxStandaloneSupport\n    m_GraphicsJobs: 1\n  - m_BuildTarget: PS4Player\n    m_GraphicsJobs: 1\n  - m_BuildTarget: iOSSupport\n    m_GraphicsJobs: 0\n  - m_BuildTarget: WindowsStandaloneSupport\n    m_GraphicsJobs: 1\n  - m_BuildTarget: XboxOnePlayer\n    m_GraphicsJobs: 1\n  - m_BuildTarget: LuminSupport\n    m_GraphicsJobs: 0\n  - m_BuildTarget: AndroidPlayer\n    m_GraphicsJobs: 0\n  - m_BuildTarget: WebGLSupport\n    m_GraphicsJobs: 0\n  m_BuildTargetGraphicsJobMode:\n  - m_BuildTarget: PS4Player\n    m_GraphicsJobMode: 0\n  - m_BuildTarget: XboxOnePlayer\n    m_GraphicsJobMode: 0\n  m_BuildTargetGraphicsAPIs:\n  - m_BuildTarget: AndroidPlayer\n    m_APIs: 150000000b000000\n    m_Automatic: 0\n  - m_BuildTarget: iOSSupport\n    m_APIs: 10000000\n    m_Automatic: 1\n  - m_BuildTarget: AppleTVSupport\n    m_APIs: 10000000\n    m_Automatic: 0\n  - m_BuildTarget: WebGLSupport\n    m_APIs: 0b000000\n    m_Automatic: 1\n  m_BuildTargetVRSettings:\n  - m_BuildTarget: Standalone\n    m_Enabled: 0\n    m_Devices:\n    - Oculus\n    - OpenVR\n  openGLRequireES31: 0\n  openGLRequireES31AEP: 0\n  openGLRequireES32: 0\n  m_TemplateCustomTags: {}\n  mobileMTRendering:\n    Android: 1\n    iPhone: 1\n    tvOS: 1\n  m_BuildTargetGroupLightmapEncodingQuality: []\n  m_BuildTargetGroupLightmapSettings: []\n  playModeTestRunnerEnabled: 0\n  runPlayModeTestAsEditModeTest: 0\n  actionOnDotNetUnhandledException: 1\n  enableInternalProfiler: 0\n  logObjCUncaughtExceptions: 1\n  enableCrashReportAPI: 0\n  cameraUsageDescription: \n  locationUsageDescription: \n  microphoneUsageDescription: \n  switchNetLibKey: \n  switchSocketMemoryPoolSize: 6144\n  switchSocketAllocatorPoolSize: 128\n  switchSocketConcurrencyLimit: 14\n  switchScreenResolutionBehavior: 2\n  switchUseCPUProfiler: 0\n  switchApplicationID: 0x01004b9000490000\n  switchNSODependencies: \n  switchTitleNames_0: \n  switchTitleNames_1: \n  switchTitleNames_2: \n  switchTitleNames_3: \n  switchTitleNames_4: \n  switchTitleNames_5: \n  switchTitleNames_6: \n  switchTitleNames_7: \n  switchTitleNames_8: \n  switchTitleNames_9: \n  switchTitleNames_10: \n  switchTitleNames_11: \n  switchTitleNames_12: \n  switchTitleNames_13: \n  switchTitleNames_14: \n  switchPublisherNames_0: \n  switchPublisherNames_1: \n  switchPublisherNames_2: \n  switchPublisherNames_3: \n  switchPublisherNames_4: \n  switchPublisherNames_5: \n  switchPublisherNames_6: \n  switchPublisherNames_7: \n  switchPublisherNames_8: \n  switchPublisherNames_9: \n  switchPublisherNames_10: \n  switchPublisherNames_11: \n  switchPublisherNames_12: \n  switchPublisherNames_13: \n  switchPublisherNames_14: \n  switchIcons_0: {fileID: 0}\n  switchIcons_1: {fileID: 0}\n  switchIcons_2: {fileID: 0}\n  switchIcons_3: {fileID: 0}\n  switchIcons_4: {fileID: 0}\n  switchIcons_5: {fileID: 0}\n  switchIcons_6: {fileID: 0}\n  switchIcons_7: {fileID: 0}\n  switchIcons_8: {fileID: 0}\n  switchIcons_9: {fileID: 0}\n  switchIcons_10: {fileID: 0}\n  switchIcons_11: {fileID: 0}\n  switchIcons_12: {fileID: 0}\n  switchIcons_13: {fileID: 0}\n  switchIcons_14: {fileID: 0}\n  switchSmallIcons_0: {fileID: 0}\n  switchSmallIcons_1: {fileID: 0}\n  switchSmallIcons_2: {fileID: 0}\n  switchSmallIcons_3: {fileID: 0}\n  switchSmallIcons_4: {fileID: 0}\n  switchSmallIcons_5: {fileID: 0}\n  switchSmallIcons_6: {fileID: 0}\n  switchSmallIcons_7: {fileID: 0}\n  switchSmallIcons_8: {fileID: 0}\n  switchSmallIcons_9: {fileID: 0}\n  switchSmallIcons_10: {fileID: 0}\n  switchSmallIcons_11: {fileID: 0}\n  switchSmallIcons_12: {fileID: 0}\n  switchSmallIcons_13: {fileID: 0}\n  switchSmallIcons_14: {fileID: 0}\n  switchManualHTML: \n  switchAccessibleURLs: \n  switchLegalInformation: \n  switchMainThreadStackSize: 1048576\n  switchPresenceGroupId: \n  switchLogoHandling: 0\n  switchReleaseVersion: 0\n  switchDisplayVersion: 1.0.0\n  switchStartupUserAccount: 0\n  switchTouchScreenUsage: 0\n  switchSupportedLanguagesMask: 0\n  switchLogoType: 0\n  switchApplicationErrorCodeCategory: \n  switchUserAccountSaveDataSize: 0\n  switchUserAccountSaveDataJournalSize: 0\n  switchApplicationAttribute: 0\n  switchCardSpecSize: -1\n  switchCardSpecClock: -1\n  switchRatingsMask: 0\n  switchRatingsInt_0: 0\n  switchRatingsInt_1: 0\n  switchRatingsInt_2: 0\n  switchRatingsInt_3: 0\n  switchRatingsInt_4: 0\n  switchRatingsInt_5: 0\n  switchRatingsInt_6: 0\n  switchRatingsInt_7: 0\n  switchRatingsInt_8: 0\n  switchRatingsInt_9: 0\n  switchRatingsInt_10: 0\n  switchRatingsInt_11: 0\n  switchRatingsInt_12: 0\n  switchLocalCommunicationIds_0: \n  switchLocalCommunicationIds_1: \n  switchLocalCommunicationIds_2: \n  switchLocalCommunicationIds_3: \n  switchLocalCommunicationIds_4: \n  switchLocalCommunicationIds_5: \n  switchLocalCommunicationIds_6: \n  switchLocalCommunicationIds_7: \n  switchParentalControl: 0\n  switchAllowsScreenshot: 1\n  switchAllowsVideoCapturing: 1\n  switchAllowsRuntimeAddOnContentInstall: 0\n  switchDataLossConfirmation: 0\n  switchUserAccountLockEnabled: 0\n  switchSystemResourceMemory: 16777216\n  switchSupportedNpadStyles: 22\n  switchNativeFsCacheSize: 32\n  switchIsHoldTypeHorizontal: 0\n  switchSupportedNpadCount: 8\n  switchSocketConfigEnabled: 0\n  switchTcpInitialSendBufferSize: 32\n  switchTcpInitialReceiveBufferSize: 64\n  switchTcpAutoSendBufferSizeMax: 256\n  switchTcpAutoReceiveBufferSizeMax: 256\n  switchUdpSendBufferSize: 9\n  switchUdpReceiveBufferSize: 42\n  switchSocketBufferEfficiency: 4\n  switchSocketInitializeEnabled: 1\n  switchNetworkInterfaceManagerInitializeEnabled: 1\n  switchPlayerConnectionEnabled: 1\n  ps4NPAgeRating: 12\n  ps4NPTitleSecret: \n  ps4NPTrophyPackPath: \n  ps4ParentalLevel: 11\n  ps4ContentID: ED1633-NPXX51362_00-0000000000000000\n  ps4Category: 0\n  ps4MasterVersion: 01.00\n  ps4AppVersion: 01.00\n  ps4AppType: 0\n  ps4ParamSfxPath: \n  ps4VideoOutPixelFormat: 0\n  ps4VideoOutInitialWidth: 1920\n  ps4VideoOutBaseModeInitialWidth: 1920\n  ps4VideoOutReprojectionRate: 60\n  ps4PronunciationXMLPath: \n  ps4PronunciationSIGPath: \n  ps4BackgroundImagePath: \n  ps4StartupImagePath: \n  ps4StartupImagesFolder: \n  ps4IconImagesFolder: \n  ps4SaveDataImagePath: \n  ps4SdkOverride: \n  ps4BGMPath: \n  ps4ShareFilePath: \n  ps4ShareOverlayImagePath: \n  ps4PrivacyGuardImagePath: \n  ps4NPtitleDatPath: \n  ps4RemotePlayKeyAssignment: -1\n  ps4RemotePlayKeyMappingDir: \n  ps4PlayTogetherPlayerCount: 0\n  ps4EnterButtonAssignment: 1\n  ps4ApplicationParam1: 0\n  ps4ApplicationParam2: 0\n  ps4ApplicationParam3: 0\n  ps4ApplicationParam4: 0\n  ps4DownloadDataSize: 0\n  ps4GarlicHeapSize: 2048\n  ps4ProGarlicHeapSize: 2560\n  playerPrefsMaxSize: 32768\n  ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ\n  ps4pnSessions: 1\n  ps4pnPresence: 1\n  ps4pnFriends: 1\n  ps4pnGameCustomData: 1\n  playerPrefsSupport: 0\n  enableApplicationExit: 0\n  resetTempFolder: 1\n  restrictedAudioUsageRights: 0\n  ps4UseResolutionFallback: 0\n  ps4ReprojectionSupport: 0\n  ps4UseAudio3dBackend: 0\n  ps4UseLowGarlicFragmentationMode: 1\n  ps4SocialScreenEnabled: 0\n  ps4ScriptOptimizationLevel: 0\n  ps4Audio3dVirtualSpeakerCount: 14\n  ps4attribCpuUsage: 0\n  ps4PatchPkgPath: \n  ps4PatchLatestPkgPath: \n  ps4PatchChangeinfoPath: \n  ps4PatchDayOne: 0\n  ps4attribUserManagement: 0\n  ps4attribMoveSupport: 0\n  ps4attrib3DSupport: 0\n  ps4attribShareSupport: 0\n  ps4attribExclusiveVR: 0\n  ps4disableAutoHideSplash: 0\n  ps4videoRecordingFeaturesUsed: 0\n  ps4contentSearchFeaturesUsed: 0\n  ps4attribEyeToEyeDistanceSettingVR: 0\n  ps4IncludedModules: []\n  ps4attribVROutputEnabled: 0\n  monoEnv: \n  splashScreenBackgroundSourceLandscape: {fileID: 0}\n  splashScreenBackgroundSourcePortrait: {fileID: 0}\n  blurSplashScreenBackground: 1\n  spritePackerPolicy: \n  webGLMemorySize: 16\n  webGLExceptionSupport: 1\n  webGLNameFilesAsHashes: 0\n  webGLDataCaching: 1\n  webGLDebugSymbols: 0\n  webGLEmscriptenArgs: \n  webGLModulesDirectory: \n  webGLTemplate: APPLICATION:Default\n  webGLAnalyzeBuildSize: 0\n  webGLUseEmbeddedResources: 0\n  webGLCompressionFormat: 1\n  webGLLinkerTarget: 1\n  webGLThreadsSupport: 0\n  webGLWasmStreaming: 0\n  scriptingDefineSymbols: {}\n  platformArchitecture: {}\n  scriptingBackend: {}\n  il2cppCompilerConfiguration: {}\n  managedStrippingLevel: {}\n  incrementalIl2cppBuild: {}\n  allowUnsafeCode: 0\n  additionalIl2CppArgs: \n  scriptingRuntimeVersion: 1\n  gcIncremental: 0\n  gcWBarrierValidation: 0\n  apiCompatibilityLevelPerPlatform: {}\n  m_RenderingPath: 1\n  m_MobileRenderingPath: 1\n  metroPackageName: Template_3D\n  metroPackageVersion: \n  metroCertificatePath: \n  metroCertificatePassword: \n  metroCertificateSubject: \n  metroCertificateIssuer: \n  metroCertificateNotAfter: 0000000000000000\n  metroApplicationDescription: Template_3D\n  wsaImages: {}\n  metroTileShortName: \n  metroTileShowName: 0\n  metroMediumTileShowName: 0\n  metroLargeTileShowName: 0\n  metroWideTileShowName: 0\n  metroSupportStreamingInstall: 0\n  metroLastRequiredScene: 0\n  metroDefaultTileSize: 1\n  metroTileForegroundText: 2\n  metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}\n  metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628,\n    a: 1}\n  metroSplashScreenUseBackgroundColor: 0\n  platformCapabilities: {}\n  metroTargetDeviceFamilies: {}\n  metroFTAName: \n  metroFTAFileTypes: []\n  metroProtocolName: \n  XboxOneProductId: \n  XboxOneUpdateKey: \n  XboxOneSandboxId: \n  XboxOneContentId: \n  XboxOneTitleId: \n  XboxOneSCId: \n  XboxOneGameOsOverridePath: \n  XboxOnePackagingOverridePath: \n  XboxOneAppManifestOverridePath: \n  XboxOneVersion: 1.0.0.0\n  XboxOnePackageEncryption: 0\n  XboxOnePackageUpdateGranularity: 2\n  XboxOneDescription: \n  XboxOneLanguage:\n  - enus\n  XboxOneCapability: []\n  XboxOneGameRating: {}\n  XboxOneIsContentPackage: 0\n  XboxOneEnableGPUVariability: 1\n  XboxOneSockets: {}\n  XboxOneSplashScreen: {fileID: 0}\n  XboxOneAllowedProductIds: []\n  XboxOnePersistentLocalStorageSize: 0\n  XboxOneXTitleMemory: 8\n  XboxOneOverrideIdentityName: \n  XboxOneOverrideIdentityPublisher: \n  vrEditorSettings:\n    daydream:\n      daydreamIconForeground: {fileID: 0}\n      daydreamIconBackground: {fileID: 0}\n  cloudServicesEnabled:\n    UNet: 1\n  luminIcon:\n    m_Name: \n    m_ModelFolderPath: \n    m_PortalFolderPath: \n  luminCert:\n    m_CertPath: \n    m_SignPackage: 1\n  luminIsChannelApp: 0\n  luminVersion:\n    m_VersionCode: 1\n    m_VersionName: \n  apiCompatibilityLevel: 6\n  cloudProjectId: \n  framebufferDepthMemorylessMode: 0\n  projectName: \n  organizationId: \n  cloudEnabled: 0\n  enableNativePlatformBackendsForNewInputSystem: 0\n  disableOldInputManagerSupport: 0\n  legacyClampBlendShapeWeights: 0\n"
  },
  {
    "path": "ProjectSettings/ProjectVersion.txt",
    "content": "m_EditorVersion: 2020.3.40f1\nm_EditorVersionWithRevision: 2020.3.40f1 (ba48d4efcef1)\n"
  },
  {
    "path": "ProjectSettings/QualitySettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!47 &1\nQualitySettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 5\n  m_CurrentQuality: 5\n  m_QualitySettings:\n  - serializedVersion: 2\n    name: Very Low\n    pixelLightCount: 0\n    shadows: 0\n    shadowResolution: 0\n    shadowProjection: 1\n    shadowCascades: 1\n    shadowDistance: 15\n    shadowNearPlaneOffset: 3\n    shadowCascade2Split: 0.33333334\n    shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}\n    shadowmaskMode: 0\n    blendWeights: 1\n    textureQuality: 1\n    anisotropicTextures: 0\n    antiAliasing: 0\n    softParticles: 0\n    softVegetation: 0\n    realtimeReflectionProbes: 0\n    billboardsFaceCameraPosition: 0\n    vSyncCount: 0\n    lodBias: 0.3\n    maximumLODLevel: 0\n    streamingMipmapsActive: 0\n    streamingMipmapsAddAllCameras: 1\n    streamingMipmapsMemoryBudget: 512\n    streamingMipmapsRenderersPerFrame: 512\n    streamingMipmapsMaxLevelReduction: 2\n    streamingMipmapsMaxFileIORequests: 1024\n    particleRaycastBudget: 4\n    asyncUploadTimeSlice: 2\n    asyncUploadBufferSize: 16\n    asyncUploadPersistentBuffer: 1\n    resolutionScalingFixedDPIFactor: 1\n    excludedTargetPlatforms: []\n  - serializedVersion: 2\n    name: Low\n    pixelLightCount: 0\n    shadows: 0\n    shadowResolution: 0\n    shadowProjection: 1\n    shadowCascades: 1\n    shadowDistance: 20\n    shadowNearPlaneOffset: 3\n    shadowCascade2Split: 0.33333334\n    shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}\n    shadowmaskMode: 0\n    blendWeights: 2\n    textureQuality: 0\n    anisotropicTextures: 0\n    antiAliasing: 0\n    softParticles: 0\n    softVegetation: 0\n    realtimeReflectionProbes: 0\n    billboardsFaceCameraPosition: 0\n    vSyncCount: 0\n    lodBias: 0.4\n    maximumLODLevel: 0\n    streamingMipmapsActive: 0\n    streamingMipmapsAddAllCameras: 1\n    streamingMipmapsMemoryBudget: 512\n    streamingMipmapsRenderersPerFrame: 512\n    streamingMipmapsMaxLevelReduction: 2\n    streamingMipmapsMaxFileIORequests: 1024\n    particleRaycastBudget: 16\n    asyncUploadTimeSlice: 2\n    asyncUploadBufferSize: 16\n    asyncUploadPersistentBuffer: 1\n    resolutionScalingFixedDPIFactor: 1\n    excludedTargetPlatforms: []\n  - serializedVersion: 2\n    name: Medium\n    pixelLightCount: 1\n    shadows: 1\n    shadowResolution: 0\n    shadowProjection: 1\n    shadowCascades: 1\n    shadowDistance: 20\n    shadowNearPlaneOffset: 3\n    shadowCascade2Split: 0.33333334\n    shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}\n    shadowmaskMode: 0\n    blendWeights: 2\n    textureQuality: 0\n    anisotropicTextures: 1\n    antiAliasing: 0\n    softParticles: 0\n    softVegetation: 0\n    realtimeReflectionProbes: 0\n    billboardsFaceCameraPosition: 0\n    vSyncCount: 1\n    lodBias: 0.7\n    maximumLODLevel: 0\n    streamingMipmapsActive: 0\n    streamingMipmapsAddAllCameras: 1\n    streamingMipmapsMemoryBudget: 512\n    streamingMipmapsRenderersPerFrame: 512\n    streamingMipmapsMaxLevelReduction: 2\n    streamingMipmapsMaxFileIORequests: 1024\n    particleRaycastBudget: 64\n    asyncUploadTimeSlice: 2\n    asyncUploadBufferSize: 16\n    asyncUploadPersistentBuffer: 1\n    resolutionScalingFixedDPIFactor: 1\n    excludedTargetPlatforms: []\n  - serializedVersion: 2\n    name: High\n    pixelLightCount: 2\n    shadows: 2\n    shadowResolution: 1\n    shadowProjection: 1\n    shadowCascades: 2\n    shadowDistance: 40\n    shadowNearPlaneOffset: 3\n    shadowCascade2Split: 0.33333334\n    shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}\n    shadowmaskMode: 1\n    blendWeights: 2\n    textureQuality: 0\n    anisotropicTextures: 1\n    antiAliasing: 0\n    softParticles: 0\n    softVegetation: 1\n    realtimeReflectionProbes: 1\n    billboardsFaceCameraPosition: 1\n    vSyncCount: 1\n    lodBias: 1\n    maximumLODLevel: 0\n    streamingMipmapsActive: 0\n    streamingMipmapsAddAllCameras: 1\n    streamingMipmapsMemoryBudget: 512\n    streamingMipmapsRenderersPerFrame: 512\n    streamingMipmapsMaxLevelReduction: 2\n    streamingMipmapsMaxFileIORequests: 1024\n    particleRaycastBudget: 256\n    asyncUploadTimeSlice: 2\n    asyncUploadBufferSize: 16\n    asyncUploadPersistentBuffer: 1\n    resolutionScalingFixedDPIFactor: 1\n    excludedTargetPlatforms: []\n  - serializedVersion: 2\n    name: Very High\n    pixelLightCount: 3\n    shadows: 2\n    shadowResolution: 2\n    shadowProjection: 1\n    shadowCascades: 2\n    shadowDistance: 70\n    shadowNearPlaneOffset: 3\n    shadowCascade2Split: 0.33333334\n    shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}\n    shadowmaskMode: 1\n    blendWeights: 4\n    textureQuality: 0\n    anisotropicTextures: 2\n    antiAliasing: 2\n    softParticles: 1\n    softVegetation: 1\n    realtimeReflectionProbes: 1\n    billboardsFaceCameraPosition: 1\n    vSyncCount: 1\n    lodBias: 1.5\n    maximumLODLevel: 0\n    streamingMipmapsActive: 0\n    streamingMipmapsAddAllCameras: 1\n    streamingMipmapsMemoryBudget: 512\n    streamingMipmapsRenderersPerFrame: 512\n    streamingMipmapsMaxLevelReduction: 2\n    streamingMipmapsMaxFileIORequests: 1024\n    particleRaycastBudget: 1024\n    asyncUploadTimeSlice: 2\n    asyncUploadBufferSize: 16\n    asyncUploadPersistentBuffer: 1\n    resolutionScalingFixedDPIFactor: 1\n    excludedTargetPlatforms: []\n  - serializedVersion: 2\n    name: Ultra\n    pixelLightCount: 4\n    shadows: 2\n    shadowResolution: 2\n    shadowProjection: 1\n    shadowCascades: 4\n    shadowDistance: 150\n    shadowNearPlaneOffset: 3\n    shadowCascade2Split: 0.33333334\n    shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}\n    shadowmaskMode: 1\n    blendWeights: 4\n    textureQuality: 0\n    anisotropicTextures: 2\n    antiAliasing: 2\n    softParticles: 1\n    softVegetation: 1\n    realtimeReflectionProbes: 1\n    billboardsFaceCameraPosition: 1\n    vSyncCount: 1\n    lodBias: 2\n    maximumLODLevel: 0\n    streamingMipmapsActive: 0\n    streamingMipmapsAddAllCameras: 1\n    streamingMipmapsMemoryBudget: 512\n    streamingMipmapsRenderersPerFrame: 512\n    streamingMipmapsMaxLevelReduction: 2\n    streamingMipmapsMaxFileIORequests: 1024\n    particleRaycastBudget: 4096\n    asyncUploadTimeSlice: 2\n    asyncUploadBufferSize: 16\n    asyncUploadPersistentBuffer: 1\n    resolutionScalingFixedDPIFactor: 1\n    excludedTargetPlatforms: []\n  m_PerPlatformDefaultQuality:\n    Android: 2\n    Lumin: 5\n    Nintendo 3DS: 5\n    Nintendo Switch: 5\n    PS4: 5\n    PSP2: 2\n    Stadia: 5\n    Standalone: 5\n    WebGL: 3\n    Windows Store Apps: 5\n    XboxOne: 5\n    iPhone: 2\n    tvOS: 2\n"
  },
  {
    "path": "ProjectSettings/TagManager.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!78 &1\nTagManager:\n  serializedVersion: 2\n  tags: []\n  layers:\n  - Default\n  - TransparentFX\n  - Ignore Raycast\n  - \n  - Water\n  - UI\n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  m_SortingLayers:\n  - name: Default\n    uniqueID: 0\n    locked: 0\n"
  },
  {
    "path": "ProjectSettings/TimeManager.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!5 &1\nTimeManager:\n  m_ObjectHideFlags: 0\n  Fixed Timestep: 0.02\n  Maximum Allowed Timestep: 0.33333334\n  m_TimeScale: 1\n  Maximum Particle Timestep: 0.03\n"
  },
  {
    "path": "ProjectSettings/UnityConnectSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!310 &1\nUnityConnectSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 1\n  m_Enabled: 0\n  m_TestMode: 0\n  m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events\n  m_EventUrl: https://cdp.cloud.unity3d.com/v1/events\n  m_ConfigUrl: https://config.uca.cloud.unity3d.com\n  m_TestInitMode: 0\n  CrashReportingSettings:\n    m_EventUrl: https://perf-events.cloud.unity3d.com\n    m_Enabled: 0\n    m_LogBufferSize: 10\n    m_CaptureEditorExceptions: 1\n  UnityPurchasingSettings:\n    m_Enabled: 0\n    m_TestMode: 0\n  UnityAnalyticsSettings:\n    m_Enabled: 0\n    m_TestMode: 0\n    m_InitializeOnStartup: 1\n  UnityAdsSettings:\n    m_Enabled: 0\n    m_InitializeOnStartup: 1\n    m_TestMode: 0\n    m_IosGameId: \n    m_AndroidGameId: \n    m_GameIds: {}\n    m_GameId: \n  PerformanceReportingSettings:\n    m_Enabled: 0\n"
  },
  {
    "path": "ProjectSettings/VFXManager.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!937362698 &1\nVFXManager:\n  m_ObjectHideFlags: 0\n  m_IndirectShader: {fileID: 0}\n  m_CopyBufferShader: {fileID: 0}\n  m_SortShader: {fileID: 0}\n  m_StripUpdateShader: {fileID: 0}\n  m_RenderPipeSettingsPath: \n  m_FixedTimeStep: 0.016666668\n  m_MaxDeltaTime: 0.05\n"
  },
  {
    "path": "ProjectSettings/VersionControlSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!890905787 &1\nVersionControlSettings:\n  m_ObjectHideFlags: 0\n  m_Mode: Visible Meta Files\n  m_CollabEditorSettings:\n    inProgressEnabled: 1\n"
  },
  {
    "path": "ProjectSettings/XRSettings.asset",
    "content": "{\n    \"m_SettingKeys\": [\n        \"VR Device Disabled\",\n        \"VR Device User Alert\"\n    ],\n    \"m_SettingValues\": [\n        \"False\",\n        \"False\"\n    ]\n}"
  },
  {
    "path": "README.md",
    "content": "<h1 align=\"center\">Fancy Carousel View</h1>\n\n[![license](https://img.shields.io/badge/LICENSE-MIT-green.svg)](LICENSE.md)\n\n[日本語ドキュメント(Japanese Documents Available)](README_JA.md)\n\nCarousel View for Unity uGUI using <a href=\"https://github.com/setchi/FancyScrollView\">Fancy Scroll View</a>.\n\n<p align=\"center\">\n  <img width=\"80%\" src=\"https://user-images.githubusercontent.com/47441314/136406607-a3bc489f-2c77-40bc-bc6d-d2858f82a73c.gif\" alt=\"Demo\">\n</p>\n\n## Table of Contents\n<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n<!-- param::isNotitle::true:: -->\n\n- [Features](#features)\n- [Demo](#demo)\n- [Setup](#setup)\n    - [Requirement](#requirement)\n    - [Install](#install)\n- [Basic Usage](#basic-usage)\n    - [Create data for the cells](#create-data-for-the-cells)\n    - [Create the cell view](#create-the-cell-view)\n    - [Create the carousel view](#create-the-carousel-view)\n    - [Initialize the carousel view](#initialize-the-carousel-view)\n- [Advanced Usage](#advanced-usage)\n    - [Understand the properties of the Carousel View](#understand-the-properties-of-the-carousel-view)\n    - [Use the progress View](#use-the-progress-view)\n    - [Custom cell movements](#custom-cell-movements)\n    - [Use with scroll view](#use-with-scroll-view)\n- [License](#license)\n\n<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\n## Features\n* You can create the Carousel View in a few simple steps.  \n* High performance because cells that are not needed for display are reused.\n* Supports vertical and horizontal scrolling.\n* The movement of the carousel and each parameters can be customized in detail.\n\n## Demo\n1. Clone this repository.\n2. Open and play the following scene.\n    * https://github.com/Haruma-K/FancyCarouselView/blob/master/Assets/Demo/Scenes/CarouselDemo.unity\n\n## Setup\n\n#### Requirement\nUnity 2019.4 or higher.\n\n#### Install\nThe Fancy Carousel View uses the <a href=\"https://github.com/setchi/FancyScrollView\">Fancy Scroll View</a> as a low layer implementation.  \nSo you need to install both of them.\n\n1. Open the Package Manager from Window > Package Manager\n2. \"+\" button > Add package from git URL\n3. Enter the following to install Fancy Scroll View\n   * https://github.com/setchi/FancyScrollView.git#upm\n4. Enter the following to install Fancy Carousel View\n   * https://github.com/Haruma-K/FancyCarouselView.git?path=/Assets/FancyCarouselView\n\n<p align=\"center\">\n  <img width=\"60%\" src=\"https://user-images.githubusercontent.com/47441314/118421190-97842b00-b6fb-11eb-9f94-4dc94e82367a.png\" alt=\"Package Manager\">\n</p>\n\nOr, open Packages/manifest.json and add the following to the dependencies block.\n\n```json\n{\n    \"dependencies\": {\n        \"jp.setchi.fancyscrollview\": \"https://github.com/setchi/FancyScrollView.git#upm\",\n        \"com.harumak.fancycarouselview\": \"https://github.com/Haruma-K/FancyCarouselView.git?path=/Assets/FancyCarouselView\"\n    }\n}\n```\n\nIf you want to set the target version, specify it like follow.\n\n* https://github.com/Haruma-K/FancyCarouselView.git?path=/Assets/FancyCarouselView#1.0.0\n\n## Basic Usage\n\n#### Create data for the cells\nFirst, create data for each of the cells that are elements of the carousel view.  \nIn the following example, defines the key to load cell background texture and the string that is displayed in the cell.\n\n```cs\npublic class DemoData\n{\n    public string SpriteResourceKey { get; }\n    public string Text { get; }\n\n    public DemoData(string spriteResourceKey, string text)\n    {\n        SpriteResourceKey = spriteResourceKey;\n        Text = text;\n    }\n}\n```\n\n#### Create the cell view\nNext, create the view of the cell.  \nAs the following, inherit from the `CarouselCell` class and write the process of updating the view in the `Refresh` method.\n\n```cs\nusing FancyCarouselView.Runtime.Scripts;\nusing UnityEngine;\nusing UnityEngine.UI;\n\npublic class DemoCarouselCell : CarouselCell<DemoData, DemoCarouselCell>\n{\n    [SerializeField] private Image _image = default;\n    [SerializeField] private Text _text = default;\n\n    protected override void Refresh(DemoData data)\n    {\n        _image.sprite = Resources.Load<Sprite>(data.SpriteResourceKey);\n        _text.text = data.Text;\n    }\n}\n```\n\nAttach this script to a GameObject and create a prefab of the cell.\n\n#### Create the carousel view\nNext, create the carousel view.  \nCreate a class that inherits from the `CarouselView` class with the data and the cell class described above as the generic.\n\n```cs\nusing FancyCarouselView.Runtime.Scripts;\n\npublic class DemoCarouselView : CarouselView<DemoData, DemoCarouselCell>\n{\n}\n```\n\nAttach it to a GameObject under Canvas.  \nAdjust the size of the carousel view with the size of RectTransform, and adjust the size per cell with `Cell Size` property of `CarouselView`.  \nAlso, assign the prefab created in the previous section to the `Cell Prefab` property.\n\n#### Initialize the carousel view\nFinally, pass the data using the `CarouselView.Setup` method, and the carousel view will be displayed.\n\n```cs\nusing System.Linq;\nusing UnityEngine;\n\nnamespace Demo.Scripts\n{\n    public class Demo : MonoBehaviour\n    {\n        [SerializeField] private DemoCarouselView _carouselView = default;\n        [SerializeField, Range(1, 3)] private int _bannerCount = 3;\n\n        private void Start()\n        {\n            var items = Enumerable.Range(0, _bannerCount)\n                .Select(i =>\n                {\n                    var spriteResourceKey = $\"tex_demo_banner_{i:D2}\";\n                    var text = $\"Demo Banner {i:D2}\";\n                    return new DemoData(spriteResourceKey, text);\n                })\n                .ToArray();\n            _carouselView.Setup(items);\n        }\n    }\n}\n```\n\n## Advanced Usage\n\n#### Understand the properties of the Carousel View\nThe description of each property in the Carousel View inspector is as follows.\n\n<table>\n<thead>\n<tr><td colspan=\"3\"><b>Property Name</b></td><td><b>Description</b></td></tr>\n</thead>\n<tbody>\n<tr><td colspan=\"3\">Cell Container</td><td>RectTransform representing the area of the carousel view.<br>Cells outside this area will be hidden and be reused.</td></tr>\n<tr><td colspan=\"3\">Cell Prefab</td><td>Prefab of the cell.</td></tr>\n<tr><td colspan=\"3\">Cell Size</td><td>Size of the cell.</td></tr>\n<tr><td colspan=\"3\">Cell Spacing</td><td>Spacing between cells.</td></tr>\n<tr><td colspan=\"3\">Snap Animation Durataion</td><td>Seconds of the snap animation.</td></tr>\n<tr><td colspan=\"3\">Snap Animation Type</td><td>Easing type of the snap animation.</td></tr>\n<tr><td colspan=\"3\">Auto Scrolling</td><td>If true, scroll automatically at regular intervals.</td></tr>\n<tr><td></td><td colspan=2>Interval</td><td>Auto scrolling interval in seconds。</td></tr>\n<tr><td></td><td colspan=2>Inverse Direction</td><td>If true, reverse the direction of the auto scrolling.</td></tr>\n<tr><td colspan=\"3\">Scroll Direction</td><td>Direction of the scrolling.</td></tr>\n<tr><td colspan=\"3\">Loop</td><td>If true, loop when reaches the end.</td></tr>\n<tr><td colspan=\"3\">Draggable</td><td>Dragable or not.</td></tr>\n<tr><td colspan=\"3\">Progress View</td><td>View that represents the progress. See below for details.</td></tr>\n<tr><td></td><td colspan=2>Clickable</td><td>If true, you can click progress view to scroll to the element at the clicked index.</td></tr>\n</tbody>\n</table>\n\n#### Use the progress View\nFancy Carousel View supports the progress view representing the carousel progress.\n\nYou can use the simple dot progress view by the following steps.\n\n1. Instantiate `pfb_default_carousel_progress_view.prefab` in a scene.\n2. Assign 1. to the Progress View property of the Carousel View.\n\n`DotCarouselProgressView` derived from `CarouselProgressView` is attached to the Prefab above.  \nIf you implement your own class that derived from `CarouselProgressView` or `ClickableCarouselProgressView`, you can create a progress view that behaves as you wish.\n\nIf you want to change only the color or size of the dot while using `DotCarouselProgressView`, you can do so by replacing only the Progress Element Prefab in the Inspector of `DotCarouselProgressView`.\n\n<p align=\"center\">\n  <img width=\"80%\" src=\"https://user-images.githubusercontent.com/47441314/143854073-ce7b5f99-22b8-438d-b6dc-44a2aa1eb52f.gif\" alt=\"Custom Progress View\">\n</p>\n\n#### Custom cell movements\nYou can override `CarouselCell.OnPositionUpdated` to implement your own cell movement.  \nThe following is an example of a custom cell movements.\n\n```cs\nprotected override void OnPositionUpdated(float position)\n{\n    base.OnPositionUpdated(position);\n\n    var trans = transform;\n    var pos = position * 2.0f - 1.0f;\n    var absPos = Mathf.Abs(pos);\n    var cellPosZ = Mathf.Lerp(0.0f, 120.0f, absPos);\n    trans.localPosition = new Vector3(trans.localPosition.x, trans.localPosition.y, cellPosZ);\n    trans.rotation = Quaternion.AngleAxis(pos * -20.0f, Vector3.up);\n}\n```\n\n<p align=\"center\">\n  <img width=\"80%\" src=\"https://user-images.githubusercontent.com/47441314/136646317-d2138797-024a-44d4-af4c-b3d389972890.gif\" alt=\"Demo\">\n</p>\n\n#### Use with scroll view\nWhen you use the carousel view as the content of the scroll view, the carousel view blocks the dragging of the scroll view according to the Unity specification.  \nIn other words, dragging the carousel view will not scroll the scroll view.\n\n<p align=\"center\">\n  <img width=\"70%\" src=\"https://user-images.githubusercontent.com/47441314/139780467-5678bf8a-fe4b-46d4-a8e6-34c66c24d4f2.gif\" alt=\"Demo\">\n</p>\n\nIn such a case, attach the `Scroll Event Propagator` component to the Carousel View GameObject.  \nThis component will propagate drag events to the parent `ScrollRect` properly.  \nAs a result, the scroll view and carousel view will work properly as shown below.\n\n<p align=\"center\">\n  <img width=\"70%\" src=\"https://user-images.githubusercontent.com/47441314/139779762-13e992e1-ccc6-4819-a283-9ec5a79ce4e9.gif\" alt=\"Demo\">\n</p>\n\n## License\nThis software is released under the MIT License.  \nYou are free to use it within the scope of the license.  \nHowever, the following copyright and license notices are required for use.\n\n* [LICENSE.md](LICENSE.md)\n\nAnd this software is implemented on the assumption that the following software is installed (not included).\n\n* [FancyScrollView](https://github.com/setchi/FancyScrollView)\n\nSee [Third Party Notices.md](Third%20Party%20Notices.md) for details on the license of this software.\n"
  },
  {
    "path": "README_JA.md",
    "content": "<h1 align=\"center\">Fancy Carousel View</h1>\n\n[![license](https://img.shields.io/badge/LICENSE-MIT-green.svg)](LICENSE.md)\n\n[English Documents Available(英語ドキュメント)](README.md)\n\n<a href=\"https://github.com/setchi/FancyScrollView\">Fancy Scroll View</a>を使用した、UnityのuGUI用のカルーセルビューです。\n\n<p align=\"center\">\n  <img width=\"80%\" src=\"https://user-images.githubusercontent.com/47441314/136406607-a3bc489f-2c77-40bc-bc6d-d2858f82a73c.gif\" alt=\"Demo\">\n</p>\n\n## 目次\n<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n<!-- param::isNotitle::true:: -->\n\n- [特徴](#%E7%89%B9%E5%BE%B4)\n- [デモ](#%E3%83%87%E3%83%A2)\n- [セットアップ](#%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97)\n    - [要件](#%E8%A6%81%E4%BB%B6)\n    - [インストール](#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)\n- [基本的な使い方](#%E5%9F%BA%E6%9C%AC%E7%9A%84%E3%81%AA%E4%BD%BF%E3%81%84%E6%96%B9)\n    - [セルのためのデータを作成する](#%E3%82%BB%E3%83%AB%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B)\n    - [セルを作成する](#%E3%82%BB%E3%83%AB%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B)\n    - [カルーセルビューを作成する](#%E3%82%AB%E3%83%AB%E3%83%BC%E3%82%BB%E3%83%AB%E3%83%93%E3%83%A5%E3%83%BC%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B)\n    - [カルーセルビューを初期化する](#%E3%82%AB%E3%83%AB%E3%83%BC%E3%82%BB%E3%83%AB%E3%83%93%E3%83%A5%E3%83%BC%E3%82%92%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%99%E3%82%8B)\n- [応用的な使い方](#%E5%BF%9C%E7%94%A8%E7%9A%84%E3%81%AA%E4%BD%BF%E3%81%84%E6%96%B9)\n    - [Carousel Viewの各プロパティを理解する](#carousel-view%E3%81%AE%E5%90%84%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3%E3%82%92%E7%90%86%E8%A7%A3%E3%81%99%E3%82%8B)\n    - [プログレスビューを使用する](#%E3%83%97%E3%83%AD%E3%82%B0%E3%83%AC%E3%82%B9%E3%83%93%E3%83%A5%E3%83%BC%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B)\n    - [セルの動きをカスタムする](#%E3%82%BB%E3%83%AB%E3%81%AE%E5%8B%95%E3%81%8D%E3%82%92%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%81%99%E3%82%8B)\n    - [スクロールビューと併せて使う](#%E3%82%B9%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%AB%E3%83%93%E3%83%A5%E3%83%BC%E3%81%A8%E4%BD%B5%E3%81%9B%E3%81%A6%E4%BD%BF%E3%81%86)\n- [ライセンス](#%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9)\n\n<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\n## 特徴\n* カルーセルビューを数ステップで簡単に作成可能\n* 表示に不要なセルが使いまわされるため高パフォーマンス\n* 縦/横スクロールに対応\n* カルーセルの動き・各パラメータは細かくカスタム可能\n\n## デモ\n1. リポジトリをクローンする\n2. 以下のシーンを開いて再生する\n    * https://github.com/Haruma-K/FancyCarouselView/blob/master/Assets/Demo/Scenes/CarouselDemo.unity\n\n## セットアップ\n\n#### 要件\nUnity 2019.4 以上\n\n#### インストール\nFancy Carousel Viewは低レイヤー実装として<a href=\"https://github.com/setchi/FancyScrollView\">Fancy Scroll View</a>を使用しています。  \nしたがってこれら二つをインストールする必要があります。\n\n1. Window > Package ManagerからPackage Managerを開く\n2. 「+」ボタン > Add package from git URL\n3. 以下を入力してFancy Scroll Viewをインストール\n   * https://github.com/setchi/FancyScrollView.git#upm\n4. 以下を入力してFancy Carousel Viewをインストール\n   * https://github.com/Haruma-K/FancyCarouselView.git?path=/Assets/FancyCarouselView\n\n<p align=\"center\">\n  <img width=\"60%\" src=\"https://user-images.githubusercontent.com/47441314/118421190-97842b00-b6fb-11eb-9f94-4dc94e82367a.png\" alt=\"Package Manager\">\n</p>\n\nあるいはPackages/manifest.jsonを開き、dependenciesブロックに以下を追記します。\n\n```json\n{\n    \"dependencies\": {\n        \"jp.setchi.fancyscrollview\": \"https://github.com/setchi/FancyScrollView.git#upm\",\n        \"com.harumak.fancycarouselview\": \"https://github.com/Haruma-K/FancyCarouselView.git?path=/Assets/FancyCarouselView\"\n    }\n}\n```\n\nバージョンを指定したい場合には以下のように記述します。\n\n* https://github.com/Haruma-K/FancyCarouselView.git?path=/Assets/FancyCarouselView#1.0.0\n\n## 基本的な使い方\n\n#### セルのためのデータを作成する\nまずカルーセルの要素であるセルごとのデータを作成します。  \n以下の例では、セルの背景テクスチャを読み込むためのキーとセルに表示する文字列を定義しています。\n\n```cs\npublic class DemoData\n{\n    public string SpriteResourceKey { get; }\n    public string Text { get; }\n\n    public DemoData(string spriteResourceKey, string text)\n    {\n        SpriteResourceKey = spriteResourceKey;\n        Text = text;\n    }\n}\n```\n\n#### セルを作成する\n次にセルのビューを作成します。  \n`CarouselCell`クラスを継承し、`Refresh`メソッドにビューの更新処理を記述します。\n\n```cs\nusing FancyCarouselView.Runtime.Scripts;\nusing UnityEngine;\nusing UnityEngine.UI;\n\npublic class DemoCarouselCell : CarouselCell<DemoData, DemoCarouselCell>\n{\n    [SerializeField] private Image _image = default;\n    [SerializeField] private Text _text = default;\n\n    protected override void Refresh(DemoData data)\n    {\n        _image.sprite = Resources.Load<Sprite>(data.SpriteResourceKey);\n        _text.text = data.Text;\n    }\n}\n```\n\nこれをGameObjectにアタッチし、セルのPrefabを作成しておきます。\n\n#### カルーセルビューを作成する\n次にカルーセルビューを作成します。  \n上述のデータとセルのクラスをジェネリックの型に指定したCarouselViewクラスを継承したクラスを作成します。\n\n```cs\nusing FancyCarouselView.Runtime.Scripts;\n\npublic class DemoCarouselView : CarouselView<DemoData, DemoCarouselCell>\n{\n}\n```\n\nこれをCanvas配下のGameObjectにアタッチします。  \nRectTransformの大きさでカルーセルビューの大きさを調整し、CarouselViewの`CellSize`プロパティでセル一個あたりの大きさを調整します。  \nまた、`Cell Prefab`プロパティには前節で作成したPrefabをアサインします。\n\n#### カルーセルビューを初期化する\nここまでできたら、あとは`CarouseView.Setup`メソッドを用いてデータを渡せばカルーセルが表示されます。\n\n```cs\nusing System.Linq;\nusing UnityEngine;\n\nnamespace Demo.Scripts\n{\n    public class Demo : MonoBehaviour\n    {\n        [SerializeField] private DemoCarouselView _carouselView = default;\n        [SerializeField, Range(1, 3)] private int _bannerCount = 3;\n\n        private void Start()\n        {\n            var items = Enumerable.Range(0, _bannerCount)\n                .Select(i =>\n                {\n                    var spriteResourceKey = $\"tex_demo_banner_{i:D2}\";\n                    var text = $\"Demo Banner {i:D2}\";\n                    return new DemoData(spriteResourceKey, text);\n                })\n                .ToArray();\n            _carouselView.Setup(items);\n        }\n    }\n}\n```\n\n## 応用的な使い方\n\n#### Carousel Viewの各プロパティを理解する\nCarousel ViewのInspectorで設定できる各プロパティの説明は以下の通りです。\n\n<table>\n<thead>\n<tr><td colspan=\"3\"><b>プロパティ名</b></td><td><b>説明</b></td></tr>\n</thead>\n<tbody>\n<tr><td colspan=\"3\">Cell Container</td><td>カルーセルビューの領域を表すRectTransform。<br>この領域から出たセルは非表示になり、再利用の対象になります。</td></tr>\n<tr><td colspan=\"3\">Cell Prefab</td><td>セルのPrefab。</td></tr>\n<tr><td colspan=\"3\">Cell Size</td><td>セルのサイズ。</td></tr>\n<tr><td colspan=\"3\">Cell Spacing</td><td>セル同士の間隔。</td></tr>\n<tr><td colspan=\"3\">Snap Animation Durataion</td><td>スナップアニメーションの秒数。</td></tr>\n<tr><td colspan=\"3\">Snap Animation Type</td><td>スナップアニメーションのイージングタイプ。</td></tr>\n<tr><td colspan=\"3\">Auto Scrolling</td><td>一定間隔で自動するクロールするか。</td></tr>\n<tr><td></td><td colspan=2>Interval</td><td>自動スクロールの間隔（秒）。</td></tr>\n<tr><td></td><td colspan=2>Inverse Direction</td><td>自動スクロールの方向を反対するかどうか。</td></tr>\n<tr><td colspan=\"3\">Scroll Direction</td><td>スクロール方向。</td></tr>\n<tr><td colspan=\"3\">Loop</td><td>両端でループするかどうか。</td></tr>\n<tr><td colspan=\"3\">Draggable</td><td>ドラッグ可能かどうか。</td></tr>\n<tr><td colspan=\"3\">Progress View</td><td>進捗を表すビュー。詳細は後述。</td></tr>\n<tr><td></td><td colspan=2>Clickable</td><td>Progress Viewをクリックした時にそのインデックスにジャンプするか。</td></tr>\n</tbody>\n</table>\n\n#### プログレスビューを使用する\nFancy Carousel Viewはカルーセルの進捗を表すプログレスビューをサポートしています。\n\nシンプルなドット表示のプログレスビューは以下の手順で使用できます。\n\n1. `pfb_default_carousel_progress_view.prefab`をシーンにインスタンス化\n2. Carousel ViewのProgress Viewプロパティに1.をアサイン\n\n上記のPrefabには`CarouselProgressView`を継承した`DotCarouselProgressView`がアタッチされています。  \n`CarouselProgressView`や`ClickableCarouselProgressView`を継承したクラスを独自で実装すれば、任意の挙動をするプログレスビューを作成できます。\n\nまた、`DotCarouselProgressView`を使用しつつドットの色やサイズだけを変えたい場合には、  \n`DotCarouselProgressView`のInspectorからProgress Element Prefabだけを差し替えることで実現できます。\n\n<p align=\"center\">\n  <img width=\"70%\" src=\"https://user-images.githubusercontent.com/47441314/143854073-ce7b5f99-22b8-438d-b6dc-44a2aa1eb52f.gif\" alt=\"Custom Progress View\">\n</p>\n\n#### セルの動きをカスタムする\n`CarouselCell.OnPositionUpdated`をオーバーライドするとセルの動きを独自実装できます。  \n以下はセルの動きを独自実装した例です。\n\n```cs\nprotected override void OnPositionUpdated(float position)\n{\n    base.OnPositionUpdated(position);\n\n    var trans = transform;\n    var pos = position * 2.0f - 1.0f;\n    var absPos = Mathf.Abs(pos);\n    var cellPosZ = Mathf.Lerp(0.0f, 120.0f, absPos);\n    trans.localPosition = new Vector3(trans.localPosition.x, trans.localPosition.y, cellPosZ);\n    trans.rotation = Quaternion.AngleAxis(pos * -20.0f, Vector3.up);\n}\n```\n\n<p align=\"center\">\n  <img width=\"70%\" src=\"https://user-images.githubusercontent.com/47441314/136646317-d2138797-024a-44d4-af4c-b3d389972890.gif\" alt=\"Demo\">\n</p>\n\n#### スクロールビューと併せて使う\nスクロールビューのコンテンツとしてカルーセルビューを使う場合、  \nUnityの仕様によりカルーセルビューがスクロールビューのドラッグをブロックします。  \nすなわち、カルーセルビューをドラッグしてもスクロールビューはスクロールしません。\n\n<p align=\"center\">\n  <img width=\"70%\" src=\"https://user-images.githubusercontent.com/47441314/139780467-5678bf8a-fe4b-46d4-a8e6-34c66c24d4f2.gif\" alt=\"Demo\">\n</p>\n\nこのような場合にはカルーセルビューのGameObjectに`Scroll Event Propagator`コンポーネントをアタッチします。  \nこのコンポーネントはドラッグイベントを適切に親の`ScrollRect`に伝播します。  \n結果として以下のようにスクロールビューとカルーセルビューが適切に動作します。\n\n<p align=\"center\">\n  <img width=\"70%\" src=\"https://user-images.githubusercontent.com/47441314/139779762-13e992e1-ccc6-4819-a283-9ec5a79ce4e9.gif\" alt=\"Demo\">\n</p>\n\n## ライセンス\n本ソフトウェアはMITライセンスで公開しています。  \nライセンスの範囲内で自由に使っていただいてかまいませんが、\n使用の際は以下の著作権表示とライセンス表示が必須となります。\n\n* https://github.com/Haruma-K/FancyCarouselView/blob/master/LICENSE.md\n\nまた、本ソフトウェアは以下のソフトウェアがインストールされていることを前提として実装されています（同梱はされていません）。\n\n* [FancyScrollView](https://github.com/setchi/FancyScrollView)\n\nこのソフトウェアのライセンスの詳細については [Third Party Notices.md](Third%20Party%20Notices.md) を参照してください。\n"
  },
  {
    "path": "Third Party Notices.md",
    "content": "This software is implemented on the assumption that the following software is installed (not included).\n---------\n\nFancyScrollView (https://github.com/setchi/FancyScrollView)\n\nThe MIT License (MIT)\n\nCopyright (c) 2020 setchi\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  }
]