{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "xsJJaZ01T6JH" }, "source": [ "# 🏙️ VoxCity Complete Demo\n", "\n", "**VoxCity** is a Python package for generating 3D voxel-based urban models from open geospatial data.\n", "\n", "## What This Notebook Covers\n", "\n", "1. **Environment Setup** - Install VoxCity and authenticate Google Earth Engine\n", "2. **Area Selection** - Define your study area using coordinates or interactive map\n", "3. **Configuration** - Select data sources and parameters\n", "4. **Model Generation** - Create 3D voxel city models\n", "5. **Visualization** - View and analyze your urban model\n", "\n", "## Prerequisites\n", "\n", "- Python 3.8+\n", "- Google Earth Engine account (for some data sources)\n", "- Internet connection for data download" ] }, { "cell_type": "markdown", "metadata": { "id": "B24u-0E7UIo7" }, "source": [ "## ⚠️ Important Notes\n", "\n", "- Execute cells **in order** from Step 1 to Step 5 by clicking the ▶️ icons\n", "- In **Step 2**, choose **only ONE option** (Option 1, 2, or 3) for defining your study area\n", "- Some data sources require Google Earth Engine authentication\n", "- Model generation time depends on area size and voxel resolution" ] }, { "cell_type": "markdown", "metadata": { "id": "KBEOxqh0-WjR" }, "source": [ "---\n", "# 📦 Step 1: Prepare Environment\n", "\n", "Install VoxCity and set up authentication for data sources." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "executionInfo": { "elapsed": 73621, "status": "ok", "timestamp": 1741705916359, "user": { "displayName": "Kunihiko Fujiwara", "userId": "03970325715211983816" }, "user_tz": -480 }, "id": "3xwczicBFTUe", "outputId": "3ced36f3-ed20-484d-d7c9-3361f74a3320" }, "outputs": [], "source": [ "#@title 1.1. Install voxcity\n", "!pip install voxcity\n", "!apt-get update\n", "!apt-get install -y xvfb libgl1-mesa-glx" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "colab": { "base_uri": "https://localhost:8080/" }, "executionInfo": { "elapsed": 35543, "status": "ok", "timestamp": 1741705952175, "user": { "displayName": "Kunihiko Fujiwara", "userId": "03970325715211983816" }, "user_tz": -480 }, "id": "S3jzHwuEhjrI", "outputId": "dbe7e861-4196-4cd0-c133-fc434d532400" }, "outputs": [], "source": [ "#@title 1.2. Authenticate Google Earth Engine (Click link, generate token, copy and paste the token)\n", "!earthengine authenticate --auth_mode=notebook" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "hC7Tn2Y3d5ap", "outputId": "19a3d2b4-c419-4fc5-d253-1ed6c6c58eca" }, "outputs": [], "source": [ "#@title 1.3. Authenticate Google Earth Engine on local environment\n", "!earthengine authenticate\n", "\n", "import ee\n", "ee.Authenticate()\n", "ee.Initialize(project='your_project')" ] }, { "cell_type": "markdown", "metadata": { "id": "GQaebhqM-2vS" }, "source": [ "---\n", "# 📍 Step 2: Define Target Area\n", "\n", "Choose **ONE** of the following three options to define your study area.\n", "\n", "| Option | Method | Best For |\n", "|--------|--------|----------|\n", "| Option 1 | Manual coordinates | When you know exact coordinates |\n", "| Option 2 | Draw rectangle | Interactive selection by corners |\n", "| Option 3 | Center + dimensions | Define by center point and size |" ] }, { "cell_type": "markdown", "metadata": { "id": "pxm6MLF0_Je5" }, "source": [ "## Option 1: Set Coordinates Directly\n", "\n", "Define the four corners of your study area as (longitude, latitude) pairs.\n", "Coordinates must be in **WGS84 (EPSG:4326)** format." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "hdtK7RDrd5ap" }, "outputs": [], "source": [ "rectangle_vertices = [\n", " (-74.02034270713835, 40.69992881162822), # Southwest corner (longitude, latitude)\n", " (-74.02034270713835, 40.7111851828668), # Northwest corner (longitude, latitude)\n", " (-74.00555129286164, 40.7111851828668), # Northeast corner (longitude, latitude)\n", " (-74.00555129286164, 40.69992881162822) # Southeast corner (longitude, latitude)\n", "]" ] }, { "cell_type": "markdown", "metadata": { "id": "FHrhvcJJd5aq" }, "source": [ "## Option 2: Draw Rectangle on Map\n", "\n", "Interactive selection - click the rectangle tool and draw your area on the map." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "Nra9xPrSerQr" }, "outputs": [], "source": [ "#@title 2.2.1. Set target city (you need to fill in required values before executing!)\n", "cityname = \"new york\" #@param {type:\"string\"}" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "colab": { "base_uri": "https://localhost:8080/", "height": 421, "referenced_widgets": [ "8e7768bd0bfe4f6c9c88940f1b17d62f", "e1972621253346118f61660516aeb9a8", "6180f31cafe74baebc1b66c6613a50fe", "dc0004c37c314b8ebcf3030559a888d1", "486c0ec8c7694d6cb2c84c47a945e0c5", "d698ba5a555b4389a9e82de5a37430fa", "63be2ca589bc4c7ea57ad55ab718987f", "13adfd64e6e74c0e81d57d0a755b1648", "68bba48c070e4310a5bb208d53a436f2" ] }, "executionInfo": { "elapsed": 562, "status": "ok", "timestamp": 1739800750872, "user": { "displayName": "Kunihiko Fujiwara", "userId": "03970325715211983816" }, "user_tz": -480 }, "id": "xm2NcICP_6GF", "outputId": "576051a1-3049-418b-9dde-59fe3f807a0f" }, "outputs": [], "source": [ "#@title 2.2.2. Draw a rectangle on a map (Click ■ on the left side, then click the north west corner and the south east corner of the rectangle.)\n", "from voxcity.geoprocessor.draw import draw_rectangle_map_cityname\n", "\n", "m, rectangle_vertices = draw_rectangle_map_cityname(cityname, zoom=15)\n", "m" ] }, { "cell_type": "markdown", "metadata": { "id": "MP_EIVXV_63L" }, "source": [ "## Option 3: Center Point + Dimensions\n", "\n", "Define by clicking a center point and specifying width (east-west) and height (north-south) in meters." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "0SR5Ly3eBhfl" }, "outputs": [], "source": [ "#@title 2.3.1. Set width (m) and height (m) (you need to fill in required values before executing!)\n", "width = 1250 #@param {type:\"number\"}\n", "height = 1250 #@param {type:\"number\"}" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "colab": { "base_uri": "https://localhost:8080/", "height": 421, "referenced_widgets": [ "8af7a94c144f44bd9f476513d443288b", "973a59b446c14a89a8d2f86b774cba12", "74c8ea78ae4a4a319875a2a62f9c71c6", "d429a96351f4491d99109cace13e9393", "7cd2bd1168cf481c9445ee1c6c3a21cd", "45693a96da344092a2f36b1ceda14bf6", "80da956946b94da9bdc848da57113e20", "2b7c02a210d34c15a7e2dd9ee3944a3b", "e52870c81ba44476898e22a58b08355a" ] }, "executionInfo": { "elapsed": 466, "status": "ok", "timestamp": 1741494422909, "user": { "displayName": "Kunihiko Fujiwara", "userId": "03970325715211983816" }, "user_tz": -480 }, "id": "4jf5xarPGCiT", "outputId": "fac1d838-c795-4f17-b9b1-d29bc5045c1b" }, "outputs": [], "source": [ "#@title 2.3.2. Draw a center point (circlemarker) on a map (Click ○ on the left side and then click the center location on the map.)\n", "from voxcity.geoprocessor.draw import center_location_map_cityname\n", "\n", "m, rectangle_vertices = center_location_map_cityname(cityname, width, height, zoom=15)\n", "m" ] }, { "cell_type": "markdown", "metadata": { "id": "mBdaDdW4D5_4" }, "source": [ "---\n", "# ⚙️ Step 3: Configure Data Sources\n", "\n", "Select which data sources to use for buildings, terrain, land cover, and vegetation.\n", "\n", "### Available Data Sources\n", "\n", "| Category | Options |\n", "|----------|---------|\n", "| **Buildings** | OpenStreetMap, Overture, EUBUCCO v0.1, Open Building 2.5D, Microsoft Building Footprints |\n", "| **DEM/Terrain** | USGS 3DEP 1m, DeltaDTM, FABDEM, NASA, Copernicus |\n", "| **Land Cover** | OpenStreetMap, ESA WorldCover, ESRI 10m, Dynamic World |\n", "| **Canopy Height** | High Resolution 1m, ETH Global Sentinel-2, Static |" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "XYyT56LGfS2e" }, "outputs": [], "source": [ "#@title 3.1. Set data sources and meshsize (m)\n", "building_source = 'OpenStreetMap' #@param ['OpenStreetMap', 'Overture', 'EUBUCCO v0.1', 'Open Building 2.5D Temporal', 'Microsoft Building Footprints', 'Local file']\n", "building_complementary_source = \"None\" #@param ['None', 'Open Building 2.5D Temporal', 'Microsoft Building Footprints', 'England 1m DSM - DTM', 'Netherlands 0.5m DSM - DTM', 'OpenMapTiles', 'Local file', 'OpenStreetMap', 'Overture', 'EUBUCCO v0.1']\n", "land_cover_source = 'OpenStreetMap' #@param ['OpenStreetMap', 'Urbanwatch', 'OpenEarthMapJapan', 'ESA WorldCover', 'ESRI 10m Annual Land Cover', 'Dynamic World V1']\n", "canopy_height_source = 'High Resolution 1m Global Canopy Height Maps' #@param ['High Resolution 1m Global Canopy Height Maps', 'ETH Global Sentinel-2 10m Canopy Height (2020)', 'Static']\n", "dem_source = 'USGS 3DEP 1m' #@param ['DeltaDTM', 'FABDEM', 'England 1m DTM', 'DEM France 1m', 'Netherlands 0.5m DTM', 'AUSTRALIA 5M DEM', 'USGS 3DEP 1m', 'NASA', 'COPERNICUS', 'Flat']\n", "meshsize = 5 #@param {type:\"number\"}" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "2G30sMyUahtq" }, "outputs": [], "source": [ "#@title 3.2. Set optional parameters, data sources and meshsize (m)\n", "kwargs = {\n", " # \"building_path\": 'path_to_building_source_file', #To set path to building base data source when you select 'Local file' as building_source.\n", " # \"building_complementary_path\": 'path_to_building_complemntary_source_file', #To set path to building complementary data source when you select 'Local file' as building_complementary_source.\n", " \"building_complementary_source\": building_complementary_source, # # Specify the complementary building data source (e.g. 'Open Building 2.5D Temporal', 'None', etc.)\n", " \"building_complement_height\": 10, # Default height in meters to use for buildings when height data is missing\n", " # \"complement_polygon\": True, #Set 'True' if you want to incorporate building footprints from building complementary source. Only building footprints that do not have any intersections with footprints from building source are included.\n", " \"output_dir\": 'output/test', #To set directory path for output files\n", " # \"remove_perimeter_object\": 0.1, #Set value more than 0 if you want to remove objects including buildings and trees near to domain boundarys (perimeter). Used mainly for CFD simulation. For instance, when you set 0.1, objects with distances from domain boundaries less than 0.1 * domain width (height) are removed.\n", " # \"gridvis\": True, #Set 'True' if you want to visualize extracted 2D grid data.\n", " # \"mapvis\": False, #Set 'True' if you want to visualize extracted 2D grid data on a basemap. Note that it take longer time than \"gridvis\".\n", " # \"voxelvis\": False, #Set 'True' if you want to visualize generated voxel 3d city model. Note that this visualiztion takes long time if the number of voxels is huge, e.g., more than one million.\n", " # \"voxelvis_img_save_path\": None, #Set path to save image file of generated voxel 3d city model.\n", " # \"trunk_height_ratio\": None, #To set ratio of tree trunk height against tree canopy height. Default: 0.59 (11.76 / 19.98).\n", " # \"min_canopy_height\": None, #To set minimum canopy height in meters if you want to exclude trees lower than that height.\n", " \"dem_interpolation\": True, #Set 'True' when mesh size if finer than resolution of dem data source and if you want to use interporation.\n", " # \"dynamic_world_date\": '2021-04-02', #To set date of Dynamic World.\n", " # \"esri_landcover_year\": '2023' #To set year of Esri Land Cover.\n", "}" ] }, { "cell_type": "markdown", "metadata": { "id": "9hN1OshjE9rF" }, "source": [ "---\n", "# 🏗️ Step 4: Generate 3D Voxel Model\n", "\n", "This step downloads data from selected sources and creates the 3D voxel city model.\n", "\n", "**Note:** Generation time depends on:\n", "- Area size\n", "- Voxel resolution (meshsize)\n", "- Data source availability and response times" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "executionInfo": { "elapsed": 106946, "status": "ok", "timestamp": 1741706124809, "user": { "displayName": "Kunihiko Fujiwara", "userId": "03970325715211983816" }, "user_tz": -480 }, "id": "ezU8L5KulPNA", "outputId": "a5b32913-3f13-4d2f-d20e-173058899134" }, "outputs": [], "source": [ "#@title 4.1. Obtain grid data integrate it to create voxel data\n", "from voxcity.generator import get_voxcity\n", "\n", "city = get_voxcity(\n", " rectangle_vertices,\n", " meshsize=meshsize,\n", " building_source=building_source,\n", " land_cover_source=land_cover_source,\n", " canopy_height_source=canopy_height_source,\n", " dem_source=dem_source,\n", " **kwargs\n", ")\n", "\n", "# Access grids from the VoxCity object\n", "voxcity_grid = city.voxels.classes\n", "building_height_grid = city.buildings.heights\n", "building_min_height_grid = city.buildings.min_heights\n", "building_id_grid = city.buildings.ids\n", "land_cover_grid = city.land_cover.classes\n", "dem_grid = city.dem.elevation\n", "canopy_height_grid = city.tree_canopy.top\n", "building_gdf = city.extras.get('building_gdf', None)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "executionInfo": { "elapsed": 96827, "status": "ok", "timestamp": 1741706221646, "user": { "displayName": "Kunihiko Fujiwara", "userId": "03970325715211983816" }, "user_tz": -480 }, "id": "qQJW5ytHWHGF", "outputId": "dd482612-0af3-464c-c80b-ddfe7f447c10" }, "outputs": [], "source": [ "#@title 4.2. Visualize the generated 3D city model (This process may take a long time, so skip this step if you set a large target area)\n", "from voxcity.visualizer import visualize_voxcity\n", "\n", "visualize_voxcity(city, mode=\"static\")\n" ] }, { "cell_type": "markdown", "metadata": { "id": "w3EtplbdGDzC" }, "source": [ "---\n", "# 💾 Step 5: Export to Different Formats\n", "\n", "Export your 3D city model to various formats for use in other applications.\n", "\n", "| Format | Use Case |\n", "|--------|----------|\n", "| **INX** | ENVI-met CFD simulations |\n", "| **VOX** | MagicaVoxel visualization |\n", "| **OBJ** | Blender, Rhino, 3D modeling |" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "colab": { "base_uri": "https://localhost:8080/", "height": 17 }, "executionInfo": { "elapsed": 1368, "status": "ok", "timestamp": 1739367912389, "user": { "displayName": "Kunihiko Fujiwara", "userId": "03970325715211983816" }, "user_tz": -480 }, "id": "5S2JEkRAQYc7", "outputId": "93aa236f-ed2a-4478-d781-437fefe58e60" }, "outputs": [], "source": [ "#@title 5.1. Export INX file for ENVI-MET\n", "from voxcity.exporter.envimet import export_inx, generate_edb_file\n", "\n", "envimet_kwargs = {\n", " \"author_name\": \"enter your name\", # Optional. To set author name in INX.\n", " \"model_description\": \"generated and exported using VoxCity\", # Optional. To desctibe model in INX.\n", " \"domain_building_max_height_ratio\": 2, # Optional. To set ratio between domain height (Z) and maximum height (building + terrain). Default: 2.0.\n", " \"useTelescoping_grid\": True, # Optional. To activate telescoping grid. Default: False.\n", " \"verticalStretch\": 20, # Optional. To set vertical stretch (%). Default: 0%.\n", " \"min_grids_Z\": 20, # Optional. To set minimum number of vertical grid cells (Z-axis). Default: 20.\n", "}\n", "\n", "export_inx(\n", " city,\n", " output_directory='output/envimet',\n", " file_basename='voxcity',\n", " land_cover_source=land_cover_source,\n", " **envimet_kwargs\n", ")\n", "generate_edb_file(lad=1.0)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 74 }, "executionInfo": { "elapsed": 2147, "status": "ok", "timestamp": 1739367914534, "user": { "displayName": "Kunihiko Fujiwara", "userId": "03970325715211983816" }, "user_tz": -480 }, "id": "K3VmI57vhNPu", "outputId": "6e68b30d-ee8d-40dc-ac38-4a021e0282d4" }, "outputs": [], "source": [ "#@title 5.2. VOX file for MagicaVoxel\n", "from voxcity.exporter.magicavoxel import export_magicavoxel_vox\n", "\n", "output_path = f\"output/magicavoxel\"\n", "export_magicavoxel_vox(city, output_path)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 36 }, "executionInfo": { "elapsed": 44098, "status": "ok", "timestamp": 1739367958628, "user": { "displayName": "Kunihiko Fujiwara", "userId": "03970325715211983816" }, "user_tz": -480 }, "id": "aeyu-R1d-Jsu", "outputId": "82119cd9-6809-46cf-f693-b6bf47f3b503" }, "outputs": [], "source": [ "#@title 5.3. OBJ file\n", "from voxcity.exporter.obj import export_obj\n", "\n", "output_directory = './output/obj'\n", "output_file_name = 'voxcity'\n", "\n", "export_obj(city, output_directory, output_file_name)\n" ] }, { "cell_type": "markdown", "metadata": { "id": "SayqO8m_mCzJ" }, "source": [ "# Step6 Urban simulations" ] }, { "cell_type": "markdown", "metadata": { "id": "JJL0yGfeiA7M" }, "source": [ "# 6.1. Solar radiation" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "executionInfo": { "elapsed": 262995, "status": "ok", "timestamp": 1741518121825, "user": { "displayName": "Kunihiko Fujiwara", "userId": "03970325715211983816" }, "user_tz": -480 }, "id": "hBTVTH2sKfgP", "outputId": "ada1f85f-0354-4c67-f298-741957b1c18b" }, "outputs": [], "source": [ "#@title 6.1.1. Solar irradiance on building surfaces (instantaneous)\n", "from voxcity.simulator.solar import get_building_global_solar_irradiance_using_epw\n", "from voxcity.visualizer import visualize_voxcity\n", "\n", "# Define kwargs dictionary for solar irradiance calculation\n", "irradiance_kwargs = {\n", " \"calc_type\": \"instantaneous\", # For single time point calculation\n", " \"download_nearest_epw\": True,\n", " \"rectangle_vertices\": rectangle_vertices,\n", " # \"epw_file_path\": epw_file_path,\n", " \"calc_time\": \"01-01 12:00:00\", # Solar noon on June 21 (summer solstice)\n", "}\n", "\n", "# Example 1: Instantaneous calculation\n", "instantaneous_irradiance = get_building_global_solar_irradiance_using_epw(\n", " city,\n", " **irradiance_kwargs\n", ")\n", "\n", "# Visualize instantaneous results with building mesh overlay\n", "visualize_voxcity(\n", " city,\n", " mode=\"static\",\n", " building_sim_mesh=instantaneous_irradiance,\n", " building_value_name=\"global\",\n", " building_colormap=\"magma\",\n", " building_vmin=0,\n", " voxel_color_map=\"grayscale\"\n", ")\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000, "output_embedded_package_id": "11_e73nYAIv3-FiHhgLATPblUAjcylKvW" }, "executionInfo": { "elapsed": 310569, "status": "ok", "timestamp": 1741706561761, "user": { "displayName": "Kunihiko Fujiwara", "userId": "03970325715211983816" }, "user_tz": -480 }, "id": "x0llf3XNKl05", "outputId": "83a575f0-fcad-46e2-a91a-bf1a54f6f615" }, "outputs": [], "source": [ "#@title 6.1.2. Solar irradiance on building surfaces (cumulative)\n", "from voxcity.simulator.solar import get_building_global_solar_irradiance_using_epw\n", "from voxcity.visualizer import visualize_voxcity\n", "\n", "# Define kwargs dictionary for cumulative calculation\n", "cumulative_kwargs = {\n", " \"calc_type\": \"cumulative\", # For cumulative calculations over a period\n", " \"download_nearest_epw\": True,\n", " \"rectangle_vertices\": rectangle_vertices,\n", " # \"epw_file_path\": epw_file_path,\n", " \"period_start\": \"01-01 07:00:00\", # June 1st at 7 AM\n", " \"period_end\": \"01-31 19:00:00\", # June 30th at 7 PM\n", "}\n", "\n", "# Example 2: Cumulative calculation for a month\n", "cumulative_irradiance = get_building_global_solar_irradiance_using_epw(\n", " city,\n", " **cumulative_kwargs\n", ")\n", "\n", "# Visualize cumulative results with building mesh overlay\n", "visualize_voxcity(\n", " city,\n", " mode=\"static\",\n", " building_sim_mesh=cumulative_irradiance,\n", " building_value_name=\"global\",\n", " building_colormap=\"magma\",\n", " building_vmin=0,\n", " voxel_color_map=\"grayscale\",\n", " projection_type=\"perspective\",\n", " distance_factor=0.7\n", ")\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "executionInfo": { "elapsed": 2868, "status": "ok", "timestamp": 1741706564650, "user": { "displayName": "Kunihiko Fujiwara", "userId": "03970325715211983816" }, "user_tz": -480 }, "id": "4fOM-DHDv2Ra", "outputId": "b1c3a8e5-b639-499d-9c0d-1b8dfe15560e" }, "outputs": [], "source": [ "#@title 6.1.3. An example post analysis for solar irradiance on building surfaces (cumulative)\n", "import pandas as pd\n", "from shapely.geometry import box\n", "from voxcity.visualizer import visualize_numerical_gdf_on_basemap\n", "\n", "# Create dataframe with the three columns\n", "cumulative_solar_df = pd.DataFrame({\n", " 'area': cumulative_irradiance.area_faces,\n", " 'cumulative_solar_irradiance': cumulative_irradiance.metadata['global'],\n", " 'building_id': cumulative_irradiance.metadata['building_id']\n", "})\n", "\n", "# Filter out rows where cumulative_solar_irradiance is NaN\n", "cumulative_solar_df = cumulative_solar_df.dropna(subset=['cumulative_solar_irradiance'])\n", "\n", "# Calculate mean solar irradiance per building\n", "building_solar = cumulative_solar_df.groupby('building_id')['cumulative_solar_irradiance'].mean().reset_index()\n", "\n", "# Merge building_gdf with solar data\n", "# First merge solar data\n", "building_gdf_with_solar = building_gdf.merge(\n", " building_solar,\n", " left_on='id',\n", " right_on='building_id',\n", " how='left'\n", ")\n", "\n", "# Create a bounding box from rectangle vertices and filter buildings within it\n", "bbox = box(\n", " rectangle_vertices[0][0], # minx\n", " rectangle_vertices[0][1], # miny\n", " rectangle_vertices[2][0], # maxx\n", " rectangle_vertices[1][1] # maxy\n", ")\n", "building_gdf_with_solar = building_gdf_with_solar[building_gdf_with_solar.geometry.within(bbox)]\n", "\n", "# Visualize using the utility function\n", "visualize_numerical_gdf_on_basemap(\n", " building_gdf_with_solar,\n", " value_name='cumulative_solar_irradiance',\n", " cmap='magma',\n", " figsize=(20,8),\n", " basemap='CartoDB light',\n", " show_edge=True,\n", " edge_color='black',\n", " edge_width=0.5\n", ")\n", "\n", "# Print summary statistics\n", "print(\"\\nSummary Statistics for Building Solar Irradiance:\")\n", "print(\"------------------------------------------------\")\n", "print(building_gdf_with_solar['cumulative_solar_irradiance'].describe())\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "executionInfo": { "elapsed": 14595, "status": "ok", "timestamp": 1739367973218, "user": { "displayName": "Kunihiko Fujiwara", "userId": "03970325715211983816" }, "user_tz": -480 }, "id": "PEmFpPRoLae0", "outputId": "1ab9ad39-2ddd-4d39-fed0-f5f5badc2798" }, "outputs": [], "source": [ "#@title 6.1.4. Ground-level solar irradiance (instantaneous)\n", "from voxcity.simulator.solar import get_global_solar_irradiance_using_epw\n", "\n", "solar_kwargs = {\n", " \"download_nearest_epw\": True, # Whether to automatically download nearest EPW weather file based on location from Climate.OneBuilding.Org\n", " \"rectangle_vertices\": rectangle_vertices, # Coordinates defining the area of interest for calculation\n", " # \"epw_file_path\": \"./output/new.york-downtown.manhattan.heli_ny_usa_1.epw\", # Path to EnergyPlus Weather (EPW) file containing climate data. Set if you already have an EPW file.\n", " \"calc_time\": \"01-01 12:00:00\", # Time for instantaneous calculation in format \"MM-DD HH:MM:SS\"\n", " \"view_point_height\": 1.5, # Height of view point in meters for calculating solar access. Default: 1.5 m\n", " \"tree_k\": 0.6, # Static extinction coefficient - controls how much sunlight is blocked by trees (higher = more blocking)\n", " \"tree_lad\": 0.5, # Leaf area density of trees - density of leaves/branches that affect shading (higher = denser foliage)\n", " \"colormap\": 'magma', # Matplotlib colormap for visualization. Default: 'viridis'\n", " \"obj_export\": True, # Whether to export results as 3D OBJ file\n", " \"output_directory\": 'output/test', # Directory for saving output files\n", " \"output_file_name\": 'instantaneous_solar_irradiance', # Base filename for outputs (without extension)\n", " \"alpha\": 1.0, # Transparency of visualization (0.0-1.0)\n", " \"vmin\": 0, # Minimum value for colormap scaling in visualization\n", " # \"vmax\": 900, # Maximum value for colormap scaling in visualization\n", "}\n", "\n", "# Compute global solar irradiance map (direct + diffuse radiation)\n", "solar_grid = get_global_solar_irradiance_using_epw(\n", " city, # VoxCity object representing the urban environment\n", " calc_type='instantaneous', # Calculate instantaneous irradiance at specified time\n", " direct_normal_irradiance_scaling=1.0, # Scaling factor for direct solar radiation (1.0 = no scaling)\n", " diffuse_irradiance_scaling=1.0, # Scaling factor for diffuse solar radiation (1.0 = no scaling)\n", " **solar_kwargs # Pass all the parameters defined above\n", ")\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "executionInfo": { "elapsed": 18196, "status": "ok", "timestamp": 1740118664583, "user": { "displayName": "Kunihiko Fujiwara", "userId": "03970325715211983816" }, "user_tz": -480 }, "id": "eZLJIFwFy5D-", "outputId": "8207e7ab-ec6b-4663-9c54-6dfdd031a271" }, "outputs": [], "source": [ "#@title 6.1.5. Ground-level solar irradiance (cumulative)\n", "from voxcity.simulator.solar import get_global_solar_irradiance_using_epw\n", "\n", "# Dictionary containing parameters for solar irradiance calculation\n", "solar_kwargs = {\n", " \"download_nearest_epw\": True, # Whether to automatically download nearest EPW weather file based on location from Climate.OneBuilding.Org\n", " \"rectangle_vertices\": rectangle_vertices, # Coordinates defining the area of interest for calculation\n", " # \"epw_file_path\": \"./output/USA_CA_Marina.Muni.AP.690070_TMYx.epw\", # Path to EnergyPlus Weather (EPW) file containing climate data. Set if you already have an EPW file.\n", " \"start_time\": \"01-01 01:00:00\", # Start time for cumulative calculation\n", " \"end_time\": \"01-31 23:00:00\", # End time for cumulative calculation\n", " \"view_point_height\": 1.5, # Height of view point in meters for calculating solar access. Default: 1.5 m\n", " \"tree_k\": 0.6, # Static extinction coefficient - controls how much sunlight is blocked by trees (higher = more blocking)\n", " \"tree_lad\": 0.5, # Leaf area density of trees - density of leaves/branches that affect shading (higher = denser foliage)\n", " \"colormap\": 'magma', # Matplotlib colormap for visualization. Default: 'viridis'\n", " \"obj_export\": True, # Whether to export results as 3D OBJ file\n", " \"output_directory\": 'output/test', # Directory for saving output files\n", " \"output_file_name\": 'solar_irradiance', # Base filename for outputs (without extension)\n", " \"alpha\": 1.0, # Transparency of visualization (0.0-1.0)\n", " \"vmin\": 0, # Minimum value for colormap scaling in visualization (commented out to auto-scale)\n", " # \"vmax\": 900, # Maximum value for colormap scaling in visualization (commented out to auto-scale)\n", "}\n", "\n", "# Calculate cumulative solar irradiance over the specified time period\n", "cum_solar_grid = get_global_solar_irradiance_using_epw(\n", " city, # VoxCity object representing the urban environment\n", " calc_type='cumulative', # Calculate cumulative irradiance over time period instead of instantaneous\n", " direct_normal_irradiance_scaling=1.0, # Scaling factor for direct solar radiation (1.0 = no scaling)\n", " diffuse_irradiance_scaling=1.0, # Scaling factor for diffuse solar radiation (1.0 = no scaling)\n", " **solar_kwargs # Pass all the parameters defined above\n", ")\n" ] }, { "cell_type": "markdown", "metadata": { "id": "5QSRo4YUiZbS" }, "source": [ "#6.2. View index" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "executionInfo": { "elapsed": 5568, "status": "ok", "timestamp": 1740118670156, "user": { "displayName": "Kunihiko Fujiwara", "userId": "03970325715211983816" }, "user_tz": -480 }, "id": "2xKYiX7VmGWQ", "outputId": "7e1e4001-90bc-469d-8b2f-9b5337c6a150" }, "outputs": [], "source": [ "#@title 6.2.1. Green view index, Sky view index\n", "from voxcity.simulator.view import get_view_index\n", "\n", "view_kwargs = {\n", " \"view_point_height\": 1.5, # Height of observer viewpoint in meters\n", " \"tree_k\": 0.6, # Static extinction coefficient - controls how much sunlight is blocked by trees (higher = more blocking)\n", " \"tree_lad\": 1.0, # Leaf area density of trees - density of leaves/branches that affect shading (higher = denser foliage)\n", " \"colormap\": \"viridis\", # Colormap for visualization\n", " \"obj_export\": True, # Whether to export as OBJ file\n", " \"output_directory\": \"output\", # Directory to save output files\n", " \"output_file_name\": \"gvi\" # Base filename for outputs\n", "}\n", "\n", "# Compute Green View Index using mode='green'\n", "gvi_grid = get_view_index(city, mode='green', **view_kwargs)\n", "\n", "# Adjust parameters for Sky View Index\n", "view_kwargs[\"colormap\"] = \"BuPu_r\"\n", "view_kwargs[\"output_file_name\"] = \"svi\"\n", "view_kwargs[\"elevation_min_degrees\"] = 0\n", "\n", "# Compute Sky View Index using mode='sky'\n", "svi_grid = get_view_index(city, mode='sky', **view_kwargs)\n" ] }, { "cell_type": "markdown", "metadata": { "id": "5CrY2kIKOVvW" }, "source": [ "# 6.3. Landmark visibility" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 530, "referenced_widgets": [ "f59f2334b5a0449fb2e8b4c982474f1c", "55e1c76faef241c6825a31c06ea10f18", "3b53181899404a11bc66ee994f9358f5", "dc74e7d3a464456ea91a175952846aa3", "5d4475fd3527491f8def98b8a7c3b626", "20365f647d274df09a8efdef2f364141", "6b208d87b6ae46c0a0e4f813f594d44f", "253175c8dc41466095ff79d312c99340", "dd6dc8c009ab4c1fac890fb2ea63b9f6", "9250e88f75784c809ce70e934a131f9c", "3827daa624fb42fb8e9b5366ded0a432", "813ba3f0673444a78e051d92a1eddcd2", "f265c0c31a8b421f8aa3d8c40065065c", "bfdf619aef0a4c658f21873252b6f5e8", "66b12821f3954101a16b0108310bf9c7", "8c2d4f754383467d93913634ba6df391", "9c9a8e75d2674e809147557a19c20adc", "8e317a27ea7e4647a03e880f8a3efe50", "bca0ad1de2294d0c9ba3ff019f6c229d", "4d917fcb28ac4c7490468900d04e7ea2", "8e6f038a17694c88ad25e09f04c400fa", "cbfbddf8d7204f5e8fb7d6b3b6ba7546", "acda0b23ad3c4ff792309621ac23f370", "8a8126c2e7ae4071a1f0d6a0307a9c75", "6bbec56f079546a2915f65a5c2aaeb86", "476109d69c5b472bb06fb9e83719e887", "54c2ea0085984868a65fc9dd1278fbe6", "1fc98130b1304a34a5d810b9c1d2da38", "fa8c13343db34b2e99a9e08b9f732ada", "a03a17fa16564faba84fd12adb701ded", "b1d2ae01b14649f8b51dae00dd348a99", "0873510b74ad473388993d58a741e5c8", "188b9ca9fd5f4776bf75f928f1335f05", "ed25fd8ab5664c0dbb38c37e29918cb5", "6df254aa52df4441ae27eb61e5176627", "b0c49317a9c041f38120248ef4b0c2fe", "8f641d3dfed649e7a042eb2d03a4bdf7", "b8a1a54ee1a949f2abb444bee9b6525e", "ca6adb20025341ab9bf367c7db669837", "364e89325da845daa10aab7fb4474e64", "91aca10c939a41b0baeeee1ba7da6f51", "1c5ffab86b0d4b62804a2cc714763895", "0ba83498b602469ab0ba8eb3164ee518", "58b1a83e4b73445c95807b42f5dca28b", "1442c539e02d4257912e8b6d144d899c", "8bd2a511b84d4092a4dee6f1f1999585", "6ac360d120984a649b5eec2bf7eb5f6b", "9764f659e2764cf39e1ea0a8f591c14d", "86fd3eddf302452f825a6e6708d23bbe", "fa2b72b373814499a7727f0da41e47f9", "ba8cf58148784cfc97891d3a79752fe1", "1a57002aff384b2b83e3c197bf73f875", "5ae805196a9a4a90a738ddf72eca72a1", "0adce9a6aeb04db195f09309b5c0a046", "6b42d24e1ab6462cac23eb153c426789", "4ffbe7d09e4d4b039fdf0c537921cbb8", "23d98233e991483ba4e769526df6d32a", "7a5f9d54c8e343af832fa687b30cd5e9", "ed9b6ebbe174447f8deb2017f4e893bb", "6221decbfbb045148621d8a49394acce", "ae5e6887ad8e4b0d824db4c65b8232e9", "36876a882a9b4c9c9fba8ea20a709e84", "02447526657847bcabba23b96e954f0b", "c78a9e05b63e487e92efe6ccad726d0f", "0f19f9cef4954131a36cadff9616612a", "4f2a334fb51a4f15bda4213997a4e3ba", "82efbb8a6e9e4106b8e18f0443af13e2", "fd3c18eb1e70422085e7b528b97a79b3", "2a67c69fde5e4662afe834e69b9e342a", "2ebea98d3f0f46efbc9d4c4a7b0a49e4", "7b98beb1cb014d53993ee1e597f97d1d", "a6b7221eec1b4e67905d303b118ba773", "6194d466cbc9443d8d03f362dedb1d1e", "c96630d04be44071b7b7d749d74e8ad8", "934c36edead44fd1b3c0018a4e11fa52", "5766bf6eabd74e3da13b0a907005824a", "d0dc3ff4c86d4a5eb52312d90d1e59c9", "e8dbc6b690c04ecabfb4d881fbe4dbd6", "e3fcb98cf0564fd1a5c2bf1338de83ed", "24ab8edf720c41fa8413781bfeaaac47", "bcb2cb3e5b2c4bf8b69aa78d95c43c71", "f4a4b0366c064aae826a5e19bc5e2bae", "73e3bee9809742d0b96fa4ee3b32e602", "9980e16bc5d04f7eb570d3b9223d92c0", "95ddbbcbc7524ce6ba8b560b98c42d61", "61a0c773905a48ea88189ce1c69bf1cb", "c3d66095137b49ae8b8dae5feadcf847", "14e6c654fee442079aac8942505985f7", "287f77040b94437e9512722d5a6d0f4e", "fe92dfbf47f64802951235f86212ebcf", "ad343411f750450bb51f52449b203711", "ab68a454574d4fe883321a04f59650d7", "296e15d1d6d44bcfafc6a14d99a85906", "0daf53109e6f486d9ca4b7347e9a93cf", "8767c1ac3d7c400fbdf43aec44b52ea1", "1f6368f56f3845039347a14bad370933", "748d95e38d7342a6adf4362826fc0a5e", "92f05ee7ef7d417784c41b55a58ab9dd", "89d1557acae94331b5063c4f0b7c425d", "4402bd6df56345e68bef3776cfe560c8", "48b530df6f9c4c16ad0b6e9f0e776f4f", "761299a8459d46e0b6c19332f27f8261", "e2009810392f4345b45bf8b788b0c3ba", "00d3b42c3a13457ca5d982894170406e", "d9ff33d8058248fba3a94dcfb0838102", "59c079368b174bc7b476bba54e128582", "798e02b1074f4f3fb4653cc0bc397f67", "b638ad1439f046e39143547c767054b5", "77e03c45b06841f483c1ba8f1a74b4c4", "300a2e3495c6432abaa14476de066cfa", "88ccb1c81eec4a6382a7b94019a89019", "6ceb1bec2bf544b482ea3ff3980a2a3b", "b3611790b0004dbeacdd83c174ba4ea8", "6dc149a801fc4dd7a1e1e5282e86ff8b", "ed462c823b8847419b30d79b304809b1", "164fdb0f632a4556b35709e022422cd7", "868fc4fe45bb4233929ee918478a077f", "04bd878101c04d2881f4667c57d92d84", "70e32025fb454b9f809a7c4cdc41bf36", "4d5d421749c94c27aaf722adb648cbf0", "220f0a80351e48f3893b46b290862436", "8555f8d8971f473daaf4603fb3288006", "d011b26b0bcf4a648076938a3c0c1a69", "e5053b9df22e4101935af83a6a676916", "ee1dd677fb7a49af8175beb0e721fe84", "8089bec6ebe8484ab1411df428881948", "760d9a38f4664d809d6d508e7f05dc09", "3fbd4f42bbab42b299b246f3ec7755a5", "c71be9fb1d9d4f2eba82cee630230a83", "f2c36fa7fa4a414ab328afee158d51c5", "0fcca7441d124924bb64b6980b3fc447", "66f756a80baf4fe28c36cbb0f1f818a9", "1e657118e7cd421f8fa9ea1ea56859c0", "26a739cb05844977ba3fc4eab1dc2211", "c36f4727683d4e118412f5e06d046b3b", "854db97c69ca411290bbac3a594cc3df", "db0b93ef7e344f7881b2838423430460", "e059fcf949e241c2aaf72e910144272d", "310fe56f855543d09279004c568c43b1", "ee29843caeae4241ad2d323cfb63a745", "8bbb38e0f1c94cd0badb9d71b77fb6f3", "1a36460ec5f3433f95502d14caa4d90f", "75e68337728c4051884cf1b3261519de", "2cd219ba335d44be9b49cabbe4e95ced", "e7ccf6ecdf6b4b0488bafc19282b1225", "bbe1d0b6301147f8a2e4fa7253c38f17", "c4c197796fda4137aff087cbf68438b8", "fb74e2051c6947119192c6e440af4bd7", "6d0c61ae7f564e4daa59b999886c3fd1", "f7f520fc03104fc4bb4b9390f817218b", "200bc1d4640d4323bf54a321cd727101", "17170ca26f2d4b7abf6d72829797dae5", "43f1280fa3624438a2c5a59e4bbc6f7c", "496537b559b441eeae2a3604c7a4aefb", "1dd0b94256f245558d50e0c8becaf909", "27fbfd012c064ab78d08723565139641", "f1dad59e661648eea621efc59dbef2f6", "6c198780be974aca8744d0ccd4fe296a", "9e686dab0fea4a99b97e4269f3f2fae7", "2fff049418784a60bacc1beab1c8e58d", "09a2b9ff3cf745df807505f12b178593", "886d4335b0b84989b923d25d4747bb69", "9ba1a9c5353e4eb78b03c2da057e61fa", "56b6cd4bd248475084ab482e35441f70", "d395e06ccba641fb89bc4d6ac5986167", "55366a08f428498e9913176328b90810", "6da29b9c478c44bca55b9f2f33302654", "458fe384f4de46488cd548245dcaace6", "0cf672559f424964bd4a2b49e54c08be", "74e38e9362754030895f62b1295dccd8", "828aea0cb56d44738dad9d849134fcbe", "9fc686a66938487abac49f2ed17e5798", "891c4a1db38b430da3cd275b444231e8", "4a8114addc8f45f8bdbb19db3f4452e7", "c05c04a888284452a411f286de189bb7", "6e100b4103b749bfa4502a09bac1fc82", "1199f2c1f3c640fabba6c33a6f465bc9", "b517716a725343b7b98e40f81eaae5bc", "7bdeb3c0cbeb4a0da037c4a817350ba4", "a5a07d58338b488dbdfe1e55af229c33", "47fcd5832f2442f4b7acfdf30c9a6a92", "38024168f5ea408eb11d4671d075a798", "0a3b4ad7337e46ce973dd86b835ccb14", "b7a8053e95fb4d719e635fb82c501ed7", "32c732967ce04a1d815149db9fdc034e", "476d0e37b8cd4eca8b4d8ef851b761f7", "abd4bf6af4cc4b5a940cf8e1dd8d8f24", "2e121d16257d49f2972155131cb9591c", "9c0ad2618ee54bdda5cd53d7c12205da", "c0853e5eb904464489dfef0cf29d98b4", "159f94a00adb4e619f848e300a47d938", "f904b76e9c38459b86a0247d72e4d595", "44c42eceaa2947f5a3ee7aeb1e46a9df", "d7f1793671b049eabdf77815b3500eb3", "fc76b3bfcebc4168960afb8495e8e6cd", "98b0df694cc84f15b070b181a109025e", "835f2fe40cb7446bae8a9961df2bfb81", "62da256d5af04427910f30a834151c1a", "aa904a134b834c0693e287227c3ed021", "e61211b2e4224ea7af6f5854b2d9d74b", "5b8460d9e3204a90a02658305d176f1f", "4cf1407151f74d89993457a8f7f6a42e", "b253045d1fea46fab2b2993c45815aa5", "c84883f510bb4be1ab0c008e3d393711", "06c59e5e19dc4394b81d6cd23bacfcb3", "2331b17a6c1242408cda5670ccb7bb99", "061553daeaaa456682cf9d70244b4d3e", "eb1554d4ac7544a4865ce53b3d7638a1", "03c3fca9d6104fcfaf75b4164c74a67d", "80f09a8fe2d54a77b81d8e2295af2e27", "d926fa43083847ca83a151ad11d8f766", "e35b1a0935364c988cc12e57a821ce06", "07f2fee39e794e7ba8a6dba512b32b2d", "f360b613b3a247afb1ef7047b49e9385", "f9118bfaf2e641e1a74498ddacc12277", "9130d9c13a2e4bac80f66eb64392e034", "5c157b8b8ffb485ebea390c45dfe4408", "14e89a9738484ef397f367b25d40ee40", "847e604d4ff8414694d320c7bd39139a", "dc7b57f62b0e40078074217c10558d6e", "eb046bd06c33403cbc9a4212d80f1b28", "aed6a9ebebf046dea2aa332e7400cc3f", "ec61899cfd914c0b99a0000d3fea1e5c", "7e00d94050a3439988a84a0a016b920f", "14754ebdc37146ff864b53c85e81342a", "c0389deb6e5b4d4c95f0aee994a072e4", "6457e0c9dcc84d6cb98d6b5b55d353e2", "32f5ed1588f64258a5eb6333c88d97d7", "6abdaae1d0df4cceacd94fcde92659d5", "e3b6ca672e3c450d96046bc03e9de2a3", "8aed8fe1e5c342549ff56871c2954e6f", "659a6dc4fa144cd5993d0a9e722711e0", "ea397393639d49c7836bb20ede096bbb", "f9909bf9c591497da8c7818c40a697b8", "957e5dfe52e8410786403f3d455f62ff", "e05944fa535d4738a79fdf83ce82611d", "5eb55e3b608f48998bd1023034aeb4bc", "f1331432f74b4c9fa79c4ab33617bb86", "dba55256d2a440b098deabe02cb0a12c", "5b836b8b6d7245919c94f3d2cb113257", "43f6c01da4554f37afad25c88234ecb4", "91be89968cb1434aafc8d5b5563e2f95", "6b17d79553294baab4d220e651cbe022", "46fd5d24602240e5bf88db4b80a3b0d6", "b32d0f7dbdb74c1ca484630cc0338488", "3f41256a066146e2b590fb455032ca5f", "405e6c2fb4614e05a6ca04bc04df3e07", "aafb7f7123084470958a923920094ac6", "b04edde5f4514f5d946421ebd7d20da3", "7ac6d794b45447fb9496a6433d543b29", "bbc1f3829710424b9fb3f29ca765b3a0", "149c0bc1cc094bc59398a6afe9c02d12", "2f131ee6d1c64b909c5f698e41585b37", "07a723f122894c6aaf3e5b59cc901c6c", "e6ea7a167b374d46a3190fa8212bef9f", "e3aa5aa3997b40828328bc7cd2bef667", "75a749cae894427999521b190d416d0b", "538d912171f541ffbdf7c16707c791d1", "2e3b5d47bbb6457ea403492a8c07e18c", "326f3157d6f34aed8d3caac704c06581", "bacbe293319c43ffa6a440a25bdb076b", "be2a6034b56e448f9460f6fa33347eb2", "24560e87510f4116a20d5803fd5ddb46", "84dcccc2ae9e49568fea50e37a2040d4", "2c1b5501ca874113b4f9e4c5ced4270e", "6ef683a309ec4a23855fe485b121998e", "7c36178d839a4ed68e0edb688e350379", "37e003d8aa344a3898cd3237d53dbd73", "811eb4913ca4425abbe3e2f6e3b4412d", "eedb2eb6dd7d4c7b8fc47e33ff73398d", "da2e9a446f4e4c2c8e75379f3ff4720c", "b4fd16d0e58a440dbfa73e05a03c137c", "2df9b91b144d41a9ba4cb7f4f6785876", "140817dff56c4390ab6bdac1bcde513d", "453ca1e359614077bc690f3fdb9060ae", "738da15d130f4fceaa9ba24b483f7f35", "f45161cd3eee4f0ba66e851fa14eb915", "96a419904c9141cd92c2ffcbf073891b", "d8687503a95048c7ad9dca91c052fa03", "c2e93484decf435c9976f9409acb972a", "7a8973e7c4d64141bd9616d0f4bd7563", "494c4c37a5d4480db191fbb6dca17522", "918ded3d3a56465698dbd1147541f303", "c53b9369dcf0456fae0354c19c2de7df", "d83f6080fa7043d0bf6e9bd1ff45593a", "4a833015ac624e85a54d686d5bd9528a", "35742e7d9a7243eeb79d96abd28c68ee", "6f087f63ac5c4480b58d3a93e1c75641", "a7cb06d711404eea9baf3f3e2ea89a25", "64c5bc76df89400b8dc14ec737f5ac0a", "2ea8dbde43574991a73fb9ddc8071990", "149833d911874cbda3797cfc9ad2ec9f", "8664918f91274316a1fd342d89d9359b", "596e326fdb334218bb2bd7154bee3ee0", "913516f58d0745828678bdc64608a021", "54d419ea9b4d4001821829b55a2f411a", "8da7fcc50a7a43f59833ed79503df584", "55902b62b73b44e98aded1758f94b797", "744865bbedfb4604808cb235569ea5dd", "3594242248e44ed2940364abcbe88a0d", "12cdc24c706f43b385215cd2946ddb00", "8a195293ba924f91804ca1afa2751014", "11efc622e0374221ab7a11de32d0945f", "d063fa48ebd142a383597ae52f67abe7", "3820ae2ce11748bca26bf9097bef6f8f", "8e6e4621c1514e08bb7babf50fb1cb93", "e3b5054a59b64168862e00edefa8ce95", "352bb218478c4bd89bcc8e5642993cb9", "60b9c43970a64175b5118a04805d3260", "2ff8e53b5bd04e90a1f6968ac025fdc8", "34875a797f3c4ee198adab88da8ec99b", "58b4b6d66748408abc1a7fbd2a40cc1e", "7a08211a17d642a6bc834bbac9fc0d5f", "5c30c203f62d4e80b921b4a67c07ae9d", "3ee1b5c5dd734a3ca5f762b3758dab00", "905516984c1548649cb8429f0c6e91ff", "1bbac3c6de5c4b04a7d7149da4114704", "e0b35cd55fa44e5aac0807bad8a156ca", "3fbc78b0be714c7286b5c3f7a359adc7", "a8554b2d58fb4ec4b2e593540e7abb37", "e46f80253a6c45d581d43d45360b9fcf", "b6ac8db9a8b34a93be2af6bd70a3f6f8", "5b4dd767ecc449a9894b8aefa16e1d3e", "f9fe9b5c96804f27bf2e8c116757a20d", "50666ee239c146f0985397d93084a3f5", "32af08c1592649f1996d61016405fc19", "9178a751a9c4475aaf366dbedebb8e24", "c8e37f2c986a4cfdbb6dfe34754dfd2e", "299096559fb74fe2a7c1f17c35cd610b", "016c31ae7cad428d8fa656100860e6ad", "b2c77cc2b3f2469187daae73cfd6096e", "86ba1947fb0e479a86bdf2f9d1352d54", "a065703e1666415eb44c65748979d8a5", "8cf58d9bc12b46e6be229814874a2645", "6f070f5ca95c40df86f2e3ddb8dad6ae", "a06883b96a4e4f138a8cbcc5233ccfd5", "0631a0bcaf47444ebe3b0d7b6dd50e64", "8b256400a13146dc8926a892c901086f", "55713c8a78ce4c248cd563ed3bd97956", "62e705507ace4a618f6d6401ae824304", "58227504f4be49628285d0512ed8f189", "ccc289424b404ee996ff01a3ad28b8aa", "390a7cbcc5f34248ac26751ceb542e0a", "c8380ccbab2748cb8f6822545c9f4e2e", "9170518d0b2447158246f3ebef2e8dc4", "ce9b134a25e54076b19812df21485c9e", "29ef45ac915d472cb3ee172a181ac370", "cc1e3b2d10e64cfa8e751f34497850cd", "27833b70dffb4202897368af2811815b", "a646c853b7a141c18740b3ec75a4e631", "9de7e11c11dd4ec8b351231173eae56d", "33312d6c79bf4390939524ff754605f0", "5b775af90bea43a79e2580d25fa5bbea", "f4b0bb1f6eac4cefb5ecdb253192e652", "446ef98a410c4775969589eb1aa19306", "8fae95bcbe8e420a84b87bfda3af6170", "26bd43a7ab67472483712983f8066798", "857874559ced461d93c9b97baac814d2", "6303acc46cf04619838465cdb8f5b82d", "9131cfafa2e74545b971b41144a147fc", "088be811deb34f0999e249f4cf8cb4cb", "afb01f9b709f4d32a489d6bf5f1ae933", "4bf144b3a10241e79a916c67c907722b", "21534ad7b88c4a17b5484d6a4548cd4f", "a443542fa83d4a3cac286b0ed1a0b2dd", "c26c2dffff7c4e0d8e5631a74ded5069", "4ce989832d54412382a672a2e534cb78", "9f626de6ea274b2f801f3654a002bd3b", "67c68792b1934d80b512fddabcb2cb65", "714edcd3daed49ff9530422e4141464d", "783a350d99cb4c3fbc78aa2b1fdd2919", "a8498dfdd2b44b8694b947176e6f4819", "6e195072bae1428bab93fe48063351d0", "f8fd81c842c749f385a242791195801a", "5c6abfff44784e1fae29bf5ad18f147c", "c7f2a7bb4f7d421b8e0a28e016ba690b", "d37c102174ed43e0abf79f17ea13688b", "cce698a232e543c9920a6b725b69a795", "1e65a97633114c48a4d05f840e133425", "43de42bf76284505b0ca69e3c44b953b", "1b60482ce75c4fb7808934e2a4a129fc", "649f1e8346fa4510a158f1fa8b0152c0", "b8d996d860fe402f8015330cf9c2ddf2", "f427a34f75564aaab32ca53e6e534ea3", "b4f08d2b8adf406f9b30da5d112faa80", "1339645b6d95413eb8d81ec34e5ddcc7", "913198f5c4654f8aa7e7410ef9f2c074", "ca83f99ebfef43ec88347bb299297f9b", "a29689dd72564474bebaeefe83b63f25", "7d341fe423884399b8dd04a2a95dd096", "606d467e8f064e88837d82d8e8152ffb", "ed98ddaa06f647de943635c4b0679103", "fc1c09bd6f8a4a90ba697d38f44a7649", "7495b181d22e4c3db7c6882441422842", "1849669df1d1467fa56eb3a7ff4a9dfb", "b4ceec7d07304c269dfde8e57a411bae", "384ae433dd9d4042851d011e473c567f", "f26ca7eea10146a69e750ddcb77659a4", "982d88843bec46108a89e302d3f033e6", "5d9e76e4679a48db82ea7a846b191093", "7f87ee3bb84042e283e545dbc98b57b5", "b135263b285b476cbbe5bb7dae111028", "67f7989067a649d4874406776e89c09e", "6f53a733aa8d4e0d9598919cb6c79f58", "d4505335f0de4c398cd365dcfcdbb493", "b8d0bb8d17804e17b5e960643ccb0709", "d56d1decde3e48c0b5098b9082b263d4", "e0ade14dd62d4444805c9f5972ebeb9e", "76bfc04de0d942deb6845573f864b6e6", "82a74ea9bb51456282f98920a94de584", "12aee23a86bf4f2f855000b7d952a3be", "a699f4f2416e45b2b7bd496cfbeac6bb", "25cb8ae46c76431b995f5d28f00d9a20", "ff2e54e2e2ed4adaa5f7bdfc0f612ebd", "e19ec2ea784144dfae4f3bb350dbcecd", "acfc7dff52314e61ae1578753d488e88", "401ac5c0c0a244f4823d4814d7928966", "5d19383f11cd4d728ef7f91aebec5e75", "ac68f22234084d11a36808231a71eea3", "662d485903b74972b2155f43dac647db", "9bd1206d8b0b47109512a4dc9a5aff54", "a77c737402b54d5a84599357d11b9724", "540929cf9f0b420eb33aa0dd1cc03a0f", "0074d35f8ce94d97ac0e4b6146476260", "1932a586762c46e289f1751a8ee0396a", "91d4b2ddb592435dbf74911a666fa791", "19c25c68bf3b46558dee3a603a66ba10", "03c163feded24d8aa872372f13312854", "530ad9b2687b48078879997f16add461", "4db1e0f0d526442dbc9db12f76b4bee0", "819928ad38bd4bbd9b6e8de28d087154", "ffed323ce4ed4201954d0f45323d5f05", "ba5bf848c27247759bfcb02d1d4931a2", "c94869a1d9de4bf58bd3042e0764205e", "305d45c1dbab4037a29d19276af90c9e", "ef6ba673b5594428bf9fe90fca8b7f0f", "99b3db6c9daa4dc582003967f1e01586", "6e99d448f188451299749bd3763a94c6", "390a9503987a426fb14be6d037e8339a", "7f46c6362b104bd5ac2abdee790fdfe2", "9217f8799aa74f368496b3c73bb14ba6", "59a569e775f64929860ab2382e09062f", "44dd35c4a5b84861a40ff47eed427ea2", "49809f3f5071404c89eb541a7f7ec50d", "4af4a9c65c014b438dc7a91ef13c657c", "d5198459b4fa4153911bc5ef714d5de2", "438d1628b8264f84be0aa61601c4d1f5", "f6aa878f2a13489e9ec61812caada7c4", "5d5faaa401b046d1bffa38573c9e30c7", "6c63910feb8a42f48d4fd79c793b445c", "c9f03ada5e9640f08aefa69b8b96ba06", "59fade4dad654a7dbb7e02c29aa58229", "db50346d587b4c5280c5267152682710", "a41c9560b96640f48585834a8b737c3b", "2d0a5a7435604e878c529edb4ae9f9d2", "3be00215a7c6492ebf6a08f4242ad85f", "ceec5728f9ef474ab5571448615188c2", "150726d47c5c4056964747ca3e8d2d55", "32f9a2baf3f749139bb4ee1f6d096c93", "79b3d203411d4dacb3cbeb6a0b5facd7", "898f7b4ae6d044a5a52a998c6759b123", "ffee854b9b42488eaade9748bdd726e2", "5c234109c2124242abfd923bb0e1e03f", "4f0f81ea78344af7bda2777535b3eb44", "24c1c0bdc2d94d88b1c19633f78d7958", "a8440f3f72bd4357b593cb1ffbb0841f", "163b08dbe88e455aae50e765ccf1955d", "6611a044ebdf4493be6c0f77db158f1a", "5101d274325344df87df20706fa8e7be", "298920e16b2449f79474fddf7567606c", "d6f446a150e842319835cf681a824acf", "48a72ef22bd44637acebefb1269a6349", "5bb066cad3874ada87dd4ee6e38c0e3f", "72b758d37c7a4e9c81791d324151f125", "893bda7e4c8b48148167010e5fc57621", "d16151145d364be2a33233dca26357ae", "8a7e578121c0470b825cf921357a76a1", "59d28187ae8e4b3e9a5f29e5bd88269b", "5ab1a2e95a774ba9b3317d6ab18f3d0f", "18081bb651da4378a2935586833a2d6c", "e8dbbf1b24db4ef583632fc645f9978c", "b2a41cdc4aa7421ca3654f5d18f41854", "09b54cc8e28c4487872da0f4ff33eb83", "d540bb121df548a09734fe6215616e4e", "33ea5fb636d1476882652886c563ab84", "3a06f3bb562b4b17ba50849ff21c5c0b", "c941ee8d58294f4b99ed9e0eabd81f02", "054d2263f0cb4c68a9bf1c3882c98758", "b21ea01c57b04a1f824f763c64819b33", "f35296fa919a419c8d737ee5653ec509", "ff9c581f8b0344179891a68ae5dd1d76", "449afc7fc4ca4dba998dcda8a8862c4d", "ee492112f1614c59bf8148e3d17f6560", "808e424298ae4733aedcc0554220643b", "0053fa3e044b43f7b7de1fcbcb05cf6c", "adc7089aaa264136b7d54d65aa59e0ce", "2f50b20b1fcd46bea9884c18b15739b5", "c6bdc1d99ed540c98fe0dbbc70aed292", "1cda99530b20496a86e80a9c0074881d", "9507b1fc98534b4b8dce628c02124a57", "2241cd18c497466e9cc6b0500c5320bb", "386948fc70354ab5b78ecc7cd81dd48a", "8f496a54f52945f0b72018dca88aeaba", "b39c38ccbef941be95fa42c1432d5f71", "441a1d6e22b14939bbad2bbf576805a4", "558fc2b1304d4716b089e413cd1f53bb", "01479eb06ac0470789cb87c7c955c66d", "8c8b77b91861423d8fab2bc5f3c09c62", "5a41861a36bd4a0fa7aec3b229d91ba6", "e02b5e1ca4594c9f98590a8d9fe0bf1d", "0c4844e4283b461a98629a0e6286f8ef", "6ca1c891765047b2bdb8113b594ca10d", "9f5a571b6db440c692dafbb510389702", "275801e5351a4693ad086231b1df22c1", "07cf2838b57540d080c9ce406820a72f", "e423d95f59c242d0909bf7805e1f2b05", "353d88d8e45940d5b0c874ff1b444cf5", "eaf3a98dec8f47759f124a8b9b4152ad", "f9ee8b5d14b84b359b0446a12c34c4fb", "ee7309671a544cd084397d8e9fd6b2de", "7009e3b72ca044a1931bccf7f71d0dc5", "2ac5fbe8a55b40a6a4cd07f85e24c36c", "e76dbb32fbd347d194877162322d5ba4", "6618363039f142a5a398a9162369b911", "9ea2058932b1444992d93d1b8992e5a2", "0e0371513a634704a309df4adff3265e", "f9d50bb0379a4a19908d305155ba8541", "f8986776c00540099126c0f98149af9a", "41f7de96fa8f464cab8567fe91707297", "e0249c5de57f4c1692879acad7862428", "ca98cf4990f748488a0a1db63025ef5b", "f9bd5c4ba6cb4776b2c3192879e8c6df", "a8946ad75eaf428caf9a7c3a49e6eeef", "017b54ac87dd455e96f8cc5adacffc54", "78d08d842a43458698f657b0da98fd9c", "aea83ffdfa2840c197801f48d4ff2d61", "8f427de3dfcd4078bb9209d4d5e61dfe", "b4bfb5c7a328416cb1ae499a02f1d2f6", "14e2bf2556f648f685ea1c8aba382f9f", "143887fdaf3949f0b60bc20f4b99106f", "10f72efa0b6147c48d23b862014467c9", "c1063091f53047918c35d7f577c61b97", "d3129de5ec2644fd851760667ef92374", "e446731444204798949917fb9b84f649", "5489e3410c324fd99be3c749a3961235", "107c2fdc9b594ff7b33c89d8153f1a93", "936832c8465a474d8edd9fa37cae2f23", "328fba81e3e545209a32c2d634921d58", "35e64761a7654c6ba62fb37b289153b7", "71f80d9bfd5b49f79bf9d9b5a8c8806a", "08cc009092f14c1daede75e244f6162c", "c8f249cea74b4139b25b95fde9f8ccd5", "0c68b732af7f467ab7ca52a4e18dab54", "b4622f2e6d4f4cb6ab826acfedaf2ea1", "ca76bdf24a4e4468837c716b3d3fe544", "ce461652fe404155b2279db8c6286469", "88c35755ccdf473da2d186854baef9a6", "afdf2dcdfc3140a589a176e40e521c7d", "30457fa11dd148bd9c8369b26c8c8bc8", "fb56a56b90334e039462fcf1d6e3cf8e", "4fd5461115fa4dca9c6f86302f5eb312", "3e9a51525c7f4624b2323a45c108ae37", "573cf21d8c504725bb993620100ae450", "7705e4ff5af8411fb82241f09e2a53ca", "76912042299b436f9ee04025fd6d593a", "afe0dc44efcf4c6da412c26754724743", "543023e66f3040d79ef366d017530f24", "68f0ee3dcf5b49b5961e641507949abc", "81a611206795488ea1b047b58dfeed52", "70f85c23f8474d9f8498e58adbf4156d", "a85c665e79dc4c609da226673130a9ee", "ccc3d03e477348af93764f14202f0945", "e1abd561b1ae4c3fa59adfccc61f0825", "69f995a6aebc4a55a2b752df8274c07c", "1c471bee47b14174b8422753e12e8706", "8bcf6b0e5c4c4f4192724bdfa8d888b1", "a592d52d77794440a98bdb77ad3617e8", "cc18ab06ca0f4205868734e8ecc4866d", "5a60d698897a45e09edb180711d187b4", "42537b73fc7649ce8d8e9aab4f04be26", "f5c8465b65e64ceaa2a6ea314d86bf7d", "62179d95599a42c286bb363c8913f15b", "94ebc4d051564b3fa7c9054719f9202b", "74cd79325db646e6ac9654484b677b52", "c8975dc358254bc89dc45d6c53d7640f", "5e88cf72075048b39afbe557a315fa2d", "eeee69caba9648638f0c186500e01c94", "c76326ccf8aa4a35b2d5db129973ead3", "92f6dacf0a3e4839bd6a174b38ff8849", "6037fca749904ae6bd7faf1099b987b6", "03f3a4f8bde24428a8ace796f547838c", "e776362f75594db4af32cd7dbd96204b", "fb6be15cb2a543fa865668bfea131c3c", "a85a3b4531414a78985a95ab0372bfaf", "73160f37860d4fce897dece61a5995f9", "0d8c4bc21e4e456a94c4e343f9d743a8", "d8a8ab40cdae41a4b7252c7eeea5ed37", "2b15666edb064a2da047ebd24d23ddc0", "00c09f2967d240a7a810f07950952e6e", "fce43349afe34cccafc0b4771cb11912", "580d2933a063411db604538ea399305f", "d6235d5c595c4b45b88954cd08ef8d92", "f712bba1c00a4275901905c32568b5c2", "4f4e65ad93a24f79ae7fbdfc47c109f4", "21b153ac8d53435483c2bd74e71a9baa", "58f33f943cc245a78344fdab37693ede", "4c17d21a59c943689e2ab4de5db650a9", "66d24a2ced084da4adff9463f0da5853", "1b5d923c3299489fb54712fd2c8ddd17", "225e7c3a112e4a01a2eb6004660c92f2", "b803788aa28d49f2b4e0a6377e637c98", "a3a7fa958fa94c98bf080fa9e7de1566", "917d7fda206b4606a0d9b27759133084", "d62e45b9b6d4404aa49d08063883835e", "58b18cbe0d654bdbb989082290a080d3", "90d5bccaa4c1434aa601126d03a325fa", "8f5e89f315344be38bc0a8938a0c2d0d", "9130c4d293cb49a0b69d6e8434f24fe4", "e7c5e315bae9437f979659bb67388012", "c2e3fb48638a4e88a0bf26cb9a55057a", "653f9ea2ee1d48e69b6128ce27d9394e", "70e49fbf245b4648bbb9978d9ceb9631", "5e9b29e3b4304b54a6494fb32f3b2862", "4e1c8dfc66cd4d3ea3ca1507cf2ba304", "cabc4c2dd5a24060ad032b779f4aee40", "41cd4deaeb894291933e7186c749c978", "e1191534665d447baba6d794d78a487c", "bf72413bb93a4a06b78f8acc643af141", "4c71bf73aa114fcaa4f3678885045bb8", "88881b31f8784c92b5a1ed20c00ef7e3", "a170f171f49d46109c684d735263481b", "cb3c8ffd0eba49a1915635556889b66e", "f4f6c33525da4711b6099eee03af20dd", "8fa1412b86df4a46ad36aa6b17529b1e", "ec6789343b9848bda131967394941c64", "b7147475f3f442ab996ab6db700f70b0", "80f211de196046f3a10763ead7f14cb5", "686af2938ffd44399ce75f6da64f73c8", "48cd3839c9d44036b5db16fe0aa066e3", "4d2f0b6984d54457b6e1f89b139181c4", "b79fef4e34aa4d3694b6bf35d8f0b400", "95de4d7a1fcf49d58bd7f6dbd213eaab", "830d4f1c7115443bb50c2e67ba16d717", "96866c624fe349c6a6d6f1972127ea04", "98b479702fbe4b33800cdc087acb30e7", "c5b9a4bc52a44e6d95c24d01ca5d9674", "4141b1a0e7a44057aede18436569be5b", "ebf1e6b8deb44dd5a48784c7f5148cbf", "5adb6b615e844328b52f6a204767a994", "a6b55e29e73a4cb0a1d9160a3da68638", "ac20e4f8fa874626bd0303b1b7fd8ae9", "0fb52e650e164cc9876b959e65df055c", "13f128ffe59c4487b659c7291f82adc7", "b6b7cdf033424951a507dd36787a5e5d", "919ee0d8f7514b02b4bae0dda2760391", "41915ed05c9940008a5e57f566d004fb", "ad04597b9eda44a791c00da94dabeea7", "ad87c3875720451fa6cf7b9a96f19997", "4e82509540334d079a06496db0dc6beb", "658d5359ee4542efa95e50bb561ee66b", "3dfc2e67b39c4394b4187f37bd3c3269", "666f2710a3664a6b9a7a43d8295350d6", "91858730c363418db2510cbd4303fc49", "e0102e2e155e471aa0373f6b41ea3050", "279405d375a143178ff1899d5554960e", "198cb80417e54719994b8cfbad7d0c72", "e51f81e9d28b45cdbec5139b9156f4b5", "f701e8908e0c44dea6d813917041ba5f", "dde041ee21334ab7b8dafecd7aece969", "df1381b0fb5e4b6493b008a495b4488b", "ca61b35773f44ed2b9160bd309083233", "cda6cadfedf94053b4f543cb5fafd5e2", "4570ef0cf2e74904aa60eae8abecc641", "3fa94b91c546402584f4028937470a2e", "490296b643064732bcc64dc22ab18f0d", "4e19c61229eb4ca1868dfb2b44747600", "658c2658336842fc9c06cce90e7ec119", "7066095a170040ba8e3e0db02b0a9337", "5c8cf9115e4442619e5a806e193d092c", "21d9c7503b304638bc047ccdd59182cf", "a5eb0ca2d4274c9ca85aa97a839b8044", "18d8defb9d9f456184dc921e9db6796d", "257fb951728642f2aee9166e1c1a4611", "f55baac215a54bf5bd751a9b0cedf571", "27c69b432062433fa096f960eaedc783", "aed2e375c4b24504b603c0e2df0adae6", "ce461d64041b42829fe34258a847c88c", "a4356c205cdf45d285ae50229c81cbbb", "f606aad35dfd49d4a0e72a43fadc61a9", "e3d8b1c7eaae4e879217a0666e2c768b", "8502c4e42870455f8e128f16ab6e5857", "6022a528d07e47a0adbe01a1bcdb7908", "c8c66b0a4bd74b17bb18afa7a207edfb", "55c951f8d24c41bfbe6c785560cc66b4", "c52b8b715fd34d96b4f9d92af6b914d0", "7781d6cd7c174efc807ddfb7e9ebd8c5", "cd912e5b4ad447cab8284ff7fee9b858", "7bc8228924454a37aa486795fa5d9c58", "4cd6982101f64e07b75aa988f80f2b19", "676bb3c7c7534423915464aab2cd68c7", "048b4a0fe7894a1e8eaa2ea89035577c", "3be94c541ec6403890bbe5b1513a5590", "c81b343052074854a3882c053ca9f466", "1c5480f67f3549c883d5e360b680e0f5", "2ea0de9370754d1388cdbc77a583ac84", "f14c2657795540e59a5aed5dbe071d0f", "01157410b6574064b5fd3d7590247483", "e1bd1e9ae1d2455bbcbb1452c6e1d9ba", "5eac8abcb85648c2892555d236f32688", "c6bbe521db9442319eda3ce6c75848e2", "a5d39d94fa004fef90100f40d39f73e0", "370cc776ed694804b019e579929534c3", "88dded8d7aca478da2e1e79727c55b86", "3219465fab1f4a5591e5912c9b83740b", "9b7dc60e81a54e1f88df5e66d1fe2286", "9a567387b40249c59931591f4698c0ac", "843ddc784801453197230181b536f0ad", "fcc7a80e53ac4b218690aee989ae010a", "4b97a54ef9c14095b015f100ce9044de", "a262ab9f5ab84699abe3ec450a2b8d32", "e3056523a22c451898bd4c63dc9004f5", "188a15a368924128886bfd6f1aabb437", "7a098b380f374378bc975399cafc540b", "de5a644e159f44469cd45cb5f766dd00", "cb825045b7af4252833f23c0419459de", "f3c4f961e55e45c58c58f8d7fd23d67a", "5937c541ae18439d9d74a8758a13c08e", "ce0b360586c043b39568fcc9f404cd12", "143538baa5c84251be7ec80d8b48e8d2", "2b884e0a2ca541fd97bb92be7d25a20f", "ff12e51de2e04cb8b997eaa1c9106b91", "9dc7dbd7c3d44a089358c0caab4dfc08", "3408ba9507e7467683cf404864867950", "f0f65da442264e0ea8fcc264e01b7d91", "6c5d77e38e0d45629cb44678d2d647b4", "ec923a54c2c041ccab39990522495119", "250ee3d2ebe547d580b8a8a3c164ddf1", "0c96f474aad246f5900534ac4182fd64", "805eb9b53f79411db32cb90e023a2431", "310154b80a7d49a78f0aad179531d634", "070e85ff628148f395ec1e878a2a18a7", "653886e9288b4ea4a068c00c1231363a", "8e1d3d8feff74bd89de1f0b4004b5665", "0d8d7ea4d223415595a8417b61d25d2c", "be5501c8d5f644b3ae003f8110d31754", "84d6aa09ffbf4077bc5b63eeb851ba42", "327feb52dd804b559d7aaacc820587e5", "38c84bed894341d0ac880fee03ab4eb1", "b58dbed627bd4cb98c13c5a5406856ce", "c4c27e927d704cc8b484dd6fbb8df2ff", "e7d8d25bc78e4065b15800c03d972542", "606a3ee9ed4f4ebf8d1fa9d625b632fc", "03b253ec321841aa852ea7d89d30cb5e", "10f85d8331fc49989b181f40b36e6796", "22fee1e01acc4d7285e9b85c9c30c2f4", "de45c95025384469b00d2b38f033b8b7", "971ebce7d960492186a8395c8a335d97", "0e1c6e7186a9442e956d00a8e2d49f14", "29657e23fb234286853f103c60997ad2", "698756240d03469c9093d22293c93c6a", "de051828a1f3482cb647e3f2bbdb5749", "13d2bcee334b4816b43ec59b49695910", "8019be03d3a14959b5b701153eeb7aa9", "c1f76ce8f9404b34b599308fbad41e9f", "6eb1f58ebea24249908925f0c2ef36ae", "e562920b98554e94bc2a2737297f3de0", "c02064a350fe4f4aa1a9998556f50416", "d6517e27835f4106a1cda6da97113169", "4480a3a1bf454ccbb236bec79fcb7899", "d1234327ecea4f2aba57be14761c6721", "bf532b7120964ab0a52590cf035e1e9c", "d6cb68e408b34dfcad0f85afd07ccb4a", "c0f67b494402431b8786d5d5ca52600a", "7280c93ef387416b99571c608db9bb26", "bd581f8330d249d591af18900db06819", "2d8ab4c1a36743f396c8bc15d50160b7", "02bec749cb4b402384416cbff66c3f00", "8d03246be3584017a1489cf663a65eb4", "1ec200811d454712b9834d198abdafee", "9a63ca57dde949f8b816e9e0340804cc", "c3b7106c755240bfa3d937cf41ffc5f6", "9c4d13759dd74899afc0cf39ad1187dc", "4f57641f7d164b18a217e9c14d80dbb9", "01cb7f166e3e45df80ecb354891b24cf", "7301d921935d4057a1ff12ee8b06742f", "b71c90a887534851a7368318d3f6c893", "d699277934ea4a8db6742c20158b3087", "e19a53b15bb841f0a271dd99576120d2", "15980f5c8d4d4339bcc1c857b2f11164", "1fb167921da0435b94b82ff980386d54", "4107c63a539d47639281057c82729457", "804ecf2d1f724c5d928970f3428514bf", "8e3c5f1292d04aba9e7fbe412fb0e663", "d924ca6003364f428e57a2c532fcdaf5", "5217b0cf316e4b3cbfa0040eba24bafc", "71bda60c72d24da4afdf1c2d02af5246", "f55fbd2c6ccc426c970003b346a41198", "422b48b23f524b82b4e25b214446a1b2", "06c9b629c95140fa863bf0bc9e444398", "354f745024834c03a0d924d246a49bd7", "0f0c498529dd49fe896f80ee45246f8b", "0f7e67bc45244b1380a936687a9e2330", "65bdfb3b08514c15a891405e6e08a710", "903b9382497d43689412b3abfab14e04", "585e4dbe16d1424a8d36a29b4cc6f467", "b0dbb229c4c54106a416f67ad45939df", "95095d6be94b4d2a80bfa76596c71c86", "d78e22de4c504fee92792b2d98e04764", "c848c667b7f441e9a0ab758fc8139a48", "f2336e6c114447fbad57fef81e9db79a", "69b3b9c3460e40beac99532973333a0f", "9a8205610e0c4c8696eeeaad40dd416d", "42345738727c406ba9de9f5549575c02", "a4de5e96f3414479a6a1a0dd929bdb42", "4ff14c35566a44ca844fa35f0667d83a", "489d567d6e6b4d32be0317aca43f6488", "9592760057934ab6af893e6d17d78642", "a0aaa8d0af1e4ae39a02944577aaba9d", "541be4679ec645c08bec8ba38d2964df", "b3ba0109dd2243bd81b1687ff9f50e66", "5c2f9e6ec1db4f58b929ca2591eaa1f2", "16a9ad73adeb4f838e4058cedfd353a4", "da08e49e12e2414190ec7664bec36455", "58aad89a50664ab9b56bdba8f1dbf9a4", "86decf171985453dbceb73a001947b5c", "cacca34ec04447a6ad2e6ecd2e3990f8", "95cbebb67f974cd48a8bd0d7d3b47136", "ce49af7a937e47949fc43fad480006e2", "9758dfa370674e8ab6fca9ba8f2e846d", "eaaceae8c35d43abb6b4426d44e1ffcc", "850551c6293b494e9f11edf20c1d2f1b", "2d97a3de833d4dcf842788867c5f0869", "f877f8fe82444f70ae062bc60c8651cd", "a63144104fac4aa49437714a1b3ec572", "967a1970a8c640889e9a932560f8304b", "9027d6a929cf49a587582466d81d25b4", "f8939c4d10fb4fadbcd01b27f5aae84e", "16865b84d9a248538dea2ace3902f2df", "be96f959063a44f4802c59ab15b1904f", "bb67b5e6b6f84a5887407cf40a50cc9e", "ff7d952da26f45abb6e917afa5a54981", "52363e17f4f24c0381478de4c6c2f660", "9adc176da1514ad6a685d3da70a582eb", "566656ea079b47989bf1a39ba7bb05dd", "cababd94e1c7425e8cbcdb1c464d62b9", "cb0d251aa90a4be6b55644360a4bb0d4", "c0a50bba5d2d4372aa09d8431145c4cd", "bbb5b9aa1e334e5199b7724b616e08e1", "a4337c6760c6412fb514e985127cb083", "ca6d79c1dfd246f8bf0cf679635faa45", "b819ad47cdf0475f8588e01d533b6082", "dc44abe52c8d49d2a2a438b2fdeb210e", "5b6476014a1a4b7d9ad598895986681d", "2b80d64bd4d244c69a25a23af39a4f30", "5aa68f10bba14a748ead470105b44377", "d81db9963ceb4058a2ba24d25e89cb66", "aa19425247344d38a079d5b24a32aac9", "f5c72beb70184304b9598b549e73b850", "1aef5aa1b5fa4736b0e985ef75e38f43", "f9d03522fdd64d6d9adae827063d6183", "76852da2e97a463680eaecef58471aff", "517aa128710c4891b70198df4ac053cf", "3ca93fb881b141ad825cd1b0fd87694d", "1d18425cd7264074966f59e2fd2395f4", "5ae6f1d7119a4731ab86b538c65fe564", "8780c259c5d94f7da7ae2f416feba326", "701eb4db48174abbbcb4ae3fa1fd32c3", "c8237fdf50ac4af7a5553ee5e5922831", "464deeabbd544035a2f488d554e75a26", "04b35dafba3e4faab0b4ad925aba3ab4", "abbd74c0d3c1416dac85827f6ceb223f", "4322ec6646684472a57c22fc58cd2526", "2f23f76fff424a489b6ca9a19d3c7f43", "8daa11cadcd44e028c26cc6643c2e0fe", "d03a3b6cd76e43c39914fc95b244cc71", "0389081e93a94fe18ba37ce7df88c097", "234aa35e3b8240f591b46d9dbca3610c", "a2bcd27785794f139428267ed97587ca", "875367803b0a4f529c44d31a601aa19c", "f09e9363f9a84f0db55c4f5ea5e57365", "32d3784dfde94f74a622a53adccf11fd", "7d61af9f8b0b4c26954823b6bf770001", "3524d277a4e748c6af44b3318256c754", "5d81cc1723c94d08a4b3d808c6ab878e", "da125e084707488fa970e7c5879a118e", "f8edc1d4aef94445b2a99d5e9e8851a0", "bf74bc117a8e47b1bb8c40121c96638a", "b1efb0c78063440b941a55ec38143ad8", "afec98e52f1c4b7a8f494f6db9f0c2e5", "1179f8e8bf2948b2b951d1f65d0d1a8d", "b424d0128b364e8eb79d0bd3db9d9deb", "3f1c5ab2a6524695ac7c4b3936a698da", "bad2430e1b0e47cfa5e3296fb79d05f7", "76d638b681574a57bffa1aed1d70cc0e", "de54e7a1318c46988337d4b6786210c2", "8c4d4ad8648c4743b28062820c1b835d", "15f3b84b6bb846798e037b3d7bf4f682", "1fc6f7e87288418880e902effd056705", "7dce889b0f2e4260b3c877d99155b3f6", "603108d6a07d477aaf1d8f21e93fbbf0", "dab8b8155bb94046aff206fe212937be", "2dd13bb0e2ba49ce9efe4888a334a2df", "b9c6b60ce4e3400b87a9476729f5f1fb", "e55b307af2f54d88a790ee93d8cf1e5b", "18a1098d22d94e8aa78581011c9a25b9", "d528cef137ba41099690a85efeb00b52", "1e8c7ad5ea764bcea8d40fff19a965a6", "7d1cdf34361e45b1a68b361483af191e", "aecec6dd9f0c4323a60a0b1772752ca7", "0a0b480b9c304ac8bb3c87cb8017fe12", "d83ebb03e4d7489e9368911c15fd8f74", "d77e87a657144e87a212472032785ec5", "9496c7ce92004c3f9f54feecbc031a68", "3db88a30a3c14861aa890d1d31ac83b4", "7f46b3f406914119b89f8e4cb9e1777c", "af3ddc65debb4061a49ecef3f407284f", "28f4e6a417194be2b45c9b738d39e207", "e9dd2a54750943e5b4fa604e96c30513", "aa34515238454552a70697fba623aa03", "466e8e589eef41d2aaebae287e3b6cb8", "e9c8409f06f64b4e9c2d9b4883a94638", "1a41a9ed7f7042cd94024df8f40a2c9f", "844d0547bbac4bde9c4f520f1000eca8", "e2e0f6a4b03f4acb864162f06e398768", "1f3a34b6aeaf4bddb148f24aa8bc3056", "39db869264e94b05b1633bb3c4791703", "51b5c6b7e8c14e1c8953db1245722e57", "a13d85fce40d4940b4cc500322174df7", "6009992e76b54c92ae69a4353463896f", "b596e0614cd64c6ea1e255f26a108242", "ef6f366e129142b29b292e202be80d86", "005c4d19e7f04b1e9c94c03006885b0f", "8ed0179dfb094973b6a9ed8090ff2b0c", "0f83eaaa767340248c3fca027824b33b", "68351d461d364e6ba14cd1b4808b20ff", "652e81b0d763428788516bf2b263b07a", "31cca30086e14fa79529709c5b89b724", "019b5f40717242b4940117855ab37e84", "68a38425f31a49b3bbf91af3673edce6", "145e7628f970415cbcc4c7f960dfa869", "72f8fc44886840ad95e31ac19684e786", "0b5c3c4cdaf146bdb15fc8b2ea74bdbf", "3a212550be204a06b8a374fc19f9ae82", "350d974c8f014945b6c91d7ab09ccdba", "76fb037330a04aa9aac1080c3f14e45a", "7966592be68441af8467585bc6b62540", "2d8dbf6b0c5c433392b9cb3382446e88", "d8524aa5233e4ad2b343a02d42dad427", "8c013467eb944ba89b2e91eecf26fcfb", "3caf1ee627aa43c59a44249723b3b17b", "95f465957d0546f9851d534818c28a10", "b80080d266644fd29bd1935a3c652b82", "e05a2f323ed041d7b874db2af94b8488", "f90ba309343d4d07b9de13c76b0c1a45", "83caeccdc55a47979ee93671b29c6539", "7f0a9f53b91c470c8dfdb48d1518aafe", "a7e70ef3d2594452bc8eba00703bf671", "7d9f1dd41e044eaf85d4ab59a912b769", "3f9b6087626348c9b891079fb7782f7f", "dc0ee55df93c4e5d91ee4a402be1d824", "b6faa416756748ed838844c9cad2a4b5", "d1fa0ff98e7743faa5b71475bb02954b", "259639d7f9c14bb69a592cbb9b100539", "919b3a1a5bc74f46b247f0b86668e306", "78cfacaf1e7d49949ff35fa9e55f8a9d", "0cea58d2f72f4fb985317a4f184e7946", "ed67fb7f6d35458fb8d506be5fb659d7", "7ba6754a3dc34bf1909bcf21e7a41ea5", "6f88cee7e42d4198af74d78fb8c251d7", "a3ed8aefbbd546b480ac647e684d4f02", "1591351f37934d6aa02776dd958e652b", "ccd19585d70a4953aca1315f5bc8c637", "a0fb49724cf24ddba25ab02678c28c66", "ed82d3dfd2fb4620abf38a231b44d61f", "149840c2e9b248368aa4dd8bfd7f041b", "ea99b1f09a2343e384d1905eccdd82e4", "abde0fc7e8554914aae5a6c347964e8c", "820f4131e2104904912db0f72b281421", "6511b0f7235b4e90a6e44040f8f83257", "d49b53d2d00c4590b9550e753e0a9160", "44f0150f5b8541bba1b94adcbb9e298f", "bd60ea29fec24c3189b87e5584c2946c", "68dc5ab7258040c2a24ecc2392b68908", "b0f9ff9155754497b8f3eb41bfa2265a", "6b3af4c3a08747c7b2e3243164fb2354", "bc8bdd3f87744d379a58e74d4943a9d2", "49de604fe2d84261b9318e6cd979cafe", "012d1c9deae845f186f95b7e01276b6b", "a23a136f9cd140a085154f6c68e146c4", "997cbf445be346efab6ac6ece5897ce7", "12ae7ebe2e814deba5d6d73c76fc3af1", "496f91a7f9e942d9b7a37f98fad14c66", "ceb9c25916664b0e9625ac79c51c37f4", "92a468042ef64534ba0bb142c1df6caf", "017867bd03e446f4b59f876d37f51186", "0f508eb8e19d43918de432579d612722", "c5daad67e57a4da986ecccdb02836822", "e507533a5dde4ed0abf9604aca0499f3", "19fbe633f3494044985cb93b821947a3", "94c3ab4a81364c6191a6fab421b1ce45", "ff2a24ae356f407293e4a1143239061f", "2548b712a11243ba894f4501ab601799", "8bd2ba17e4ba4780a7627085c73687cd", "aa9d4ef2a6c54b7aa217759c1ef7c387", "c254afec40a14673bbeec56fac86ff2e", "40e590202cec4e569bd43cbe2cfe4a07", "e62e3c5aecae4a499ea15f30f619877e", "4f4e353402f84f859d01b64a7e96813e", "b9717f6252b04de59f54f628ed40cc4c", "6db40599fe544548bc76e242706a1464", "d2d1248d28e341518b2b29e665801a82", "cca15f928e904e8d9d0750cf1df7365b", "1d086b9f09db4c5f84fcd33040051085", "db495aef2fcb41cea91a8ac9437be03c", "9053d8dd4a554f849e9392980c8acc22", "2c010507a79c42058ec271043230bc15", "633c7a59e86a4f8486ce89d636da6c82", "84cbf0e279d24ab89de50fc0221ce160", "925c14426ede4f64bbd7a509ed65bfde", "d88a7604fad34c18969257c40d9270e6", "75692ab81d8b498f8369e6a944c00477", "96805f06df8c42429334e7dc91093717", "c57d4e206c18409f8a0843d84c0d67b5", "805df89d81334aed8e3919a15a933a90", "172843f564aa440dbd5bf801efa4985b", "f019a679e1df4748b9f8f407919ca1fc", "b35f5cd3232d4aa48275fa42ec3f1a29", "8551f11fcc444da487dfbcf787a1224b", "f659b93fb97446d5b77cc6780d03fe2e", "0f1d575d889745c497f7acbd754aa127", "53f5e7898b07414387bf6040058611c6", "45af2a1132444c58a175b8e6cdc2dc99", "c4c65b8069e04611bd433bbb1c9e218f", "d1b747a8d81041b9bf3916b4b793ebaf", "feb30e3e50ba414cb1b973493688f9be", "db3f278d3e7d469384b92057a42096f6", "89356e2041494b4c93446b4782b0ec13", "500379dfaae04c19b0f2e097d625563b", "2dc043fd8833460d9e02f2ba3b40f19a", "a81fb9f324bc4cdc8b44cf0df74d0c3c", "cc819357010449dca2e6507276f962c9", "3fa0bdba15594419b99848384fa84a58", "59edf21a8881403d93ca8c55dee4f6dd", "228b779342a84ebe95b817b644c16d79", "43eb769d1107459b9101ba641aeca38f", "ed1dad2206dc4ca6990a4e58c231e23c", "128c5d27a0e846ba938d6a5af53cd803", "4955e3f019e149d6bebeeff194f964cf", "2af9ac3023e748bdbd5aa6b4698ae662", "29597ff036394620b51fc636d8ad0b56", "31fdb7120cda441185cc7bfed60cd2aa", "d4402bb6918a424cba86c71438a3466e", "faca43c396654137a14ed9becc5599a0", "73e26a480aa24f74933c24a124c3b83b", "cc7660e85e2c4800b1048d839de1e92c", "7ab5b590fa53460fba8c6d8b66fbab70", "3f2ac8185c584592addd84e3b67feca4", "5d944c189a5649b6baae35e71ff23183", "07ef73932221402f8c4e83a4cf51cad8", "c59ab23cd9cd4ab7970d70539dec0f8f", "88870b7bba454426bb920545bb5a1ffb", "32aa8035e82d4889bc4a8b871b9d65a5", "e39ad70de130490984f20db6180d0fdf", "ddd57678c24e41769744be4763c8f140", "1d34d0b15b3d4096b8454ee667e51f98", "e8c8d40c6f3048be870a7d240c5b7449", "c1133965b0eb4fa49035e44940740630", "1b805eba42d64f79a2e48920b55fb713", "4aac585071c74bda8be29ca30bae1aa6", "c5cbff33c5b24db7858931687a142004", "25020853a9e549f4afa21c138cdb4b00", "041e9d44c6d34b988c1dc3d1e3272277", "8f22a87f45cb417fb46048954f9d87bd", "5e627ec14de540eebf569697bb093a62", "dfbfa3be4353415f81cdbe000b45f6b2", "2f1aecf536914e558740546e80dfa7d1", "944da288868c4e5ead7a4369a606c8ad", "71432db6d75647f3bb40c49c865b9bfe", "5828ab2e112f4f2fa7d4771f8b7f3353", "15cfcd2294e14ade8b6af14256c23465", "511e0f8db5054970acca5c81eada2f8c", "6271a2c20fd14e8093110352816c0299", "0e3ff9c062c94777a5d8200398a60725", "58f70aa9d32043c7acd337f5bd8b309a", "a5a12dae64594146a7a80e64a0e6d324", "13042cfb933048439d238796ac194086", "bfcc6bc55062478ba433776d8134a7a3", "2da68d5ac08140519cefabc38d7bc352", "22b52429b958482f8d70e8a2994f05a8", "d4fe44203cc848aaa97daa2fd7912aef", "c202d7ecc3cd46dab9ae2ab1c0c28d09", "ba0e0f4b4fd144fa9720061e5ce7aba3", "1e30b88b20df4754aa5f411c32d15c02", "c5c42c43e70846f9bdb8bf77c2206dbc", "3f60a494ac444528842a0359322e1fc3", "63f27e14c6fc4f91b6865cd581651b36", "4d1d6486fae34bd3b72bf7228f18d754", "8455b72628064cd3828e5aefd0a37f0f", "df3c802e3b54444db904fe3d9c61a1d4", "ae80dba7d08f4d1286bfb2aacff03c1e", "ff578f81fd7e4e5f9bbed33e81e00d1b", "5fe89c3bfe1a4559b69b6ccd1156cea1", "352d181062ca42fb80bb34614e37e1fe", "63720d1be3734070a635516b4d2025b4", "ecbc9d923a174c32b4779cbd8168db32", "5e337a6da19f49ca8bbc98307e5293f5", "1c0e861c701f4e9e97bc28566ed71716", "bf430a51de514c859dcbb6bf62ebcd3b", "52e8c12a82e14f2e81a622f1c88abcdc", "271cc0a05cec44a0b8e45e96a8f2d04c", "152839fd9efc4dc4ba4e50a6a7b2fc4c", "5066e4a87f1c4be6b68bcf307d5f1b69", "6d5cf01c394d4d77831a9fd21772c373", "e02e329b0be34f1686bc7ae0b4ca0397", "c8df153e77fc42839924259cc8fdc5d4", "8566ca3433454c17b181042dcbd82600", "ee0ffbec2d9d4a51a5d73225888654d3", "ed58adfe4c744b97b1f4fa3c17e43ebd", "d38d96c7b32446be83fde279703a9bf7", "27fd0065daef4c339d5767d74a70af7b", "5ac37318cfb54018a92df3a04fec0fbc", "702cb59ac56246059a744b377dd5a9a4", "6eb2c3ef4afe416bb1d79a1681e42871", "3359f4dcbfb3455bb5fc8cde0a1e8f42", "b34d327f3add4748b15804131efbee33", "81aad001564a4030b3304226dc4dd2bb", "4513a1eba5a247cda34d52f0fa8404f2", "874081e200574a0db45c1a7415d6576a", "6836a6ccf5ea4db582455ade932e653e", "748d0cfb893a435bb5226dfcbe5ef909", "f1625459a4dc441f96fce1407e505732", "1147e49c607d4401953c199934134189", "b33e4c31b960408a88347f77acac5722", "b7abe87f19a147ff997a800a5dd56247", "8d67958e89134eedabd9d27647d86531", "f84e5377aae54b9789d7b210ac5027e8", "f5cfb5d279d3477eb17f32db2899ac28", "b0900cc7e2fc4b598119b622cfb9ab8a", "eafcec4820e24638808745ecbf85a69b", "73b2a21b83104308880a61ee9035e89a", "09c1196de0ce44169a239eb5b501471d", "eac61e4433524f2796d1f70bb991fe6b", "daaf3b2b158b4053ba34cb9e63c61bf8", "7bf2968ac94a45c7b0d93f7e16f3a901", "0d57b1cb4fe343fe8f190ed2042245b6", "d2823246118e41349312748d5488a538", "12e21888bfe8491db898763ad38cabff", "7a2ab84bdab74a22bf2fb11094f9c9e5", "6b21b84a7017439f90f240f22967ed7c", "a2bc4ddc72ae4246be64dd7521181c0f", "620afd6769e04545bfbfc4762b9bcddf", "ffa5ab3930a64fe18545e1d50330465b", "2297da1c6e474ac7b6f269473105ed7c", "1ab58d8d03b640229435df7d2ba16e87", "558c9c44a85c4558a79755c463792d5b", "d9b0547516704fd193bc42713da31c2b", "a74ae66b0c884eefbc22b5457d4c1522", "dacedc6a9da94a298150f83f0b7dfe7c", "6d3bad537f4f48afac084f59a46905e8", "2dbecf36f2da4e20bdba9f308e956639", "65d7927e42b8427c852067436d8cb77f", "2c94b0a82b314cc099866b0d2e932dfa", "4b0343c8726e4c9e8db739cb5645a717", "2a7eaf4f0e034ebb855db997ebe21f98", "80a65fbb83914b64aacadc4cc7c14044", "92ea5f33dc2449d8a2088c838f86feb8", "ab1bb04c924e408a89aaeacf08edbb16", "75cb66206a514ee7a40829397358da1e", "63ed0a58aefb430b8d9a0b05f3f08d10", "524da937b3814b9f90b8cd87d7fb2201", "545ae4dbad524ae483d096aeffe0e4be", "46b12d62241443a38be400b4ffe41f52", "195dbf27176d432c9d2c3fa7166bef1f", "22b89ccfd4324caca791c3832d5ce133", "4698a5b7bae044a19ee5947d97ffb14a", "e461decc68e54c7d994672f47fd90e7c", "f6638c1641ef48df866a352d935b4b3d", "35f362d3aa484609b6e6308044e41e4c", "f0bad5cbf7bc4c389bd0388245a170c8", "8831c996dd2145f8ae9a10f02db23f12", "89b83156fc1b45859cd103e2844c8e59", "be5a11cdb2de47a1946497e3544cb46b", "de8ad77ee0324d1f9ef3827c0fe1fa14", "89b9c2ad24ee4be88c72794490ef3d89", "68eb572a088e4455bb0a740a26e39b07", "7f41c46f7acf43cf9a358e9475f76a84", "b2aefd8dfd5e4c2b975810083f69d269", "5e27cb9901ed400abe57e326e4ee625a", "d7ce056391ab4b3dbe1d571b53801195", "fd92cd60abd04003883c719b390ec5a7", "1fab679007764829b52d6d92011a63f0", "b7c1cc09b0f64913a796c1215852f838", "d203c61aeefc4c8f8c30b69d5875ac7c", "7f0ecf455659450698ced4a4ec83da58", "6c7645c9228e42eea906777b375d115a", "5c08c53a194849f4a8c68ca6d2b8b4ca", "466b4fad857d435380426118d0e094f0", "e259d6acfbb84ab88822f0fce838fed8", "3cf4cddbd1be487da4a3fb1ef7b3765e", "7b2b67675e5044fea54b4173ee8434b9", "907295dc1837435086a6e1baf6673b87", "75dd85a9fac34e6180d388bc17f4f9eb", "30af32f34a164d4988d3229980518d52", "1936fbe665994ff0aeefbbe57cff3b76", "bedf7847d6ee45e4a4765bb39b1a3feb", "a1095f8a273441ef8527e032be923571", "e4d9e0e33f1b49eda50eb0a339088ec1", "4348764f33cb4f4b8ce128761c7826b7", "59caa106d3ee4131b616a849be7791d8", "307e3d7360d3423d8f4c068695793eff", "2aeb9cb4fe334132b194bde01144c975", "19d5a50989fa4b878cc17ac49a1b299a", "3f581f6f63f64688b6b3d709067589de", "c7206e0b36264d989628020a8ed1be33", "b63ed942ff0447c3bb7467b6eeccad36", "1f32c06575494e53ab3d5a589ef48952", "933fce2e2f414d0086bfc00895d0fc97", "ff7b421e4e34426a9869ab19bb9d3cf0", "a22c5bcd0d1144f5823fcbb78e118ae6", "b6dc472dfb6e43468cac62443289749e", "83740e163aa74789bc98070eea085b83", "6243b5983b3b45529460d7d7fb47c4ae", "b60396294c9243499bf196f271b9734a", "1574ff09e32244cc8d5a0def22ca1b51", "946b59134db04ecc8fdccdc843dd187d", "851a3f55482249f2a01152a062e47966", "c6123c22834047bfa4059fd3ab2e0d2b", "7a5172b1825f42c7960310808c2167ae", "6c1e5229bc2642b694475b9a2b8170cc", "dc7e74b2120a496b87704aca30a7de7a", "113a5a97ff2d42f193156dc66cb4a08b", "c33f5acb6a344141a1ea93429536dbe9", "94e567e57c7e4d84aa50c9e4fe93d028", "d143a08716ae4cb8a06348297acad9f9", "b882eb3847de455aabcbacf2dbf6e45c", "fab4a91473fd44fcb5b80888ced95452", "ec6a8a1daf594642a1f97cffd885c0e6", "f1380773b43244669052ca573619747a", "4171bc557fff4be4be9c1768088ab9db", "c779677aa7a346b3bf0a7bb0896c737c", "574f91db197243feaf95625320222a60", "4882d721eeb948009f7461f3930cad07", "a57f02a17bb74377836650ffad29a7ae", "ca74227f71b24f16932e2a2dbf61ee36", "bff1a778a6f640f9af7eeb56b75ff1c0", "950ee3fc802246fdb96603732621fff5", "fdea3086b7e943df964037cf0f560a21", "ccd4c0187dce495a840effd47b8473d1", "a326f4e538e441e294e0b7e00aa6db14", "8df04365759b44bf8f6bd24a2297bf08", "c32bada3f22e4d94a49eef3dc500b423", "9a29b5efc6144bbe835790afd52d3a6e", "1572acb5cf5140129f9c97f73c08f0b7", "83bcd85c8c6440d4980d016f693db7d3", "e0ff78898efe471f803e559be3de204c", "2ef907f2ed3542368daa73eb5c0cd2b5", "d807e3e807f44dac82b45b5b42f460f8", "b46667bedf80438087e86a0742a8a97a", "fc5b4e6b4eea458e914b266829d048fb", "8541a633ae054a699f782d70f9107068", "2850a25df97940d3a2756b19fc8e9d87", "dd98dc906e4545e690596ed62cb610a2", "00568547b06d49d88552ecf67877fee2", "59712bb4cd81404da61f496ec09cbacf", "ab7edcbee39d493c8582e60a97f40f32", "f8ada053a59f4308a052729811dd5b15", "3f65eb0874a54a6882979e7ef8101dcf", "402f6772015d4b0593f49d3dc1696292", "e71a985fc44f41db92581799a755d0d2", "f3f8b760684a4c17b89d6bed08bcae2c", "caa9fbf5f3c047f3ad82520a474d4a1e", "2804618a0a0944e0ba36fbfbc381d286", "19a8bbb592bb4e4a8c691ff19a2f2240", "af1a8cb571c743d087918f121c8eb482", "bee37dfc37ca459097487b6e382489f1", "94cbbad2b6144623b8ceb041611c1efd", "ca909d5afd0a4eb7b5d3215642167258", "146de0d27b85476b9893f36407ec04e2", "b32797e7675a4dd5ba31cf90fb8e4e3e", "68d5963cf752490f94d50f56ba271f10", "78ef3095afcc4a88b8076b7ff033cd1d", "d23325a7ffed44dc95a3739747dff2fa", "e506cfc276824b67b2e3ddafe344d7cc", "11cbf5880258494096c447cbaece815a", "af749061712148888a7ec3d9752b0c4f", "b010c161964b4a2a9bb0016e2427f701", "e0b0c6e16d424618807c22cc85c24d52", "a0043d6173af4309bdb4a0ef1771317b", "bbbb429d73b44afe8a3ad5f2f1c850f0", "1a3bde106720430fa229e5cbeba89148", "7b55a1e2f33343669fa760f1cd27f89b", "b744de5022dc432e81fff76d4209e0c9", "896ffb3369d94f51bd52eb7325f6c607", "3840eea37bc74d5e98f1f62fc8cf174f", "ff17562580854cf9a9a001c131a14362", "977091a164674c50991243979a8dd696", "6da0cd8381bb492a8bdacf5f5983c425", "17afb72012b84d0b9f64b1c52bcbc2f9", "e3a54130d34440388cd39e06ff926af8", "97e00fb21c4c49dda374ec13e9f819f0", "103c64f0329e48f0b1d1fcf975be56c3", "6238f5b51b174baaae63a1dd814de820", "38fc26d0015e43859d13d73cf7749b58", "6840e656e9064cc6ab4bb05fe9ccf155", "448e3d8371994083ada5c21b71fa7fb0", "e6dc54b1de76413590034e2cc6c64d41", "487b7c032cc94df9ba1cb64182ca007f", "90637cd93f5d477fa4dd6c7e9957dd44", "b57b1865f3b24b24a22876ff37def6b3", "de8178a7b1d04262a8bcec6f039d75ff", "51b5359c3c5a4b649d2ca4c3d60fe867", "987d28ee776e4345a9084d190f160e0c", "482347c23ac54419819646ffc43e673e", "d2be8e138bd74e2f894938424ce57442", "5a9c9807a7d74bd68205111fce62dd24", "d7d39cc0f49141509d2d1dcc021f5e87", "21e9ce001495499db25c1c7d42c051a5", "004c511dc1744ed2b5631c42184fda46", "6fbff7513886429f9b3f0b89c18a7da5", "0143e0f4f2354e0e93b72a0b08ac276a", "1542557549dd4e5a8eaa44f360f0c259", "1e467c7bb7f940e6bd81df7f37e52b27", "0816898afe9a45bbab59366d57444e70", "a938b5d529484631a65e67a4acb33ff7", "5d55052397be4230ab4b5b4a22a46a16", "27ea8c10ec044dd18eb9400d7ece153f", "6b32fe8137b341b38f32256927be347b", "d0440afccc6e4545bfd80d241b214141", "c00f16142b584027ac05f72d5b95c618", "cd479ec53a2040d69c322c77bd9dd5c7", "09f1361beecc4527bce7ab8edd85407b", "501589988bad46af9bcbd6e84e0271c4", "f7231022377c40d7be431d2c678b7689", "58f8c6cd69284beb96e1f3ea3c2a6692", "7fac22b0bba04f67aa28b0d9cf87015d", "a26d5b38046c43bfb24bb18049ed607b", "c6bb6c4229c34e4bbb019e83a0b499bb", "fa4680193dc8484399fc50a14a1a99e5", "ce6945bdce504193acea970e72c5edfe", "72e75d435cf5438d9382290fb87acd23", "72e4c17c5e9a4545be7cb151ef2c7b6f", "4a0e37f1a25b43e58b559f46739f19a2", "ee12b5fa60f042268dffaee7b30eb0af", "06b694f2ea8f4297835918c6bbcf1ee7", "0cc04790f56147dab51bac05500803a7", "3fe9d16c6dec4a6281c507787728fef2", "df1f8bbe6f904de78d80c86befac320d", "8813cb6494d043a4a4f33a272b5389ef", "da626fc92a724e4abe1139ea3cc49eed", "831fa507e0fc409da44599c67026a63f", "146181347bfb41bd9ffa77dbceb66964", "2c44747459ad45959c785f9511bcb5a2", "44696cff780b4e079708d696dcbeaea2", "dcc3cd31c9dd42739ac7dc8ee507d6d6", "b922634581a24d079027a54b7fb3593c", "da6b512fd801497ebef4d3903e43c396", "3ef8c55bcea64660b644aee90f036ed6", "759cabfb5168464c93bc9a2774528134", "ca2f5774172740ab94a10595486b8b27", "0d4d0cc066eb476ea43da9dceb80935d", "0e4fd658f1304c3bb1c985f2384dbe71", "de8f1b66639e45f2b68ffa9078d07b06", "5d4e88a689fd472dbd3b7be01cc78686", "5add17d3cf4e48e09f9a6b7838b468ff", "65900e4b20d949cd90a89f8c8c7bb465", "f5e242be20784135ab76f76d7d4c4465", "f3b3bf8a6a7e475abe30998a6687df59", "4232e162fede485ba15b704dfb211c87", "6ca495a03d1e4bf0a0537c0480fb76e5", "3f45c78fe0364676b66d177f33772b6a", "f03e75cea8994355bd766aa3ef3170b7", "d014f2e5fece498cb85bbe737effeb5a", "3f850b01e5cc4c9886957a6cdcf354d2", "89adb480c31844958b5de71615f387ef", "029c1ea729ad46209a822d3ab74594e4", "8a792ce0c64e4ad5a256c9e13121bd65", "c5610b7322c24ded8ae258fc53f4b1c7", "14b651f943bd480d9cd8efd446adde10", "7c0fb534e86d43f69089b6d2153a607a", "bf1a62ba9b434ef2930c2473b1edb411", "045bb96e5d1d4344b39b82a1209f3376", "3e43a6d31b1f425da88b13b404cc4919", "122aa55f041942d4abba6a186f43caba", "d495200392654344aad85f557b663c34", "e406faac574947a9ba94be68d09e2cfc", "4df2edf6b0c24f6983152a9c9a43ed9e", "9ccdaabc1c3d4c6fbb51c05080a8207e", "835dc1137340482c8e62ed17ce3e0446", "774f23d96ae0474eb53cedb6ca99eb58", "13a1a3cb7e8745008748628b48168b26", "018de0e2a6b44df2b99a20a041243aed", "bc090a00c6f24572ab000a1fc8a8a0ce", "42f67f4a99984edf8a474a7fc49ce639", "44196a67383f41edb19f681fecc3996e", "1045f1427cc641dfa648916ffa91496b", "a6c7c1f9957041439c948253ebc56ee0", "1a929e776e5943979ada2c755ec582d3", "5f8ffb22f99a4507b0b4ba4a8a571fef", "0737ac88cf26434e918bc34381d46d8a", "bc4f334a1cf44a48b536996ec26ad9ac", "0e239795a4c84c218224a8fcdb6075ef", "3100f9bf6b1846ed80547c0de8cf431f", "632998c07c5045328459297409c2adf5", "085863fee45a42ccaf9acdd6681a216a", "32c4507aac8e4607a1285217aa2b3b0d", "c7876b549c9e4091819ad6c84a76eae3", "46fed84d8a6d4870a97a6287ceacdee3", "c98d66cc3f6f49ce8ffd602ba02eab65", "a2ce0b6b80654effbf4680a1d553e20f", "2b4d9c67fa9242c3ae188ca96fb0b041", "6f60c226a3c34ba5ba162c37a6f66457", "7cc4c6d411764c3ab049072af45d4173", "4d6a0990784a4f6e9ec0b9ddc457745b", "d0f88da3431f4731953ee476095788a9", "685a612fc9d843b7a634aea3db9cd2ea", "562deb91b64a4590ab617d64e4327055", "6d83ac563905493fa14feee5cd5001f6", "238ae71117474e1f8a4b6734b134eb91", "b783fe8b5e2a4b83a1003fb1ae13f61c", "97ef97c9ef124fc09e3070ca40387124", "904557dae7be45f0a45d3f07242c557a", "813acc75f2694971830183550aac9e19", "1ebc378871d6414eb26766f8e6cd11fe", "da058f3cd13c4644bb4442a3dedcff14", "9b9151ace16746a6ba9b0399108606fc", "8d18df44091d455f8dc0d4b1db686f69", "b67eb2a19fa746f78046d32f1b260821", "a9c78cc76ecf4ebb9238b00c6fdfed0d", "d29ef3c6ac914b58ae82a92864bd776a", "d2c1fb6255d54a95babf303b2717da9f", "80578636f2c1446da4495dd83faba2f6", "e8045d815e8e4bcd8e9194f1bfb00c69", "8f1fcb3320114303bb8247910f91cac0", "94a1fe10040949c0a3d38b1d2714cf45", "eff362794c8c4967937ef0ac108a9863", "17b726813e5d4d4ebbcb1b39f6a35f90", "49f25d60b755492ea96382738e2ddc8d", "b1e68072b94c4bc08aff20108e5c848e", "cf94978464b84019b89b9c60bd4e5762", "5bc6594b605c4ad6937d50b7adb5a2a0", "ada194f4e1cd418584ff5e94cc031c7a", "11e3c8e00f024aaea453d411d001bbe5", "60787efe7351496f85e9603fa543b677", "dbacc643e45c41c5821b7f73dd054fb4", "f6f00e9dc10a4906b9ca5fd77bdf1d4e", "f5668eba43dd44ad8bb56f6177cd01c9", "d7a4c6ea37c845a1a18c8f7f5eacf76e", "9a207b4104004432adb81d256592ff0f", "cd35c13ba59b42c1af046d960ad70515", "ad2858ae2f304053b2aa0e86a7ec24bf", "d86a4aab47114dcebcf21cfe48b7e51f", "452eb6216a634ca2aaa01436125c1173", "5ea3179b4b114faa898efa9aa357ed69", "27d97db738704474a4aefba6072c828a", "fa981d986322441b876c473df4a90183", "e010f559788b403f9f0b798cca6b545f", "8bdb4bb8a73c48018862da0c8e39235f", "5083246c4cb14f80b75d16174e68089a", "03051528e7394771af10c45c2394aa08", "95cfce63e36443c1b60a39c7dbacd8ef", "07b7bc130364494f9a0cb4e7a8dbdf3f", "a14b0fb689be4b31afdb655cf843b2e2", "0994082a8eaf4b43b452f0a4199212c3", "fd2fc726b6a44e1c832927067e4d382b", "ac2938d155804088b69851618518fac6", "1441b14b5ede40edb9cf5909fc2a66ab", "33d6eed672584423a4fc17a6677d9729", "549e96218be4463faae4be374e9ecfa1", "16f05bdc886f4e519566364592dcfebe", "960961e8552d44859dabae3a30034fb4", "334ae3e5718f4ccf8dccb0e9c9e606d3", "15d1a8ec91404c5382b85ce470d82d3f", "add0d3db2e354b98a7d1de1f172c15b6", "559f971630e14049aeedaf4ba88669aa", "d75f92aa3e7448729c3499313c332e1d", "b0b5635e555f44e79bc621ff41945dd1", "143fd20fc44f49e2a9893c3e351d8f76", "2994bc94c5cb4dc0bef832e9b5e9f106", "91f2b2b994f940e1858e0d39978cb370", "e6405987c48f41eb8390bbaf01142d7f", "51b9e3388d5946879a907b400aa7edc2", "6460c916b8c14726a8376b23a2e72b76", "d459677367494e44b0ffe102722dd2dc", "2c5bec89706545ec8ffa2ce6e8827b96", "0aedc9e5d39b49219a1a14b69d70a1e6", "2a6a47decef54762b4f3183531ca0b5f", "37f6551b8ad14d139fc1e97262e8a5b9", "d62b9f7343e74d5f96b045771ae9ac1e", "ad0b66a7f7754f6193f57eedb9e9c4ec", "03c7686d791741919fc84142471ad8b8", "0645db948e084bbb853e1e7a74f68a2d", "3d537358f6d64be980f3aec263b2858c", "9903d3af014f459ea2b441af72dc6c1d", "d49858f389b9437d8271aab224716e92", "be14be761cf141d18e8d4954b199cfe9", "b1a364b648814deca8adeb6dc7e6eb90", "30281cb87a67491faa26482c41e10e5e", "85f8cecc9eb9498285bb10a7ad5ec0b1", "183ad4ad60d84a98983ac64c1e48d19f", "82142f6842c94bbfbb1b043f4fb0d602", "0a27db7548b84174995c49400588a272", "e22473d19bf1462ca17ce4d937a17c13", "c60a156a6f99411ea1d3b6b4a85f1e9a", "4df878d1ea3c4939aa2c763932725bb9", "1f51492294c44d9e99316a60d7dd059e", "6bdfec919940485d9266de0af24b3343", "c5f1db3617144359be2432c7935e9887", "b7e71f29a1294d35ad4b225e411daa2e", "a1404d0bf58c4aa9a9606047f4076d4e", "430d6deccaa649518615a0fb08cd6251", "7c4d314419c34e23ab86acd57365d17f", "959b7eede8104c1fae57b4a69d755126", "bbe90944ed2b45f39c18cbb7e61dd9bf", "c42eaae70b894a188707a87adb3fc44f", "1af8f4e82ea54db49b8fd1631494e250", "72ef4ef79a7348cea6ffca88b367cb10", "c60996af91b6441880d7c2ddb91bd31a", "6ad35f8afc3746df99b81d5e796fddce", "5241d8ea21bd457d9650d00985e93ba1", "e0b16a8a247747288bba5b07682adea3", "648bf9c345674ce1b507bf4db3b7299c", "9ac6141e2f07472b83fa375b4e081472", "bee1419b0d7e494a97ca17e433774003", "9c18e8911bcd4725b1cfa7a1e43174a0", "049faf00f5be46438db050ee3ded3541", "d1e45d5225dd4267bfafa6c351f3718f", "137f12bd266d4d589597923b206d0d8d", "e96073cbe50249da98a21f1a8884f881", "03a836f0a15b4199b0f00dbe0d8a0461", "e5eeac0fd0f8408fb0b4df7584fd3dbb", "b7950e914e8a45aa95791aa1429e6c40", "ab3940230cd3463ea7136b7ea41d45c3", "3040c24ecf614142810cff25502c4531", "dd4d922bc2104c3387be57b1265f2cc6", "815e58702c5846b4a073bc551c8e2e7f", "4d3a86b0df0b4d0d918374e47f06d35d", "2ac7c83d9b1a4ac0883c80ffcdc55873", "bd68f71fac4d4790b178a7937e6bc105", "ecde552b95cc480aa43f5d699e45af64", "11a00d0c49e24fc5a97e8b6072ab91e7", "1a45d3c294d7452b881db3678154301a", "0c917d3d27e44b708a49e4cc3470827b", "1ef1258abbfb4772a1bdf4a1ebb85ca9", "10a0f38fbb2d41c9ad68c29075ff050b", "50e33852209540e5bbe02ed5df9f3817", "4eb1d8e414e74e9ebc7f70698f6aa2ca", "22e509d588c14abf9296885192c274cd", "4bedbfc3f0864a4e8333592b1e35e785", "787cb5c39d7449a5b32aa3d6bfc97148", "9de7b77920994083b18542e0ebc3b788", "8d17e00a4e764a7bbdd9ce79c4390313", "004e89dd7c1d4e309d0e042b5a9585ae", "622cd23329d14ac98dcedfeffc2fbf54", "765999a5802c4b55b1123be06f4ff8a3", "0ba70213339c42d0b8709a125147e9d1", "0f577afcc6854653b148bbd45f638e1e", "ffa5e758b1ca498ea134f776e308d8a5", "faf570bf676d4abd8006b68a65071fca", "360276f41fa0464a91b2856a0ffeb5a7", "493e6c24cbc44ee58fad7c2f7a0ad937", "249d40798f0f456ebe5464586d960237", "d301b0effc2b46f494efd3c35cc94bfa", "7cd429d3a43246049e44ef64d87e1981", "f799b5495f374823b78437949a5769e3", "c7cd8ead96b049a7a485afc3c8c096ad", "e22e35d9b8c44aec9c85d3cc3c940f09", "3794d7f0acac475da5f7b7aa50f2a756", "14f07d7a37684dec85880bc983c0c269", "b6ab4e59d16246eeb58f286c6749cab9", "f9bdd34718e24dcd9147046d3fecb9d8", "4de16436e6c54152917295b4a4feb618", "73d950ecadc74729b3092883336e618d", "98d0c9f2f54b4af19b663699165107b7", "5d1c670460e4470389d69ef44223881e", "8f033528df934a3e953a1a7c56d5adc9", "5762a002221e4ff3bcdf5e51033fda11", "fc6fa64d8ff54b4a9b5caf0cb7c2c574", "2c4d70cf95124253ad04df03959af368", "97b9a70866b34347a5d3483fb05643e1", "f978f95c0fb64d9a8be92518b86d790c", "5a380341d82e45499ec5f5b322868c12", "124373e926a24d3f9bae1a0c1f33e4fc", "82a427ef83124c8fa156811ad0010a61", "8d7d10ef573347a28535a538741570d1", "dd60f735ade641c287495879eeb19d1b", "3b6b317c75424cdbadeff46a0c03e83e", "8f5888bce1e146878dd4ec3119d3acd1", "285bd982abc24fc1b14aa5caaed36532", "08266a55acd741859b2fceb02d877951", "e01cca8b1d0e47c9bc1517e8a1e1aba6", "5cffb7a49d3f46bcba9e525957b69842", "9e17a668c6544741aa22600eb6cd6ffc", "6380f1b29ac94a75b9c563913b9f38ef", "dcfcb64b8aac4463822ff45888f213ab", "9d9c11b45c584a11a890bbacbe25327a", "c138f1de59714c47a60b0f3af37cda3a", "0822deeb08ab41f7a060edc198f11165", "4606e737c29f41e496e6ab9e2952990f", "6e8f406dc5a1403fbf9e8fcb2b83ccd0", "6db7bad6e3c243c1909cfa3ed591e8e5", "999cd5ea210a46d3a4080056464a02f5", "5eea9df0f224452d95a1c01a891510aa", "477631990072480c802c5ef2f24e0e39", "e02a88a63e9d457ba3ed16f134fd9cdb", "19d272d9bee041efaa0f6761f3101879", "8f958383e78947b8bae3acaec4e551bb", "52cb8e4ae77f461393d546337bd0ea6c", "a81172d706c647cfb467d4df08b0a04d", "495857f3590941e686b0efd53900d3ab", "37acc75a0f554af68d5982cbe5705afd", "9b1832e5dd804a9aa8020b3fcdf8a11e", "07e0cb90810c4f7a83bd0b4c6b928047", "7e0fc1d2a0fb4e288cb770a1975ac070", "bff640084fe14ccca9a8c67e3559766c", "bd5653543cf04e7b9663eedcfb8d9424", "f518d241ddd04e0b9f81e32086547018", "b285d719130149798ddd8e5f7e2f0a34", "c38ff8a0050c44469d652c737990142b", "66b5bab13b4d4c288928a51df0b8a580", "3c136d9c6ee9486894c3ba08c7f2b179", "b6bbe57b4f2f43f9ad1e0921e4f2bfb9", "353d3c45b14a4249bd132567d533e1ac", "47fc881e157a4126b3d2c9146ac22c75", "cf4f2f174c4947d1bcb41c92f936a5e4", "31365a77ca2c4abf8a2cc8e49af3fa8d", "8a1c9dbe5bab4d489232a31507e527de", "3a8f570a7a4b4f4998d21b8464799c17", "8c3fea8345ca4bb7b0a5e344d1c5849b", "be6ae6a3ae96478b91bf77333825485e", "36710c7cad594551b11212c189a2199e", "1f50ae0d59d84b79941894fd0cd3ed6e", "c02b477ce8504fdaa09b1ad832b40bee", "1ca16d1d33c84447853112b7d31a90ed", "cbe3a0fcec3747bba8d801cce88005cc", "2ee5ecb63b25474bad0a95d03042521b", "e67f15ab27994f69827f6999c654f1f8", "25b28b3babff479ebdfe2f95b664103e", "f4153c192db84629924ace58acb4b891", "f6eaa65046164e338e372cf2d6180485", "3cfe4487acb64ca5852108f87ec63ca8", "43ca0cfdce254ecca05cc5fef6d1a4f5", "33b7b76d07cc4df8a678c94397b7481a", "fb4afd6e0bb74fe0898f959481d9c50a", "6f4385f264f742b2a1a94b3043632e22", "db5df4ca7069437fa62f5c0c2773d193", "f3bc44e06c604e35b7841a46f3790c63", "9a083d3af34040f187b417457e9d8b41", "9bd3136be51a4e59b5e7674e5b284c72", "df03e7e96ccb480f844e80e515559330", "4460355a5e314f78a9b696979cb9ae8f", "9bdcee049e224de2a03df27cb381100d", "8730a31f970242b7800028d5d7de823e", "bc9e349fe918437293ba725622ec625f", "eef0a6f0c343484b8c479c3a5cb6a6b7", "145b38fdec9140d8a658dea08c05870f", "57e6ce01687f4a218b7c54cab4fcb6df", "15bf4e8d5ca64c6c8d91c48d061ac1f4", "cdf3238135994690bfcf6d6b307114e3", "a499afa3273e499ca5cb1a09e187a4d6", "2a07d97c0ea4438aa18087c1a31a7b8c", "64d13dfb3c184c7f8e81b8544aee7216", "ca76f963a7f34ad9a203dd41933a9d0d", "a64dc8137ae0400e8d3056cac8fd3fbd", "7c44ea46b80d4783a02678b47c1331dc", "c2f9de46035f44bba883a1929aab54e3", "e8d8fc8c7de04fc397f6db4717601d8e", "c4f45753e61546638ce9c60e6b5ee276", "77c10040d1ed494e9e40c81863773d8c", "8c68b1784c814a4ebc90ee8cf2449fce", "f4267f3578064b9f96cc57f475b24078", "325df3a4954e4f07a8fac6d5f843b2c7", "576b6a2fe2b644bba118f882ff52e24d", "9d33c1796b794189826ac50629d721c6", "4555a915622e4943890b8a5a64a0f6fd", "8d74811412264c05b630ac8d891f39d6", "eab90fecdcae468399ce0b0dd9f5710c", "9df83db8d76946fdbe3b805c8d6098a7", "3f83736b4a9e45cdb0c4c89888daa54a", "cab878995bcc46fcb51661676139d31e", "f73d0e1beeab493384ebdadb5d9bdae4", "673c46d3aa0b46ba9b0acf9f44c8fa85", "c288a3f513af44869d37fefd47e87551", "07b5f2d3236049beb0dcd6feca4d57f4", "59a6eb5220e647068864914b667092f2", "415793ff9541484e94198bb1cf1b3e4f", "27bf6590a38d4e34b860723d2c2da161", "017d803656974dba87a97f1dab903aa0", "d7750f4832ad4912926f0d792fb11f8a", "216c5cf4ceef469ca91cfd120e8ddca1", "f50bd97c7111480699aca2cde30cebef", "f2c3a1117ea54a37842a2a7605b2975d", "908b829b34c14a0697b89387838864e7", "3582e67c82d74895a65e816109102cd2", "114e8ae4427b45b9a7d9adaf78fd7efd", "da6b62c8d4044bbf985b12975fd8e749", "24e6b88c604c41d28a7553d80bfb6548", "3982a6ea6a784938a76803b33937624b", "5c481d43673e42dba7db769117ad85ef", "ea8a5ab2ac614c96a7d4d112e3d31b0d", "ba8311b64dcc4f5b881537d4a758b818", "714623957da64b49936ebf064ce45492", "abbd4bd4f8e54036b585cfdfb746836c", "8c6715022ae44b0790bc4ebad4d1acd9", "73c359b78dea496687cfe39baceef964", "3c60c983abda4cb4a173794313932003", "e2e66438d96648d4bd426d0eb744d71a", "5ea86ecab9d641fd8cb35c39dd3e5e6f", "f1b16d4ba69047d484b1a3a031fcf42a", "8d4a1c0f4cc147978ff62daf7507c5bc", "c6f05c26f9ee4c5bbb241f11cbbddbe5", "2be33c04b6634878a8814e6d9ec744b3", "1077240126bf460abdcde3d18602dc43", "2d411c8dbaed4c42a03253196da418fb", "2327ee8c425240a6a38b261a13c71a9f", "d9e7298c25814fdfb3592787fb03d91f", "9924594b4a124578bcfb3e80faa8cc22", "e1386758b71c414eaf466956d7ed6501", "0b7bc3f36a014efd98c3bc770aed4978", "502f06c1c40b4e1aa4268f1e6b865763", "571ca457d782405aa6006b1bdac50419", "6e6a092b78c94aff9bb51e05904437cf", "89d420132b834d16978f08f65d03a711", "de0e7964ce5943939ffa944bda00f9b9", "95aa0a41e27744309a38677222eb689a", "00e5590fae814cf782bc800e5066268a", "8d7499a291b642a1b93eed3090029236", "989bca4fb44847589deced23f4b90ad5", "f2b1aecf774047c78fe7fb92ca2fa3ed", "2bb639469c1a419ca3246e4d2c19637d", "172a244f1df04c0ba9bae5a474778b6b", "c2090ff8b58b4ba289eb4e826710cc1d", "8771955270f44815a5c7ec6a639f109a", "44f1556c94e7498e9523fd54315b527d", "158339595c6e47dca6e25ff4c0682f5b", "c0f6e750aa9a4172a21d6d24b434fad0", "fcb7a6f5bb794d1e86ee659a4dcff87d", "9a84dcf071a04410bd74eef22331c88f", "648334682f9348418b38614116475ee8", "97e9ad5fb4574320a40dd03051b82bed", "bb46094a8cf14cd0ba01b6aee4feb29e", "4eaa6cb8f63142f6b475b79080f79787", "37da5890549e4943ade28d603a761583", "3c9bc2870cd8477598e2a5276d42bf5d", "4ec87f10d1954340a642a80609886814", "825208685698482ca86d9fa7a817ab6f", "9a731e171d2d483b970b275227345403", "40e1365481ba4dae889d2c6fd18ebb17", "b78ab6c007f54050958a4e71e08ac538", "48b115a76a6141ffb0f994977ec91e5e", "33f64d007a6642058975f337ac26c56c", "844d3ab766a64d9f92f322ea5983378a", "6373955e376544c9964eb98d303e68b9", "1c30b11e1dbf45f2bb7817db64cd818c", "b04612d12377454a9ef892fd150cd338", "648c6cafe45c4c41ad0f9f36a2d98155", "d2c047b0979f43fd99070701e1172b54", "6483517969b546c4a463d9165d0a7724", "275bdc5bc2ce40c8b8913de41fbb0603", "9bf42b115b204460aefcdf9e450850cd", "b66813c1bded492ea2fb0874dd9752f5", "9bffbe58496c4b5b890d4c30487373d8", "79471202359a4b69a15598cc4261b45f", "aefe7bb6ac0540dca6d095b194cd2e29", "fff5c6df934d4895ab2058232913f60d", "a29425fe255343d8b64c37e03cdf6a18", "d4367cb7f1ec4acea8785f28cb6e81ef", "68cc2fe643bf48fb9edbd03f05c18cca", "74387ebae1954d25bdfe196d2e06fde8", "0145add3ae9b41a3abe4956956f82340", "79c9bbf15e414b659ee75da3cb1438bd", "f159d2a0040d4c5d80afbe3a7f7777c6", "1d55ffbaed8a4c2fb139973248621c18", "0352eb40837a4795b7ebaf760f08ed43", "f9a76340f6ec44f1bf2fc31346736fdd", "adf4d41986ac408ab49ba13542ce119e", "b1a8bd68c95b4e88b52c55968e582450", "98e6523bcbae4845b72ed90ef39b17aa", "cbad4a0759284f26a2a91ea00e4560bc", "257e4b5b6f274ed49ac6dc38d6002113", "385d914da1484056ab7f4e0ff875ec43", "300e73fab8104da48967c446db2a1d96", "b77ad3036ee846378a082fb78f45ffd5", "f843ae587c1c435f9bb4092a4190b70c", "3a06372313964d36aa650fb917ca8a65", "85618d6be463448b8eebeb415f2d7e3d", "83bf6c09a7da42159b15accb9d425a90", "095e39bf5efd4e1896e9dc1b4cb5fd4e", "d6878640ca834179bc5516c6abcc2f5a", "d7e35e9a6b554f35818b1dcf2698df78", "8789431d6b7a49abae6569c976730e3d", "8d33fcfe48e84dd4835e7dfaccbfd29a", "55b2945a5f504330b44f1fda9fdfab19", "8c1b6376c2df47df9d8fb8eb02e7c7db", "af56f3106d88461d916c3d9373ef491b", "acafa86100754dcc8b1319346932cc6e", "98647963756646508246628c9e3b7ca4", "a5a409401a984ecda0889de7a761a723", "da936c72568b4407b06e6665f0fc8899", "4c89274d0d3d4653b57022fa582bc94a", "acb9a44386eb48b798ed36bf460c892b", "7b0504074314496abf8d6d7e757f45bb", "933225eb46c847d797cddec2f7073ed6", "dc50a3dbf0bd402da66a3417e2d59eb7", "4f1050336d61471dae3c3255da850b14", "ec447f4f8b10494282f6eb3ed7c76d8d", "d025855416214f67b22a89c60ef588a0", "7fcc6821ca77425ead5b734b539a0d9e", "57a01b5229c34a769de0b09be574b3ba", "04003fda909649f8bf198753046083e5", "163d71e8b30c4821934d00813d5701f6", "7d8efbc842f34845a41a63d4e5fad4bb", "894ae40bb5b24de5ad184f34bd332616", "f619df9de72e4f16a9febb5dd372ba8b", "2b908050281747228ee6b907cb110aba", "94330212959f46e8ab2a40d0a511f0be", "7963dd6a8f664df6918b1f11286f282c", "cd76189d47ac45a3b44cc47b0a2f4f34", "b66fc140354d49f3890a6adcc838bdc5", "d9ff1a9d59aa4fc5a66bab9204090801", "8b65cffab1554d6d95b739755c7edf39", "f8eea9d8d79847d39cf7fc84469b9cad", "80df4d474be44b2fbee67057b2387b35", "edaf8ff8249143efaf6eb972c31f04bb", "7c2125f1df924971a9fa60b04d9a85f2", "d222f74366604061850428dd7f1dcd9f", "1f21921113ed4dccad9be10677a9074d", "84263503b40d4827be2818fe7e08b741", "7d3c638cb84f4d7cbaea25b25d4c21cf", "186ff63688ac412b8e858c596f52d97b", "88a9715a3b2d492faf92c785dc59c52d", "7bfe701a73684e50aac4ef08d1b2a934", "0360cb66224e4e808c2a3a5518b7e5ab", "655e6c0f1b0042459fe515a4248fbaee", "a860ebf4ea704a1b92dd262a2660b1c9", "8f2730ada5ae4b878901bd9cfbe1ce97", "c08c2b19553846b5b359382271b4b274", "68d4946058514447800b349984bbf8f3", "d9eed4e4ee8e4764b3fe5a377ade0137", "a2c90ea191764b09b42362fa54bb950f", "dade0724511a474ba02cf6d81c7fd203", "7057efa79c8f42309e20417607449299", "70d26e88ecd64929b3d243e4a3f498fc", "c339ce533d59402d8a7fbfb0b9332315", "03db76add34e4d989f78691f6c334f21", "0c2ec62abc4a40459dc6c2b1701a0b53", "2076047126204c30aab89f6b2c67f296", "0a43c717f377401995b4df349eb0de1c", "8b38b36c13b44236a471151d59172244", "00c76ba3cfca4457a233484bd9dc5907", "42a265d9309c4e6db65a4c81b8dbed3f", "bff51a634c774eeda299fd9bcd270e05", "5aff648f956c4857add79bcb72a4ea69", "097162ab1282401aa1462067862ccefb", "924fb25dbe8b4dd7b57ce183150b3917", "bd0ab149db9543d7ba808a457c0ba92f", "7cdb8e8fa4f94f64bb883386bc4b2e99", "10485688fd8447b6ab87e567a6434f28", "df23559bc116426f96a3740b2ccc3415", "fcb49225d5b944d4b905c276bc4ee117", "57374ddcb73b4cbabbea5c6e176ea0de", "2a914c807f6048d3963eb702998be10e", "37baf0137f83476091ab13832b309e5a", "4cead4f4cdaa4b56b1c2030f420ef9df", "68e23208f512416ab31c972bc7e16f9a", "da7576b435c94e83972e20a9f9b808a8", "168c137a53964fb8be1a3f5bbb6fba63", "fdb7a158b7ad45c1b3a6e8c665428f50", "2e3e4b5a73a64d389e455e3285e73edc", "2f7dc38586304c7f8a9b21a598165fe1", "542feab8660d46188df25a5efd6b2ed1", "629cdf175ff24bbb85961ef282ebdfdc", "83049eb912e34a70a72181fd544f8e7e", "5a276396d52b4142862cd5e5f0b07afc", "4215bec6e554482787501d23a69fba11", "ea743f832cd1464fbe27410c5c590a18", "389a2ee20e4e46cebd0a20dcd43c12d3", "69f13118c32f44828a16ccfe6278e4c4", "7819946391634e8298c706a7a886bd77", "9f6e145066c64a15bdb5b0c83fc8a7b1", "12ba57646e4149839383293c5b44ec35", "06100169ac2347f58c6f1bd4b522ee17", "fc0c72c1fbf44958b84bd9f73c91f4fc", "adabfad2320e4e66906e102cd0e82f55", "0f727b3f01b340849289eca645a18eb0", "705b76354f22417ea94b3b2f9008700f", "f31c28d679d24a2b8ab6f29888a23a1d", "f87ca390c5664e9babe2d8d423d1d976", "db4d7fbc66d040cabbda7f41f9dd6037", "82cba956b8e946868b2d1ba050ecedc8", "3b6dc58636144603a5d4ae1751e3d536", "4d2c15d589024b32a808621e3ffbf1ad", "7464a66021ce43f4a922a7951db55a60", "b74455b0d8c041459c78efeda10cbf8b", "a262fc2eda384e3899c29181f4057188", "cf9a6203b6dd4f1e90b4e22891db2f63", "2c5add77db734b85a754f66b9065f136", "01727c975d4a44eea49356047e3f8537", "937b3231461c416db0b1b12a2fa20014", "a1a99805d774437e98b625111a75bd19", "fafca1bd88c74fc0997b904d9c4fa0c7", "9ead986be8c8470b8fc3a981aeecb265", "b88b6aa6752c4e1c9b86f70915eed4d9", "ebe52664752f453dab6a349d6e2e7246", "441b08259ad1419ba660c1f201fce879", "aab36d4b04664678b2031e4f1d431fe2", "25f5606277ef472993bdc54da61ea987", "d32ebb4cd7d84b66a821229a10b9647f", "6d3af45a483d447fb4081a4a6086f4d8", "d8054cea34db43b58301cad684e152b4", "669004bd99f048ce970c14f351d407e5", "09f52fc4841b4379a6531b8cb18bfd69", "e2680638efea408ebd0cb05ccb9a897e", "d6b9b4ecdd5c4a309f5753e47d7378ae", "8fd2983fdca444df9a844aad70a7263e", "c16374f602ee4aa79b743c16c77b1150", "c8c5e82e21524688a19845e8277c4469", "310d425044aa4be9a9798439589f1434", "1d7ff09d16ad412e8f67cf8d5da0f57b", "c62f243c183c40ff95d0ec80d94e1255", "2604a8c2ec05441491074c46b5901808", "30bfdbda20db47efb1532906b2ce9d2c", "b9ec8b39c2464d979eff9fdac9a42d52", "20cde40c592d43dc99131bdabc7938a7", "9c4e581720e94118b21736d4706bca22", "46b27fabe9954b878f2edde6f27125ea", "4065694659ac46d494a9babe43b8c182", "267b7f78f6084f8884497d426cc56bc7", "ced4c53eb1f44ce2b2153d5ce24fbdca", "3a5f8389175f4ede9f8f9e1b55a9428f", "bd4d0a1c53bc4afc98e084f3ce3467c6", "500acc2e48da48b191078c05327be8df", "48087918afb040a1926e9b79dab73995", "2983f12b2c16429c8ae23f14ded8925a", "521f521fcd554509a2e2771c1be1aee5", "33679a00cb4e4686992fcb829bd5a027", "e1b0cf7985cd434faea45008a6a2e40b", "81e82a1e7988413aac8f24f31ce60e05", "5f8089632848446a85bd465039797380", "b8b2d1cb9f3943bea980a3c2ec4fd389" ] }, "executionInfo": { "elapsed": 19860, "status": "ok", "timestamp": 1740036021118, "user": { "displayName": "Kunihiko Fujiwara", "userId": "03970325715211983816" }, "user_tz": -480 }, "id": "P52ABitO2pzP", "outputId": "6f5685b9-9c47-461b-9f5f-b2accecab30b" }, "outputs": [], "source": [ "#@title 6.3.1. Map for drawing a polygon to specify landmark buildings - draw a polygon that includes all desired landmark building footprints\n", "from voxcity.geoprocessor.draw import display_buildings_and_draw_polygon\n", "\n", "# Create interactive map with buildings and get drawn polygon\n", "m_landmark, landmark_polygon = display_buildings_and_draw_polygon(building_gdf)\n", "m_landmark" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 689 }, "executionInfo": { "elapsed": 50336, "status": "ok", "timestamp": 1740036118780, "user": { "displayName": "Kunihiko Fujiwara", "userId": "03970325715211983816" }, "user_tz": -480 }, "id": "jPBvaOSBDkyJ", "outputId": "1b6832ac-1d11-4e7e-9b79-a5b52df03065" }, "outputs": [], "source": [ "#@title 6.3.2. Simulate landmark visibility\n", "from voxcity.simulator.view import get_landmark_visibility_map # Import function to analyze landmark visibility from different viewpoints\n", "\n", "landmark_kwargs = {\n", " \"view_point_height\": 1.5, # To set height of view point in meters. Default: 1.5 m.\n", " \"landmark_polygon\": landmark_polygon,\n", " \"colormap\": 'cool', # Choose a colormap. Default: 'viridis'.\n", " \"obj_export\": True, # Set \"True\" if you export the result in an OBJ file.\n", " \"output_directory\": 'output/obj', # To set directory path for output files. Default: False.\n", " \"output_file_name\": 'landmark_visibility', # To set file name excluding extension. Default: 'view_index.\n", " \"alpha\": 1.0, # Set transparency (0.0 to 1.0)\n", " \"vmin\": 0.0, # Minimum value for colormap normalization\n", " \"vmax\": 1.0 # Maximum value for colormap normalization\n", "}\n", "\n", "landmark_vis_map, voxcity_grid_landmark = get_landmark_visibility_map( # Calculate visibility map for landmarks\n", " city, # VoxCity object representing the 3D urban environment\n", " building_gdf=building_gdf, # GeoJSON containing building footprint data\n", " **landmark_kwargs # Pass all configuration parameters defined above\n", ")\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 987 }, "executionInfo": { "elapsed": 14484, "status": "ok", "timestamp": 1739368163596, "user": { "displayName": "Kunihiko Fujiwara", "userId": "03970325715211983816" }, "user_tz": -480 }, "id": "L0WTdSAXd5ay", "outputId": "60a6c5de-0e9a-4605-ae42-62d1ab0af470" }, "outputs": [], "source": [ "#@title Data aggregation by road networks\n", "from voxcity.geoprocessor.network import get_network_values\n", "\n", "network_kwargs = {\n", " \"network_type\": \"walk\",\n", " \"colormap\": \"magma\",\n", " \"vis_graph\": True,\n", " \"vmin\": 0.0,\n", " # \"vmax\": 65000,\n", " \"edge_width\": 2,\n", " \"alpha\": 0.8,\n", " \"zoom\": 16\n", "}\n", "\n", "G, solar_edge_gdf = get_network_values(\n", " cum_solar_grid,\n", " rectangle_vertices,\n", " meshsize,\n", " value_name='Cumulative Global Solar Irradiance (W/m²·hour), yearly, 7:00-9:00',\n", " **network_kwargs\n", ")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "executionInfo": { "elapsed": 85426, "status": "ok", "timestamp": 1740118755585, "user": { "displayName": "Kunihiko Fujiwara", "userId": "03970325715211983816" }, "user_tz": -480 }, "id": "azClW-_dW84g", "outputId": "d523146f-77f3-48cd-ce3a-faea26960fd4" }, "outputs": [], "source": [ "#@title Visualize a simulation result on a 3D city model\n", "from voxcity.visualizer import visualize_voxcity\n", "\n", "vis_3d_kwargs = {\n", " \"ground_sim_grid\": cum_solar_grid,\n", " \"ground_dem_grid\": dem_grid,\n", " \"ground_colormap\": 'magma',\n", " \"ground_view_point_height\": 1.5,\n", " \"ground_vmin\": 0.0,\n", " # \"ground_vmax\": 1500000,\n", " \"projection_type\": \"orthographic\",\n", " \"distance_factor\": 1.5\n", "}\n", "\n", "visualize_voxcity(\n", " city,\n", " mode=\"static\",\n", " output_directory='output/3d_vis',\n", " **vis_3d_kwargs\n", ")\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000, "output_embedded_package_id": "19bZGAa40MRhyH6WWapRnHbvOJIf_A3h8" }, "executionInfo": { "elapsed": 77426, "status": "ok", "timestamp": 1740036296251, "user": { "displayName": "Kunihiko Fujiwara", "userId": "03970325715211983816" }, "user_tz": -480 }, "id": "of0vUFzRh70v", "outputId": "932912df-179b-4548-8827-c139bdec919c" }, "outputs": [], "source": [ "from voxcity.visualizer import visualize_voxcity\n", "\n", "vis_3d_kwargs = {\n", " \"ground_sim_grid\": landmark_vis_map,\n", " \"ground_dem_grid\": dem_grid,\n", " \"ground_colormap\": 'cool',\n", " \"ground_view_point_height\": 1.5,\n", " \"ground_vmin\": 0.0,\n", " \"ground_vmax\": 1.0,\n", " \"projection_type\": \"perspective\",\n", " \"distance_factor\": 0.5\n", "}\n", "\n", "visualize_voxcity(\n", " city,\n", " mode=\"static\",\n", " output_directory='output/3d_vis',\n", " **vis_3d_kwargs\n", ")\n" ] } ], "metadata": { "colab": { "provenance": [] }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.8" } }, "nbformat": 4, "nbformat_minor": 0 }