diff --git a/book/tutorials/decision_trees/01.script/00.tutorial_post_processing_xgboost_all.ipynb b/book/tutorials/decision_trees/01.script/00.tutorial_post_processing_xgboost_all.ipynb new file mode 100644 index 0000000..90d6809 --- /dev/null +++ b/book/tutorials/decision_trees/01.script/00.tutorial_post_processing_xgboost_all.ipynb @@ -0,0 +1,1310 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "tags": [] + }, + "source": [ + "# Machine Learning for Post-Processing NWM Data \n", + "**Authors: Savalan Naser Neisary (PhD Student, CIROH & The University of Alabama)**\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [] + }, + "source": [ + "### 1. Introduction \n", + "#### 1.1. Overview of the Workshop’s Goals and Structure.\n", + "\n", + "This is going to be 60 minutes workshop in which we will:\n", + "- Understand the basics of machine learning and decision-tree algorithms.\n", + "- Learn how to apply and train an XGBoost model for hydrological modeling.\n", + "- Learn how to implement feature selection using the XGBoost algorithm.\n", + "\n", + "We will first review the theoretical background behind decision trees and the pros and cons of the most powerful decision-tree algorithms. Then, we will start the hands-on part of the workshop on setting up our environments and getting codes and data from GitHub repositories. Next, we plan to get the data preprocessed and start model development using the XGBoost algorithm. After that, we will discuss the feature selection and hyperparameter tuning (i.e., manually and automatically). Finally, we will evaluate the performance of XGBoost in different stations. \n", + "#### 1.2. Post-processing Hydrological Predictions\n", + "\n", + "Effective and sustainable management of water resources is crucial to provide adequate water supply for human societies, regardless of their geographical location. Having an accurate and precise prediction of future hydrological variables, including streamflow is a critical component for an effective water systems management, and various studies presented different methods, such as post-processing to increase the accuracy of the hydrological predictions. Post-processing methods seek to quantify the uncertainties of hydrological model outcomes and correct their biases by using a statistical model to transform model outputs based the relationship(s) between observations and model. According to the literature Machine Learning (ML) models proved to be useful in post-processing the results of other ML or physical-based hydrological models. Therefore, in this workshop we will use decision-tree algorithms, an ensemble subgroup of ML models, to post-process streamflow outputs of a physical-baed model. \n", + "#### 1.3. Post-processing Retrospective National Water Model (NWM) Streamflow Data\n", + "\n", + "NOAA introduced the NWM to address the need for an operational large-scale hydrological forecasting model to provide streamflow predictions in CONUS. While it has the capability of predicting streamflow in 2.7 billion water reaches, according to the literature, NWM has a low accuracy in regions west of the 95th meridian with drought and low-flow problem and in controlled basins with extensive water infrastructure. This low performance in western US watersheds is due to the lack of water operation consideration and a comprehensive groundwater and snow model beside calibrating NWM mostly with watersheds in eastern US. To compensate for NWM shortcomings in this workshop we will demonstrate how we can use decision-trees to increase its accuracy by post-processing the NWM outputs and adding the human activity impact to it. \n", + "\n", + "###### Recommended Resources:\n", + "- Hands-on Machine Learning with Scikit-Learn, Keras & TensorFlow.\n", + "- C4.5: Programs for Machine Learning.\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2. Theoretical Background \n", + "\n", + "#### 2.1. Decision-Trees Algorithm\n", + "\n", + "A decision tree is a non-parametric supervised learning algorithm, which is utilized for both classification and regression tasks. It has a hierarchical, tree structure, which consists of a root node, branches, internal nodes and leaf nodes.Decision trees are recursively constructed multidimensional histograms. Decision tree learning employs a divide and conquer strategy by conducting a greedy search to identify the optimal split points within a tree. This process of splitting is then repeated in a top-down, recursive manner until all, or the majority of records have been classified under specific class labels. Hunt’s algorithm, which was developed in the 1960s to model human learning in Psychology, forms the foundation of many popular decision tree algorithms, such as ID3, C4.5, and CART. \n", + "\n", + "PIC\n", + "\n", + "\n", + "Advantages\n", + "\n", + "- Easy to interpret: The Boolean logic and visual representations of decision trees make them easier to understand and consume. The hierarchical nature of a decision tree also makes it easy to see which attributes are most important, which isn’t always clear with other algorithms, like neural networks.\n", + "- Little to no data preparation required: Decision trees have a number of characteristics, which make it more flexible than other classifiers. It can handle various data types—i.e. discrete or continuous values, and continuous values can be converted into categorical values through the use of thresholds. Additionally, it can also handle values with missing values, which can be problematic for other classifiers, like Naïve Bayes. \n", + "- More flexible: Decision trees can be leveraged for both classification and regression tasks, making it more flexible than some other algorithms. It’s also insensitive to underlying relationships between attributes; this means that if two variables are highly correlated, the algorithm will only choose one of the features to split on. \n", + "\n", + "Disadvantages\n", + "\n", + "- Prone to overfitting: Complex decision trees tend to overfit and do not generalize well to new data. This scenario can be avoided through the processes of pre-pruning or post-pruning. Pre-pruning halts tree growth when there is insufficient data while post-pruning removes subtrees with inadequate data after tree construction. \n", + "- High variance estimators: Small variations within data can produce a very different decision tree. Bagging, or the averaging of estimates, can be a method of reducing variance of decision trees. However, this approach is limited as it can lead to highly correlated predictors. \n", + "- More costly: Given that decision trees take a greedy search approach during construction, they can be more expensive to train compared to other algorithms. \n", + "\n", + "#### 2.2. Random Forest (RF) Algorithm\n", + "\n", + "RF is a widely used machine learning algorithm developed by Leo Breiman and Adele Cutler. RF is based on decision-trees, but it is based on the *Wisdom of the Crowd*, which means it aggregate the results of a group of DTs. Using the results of more than one models is called *ensemble*, so we can say that RF is an ensemble algorithm since it aggregates the results of several number of DTs. Using an ensemble of decision trees can largely reduce the overfitting and prediction variance, providing more accurate results. RF is an extension of the bagging approach, which generates a random subset of both samples and features for each model training. While a DT is based on all features to make decisions, the RF algorithm only uses a subset of features, which can reduce the influence of highly correlated features in model prediction.\n", + "\n", + "Advantages\n", + "\n", + "- Reduced risk of overfitting: Decision trees run the risk of overfitting as they tend to tightly fit all the samples within training data. However, when there’s a robust number of decision trees in a random forest, the classifier won’t overfit the model since the averaging of uncorrelated trees lowers the overall variance and prediction error.\n", + "- Provides flexibility: Since random forest can handle both regression and classification tasks with a high degree of accuracy, it is a popular method among data scientists. Feature bagging also makes the random forest classifier an effective tool for estimating missing values as it maintains accuracy when a portion of the data is missing.\n", + "- Easy to determine feature importance: Random forest makes it easy to evaluate variable importance, or contribution, to the model. There are a few ways to evaluate feature importance. Gini importance and mean decrease in impurity (MDI) are usually used to measure how much the model’s accuracy decreases when a given variable is excluded. However, permutation importance, also known as mean decrease accuracy (MDA), is another importance measure. MDA identifies the average decrease in accuracy by randomly permutating the feature values in oob samples.\n", + "\n", + "Disadvantages\n", + "\n", + "- Time-consuming process: Since random forest algorithms can handle large data sets, they can provide more accurate predictions, but can be slow to process data as they are computing data for each individual decision tree.\n", + "- Requires more resources: Since random forests process larger data sets, they’ll require more resources to store that data.\n", + "- More complex: The prediction of a single decision tree is easier to interpret when compared to a forest of them.\n", + "\n", + "#### 2.3. Extreme Gradient Boosting (XGBoost) Algorithm\n", + "XGBoost is one of the algorithms based on Boosting ensemble method, and the idea behind it is to train the predictors sequentially, each trying to correct its predecessor. XGBoost method tries to fit the new predictor to the residual errors made by the previous predictor. It is called gradient boosting because it uses a gradient descent algorithm to minimize the loss when adding new models. XGBoost gained significant favor in the last few years as a result of helping individuals and teams win virtually every Kaggle structured data competition. \n", + "\n", + "Advantages\n", + "\n", + "- Gradient Boosting comes with an easy to read and interpret algorithm, making most of its predictions easy to handle.\n", + "- Boosting is a resilient and robust method that prevents and cubs over-fitting quite easily\n", + "- XGBoost performs very well on medium, small, data with subgroups and structured datasets with not too many features. \n", + "- It is a great approach to go for because the large majority of real-world problems involve classification and regression, two tasks where XGBoost is the reigning king. \n", + "\n", + "Disadvantages \n", + "\n", + "- XGBoost does not perform so well on sparse and unstructured data.\n", + "- A common thing often forgotten is that Gradient Boosting is very sensitive to outliers since every classifier is forced to fix the errors in the predecessor learners. \n", + "- The overall method is hardly scalable. This is because the estimators base their correctness on previous predictors, hence the procedure involves a lot of struggle to streamline. \n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "source": [ + "## 3. Setting Up the Codes and Notebook\n", + "\n", + "#### 3.1. Access the GitHub Codes\n", + "First we download the code files from the GitHub. In the terminal you should use the following command:" + ] + }, + { + "cell_type": "raw", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "source": [ + "git clone https://github.com/savalann/hydromachine-tutorials" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.2. Import the Python Libraries\n", + "First we will install two libraries, then we will import the libraries that we need. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!pip install hydroeval xgboost" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# system packages\n", + "from datetime import datetime, date, timedelta\n", + "import pickle\n", + "import warnings\n", + "warnings.filterwarnings(\"ignore\")\n", + "import platform\n", + "import time\n", + "from tqdm import tqdm\n", + "import os\n", + "import boto3\n", + "from botocore.client import Config\n", + "from botocore import UNSIGNED\n", + "\n", + "# basic packages\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.dates as mdates\n", + "from matplotlib.patches import Patch\n", + "import math\n", + "from evaluation_table import EvalTable\n", + "\n", + "# model packages\n", + "import xgboost as xgb\n", + "from sklearn.model_selection import GridSearchCV, train_test_split, RepeatedKFold, cross_val_score\n", + "from sklearn.metrics import mean_squared_error, mean_absolute_error, make_scorer\n", + "from sklearn.preprocessing import MinMaxScaler\n", + "import joblib\n", + "from shapely.geometry import Point\n", + "import geopandas as gpd\n", + "import pyproj\n", + "\n", + "# Identify the path\n", + "home = os.getcwd()\n", + "parent_path = os.path.dirname(home)\n", + "input_path = f'{parent_path}/02.input/'\n", + "output_path = f'{parent_path}/03.output/'\n", + "main_path = home" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "source": [ + "## 4. Data Preprocessing\n", + "#### 4.1. Overview of the USGS Stream Station\n", + "- The dataset that we will use provides the data for seven GSL watershed stations. \n", + "- The dataset contains climate variables, such as precipitation and temperature, water infrastructure, storage percentage, and watershed characteristics, such as average area and elevation. \n", + "You can see the location of the station and its watershed in the Figure below. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "source": [ + "#### 4.2. Load Dataset\n", + "- Using the boto3 libarary we get the input dataset from the CIROH S3 bucket." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# List of station IDs that are of interest.\n", + "stations = ['10126000', '10130500', '10134500', '10136500', '10137500', '10141000', '10155000', '10164500', '10171000']\n", + "\n", + "# Read a CSV file into a DataFrame and set the first column as the index.\n", + "df = df = pd.read_parquet(f'{input_path}final_input.parquet')\n", + "\n", + "# Convert the station_id column to string data type.\n", + "df.station_id = df.station_id.astype(str)\n", + "\n", + "# Convert the 'datetime' column to datetime objects.\n", + "df.datetime = pd.to_datetime(df.datetime)\n", + "\n", + "# Filter the DataFrame to include only the rows where 'station_id' is in the 'stations' list.\n", + "df_modified = df[df['station_id'].isin(stations)]\n", + "\n", + "# Select specific columns to create a new DataFrame.\n", + "dataset = df_modified[['station_id', 'datetime', 'Lat', 'Long', 'Drainage_area_mi2', 'Mean_Basin_Elev_ft',\n", + " 'Perc_Forest', 'Perc_Develop', 'Perc_Imperv', 'Perc_Herbace',\n", + " 'Perc_Slop_30', 'Mean_Ann_Precip_in', 's1',\n", + " 's2', 'storage', 'swe', 'NWM_flow', 'DOY','tempe(F)', 'precip(mm)', 'flow_cfs']]\n", + "\n", + "# Extract a list of unique station IDs from the modified dataset.\n", + "station_list = dataset.station_id.unique()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 4.3. Visualizing the Data\n", + "- The takeaway from data visualization is to gather information about data distribution, outliers, missing values, correlation between different variables, and time dependencies between variables.\n", + "- Here, we will use boxplots, histograms, and combo bar and line plots to show outliers, distribution, and time dependencies in streamflow, precipitation, temperature, and SWE." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, we will plot the time dependencies using bar and line plots for streamflow vs SWE. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "\n", + "figsize = (9, 6) # Set the figure size for the plot.\n", + "fig, ax = plt.subplots(figsize=figsize)\n", + "\n", + "\n", + "# Extract data for the current station.\n", + "temp_df_1 = dataset[dataset.station_id == station_list[0]]\n", + "# Set 'datetime' as the index for the DataFrame for plotting.\n", + "temp_df_2 = temp_df_1.set_index('datetime')\n", + "# Plot 'flow_cfs' on the primary y-axis.\n", + "ax.plot(temp_df_2.index, temp_df_2['flow_cfs'])\n", + "# Set x-axis limits from the minimum to maximum year of data.\n", + "start_year = pd.to_datetime(f'{temp_df_1.datetime.dt.year.min()}-01-01')\n", + "end_year = pd.to_datetime(f'{temp_df_1.datetime.dt.year.max()}-12-31')\n", + "ax.set_xlim(start_year, end_year)\n", + "# Get current x-tick labels and set their rotation for better visibility.\n", + "labels = ax.get_xticklabels()\n", + "ax.set_xticklabels(labels, rotation=45)\n", + "\n", + "# Create a secondary y-axis for Snow Water Equivalent (SWE).\n", + "ax2 = ax.twinx()\n", + "# Plot SWE as a bar graph on the secondary y-axis.\n", + "ax2.bar(temp_df_2.index, temp_df_2['swe'], label='Inverted', color='red')\n", + "# Set the y-axis limits for SWE, flipping the axis to make bars grow downward.\n", + "ax2.set_ylim(max(temp_df_2['swe']) + 40, 0)\n", + "# Set label for the secondary y-axis.\n", + "ax2.set_ylabel('SWE')\n", + "# Define custom ticks for the secondary y-axis.\n", + "ax2.set_yticks(np.arange(0, max(temp_df_2['swe']), 5))\n", + "\n", + "# Set the title of the subplot to the station ID.\n", + "ax.set_title(f'{station_list[0]}')\n", + "# Set the x-axis label for subplots in the last row.\n", + "\n", + "ax.set_xlabel('Datetime (day)')\n", + "\n", + "# Set the y-axis label for subplots in the first column.\n", + "\n", + "ax.set_ylabel('Streamflow (cfs)')\n", + "\n", + "\n", + "\n", + "# Adjust the layout to prevent overlapping elements.\n", + "plt.tight_layout()\n", + "# Uncomment the line below to save the figure to a file.\n", + "# plt.savefig(f'{save_path}scatter_annual_drought_number.png')\n", + "# Display the plot.\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The next plot shows precipitation vs streamflow. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "\n", + "figsize = (9, 6) # Set the figure size for the plot.\n", + "fig, ax = plt.subplots(figsize=figsize)\n", + "\n", + "\n", + "# Extract the data for the current station from the dataset.\n", + "temp_df_1 = dataset[dataset.station_id == station_list[0]]\n", + "# Set 'datetime' as the index for plotting.\n", + "temp_df_2 = temp_df_1.set_index('datetime')\n", + "# Plot the 'flow_cfs' data on the primary y-axis.\n", + "ax.plot(temp_df_2.index, temp_df_2['flow_cfs'])\n", + "# Set the x-axis limits from the first to the last year of data.\n", + "start_year = pd.to_datetime(f'{temp_df_1.datetime.dt.year.min()}-01-01')\n", + "end_year = pd.to_datetime(f'{temp_df_1.datetime.dt.year.max()}-12-31')\n", + "ax.set_xlim(start_year, end_year)\n", + "# Rotate x-axis labels for better readability.\n", + "labels = ax.get_xticklabels()\n", + "ax.set_xticklabels(labels, rotation=45)\n", + "\n", + "# Create a second y-axis for the precipitation data.\n", + "ax2 = ax.twinx()\n", + "# Plot the 'precip(mm)' data as a bar graph on the secondary y-axis.\n", + "ax2.bar(temp_df_2.index, temp_df_2['precip(mm)'], label='Inverted', color='red', width=25)\n", + "# Set the y-axis limits for precipitation, flipping the axis to make bars grow downward.\n", + "ax2.set_ylim(max(temp_df_2['precip(mm)']) + 1000, 0)\n", + "# Set the label for the secondary y-axis.\n", + "ax2.set_ylabel('Precipitation (mm)')\n", + "# Define custom ticks for the secondary y-axis.\n", + "ax2.set_yticks(np.arange(0, max(temp_df_2['precip(mm)']), 250))\n", + "\n", + "# Set the title of the subplot to the station ID.\n", + "ax.set_title(f'{station_list[0]}')\n", + "# Set the x-axis label for subplots in the last row.\n", + "\n", + "ax.set_xlabel('Datetime (day)')\n", + "\n", + "# Set the y-axis label for subplots in the first column.\n", + "\n", + "ax.set_ylabel('Streamflow (cfs)')\n", + "\n", + "\n", + "\n", + "# Adjust the layout to prevent overlapping elements.\n", + "plt.tight_layout()\n", + "# Uncomment the line below to save the figure to a file.\n", + "# plt.savefig(f'{save_path}scatter_annual_drought_number.png')\n", + "# Display the plot.\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we will plot all the stations!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "# Initialize variables for the number of plots, columns, and rows based on the number of unique stations.\n", + "n_subplots = len(station_list)\n", + "n_cols = int(math.ceil(math.sqrt(n_subplots))) # Calculate columns as the ceiling of the square root of number of subplots.\n", + "n_rows = int(math.ceil(n_subplots / n_cols)) # Calculate rows as the ceiling of the ratio of subplots to columns.\n", + "figsize = (18, 12) # Set the figure size for the plot.\n", + "# Create a figure and a grid of subplots with the specified number of rows and columns.\n", + "fig, axes = plt.subplots(n_rows, n_cols, figsize=figsize, dpi=300)\n", + "axes = axes.flatten() # Flatten the axes array for easier iteration.\n", + "\n", + "# Iterate over each axis to plot data for each station.\n", + "for i, ax in enumerate(axes):\n", + " if i < n_subplots: # Check if the current index is less than the number of subplots to populate.\n", + " # Extract data for the current station.\n", + " temp_df_1 = dataset[dataset.station_id == station_list[i]]\n", + " # Set 'datetime' as the index for the DataFrame for plotting.\n", + " temp_df_2 = temp_df_1.set_index('datetime')\n", + " # Plot 'flow_cfs' on the primary y-axis.\n", + " ax.plot(temp_df_2.index, temp_df_2['flow_cfs'])\n", + " # Set x-axis limits from the minimum to maximum year of data.\n", + " start_year = pd.to_datetime(f'{temp_df_1.datetime.dt.year.min()}-01-01')\n", + " end_year = pd.to_datetime(f'{temp_df_1.datetime.dt.year.max()}-12-31')\n", + " ax.set_xlim(start_year, end_year)\n", + " # Get current x-tick labels and set their rotation for better visibility.\n", + " labels = ax.get_xticklabels()\n", + " ax.set_xticklabels(labels, rotation=45)\n", + "\n", + " # Create a secondary y-axis for Snow Water Equivalent (SWE).\n", + " ax2 = ax.twinx()\n", + " # Plot SWE as a bar graph on the secondary y-axis.\n", + " ax2.bar(temp_df_2.index, temp_df_2['swe'], label='Inverted', color='red')\n", + " # Set the y-axis limits for SWE, flipping the axis to make bars grow downward.\n", + " ax2.set_ylim(max(temp_df_2['swe']) + 40, 0)\n", + " # Set label for the secondary y-axis.\n", + " ax2.set_ylabel('SWE')\n", + " # Define custom ticks for the secondary y-axis.\n", + " ax2.set_yticks(np.arange(0, max(temp_df_2['swe']), 5))\n", + "\n", + " # Set the title of the subplot to the station ID.\n", + " ax.set_title(f'{station_list[i]}')\n", + " # Set the x-axis label for subplots in the last row.\n", + " if i // n_cols == n_rows - 1:\n", + " ax.set_xlabel('Datetime (day)')\n", + "\n", + " # Set the y-axis label for subplots in the first column.\n", + " if i % n_cols == 0:\n", + " ax.set_ylabel('Streamflow (cfs)')\n", + " else:\n", + " # Hide any unused axes.\n", + " ax.axis('off')\n", + "\n", + "# Adjust the layout to prevent overlapping elements.\n", + "plt.tight_layout()\n", + "# Uncomment the line below to save the figure to a file.\n", + "# plt.savefig(f'{save_path}scatter_annual_drought_number.png')\n", + "# Display the plot.\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "# Calculate the number of subplots needed based on the number of unique stations.\n", + "n_subplots = len(station_list)\n", + "# Determine the number of columns in the subplot grid by taking the ceiling of the square root of 'n_subplots'.\n", + "n_cols = int(math.ceil(math.sqrt(n_subplots)))\n", + "# Determine the number of rows in the subplot grid by dividing 'n_subplots' by 'n_cols' and taking the ceiling of that.\n", + "n_rows = int(math.ceil(n_subplots / n_cols))\n", + "# Set the figure size for the subplots.\n", + "figsize = (18, 12)\n", + "# Create a grid of subplots with specified number of rows and columns and figure size.\n", + "fig, axes = plt.subplots(n_rows, n_cols, figsize=figsize, dpi=300)\n", + "# Flatten the axes array for easier iteration.\n", + "axes = axes.flatten()\n", + "\n", + "# Iterate over the axes to plot the data for each station.\n", + "for i, ax in enumerate(axes):\n", + " if i < n_subplots:\n", + " # Extract the data for the current station from the dataset.\n", + " temp_df_1 = dataset[dataset.station_id == station_list[i]]\n", + " # Set 'datetime' as the index for plotting.\n", + " temp_df_2 = temp_df_1.set_index('datetime')\n", + " # Plot the 'flow_cfs' data on the primary y-axis.\n", + " ax.plot(temp_df_2.index, temp_df_2['flow_cfs'])\n", + " # Set the x-axis limits from the first to the last year of data.\n", + " start_year = pd.to_datetime(f'{temp_df_1.datetime.dt.year.min()}-01-01')\n", + " end_year = pd.to_datetime(f'{temp_df_1.datetime.dt.year.max()}-12-31')\n", + " ax.set_xlim(start_year, end_year)\n", + " # Rotate x-axis labels for better readability.\n", + " labels = ax.get_xticklabels()\n", + " ax.set_xticklabels(labels, rotation=45)\n", + "\n", + " # Create a second y-axis for the precipitation data.\n", + " ax2 = ax.twinx()\n", + " # Plot the 'precip(mm)' data as a bar graph on the secondary y-axis.\n", + " ax2.bar(temp_df_2.index, temp_df_2['precip(mm)'], label='Inverted', color='red', width=25)\n", + " # Set the y-axis limits for precipitation, flipping the axis to make bars grow downward.\n", + " ax2.set_ylim(max(temp_df_2['precip(mm)']) + 1000, 0)\n", + " # Set the label for the secondary y-axis.\n", + " ax2.set_ylabel('Precipitation (mm)')\n", + " # Define custom ticks for the secondary y-axis.\n", + " ax2.set_yticks(np.arange(0, max(temp_df_2['precip(mm)']), 250))\n", + "\n", + " # Set the title of the subplot to the station ID.\n", + " ax.set_title(f'{station_list[i]}')\n", + " # Set the x-axis label for subplots in the last row.\n", + " if i // n_cols == n_rows - 1:\n", + " ax.set_xlabel('Datetime (day)')\n", + "\n", + " # Set the y-axis label for subplots in the first column.\n", + " if i % n_cols == 0:\n", + " ax.set_ylabel('Streamflow (cfs)')\n", + " else:\n", + " # Hide any unused axes.\n", + " ax.axis('off')\n", + "\n", + "# Adjust layout to prevent overlapping elements.\n", + "plt.tight_layout()\n", + "# Uncomment the line below to save the figure to a file.\n", + "# plt.savefig(f'{save_path}scatter_annual_drought_number.png')\n", + "# Display the plot.\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 4.4. Splitting the Data \n", + "We split 80 percent of the data for training and the rest for testing the model." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create empty DataFrames for training and testing datasets.\n", + "data_train = pd.DataFrame()\n", + "data_test = pd.DataFrame()\n", + "\n", + "# Loop through each station name in the list of station IDs.\n", + "for station_name in station_list:\n", + " # Extract data for the current station and reset the index.\n", + " temp_df_1 = dataset[dataset.station_id == station_name].reset_index(drop=True)\n", + " \n", + " # Determine the maximum and minimum years in the dataset for the current station.\n", + " end_year = temp_df_1.datetime.dt.year.max()\n", + " start_year = temp_df_1.datetime.dt.year.min()\n", + " \n", + " # Calculate the duration in years between the earliest and latest data points.\n", + " duration = end_year - start_year\n", + " \n", + " # Calculate the division year to split training and testing data (80% for training).\n", + " division_year = start_year + int(duration * 0.8)\n", + " \n", + " # Select data from the start year up to the division year for training, reset the index, and append to the training DataFrame.\n", + " data_train = pd.concat((data_train.reset_index(drop=True), temp_df_1[temp_df_1.datetime < f'{division_year}-01-01'].reset_index(drop=True)), axis=0).reset_index(drop=True)\n", + " \n", + " # Select data from the division year onward for testing, reset the index, and append to the testing DataFrame.\n", + " data_test = pd.concat((data_test.reset_index(drop=True), temp_df_1[temp_df_1.datetime >= f'{division_year}-01-01'].reset_index(drop=True)), axis=0).reset_index(drop=True)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 5. Model Development \n", + "#### 5.1. Defining the XGBoost Model \n", + "As mentioned, we will use XGBoost in our tutorial, and we will use the [dmlc XGBoost package](https://xgboost.readthedocs.io/en/stable/). Understanding and tuning the model parameters is critical in any ML model development since it will affect the final model performance. The XGBoost model has different parameters, and here, we will work on the three most important parameters of XGBoost:\n", + " \n", + "* **`max_depth`** This parameter determines the maximum depth of each tree. This setting controls the complexity of the tree by restricting the number of levels or splits within it. Increasing the *max_depth* can help capture more complex patterns in the data, but it can also lead to overfitting, where the model becomes too specialized in the training data and performs poorly on new data. On the other hand, reducing the *max_depth* can help prevent overfitting, but it can also result in underfitting, where the model misses relevant patterns.\n", + "\n", + "* **`n_estimators`** It determines the number of trees in the ensemble and controls how many boosting rounds the algorithm should perform. Boosting rounds add new trees that attempt to correct errors from previous rounds, leading to improved performance up to a point. However, too many trees can result in overfitting, where the model performs well on training data but poorly on unseen data. It also increases the running time of the model.\n", + "\n", + "* **`eta`** It controls the step size used to update the weights of the trees during training and determines how much each new tree contributes to the overall model. A smaller *eta* value can make the model more robust to overfitting by slowing the learning process. However, more boosting rounds (n_estimators) may be required to achieve good performance. Conversely, a larger *eta* value allows the model to learn faster but increases the risk of overfitting." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will call the *XGBRegressor()* model and specify its parameters.\n", + "\n", + "**To make the process faster for this part we only use one station.**\n", + "\n", + "Let's start investigating different parameters and find out the best possible values!!!!!!!!!!!!!!!!!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def evaluate_model(params, X_train, y_train):\n", + " # Create an XGBoost regressor model with the provided parameters.\n", + " model = xgb.XGBRegressor(**params)\n", + " \n", + " # Set up cross-validation configuration with 10 splits and 3 repeats, and a fixed random state for reproducibility.\n", + " cv = RepeatedKFold(n_splits=10, n_repeats=3, random_state=1)\n", + " \n", + " # Perform cross-validation to evaluate the model using the negative mean absolute error as the scoring method.\n", + " # 'n_jobs=-1' enables using all CPU cores for parallel computation.\n", + " scores = cross_val_score(model, X_train, y_train, scoring='neg_mean_absolute_error', cv=cv, n_jobs=-1)\n", + " \n", + " # Return the scores from the cross-validation.\n", + " return scores\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Define the station ID to be used.\n", + "station_name = '10126000'\n", + "# Select and reset the index of feature columns from the training data where station ID matches.\n", + "x_train = data_train[data_train.station_id == station_name].iloc[:, 2:-1].reset_index(drop=True)\n", + "# Select and reset the index of the target column from the training data where station ID matches.\n", + "y_train = data_train[data_train.station_id == station_name].iloc[:, -1].reset_index(drop=True)\n", + "\n", + "# Define the initial parameters for the XGBoost model.\n", + "params = {\n", + " 'n_estimators': 200,\n", + " 'max_depth': 5,\n", + " 'eta': 0.1,\n", + "}\n", + "\n", + "# Evaluate the model with initial parameters and calculate the mean of absolute scores.\n", + "current_score = abs(evaluate_model(params, x_train, y_train).mean())\n", + "print(f\"Initial score (cfs): {current_score} with params: {params}\")\n", + "\n", + "# Initialize the interactive tuning loop.\n", + "continue_tuning = True\n", + "while continue_tuning:\n", + " # Prompt the user if they want to continue tuning.\n", + " print('=====================================================================================')\n", + " change = input(\"Do you want to change any variable? (y/n): \")\n", + " if change.lower() == 'y':\n", + " # Ask which parameter to change.\n", + " variable = input(\"Which variable number? (n_estimators(1)/max_depth(2)/eta(3)):\")\n", + " # Map user input to the corresponding parameter.\n", + " if variable == '1':\n", + " variable = 'n_estimators'\n", + " elif variable == '2':\n", + " variable = 'max_depth'\n", + " elif variable == '3':\n", + " variable = 'eta'\n", + " else:\n", + " print('Error: Wrong Number')\n", + " break\n", + "\n", + " # Prompt for the new value and validate the type.\n", + " value = input(f\"Enter the new value for {variable} (previous value {params[variable]}): \")\n", + " if variable == 'n_estimators' or variable == 'max_depth':\n", + " value = int(value)\n", + " else:\n", + " value = float(value)\n", + "\n", + " # Update parameter and re-evaluate the model.\n", + " old_param = params[variable]\n", + " params[variable] = value\n", + " new_score = evaluate_model(params, x_train, y_train)\n", + " print('**********************************************')\n", + " print('Previous Mean Score (cfs): %.3f (Previous Score SD: %.3f)' % (abs(current_score.mean()), current_score.std()))\n", + " print('New Mean Score (cfs): %.3f (New Score SD: %.3f)' % (abs(new_score.mean()), new_score.std()))\n", + " print('**********************************************')\n", + " current_score = new_score\n", + "\n", + " # Prompt if the new parameter setting should be kept.\n", + " keep_answer = input(f\"Do you want to keep the new variable?(y/n): \")\n", + " if keep_answer == 'n':\n", + " params[variable] = old_param\n", + " else:\n", + " # Exit tuning loop.\n", + " continue_tuning = False\n", + " print(f\"Finished tuning ====================> Final parameters: {params}.\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### !!!! Don't forget to train and save your model after tuning the hyperparameters as a Pickle file.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Instantiate an XGBoost regressor model with the specified parameters.\n", + "xgboost_model = xgb.XGBRegressor(**params)\n", + "\n", + "# Fit the model using the training dataset.\n", + "xgboost_model.fit(x_train, y_train)\n", + "\n", + "# Save the trained model to a file using the pickle library for later use.\n", + "# 'save_path' should be defined earlier in your script and point to a directory where you have write permissions.\n", + "pickle.dump(xgboost_model, open(f'{output_path}best_manuall_model.pkl', \"wb\"))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 5.2. Scaling the Data\n", + "Generally, scaling the inputs is not required in decision-tree ensemble models. However, some studies suggest scaling the inputs since XGBoost uses the Gradient Decent algorithm in its core optimization. So here we will try both \n", + "scaled and unscaled inputs to see the difference.\n", + "We will scale the data by using the *MinMaxScaler()* function from the Scikit-Learn library. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Function for scaling the data. \n", + "def input_scale(x_train, y_train):\n", + "\n", + " scaler_x = MinMaxScaler()\n", + " scaler_y = MinMaxScaler()\n", + " x_train_scaled, y_train_scaled = \\\n", + " scaler_x.fit_transform(x_train), scaler_y.fit_transform(y_train.values.reshape(-1, 1)).reshape(-1)\n", + " joblib.dump(scaler_x, f'{output_path}scaler_x.joblib')\n", + " joblib.dump(scaler_y, f'{output_path}scaler_y.joblib')\n", + " return x_train_scaled, y_train_scaled, scaler_x, scaler_y\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 5.3. Automatic Hypermeter Tuning\n", + "We investigated different values for each parameter, trying to tune it manually, which shows how difficult and time-consuming this process is. So, the next step is to use a simple automatic tuning method, Grird Search, to find the optimal hyperparameter values. To do so, we will use the *GirdSearchCV()* function of the Scikit-Learn library. \n", + "This method gets possible values for each parameter and then tests all possible combinations one by one. It finds the optimal value, but it is very slow. It also uses cross-validation to evaluate each combination. \n", + "\n", + "First, we divide and scale our whole dataset for the automatic tuning. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Initialize dictionaries for storing scaled test datasets.\n", + "x_test_scaled = {}\n", + "y_test_scaled = {}\n", + "x_test = {} # Missing declaration in your provided code.\n", + "y_test = {} # Missing declaration in your provided code.\n", + "\n", + "\n", + "# Assigning features by selecting all but the last column from the data_train DataFrame and resetting the index.\n", + "x_train = data_train.iloc[:, 2:-1].reset_index(drop=True)\n", + "# Assigning the target by selecting the last column from the data_train DataFrame and resetting the index.\n", + "y_train = data_train.iloc[:, -1].reset_index(drop=True)\n", + "\n", + "# Scale the training data and retrieve the scalers for later use on the test data.\n", + "x_train_scaled, y_train_scaled, scaler_x, scaler_y = input_scale(x_train, y_train)\n", + "\n", + "# Loop over each station name from the list of station IDs.\n", + "for station_name in station_list:\n", + " # Extract and store the features for the test data for each station.\n", + " x_test[station_name] = data_test[data_test.station_id == station_name].iloc[:, 2:-1]\n", + " # Extract and store the target variable for the test data for each station.\n", + " y_test[station_name] = data_test[data_test.station_id == station_name].iloc[:, -1]\n", + " # Scale the extracted test features and targets using the previously fitted scalers.\n", + " x_test_scaled[station_name] = scaler_x.transform(x_test[station_name])\n", + " y_test_scaled[station_name] = scaler_y.transform(y_test[station_name].values.reshape(-1, 1)).reshape(-1)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then, we select the possible values or range of values. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Define the range of hyperparameters for XGBoost tuning.\n", + "# Note that 'range(100, 300, 200)' implies a single value because the step size leads directly to the limit.\n", + "# If you intend multiple steps, adjust the range appropriately.\n", + "hyperparameters_xgboost = {\n", + " 'max_depth': range(2, 4), # Generates [2, 3] because 'range' is exclusive of the stop value.\n", + " 'n_estimators': range(100, 301, 200), # To include both 100 and 300 if that was your intent.\n", + " 'eta': [0.1] # Learning rate is a fixed value in this setup.\n", + "}\n", + "\n", + "# Paths for saving the tuned hyperparameters and the trained model.\n", + "path_model_save_hyperparameters = f\"{output_path}best_model_hyperparameters_xgboost.pkl\"\n", + "path_model_save_model = f\"{output_path}best_model_xgboost.pkl\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we create a new XGBoost model and the grid search function. Then, we will run the function and compare the results with those in the previous section. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Initialize an XGBoost regressor model.\n", + "xgboost_model_automatic = xgb.XGBRegressor()\n", + "\n", + "# Setup GridSearchCV with the XGBoost model and hyperparameter grid.\n", + "grid_search_3 = GridSearchCV(estimator=xgboost_model_automatic, # Corrected to use the initialized model\n", + " param_grid=hyperparameters_xgboost, # Dictionary of parameters to try\n", + " scoring='neg_mean_absolute_error', # Scoring method MAE, reported as negative for maximization\n", + " cv=3, # Number of cross-validation folds\n", + " n_jobs=-1, # Use all available CPU cores\n", + " verbose=0) # Show detailed progress (level 3)\n", + "\n", + "# Fit the GridSearchCV to the scaled training data.\n", + "grid_search_3.fit(x_train_scaled, y_train_scaled)\n", + "\n", + "# Retrieve the best estimator from the grid search.\n", + "optimized_xgboost_model = grid_search_3.best_estimator_\n", + "\n", + "# Output the best parameters and the corresponding score for those parameters.\n", + "print(f\"Best parameters found: {grid_search_3.best_params_}\")\n", + "print(f\"Best RMSE: {abs(grid_search_3.best_score_)}\") # Print the absolute value of the RMSE\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Remember to save the best parameters after finding them!!!!!!**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "joblib.dump(grid_search_3, path_model_save_hyperparameters)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "\n", + "
\n", + "What other methods can we use to tune the parameters????\n", + "
\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If the training dataset is too big (which is the case in real-world examples), we only use a small part to tune the parameters. Then, we have to train the model on the full dataset and save the model using the code below:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Fit the optimized XGBoost model to the scaled training data.\n", + "optimized_xgboost_model = optimized_xgboost_model.fit(x_train_scaled, y_train_scaled)\n", + "\n", + "# Save the trained model to a file using pickle. This serialized file can be loaded later to make predictions.\n", + "pickle.dump(optimized_xgboost_model, open(path_model_save_model, \"wb\"))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 5.4. Feature Selection\n", + "Feature selection is an important part of preprocessing the data, which we skipped since we first had to learn the model structure. After training the model, decision-tree ensembles can show us the importance of each feature in the prediction process. Then, based on the importance, we can remove less important features to make the model more complex.\n", + "\n", + "First we will try it for one station and the model that we trained with one station data. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Extract the feature names from the training dataset.\n", + "cols = x_train.columns\n", + "\n", + "# Create a DataFrame containing the feature importances extracted from the optimized XGBoost model.\n", + "# Transpose the DataFrame for easier plotting (columns become rows and vice versa).\n", + "FI = pd.DataFrame(xgboost_model.feature_importances_, index=cols, columns=['Importance'])\n", + "\n", + "# Plotting the feature importances as a horizontal bar chart.\n", + "ax = FI.sort_values('Importance', ascending=True).plot.barh() # Sorting helps in better visualization.\n", + "ax.get_legend().remove() # Remove the legend since it's typically not needed for a single-variable plot.\n", + "plt.title('Feature Importance') # Setting the title of the plot.\n", + "plt.xlabel('Importance') # Adding an x-label for clarity.\n", + "plt.ylabel('Features') # Adding a y-label for clarity.\n", + "plt.show() # Ensure the plot is displayed.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we will try it for all the stations." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Extract the feature names from the training dataset.\n", + "cols = x_train.columns\n", + "\n", + "# Create a DataFrame containing the feature importances extracted from the optimized XGBoost model.\n", + "# Transpose the DataFrame for easier plotting (columns become rows and vice versa).\n", + "FI = pd.DataFrame(optimized_xgboost_model.feature_importances_, index=cols, columns=['Importance'])\n", + "\n", + "# Plotting the feature importances as a horizontal bar chart.\n", + "ax = FI.sort_values('Importance', ascending=True).plot.barh() # Sorting helps in better visualization.\n", + "ax.get_legend().remove() # Remove the legend since it's typically not needed for a single-variable plot.\n", + "plt.title('Feature Importance') # Setting the title of the plot.\n", + "plt.xlabel('Importance') # Adding an x-label for clarity.\n", + "plt.ylabel('Features') # Adding a y-label for clarity.\n", + "plt.show() # Ensure the plot is displayed.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 5.5. Testing the Model\n", + "We will give the model the test set for each station and compare it with the observation to evaluate the model with a dataset it has not seen before. Before feeding the test data we load the model. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Initialize empty DataFrames to store evaluation results if not already defined.\n", + "EvalDF_all_rf = pd.DataFrame()\n", + "SupplyEvalDF_all_rf = pd.DataFrame()\n", + "df_eval_rf = pd.DataFrame()\n", + "final_output = {}\n", + "\n", + "# Iterate over each station name in the list of station IDs.\n", + "for station_name in station_list:\n", + " # Retrieve scaled test features for the current station.\n", + " x_test_scaled_temp = x_test_scaled[station_name]\n", + " \n", + " # Make predictions using the scaled test features.\n", + " yhat_test_scaled = optimized_xgboost_model.predict(x_test_scaled_temp)\n", + " \n", + " # Inverse transform the scaled predictions to their original scale.\n", + " yhat_test = scaler_y.inverse_transform(yhat_test_scaled.reshape(-1, 1))\n", + "\n", + " # Save the final output for plotting\n", + " final_output[station_name] = pd.DataFrame(yhat_test, columns=['pred_cfs'])\n", + " \n", + " # Assuming EvalTable is a predefined function that compares predictions to actuals and returns evaluation DataFrames.\n", + " EvalDF_all_rf_temp, SupplyEvalDF_all_rf_temp, df_eval_rf_temp = EvalTable(yhat_test.reshape(-1), data_test[data_test.station_id == station_name], 'xgboost')\n", + "\n", + " # Append the results from each station to the respective DataFrame.\n", + " EvalDF_all_rf = pd.concat([EvalDF_all_rf, EvalDF_all_rf_temp], ignore_index=True)\n", + " SupplyEvalDF_all_rf = pd.concat([SupplyEvalDF_all_rf, SupplyEvalDF_all_rf_temp], ignore_index=True)\n", + " df_eval_rf = pd.concat([df_eval_rf, df_eval_rf_temp], ignore_index=True)\n", + "\n", + "print(\"Model Performance for Daily cfs\")\n", + "display(EvalDF_all_rf) \n", + "print(\"Model Performance for Daily Accumulated Supply (Acre-Feet)\")\n", + "display(SupplyEvalDF_all_rf)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "\n", + "# The two stations with the highest and lowest improvement. \n", + "\n", + "two_list = ['10126000', '10136500']\n", + "\n", + "two_list_name = ['Low', 'High']\n", + "\n", + "# Initialize variables for the number of plots, columns, and rows based on the number of unique stations.\n", + "n_subplots = 2\n", + "n_cols = int(math.ceil(math.sqrt(n_subplots))) # Calculate columns as the ceiling of the square root of number of subplots.\n", + "n_rows = int(math.ceil(n_subplots / n_cols)) # Calculate rows as the ceiling of the ratio of subplots to columns.\n", + "figsize = (18, 12) # Set the figure size for the plot.\n", + "# Create a figure and a grid of subplots with the specified number of rows and columns.\n", + "fig, axes = plt.subplots(n_rows, n_cols, figsize=figsize)\n", + "axes = axes.flatten() # Flatten the axes array for easier iteration.\n", + "\n", + "# Iterate over each axis to plot data for each station.\n", + "for i, ax in enumerate(axes):\n", + " if i < n_subplots: # Check if the current index is less than the number of subplots to populate.\n", + "\n", + " # Get the observation data\n", + " obs = data_test[data_test.station_id == two_list[i]][['datetime', 'flow_cfs', 'NWM_flow']].reset_index(drop=True)\n", + "\n", + " # Get the prediction data\n", + " pred = final_output[two_list[i]].reset_index(drop=True)\n", + "\n", + " # Concat the two datastes\n", + " eval_data = pd.concat([obs, pred], axis=1)\n", + "\n", + " # Set 'datetime' as the index for the DataFrame for plotting.\n", + " temp_df_2 = eval_data.set_index('datetime')\n", + " # Plot 'flow_cfs' on the primary y-axis.\n", + " ax.plot(temp_df_2.index, temp_df_2['flow_cfs'], label='Observation')\n", + " ax.plot(temp_df_2.index, temp_df_2['pred_cfs'], label='XGBoost Prediction')\n", + " ax.plot(temp_df_2.index, temp_df_2['NWM_flow'], label='NWM Prediction')\n", + " # Set x-axis limits from the minimum to maximum year of data.\n", + " start_year = pd.to_datetime(f'{eval_data.datetime.dt.year.min()}-01-01')\n", + " end_year = pd.to_datetime(f'{eval_data.datetime.dt.year.max()}-12-31')\n", + " ax.set_xlim(start_year, end_year)\n", + " # Get current x-tick labels and set their rotation for better visibility.\n", + " labels = ax.get_xticklabels()\n", + " ax.set_xticklabels(labels, rotation=45)\n", + "\n", + " # Set the title of the subplot to the station ID.\n", + " ax.set_title(f'{two_list[i]} | {two_list_name[i]} Improvement')\n", + " # Set the x-axis label for subplots in the last row.\n", + " if i // n_cols == n_rows - 1:\n", + " ax.set_xlabel('Datetime (day)')\n", + "\n", + " # Set the y-axis label for subplots in the first column.\n", + " if i % n_cols == 0:\n", + " ax.set_ylabel('Streamflow (cfs)')\n", + " ax.legend()\n", + " else:\n", + " # Hide any unused axes.\n", + " ax.axis('off')\n", + " \n", + "\n", + "# Adjust the layout to prevent overlapping elements.\n", + "plt.tight_layout()\n", + "# Uncomment the line below to save the figure to a file.\n", + "# plt.savefig(f'{save_path}scatter_annual_drought_number.png')\n", + "# Display the plot.\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "EvalDF_all_rf.rename(columns={'USGSid': 'station_id'}, inplace=True)\n", + "df_modified = df_modified[['station_id', 'Lat', 'Long']]\n", + "df_modified = df_modified[['station_id', 'Lat', 'Long']].drop_duplicates().reset_index(drop=True)\n", + "EvalDF_all_rf_all = pd.merge(EvalDF_all_rf, df_modified[['station_id', 'Lat', 'Long']], on='station_id')\n", + "\n", + "SupplyEvalDF_all_rf.rename(columns={'USGSid': 'station_id'}, inplace=True)\n", + "SupplyEvalDF_all_rf_all = pd.merge(SupplyEvalDF_all_rf, df_modified[['station_id', 'Lat', 'Long']], on='station_id')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def categorize_kge(kge):\n", + " if kge < 0:\n", + " return 0\n", + " elif 0 < kge <= 0.5:\n", + " return 1\n", + " elif 0.5 < kge <= 0.75:\n", + " return 2\n", + " elif 0.75 < kge :\n", + " return 3\n", + "\n", + "EvalDF_all_rf_all['NWM_KGE_cat'] = SupplyEvalDF_all_rf['NWM_KGE'].apply(categorize_kge)\n", + "EvalDF_all_rf_all['xgboost__KGE_cat'] = SupplyEvalDF_all_rf['xgboost__KGE'].apply(categorize_kge)\n", + "\n", + "def categorize_pbias(pbias):\n", + " if -15 < pbias < 0:\n", + " return 0\n", + " elif pbias < -15:\n", + " return 1\n", + " elif 0 < pbias < 15:\n", + " return 2\n", + " elif 15 < pbias :\n", + " return 3 \n", + "EvalDF_all_rf_all['NWM_PBias_cat'] = SupplyEvalDF_all_rf['NWM_PBias'].apply(categorize_pbias)\n", + "EvalDF_all_rf_all['xgboost_PBias_cat'] = SupplyEvalDF_all_rf['xgboost_PBias'].apply(categorize_pbias)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "shape_input = f'{input_path}shape/'\n", + "\n", + "file_list = ['jordan', 'weber', 'bear']\n", + "# Load the shapefile\n", + "\n", + "for file_name in file_list:\n", + " gdf = gpd.read_file(f\"{shape_input}{file_name}.shp\")\n", + "\n", + " # Merge all polygons into one\n", + " merged_polygon = gdf.unary_union\n", + "\n", + " # Create a new GeoDataFrame\n", + " merged_gdf = gpd.GeoDataFrame(geometry=[merged_polygon], crs=gdf.crs)\n", + "\n", + " # Save the merged polygon to a new shapefile\n", + " merged_gdf.to_file(f\"{shape_input}{file_name}_merged.shp\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "river_gdf_bear = gpd.read_file(f\"{shape_input}river_bear.shp\")\n", + "\n", + "river_gdf_jordan_weber = gpd.read_file(f\"{shape_input}river_jordan_weber.shp\")\n", + "\n", + "lake_gdf_jordan_weber = gpd.read_file(f\"{shape_input}lake_jordan_weber.shp\")\n", + "\n", + "lake_gdf_bear = gpd.read_file(f\"{shape_input}lake_bear.shp\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from matplotlib.patches import Patch\n", + "\n", + "year = ['NWM KGE', 'XGBoost KGE', 'NWM PBias', 'XGBoost PBias']\n", + "name = 'Severity'\n", + "variable = ['NWM_KGE_cat', 'xgboost__KGE_cat', 'NWM_PBias_cat', 'xgboost_PBias_cat']\n", + "\n", + "\n", + "fig, axes = plt.subplots(2, 2, figsize=(10, 17), dpi=300, sharey=True, sharex=True)\n", + "axes = axes.flatten()\n", + "\n", + "for ax_index, ax in enumerate(axes):\n", + " colors = ['fuchsia', 'black', 'green']\n", + "\n", + " if ax_index < 2:\n", + " df_points = EvalDF_all_rf_all[['Lat', 'Long', 'NWM_KGE_cat', 'xgboost__KGE_cat']]\n", + " elif ax_index >= 2:\n", + " df_points = EvalDF_all_rf_all[['Lat', 'Long', 'NWM_PBias_cat', 'xgboost_PBias_cat']]\n", + "\n", + " for file_name, color_name in zip(file_list, colors):\n", + " if color_name == 'fuchsia':\n", + " my_zorder = 5\n", + " else:\n", + " my_zorder = 1\n", + "\n", + " merged_gdf = gpd.read_file(f\"{shape_input}{file_name}_merged.shp\", zorder=my_zorder)\n", + "\n", + " merged_gdf.plot(ax=ax, alpha=0.9, facecolor='none', edgecolor=color_name, linewidth=1, label=file_name) \n", + " lats = df_points['Lat'] # Example latitudes\n", + " lons = df_points['Long'] # Example longitudes\n", + " values = df_points[f'{variable[ax_index]}'] # Values associated with each point\n", + "\n", + " # Create GeoDataFrame from coordinates\n", + " points_data = gpd.GeoDataFrame({'Latitude': lats, 'Longitude': lons, 'Value': values},\n", + " geometry=[Point(xy) for xy in zip(lons, lats)],\n", + " crs=\"EPSG:4326\") # Define the coordinate reference system\n", + "\n", + " subset = river_gdf_bear[river_gdf_bear['StreamLeve'] == 4]\n", + " subset.plot(ax=ax, color='darkblue', linewidth= 1.5, label=f'Stream Order', zorder=1) # Multiply order by 2 for line width\n", + " subset = river_gdf_bear[~(river_gdf_bear['StreamLeve'] == 4)]\n", + " subset.plot(ax=ax, color='darkblue', linewidth= 0.5, label=f'Stream Order', zorder=1) # Multiply order by 2 for line width\n", + "\n", + "\n", + " subset = river_gdf_jordan_weber[(river_gdf_jordan_weber['StreamLeve'] == 4) & ((river_gdf_jordan_weber['StreamOrde'] == 5) | (river_gdf_jordan_weber['StreamOrde'] == 6))]\n", + " subset.plot(ax=ax, color='darkblue', linewidth= 1.5, label=f'Stream Order', zorder=1) # Multiply order by 2 for line width\n", + " subset = river_gdf_jordan_weber[~((river_gdf_jordan_weber['StreamLeve'] == 4) & ((river_gdf_jordan_weber['StreamOrde'] == 5) | (river_gdf_jordan_weber['StreamOrde'] == 6)))]\n", + " subset.plot(ax=ax, color='darkblue', linewidth= 0.5, label=f'Stream Order', zorder=1) # Multiply order by 2 for line width\n", + "\n", + " # Define colors for each value\n", + " # value_colors = {0: 'yellow', 1: 'orange', 2: 'red'}\n", + "\n", + " value_colors = {0: 'red', 1: 'orange', 2: 'lightgreen', 3: 'darkgreen'}\n", + "\n", + "\n", + " # Plot the points GeoDataFrame with colors based on the 'Value'\n", + " points_data.plot(ax=ax, marker='o', color=[value_colors[val] for val in points_data['Value']], markersize=50, label='Points', edgecolor='black', zorder=2)\n", + "\n", + "\n", + "\n", + " subset_lake_gdf_jordan_weber = lake_gdf_jordan_weber[(lake_gdf_jordan_weber['GNIS_Name'] != None) & (lake_gdf_jordan_weber['AreaSqKm'] >= 5) & ((lake_gdf_jordan_weber['FType'] == 390) | (lake_gdf_jordan_weber['FType'] == 436))]\n", + " subset_lake_gdf_jordan_weber.plot(ax=ax, color='darkblue', linewidth= 0.5, label=f'Stream Order', zorder=1) # Multiply order by 2 for line width\n", + "\n", + "\n", + "\n", + " subset_lake_gdf_bear = lake_gdf_bear[(lake_gdf_bear['GNIS_Name'] != None) & (lake_gdf_bear['AreaSqKm'] >= 5) & ((lake_gdf_bear['FType'] == 390) | (lake_gdf_bear['FType'] == 436))]\n", + " subset_lake_gdf_bear.plot(ax=ax, color='darkblue', linewidth= 0.5, label=f'Stream Order', zorder=1) # Multiply order by 2 for line width\n", + "\n", + "\n", + "\n", + " # colur_name = ['Low', 'Medium', 'High']\n", + " if ax_index < 2:\n", + " colur_name = ['< 0', '0 - 0.5', '0.5 - 0.75', '0.75 <']\n", + " if ax_index >= 2:\n", + " colur_name = ['< -15', '-15 - 0', '0 - 15', '15 <']\n", + "\n", + " # Create legend handles for sh\n", + " # legend_handles = [Patch(facecolor='none', edgecolor=color, label=label) for color, label in zip(colors, file_list)]\n", + " shapefile_handles = [Patch(facecolor='none', edgecolor=color, label=label) for color, label in zip(colors, file_list)]\n", + " point_handles = [Patch(facecolor=color, edgecolor='none', label=f'{colur_name[val]}') for val, color in value_colors.items()]\n", + " all_handles = shapefile_handles + point_handles\n", + " # Add titles and labels if necessary\n", + " ax.set_title(f'{year[ax_index]} ')\n", + " if ax_index == 0 or ax_index == 2:\n", + " ax.set_ylabel('Latitude')\n", + " if ax_index >= 2:\n", + " ax.set_xlabel('Longitude')\n", + "\n", + " # Show the plot\n", + " ax.legend(handles=all_handles, loc='lower left')\n", + "\n", + "plt.tight_layout()\n", + "# plt.savefig(f'{output_path_general}map_{name}_{year[0]}_{durtation_num}.png', bbox_inches='tight')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "interpreter": { + "hash": "7d941b521942abff02888ea7873cca51c2aac5fb2f3b440dbf15a61d263ddb0d" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "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.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/book/tutorials/decision_trees/01.script/01.tutorial_post_processing_xgboost_tuning.ipynb b/book/tutorials/decision_trees/01.script/01.tutorial_post_processing_xgboost_tuning.ipynb new file mode 100644 index 0000000..fc6f1d4 --- /dev/null +++ b/book/tutorials/decision_trees/01.script/01.tutorial_post_processing_xgboost_tuning.ipynb @@ -0,0 +1,700 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "tags": [], + "user_expressions": [] + }, + "source": [ + "# Machine Learning for Post-Processing NWM Data \n", + "**Authors: Savalan Naser Neisary (PhD Student, CIROH & The University of Alabama)**\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [] + }, + "source": [ + "### 1. Introduction \n", + "#### 1.1. Overview of the Workshop’s Goals and Structure.\n", + "\n", + "This is going to be 60 minutes workshop in which we will:\n", + "- Understand the basics of machine learning and decision-tree algorithms.\n", + "- Learn how to apply and train an XGBoost model for hydrological modeling.\n", + "- Learn how to implement feature selection using the XGBoost algorithm.\n", + "\n", + "\n", + "We will first review the theoretical background behind decision trees and the pros and cons of the most powerful decision-tree algorithms. Then, we will start the hands-on part of the workshop on setting up our environments and getting codes and data from GitHub repositories. Next, we plan to get the data preprocessed and start model development using the XGBoost algorithm. After that, we will discuss the feature selection and hyperparameter tuning (i.e., manually and automatically). Finally, we will evaluate the performance of XGBoost in different stations. \n", + "#### 1.2. Post-processing Hydrological Predictions\n", + "\n", + "Effective and sustainable management of water resources is crucial to provide adequate water supply for human societies, regardless of their geographical location. Having an accurate and precise prediction of future hydrological variables, including streamflow is a critical component for an effective water systems management, and various studies presented different methods, such as post-processing to increase the accuracy of the hydrological predictions. Post-processing methods seek to quantify the uncertainties of hydrological model outcomes and correct their biases by using a statistical model to transform model outputs based the relationship(s) between observations and model. According to the literature Machine Learning (ML) models proved to be useful in post-processing the results of other ML or physical-based hydrological models. Therefore, in this workshop we will use decision-tree algorithms, an ensemble subgroup of ML models, to post-process streamflow outputs of a physical-baed model. \n", + "#### 1.3. Post-processing Retrospective National Water Model (NWM) Streamflow Data\n", + "\n", + "NOAA introduced the NWM to address the need for an operational large-scale hydrological forecasting model to provide streamflow predictions in CONUS. While it has the capability of predicting streamflow in 2.7 billion water reaches, according to the literature, NWM has a low accuracy in regions west of the 95th meridian with drought and low-flow problem and in controlled basins with extensive water infrastructure. This low performance in western US watersheds is due to the lack of water operation consideration and a comprehensive groundwater and snow model beside calibrating NWM mostly with watersheds in eastern US. To compensate for NWM shortcomings in this workshop we will demonstrate how we can use decision-trees to increase its accuracy by post-processing the NWM outputs and adding the human activity impact to it. \n", + "\n", + "###### Recommended Resources:\n", + "- Hands-on Machine Learning with Scikit-Learn, Keras & TensorFlow.\n", + "- C4.5: Programs for Machine Learning.\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2. Theoretical Background \n", + "\n", + "#### 2.1. Decision-Trees Algorithm\n", + "\n", + "A decision tree is a non-parametric supervised learning algorithm, which is utilized for both classification and regression tasks. It has a hierarchical, tree structure, which consists of a root node, branches, internal nodes and leaf nodes.Decision trees are recursively constructed multidimensional histograms. Decision tree learning employs a divide and conquer strategy by conducting a greedy search to identify the optimal split points within a tree. This process of splitting is then repeated in a top-down, recursive manner until all, or the majority of records have been classified under specific class labels. Hunt’s algorithm, which was developed in the 1960s to model human learning in Psychology, forms the foundation of many popular decision tree algorithms, such as ID3, C4.5, and CART. \n", + "\n", + "PIC\n", + "\n", + "\n", + "Advantages\n", + "\n", + "- Easy to interpret: The Boolean logic and visual representations of decision trees make them easier to understand and consume. The hierarchical nature of a decision tree also makes it easy to see which attributes are most important, which isn’t always clear with other algorithms, like neural networks.\n", + "- Little to no data preparation required: Decision trees have a number of characteristics, which make it more flexible than other classifiers. It can handle various data types—i.e. discrete or continuous values, and continuous values can be converted into categorical values through the use of thresholds. Additionally, it can also handle values with missing values, which can be problematic for other classifiers, like Naïve Bayes. \n", + "- More flexible: Decision trees can be leveraged for both classification and regression tasks, making it more flexible than some other algorithms. It’s also insensitive to underlying relationships between attributes; this means that if two variables are highly correlated, the algorithm will only choose one of the features to split on. \n", + "\n", + "Disadvantages\n", + "\n", + "- Prone to overfitting: Complex decision trees tend to overfit and do not generalize well to new data. This scenario can be avoided through the processes of pre-pruning or post-pruning. Pre-pruning halts tree growth when there is insufficient data while post-pruning removes subtrees with inadequate data after tree construction. \n", + "- High variance estimators: Small variations within data can produce a very different decision tree. Bagging, or the averaging of estimates, can be a method of reducing variance of decision trees. However, this approach is limited as it can lead to highly correlated predictors. \n", + "- More costly: Given that decision trees take a greedy search approach during construction, they can be more expensive to train compared to other algorithms. \n", + "\n", + "#### 2.2. Random Forest (RF) Algorithm\n", + "\n", + "RF is a widely used machine learning algorithm developed by Leo Breiman and Adele Cutler. RF is based on decision-trees, but it is based on the *Wisdom of the Crowd*, which means it aggregate the results of a group of DTs. Using the results of more than one models is called *ensemble*, so we can say that RF is an ensemble algorithm since it aggregates the results of several number of DTs. Using an ensemble of decision trees can largely reduce the overfitting and prediction variance, providing more accurate results. RF is an extension of the bagging approach, which generates a random subset of both samples and features for each model training. While a DT is based on all features to make decisions, the RF algorithm only uses a subset of features, which can reduce the influence of highly correlated features in model prediction.\n", + "\n", + "Advantages\n", + "\n", + "- Reduced risk of overfitting: Decision trees run the risk of overfitting as they tend to tightly fit all the samples within training data. However, when there’s a robust number of decision trees in a random forest, the classifier won’t overfit the model since the averaging of uncorrelated trees lowers the overall variance and prediction error.\n", + "- Provides flexibility: Since random forest can handle both regression and classification tasks with a high degree of accuracy, it is a popular method among data scientists. Feature bagging also makes the random forest classifier an effective tool for estimating missing values as it maintains accuracy when a portion of the data is missing.\n", + "- Easy to determine feature importance: Random forest makes it easy to evaluate variable importance, or contribution, to the model. There are a few ways to evaluate feature importance. Gini importance and mean decrease in impurity (MDI) are usually used to measure how much the model’s accuracy decreases when a given variable is excluded. However, permutation importance, also known as mean decrease accuracy (MDA), is another importance measure. MDA identifies the average decrease in accuracy by randomly permutating the feature values in oob samples.\n", + "\n", + "Disadvantages\n", + "\n", + "- Time-consuming process: Since random forest algorithms can handle large data sets, they can provide more accurate predictions, but can be slow to process data as they are computing data for each individual decision tree.\n", + "- Requires more resources: Since random forests process larger data sets, they’ll require more resources to store that data.\n", + "- More complex: The prediction of a single decision tree is easier to interpret when compared to a forest of them.\n", + "\n", + "#### 2.3. Extreme Gradient Boosting (XGBoost) Algorithm\n", + "XGBoost is one of the algorithms based on Boosting ensemble method, and the idea behind it is to train the predictors sequentially, each trying to correct its predecessor. XGBoost method tries to fit the new predictor to the residual errors made by the previous predictor. It is called gradient boosting because it uses a gradient descent algorithm to minimize the loss when adding new models. XGBoost gained significant favor in the last few years as a result of helping individuals and teams win virtually every Kaggle structured data competition. \n", + "\n", + "Advantages\n", + "\n", + "- Gradient Boosting comes with an easy to read and interpret algorithm, making most of its predictions easy to handle.\n", + "- Boosting is a resilient and robust method that prevents and cubs over-fitting quite easily\n", + "- XGBoost performs very well on medium, small, data with subgroups and structured datasets with not too many features. \n", + "- It is a great approach to go for because the large majority of real-world problems involve classification and regression, two tasks where XGBoost is the reigning king. \n", + "\n", + "Disadvantages \n", + "\n", + "- XGBoost does not perform so well on sparse and unstructured data.\n", + "- A common thing often forgotten is that Gradient Boosting is very sensitive to outliers since every classifier is forced to fix the errors in the predecessor learners. \n", + "- The overall method is hardly scalable. This is because the estimators base their correctness on previous predictors, hence the procedure involves a lot of struggle to streamline. \n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "source": [ + "## 3. Setting Up the Codes and Notebook\n", + "\n", + "#### 3.1. Access the GitHub Codes\n", + "First we download the code files from the GitHub. In the terminal you should use the following command:" + ] + }, + { + "cell_type": "raw", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "source": [ + "git clone https://github.com/savalann/hydromachine-tutorials" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.2. Import the Python Libraries\n", + "Nest we will import the libraries that we need. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!pip install hydroeval xgboost" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# system packages\n", + "from datetime import datetime, date, timedelta\n", + "import pickle\n", + "import warnings\n", + "warnings.filterwarnings(\"ignore\")\n", + "import platform\n", + "import time\n", + "from tqdm import tqdm\n", + "import os\n", + "import boto3\n", + "from botocore.client import Config\n", + "from botocore import UNSIGNED\n", + "\n", + "# basic packages\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.dates as mdates\n", + "from matplotlib.patches import Patch\n", + "import math\n", + "from evaluation_table import EvalTable\n", + "\n", + "# model packages\n", + "import xgboost as xgb\n", + "from sklearn.model_selection import GridSearchCV, train_test_split, RepeatedKFold, cross_val_score\n", + "from sklearn.metrics import mean_squared_error, mean_absolute_error, make_scorer\n", + "from sklearn.preprocessing import MinMaxScaler\n", + "import joblib\n", + "from shapely.geometry import Point\n", + "import geopandas as gpd\n", + "import pyproj\n", + "\n", + "# Identify the path\n", + "home = os.getcwd()\n", + "parent_path = os.path.dirname(home)\n", + "input_path = f'{parent_path}/02.input/'\n", + "output_path = f'{parent_path}/03.output/'\n", + "main_path = home" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "source": [ + "## 4. Data Preprocessing\n", + "#### 4.1. Overview of the USGS Stream Station\n", + "- The dataset that we will use provides the data for seven GSL watershed stations. \n", + "- The dataset contains climate variables, such as precipitation and temperature, water infrastructure, storage percentage, and watershed characteristics, such as average area and elevation. \n", + "You can see the location of the station and its watershed in the Figure below. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "source": [ + "#### 4.2. Load Dataset\n", + "- Using the boto3 libarary we get the input dataset from the CIROH S3 bucket." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# List of station IDs that are of interest.\n", + "stations = ['10126000', '10130500', '10134500', '10136500', '10137500', '10141000', '10155000', '10164500', '10171000']\n", + "\n", + "# Read a CSV file into a DataFrame and set the first column as the index.\n", + "df = df = pd.read_parquet(f'{input_path}final_input.parquet')\n", + "\n", + "# Convert the station_id column to string data type.\n", + "df.station_id = df.station_id.astype(str)\n", + "\n", + "# Convert the 'datetime' column to datetime objects.\n", + "df.datetime = pd.to_datetime(df.datetime)\n", + "\n", + "# Filter the DataFrame to include only the rows where 'station_id' is in the 'stations' list.\n", + "df_modified = df[df['station_id'].isin(stations)]\n", + "\n", + "# Select specific columns to create a new DataFrame.\n", + "dataset = df_modified[['station_id', 'datetime', 'Lat', 'Long', 'Drainage_area_mi2', 'Mean_Basin_Elev_ft',\n", + " 'Perc_Forest', 'Perc_Develop', 'Perc_Imperv', 'Perc_Herbace',\n", + " 'Perc_Slop_30', 'Mean_Ann_Precip_in', 's1',\n", + " 's2', 'storage', 'swe', 'NWM_flow', 'DOY','tempe(F)', 'precip(mm)', 'flow_cfs']]\n", + "\n", + "# Extract a list of unique station IDs from the modified dataset.\n", + "station_list = dataset.station_id.unique()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 4.3. Visualizing the Data\n", + "- The takeaway from data visualization is to gather information about data distribution, outliers, missing values, correlation between different variables, and time dependencies between variables.\n", + "- Here, we will use boxplots, histograms, and combo bar and line plots to show outliers, distribution, and time dependencies in streamflow, precipitation, temperature, and SWE." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, we will plot the time dependencies using bar and line plots for streamflow vs SWE. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "\n", + "figsize = (9, 6) # Set the figure size for the plot.\n", + "fig, ax = plt.subplots(figsize=figsize)\n", + "\n", + "\n", + "# Extract data for the current station.\n", + "temp_df_1 = dataset[dataset.station_id == station_list[0]]\n", + "# Set 'datetime' as the index for the DataFrame for plotting.\n", + "temp_df_2 = temp_df_1.set_index('datetime')\n", + "# Plot 'flow_cfs' on the primary y-axis.\n", + "ax.plot(temp_df_2.index, temp_df_2['flow_cfs'])\n", + "# Set x-axis limits from the minimum to maximum year of data.\n", + "start_year = pd.to_datetime(f'{temp_df_1.datetime.dt.year.min()}-01-01')\n", + "end_year = pd.to_datetime(f'{temp_df_1.datetime.dt.year.max()}-12-31')\n", + "ax.set_xlim(start_year, end_year)\n", + "# Get current x-tick labels and set their rotation for better visibility.\n", + "labels = ax.get_xticklabels()\n", + "ax.set_xticklabels(labels, rotation=45)\n", + "\n", + "# Create a secondary y-axis for Snow Water Equivalent (SWE).\n", + "ax2 = ax.twinx()\n", + "# Plot SWE as a bar graph on the secondary y-axis.\n", + "ax2.bar(temp_df_2.index, temp_df_2['swe'], label='Inverted', color='red')\n", + "# Set the y-axis limits for SWE, flipping the axis to make bars grow downward.\n", + "ax2.set_ylim(max(temp_df_2['swe']) + 40, 0)\n", + "# Set label for the secondary y-axis.\n", + "ax2.set_ylabel('SWE')\n", + "# Define custom ticks for the secondary y-axis.\n", + "ax2.set_yticks(np.arange(0, max(temp_df_2['swe']), 5))\n", + "\n", + "# Set the title of the subplot to the station ID.\n", + "ax.set_title(f'{station_list[0]}')\n", + "# Set the x-axis label for subplots in the last row.\n", + "if i // n_cols == n_rows - 1:\n", + " ax.set_xlabel('Datetime (day)')\n", + "\n", + "# Set the y-axis label for subplots in the first column.\n", + "if i % n_cols == 0:\n", + " ax.set_ylabel('Streamflow (cfs)')\n", + "else:\n", + " # Hide any unused axes.\n", + " ax.axis('off')\n", + "\n", + "# Adjust the layout to prevent overlapping elements.\n", + "plt.tight_layout()\n", + "# Uncomment the line below to save the figure to a file.\n", + "# plt.savefig(f'{save_path}scatter_annual_drought_number.png')\n", + "# Display the plot.\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "# Initialize variables for the number of plots, columns, and rows based on the number of unique stations.\n", + "n_subplots = len(station_list)\n", + "n_cols = int(math.ceil(math.sqrt(n_subplots))) # Calculate columns as the ceiling of the square root of number of subplots.\n", + "n_rows = int(math.ceil(n_subplots / n_cols)) # Calculate rows as the ceiling of the ratio of subplots to columns.\n", + "figsize = (18, 12) # Set the figure size for the plot.\n", + "# Create a figure and a grid of subplots with the specified number of rows and columns.\n", + "fig, axes = plt.subplots(n_rows, n_cols, figsize=figsize)\n", + "axes = axes.flatten() # Flatten the axes array for easier iteration.\n", + "\n", + "# Iterate over each axis to plot data for each station.\n", + "for i, ax in enumerate(axes):\n", + " if i < n_subplots: # Check if the current index is less than the number of subplots to populate.\n", + " # Extract data for the current station.\n", + " temp_df_1 = dataset[dataset.station_id == station_list[i]]\n", + " # Set 'datetime' as the index for the DataFrame for plotting.\n", + " temp_df_2 = temp_df_1.set_index('datetime')\n", + " # Plot 'flow_cfs' on the primary y-axis.\n", + " ax.plot(temp_df_2.index, temp_df_2['flow_cfs'])\n", + " # Set x-axis limits from the minimum to maximum year of data.\n", + " start_year = pd.to_datetime(f'{temp_df_1.datetime.dt.year.min()}-01-01')\n", + " end_year = pd.to_datetime(f'{temp_df_1.datetime.dt.year.max()}-12-31')\n", + " ax.set_xlim(start_year, end_year)\n", + " # Get current x-tick labels and set their rotation for better visibility.\n", + " labels = ax.get_xticklabels()\n", + " ax.set_xticklabels(labels, rotation=45)\n", + "\n", + " # Create a secondary y-axis for Snow Water Equivalent (SWE).\n", + " ax2 = ax.twinx()\n", + " # Plot SWE as a bar graph on the secondary y-axis.\n", + " ax2.bar(temp_df_2.index, temp_df_2['swe'], label='Inverted', color='red')\n", + " # Set the y-axis limits for SWE, flipping the axis to make bars grow downward.\n", + " ax2.set_ylim(max(temp_df_2['swe']) + 40, 0)\n", + " # Set label for the secondary y-axis.\n", + " ax2.set_ylabel('SWE')\n", + " # Define custom ticks for the secondary y-axis.\n", + " ax2.set_yticks(np.arange(0, max(temp_df_2['swe']), 5))\n", + "\n", + " # Set the title of the subplot to the station ID.\n", + " ax.set_title(f'{station_list[i]}')\n", + " # Set the x-axis label for subplots in the last row.\n", + " if i // n_cols == n_rows - 1:\n", + " ax.set_xlabel('Datetime (day)')\n", + "\n", + " # Set the y-axis label for subplots in the first column.\n", + " if i % n_cols == 0:\n", + " ax.set_ylabel('Streamflow (cfs)')\n", + " else:\n", + " # Hide any unused axes.\n", + " ax.axis('off')\n", + "\n", + "# Adjust the layout to prevent overlapping elements.\n", + "plt.tight_layout()\n", + "# Uncomment the line below to save the figure to a file.\n", + "# plt.savefig(f'{save_path}scatter_annual_drought_number.png')\n", + "# Display the plot.\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The next plot shows precipitation vs streamflow. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "# Calculate the number of subplots needed based on the number of unique stations.\n", + "n_subplots = len(station_list)\n", + "# Determine the number of columns in the subplot grid by taking the ceiling of the square root of 'n_subplots'.\n", + "n_cols = int(math.ceil(math.sqrt(n_subplots)))\n", + "# Determine the number of rows in the subplot grid by dividing 'n_subplots' by 'n_cols' and taking the ceiling of that.\n", + "n_rows = int(math.ceil(n_subplots / n_cols))\n", + "# Set the figure size for the subplots.\n", + "figsize = (18, 12)\n", + "# Create a grid of subplots with specified number of rows and columns and figure size.\n", + "fig, axes = plt.subplots(n_rows, n_cols, figsize=figsize)\n", + "# Flatten the axes array for easier iteration.\n", + "axes = axes.flatten()\n", + "\n", + "# Iterate over the axes to plot the data for each station.\n", + "for i, ax in enumerate(axes):\n", + " if i < n_subplots:\n", + " # Extract the data for the current station from the dataset.\n", + " temp_df_1 = dataset[dataset.station_id == station_list[i]]\n", + " # Set 'datetime' as the index for plotting.\n", + " temp_df_2 = temp_df_1.set_index('datetime')\n", + " # Plot the 'flow_cfs' data on the primary y-axis.\n", + " ax.plot(temp_df_2.index, temp_df_2['flow_cfs'])\n", + " # Set the x-axis limits from the first to the last year of data.\n", + " start_year = pd.to_datetime(f'{temp_df_1.datetime.dt.year.min()}-01-01')\n", + " end_year = pd.to_datetime(f'{temp_df_1.datetime.dt.year.max()}-12-31')\n", + " ax.set_xlim(start_year, end_year)\n", + " # Rotate x-axis labels for better readability.\n", + " labels = ax.get_xticklabels()\n", + " ax.set_xticklabels(labels, rotation=45)\n", + "\n", + " # Create a second y-axis for the precipitation data.\n", + " ax2 = ax.twinx()\n", + " # Plot the 'precip(mm)' data as a bar graph on the secondary y-axis.\n", + " ax2.bar(temp_df_2.index, temp_df_2['precip(mm)'], label='Inverted', color='red', width=25)\n", + " # Set the y-axis limits for precipitation, flipping the axis to make bars grow downward.\n", + " ax2.set_ylim(max(temp_df_2['precip(mm)']) + 1000, 0)\n", + " # Set the label for the secondary y-axis.\n", + " ax2.set_ylabel('Precipitation (mm)')\n", + " # Define custom ticks for the secondary y-axis.\n", + " ax2.set_yticks(np.arange(0, max(temp_df_2['precip(mm)']), 250))\n", + "\n", + " # Set the title of the subplot to the station ID.\n", + " ax.set_title(f'{station_list[i]}')\n", + " # Set the x-axis label for subplots in the last row.\n", + " if i // n_cols == n_rows - 1:\n", + " ax.set_xlabel('Datetime (day)')\n", + "\n", + " # Set the y-axis label for subplots in the first column.\n", + " if i % n_cols == 0:\n", + " ax.set_ylabel('Streamflow (cfs)')\n", + " else:\n", + " # Hide any unused axes.\n", + " ax.axis('off')\n", + "\n", + "# Adjust layout to prevent overlapping elements.\n", + "plt.tight_layout()\n", + "# Uncomment the line below to save the figure to a file.\n", + "# plt.savefig(f'{save_path}scatter_annual_drought_number.png')\n", + "# Display the plot.\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 4.4. Splitting the Data \n", + "We split 80 percent of the data for training and the rest for testing the model." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create empty DataFrames for training and testing datasets.\n", + "data_train = pd.DataFrame()\n", + "data_test = pd.DataFrame()\n", + "\n", + "# Loop through each station name in the list of station IDs.\n", + "for station_name in station_list:\n", + " # Extract data for the current station and reset the index.\n", + " temp_df_1 = dataset[dataset.station_id == station_name].reset_index(drop=True)\n", + " \n", + " # Determine the maximum and minimum years in the dataset for the current station.\n", + " end_year = temp_df_1.datetime.dt.year.max()\n", + " start_year = temp_df_1.datetime.dt.year.min()\n", + " \n", + " # Calculate the duration in years between the earliest and latest data points.\n", + " duration = end_year - start_year\n", + " \n", + " # Calculate the division year to split training and testing data (80% for training).\n", + " division_year = start_year + int(duration * 0.8)\n", + " \n", + " # Select data from the start year up to the division year for training, reset the index, and append to the training DataFrame.\n", + " data_train = pd.concat((data_train.reset_index(drop=True), temp_df_1[temp_df_1.datetime < f'{division_year}-01-01'].reset_index(drop=True)), axis=0).reset_index(drop=True)\n", + " \n", + " # Select data from the division year onward for testing, reset the index, and append to the testing DataFrame.\n", + " data_test = pd.concat((data_test.reset_index(drop=True), temp_df_1[temp_df_1.datetime >= f'{division_year}-01-01'].reset_index(drop=True)), axis=0).reset_index(drop=True)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 5. Model Development \n", + "#### 5.1. Defining the XGBoost Model \n", + "As mentioned, we will use XGBoost in our tutorial, and we will use the [dmlc XGBoost package](https://xgboost.readthedocs.io/en/stable/). Understanding and tuning the model parameters is critical in any ML model development since it will affect the final model performance. The XGBoost model has different parameters, and here, we will work on the three most important parameters of XGBoost:\n", + " \n", + "* **`max_depth`** This parameter determines the maximum depth of each tree. This setting controls the complexity of the tree by restricting the number of levels or splits within it. Increasing the *max_depth* can help capture more complex patterns in the data, but it can also lead to overfitting, where the model becomes too specialized in the training data and performs poorly on new data. On the other hand, reducing the *max_depth* can help prevent overfitting, but it can also result in underfitting, where the model misses relevant patterns.\n", + "\n", + "* **`n_estimators`** It determines the number of trees in the ensemble and controls how many boosting rounds the algorithm should perform. Boosting rounds add new trees that attempt to correct errors from previous rounds, leading to improved performance up to a point. However, too many trees can result in overfitting, where the model performs well on training data but poorly on unseen data. It also increases the running time of the model.\n", + "\n", + "* **`eta`** It controls the step size used to update the weights of the trees during training and determines how much each new tree contributes to the overall model. A smaller *eta* value can make the model more robust to overfitting by slowing the learning process. However, more boosting rounds (n_estimators) may be required to achieve good performance. Conversely, a larger *eta* value allows the model to learn faster but increases the risk of overfitting." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will call the *XGBRegressor()* model and specify its parameters.\n", + "\n", + "**To make the process faster for this part we only use one station.**\n", + "\n", + "Let's start investigating different parameters and find out the best possible values!!!!!!!!!!!!!!!!!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def evaluate_model(params, X_train, y_train):\n", + " # Create an XGBoost regressor model with the provided parameters.\n", + " model = xgb.XGBRegressor(**params)\n", + " \n", + " # Set up cross-validation configuration with 10 splits and 3 repeats, and a fixed random state for reproducibility.\n", + " cv = RepeatedKFold(n_splits=10, n_repeats=3, random_state=1)\n", + " \n", + " # Perform cross-validation to evaluate the model using the negative mean absolute error as the scoring method.\n", + " # 'n_jobs=-1' enables using all CPU cores for parallel computation.\n", + " scores = cross_val_score(model, X_train, y_train, scoring='neg_mean_absolute_error', cv=cv, n_jobs=-1)\n", + " \n", + " # Return the scores from the cross-validation.\n", + " return scores\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Define the station ID to be used.\n", + "station_name = '10126000'\n", + "# Select and reset the index of feature columns from the training data where station ID matches.\n", + "x_train = data_train[data_train.station_id == station_name].iloc[:, 2:-1].reset_index(drop=True)\n", + "# Select and reset the index of the target column from the training data where station ID matches.\n", + "y_train = data_train[data_train.station_id == station_name].iloc[:, -1].reset_index(drop=True)\n", + "\n", + "# Define the initial parameters for the XGBoost model.\n", + "# n_estimators => 100, 2000\n", + "# max_depth => 3, 10\n", + "# eta => 0.01, 0.1\n", + "\n", + "params = {\n", + " 'n_estimators': 200,\n", + " 'max_depth': 5,\n", + " 'eta': 0.1,\n", + "}\n", + "\n", + "# Evaluate the model with initial parameters and calculate the mean of absolute scores.\n", + "current_score = abs(evaluate_model(params, x_train, y_train).mean())\n", + "print(f\"Initial score (cfs): {current_score} with params: {params}\")\n", + "\n", + "# Initialize the interactive tuning loop.\n", + "continue_tuning = True\n", + "while continue_tuning:\n", + " # Prompt the user if they want to continue tuning.\n", + " print('=====================================================================================')\n", + " change = input(\"Do you want to change any variable? (y/n): \")\n", + " if change.lower() == 'y':\n", + " # Ask which parameter to change.\n", + " variable = input(\"Which variable number? (n_estimators(1)/max_depth(2)/eta(3)):\")\n", + " # Map user input to the corresponding parameter.\n", + " if variable == '1':\n", + " variable = 'n_estimators'\n", + " elif variable == '2':\n", + " variable = 'max_depth'\n", + " elif variable == '3':\n", + " variable = 'eta'\n", + " else:\n", + " print('Error: Wrong Number')\n", + " break\n", + "\n", + " # Prompt for the new value and validate the type.\n", + " value = input(f\"Enter the new value for {variable} (previous value {params[variable]}): \")\n", + " if variable == 'n_estimators' or variable == 'max_depth':\n", + " value = int(value)\n", + " else:\n", + " value = float(value)\n", + "\n", + " # Update parameter and re-evaluate the model.\n", + " old_param = params[variable]\n", + " params[variable] = value\n", + " new_score = evaluate_model(params, x_train, y_train)\n", + " print('**********************************************')\n", + " print('Previous Mean Score (cfs): %.3f (Previous Score SD: %.3f)' % (abs(current_score.mean()), current_score.std()))\n", + " print('New Mean Score (cfs): %.3f (New Score SD: %.3f)' % (abs(new_score.mean()), new_score.std()))\n", + " print('**********************************************')\n", + " current_score = new_score\n", + "\n", + " # Prompt if the new parameter setting should be kept.\n", + " keep_answer = input(f\"Do you want to keep the new variable?(y/n): \")\n", + " if keep_answer == 'n':\n", + " params[variable] = old_param\n", + " else:\n", + " # Exit tuning loop.\n", + " continue_tuning = False\n", + " print(f\"Finished tuning ====================> Final parameters: {params}.\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### !!!! Don't forget to train and save your model after tuning the hyperparameters as a Pickle file.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Instantiate an XGBoost regressor model with the specified parameters.\n", + "xgboost_model = xgb.XGBRegressor(**params)\n", + "\n", + "# Fit the model using the training dataset.\n", + "xgboost_model.fit(x_train, y_train)\n", + "\n", + "# Save the trained model to a file using the pickle library for later use.\n", + "# 'save_path' should be defined earlier in your script and point to a directory where you have write permissions.\n", + "pickle.dump(xgboost_model, open(f'{output_path}best_manuall_model.pkl', \"wb\"))\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "data_train.to_pickle(f\"{output_path}train_dataset.pkl\")\n", + "data_test.to_pickle(f\"{output_path}test_dataset.pkl\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[**LETS GO TO THE NEXT PART**](./02.tutorial_post_processing_xgboost_automatic_tuning.ipynb)" + ] + } + ], + "metadata": { + "interpreter": { + "hash": "7d941b521942abff02888ea7873cca51c2aac5fb2f3b440dbf15a61d263ddb0d" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "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.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/book/tutorials/decision_trees/01.script/02.tutorial_post_processing_xgboost_automatic_tuning.ipynb b/book/tutorials/decision_trees/01.script/02.tutorial_post_processing_xgboost_automatic_tuning.ipynb new file mode 100644 index 0000000..13386e9 --- /dev/null +++ b/book/tutorials/decision_trees/01.script/02.tutorial_post_processing_xgboost_automatic_tuning.ipynb @@ -0,0 +1,349 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# system packages\n", + "from datetime import datetime, date, timedelta\n", + "import pickle\n", + "import warnings\n", + "warnings.filterwarnings(\"ignore\")\n", + "import platform\n", + "import time\n", + "from tqdm import tqdm\n", + "import os\n", + "import boto3\n", + "from botocore.client import Config\n", + "from botocore import UNSIGNED\n", + "\n", + "# basic packages\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.dates as mdates\n", + "from matplotlib.patches import Patch\n", + "import math\n", + "from evaluation_table import EvalTable\n", + "\n", + "# model packages\n", + "import xgboost as xgb\n", + "from sklearn.model_selection import GridSearchCV, train_test_split, RepeatedKFold, cross_val_score\n", + "from sklearn.metrics import mean_squared_error, mean_absolute_error, make_scorer\n", + "from sklearn.preprocessing import MinMaxScaler\n", + "import joblib\n", + "from shapely.geometry import Point\n", + "import geopandas as gpd\n", + "import pyproj\n", + "\n", + "# Identify the path\n", + "home = os.getcwd()\n", + "parent_path = os.path.dirname(home)\n", + "input_path = f'{parent_path}/02.input/'\n", + "output_path = f'{parent_path}/03.output/'\n", + "main_path = home" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Load the train and test dataset\n", + "data_train = pd.read_pickle(f\"{output_path}train_dataset.pkl\")\n", + "data_test = pd.read_pickle(f\"{output_path}test_dataset.pkl\")\n", + "station_list = data_train.station_id.unique()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 5.2. Scaling the Data\n", + "Generally, scaling the inputs is not required in decision-tree ensemble models. However, some studies suggest scaling the inputs since XGBoost uses the Gradient Decent algorithm in its core optimization. So here we will try both \n", + "scaled and unscaled inputs to see the difference.\n", + "We will scale the data by using the *MinMaxScaler()* function from the Scikit-Learn library. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Function for scaling the data. \n", + "def input_scale(x_train, y_train):\n", + "\n", + " scaler_x = MinMaxScaler()\n", + " scaler_y = MinMaxScaler()\n", + " x_train_scaled, y_train_scaled = \\\n", + " scaler_x.fit_transform(x_train), scaler_y.fit_transform(y_train.values.reshape(-1, 1)).reshape(-1)\n", + " joblib.dump(scaler_x, f'{output_path}scaler_x.joblib')\n", + " joblib.dump(scaler_y, f'{output_path}scaler_y.joblib')\n", + " return x_train_scaled, y_train_scaled, scaler_x, scaler_y\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 5.3. Automatic Hypermeter Tuning\n", + "We investigated different values for each parameter, trying to tune it manually, which shows how difficult and time-consuming this process is. So, the next step is to use a simple automatic tuning method, Grird Search, to find the optimal hyperparameter values. To do so, we will use the *GirdSearchCV()* function of the Scikit-Learn library. \n", + "This method gets possible values for each parameter and then tests all possible combinations one by one. It finds the optimal value, but it is very slow. It also uses cross-validation to evaluate each combination. \n", + "\n", + "First, we divide and scale our whole dataset for the automatic tuning. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Initialize dictionaries for storing scaled test datasets.\n", + "x_test_scaled = {}\n", + "y_test_scaled = {}\n", + "x_test = {} # Missing declaration in your provided code.\n", + "y_test = {} # Missing declaration in your provided code.\n", + "\n", + "\n", + "# Assigning features by selecting all but the last column from the data_train DataFrame and resetting the index.\n", + "x_train = data_train.iloc[:, 2:-1].reset_index(drop=True)\n", + "# Assigning the target by selecting the last column from the data_train DataFrame and resetting the index.\n", + "y_train = data_train.iloc[:, -1].reset_index(drop=True)\n", + "\n", + "# Scale the training data and retrieve the scalers for later use on the test data.\n", + "x_train_scaled, y_train_scaled, scaler_x, scaler_y = input_scale(x_train, y_train)\n", + "\n", + "# Loop over each station name from the list of station IDs.\n", + "for station_name in station_list:\n", + " # Extract and store the features for the test data for each station.\n", + " x_test[station_name] = data_test[data_test.station_id == station_name].iloc[:, 2:-1]\n", + " # Extract and store the target variable for the test data for each station.\n", + " y_test[station_name] = data_test[data_test.station_id == station_name].iloc[:, -1]\n", + " # Scale the extracted test features and targets using the previously fitted scalers.\n", + " x_test_scaled[station_name] = scaler_x.transform(x_test[station_name])\n", + " y_test_scaled[station_name] = scaler_y.transform(y_test[station_name].values.reshape(-1, 1)).reshape(-1)\n", + "\n", + "\n", + "with open(f\"{output_path}x_tes.pkl\", 'wb') as file:\n", + " pickle.dump(x_test_scaled, file)\n", + "with open(f\"{output_path}y_test.pkl\", 'wb') as file:\n", + " pickle.dump(y_test_scaled, file)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then, we select the possible values or range of values. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Define the range of hyperparameters for XGBoost tuning.\n", + "# Note that 'range(100, 300, 200)' implies a single value because the step size leads directly to the limit.\n", + "# If you intend multiple steps, adjust the range appropriately.\n", + "hyperparameters_xgboost = {\n", + " 'max_depth': range(2, 4), # Generates [2, 3] because 'range' is exclusive of the stop value.\n", + " 'n_estimators': range(100, 1000, 200), \n", + " 'eta': [0.1, 0.01, 0.05] \n", + "}\n", + "\n", + "# Paths for saving the tuned hyperparameters and the trained model.\n", + "path_model_save_hyperparameters = f\"{output_path}best_model_hyperparameters_xgboost.pkl\"\n", + "path_model_save_model = f\"{output_path}best_model_xgboost.pkl\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we create a new XGBoost model and the grid search function. Then, we will run the function and compare the results with those in the previous section. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Initialize an XGBoost regressor model.\n", + "xgboost_model_automatic = xgb.XGBRegressor()\n", + "\n", + "# Setup GridSearchCV with the XGBoost model and hyperparameter grid.\n", + "grid_search_3 = GridSearchCV(estimator=xgboost_model_automatic, # Corrected to use the initialized model\n", + " param_grid=hyperparameters_xgboost, # Dictionary of parameters to try\n", + " scoring='neg_mean_absolute_error', # Scoring method MAE, reported as negative for maximization\n", + " cv=3, # Number of cross-validation folds\n", + " n_jobs=-1, # Use all available CPU cores\n", + " verbose=0) # Show detailed progress (level 3)\n", + "\n", + "# Fit the GridSearchCV to the scaled training data.\n", + "grid_search_3.fit(x_train_scaled, y_train_scaled)\n", + "\n", + "# Retrieve the best estimator from the grid search.\n", + "optimized_xgboost_model = grid_search_3.best_estimator_\n", + "\n", + "# Output the best parameters and the corresponding score for those parameters.\n", + "print(f\"Best parameters found: {grid_search_3.best_params_}\")\n", + "print(f\"Best RMSE: {abs(grid_search_3.best_score_)}\") # Print the absolute value of the RMSE\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Remember to save the best parameters after finding them!!!!!!**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "joblib.dump(grid_search_3, path_model_save_hyperparameters)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "
\n", + "What other methods can we use to tune the parameters????\n", + "
\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If the training dataset is too big (which is the case in real-world examples), we only use a small part to tune the parameters. Then, we have to train the model on the full dataset and save the model using the code below:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Fit the optimized XGBoost model to the scaled training data.\n", + "optimized_xgboost_model = optimized_xgboost_model.fit(x_train_scaled, y_train_scaled)\n", + "\n", + "# Save the trained model to a file using pickle. This serialized file can be loaded later to make predictions.\n", + "pickle.dump(optimized_xgboost_model, open(path_model_save_model, \"wb\"))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 5.4. Feature Selection\n", + "Feature selection is an important part of preprocessing the data, which we skipped since we first had to learn the model structure. After training the model, decision-tree ensembles can show us the importance of each feature in the prediction process. Then, based on the importance, we can remove less important features to make the model more complex.\n", + "\n", + "First we will try it for one station and the model that we trained with one station data. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "with open(f'{output_path}best_manuall_model.pkl', 'rb') as file:\n", + " xgboost_model = pickle.load(file)\n", + " \n", + "# Extract the feature names from the training dataset.\n", + "cols = x_train.columns\n", + "# Create a DataFrame containing the feature importances extracted from the optimized XGBoost model.\n", + "# Transpose the DataFrame for easier plotting (columns become rows and vice versa).\n", + "FI = pd.DataFrame(xgboost_model.feature_importances_, index=cols, columns=['Importance'])\n", + "\n", + "# Plotting the feature importances as a horizontal bar chart.\n", + "ax = FI.sort_values('Importance', ascending=True).plot.barh() # Sorting helps in better visualization.\n", + "ax.get_legend().remove() # Remove the legend since it's typically not needed for a single-variable plot.\n", + "plt.title('Feature Importance') # Setting the title of the plot.\n", + "plt.xlabel('Importance') # Adding an x-label for clarity.\n", + "plt.ylabel('Features') # Adding a y-label for clarity.\n", + "plt.show() # Ensure the plot is displayed.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we will try it for all the stations." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Extract the feature names from the training dataset.\n", + "cols = x_train.columns\n", + "\n", + "# Create a DataFrame containing the feature importances extracted from the optimized XGBoost model.\n", + "# Transpose the DataFrame for easier plotting (columns become rows and vice versa).\n", + "FI = pd.DataFrame(optimized_xgboost_model.feature_importances_, index=cols, columns=['Importance'])\n", + "\n", + "# Plotting the feature importances as a horizontal bar chart.\n", + "ax = FI.sort_values('Importance', ascending=True).plot.barh() # Sorting helps in better visualization.\n", + "ax.get_legend().remove() # Remove the legend since it's typically not needed for a single-variable plot.\n", + "plt.title('Feature Importance') # Setting the title of the plot.\n", + "plt.xlabel('Importance') # Adding an x-label for clarity.\n", + "plt.ylabel('Features') # Adding a y-label for clarity.\n", + "plt.show() # Ensure the plot is displayed.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[**LETS GO TO THE NEXT PART**](./03.tutorial_post_processing_xgboost_evaluation.ipynb)" + ] + } + ], + "metadata": { + "interpreter": { + "hash": "7d941b521942abff02888ea7873cca51c2aac5fb2f3b440dbf15a61d263ddb0d" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "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.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/book/tutorials/decision_trees/01.script/03.tutorial_post_processing_xgboost_evaluation.ipynb b/book/tutorials/decision_trees/01.script/03.tutorial_post_processing_xgboost_evaluation.ipynb new file mode 100644 index 0000000..f67b965 --- /dev/null +++ b/book/tutorials/decision_trees/01.script/03.tutorial_post_processing_xgboost_evaluation.ipynb @@ -0,0 +1,353 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# system packages\n", + "from datetime import datetime, date, timedelta\n", + "import pickle\n", + "import warnings\n", + "warnings.filterwarnings(\"ignore\")\n", + "import platform\n", + "import time\n", + "from tqdm import tqdm\n", + "import os\n", + "import boto3\n", + "from botocore.client import Config\n", + "from botocore import UNSIGNED\n", + "\n", + "# basic packages\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.dates as mdates\n", + "from matplotlib.patches import Patch\n", + "import math\n", + "from evaluation_table import EvalTable\n", + "\n", + "# model packages\n", + "import xgboost as xgb\n", + "from sklearn.model_selection import GridSearchCV, train_test_split, RepeatedKFold, cross_val_score\n", + "from sklearn.metrics import mean_squared_error, mean_absolute_error, make_scorer\n", + "from sklearn.preprocessing import MinMaxScaler\n", + "import joblib\n", + "from shapely.geometry import Point\n", + "import geopandas as gpd\n", + "import pyproj\n", + "\n", + "# Identify the path\n", + "home = os.getcwd()\n", + "parent_path = os.path.dirname(home)\n", + "input_path = f'{parent_path}/02.input/'\n", + "output_path = f'{parent_path}/03.output/'\n", + "main_path = home" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Load Dataset and Model\n", + "\n", + "# List of station IDs that are of interest.\n", + "stations = ['10126000', '10130500', '10134500', '10136500', '10137500', '10141000', '10155000', '10164500', '10171000']\n", + "\n", + "# Read a CSV file into a DataFrame and set the first column as the index.\n", + "df = pd.read_parquet(f'{input_path}final_input.parquet')\n", + "\n", + "# Convert the station_id column to string data type.\n", + "df.station_id = df.station_id.astype(str)\n", + "\n", + "# Convert the 'datetime' column to datetime objects.\n", + "df.datetime = pd.to_datetime(df.datetime)\n", + "\n", + "# Filter the DataFrame to include only the rows where 'station_id' is in the 'stations' list.\n", + "df_modified = df[df['station_id'].isin(stations)]\n", + "with open(f\"{output_path}x_tes.pkl\", 'rb') as file:\n", + " x_test_scaled = pickle.load(file)\n", + "\n", + "with open(f\"{output_path}y_test.pkl\", 'rb') as file:\n", + " y_test_scaled = pickle.load(file)\n", + "\n", + "with open(f\"{output_path}best_model_xgboost.pkl\", 'rb') as file:\n", + " optimized_xgboost_model = pickle.load(file)\n", + "\n", + "scaler_y= joblib.load(f'{output_path}scaler_y.joblib')\n", + "\n", + "data_test = pd.read_pickle(f\"{output_path}test_dataset.pkl\")\n", + "\n", + "station_list = list(x_test_scaled.keys())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 5.5. Testing the Model\n", + "We will give the model the test set for each station and compare it with the observation to evaluate the model with a dataset it has not seen before. Before feeding the test data we load the model. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "\n", + "# Initialize empty DataFrames to store evaluation results if not already defined.\n", + "EvalDF_all_rf = pd.DataFrame()\n", + "SupplyEvalDF_all_rf = pd.DataFrame()\n", + "df_eval_rf = pd.DataFrame()\n", + "\n", + "# Iterate over each station name in the list of station IDs.\n", + "for station_name in station_list:\n", + " # Retrieve scaled test features for the current station.\n", + " x_test_scaled_temp = x_test_scaled[station_name]\n", + " \n", + " # Make predictions using the scaled test features.\n", + " yhat_test_scaled = optimized_xgboost_model.predict(x_test_scaled_temp)\n", + " \n", + " # Inverse transform the scaled predictions to their original scale.\n", + " yhat_test = scaler_y.inverse_transform(yhat_test_scaled.reshape(-1, 1))\n", + " \n", + " # Assuming EvalTable is a predefined function that compares predictions to actuals and returns evaluation DataFrames.\n", + " EvalDF_all_rf_temp, SupplyEvalDF_all_rf_temp, df_eval_rf_temp = EvalTable(yhat_test.reshape(-1), data_test[data_test.station_id == station_name], 'xgboost')\n", + "\n", + " # Append the results from each station to the respective DataFrame.\n", + " EvalDF_all_rf = pd.concat([EvalDF_all_rf, EvalDF_all_rf_temp], ignore_index=True)\n", + " SupplyEvalDF_all_rf = pd.concat([SupplyEvalDF_all_rf, SupplyEvalDF_all_rf_temp], ignore_index=True)\n", + " df_eval_rf = pd.concat([df_eval_rf, df_eval_rf_temp], ignore_index=True)\n", + "\n", + "print(\"Model Performance for Daily cfs\")\n", + "display(EvalDF_all_rf) \n", + "print(\"Model Performance for Daily Accumulated Supply (Acre-Feet)\")\n", + "display(SupplyEvalDF_all_rf)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "EvalDF_all_rf.rename(columns={'USGSid': 'station_id'}, inplace=True)\n", + "df_modified = df_modified[['station_id', 'Lat', 'Long']]\n", + "df_modified = df_modified[['station_id', 'Lat', 'Long']].drop_duplicates().reset_index(drop=True)\n", + "EvalDF_all_rf_all = pd.merge(EvalDF_all_rf, df_modified[['station_id', 'Lat', 'Long']], on='station_id')\n", + "\n", + "SupplyEvalDF_all_rf.rename(columns={'USGSid': 'station_id'}, inplace=True)\n", + "SupplyEvalDF_all_rf_all = pd.merge(SupplyEvalDF_all_rf, df_modified[['station_id', 'Lat', 'Long']], on='station_id')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def categorize_kge(kge):\n", + " if kge < 0:\n", + " return 0\n", + " elif 0 < kge <= 0.5:\n", + " return 1\n", + " elif 0.5 < kge <= 0.75:\n", + " return 2\n", + " elif 0.75 < kge :\n", + " return 3\n", + "\n", + "EvalDF_all_rf_all['NWM_KGE_cat'] = SupplyEvalDF_all_rf['NWM_KGE'].apply(categorize_kge)\n", + "EvalDF_all_rf_all['xgboost__KGE_cat'] = SupplyEvalDF_all_rf['xgboost__KGE'].apply(categorize_kge)\n", + "\n", + "def categorize_pbias(pbias):\n", + " if -15 < pbias < 0:\n", + " return 0\n", + " elif pbias < -15:\n", + " return 1\n", + " elif 0 < pbias < 15:\n", + " return 2\n", + " elif 15 < pbias :\n", + " return 3 \n", + "EvalDF_all_rf_all['NWM_PBias_cat'] = SupplyEvalDF_all_rf['NWM_PBias'].apply(categorize_pbias)\n", + "EvalDF_all_rf_all['xgboost_PBias_cat'] = SupplyEvalDF_all_rf['xgboost_PBias'].apply(categorize_pbias)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "shape_input = f'{input_path}shape/'\n", + "\n", + "file_list = ['jordan', 'weber', 'bear']\n", + "# Load the shapefile\n", + "\n", + "for file_name in file_list:\n", + " gdf = gpd.read_file(f\"{shape_input}{file_name}.shp\")\n", + "\n", + " # Merge all polygons into one\n", + " merged_polygon = gdf.unary_union\n", + "\n", + " # Create a new GeoDataFrame\n", + " merged_gdf = gpd.GeoDataFrame(geometry=[merged_polygon], crs=gdf.crs)\n", + "\n", + " # Save the merged polygon to a new shapefile\n", + " merged_gdf.to_file(f\"{shape_input}{file_name}_merged.shp\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "river_gdf_bear = gpd.read_file(f\"{shape_input}river_bear.shp\")\n", + "\n", + "river_gdf_jordan_weber = gpd.read_file(f\"{shape_input}river_jordan_weber.shp\")\n", + "\n", + "lake_gdf_jordan_weber = gpd.read_file(f\"{shape_input}lake_jordan_weber.shp\")\n", + "\n", + "lake_gdf_bear = gpd.read_file(f\"{shape_input}lake_bear.shp\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from matplotlib.patches import Patch\n", + "\n", + "year = ['NWM KGE', 'XGBoost KGE', 'NWM PBias', 'XGBoost PBias']\n", + "name = 'Severity'\n", + "variable = ['NWM_KGE_cat', 'xgboost__KGE_cat', 'NWM_PBias_cat', 'xgboost_PBias_cat']\n", + "\n", + "\n", + "fig, axes = plt.subplots(2, 2, figsize=(10, 17), dpi=300, sharey=True, sharex=True)\n", + "axes = axes.flatten()\n", + "\n", + "for ax_index, ax in enumerate(axes):\n", + " colors = ['fuchsia', 'black', 'green']\n", + "\n", + " if ax_index < 2:\n", + " df_points = EvalDF_all_rf_all[['Lat', 'Long', 'NWM_KGE_cat', 'xgboost__KGE_cat']]\n", + " elif ax_index >= 2:\n", + " df_points = EvalDF_all_rf_all[['Lat', 'Long', 'NWM_PBias_cat', 'xgboost_PBias_cat']]\n", + "\n", + " for file_name, color_name in zip(file_list, colors):\n", + " if color_name == 'fuchsia':\n", + " my_zorder = 5\n", + " else:\n", + " my_zorder = 1\n", + "\n", + " merged_gdf = gpd.read_file(f\"{shape_input}{file_name}_merged.shp\", zorder=my_zorder)\n", + "\n", + " merged_gdf.plot(ax=ax, alpha=0.9, facecolor='none', edgecolor=color_name, linewidth=1, label=file_name) \n", + " lats = df_points['Lat'] # Example latitudes\n", + " lons = df_points['Long'] # Example longitudes\n", + " values = df_points[f'{variable[ax_index]}'] # Values associated with each point\n", + "\n", + " # Create GeoDataFrame from coordinates\n", + " points_data = gpd.GeoDataFrame({'Latitude': lats, 'Longitude': lons, 'Value': values},\n", + " geometry=[Point(xy) for xy in zip(lons, lats)],\n", + " crs=\"EPSG:4326\") # Define the coordinate reference system\n", + "\n", + " subset = river_gdf_bear[river_gdf_bear['StreamLeve'] == 4]\n", + " subset.plot(ax=ax, color='darkblue', linewidth= 1.5, label=f'Stream Order', zorder=1) # Multiply order by 2 for line width\n", + " subset = river_gdf_bear[~(river_gdf_bear['StreamLeve'] == 4)]\n", + " subset.plot(ax=ax, color='darkblue', linewidth= 0.5, label=f'Stream Order', zorder=1) # Multiply order by 2 for line width\n", + "\n", + "\n", + " subset = river_gdf_jordan_weber[(river_gdf_jordan_weber['StreamLeve'] == 4) & ((river_gdf_jordan_weber['StreamOrde'] == 5) | (river_gdf_jordan_weber['StreamOrde'] == 6))]\n", + " subset.plot(ax=ax, color='darkblue', linewidth= 1.5, label=f'Stream Order', zorder=1) # Multiply order by 2 for line width\n", + " subset = river_gdf_jordan_weber[~((river_gdf_jordan_weber['StreamLeve'] == 4) & ((river_gdf_jordan_weber['StreamOrde'] == 5) | (river_gdf_jordan_weber['StreamOrde'] == 6)))]\n", + " subset.plot(ax=ax, color='darkblue', linewidth= 0.5, label=f'Stream Order', zorder=1) # Multiply order by 2 for line width\n", + "\n", + " # Define colors for each value\n", + " # value_colors = {0: 'yellow', 1: 'orange', 2: 'red'}\n", + "\n", + " value_colors = {0: 'red', 1: 'orange', 2: 'lightgreen', 3: 'darkgreen'}\n", + "\n", + "\n", + " # Plot the points GeoDataFrame with colors based on the 'Value'\n", + " points_data.plot(ax=ax, marker='o', color=[value_colors[val] for val in points_data['Value']], markersize=50, label='Points', edgecolor='black', zorder=2)\n", + "\n", + "\n", + "\n", + " subset_lake_gdf_jordan_weber = lake_gdf_jordan_weber[(lake_gdf_jordan_weber['GNIS_Name'] != None) & (lake_gdf_jordan_weber['AreaSqKm'] >= 5) & ((lake_gdf_jordan_weber['FType'] == 390) | (lake_gdf_jordan_weber['FType'] == 436))]\n", + " subset_lake_gdf_jordan_weber.plot(ax=ax, color='darkblue', linewidth= 0.5, label=f'Stream Order', zorder=1) # Multiply order by 2 for line width\n", + "\n", + "\n", + "\n", + " subset_lake_gdf_bear = lake_gdf_bear[(lake_gdf_bear['GNIS_Name'] != None) & (lake_gdf_bear['AreaSqKm'] >= 5) & ((lake_gdf_bear['FType'] == 390) | (lake_gdf_bear['FType'] == 436))]\n", + " subset_lake_gdf_bear.plot(ax=ax, color='darkblue', linewidth= 0.5, label=f'Stream Order', zorder=1) # Multiply order by 2 for line width\n", + "\n", + "\n", + "\n", + " # colur_name = ['Low', 'Medium', 'High']\n", + " if ax_index < 2:\n", + " colur_name = ['< 0', '0 - 0.5', '0.5 - 0.75', '0.75 <']\n", + " if ax_index >= 2:\n", + " colur_name = ['< -15', '-15 - 0', '0 - 15', '15 <']\n", + "\n", + " # Create legend handles for sh\n", + " # legend_handles = [Patch(facecolor='none', edgecolor=color, label=label) for color, label in zip(colors, file_list)]\n", + " shapefile_handles = [Patch(facecolor='none', edgecolor=color, label=label) for color, label in zip(colors, file_list)]\n", + " point_handles = [Patch(facecolor=color, edgecolor='none', label=f'{colur_name[val]}') for val, color in value_colors.items()]\n", + " all_handles = shapefile_handles + point_handles\n", + " # Add titles and labels if necessary\n", + " ax.set_title(f'{year[ax_index]} ')\n", + " if ax_index == 0 or ax_index == 2:\n", + " ax.set_ylabel('Latitude')\n", + " if ax_index >= 2:\n", + " ax.set_xlabel('Longitude')\n", + "\n", + " # Show the plot\n", + " ax.legend(handles=all_handles, loc='lower left')\n", + "\n", + "plt.tight_layout()\n", + "# plt.savefig(f'{output_path_general}map_{name}_{year[0]}_{durtation_num}.png', bbox_inches='tight')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "interpreter": { + "hash": "7d941b521942abff02888ea7873cca51c2aac5fb2f3b440dbf15a61d263ddb0d" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "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.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/book/tutorials/decision_trees/01.script/__init__.py b/book/tutorials/decision_trees/01.script/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/book/tutorials/decision_trees/01.script/evaluation_table.py b/book/tutorials/decision_trees/01.script/evaluation_table.py new file mode 100644 index 0000000..1ce9faa --- /dev/null +++ b/book/tutorials/decision_trees/01.script/evaluation_table.py @@ -0,0 +1,96 @@ +# This file created on 01/14/2024 by savalan + +# Import packages ============================== +# My Packages +from g_evaluation_metric import MAPE, RMSE, KGE, PBias +import pandas as pd +import numpy as np + +# Functions ============================== + +def evtab(Eval_DF_mine, prediction_columns, nhdreach, observation_column, mod): + + #get annual supply diffs + cfsday_AFday = 1.983 + + #Get RMSE from the model + rmse = RMSE(Eval_DF_mine, prediction_columns, observation_column) + + #Get Mean Absolute Percentage Error from the model + mape = MAPE(Eval_DF_mine, prediction_columns, observation_column) + + #Get Percent Bias from the model + pbias = PBias(Eval_DF_mine, prediction_columns, observation_column) + + #Get Kling-Gutz Efficiency from the model + kge = KGE(Eval_DF_mine, prediction_columns, observation_column) + + #Get Volumetric values + Eval_DF_mine.set_index('datetime', inplace = True, drop =True) + flowcols = [f"{mod}_flow", 'flow_cfs', 'NWM_flow'] + SupplyEval = Eval_DF_mine[flowcols].copy() + SupplyEval = SupplyEval*cfsday_AFday + #set up cumulative monthly values + SupplyEval['Year'] = SupplyEval.index.year + + for col_name in flowcols: + SupplyEval[col_name] = SupplyEval.groupby(['Year'])[col_name].cumsum() + + EOY_mod_vol_af = SupplyEval[f"{mod}_flow"].iloc[-1] + EOY_obs_vol_af = SupplyEval["flow_cfs"].iloc[-1] + EOY_nwm_vol_af = SupplyEval[f"NWM_flow"].iloc[-1] + NWM_vol_diff_af = EOY_nwm_vol_af - EOY_obs_vol_af + Mod_vol_diff_af = EOY_mod_vol_af - EOY_obs_vol_af + NWM_Perc_diff = (NWM_vol_diff_af/EOY_obs_vol_af)*100 + Mod_Perc_diff = (Mod_vol_diff_af/EOY_obs_vol_af)*100 + + #Get Performance Metrics from the model + Srmse = RMSE(SupplyEval, prediction_columns, observation_column) + Smape = MAPE(SupplyEval, prediction_columns, observation_column) + Spbias = PBias(SupplyEval, prediction_columns, observation_column) + Skge = KGE(SupplyEval, prediction_columns, observation_column) + + + # #save model performance + # sitestats = [Eval_DF_mine.iloc[0, 1], nhdreach, rmse[0], rmse[1], pbias[0], pbias[1], kge[0], kge[1], mape[0],mape[1]] + + + # Supplystats = [Eval_DF_mine.iloc[0, 1], nhdreach, Srmse[0], Srmse[1], Spbias[0], Spbias[1], Skge[0], Skge[1], Smape[0], + # Smape[1],EOY_obs_vol_af, EOY_nwm_vol_af,EOY_mod_vol_af,NWM_vol_diff_af,Mod_vol_diff_af, NWM_Perc_diff, Mod_Perc_diff ] + + sitestats = [Eval_DF_mine['station_id'].drop_duplicates()[0], nhdreach, rmse[0], rmse[1], pbias[0], pbias[1], kge[0], kge[1], mape[0],mape[1]] + + + Supplystats = [Eval_DF_mine['station_id'].drop_duplicates()[0], nhdreach, Srmse[0], Srmse[1], Spbias[0], Spbias[1], Skge[0], Skge[1], Smape[0], Smape[1],EOY_obs_vol_af, EOY_nwm_vol_af,EOY_mod_vol_af,NWM_vol_diff_af,Mod_vol_diff_af, NWM_Perc_diff, Mod_Perc_diff ] + + return sitestats, Supplystats + + +def EvalTable(yhat_test, data_test, model_name): + + + + df_eval = data_test.copy() + df_eval[f'{model_name}_flow'] = yhat_test + prediction_columns = ['NWM_flow', f"{model_name}_flow"] + observation_column = 'flow_cfs' + result_daily, result_cumulative = evtab(df_eval, prediction_columns, '10375648', observation_column, model_name) + #Evaluation columns for prediction time series + cols = ['USGSid', 'NHDPlusid', 'NWM_RMSE', f"{model_name}_RMSE", 'NWM_PBias', f"{model_name}_PBias", + 'NWM_KGE', f"{model_name}__KGE", 'NWM_MAPE', f"{model_name}_MAPE"] + + #Evaluation columns for accumulated supply time series + supcols = ['USGSid', 'NHDPlusid', 'NWM_RMSE', f"{model_name}_RMSE", 'NWM_PBias', f"{model_name}_PBias", + 'NWM_KGE', f"{model_name}__KGE", 'NWM_MAPE', f"{model_name}_MAPE", 'Obs_vol', 'NWM_vol', f"{model_name}_vol", + 'NWM_vol_err', f"{model_name}_vol_err", 'NWM_vol_Perc_diff', f"{model_name}_vol_Perc_diff"] + + #save model results + EvalDF_all = pd.DataFrame(np.array(result_daily).reshape(1, -1), columns=cols) + SupplyEvalDF_all = pd.DataFrame(np.array(result_cumulative).reshape(1, -1), columns=supcols) + EvalDF_all.iloc[:, 2:] = EvalDF_all.iloc[:, 2:].astype(float).round(2) + SupplyEvalDF_all.iloc[:, 2:] = SupplyEvalDF_all.iloc[:, 2:].astype(float).round(2) + # print("Model Performance for Daily cfs") + # display(EvalDF_all) + # print("Model Performance for Daily Accumulated Supply (Acre-Feet)") + # display(SupplyEvalDF_all) + return EvalDF_all, SupplyEvalDF_all, df_eval \ No newline at end of file diff --git a/book/tutorials/decision_trees/01.script/g_evaluation_metric.py b/book/tutorials/decision_trees/01.script/g_evaluation_metric.py new file mode 100644 index 0000000..ca916ce --- /dev/null +++ b/book/tutorials/decision_trees/01.script/g_evaluation_metric.py @@ -0,0 +1,69 @@ +# This file created on 01/13/2024 by savalan + +# Import packages ============================== +# Base Packages +import numpy as np + +# main packages +from sklearn.metrics import mean_squared_error +from sklearn.metrics import mean_absolute_percentage_error +import hydroeval as he +# Functions ============================== + +#class hem(obs, pred, metric): # evaluation metrics + +def RMSE(DF, predictions, observation): + R = [] + for pred in np.arange(0, len(predictions),1): + rmse = mean_squared_error(DF[observation], DF[predictions[pred]], squared=False) + R.append(rmse) + #print('RMSE for ', predictions[pred], ' is ', rmse, ' cfs') + return R + +def MAPE(DF, predictions, observation): + P =[] + for pred in np.arange(0, len(predictions),1): + mape = round(mean_absolute_percentage_error(DF[observation], DF[predictions[pred]])*100, 2) + P.append(mape) + #print('Mean Absolute Percentage Error for ', predictions[pred], ' is ', mape, '%') + return P + +def PBias(DF, predictions, observation): + PB = [] + for pred in np.arange(0, len(predictions),1): + pbias = he.evaluator(he.pbias, DF[predictions[pred]], DF[observation]) + pbias = round(pbias[0],2) + PB.append(pbias) + #print('Percentage Bias for ', predictions[pred], ' is ', pbias, '%') + return PB + +def KGE(DF, predictions, observation): + KG = [] + for pred in np.arange(0, len(predictions),1): + kge, r, alpha, beta = he.evaluator(he.kge, DF[predictions[pred]], DF[observation]) + kge = round(kge[0],2) + KG.append(kge) + #print('Kling-Glutz Efficiency for ', predictions[pred], ' is ', kge) + return KG + +# if 'r2' in metric: +# r2 = pow(np.corrcoef(obs, pred)[0, 1], 2) +# all_columns.append('r2') +# all_result.append(r2) +# if 'mae' in metric: +# mae = np.mean(np.abs(res)) +# all_columns.append('mae') +# all_result.append(mae) +# if 'mse' in metric: +# mse = np.mean(np.square(res)) +# all_columns.append('mse') +# all_result.append(mse) +# if 'rmse' in metric: +# rmse = np.sqrt(mse) +# all_columns.append('rmse') +# all_result.append(rmse) +# if 'nse' in metric: +# nse = 1 - ((pow((obs - pred), 2)).sum()) / ((pow((obs - obs.mean()), 2)).sum()) +# all_columns.append('nse') +# all_result.append(nse) + diff --git a/book/tutorials/decision_trees/02.input/final_input.parquet b/book/tutorials/decision_trees/02.input/final_input.parquet new file mode 100644 index 0000000..9e914be Binary files /dev/null and b/book/tutorials/decision_trees/02.input/final_input.parquet differ diff --git a/book/tutorials/decision_trees/02.input/shape/arrow.jpg b/book/tutorials/decision_trees/02.input/shape/arrow.jpg new file mode 100644 index 0000000..e2d671c Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/arrow.jpg differ diff --git a/book/tutorials/decision_trees/02.input/shape/arrow.png b/book/tutorials/decision_trees/02.input/shape/arrow.png new file mode 100644 index 0000000..7700556 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/arrow.png differ diff --git a/book/tutorials/decision_trees/02.input/shape/bear.cpg b/book/tutorials/decision_trees/02.input/shape/bear.cpg new file mode 100644 index 0000000..3ad133c --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/bear.cpg @@ -0,0 +1 @@ +UTF-8 \ No newline at end of file diff --git a/book/tutorials/decision_trees/02.input/shape/bear.dbf b/book/tutorials/decision_trees/02.input/shape/bear.dbf new file mode 100644 index 0000000..ce13365 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/bear.dbf differ diff --git a/book/tutorials/decision_trees/02.input/shape/bear.prj b/book/tutorials/decision_trees/02.input/shape/bear.prj new file mode 100644 index 0000000..5ded4bc --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/bear.prj @@ -0,0 +1 @@ +GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/book/tutorials/decision_trees/02.input/shape/bear.sbn b/book/tutorials/decision_trees/02.input/shape/bear.sbn new file mode 100644 index 0000000..b375016 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/bear.sbn differ diff --git a/book/tutorials/decision_trees/02.input/shape/bear.sbx b/book/tutorials/decision_trees/02.input/shape/bear.sbx new file mode 100644 index 0000000..8f6158f Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/bear.sbx differ diff --git a/book/tutorials/decision_trees/02.input/shape/bear.shp b/book/tutorials/decision_trees/02.input/shape/bear.shp new file mode 100644 index 0000000..39de473 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/bear.shp differ diff --git a/book/tutorials/decision_trees/02.input/shape/bear.shp.xml b/book/tutorials/decision_trees/02.input/shape/bear.shp.xml new file mode 100644 index 0000000..c17bb57 --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/bear.shp.xml @@ -0,0 +1,2553 @@ +U.S. Geological Survey (USGS)U.S. Department of Agriculture - Natural Resource Conservation Service (NRCS)U.S. Environmental Protection Agency (EPA)Other Federal, State, and local partners (see dataset specific metadata for details http://nhd.usgs.gov/wbd_metadata.html)20151216National Watershed Boundary Dataset (WBD)Vector Digital Data Setftp://rockyftp.cr.usgs.gov/vdelivery/Datasets/Staged/Hydrography/WBD/National/GDB/National_WBD.zipThe Watershed Boundary Dataset (WBD) is a comprehensive aggregated collection of hydrologic unit data consistent with the national criteria for delineation and resolution. It defines the areal extent of surface water drainage to a point except in coastal or lake front areas where there could be multiple outlets as stated by the "Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)" “Standard” (http://pubs.usgs.gov/tm/11/a3/). Watershed boundaries are determined solely upon science-based hydrologic principles, not favoring any administrative boundaries or special projects, nor particular program or agency. This dataset represents the hydrologic unit boundaries to the 12-digit (6th level) for the entire United States. Some areas may also include additional subdivisions representing the 14- and 16-digit hydrologic unit (HU). At a minimum, the HUs are delineated at 1:24,000-scale in the conterminous United States, 1:25,000-scale in Hawaii, Pacific basin and the Caribbean, and 1:63,360-scale in Alaska, meeting the National Map Accuracy Standards (NMAS). Higher resolution boundaries are being developed where partners and data exist and will be incorporated back into the WBD. WBD data are delivered as a dataset of polygons and corresponding lines that define the boundary of the polygon. WBD polygon attributes include hydrologic unit codes (HUC), size (in the form of acres and square kilometers), name, downstream hydrologic unit code, type of watershed, non-contributing areas, and flow modifications. The HUC describes where the unit is in the country and the level of the unit. WBD line attributes contain the highest level of hydrologic unit for each boundary, line source information and flow modifications.The intent of defining Hydrologic Units (HU) within the Watershed Boundary Dataset is to establish a base-line drainage boundary framework, accounting for all land and surface areas. Hydrologic units are intended to be used as a tool for water-resource management and planning activities particularly for site-specific and localized studies requiring a level of detail provided by large-scale map information. The WBD complements the National Hydrography Dataset (NHD) and supports numerous programmatic missions and activities including: watershed management, rehabilitation and enhancement, aquatic species conservation strategies, flood plain management and flood prevention, water-quality initiatives and programs, dam safety programs, fire assessment and management, resource inventory and assessment, water data analysis and water census.The WBD was produced and is maintained through a cooperative process involving state, federal and local partners. Process information for a specific state or region can be found within the state specific metadata located at http://nhd.usgs.gov/wbd_metdata.html. This metadata file has information for WBD features contained in the WBD feature dataset. This includes information about the 2-, 4-, 6-, 8-, 10-, 12-, 14-, 16-digit polygons and WBD_Line dataset. Users accessing the WBD via shapefile will need to search for the attribution related to that specific dataset.19802016publication dateCompleteAs needed-179.229655487179.85667473571.4395725902-14.4246950943ISO 19115 Topic CategoryinlandWatersWatershed Boundary DatasetWBDHydrologic UnitsHydrologic Unit CodeHUCRegionSub-regionBasinSub-basinWatershedSubwatershed2-digit4-digit6-digit8-digit10-digit12-digit14-digit16-digitU.S. Department of Commerce, 1977, Countries, dependencies, areas of special sovereignty, and their principal administrative divisions (Federal Information Processing Standards 10-3): Washington, D.C., National Institute of Standards and Technology.USUnited StatesNoneThe distributor shall not be held liable for improper or incorrect use of this data, based on the description of appropriate/inappropriate uses described in this metadata document. It is strongly recommended that this data is directly acquired from the distributor and not indirectly through other sources which may have changed the data in some way. These data should not be used at scales greater than 1:24,000 for the purpose of identifying hydrographic watershed boundary feature locations in the United States. The Watershed Boundary Dataset is public information and may be interpreted by all organizations, agencies, units of government, or others based on needs; however, they are responsible for the appropriate application of the data. Photographic or digital enlargement of these maps to scales greater than that at which they were originally delineated can result in misrepresentation of the data. If enlarged, the maps will not include the fine detail that would be appropriate for mapping at the small scale. Digital data files are periodically updated and users are responsible for obtaining the latest version of the data from the source distributor. Acknowledgment of the origination agencies would be appreciated in products derived from these data.U.S. Geological SurveyMailing
U.S. Geological Survey, National Geospatial Technical Operations Center, P.O. Box 25046
DenverCO80225
1-877-275-8747bpgeo@usgs.gov
ftp://rockyftp.cr.usgs.gov/vdelivery/Datasets/Staged/Hydrography/WBD/National/GDB/National_WBD.jpgThumbnail JPG imageJPEGFunding for the Watershed Boundary Dataset (WBD) was provided by the USDA-NRCS, USGS and EPA along with other federal, state and local agenciesies. Representatives from many agencies contributed a substantial amount of time and salary towards quality review and updating of the dataset in order to meet the WBD Standards. Acknowledgment of the originating agencies would be appreciated in products derived from these data. See dataset specific metadata for further informationEnvironment as of Metadata Creation: Microsoft Windows 7 Version 6.1 (Build 7601) Service Pack 1; Esri ArcGIS 10.2.2 (Build 3552) Service Pack N/A (Build N/A)
All attempts were made to verify 100% of the initially required attributes using 24K digital raster graphics (DRGs) as the base. Additional datasets, like the Geographic Names Information System (GNIS) and NHD, may also have been used to verify attribution. The accuracy of this data is dependent on the level of detail of the source material and the interpretation procedures for capturing that source. Other sources and methods may have been used to create or update WBD data. In some cases, additional information may be found in the WBD Metadata table.Lines, polygons and nodes conform to topological rules. Lines intersect only at nodes, and all nodes anchor the ends of lines. Lines do not overshoot or undershoot other lines where they are supposed to meet. There are no duplicate lines. Lines bound polygons. Gaps and overlaps among polygons do not exist. All polygons close.The WBD contains completed polygons at every level for the United States. All required fields within the polygon and line datasets are populated. Some of these fields may be populated with a zeor "0". The lines coincident with the international boundary are assigned a HULevel value of 0. These cannot be attributed until the adjacent international units are added at which point the highest level of hydrologic unit can be determined. A detailed description of delineation methods and full attribute definitions can be found in the WBD Standards. Users are advised to carefully read the metadata record for additional details.The WBD was produced using a variety of digital spatial data including but not limited to Digital Raster Graphics (DRGs), aerial imagery and digital elevation models (DEM). It is assumed these data are mapped at approximately 1:24,000-scale and contain a minimum inherent error of +/- 40 feet. It should be noted that the WBD is undergoing continuous update as source data improves and as hydrologic interpretations are refined. While general rules of hydrology were used in delineation, locations of boundaries may be subjective in some cases. Additional information may be found in the WBD Metadata table.A formal accuracy assessment of the vertical positional information in the data set has either not been conducted, or is not applicable.U.S. Geological SurveyUnknown7.5 Minute Topographic Quadrangle SheetsPaper MapReston, VirginiaU.S. Geological Survey24000Digital and/or Hardcopy Resources18842006Publication dateUSGSTopoBase information for hydrologic unit delineation.U.S. Geological Survey1999U.S. Geological Survey Digital Raster Graphic (DRG)Raster Digital DataUnknownU.S. Geological Surveyhttp://datagateway.nrcs.usda.gov24000Digital and/or Hardcopy ResourcesUnknown1999Publication dateUSGSDRGBase information for hydrologic unit delineation.U.S. Geological SurveyUnknownDigital Orthophoto QuadsRaster Digital DataUnknownU.S. Geological Surveyhttp://datagateway.nrcs.usda.gov24000Digital and/or Hardcopy ResourcesUnknown20100325USGSDOQAerial imagery used for reference in watershed boundary delineationU.S. Geological Survey1994250K Hydrologic Unit BoundariesVector Digital DataReston, VirginiaU.S. Geological Surveyhttp://water.usgs.gov/lookup/getspatial?huc250k250000Digital and/or Hardcopy ResourcesUnknown1994Publication dateHUC250KReference dataset for the 2-, 4-, 6- and 8-digit hydrologic unitsU.S. Geological Survey2016National Hydrography DatasetVector Digital DataDenver, COU.S. Geological Surveyhttp://nhd.usgs.gov/data.html24000Digital and/or Hardcopy ResourcesunknownPublication dateNHDHydrography data used for reference in watershed boundary delineation processThe original hydrologic unit boundaries were hand-digitized on a digitizing table from the USGS 7.5 minute quadrangles. This process occurred over a span of approximately 20 years from 1980 to 2000.2000The original dataset was reviewed by USGS personnel using on-screen techniques with DRGs as the base map. All hydrologic units within the dataset that were less than 3,000 acres were dissolved out.2003The new WBD (2005-2011) was reviewed on-screen by USGS, EPA, or NRCS personnel using DRGs and DOQss as base maps. Hydrologic Units that were less than 10,000 acres (for the 12-digit units) and 40,000 acres (for the 10-digit units) were reviewed and if possible were dissolved out. Along the coastal areas, standard watersheds that fell within the federal guideline's size criteria (12-digit: 10,000-40,000 acres, 10-digit: 40,000-250,000 acres) were delineated. If possible the remaining frontals were left as their own units. Frontals that did not meet the size criteria were grouped together with other frontals within the overall 8-digit or 10-digit unit. Hydrologic units that were greater than 40,000 acres (12-digit units) and 250,000 acres (10-digit units) were reviewed. If possible these units where then subdivided into smaller units that met the size criteria. In some cases, additional breaks within the unit would not have made sense or have been very useful. For example: When the majority of the unit was made up by a major waterbody feature such as a lake or reservoir and the surrounding tributaries were too small to delineate as their own unit. In these instances the unit was left big.2011From 2005 to 2011, hydrologic units from surrounding states were used to edgematch watershed boundaries as they were developed.2011From 2005 to 2011, original dataset attribution was reviewed and revised to reflect the updates and changes made to the dataset. These revisions to the attribution were also made to ensure that the dataset met the Federal Standards for Delineation of Hydrologic Unit Boundaries. The NHD was used during this process to help with the naming and downstream coding of each unit. In some instances there were name discrepancies between the NHD and what was printed on the DRGs. In these instances the DRGs were used instead of the NHD.2011First draft of metadata created by NRCS using METADATA Editor in ArcCatalog ver. 9.1 sp.1 hu12_geo8320070124The following edits (2012 - present) were completed during national quality control review performed by the WBD national technical edit team in the USGS Utah Water Science Center. Updates may not affect all hydrologic units. + Edits by USGS Water Science Center in Salt Lake City, Utah. + 1. Reviewed all the ToHUC codes within the 12-digit polygons and made updates as necessary. All updates were coordinated and approved by WBD state stewards. + 2. Updated Linesource code (misspellings, removed extra spaces etc.) where needed to match Federal Standards + 3. Updated and corrected errors in the HU_Mod fields where needed to match Federal Standards. + 4. Updated State field for Canada (CN) and Mexico (MX) based on the new version of the Standards + 5. Reviewed all the Names related to each 10-digit and 12-digit polygon and made updates as necessary. All updates were coordinated and approved by the WBD State stewards + 6. Checked and updated HU_Level field where HU_Level = 99 or = null + 7. Updated the 8-digit outer boundary for units flowing into ocean units by extending the boundary offshore to the 3 nautical mile limit provided by NOAA. All updates were coordinated and approved by the WBD state stewards2016The following are 8-digit updates (from 2009-2016) that were approved by the WBD National Technical Coordinators as required by the WBD Standards. These may include name/code updates or boundary updates that were implemented in the WBD at some point during the creation or maintenance of the data. + Alaska: + Legacy 19020401 Anchorage boundary has changed by about 20% of its area. + 19020203 (Prince William Sound) + Added a new subbasin unit for Prince William Sound. + Adjusted huc8 boundaries between 19020104, 19020201 and 19020202 to better reflect surface water flow and to assist with delineating the Prince William Sound as a new unit. + Legacy 19020302 Upper Kenai Peninsula has changed by about 20% of its area. + Legacy 19030304 Wood River was subdivided which has created a reduced area for the 19030304 Wood River and put Igushik River into its own hydrologic unit with a new code of 19030306. + Legacy 19030402 Farewell Lake was divided into 19030406 Middle Flork Kuskokwim River and 19030407 South Fork Kuskokwim River. + Legacy 19040204 Black River was subdivided. 19040204 will remain the Black River, and a new unit 19040206 Grass River is broken out. + 19040502: + The outlet for subbasin 19040502 was moved downstream from the current break across Tanana River at a confluence with a minor tributary to the more prominent confluence with Robertson River. This edit resulted in the addition of 2 subwatersheds to 19040502 and the removal of 2 watersheds from 19040503. + Legacy 19040504 Delta River linework changed significantly. + The legacy 19040504 had 3 separate outlets; Delta River, Delta Creek and Little Delta River. + The boundary was adjusted so that 19040504 contained just the Delta River as a standard unit. + The Delta Creek and Little Delta River where moved into 19040507. + Legacy 19040507 Tanana Flats Linework changed significantly. + 19040606 - Legacy boundary for 19040606 had the outlet at a location across the Huslia River downstream from the outlet of the South Fork Huslia River. The boundary was adjusted downstream to the major confluence where the Huslia River drains into the Koyukuk River, thus creating a standard HUC8 for the Huslia River. + 1905: + 19050202, 19050203, 19050301, 19050304, 19050403 + 19050202’s boundary was adjusted so that this unit contained all frontal drainage areas flowing into the southern portion of Kotzebue Sound. + 19050203’s boundary was adjusted to that the unit included Eschscholtz Bay and all of the drainage areas flowing into it. + 19050301’s boundary was adjusted so that this unit has one outlet and includes Selawik Lake. The frontal drainages flowing into Hotham Inlet were moved into unit 19050304. + 19050304’s boundary was adjusted so that the unit included Hotham Inlet and the frontal drainages flowing into it. + 19050403’s boundary was adjusted to a buffer distance of 1000 meters off shore. + 19050500 - Kotzebue Sound: + Added a new HUC8 unit to AK WBD for Kotzebue Sound. Inner coastal units that ended at the shore line were extended offshore to a 1000 meter buffer distance. + Legacy 19060204 Ikpikpuk River absorbed Inaru River from Legacy 19060202 + Legacy unit 19060202 contained 2 different stream systems flowing into 2 different bodies of water. + The Inaru River flows into Admiralty Bay while the Kugrua River and the other small frontal drainages flows into the Chukchi Sea. + The boundary was adjusted so that flow into Admiralty Bay/Dease Inlet was separate from flow into Chukchi Sea. The Inaru River, Admiralty Bay/Dease Inlet and all associated frontal drainages were added to subbasin 19060204. + New Subbasin 19060206 is being named Admiralty Bay-Dease Inlet. This area use to be part of Subbasin 19060204 + 19020800 Cook Inlet is a new hydrologic unit as recommended by the Alaska in state stakeholders. + + 2011 - These updates where proposed by Forest Service partners within the Tongass National Forest. When major changes are made to the HUC8 container (i.e. the container is subdivided into multiple units) the national protocol has been to retire the old HUC8 code and name and assign new codes and names to the updates units + 19010202 (Kuiu-Kupreanof-Mitkof-Etolin-Zarembo-Wrangell) is being retired and 2 new HUC8 units were formed. + Kuiu Island, Mitkof Island and Kupreanof Island were split out into their own 8-digit unit + HUC8 - 19010210 + HU8_Name – Kuiu-Kupreanof-Mitkof Islands + Zarembo Island, Wrangell Island and Etolin Island were subdivided into their own 8 digit unit + HUC8 – 19010209 + HU8_Name – Etolin-Zarembo-Wrangell Islands + + 19010203 (Baranof-Chichagof Islands)19010203 was retired. 19010203 was subdivided 3 new units; 2 island units and 1 channel unit. + Chichagof Island was split out into its own 8-digit unit + HUC8 – 19010211 + HU8_Name – Chichagof Island + Baranof and Kruzof Islands were subdivided into their own 8-digit unit + HUC8 – 19010212 + HU8_Name – Baranof Island + Created a new water hydrologic unit for the channel between Chichagof Island and Baranof/Kruzof Islands. This new water unit would become a HUC10 unit within the "Water" subbasin 19010500. + HUC10 – 1901050011 + HUC10_Name - Peril Strait + Because of the varying width of the channel the boundary was graduated from a 1,000 meter buffer to 100 meter buffer from the Low Tide Shoreline. The Low Tide Shoreline was provided by the Forest Service. + A 1,000 meter buffer was used in the open channel to match the buffer distance used within the rest of SE AK WBD. There is a narrow portion of the channel where the boundary was gradually reduced from the 1,000 meter buffer to a 100 meter buffer. + + 2014 - Updated Alaska’s region 1904 based on a request from NHD program and approved by state partners. 1904 was subdivided 3 new 4-digit hydrologic units. + The new units are + 1907 – Upper Yukon River + 190701 – Headwaters Yukon River + 1908 – Middle Yukon River + 1909 – Lower Yukon River + + 2016 - Updates to AK 8-digit units based on harmonization effort with Canada + 19070504 (Eagle Creek-Yukon River) is being subdivided 2 new 8-digit hydrologic units. Original code and name are being retired. + HUC8 - 19070505 (Tatonduk River-Yukon River) + HUC8 - 19070506 (Charley River-Yukon River) + + 19060503 (Beaufort Lagoon) is being subdivided 3 new 8-digit hydrologic units. Original code and name are being retired. + HUC8 - 19060504 (Kongakuat River-Beaufort Lagoon) + HUC8 - 19060505 (Firth River) + HUC8 - 19060506 (Babbage River) is completely within Canada Yukon Territory + + Arizona: + Legacy 15010009 Fort Pierce Wash name changed to Fort Pearce Wash to account for misspell. + Legacy 15010007 Hualapai Wash name should change as the wash is now in the adjacent Subbasin. Changed to Red Lake + + California: + Legacy 18010109 Gualala-Salmon had an area the size of several 12-digit HUs that has been aggregated into the adjacent legacy 18050005 Tomales-Drake Bays as a result of coastal implementation. This is approved by the in-state WBD Steward and T3.Legacy 18030012 and new 18030012 Tulare-Buena Vista Lakes changed to Tulare Lake Bed as the boundary has changed so significantly that Buena Vista Lakes are no longer in the adjusted hydrologic unit. + Legacy 18040001 and new 18040007 name changed from Upper Chowchilla-Upper Fresno to Fresno River as the Chowchilla is no longer in the adjusted hydrologic unit. + Legacy 18040002 and new 18040002 name changed from Middle San Joaquin-Lower Merced-Lower Stanislaus to Lower San Joaquin River as Merced and Stanislaus Rivers are no longer in the adjusted hydrologic unit. + Legacy 18050006 San Francisco-Coastal South will absorb 4 coastal 12-digit HUs from legacy 18060001 San Lorenzo-Soquel as a result of coastal implementation. This is approved by the in-state WBD Steward and the WBD National Technical Coordinators (NTC) + Legacy 18060006 Central Coastal will absorb an area the size of 6 12-digit HU’s from legacy 18060012 Carmel which all drains directly to the Pacific Ocean. This is approved by the in-state WBD Steward and the WBD National Technical Coordinators (NTC) + Portions of legacy 18060011, 18060012, and part of 19060001 will become a new subbasin accounting for all of these frontal pieces. It will be coded 18060015 and named Monterey Bay. This is approved by the in-state WBD Steward and the WBD National Technical Coordinators (NTC) + Legacy 18060013 Santa Barbara Coastal had an area the size of one 12-digit HU which will be aggregated with legacy 18070101 Ventura as a result of coastal implementation. This is approved by the in-state WBD Steward and the WBD National Technical Coordinators (NTC) + Legacy 18070104 Santa Monica Bay had an area the size of several 12-digit HUs which will be aggregated with legacy 18070106 San Gabriel as a result of coastal implementation. This is approved by the in-state WBD Steward and WBD National Technical Coordinators (NTC) + Legacy 18100200 has now been subdivide into 18100201, 18100202, 18100203, and 18100204. + The legacy name for 180100200 has been retained as the Salton Sea for new code 18100204. New names for the other subdivisions have been reviewed and accepted as follows: + 18100201 Whitewater River + 18100202 Carrizo Creek + 18100203 San Felipe Creek + Legacy 18040002 and new 18040051 name Middle San Joaquin-Lower Merced-Lower Stanislaus was change to Rock Creek-French Camp Slough. + Legacy 18020124 Honcut Headwaters name and code have been retired. It was absorbed in to legacy 18020106 Lower Feather to form the new 18020159. WBD National Technical Coordinators (NTC) recommends the name retain the combined legacy names of Honcut Headwaters-Lower Feather. + Legacy 18020120 Upper Butte and legacy 18020105 Lower Butte have been retired. + The two hydrologic units were combined in to the new accepted code and name of 18020158 Butte Creek. + Legacy 18020119 Mill-Big Chico, 18020103 Sacramento-Lower Thomes, and 18020114 Upper Elder Thomes have been retired. The accepted names and codes for the newly delineated hydrologic units to replace those areas are 18020157 Big Chico Creek-Sacramento River, 18020156 Thomes Creek-Sacramento River, and 18020155 Paynes Creek-Sacramento River. + The following legacy names and codes have been retired: 18020113 Cottonwood Headwaters, 18020102 Lower Cottonwood, 18020101 Sacramento-Lower Cow-Lower Clear, 18020118 Upper Cow-Battle, and 18020112 Sacramento-Upper Clear. The accepted codes for the newly delineated hydrologic units that replace those areas will be 18020151-18020154. + The approved names are: + 18020151 Cow Creek + 18020152 Cottonwood Creek + 18020153 Battle Creek + 18020154 Clear Creek-Sacramento River + 18010111 code and name have been retired and the area has been subdivided. A portion is in 18010109 Gualala-Salmon, and the other portion in 18050005 Tomales-Drake Bays + 18020107 code and name have been retired and the area is now included with 18020125 Upper Yuba + 18020108 code and name have been retired and the area is now included with 18020126 Upper Bear + 18020110 code and name have been retired and the area is now included with 18020116 Upper Cache + 18030008 code and name have been retired and the area is now included with 18030012 Tulare Lake Bed + 18030011 code and name have been retired and the area has been subdivided. A portion is in 18030012 Tulare Lake Bed, and the other portion in 18030009 Upper Dry + 18040004 code and name have been retired and the area is now part of 18040011 Upper Calaveras California + 18040005 code and name have been retired and the area is now part of 18040003 San Joaquin Delta, 18040012, 18040012 Upper Mokelumne, and 18040003 Upper Cosumnes + 18020109 code and name have been retired and the area is now part of 18020163 Lower Sacramento + 18020117 code and name have been retired and the area is now part of 18020162 Upper Putah + 18060001 code and name have been retired, and the areas are now subdivided between 18050006 San Francisco Coastal South and 18060015 Monterey Bay + 18060011 code and name have been retired and now is subdivided between 18060015 Monterey Bay and 18060005 Salinas + 18060012 code and name have been retired and the area is now part of 18060006 Central Coast and 18060015 Monterey Bay + + Colorado: + Legacy 14010006 Parachute-Roan name and code have been retired. This area has been combined with 14010005 Colorado Headwaters-Plateau. + + Connecticut: + 01100007 code and name have been retired and the area is now part of 0110004 Quinnipiac + + Delaware: + 02060007 code and name have been retired and this area now included with 02080110 Tangier + 02060008 code and name have been retired and this area now included with 02080109 Nanticoke + 02060009 code and name have been retired and this area is now part of 02080111 Pokomoke-Western Lower Delmarva and 02080110 Tangier + 02060010 code and name have been retired and this area is now part of 02040303 Chincoteague + + Florida: + Legacy 03090202 Everglades has been modified as follows: + The largest part of 03090202 Everglades carries the legacy code and name. + Subdivided out new Subbasin 03090206 Florida Southeast Coast + Combined additional smaller portions of 03090202 with adjacent Subbasins. + + Louisiana: + 2009 - USGS Water Science Center, Salt Lake City, UT. Recoded all HUC12 codes and DS codes for 08080100 Atchafalaya to 08080101 Atchafalaya. 08080101 is the correct code. During the development of the WBD the 12-digit hydrologic units were miscoded as 08080100. + + Maine + Updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details. + + Massachusetts: + 01070002 is retained for the headwaters of this original code, but ¾ of the original area is now coded 01070006. The area now coded 01070006 retained the original name for the area of legacy 01070002 and is called Merrimack, whereas 01070002 is not called Winnipesaukee River (other state documentation supporting this decision) + + New Hampshire: + Legacy 01070002 Merrimack was subdivided in to 01070002 Merrimack to the North and 01070006 Merrimack River to the South. The technical team requests that the portion to the South retain the legacy code and name of 01070002, Merrimack, and that the northern hydrologic unit receive the code and name 01070006 Winnipesaukee River. There is no Merrimack River in the northern portion and the southern portion most closely resembles the legacy delineation. + + Additional updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details + + New York: + Legacy 04150307 English-Salmon was subdivided into 04150307 Salmon and 04150308 Chateaugay-English. The Technical Team accepts this change. + + 2010- Edits were made to Lake Champlain Basin moving it from Region 02 to Region 04. Update to delineation data in Lake Champlain area on the US side and Canadian side. All lines within Canada are draft delineations only. These boundaries were based on Canada's 1:50,000 National Hydrography Network Work Units or were delineated using either 1:50,000 scale topos or CDED elevation data. These boundaries have not been fully reviewed or approved by either the Canadian federal or provincial agencies and are subject to change. Border polygons are based off of these internal boundaries within Canada and so are also subject to change within Canada. Edits made by USGS Salt Lake City, Water Science Center: to the Lake Champlain and surrounding subbasins to remove all shoreline representations from the WBD. The codes, DS codes and names where updated where necessary. + + 02010004 name and code have been retired, and this area was subdivided, part is in 04150404 Ausable River and part in 04150408 Lake Champlain. + 02010006 name and code have been retired and this area was subdivided. Part is in 04150406 Saranac River and part is in 04150408 Lake Champlain. + 02010001 name and code have been retired and this area was subdivided into 04150401 Mettawee River and 04150408 Lake Champlain + + The new Lake Champlain unit 04150408 is made up of parts of original HUC250K units 02010001, 02010002, 02010003, 02010004, 02010005, 02010006 and 02010007 + + Additional updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details + + North Carolina: + Legacy subbasin 03030001 and legacy subbasin 03020106 have been combined and recommended for acceptance as a new 6-digit Basin 030203 Onslow Bay. + Legacy Subbasin 03030001 New has been recoded and renamed to 03020302 New River. The technical team accepts the new code and name. + Legacy Subbasin 03020106 Bogue-Core Sounds has been recoded and renamed to 03020301 White Oak River. The technical team accepts the new code and name. + 03040207 code and name are still in use, but the portion that stretches along the coast has been broken out to a new 03040208 Coastal Carolina + + North Dakota: + Legacy 10160007 East Missouri Coteau, changed to North Fork Snake as that is a better hydrologic representation of the hydrologic unit. + Legacy 10170103 South Big Sioux Coteau name changed to Lake Thompson + Legacy 10170201 Middle Big Sioux Coteau name changed to Upper Big Sioux + Legacy 10170202 Upper Big Sioux name changed to Middle Big Sioux + Because legacy 10170203 Lower Big Sioux should stay the same, it doesn’t make sense not to have a middle and an upper. Although the boundaries have significantly relocated, it seem like most viable option is to retain the Upper, Middle, Lower naming convention. + + Additional updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details + + Oregon: + Legacy 17100304 Coos was subdivided into 17100304 Coos to the north and 17100306 Sixes to the south. The Technical team accepts this change. + + South Carolina: + Legacy 03040207 Carolina Coastal-Sampit was subdivided into a southern portion called 03040207 Carolina Coastal-Sampit and a northern portion newly coded and named 03040208 Coastal Carolina. The technical team recognizes this as an acceptable solution, however, future coastal delineations may require additional modification. + Legacy 03050202 South Carolina Coastal has now been subdivided into subbasins 03050202 South Carolina Coastal and 03050209 Bulls Bay with an additional portion of 03050202 being aggregated in with legacy 03050201 + Legacy 03050208 Broad-St. Helena has had the following modifications which the NTC concurs with: + 03050208 Broad-St. Helena code and name retained into a much smaller unit capturing only the Broad-St. Helena Rivers + Subdivided into new 03060110 Calibogue Sound-Wright River, and now part of the adjacent Subregion to the south. + Subdivided into new 03050210 St. Helena Island portion combined with 03050207 Salkehatchie. + Legacy 03050205 name is changed to Four Hole Swamp (from Edisto...this name was flipped with the hydrologic unit the water feature resides in). The WBD National Technical Team recommended that this name not be reused as it has been historically assigned to 03050206, but all in state interagency folks felt strongly that it should be reused as that is by far the predominant feature for the HU. Reports since 2005 reflect this. + Legacy 03050206 name is changed to Edisto River to reflect the major hydrologic feature. + + South Dakota: + 2009 - Edits made by in-state data steward; all of sub-basin 10160010 (now retired) was recoded to 10160011 (Lower James); In addition to the recoding of this 8-digit level unit in the James Basin, this group of edits primarily consisted of minor corrections to linework and 12-digit downstream codes, populating ncontrb_A fields of selected 12-digit units, and tweaking selected 5th- and 6th-level unit names to facilitate merging with GNIS. + + Texas: + Legacy13070008 Lower Pecos was subdivided into a northern and southern portion. The northern portion retains the 13070008 code but name should be Pecos. The new subdivided 13070012 hydrologic unit should carry the legacy name Lower Pecos. + Legacy 13090002 Lower Rio Grande is missing from the current WBD. + + Vermont: + Updated 01110000 from Region 01 to Region 04 and is now 04150500 (St. Francois River). Craig Johnston (USGS) pointed out that this unit contains the St. Francois River which flows up into Canada and then dumps into the St Lawrence River. Region 01 is Maine Coastal drainage's while region 04 is St. Lawrence drainage's, so this unit really belongs in region 04. + + 2010- Edits were made to Lake Champlain Basin moving it from Region 02 to Region 04. Update to delineation data in Lake Champlain area on the US side and Canadian side. All lines within Canada are draft delineations only. These boundaries were based on Canada's 1:50,000 National Hydrography Network Work Units or were delineated using either 1:50,000 scale topos or CDED elevation data. These boundaries have not been fully reviewed or approved by either the Canadian federal or provincial agencies and are subject to change. Border polygons are based off of these internal boundaries within Canada and so are also subject to change within Canada. Edits made by USGS Salt Lake City, Water Science Center: to the Lake Champlain and surrounding subbasins to remove all shoreline representations from the WBD. The codes, DS codes and names where updated where necessary. + + 02010001 name and code have been retired and this area was subdivided into 04150401 Mettawee River and 04150408 Lake Champlain. + 02010002 name and code have been retired and this area was subdivided into 04150402 Otter Creek and 04150408 Lake Champlain. + 02010003 name and code have been retired and this area was subdivided into 04150403 Winooski River and 04150408 Lake Champlain. + 02010005 name and code have been retired and this area was subdivided into 04150405 Lamoille River and 04150408 Lake Champlain. + 02010007 name and code have been retired and this area was subdivided into 04150407 Missiquoi River and 04150408 Lake Champlain. + + The new Lake Champlain unit 04150408 is made up of parts of original HUC250K units 02010001, 02010002, 02010003, 02010004, 02010005, 02010006 and 02010007. + + Additional updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details + + Wisconsin: + Legacy 07090001Upper Rock keeps the same code and name but the original hydrologic unit delineation changed significantly. + Legacy 07090002 Crawfish keeps the same code and is renamed to Middle Rock. The original hydrologic unit delineation changed significantly.2016Below is a list of updates (from 2011 to 2016) resulting from harmonization work with Canada. + Alaska: + Legacy 19010101 Southeast Mainland name and code were retired and the area subdivided into four units. New codes and names are as follows and accepted by the National Technical Team and approved with Canadian and Alaska partners (USFS): + 19010104 Bradfield Canal + 19010105 Burroughs Bay + 19010106 Headwaters Portland Canal + 19010107 Outlet Portland Canal + Legacy 19010201 Mainland had a portion broken out. 19010201 will be preserved and the small piece broekn out in order to harmonize with Canada. The smaller piece will have the new code 19010205 and the name will be Lower Iskut. + Revised again 5/31/11: 19010201 Mainland was broken into three new units + 19010206 Holkham Bay + 19010207 Stikine River + 19010208 Thomas Bay + Legacy 19010301 Lynn Canal now has the Taku River broken out to accommodate Canada. Taku River will be code 19010304. The National Technical Coordinators (NTC) accepts this. Revised again 5/31/11:(AK group consulted along with Pete Steeves, Kim Jones, Stephen Daw, Karen Hanson): + 19070101 Atlin Lake was broken out of the legacy Lynn Canal 19010301 and is part of the newly accepted Subregion 1907 + Legacy 19010302 Glacier Bay was subdivided along the ridge separating out the ocean flow. The unit broken out is: + 19010406 Palma Bay (this unit also includes a portion of the original 19010401) + Note: Legacy 19010302 Glacier Bay will be retained although the area is now smaller. Other options didn’t make as much sense. + + Legacy 19010303 Chilkat-Skagway Rivers was subdivided into: + 19070102 Bennett Lake + 19070103 Tagish Lake + 19070104 Takhini River + Note: 19010303 Chilkat-Sakgway Rivers is retained + + Legacy 19010401 Yakutat Bay name and code retired and the area subdivided into 4 new units. New codes and names are as follows + 19010403 Tatshenshini River + 19010404 Alsek River + 19010405 Yakutat Bay-Gulf of Alaska + 19010406 Palma Bay (This new unit also includes a portion of the original 19010302) + + Idaho and Washington - + 2013 - The Columbia River Basin and Puget Sound Coastal area was updated to include the harmonized 8-, 10, and 12-digit hydrologic units within Canada. This harmonized data was created with contributions from US and Canadian Federal, State, Provincial and local partners. The British Columbia 20K Fresh Water Atlas watershed data and DEM data were used to create the units within Canada. Border units were updated through a review/agreement process with local and state/provincial partners using the best available data (DEM, DRG, Imagery, Field Verification). + During the harmonization effort there were some 8-digit updates that were agreed to. + Legacy 17010101 Upper Kootenai name will change to Middle Kootenai to coordinate with Canada since there is an Upper Kootenay solely in Canada. + Legacy 17010101 Upper Kootenai boundary changed slightly. The WBD Technical Team recommends retaining the legacy name and code. + A new subbasin was created as a result of the international border harmonization which slightly goes into the U.S. (the portion of 17010101 referenced above). The WBD Technical Team recommends coding this unit with the next down sequential code which would be 17010106 and using the name that Canada refers to this hydrologic unit as “Elk”. + 17110001 legacy name “Fraser” is being changed to “Sumas River” to match with Canada, and because the Fraser River doesn’t flow through this unit. + + Montana: + 1001 flows into Canada and the Saskatchewan River and not into the Missouri River as originally thought. As such this 4-digit hydrologic units was moved from region 10 to 09. + 0904 - Saskatchewan River + 090400- Upper South Saskatchewan River (This matches the Canadian FDA at the WSCSDA level (sub drainage area)). + 10010001 name and code have been retired, and this area is now 09040002 Belly + 10010002 name and code have been retired, and this area is now 09040001 St. Marys + + Minnesota: + 2014 - Rainy River Basin was updated to include the harmonized 8-, 10- and 12-digit hydrologic units with Canada. This harmonized data was created over a 6 month time period with cooperation from Federal, State, Provincial and Local Partners. + Some of the boundaries within MN were updated using the MN LiDAR data. The MN LiDAR was also used in the creation of boundaries within Canada when the LiDAR data overlapped into Canada. The other boundaries within Canada were generated using the province of Ontario’s 20K DEM and Hydrography data. + There were some 8-digit updates as a result of the harmonization effort. + 09030004 Upper Rainy has been retired + 09030004 is now a part of 09030008 the Lower Rainy + 2 new 8-digit units were broken out in Canada + 09030010 – Big Turtle River-Rainy Lake + 09030011 – Shoal Lake + + North Dakota: + Legacy 09020313 Pembina was subdivided into two new units. + The legacy name and code were retired. + The new codes and names are: + 09020315 Upper Pembina River + 09020316 Lower Pembina River + + 2014- Souris River Basin was updated to include the harmonized 8-, 10- and 12-digit hydrologic units with Canada. This harmonized data was created over a 6 month time period with cooperation from Federal, State, Provincial and Local Partners. + There were some 8-digit updates as a result of the harmonization effort. + Legacy 09010001 Upper Souris has now been subdivided. That code and name have been retired and the new units are: + 09010006 Long Creek + 09010007 Headwaters Souris River + 09010008 Moose Mountain Creek-Souris River + + North Dakota and Minnesotta: Red River Basin + Legacy 09020311 Lower Red name is being changed to Middle Red in order to harmonize with Canada. Lower Red is the Basin name for this entire area but the impact to change at that level isn’t known so won’t change. + + 2016 - Red River Basin was updated to include the harmonized 8-, 10-, and 12-digit hydrologic units within Canada. Some of the boundaries within MN and ND were updated using Lidar data. Lidar data was also used in the development of hydrological units within Canada. Where Lidar data did not exist the province of Manitoba provided either 1:20,000 scale or 1:50,000 scale digital elevation data for boundary delineations. + + Maine + All HUC8 boundaries were updated with the Harmonized US/CAN border into Canada. + Coding was updated as needed. + 01010001 was subdivided into 6 new units. + 01010001 code retired + 01010001 HUC8 name retired (Upper St. John) + New codes and HUC8 names + 01010006 – Headwaters Saint John River + 01010007 – Big Black River-Saint John River + 01010008 – St. Francis River-Saint John River + 01010009 – Little River-Saint John River + 01010010 – Becaguimec Stream-Saint John River (This unit now contains a portion of the original 01010005) + 01010011 – Keswick River-Saint John River + + 01010004 - Boundary within Canada was updated with harmonized boundary. + 01010005 - Boundary was updated with US/CAN harmonized boundary. A small portion of 01010005 was moved into the new 01010010 so that 01010005 is a standard HUC 8 unit for the Meduxnekeag River. + 01020001 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. + 01030001 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. + 01030002 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. + 01040001 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. + 01050001 - Boundary was updated with US/CAN harmonized boundary. This boundary was developed during the initial St. Croix pilot and includes updates within the US as well as Canada. Coding left as is + 01050002 - The harmonized boundary for 01050004 required updates to 01050002. + A portion of 01050002 was moved to 01050004 to accommodate the new harmonized boundary. + This required re-coding of the entire 01050002. + 01050004 - Boundary was updated with US/CAN harmonized boundary. A portion of 01050002 was moved into this unit. Codes were updated to reflect this boundary change. + + 04150600 – Chaudiere River + This is a new unit that was created when the WBD boundary was moved from the international boundary on to the ridgelines + Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. + 04150500 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + + + New Hampshire + 01040001 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. + 04150500 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + + New York + 04150301 - Subdivided into 2 new units + 04150301 code retired + 04150301 HUC8 name retired (Upper St. Lawrence) + New Codes and HUC8 names + 04150309 – Headwaters St. Lawrence River + 04150310 – Raisin River-St. Lawrence River + + 04150306 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + 04150307 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + 04150308 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + 04150408 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + 04150409 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + + Vermont + 04150407 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + 04150408 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + 04150409 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + 04150500 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + + + Great Lakes + The boundaries for Lake Ontario (0415200), Lake Erie (04120200), Lake Huron (04080300) and Lake Superior (04020300) were updated using the new inland lakes coastal method. All updates were coordinated with the WBD state steward for each adjacent state. The area within Wisconsin was excluded per the state partner’s request. All surrounding 8-digits (units touching the lakes) were reviewed and updated as well. 2016Mexico Harmonization (2010-2014) + + 2010 - Harmonization with Texas and Mexico; HUC12 polygons and line rework by USGS Water Science Center, Salt Lake City, UT. + + 2014 - Harmonized 8-, 10 and 12-digit units for all border 8-digit units with Mexico were incorporated into the WBD. These datasets were developed through a coordinated effort between the USGS and INEGI along with input from State and local partners. Due to the harmonization effort some 8-digit boundaries may have been adjusted. In addition to this the 10- and 12-digit boundaries along the border might have also been adjusted based on the availability of better base information within Mexico provided by INEGI.2014The following section describes updates to the WBD data model (2012-2016). + + July 2012 + National responsibility for stewardship and maintenance of the WBD transferred from NRCS to the USGS. As a result the WBD data model was updated and the data was incorporated into the NHD database. + WBD model updated based on input from NRCS, USGS, NHD program and user community. + WBD polygon dataset subdivided into individual polygon datasets for each level of hydrologic units. + Two additional datasets added for the next 2 levels of subdivisions (14- and 16-digit) but are not required for each state to populate these. + Attribute tables for polygons and lines were updated with some fields being added, renamed or removed. See below for a list of changes. + + WBD Line attribute table changes: + Old Model: + HU_LEVEL + LINESOURCE + META_ID – removed – Feature level metadata functionality is added to track updates in the new model + LEFT_HUC_8 – removed + RIGHT_HUC_8 – removed + + New Model: + Permanent_Identifier – New field for feature level metadata + Source_FeatureID – New field for feature level metadata + Meta_SourceID – New field for feature level metadata + Source_DataDesc – New field for feature level metadata + Source_Originator – New field for feature level metadata + HU_Level + HU_Class – New field populated with the number of digits of the hydrologic unit + LoadDate – New field for feature level metadata + LineSource + + WBD Polygon attribute table changes: + Codes and names moved from single polygon dataset to the appropriate hydrologic unit dataset for each level + Old Model: + HUC_8 – moved to 8-digit polygon dataset + HUC_10 – moved to 10-digit polygon dataset + HUC_12 – moved to 12-digit polygon dataset + ACRES – re-named to AREA_ACRES + NCONTRB_A + HU_10_GNIS – Replaced with Gaz_ID + HU_12_GNIS – Replaced with Gaz_ID + HU_10_DS – Removed from new model + HU_10_NAME – moved to 10-digit polygon dataset + HU_10_MOD – moved to 10-digit polygon dataset + HU_10_TYPE – moved to 10-digit polygon dataset + HU_12_DS – moved to 12-digit polygon dataset + HU_12_NAME – moved to 12-digit polygon dataset + HU_12_MOD – moved to 12-digit polygon dataset + HU_12_TYPE – moved to 12-digit polygon dataset + META_ID - removed – Feature level metadata functionality is added to track updates in the new model + STATES + + New Model: + Fields included in all levels of hydrologic unit polygon datasets. + Gaz_ID – Old model was the GNIS field + Area_Acres - Renamed + Area_SqKm – New field + States + LoadDate- New field + HUC_"#digit" - For Example: HUC12 + HU_"#digit"_Name - For Example: HU_12_Name + + Fields included with the 10-, 12-, 14- and 16- digit polygon datasets. + HU_"#digit"_Type - For Example HU_12_Type + HU_"#digit"_Mod - For Example HU_12_Mod + + Fields included with the 12-, 14- and 16- digit polygon datasets. + NContrb_Acres + NContrb_SqKm – New field + + Tables + New Model: + ExternalIDCrosswalk + FeaturetoHUMod + FeatureToMetadata + Meta_ProcessDetail + Meta_SourceDetail + ProcessingParameters + UpdateStatus + WBD_Attributes + WBD_Nav + + October 2012 + Changes to the WBD data model include the elimination of the underscore "_" in field and table names, switching to camelCase. Other changes to the WBD data model include the elimination of the WBDPoint table, the WBDPointEvent table, and the WBDAtributes table. Fields have been added to the WBDHU12 polygon feature dataset that allow metadata record linking and also include the downstream attribute. NWIS drainage area line and polygon feature classes have been added also. + + New Model: + WBD line dataset + TNMID – Use to be PermanentID + HULevel + HUClass – New field populated with the number of digits of the hydrologic unit + HUMod + LineSource + LoadDate – New field for feature level metadata + (Source_FeatureID, Meta_SourceID, Source_DataDesc, Source_Originator fields removed from WBDLine dataset) + + WBD polygon dataset + Fields included in all levels of hydrologic unit polygon datasets. + TNMID – New field for feature level metadata + MetaSourceID – New field for feature level metadata + SourceDataDesc – New field for feature level metadata + SourceOriginator – New field for feature level metadata + SourceFeatureID – New field for feature level metadata + LoadDate – New field for feature level metadata + GNIS_ID = replaces Gaz_ID + AreaAcres + AreaSqKm + States + LoadDate + HUC"digit" - for example: HUC12 + Name + + Fields included with the 10-, 12-, 14- and 16- digit polygon datasets. + HUType + HUMod + + Fields included with the 12-, 14- and 16- digit polygon datasets. + NContrbAcres + NContrbSqKm + + Field included with the 12-digit polygon dataset. + ToHUC – This attribute was included in the original WBD data model as HU_12_DS and represents the code of the next unit downstream. The values for this field were populated for the last version of the dataset in the old model by linking the 2 tables by the 12-digit code and calculating the value over. + + NWISDrainageArea polygon dataset added as a place holder for when these datasets are generated. + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + ReferenceTNMID + SiteID + AgencyCode + SiteNumber + StationName + TotalDrainageArea + ContributingDrainageArea + + NWISBoundary line dataset added as a place holder for when these datasets are generated. + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + ReferenceTNMID + + NonContributingDrainageArea polygon dataset added as a place holder for when these datasets are generated. + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + + 2013 + Changes to the WBD data model include updates to the field for the NonContributingDrainageArea polygon dataset, NWISBoundary line dataset and the NWISDrainageArea polygon dataset. This includes the addition of new fields and the re-naming of some of the existing fields. + + NWISDrainageArea polygon dataset: + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + ReferenceTNMIDNHDPointEvent – Renamed from ReferenceTNMID + AgencyCode + SiteNumber + StationName + ContributingDrainageAreaAcres – Originally called ContributingDrainageArea + TotalDrainageAreaAcres – Originally called TotalDrainageArea + ContributingDrainageAreaSqKm – New field + TotalDrainageAreaSqKm – New field + SiteID - Removed + + NWISBoundary line dataset: + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + ReferenceTNMIDPointEvent – Originally called ReferenceTNMID + SiteNumber – New field + + NonContributingDrainageArea polygon dataset + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + NonContributingSqKm – New field + NonContributingAcres – New field + ReferenceTNMID12digitHU – New field + + Tables + ExternalCrosswalk - Originally called ExternalIDCrosswalk + FeatureToHUMod - removed + FeatureToMetadata + HUMod - NewField + MetaProcessDetail - Previous version called Meta_ProcessDetail + MetaSourceDetail - Previous version called Meta_SourceDetail + ProcessingParameters + UpdateStatus + WBD_Attributes - removed + WBDNavigation - Originally WBD_Nav + + 2014 + + + 2015 + Changes to the WBD data model include updates or additions to the fields for the NonContributingDrainageArea polygon dataset, NWISBoundary line dataset and the NWISDrainageArea polygon dataset. The majority of these are due to the length of the original name for the field. A new line dataset was created for Non Contributing Area called NonContributingDrainageLine NWISBoundary was re-named NWISDrainageLine + + NWISDrainageArea polygon dataset: + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + AreaSqKm – New Field + AgencyCode + SiteNumber + StationName + TotalAreaSqMi – New Field + NWISTotalAreaSqMi – New Field + ContributingAreaSqMi – New Field + NWISContributingAreaSqMi – New Field + ReferenceTNMIDNHDPointEvent + Remarks – New Field + ContributingDrainageAreaAcres – Removed + TotalDrainageAreaAcres – Removed + ContributingDrainageAreaSqKm – Removed + TotalDrainageAreaSqKm – Removed + + NWISDrainageLine line dataset + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + LengthKm – New Field + LineSource – New Field + Agency Code – New Field + SiteNumber + ReferenceTNMIDPointEvent – Removed + + NonContributingDrainageArea polygon dataset + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + AreaSqKm – New Field + NonContributingAreaSqKm – Re-named from NonContributingSqKm + Remarks – New Field + NonContributingAcres - Removed + ReferenceTNMID12digitHU - Removed + + NonContributingDrainageLine line dataset – New dataset + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + LengthKm + LineSource + + 2016 + + WBDLine dataset + TNMID + HULevel - removed + HUDigit - Originally called HUClass + HUMod + LineSource + MetaSourceID + LoadDate + + WBD polygon datasets + Fields included with the 12-, 14- and 16- digit polygon datasets. + NonContributingAreaAcres - previous version was NonContributingAcres + NonContributingAreaSqKm - previous version was NonContributingSqKm2016Additional information about the processes used to create and maintain the WBD after June of 2012 can be found in the table called METAPROCESSDETAIL. The process descriptions are linked using the TNMID to the FEATURETOMETADATA table. In addition the METASOURCEDETAIL table can also be linked to determine the sources used to create or update the WBD data.2012VectorSimpleFALSE0FALSEFALSE0.01979403240.0223945998Decimal secondsNorth American Datum of 1983Geodetic Reference System 806378137.0298.257222101bearPolygon feature class representing the 2-digit hydrologic unit boundaries (previously referred to as Regions) and are part of the WBD delivery.Federal Standards and Procedures for the National Watershed Boundary DatasetFeature Class0FIDFIDOID400Internal feature number.EsriSequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.EsriCoordinates defining the features.TNMIDTNMIDString4000MetaSourceMetaSourceString4000SourceDataSourceDataString10000SourceOrigSourceOrigString13000SourceFeatSourceFeatString4000LoadDateLoadDateDate800AreaSqKmAreaSqKmDouble1900AreaAcresAreaAcresDouble1900GNIS_IDGNIS_IDInteger10100NameNameString12000StatesStatesString5000HUC8HUC8String800Shape_LengShape_LengDouble1900Shape_AreaShape_AreaDouble1900Area of feature in internal units squared.EsriPositive real numbers that are automatically generated.WBDHU4Polygon feature class representing the 4-digit hydrologic unit boundaries (previously referred to as Subregions) that are part of the WBD delivery.Federal Standards and Procedures for the National Watershed Boundary DatasetHUC4The HUC4 field is a unique 4-digit hydrologic unit code.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes http://pubs.usgs.gov/tm/11/a3/)WBDHU6Polygon feature class representing the 6-digit hydrologic unit boundaries (previously referred to as Basins) and are part of the WBD delivery.Federal Standards and Procedures for the National Watershed Boundary DatasetHUC6The HUC6 field is a unique 6-digit hydrologic unit code.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)WBDHU8Polygon feature class representing the 8-digit hydrologic unit boundaries (previously referred to as Subbasins) and are part of the WBD delivery.Federal Standards and Procedures for the National Watershed Boundary DatasetHUC8The HUC8 field is a unique 8-digit hydrologic unit code.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes http://pubs.usgs.gov/tm/11/a3/)WBDHU10Polygon feature class representing the 10-digit hydrologic unit boundaries (previously referred to as Watersheds).Federal Standards and Procedures for the National Watershed Boundary DatasetHUC10The HUC10 field is a unique 10-digit hydrologic unit code.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Provide Codeset Definition Reference (Citatation/URL)WBDHU12Polygon feature class representing the 12-digit hydrologic unit boundaries (previously referred to as Subwatersheds).Federal Standards and Procedures for the National Watershed Boundary DatasetHUC12The HUC12 field is a unique 12-digit hydrologic unit code.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)ToHUCThe 12-digit hydrologic unit ToHUC code attribute is the code for the 12-digit hydrologic unit that is downstream from and naturally receives + the majority of the flow from another 12-digit hydrologic unit.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)WBDHU14Polygon feature class representing the 14-digit hydrologic unit boundaries.Federal Standards and Procedures for the National Watershed Boundary DatasetHUC14The HUC14 field is a unique 14-digit hydrologic unit code.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)WBDHU16Polygon feature class representing the 16-digit hydrologic unit boundaries.Federal Standards and Procedures for the National Watershed Boundary DatasetHUC16The HUC16 field is a unique 16-digit hydrologic unit code.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes http://pubs.usgs.gov/tm/11/a3/)WBDLineLine feature class defining the hydrologic unit boundariesFederal Standards and Procedures for the National Watershed Boundary DatasetHUDigitHUDigit is a domain-based field that indicates the minimum number of digits used to represent the hydrologic unit bounded by the line.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)HUModTwo-character, uppercase abbreviation used to track either a modification to natural overland flow that alters the location of the hydrologic unit boundary or special conditions that are applied to a specific boundary line segment. The value identifies the type of modification, from the list provided, that has been applied to the boundary segment. If more than one abbreviation is used, the list is separated by commas without spaces and organized from most to least predominant. +Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)LineSourceLineSource represents the code for the base data used for delineating hydrologic unit boundaries. + If more than one code is used,then the list is separated by a comma with no spaces with the most recent LineSource listed first in the sequence.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)NWISDrainageAreaPolygon features representing PROVISIONAL contributing drainage area for select gage locations in the U.S. Geological Survey National Water Information System +Federal Standards and Procedures for the National Watershed Boundary DatasetAreaSqKmArea of the gaged watershedFederal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Calculated polygon area, square kilometersAgencyCodeSite Agency codeU.S. Geological Survey National Water Information SystemU.S. Geological Survey National Water Information System http://help.waterdata.usgs.gov/SiteNumberU.S. Geological Survey unique site identifierU.S. Geological Survey National Water Information SystemUnique code identifying a measurement site in the National Water Information System databaseStationNameSite NameU.S. Geological Survey National Water Information SystemCommon name associated with site in the National Water Information System databaseTotalAreaSqMiTotal drainage areaFederal Standards and Procedures for the National Watershed Boundary DatasetTotal area of the polygon, square milesNWISTotalAreaSqMiTotal drainage area reported in U.S. Geological Survey National Water Information SystemU.S. Geological Survey National Water Information SystemTotal area in square milesContributingAreaSqMiTotal contributing drainage area, square milesFederal Standards and Procedures for the National Watershed Boundary DatasetTotal contributing area, square milesNWISContributingAreaSqMiContributing drainage area reported in U.S. Geological Survey National Water Information SystemU.S. Geological Survey National Water Information SystemTotal contributing area, square milesReferenceTNMIDNHDPointEventUnique identifier for NHD point event representing gageFederal Standards and Procedures for the National Watershed Boundary DatasetUnique identifier that is automatically generatedRemarksRemarksFederal Standards and Procedures for the National Watershed Boundary DatasetFree text holding remarks from reviewers and/or dataset originatorNWISDrainageLineLine features representing the boundary of the contributing gaged drainage areaFederal Standards and Procedures for the National Watershed Boundary DatasetLengthKmLength of the lineFederal Standards and Procedures for the National Watershed Boundary DatasetCalculated line length, kilometersLineSourceCode identifying the base data used for delineating hydrologic unit boundariesFederal Standards and Procedures for the National Watershed Boundary DatasetFederal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)AgencyCodeSite Agency codeU.S. Geological Survey National Water Information SystemU.S. Geological Survey National Water Information System http://help.waterdata.usgs.gov/SiteNumberU.S. Geological Survey unique site identifierU.S. Geological Survey National Water Information SystemUnique code identifying a measurement site in the National Water Information System databaseWBDLine, WBDHU2, WBDHU4, WBDHU6, WBDHU8, WBDHU10, WBDHU12, WBDHU14, WBDHU16, NWISDrainageArea, NWISDrainageLine, NonContributingDrainageArea, NonContributingDrainageLineThe following attribute fields are common to all feature classes within the WBD Federal Standards and Procedures for the National Watershed Boundary DatasetOBJECTIDInternal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeFeature geometry.ESRICoordinates defining the features.TNMIDTNMID (short for The National Map Identification) is a unique 40-character field that identifies each element in the database exclusively.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)TNMID is an automatically assigned code that stays with each element. When an element is updated or changed, TNMID links the element to the metadata record and documents the change. TNMID is also used to maintain relationship classes in the normalized data model. When an element is deleted or split, TNMID stays with the original element and is not used again. When an element is split, new permanent identifiers are assigned to the resultant parts.MetaSourceIDMetaSourceID is a unique identifier that links the element to the metadata tables.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)MetaSourceID is a unique identifier that links the element to the metadata tables. This ID is generated and assigned automatically by the database and remains with the object permanently.SourceDataDescSourceDataDesc is a space provided for a brief description of the type of base data used to update or change the current WBD.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)The WBD In-State Steward completes this field as part of the metadata form.SourceOriginatorSourceOriginator is the description of the agency that created the base data used to improve the WBD.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)The WBD In-State Steward completes this field as part of the metadata formSourceFeatureIDSourceFeatureID is a long, unique code.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)This code identifies the parent of the feature if the feature is the result of a split or merge, and it is automatically generated and assigned.LoadDateLoadDate represents the date when the data were loaded into the official USGS WBD ArcSDE database. The field is the effective date for all feature edits, and it is automatically generated.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)12:00:00 AM5/22/2015 9:18:54 AMSHAPE_LengthLength of feature in internal units.Esri0.00969668135620442156.106394893564WBDHU2, WBDHU4, WBDHU6, WBDHU8, WBDHU10, WBDHU12, WBDHU14, WBDHU16, NWISDrainageArea, NonContributingDrainageAreaThe following attribute field is common to all polygon feature classes within the WBD Federal Standards and Procedures for the National Watershed Boundary DatasetShape_AreaArea of feature in internal units squared.Esri1.4877635179339E-069.79299310229808WBDHU2, WBDHU4, WBDHU6, WBDHU8, WBDHU10, WBDHU12, WBDHU14, WBDHU16The following attribute fields are common to the WBD hydrologic unit polygon datasetsFederal Standards and Procedures for the National Watershed Boundary DatasetGNIS_IDGNIS_ID is a preassigned numeric field that uses a unique number to relate the name of the hydrologic unit to the GNIS names database.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Geographic Names Information System (GNIS)GNIS (http://gnis.usgs.gov/)AreaAcresThe area of each hydrologic unit including non-contributing areas stored in acres +AreaAcres is common to all polygon feature classes and is calculated at the 12-digit hydrologic unit from the intrinsic area value maintained by the GIS software; therefore, acreage values may vary from user calculations, depending on the projection of the data. North American Albers Equal Area Conic, North American Datum 1983 is the required projection to use for calculation. If the units of the area field are stored in square meters, then use the conversion factor 0.0002471. For example, 40,469,446 square meters multiplied by 0.0002471 =10,000 acresFederal Standards and Procedures for the National Watershed Boundary Dataset (WBD)050000000acresAreaSqKmThe area of each hydrologic unit including non-contributing areas stored in square kilometers. +AreaSqKm is calculated at the 12-digit hydrologic unit from the intrinsic area value maintained by the GIS software; therefore, the square kilometer values may vary from user calculations, depending on the projection of the data. North American Albers Equal Area Conic, North American Datum 1983 is the default projection.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)0100000square kilometersStatesThe States or outlying area attribute identifies the State(s) or outlying areas that the hydrologic unit falls within or touches. Will be populated with the 2 character state abbreviation or outlying area attribute for each area that the unit falls within in alphabetical order.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes http://pubs.usgs.gov/tm/11/a3/)NameName refers to the GNIS name for the geographic area in which the hydrologic unit is located.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)WBDHU10, WBDHU12, WBDHU14, WBDHU16The following attribute fields are common to the 10-digit, 12-digit, 14-digit and 16-digit WBD polygon datasetsFederal Standards and Procedures for the National Watershed Boundary DatasetHUTypeThe 12-digit hydrologic unit type attribute is the single-letter abbreviation for Watershed type from the list of official names provided in the WBD Standards.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)HUModThe hydrologic unit modification attribute is a two-character, uppercase abbreviation(s) for either (1) the type of modification to natural overland flow that alters the natural delineation of a hydrologic unit or (2) the special conditions GF-groundwater flow, GL-glacier, IF-ice field, KA-karst, and NC-noncontributing area. The value of the HUMod field helps to indicate where the modification to the hydrologic unit is located. If more than one abbreviation is used, the will be separated by commas without spaces and listed from most to least predominant.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)WBDHU12, WBDHU14, WBDHU16, NWISDrainageArea and NonContributingDrainageAreaThe following attribute fields are common to the 12-digit, 14-digit and 16-digit WBD polygon datasets as well as the NWISDrainageArea, and NonContributingDrainageArea polygon datasetsFederal Standards and Procedures for the National Watershed Boundary DatasetNonContributingAreaAcresThe noncontributing area attribute represents the area, in acres, of hydrologic units that do not contribute to downstream accumulation of streamflow under normal flow conditions.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)050000000NonContributingAreaSqKmThe noncontributing area attribute represents the area, in square kilometers, of hydrologic units that do not contribute to downstream accumulation of streamflow under normal flow conditions.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)0100000The Watershed Boundary Dataset is a comprehensive set of digital spatial data that represents the surface drainages areas of the United States. The information included with the features includes a feature date, a unique common identifier, name, the feature length or area, and other characteristics. Names and their identifiers are assigned from the Geographic Names Information System. The data also contains relations that encode metadata. The names and definitions of all these feature attributes are in the Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD). The document is available online at http://pubs.usgs.gov/tm/11/a3/.The names and definitions of all fields within the WBD attribution are in the U.S. Geological Survey, Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD). The document is available online at http://pubs.usgs.gov/tm/11/a3/. Information about the attribute tables and fields are in Section 6: Geospatial Data Structure and AttributesU.S. Geological SurveyMailing
U.S. Geological Survey, National Geospatial Technical Operations Center, P.O. Box 25046
DenverCO80225
1-877-275-8747bpgeo@usgs.gov
The distributor shall not be held liable for improper or incorrect use of this data, based on the description of appropriate/inappropriate uses described in this metadata document. It is strongly recommended that this data is directly acquired from the distributor and not indirectly through other sources which may have changed the data in some way. The Watershed Boundary Dataset is public information and may be interpreted by all organizations, agencies, units of government, or others based on needs; however, they are responsible for the appropriate application of the data. Federal, State, or local regulatory bodies are not to reassign to the U.S. Department of Agriculture-Natural Resources Conservation Service or the U.S. Geological Survey any authority for the decisions they make. Photographic or digital enlargement of these maps to scales greater than that at which they were originally delineated can result in misrepresentation of the data. If enlarged, the maps will not include the fine detail that would be appropriate for mapping at the small scale. Digital data files are periodically updated. Files are dated, and users are responsible for obtaining the latest version of the data from the source distributor.Vector Digital Data Set (Polygon)ftp://rockyftp.cr.usgs.gov/vdelivery/Datasets/Staged/Hydrography/WBD/National/GDB/National_WBD.zipNone. No fees are applicable for obtaining the data set.
20160727WBD Point of ContactU.S. Geological SurveyMailing
U.S. Geological Survey, National Geospatial Technical Operations Center, P.O. Box 25046
DenverCO80225
1-877-275-8747bpgeo@usgs.gov
FGDC Content Standard for Digital Geospatial MetadataFGDC-STD-001-1998
bearfile://\\CYB-TURING-AG1\E$\OneDrive\OneDrive - The University of Alabama\02.projects\02.nidis\02.code\ewri\02.inputs\shape\bear.shpLocal Area Network0020.000GeographicGCS_North_American_1983Angular Unit: Degree (0.017453)<GeographicCoordinateSystem xsi:type='typens:GeographicCoordinateSystem' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.1.0'><WKT>GEOGCS[&quot;GCS_North_American_1983&quot;,DATUM[&quot;D_North_American_1983&quot;,SPHEROID[&quot;GRS_1980&quot;,6378137.0,298.257222101]],PRIMEM[&quot;Greenwich&quot;,0.0],UNIT[&quot;Degree&quot;,0.0174532925199433],AUTHORITY[&quot;EPSG&quot;,4269]]</WKT><XOrigin>-400</XOrigin><YOrigin>-400</YOrigin><XYScale>11258999068426.238</XYScale><ZOrigin>-100000</ZOrigin><ZScale>10000</ZScale><MOrigin>-100000</MOrigin><MScale>10000</MScale><XYTolerance>8.983152841195215e-09</XYTolerance><ZTolerance>0.001</ZTolerance><MTolerance>0.001</MTolerance><HighPrecision>true</HighPrecision><LeftLongitude>-180</LeftLongitude><WKID>4269</WKID><LatestWKID>4269</LatestWKID></GeographicCoordinateSystem>ExportFeatures "Bear Watershed" "E:\OneDrive\OneDrive - The University of Alabama\02.projects\02.nidis\02.code\ewri\02.inputs\shape\bear.shp" # NOT_USE_ALIAS "TNMID "TNMID" true true false 40 Text 0 0,First,#,Bear Watershed,TNMID,0,40;MetaSourceID "MetaSourceID" true true false 40 Text 0 0,First,#,Bear Watershed,MetaSourceID,0,40;SourceDataDesc "SourceDataDesc" true true false 100 Text 0 0,First,#,Bear Watershed,SourceDataDesc,0,100;SourceOriginator "SourceOriginator" true true false 130 Text 0 0,First,#,Bear Watershed,SourceOriginator,0,130;SourceFeatureID "SourceFeatureID" true true false 40 Text 0 0,First,#,Bear Watershed,SourceFeatureID,0,40;LoadDate "LoadDate" true true false 8 Date 0 0,First,#,Bear Watershed,LoadDate,-1,-1;AreaSqKm "AreaSqKm" true true false 8 Double 0 0,First,#,Bear Watershed,AreaSqKm,-1,-1;AreaAcres "AreaAcres" true true false 8 Double 0 0,First,#,Bear Watershed,AreaAcres,-1,-1;GNIS_ID "GNIS_ID" true true false 4 Long 0 0,First,#,Bear Watershed,GNIS_ID,-1,-1;Name "Name" true true false 120 Text 0 0,First,#,Bear Watershed,Name,0,120;States "States" true true false 50 Text 0 0,First,#,Bear Watershed,States,0,50;HUC8 "HUC8" true true false 8 Text 0 0,First,#,Bear Watershed,HUC8,0,8;Shape_Length "Shape_Length" false true true 8 Double 0 0,First,#,Bear Watershed,Shape_Length,-1,-1;Shape_Area "Shape_Area" false true true 8 Double 0 0,First,#,Bear Watershed,Shape_Area,-1,-1" #202405082225520020240508222552001.0250000240002017031411230000ISO 19139 Metadata Implementation SpecificationFALSEWBD Point of ContactU.S. Geological Survey1-877-275-8747U.S. Geological Survey, National Geospatial Technical Operations Center, P.O. Box 25046DenverCO80225bpgeo@usgs.gov20240508ArcGIS Metadata1.0U.S. Geological Survey1-877-275-8747U.S. Geological Survey, National Geospatial Technical Operations Center, P.O. Box 25046DenverCO80225bpgeo@usgs.govNone. No fees are applicable for obtaining the data set.Vector Digital Data Set (Polygon)ftp://rockyftp.cr.usgs.gov/vdelivery/Datasets/Staged/Hydrography/WBD/National/GDB/National_WBD.zipftp://rockyftp.cr.usgs.gov/vdelivery/Datasets/Staged/Hydrography/WBD/National/GDB/National_WBD.zip0.000ShapefileNational Watershed Boundary Dataset (WBD)2015-12-16U.S. Department of Agriculture - Natural Resource Conservation Service (NRCS)U.S. Geological Survey (USGS)Other Federal, State, and local partners (see dataset specific metadata for details http://nhd.usgs.gov/wbd_metadata.html)U.S. Environmental Protection Agency (EPA)Vector Digital Data SetThe Watershed Boundary Dataset (WBD) is a comprehensive aggregated collection of hydrologic unit data consistent with the national criteria for delineation and resolution. It defines the areal extent of surface water drainage to a point except in coastal or lake front areas where there could be multiple outlets as stated by the "Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)" “Standard” (http://pubs.usgs.gov/tm/11/a3/). Watershed boundaries are determined solely upon science-based hydrologic principles, not favoring any administrative boundaries or special projects, nor particular program or agency. This dataset represents the hydrologic unit boundaries to the 12-digit (6th level) for the entire United States. Some areas may also include additional subdivisions representing the 14- and 16-digit hydrologic unit (HU). At a minimum, the HUs are delineated at 1:24,000-scale in the conterminous United States, 1:25,000-scale in Hawaii, Pacific basin and the Caribbean, and 1:63,360-scale in Alaska, meeting the National Map Accuracy Standards (NMAS). Higher resolution boundaries are being developed where partners and data exist and will be incorporated back into the WBD. WBD data are delivered as a dataset of polygons and corresponding lines that define the boundary of the polygon. WBD polygon attributes include hydrologic unit codes (HUC), size (in the form of acres and square kilometers), name, downstream hydrologic unit code, type of watershed, non-contributing areas, and flow modifications. The HUC describes where the unit is in the country and the level of the unit. WBD line attributes contain the highest level of hydrologic unit for each boundary, line source information and flow modifications.The intent of defining Hydrologic Units (HU) within the Watershed Boundary Dataset is to establish a base-line drainage boundary framework, accounting for all land and surface areas. Hydrologic units are intended to be used as a tool for water-resource management and planning activities particularly for site-specific and localized studies requiring a level of detail provided by large-scale map information. The WBD complements the National Hydrography Dataset (NHD) and supports numerous programmatic missions and activities including: watershed management, rehabilitation and enhancement, aquatic species conservation strategies, flood plain management and flood prevention, water-quality initiatives and programs, dam safety programs, fire assessment and management, resource inventory and assessment, water data analysis and water census.Funding for the Watershed Boundary Dataset (WBD) was provided by the USDA-NRCS, USGS and EPA along with other federal, state and local agenciesies. Representatives from many agencies contributed a substantial amount of time and salary towards quality review and updating of the dataset in order to meet the WBD Standards. Acknowledgment of the originating agencies would be appreciated in products derived from these data. See dataset specific metadata for further informationU.S. Geological Survey1-877-275-8747U.S. Geological Survey, National Geospatial Technical Operations Center, P.O. Box 25046DenverCO80225bpgeo@usgs.govftp://rockyftp.cr.usgs.gov/vdelivery/Datasets/Staged/Hydrography/WBD/National/GDB/National_WBD.jpgThumbnail JPG imageJPEGUSUnited StatesU.S. Department of Commerce, 1977, Countries, dependencies, areas of special sovereignty, and their principal administrative divisions (Federal Information Processing Standards 10-3): Washington, D.C., National Institute of Standards and Technology.16-digitHydrologic Unit CodeRegion4-digitHUCWatershed Boundary Dataset2-digitBasin10-digitHydrologic UnitsSub-basinWatershedWBD6-digitinlandWatersSub-regionSubwatershed12-digit14-digit8-digitISO 19115 Topic Category16-digitHydrologic Unit CodeRegionUS4-digitHUCUnited StatesWatershed Boundary Dataset2-digitBasin10-digitHydrologic UnitsSub-basinWatershedWBD6-digitinlandWatersSub-regionSubwatershed12-digit14-digit8-digitThe distributor shall not be held liable for improper or incorrect use of this data, based on the description of appropriate/inappropriate uses described in this metadata document. It is strongly recommended that this data is directly acquired from the distributor and not indirectly through other sources which may have changed the data in some way. The Watershed Boundary Dataset is public information and may be interpreted by all organizations, agencies, units of government, or others based on needs; however, they are responsible for the appropriate application of the data. Federal, State, or local regulatory bodies are not to reassign to the U.S. Department of Agriculture-Natural Resources Conservation Service or the U.S. Geological Survey any authority for the decisions they make. Photographic or digital enlargement of these maps to scales greater than that at which they were originally delineated can result in misrepresentation of the data. If enlarged, the maps will not include the fine detail that would be appropriate for mapping at the small scale. Digital data files are periodically updated. Files are dated, and users are responsible for obtaining the latest version of the data from the source distributor.The distributor shall not be held liable for improper or incorrect use of this data, based on the description of appropriate/inappropriate uses described in this metadata document. It is strongly recommended that this data is directly acquired from the distributor and not indirectly through other sources which may have changed the data in some way. These data should not be used at scales greater than 1:24,000 for the purpose of identifying hydrographic watershed boundary feature locations in the United States. The Watershed Boundary Dataset is public information and may be interpreted by all organizations, agencies, units of government, or others based on needs; however, they are responsible for the appropriate application of the data. Photographic or digital enlargement of these maps to scales greater than that at which they were originally delineated can result in misrepresentation of the data. If enlarged, the maps will not include the fine detail that would be appropriate for mapping at the small scale. Digital data files are periodically updated and users are responsible for obtaining the latest version of the data from the source distributor. Acknowledgment of the origination agencies would be appreciated in products derived from these data.Microsoft Windows 10 Version 10.0 (Build 19045) ; Esri ArcGIS 13.1.3.41833publication date1980-01-012016-01-01-179.229655487179.856674735-14.424695094371.4395725902The WBD was produced and is maintained through a cooperative process involving state, federal and local partners. Process information for a specific state or region can be found within the state specific metadata located at http://nhd.usgs.gov/wbd_metdata.html. This metadata file has information for WBD features contained in the WBD feature dataset. This includes information about the 2-, 4-, 6-, 8-, 10-, 12-, 14-, 16-digit polygons and WBD_Line dataset. Users accessing the WBD via shapefile will need to search for the attribution related to that specific dataset.Lines, polygons and nodes conform to topological rules. Lines intersect only at nodes, and all nodes anchor the ends of lines. Lines do not overshoot or undershoot other lines where they are supposed to meet. There are no duplicate lines. Lines bound polygons. Gaps and overlaps among polygons do not exist. All polygons close.Lines, polygons and nodes conform to topological rules. Lines intersect only at nodes, and all nodes anchor the ends of lines. Lines do not overshoot or undershoot other lines where they are supposed to meet. There are no duplicate lines. Lines bound polygons. Gaps and overlaps among polygons do not exist. All polygons close.The WBD contains completed polygons at every level for the United States. All required fields within the polygon and line datasets are populated. Some of these fields may be populated with a zeor "0". The lines coincident with the international boundary are assigned a HULevel value of 0. These cannot be attributed until the adjacent international units are added at which point the highest level of hydrologic unit can be determined. A detailed description of delineation methods and full attribute definitions can be found in the WBD Standards. Users are advised to carefully read the metadata record for additional details.All attempts were made to verify 100% of the initially required attributes using 24K digital raster graphics (DRGs) as the base. Additional datasets, like the Geographic Names Information System (GNIS) and NHD, may also have been used to verify attribution. The accuracy of this data is dependent on the level of detail of the source material and the interpretation procedures for capturing that source. Other sources and methods may have been used to create or update WBD data. In some cases, additional information may be found in the WBD Metadata table.The WBD was produced using a variety of digital spatial data including but not limited to Digital Raster Graphics (DRGs), aerial imagery and digital elevation models (DEM). It is assumed these data are mapped at approximately 1:24,000-scale and contain a minimum inherent error of +/- 40 feet. It should be noted that the WBD is undergoing continuous update as source data improves and as hydrologic interpretations are refined. While general rules of hydrology were used in delineation, locations of boundaries may be subjective in some cases. Additional information may be found in the WBD Metadata table.A formal accuracy assessment of the vertical positional information in the data set has either not been conducted, or is not applicable.The original dataset was reviewed by USGS personnel using on-screen techniques with DRGs as the base map. All hydrologic units within the dataset that were less than 3,000 acres were dissolved out.2003-01-01First draft of metadata created by NRCS using METADATA Editor in ArcCatalog ver. 9.1 sp.1 hu12_geo832007-01-24Below is a list of updates (from 2011 to 2016) resulting from harmonization work with Canada. Alaska: Legacy 19010101 Southeast Mainland name and code were retired and the area subdivided into four units. New codes and names are as follows and accepted by the National Technical Team and approved with Canadian and Alaska partners (USFS): 19010104 Bradfield Canal 19010105 Burroughs Bay 19010106 Headwaters Portland Canal 19010107 Outlet Portland Canal Legacy 19010201 Mainland had a portion broken out. 19010201 will be preserved and the small piece broekn out in order to harmonize with Canada. The smaller piece will have the new code 19010205 and the name will be Lower Iskut. Revised again 5/31/11: 19010201 Mainland was broken into three new units 19010206 Holkham Bay 19010207 Stikine River 19010208 Thomas Bay Legacy 19010301 Lynn Canal now has the Taku River broken out to accommodate Canada. Taku River will be code 19010304. The National Technical Coordinators (NTC) accepts this. Revised again 5/31/11:(AK group consulted along with Pete Steeves, Kim Jones, Stephen Daw, Karen Hanson): 19070101 Atlin Lake was broken out of the legacy Lynn Canal 19010301 and is part of the newly accepted Subregion 1907 Legacy 19010302 Glacier Bay was subdivided along the ridge separating out the ocean flow. The unit broken out is: 19010406 Palma Bay (this unit also includes a portion of the original 19010401) Note: Legacy 19010302 Glacier Bay will be retained although the area is now smaller. Other options didn’t make as much sense. Legacy 19010303 Chilkat-Skagway Rivers was subdivided into: 19070102 Bennett Lake 19070103 Tagish Lake 19070104 Takhini River Note: 19010303 Chilkat-Sakgway Rivers is retained Legacy 19010401 Yakutat Bay name and code retired and the area subdivided into 4 new units. New codes and names are as follows 19010403 Tatshenshini River 19010404 Alsek River 19010405 Yakutat Bay-Gulf of Alaska 19010406 Palma Bay (This new unit also includes a portion of the original 19010302) Idaho and Washington - 2013 - The Columbia River Basin and Puget Sound Coastal area was updated to include the harmonized 8-, 10, and 12-digit hydrologic units within Canada. This harmonized data was created with contributions from US and Canadian Federal, State, Provincial and local partners. The British Columbia 20K Fresh Water Atlas watershed data and DEM data were used to create the units within Canada. Border units were updated through a review/agreement process with local and state/provincial partners using the best available data (DEM, DRG, Imagery, Field Verification). During the harmonization effort there were some 8-digit updates that were agreed to. Legacy 17010101 Upper Kootenai name will change to Middle Kootenai to coordinate with Canada since there is an Upper Kootenay solely in Canada. Legacy 17010101 Upper Kootenai boundary changed slightly. The WBD Technical Team recommends retaining the legacy name and code. A new subbasin was created as a result of the international border harmonization which slightly goes into the U.S. (the portion of 17010101 referenced above). The WBD Technical Team recommends coding this unit with the next down sequential code which would be 17010106 and using the name that Canada refers to this hydrologic unit as “Elk”. 17110001 legacy name “Fraser” is being changed to “Sumas River” to match with Canada, and because the Fraser River doesn’t flow through this unit. Montana: 1001 flows into Canada and the Saskatchewan River and not into the Missouri River as originally thought. As such this 4-digit hydrologic units was moved from region 10 to 09. 0904 - Saskatchewan River 090400- Upper South Saskatchewan River (This matches the Canadian FDA at the WSCSDA level (sub drainage area)). 10010001 name and code have been retired, and this area is now 09040002 Belly 10010002 name and code have been retired, and this area is now 09040001 St. Marys Minnesota: 2014 - Rainy River Basin was updated to include the harmonized 8-, 10- and 12-digit hydrologic units with Canada. This harmonized data was created over a 6 month time period with cooperation from Federal, State, Provincial and Local Partners. Some of the boundaries within MN were updated using the MN LiDAR data. The MN LiDAR was also used in the creation of boundaries within Canada when the LiDAR data overlapped into Canada. The other boundaries within Canada were generated using the province of Ontario’s 20K DEM and Hydrography data. There were some 8-digit updates as a result of the harmonization effort. 09030004 Upper Rainy has been retired 09030004 is now a part of 09030008 the Lower Rainy 2 new 8-digit units were broken out in Canada 09030010 – Big Turtle River-Rainy Lake 09030011 – Shoal Lake North Dakota: Legacy 09020313 Pembina was subdivided into two new units. The legacy name and code were retired. The new codes and names are: 09020315 Upper Pembina River 09020316 Lower Pembina River 2014- Souris River Basin was updated to include the harmonized 8-, 10- and 12-digit hydrologic units with Canada. This harmonized data was created over a 6 month time period with cooperation from Federal, State, Provincial and Local Partners. There were some 8-digit updates as a result of the harmonization effort. Legacy 09010001 Upper Souris has now been subdivided. That code and name have been retired and the new units are: 09010006 Long Creek 09010007 Headwaters Souris River 09010008 Moose Mountain Creek-Souris River North Dakota and Minnesotta: Red River Basin Legacy 09020311 Lower Red name is being changed to Middle Red in order to harmonize with Canada. Lower Red is the Basin name for this entire area but the impact to change at that level isn’t known so won’t change. 2016 - Red River Basin was updated to include the harmonized 8-, 10-, and 12-digit hydrologic units within Canada. Some of the boundaries within MN and ND were updated using Lidar data. Lidar data was also used in the development of hydrological units within Canada. Where Lidar data did not exist the province of Manitoba provided either 1:20,000 scale or 1:50,000 scale digital elevation data for boundary delineations. Maine All HUC8 boundaries were updated with the Harmonized US/CAN border into Canada. Coding was updated as needed. 01010001 was subdivided into 6 new units. 01010001 code retired 01010001 HUC8 name retired (Upper St. John) New codes and HUC8 names 01010006 – Headwaters Saint John River 01010007 – Big Black River-Saint John River 01010008 – St. Francis River-Saint John River 01010009 – Little River-Saint John River 01010010 – Becaguimec Stream-Saint John River (This unit now contains a portion of the original 01010005) 01010011 – Keswick River-Saint John River 01010004 - Boundary within Canada was updated with harmonized boundary. 01010005 - Boundary was updated with US/CAN harmonized boundary. A small portion of 01010005 was moved into the new 01010010 so that 01010005 is a standard HUC 8 unit for the Meduxnekeag River. 01020001 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. 01030001 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. 01030002 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. 01040001 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. 01050001 - Boundary was updated with US/CAN harmonized boundary. This boundary was developed during the initial St. Croix pilot and includes updates within the US as well as Canada. Coding left as is 01050002 - The harmonized boundary for 01050004 required updates to 01050002. A portion of 01050002 was moved to 01050004 to accommodate the new harmonized boundary. This required re-coding of the entire 01050002. 01050004 - Boundary was updated with US/CAN harmonized boundary. A portion of 01050002 was moved into this unit. Codes were updated to reflect this boundary change. 04150600 – Chaudiere River This is a new unit that was created when the WBD boundary was moved from the international boundary on to the ridgelines Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. 04150500 - Boundary was updated with US/CAN harmonized boundary. Coding left as is New Hampshire 01040001 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. 04150500 - Boundary was updated with US/CAN harmonized boundary. Coding left as is New York 04150301 - Subdivided into 2 new units 04150301 code retired 04150301 HUC8 name retired (Upper St. Lawrence) New Codes and HUC8 names 04150309 – Headwaters St. Lawrence River 04150310 – Raisin River-St. Lawrence River 04150306 - Boundary was updated with US/CAN harmonized boundary. Coding left as is 04150307 - Boundary was updated with US/CAN harmonized boundary. Coding left as is 04150308 - Boundary was updated with US/CAN harmonized boundary. Coding left as is 04150408 - Boundary was updated with US/CAN harmonized boundary. Coding left as is 04150409 - Boundary was updated with US/CAN harmonized boundary. Coding left as is Vermont 04150407 - Boundary was updated with US/CAN harmonized boundary. Coding left as is 04150408 - Boundary was updated with US/CAN harmonized boundary. Coding left as is 04150409 - Boundary was updated with US/CAN harmonized boundary. Coding left as is 04150500 - Boundary was updated with US/CAN harmonized boundary. Coding left as is Great Lakes The boundaries for Lake Ontario (0415200), Lake Erie (04120200), Lake Huron (04080300) and Lake Superior (04020300) were updated using the new inland lakes coastal method. All updates were coordinated with the WBD state steward for each adjacent state. The area within Wisconsin was excluded per the state partner’s request. All surrounding 8-digits (units touching the lakes) were reviewed and updated as well.2016-01-01Mexico Harmonization (2010-2014) 2010 - Harmonization with Texas and Mexico; HUC12 polygons and line rework by USGS Water Science Center, Salt Lake City, UT. 2014 - Harmonized 8-, 10 and 12-digit units for all border 8-digit units with Mexico were incorporated into the WBD. These datasets were developed through a coordinated effort between the USGS and INEGI along with input from State and local partners. Due to the harmonization effort some 8-digit boundaries may have been adjusted. In addition to this the 10- and 12-digit boundaries along the border might have also been adjusted based on the availability of better base information within Mexico provided by INEGI.2014-01-01The following edits (2012 - present) were completed during national quality control review performed by the WBD national technical edit team in the USGS Utah Water Science Center. Updates may not affect all hydrologic units. Edits by USGS Water Science Center in Salt Lake City, Utah. 1. Reviewed all the ToHUC codes within the 12-digit polygons and made updates as necessary. All updates were coordinated and approved by WBD state stewards. 2. Updated Linesource code (misspellings, removed extra spaces etc.) where needed to match Federal Standards 3. Updated and corrected errors in the HU_Mod fields where needed to match Federal Standards. 4. Updated State field for Canada (CN) and Mexico (MX) based on the new version of the Standards 5. Reviewed all the Names related to each 10-digit and 12-digit polygon and made updates as necessary. All updates were coordinated and approved by the WBD State stewards 6. Checked and updated HU_Level field where HU_Level = 99 or = null 7. Updated the 8-digit outer boundary for units flowing into ocean units by extending the boundary offshore to the 3 nautical mile limit provided by NOAA. All updates were coordinated and approved by the WBD state stewards2016-01-01The following are 8-digit updates (from 2009-2016) that were approved by the WBD National Technical Coordinators as required by the WBD Standards. These may include name/code updates or boundary updates that were implemented in the WBD at some point during the creation or maintenance of the data. Alaska: Legacy 19020401 Anchorage boundary has changed by about 20% of its area. 19020203 (Prince William Sound) Added a new subbasin unit for Prince William Sound. Adjusted huc8 boundaries between 19020104, 19020201 and 19020202 to better reflect surface water flow and to assist with delineating the Prince William Sound as a new unit. Legacy 19020302 Upper Kenai Peninsula has changed by about 20% of its area. Legacy 19030304 Wood River was subdivided which has created a reduced area for the 19030304 Wood River and put Igushik River into its own hydrologic unit with a new code of 19030306. Legacy 19030402 Farewell Lake was divided into 19030406 Middle Flork Kuskokwim River and 19030407 South Fork Kuskokwim River. Legacy 19040204 Black River was subdivided. 19040204 will remain the Black River, and a new unit 19040206 Grass River is broken out. 19040502: The outlet for subbasin 19040502 was moved downstream from the current break across Tanana River at a confluence with a minor tributary to the more prominent confluence with Robertson River. This edit resulted in the addition of 2 subwatersheds to 19040502 and the removal of 2 watersheds from 19040503. Legacy 19040504 Delta River linework changed significantly. The legacy 19040504 had 3 separate outlets; Delta River, Delta Creek and Little Delta River. The boundary was adjusted so that 19040504 contained just the Delta River as a standard unit. The Delta Creek and Little Delta River where moved into 19040507. Legacy 19040507 Tanana Flats Linework changed significantly. 19040606 - Legacy boundary for 19040606 had the outlet at a location across the Huslia River downstream from the outlet of the South Fork Huslia River. The boundary was adjusted downstream to the major confluence where the Huslia River drains into the Koyukuk River, thus creating a standard HUC8 for the Huslia River. 1905: 19050202, 19050203, 19050301, 19050304, 19050403 19050202’s boundary was adjusted so that this unit contained all frontal drainage areas flowing into the southern portion of Kotzebue Sound. 19050203’s boundary was adjusted to that the unit included Eschscholtz Bay and all of the drainage areas flowing into it. 19050301’s boundary was adjusted so that this unit has one outlet and includes Selawik Lake. The frontal drainages flowing into Hotham Inlet were moved into unit 19050304. 19050304’s boundary was adjusted so that the unit included Hotham Inlet and the frontal drainages flowing into it. 19050403’s boundary was adjusted to a buffer distance of 1000 meters off shore. 19050500 - Kotzebue Sound: Added a new HUC8 unit to AK WBD for Kotzebue Sound. Inner coastal units that ended at the shore line were extended offshore to a 1000 meter buffer distance. Legacy 19060204 Ikpikpuk River absorbed Inaru River from Legacy 19060202 Legacy unit 19060202 contained 2 different stream systems flowing into 2 different bodies of water. The Inaru River flows into Admiralty Bay while the Kugrua River and the other small frontal drainages flows into the Chukchi Sea. The boundary was adjusted so that flow into Admiralty Bay/Dease Inlet was separate from flow into Chukchi Sea. The Inaru River, Admiralty Bay/Dease Inlet and all associated frontal drainages were added to subbasin 19060204. New Subbasin 19060206 is being named Admiralty Bay-Dease Inlet. This area use to be part of Subbasin 19060204 19020800 Cook Inlet is a new hydrologic unit as recommended by the Alaska in state stakeholders. 2011 - These updates where proposed by Forest Service partners within the Tongass National Forest. When major changes are made to the HUC8 container (i.e. the container is subdivided into multiple units) the national protocol has been to retire the old HUC8 code and name and assign new codes and names to the updates units 19010202 (Kuiu-Kupreanof-Mitkof-Etolin-Zarembo-Wrangell) is being retired and 2 new HUC8 units were formed. Kuiu Island, Mitkof Island and Kupreanof Island were split out into their own 8-digit unit HUC8 - 19010210 HU8_Name – Kuiu-Kupreanof-Mitkof Islands Zarembo Island, Wrangell Island and Etolin Island were subdivided into their own 8 digit unit HUC8 – 19010209 HU8_Name – Etolin-Zarembo-Wrangell Islands 19010203 (Baranof-Chichagof Islands)19010203 was retired. 19010203 was subdivided 3 new units; 2 island units and 1 channel unit. Chichagof Island was split out into its own 8-digit unit HUC8 – 19010211 HU8_Name – Chichagof Island Baranof and Kruzof Islands were subdivided into their own 8-digit unit HUC8 – 19010212 HU8_Name – Baranof Island Created a new water hydrologic unit for the channel between Chichagof Island and Baranof/Kruzof Islands. This new water unit would become a HUC10 unit within the "Water" subbasin 19010500. HUC10 – 1901050011 HUC10_Name - Peril Strait Because of the varying width of the channel the boundary was graduated from a 1,000 meter buffer to 100 meter buffer from the Low Tide Shoreline. The Low Tide Shoreline was provided by the Forest Service. A 1,000 meter buffer was used in the open channel to match the buffer distance used within the rest of SE AK WBD. There is a narrow portion of the channel where the boundary was gradually reduced from the 1,000 meter buffer to a 100 meter buffer. 2014 - Updated Alaska’s region 1904 based on a request from NHD program and approved by state partners. 1904 was subdivided 3 new 4-digit hydrologic units. The new units are 1907 – Upper Yukon River 190701 – Headwaters Yukon River 1908 – Middle Yukon River 1909 – Lower Yukon River 2016 - Updates to AK 8-digit units based on harmonization effort with Canada 19070504 (Eagle Creek-Yukon River) is being subdivided 2 new 8-digit hydrologic units. Original code and name are being retired. HUC8 - 19070505 (Tatonduk River-Yukon River) HUC8 - 19070506 (Charley River-Yukon River) 19060503 (Beaufort Lagoon) is being subdivided 3 new 8-digit hydrologic units. Original code and name are being retired. HUC8 - 19060504 (Kongakuat River-Beaufort Lagoon) HUC8 - 19060505 (Firth River) HUC8 - 19060506 (Babbage River) is completely within Canada Yukon Territory Arizona: Legacy 15010009 Fort Pierce Wash name changed to Fort Pearce Wash to account for misspell. Legacy 15010007 Hualapai Wash name should change as the wash is now in the adjacent Subbasin. Changed to Red Lake California: Legacy 18010109 Gualala-Salmon had an area the size of several 12-digit HUs that has been aggregated into the adjacent legacy 18050005 Tomales-Drake Bays as a result of coastal implementation. This is approved by the in-state WBD Steward and T3.Legacy 18030012 and new 18030012 Tulare-Buena Vista Lakes changed to Tulare Lake Bed as the boundary has changed so significantly that Buena Vista Lakes are no longer in the adjusted hydrologic unit. Legacy 18040001 and new 18040007 name changed from Upper Chowchilla-Upper Fresno to Fresno River as the Chowchilla is no longer in the adjusted hydrologic unit. Legacy 18040002 and new 18040002 name changed from Middle San Joaquin-Lower Merced-Lower Stanislaus to Lower San Joaquin River as Merced and Stanislaus Rivers are no longer in the adjusted hydrologic unit. Legacy 18050006 San Francisco-Coastal South will absorb 4 coastal 12-digit HUs from legacy 18060001 San Lorenzo-Soquel as a result of coastal implementation. This is approved by the in-state WBD Steward and the WBD National Technical Coordinators (NTC) Legacy 18060006 Central Coastal will absorb an area the size of 6 12-digit HU’s from legacy 18060012 Carmel which all drains directly to the Pacific Ocean. This is approved by the in-state WBD Steward and the WBD National Technical Coordinators (NTC) Portions of legacy 18060011, 18060012, and part of 19060001 will become a new subbasin accounting for all of these frontal pieces. It will be coded 18060015 and named Monterey Bay. This is approved by the in-state WBD Steward and the WBD National Technical Coordinators (NTC) Legacy 18060013 Santa Barbara Coastal had an area the size of one 12-digit HU which will be aggregated with legacy 18070101 Ventura as a result of coastal implementation. This is approved by the in-state WBD Steward and the WBD National Technical Coordinators (NTC) Legacy 18070104 Santa Monica Bay had an area the size of several 12-digit HUs which will be aggregated with legacy 18070106 San Gabriel as a result of coastal implementation. This is approved by the in-state WBD Steward and WBD National Technical Coordinators (NTC) Legacy 18100200 has now been subdivide into 18100201, 18100202, 18100203, and 18100204. The legacy name for 180100200 has been retained as the Salton Sea for new code 18100204. New names for the other subdivisions have been reviewed and accepted as follows: 18100201 Whitewater River 18100202 Carrizo Creek 18100203 San Felipe Creek Legacy 18040002 and new 18040051 name Middle San Joaquin-Lower Merced-Lower Stanislaus was change to Rock Creek-French Camp Slough. Legacy 18020124 Honcut Headwaters name and code have been retired. It was absorbed in to legacy 18020106 Lower Feather to form the new 18020159. WBD National Technical Coordinators (NTC) recommends the name retain the combined legacy names of Honcut Headwaters-Lower Feather. Legacy 18020120 Upper Butte and legacy 18020105 Lower Butte have been retired. The two hydrologic units were combined in to the new accepted code and name of 18020158 Butte Creek. Legacy 18020119 Mill-Big Chico, 18020103 Sacramento-Lower Thomes, and 18020114 Upper Elder Thomes have been retired. The accepted names and codes for the newly delineated hydrologic units to replace those areas are 18020157 Big Chico Creek-Sacramento River, 18020156 Thomes Creek-Sacramento River, and 18020155 Paynes Creek-Sacramento River. The following legacy names and codes have been retired: 18020113 Cottonwood Headwaters, 18020102 Lower Cottonwood, 18020101 Sacramento-Lower Cow-Lower Clear, 18020118 Upper Cow-Battle, and 18020112 Sacramento-Upper Clear. The accepted codes for the newly delineated hydrologic units that replace those areas will be 18020151-18020154. The approved names are: 18020151 Cow Creek 18020152 Cottonwood Creek 18020153 Battle Creek 18020154 Clear Creek-Sacramento River 18010111 code and name have been retired and the area has been subdivided. A portion is in 18010109 Gualala-Salmon, and the other portion in 18050005 Tomales-Drake Bays 18020107 code and name have been retired and the area is now included with 18020125 Upper Yuba 18020108 code and name have been retired and the area is now included with 18020126 Upper Bear 18020110 code and name have been retired and the area is now included with 18020116 Upper Cache 18030008 code and name have been retired and the area is now included with 18030012 Tulare Lake Bed 18030011 code and name have been retired and the area has been subdivided. A portion is in 18030012 Tulare Lake Bed, and the other portion in 18030009 Upper Dry 18040004 code and name have been retired and the area is now part of 18040011 Upper Calaveras California 18040005 code and name have been retired and the area is now part of 18040003 San Joaquin Delta, 18040012, 18040012 Upper Mokelumne, and 18040003 Upper Cosumnes 18020109 code and name have been retired and the area is now part of 18020163 Lower Sacramento 18020117 code and name have been retired and the area is now part of 18020162 Upper Putah 18060001 code and name have been retired, and the areas are now subdivided between 18050006 San Francisco Coastal South and 18060015 Monterey Bay 18060011 code and name have been retired and now is subdivided between 18060015 Monterey Bay and 18060005 Salinas 18060012 code and name have been retired and the area is now part of 18060006 Central Coast and 18060015 Monterey Bay Colorado: Legacy 14010006 Parachute-Roan name and code have been retired. This area has been combined with 14010005 Colorado Headwaters-Plateau. Connecticut: 01100007 code and name have been retired and the area is now part of 0110004 Quinnipiac Delaware: 02060007 code and name have been retired and this area now included with 02080110 Tangier 02060008 code and name have been retired and this area now included with 02080109 Nanticoke 02060009 code and name have been retired and this area is now part of 02080111 Pokomoke-Western Lower Delmarva and 02080110 Tangier 02060010 code and name have been retired and this area is now part of 02040303 Chincoteague Florida: Legacy 03090202 Everglades has been modified as follows: The largest part of 03090202 Everglades carries the legacy code and name. Subdivided out new Subbasin 03090206 Florida Southeast Coast Combined additional smaller portions of 03090202 with adjacent Subbasins. Louisiana: 2009 - USGS Water Science Center, Salt Lake City, UT. Recoded all HUC12 codes and DS codes for 08080100 Atchafalaya to 08080101 Atchafalaya. 08080101 is the correct code. During the development of the WBD the 12-digit hydrologic units were miscoded as 08080100. Maine Updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details. Massachusetts: 01070002 is retained for the headwaters of this original code, but ¾ of the original area is now coded 01070006. The area now coded 01070006 retained the original name for the area of legacy 01070002 and is called Merrimack, whereas 01070002 is not called Winnipesaukee River (other state documentation supporting this decision) New Hampshire: Legacy 01070002 Merrimack was subdivided in to 01070002 Merrimack to the North and 01070006 Merrimack River to the South. The technical team requests that the portion to the South retain the legacy code and name of 01070002, Merrimack, and that the northern hydrologic unit receive the code and name 01070006 Winnipesaukee River. There is no Merrimack River in the northern portion and the southern portion most closely resembles the legacy delineation. Additional updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details New York: Legacy 04150307 English-Salmon was subdivided into 04150307 Salmon and 04150308 Chateaugay-English. The Technical Team accepts this change. 2010- Edits were made to Lake Champlain Basin moving it from Region 02 to Region 04. Update to delineation data in Lake Champlain area on the US side and Canadian side. All lines within Canada are draft delineations only. These boundaries were based on Canada's 1:50,000 National Hydrography Network Work Units or were delineated using either 1:50,000 scale topos or CDED elevation data. These boundaries have not been fully reviewed or approved by either the Canadian federal or provincial agencies and are subject to change. Border polygons are based off of these internal boundaries within Canada and so are also subject to change within Canada. Edits made by USGS Salt Lake City, Water Science Center: to the Lake Champlain and surrounding subbasins to remove all shoreline representations from the WBD. The codes, DS codes and names where updated where necessary. 02010004 name and code have been retired, and this area was subdivided, part is in 04150404 Ausable River and part in 04150408 Lake Champlain. 02010006 name and code have been retired and this area was subdivided. Part is in 04150406 Saranac River and part is in 04150408 Lake Champlain. 02010001 name and code have been retired and this area was subdivided into 04150401 Mettawee River and 04150408 Lake Champlain The new Lake Champlain unit 04150408 is made up of parts of original HUC250K units 02010001, 02010002, 02010003, 02010004, 02010005, 02010006 and 02010007 Additional updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details North Carolina: Legacy subbasin 03030001 and legacy subbasin 03020106 have been combined and recommended for acceptance as a new 6-digit Basin 030203 Onslow Bay. Legacy Subbasin 03030001 New has been recoded and renamed to 03020302 New River. The technical team accepts the new code and name. Legacy Subbasin 03020106 Bogue-Core Sounds has been recoded and renamed to 03020301 White Oak River. The technical team accepts the new code and name. 03040207 code and name are still in use, but the portion that stretches along the coast has been broken out to a new 03040208 Coastal Carolina North Dakota: Legacy 10160007 East Missouri Coteau, changed to North Fork Snake as that is a better hydrologic representation of the hydrologic unit. Legacy 10170103 South Big Sioux Coteau name changed to Lake Thompson Legacy 10170201 Middle Big Sioux Coteau name changed to Upper Big Sioux Legacy 10170202 Upper Big Sioux name changed to Middle Big Sioux Because legacy 10170203 Lower Big Sioux should stay the same, it doesn’t make sense not to have a middle and an upper. Although the boundaries have significantly relocated, it seem like most viable option is to retain the Upper, Middle, Lower naming convention. Additional updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details Oregon: Legacy 17100304 Coos was subdivided into 17100304 Coos to the north and 17100306 Sixes to the south. The Technical team accepts this change. South Carolina: Legacy 03040207 Carolina Coastal-Sampit was subdivided into a southern portion called 03040207 Carolina Coastal-Sampit and a northern portion newly coded and named 03040208 Coastal Carolina. The technical team recognizes this as an acceptable solution, however, future coastal delineations may require additional modification. Legacy 03050202 South Carolina Coastal has now been subdivided into subbasins 03050202 South Carolina Coastal and 03050209 Bulls Bay with an additional portion of 03050202 being aggregated in with legacy 03050201 Legacy 03050208 Broad-St. Helena has had the following modifications which the NTC concurs with: 03050208 Broad-St. Helena code and name retained into a much smaller unit capturing only the Broad-St. Helena Rivers Subdivided into new 03060110 Calibogue Sound-Wright River, and now part of the adjacent Subregion to the south. Subdivided into new 03050210 St. Helena Island portion combined with 03050207 Salkehatchie. Legacy 03050205 name is changed to Four Hole Swamp (from Edisto...this name was flipped with the hydrologic unit the water feature resides in). The WBD National Technical Team recommended that this name not be reused as it has been historically assigned to 03050206, but all in state interagency folks felt strongly that it should be reused as that is by far the predominant feature for the HU. Reports since 2005 reflect this. Legacy 03050206 name is changed to Edisto River to reflect the major hydrologic feature. South Dakota: 2009 - Edits made by in-state data steward; all of sub-basin 10160010 (now retired) was recoded to 10160011 (Lower James); In addition to the recoding of this 8-digit level unit in the James Basin, this group of edits primarily consisted of minor corrections to linework and 12-digit downstream codes, populating ncontrb_A fields of selected 12-digit units, and tweaking selected 5th- and 6th-level unit names to facilitate merging with GNIS. Texas: Legacy13070008 Lower Pecos was subdivided into a northern and southern portion. The northern portion retains the 13070008 code but name should be Pecos. The new subdivided 13070012 hydrologic unit should carry the legacy name Lower Pecos. Legacy 13090002 Lower Rio Grande is missing from the current WBD. Vermont: Updated 01110000 from Region 01 to Region 04 and is now 04150500 (St. Francois River). Craig Johnston (USGS) pointed out that this unit contains the St. Francois River which flows up into Canada and then dumps into the St Lawrence River. Region 01 is Maine Coastal drainage's while region 04 is St. Lawrence drainage's, so this unit really belongs in region 04. 2010- Edits were made to Lake Champlain Basin moving it from Region 02 to Region 04. Update to delineation data in Lake Champlain area on the US side and Canadian side. All lines within Canada are draft delineations only. These boundaries were based on Canada's 1:50,000 National Hydrography Network Work Units or were delineated using either 1:50,000 scale topos or CDED elevation data. These boundaries have not been fully reviewed or approved by either the Canadian federal or provincial agencies and are subject to change. Border polygons are based off of these internal boundaries within Canada and so are also subject to change within Canada. Edits made by USGS Salt Lake City, Water Science Center: to the Lake Champlain and surrounding subbasins to remove all shoreline representations from the WBD. The codes, DS codes and names where updated where necessary. 02010001 name and code have been retired and this area was subdivided into 04150401 Mettawee River and 04150408 Lake Champlain. 02010002 name and code have been retired and this area was subdivided into 04150402 Otter Creek and 04150408 Lake Champlain. 02010003 name and code have been retired and this area was subdivided into 04150403 Winooski River and 04150408 Lake Champlain. 02010005 name and code have been retired and this area was subdivided into 04150405 Lamoille River and 04150408 Lake Champlain. 02010007 name and code have been retired and this area was subdivided into 04150407 Missiquoi River and 04150408 Lake Champlain. The new Lake Champlain unit 04150408 is made up of parts of original HUC250K units 02010001, 02010002, 02010003, 02010004, 02010005, 02010006 and 02010007. Additional updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details Wisconsin: Legacy 07090001Upper Rock keeps the same code and name but the original hydrologic unit delineation changed significantly. Legacy 07090002 Crawfish keeps the same code and is renamed to Middle Rock. The original hydrologic unit delineation changed significantly.2016-01-01The following section describes updates to the WBD data model (2012-2016). July 2012 National responsibility for stewardship and maintenance of the WBD transferred from NRCS to the USGS. As a result the WBD data model was updated and the data was incorporated into the NHD database. WBD model updated based on input from NRCS, USGS, NHD program and user community. WBD polygon dataset subdivided into individual polygon datasets for each level of hydrologic units. Two additional datasets added for the next 2 levels of subdivisions (14- and 16-digit) but are not required for each state to populate these. Attribute tables for polygons and lines were updated with some fields being added, renamed or removed. See below for a list of changes. WBD Line attribute table changes: Old Model: HU_LEVEL LINESOURCE META_ID – removed – Feature level metadata functionality is added to track updates in the new model LEFT_HUC_8 – removed RIGHT_HUC_8 – removed New Model: Permanent_Identifier – New field for feature level metadata Source_FeatureID – New field for feature level metadata Meta_SourceID – New field for feature level metadata Source_DataDesc – New field for feature level metadata Source_Originator – New field for feature level metadata HU_Level HU_Class – New field populated with the number of digits of the hydrologic unit LoadDate – New field for feature level metadata LineSource WBD Polygon attribute table changes: Codes and names moved from single polygon dataset to the appropriate hydrologic unit dataset for each level Old Model: HUC_8 – moved to 8-digit polygon dataset HUC_10 – moved to 10-digit polygon dataset HUC_12 – moved to 12-digit polygon dataset ACRES – re-named to AREA_ACRES NCONTRB_A HU_10_GNIS – Replaced with Gaz_ID HU_12_GNIS – Replaced with Gaz_ID HU_10_DS – Removed from new model HU_10_NAME – moved to 10-digit polygon dataset HU_10_MOD – moved to 10-digit polygon dataset HU_10_TYPE – moved to 10-digit polygon dataset HU_12_DS – moved to 12-digit polygon dataset HU_12_NAME – moved to 12-digit polygon dataset HU_12_MOD – moved to 12-digit polygon dataset HU_12_TYPE – moved to 12-digit polygon dataset META_ID - removed – Feature level metadata functionality is added to track updates in the new model STATES New Model: Fields included in all levels of hydrologic unit polygon datasets. Gaz_ID – Old model was the GNIS field Area_Acres - Renamed Area_SqKm – New field States LoadDate- New field HUC_"#digit" - For Example: HUC12 HU_"#digit"_Name - For Example: HU_12_Name Fields included with the 10-, 12-, 14- and 16- digit polygon datasets. HU_"#digit"_Type - For Example HU_12_Type HU_"#digit"_Mod - For Example HU_12_Mod Fields included with the 12-, 14- and 16- digit polygon datasets. NContrb_Acres NContrb_SqKm – New field Tables New Model: ExternalIDCrosswalk FeaturetoHUMod FeatureToMetadata Meta_ProcessDetail Meta_SourceDetail ProcessingParameters UpdateStatus WBD_Attributes WBD_Nav October 2012 Changes to the WBD data model include the elimination of the underscore "_" in field and table names, switching to camelCase. Other changes to the WBD data model include the elimination of the WBDPoint table, the WBDPointEvent table, and the WBDAtributes table. Fields have been added to the WBDHU12 polygon feature dataset that allow metadata record linking and also include the downstream attribute. NWIS drainage area line and polygon feature classes have been added also. New Model: WBD line dataset TNMID – Use to be PermanentID HULevel HUClass – New field populated with the number of digits of the hydrologic unit HUMod LineSource LoadDate – New field for feature level metadata (Source_FeatureID, Meta_SourceID, Source_DataDesc, Source_Originator fields removed from WBDLine dataset) WBD polygon dataset Fields included in all levels of hydrologic unit polygon datasets. TNMID – New field for feature level metadata MetaSourceID – New field for feature level metadata SourceDataDesc – New field for feature level metadata SourceOriginator – New field for feature level metadata SourceFeatureID – New field for feature level metadata LoadDate – New field for feature level metadata GNIS_ID = replaces Gaz_ID AreaAcres AreaSqKm States LoadDate HUC"digit" - for example: HUC12 Name Fields included with the 10-, 12-, 14- and 16- digit polygon datasets. HUType HUMod Fields included with the 12-, 14- and 16- digit polygon datasets. NContrbAcres NContrbSqKm Field included with the 12-digit polygon dataset. ToHUC – This attribute was included in the original WBD data model as HU_12_DS and represents the code of the next unit downstream. The values for this field were populated for the last version of the dataset in the old model by linking the 2 tables by the 12-digit code and calculating the value over. NWISDrainageArea polygon dataset added as a place holder for when these datasets are generated. Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate ReferenceTNMID SiteID AgencyCode SiteNumber StationName TotalDrainageArea ContributingDrainageArea NWISBoundary line dataset added as a place holder for when these datasets are generated. Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate ReferenceTNMID NonContributingDrainageArea polygon dataset added as a place holder for when these datasets are generated. Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate 2013 Changes to the WBD data model include updates to the field for the NonContributingDrainageArea polygon dataset, NWISBoundary line dataset and the NWISDrainageArea polygon dataset. This includes the addition of new fields and the re-naming of some of the existing fields. NWISDrainageArea polygon dataset: Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate ReferenceTNMIDNHDPointEvent – Renamed from ReferenceTNMID AgencyCode SiteNumber StationName ContributingDrainageAreaAcres – Originally called ContributingDrainageArea TotalDrainageAreaAcres – Originally called TotalDrainageArea ContributingDrainageAreaSqKm – New field TotalDrainageAreaSqKm – New field SiteID - Removed NWISBoundary line dataset: Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate ReferenceTNMIDPointEvent – Originally called ReferenceTNMID SiteNumber – New field NonContributingDrainageArea polygon dataset Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate NonContributingSqKm – New field NonContributingAcres – New field ReferenceTNMID12digitHU – New field Tables ExternalCrosswalk - Originally called ExternalIDCrosswalk FeatureToHUMod - removed FeatureToMetadata HUMod - NewField MetaProcessDetail - Previous version called Meta_ProcessDetail MetaSourceDetail - Previous version called Meta_SourceDetail ProcessingParameters UpdateStatus WBD_Attributes - removed WBDNavigation - Originally WBD_Nav 2014 2015 Changes to the WBD data model include updates or additions to the fields for the NonContributingDrainageArea polygon dataset, NWISBoundary line dataset and the NWISDrainageArea polygon dataset. The majority of these are due to the length of the original name for the field. A new line dataset was created for Non Contributing Area called NonContributingDrainageLine NWISBoundary was re-named NWISDrainageLine NWISDrainageArea polygon dataset: Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate AreaSqKm – New Field AgencyCode SiteNumber StationName TotalAreaSqMi – New Field NWISTotalAreaSqMi – New Field ContributingAreaSqMi – New Field NWISContributingAreaSqMi – New Field ReferenceTNMIDNHDPointEvent Remarks – New Field ContributingDrainageAreaAcres – Removed TotalDrainageAreaAcres – Removed ContributingDrainageAreaSqKm – Removed TotalDrainageAreaSqKm – Removed NWISDrainageLine line dataset Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate LengthKm – New Field LineSource – New Field Agency Code – New Field SiteNumber ReferenceTNMIDPointEvent – Removed NonContributingDrainageArea polygon dataset Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate AreaSqKm – New Field NonContributingAreaSqKm – Re-named from NonContributingSqKm Remarks – New Field NonContributingAcres - Removed ReferenceTNMID12digitHU - Removed NonContributingDrainageLine line dataset – New dataset Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate LengthKm LineSource 2016 WBDLine dataset TNMID HULevel - removed HUDigit - Originally called HUClass HUMod LineSource MetaSourceID LoadDate WBD polygon datasets Fields included with the 12-, 14- and 16- digit polygon datasets. NonContributingAreaAcres - previous version was NonContributingAcres NonContributingAreaSqKm - previous version was NonContributingSqKm2016-01-01The original hydrologic unit boundaries were hand-digitized on a digitizing table from the USGS 7.5 minute quadrangles. This process occurred over a span of approximately 20 years from 1980 to 2000.2000-01-01From 2005 to 2011, original dataset attribution was reviewed and revised to reflect the updates and changes made to the dataset. These revisions to the attribution were also made to ensure that the dataset met the Federal Standards for Delineation of Hydrologic Unit Boundaries. The NHD was used during this process to help with the naming and downstream coding of each unit. In some instances there were name discrepancies between the NHD and what was printed on the DRGs. In these instances the DRGs were used instead of the NHD.2011-01-01Additional information about the processes used to create and maintain the WBD after June of 2012 can be found in the table called METAPROCESSDETAIL. The process descriptions are linked using the TNMID to the FEATURETOMETADATA table. In addition the METASOURCEDETAIL table can also be linked to determine the sources used to create or update the WBD data.2012-01-01The new WBD (2005-2011) was reviewed on-screen by USGS, EPA, or NRCS personnel using DRGs and DOQss as base maps. Hydrologic Units that were less than 10,000 acres (for the 12-digit units) and 40,000 acres (for the 10-digit units) were reviewed and if possible were dissolved out. Along the coastal areas, standard watersheds that fell within the federal guideline's size criteria (12-digit: 10,000-40,000 acres, 10-digit: 40,000-250,000 acres) were delineated. If possible the remaining frontals were left as their own units. Frontals that did not meet the size criteria were grouped together with other frontals within the overall 8-digit or 10-digit unit. Hydrologic units that were greater than 40,000 acres (12-digit units) and 250,000 acres (10-digit units) were reviewed. If possible these units where then subdivided into smaller units that met the size criteria. In some cases, additional breaks within the unit would not have made sense or have been very useful. For example: When the majority of the unit was made up by a major waterbody feature such as a lake or reservoir and the surrounding tributaries were too small to delineate as their own unit. In these instances the unit was left big.2011-01-01From 2005 to 2011, hydrologic units from surrounding states were used to edgematch watershed boundaries as they were developed.2011-01-01Hydrography data used for reference in watershed boundary delineation process24000National Hydrography DatasetNHD2016-01-01U.S. Geological SurveyU.S. Geological SurveyDenver, COVector Digital Datahttp://nhd.usgs.gov/data.htmlPublication dateAerial imagery used for reference in watershed boundary delineation24000Digital Orthophoto QuadsUSGSDOQU.S. Geological SurveyU.S. Geological SurveyUnknownRaster Digital Datahttp://datagateway.nrcs.usda.gov20100325Reference dataset for the 2-, 4-, 6- and 8-digit hydrologic units250000250K Hydrologic Unit BoundariesHUC250K1994-01-01U.S. Geological SurveyReston, VirginiaU.S. Geological SurveyVector Digital Datahttp://water.usgs.gov/lookup/getspatial?huc250kPublication date1994-01-01Base information for hydrologic unit delineation.240007.5 Minute Topographic Quadrangle SheetsUSGSTopoU.S. Geological SurveyReston, VirginiaU.S. Geological SurveyPaper MapPublication date1884-01-012006-01-01Base information for hydrologic unit delineation.24000U.S. Geological Survey Digital Raster Graphic (DRG)USGSDRG1999-01-01U.S. Geological SurveyU.S. Geological SurveyUnknownRaster Digital Datahttp://datagateway.nrcs.usda.govPublication date1999-01-01original metadataPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxtZXRhZGF0YT4NCiAgPGlk +aW5mbz4NCiAgICA8Y2l0YXRpb24+DQogICAgICA8Y2l0ZWluZm8+DQogICAgICAgIDxvcmlnaW4+ +VS5TLiBHZW9sb2dpY2FsIFN1cnZleSAoVVNHUyk8L29yaWdpbj4NCiAgICAgICAgPG9yaWdpbj5V +LlMuIERlcGFydG1lbnQgb2YgQWdyaWN1bHR1cmUgLSBOYXR1cmFsIFJlc291cmNlIENvbnNlcnZh +dGlvbiBTZXJ2aWNlIChOUkNTKTwvb3JpZ2luPg0KICAgICAgICA8b3JpZ2luPlUuUy4gRW52aXJv +bm1lbnRhbCBQcm90ZWN0aW9uIEFnZW5jeSAoRVBBKTwvb3JpZ2luPg0KICAgICAgICA8b3JpZ2lu +Pk90aGVyIEZlZGVyYWwsIFN0YXRlLCBhbmQgbG9jYWwgcGFydG5lcnMgKHNlZSBkYXRhc2V0IHNw +ZWNpZmljIG1ldGFkYXRhIGZvciBkZXRhaWxzIGh0dHA6Ly9uaGQudXNncy5nb3Yvd2JkX21ldGFk +YXRhLmh0bWwpPC9vcmlnaW4+DQogICAgICAgIDxwdWJkYXRlPjIwMTUxMjE2PC9wdWJkYXRlPg0K +ICAgICAgICA8dGl0bGU+TmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8 +L3RpdGxlPg0KICAgICAgICA8Z2VvZm9ybT5WZWN0b3IgRGlnaXRhbCBEYXRhIFNldDwvZ2VvZm9y +bT4NCiAgICAgICAgPG9ubGluaz5mdHA6Ly9yb2NreWZ0cC5jci51c2dzLmdvdi92ZGVsaXZlcnkv +RGF0YXNldHMvU3RhZ2VkL0h5ZHJvZ3JhcGh5L1dCRC9OYXRpb25hbC9HREIvTmF0aW9uYWxfV0JE +LnppcDwvb25saW5rPg0KICAgICAgPC9jaXRlaW5mbz4NCiAgICA8L2NpdGF0aW9uPg0KICAgIDxk +ZXNjcmlwdD4NCiAgICAgIDxhYnN0cmFjdD5UaGUgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQg +KFdCRCkgaXMgYSBjb21wcmVoZW5zaXZlIGFnZ3JlZ2F0ZWQgY29sbGVjdGlvbiBvZiBoeWRyb2xv +Z2ljIHVuaXQgZGF0YSBjb25zaXN0ZW50IHdpdGggdGhlIG5hdGlvbmFsIGNyaXRlcmlhIGZvciBk +ZWxpbmVhdGlvbiBhbmQgcmVzb2x1dGlvbi4gSXQgZGVmaW5lcyB0aGUgYXJlYWwgZXh0ZW50IG9m +IHN1cmZhY2Ugd2F0ZXIgZHJhaW5hZ2UgdG8gYSBwb2ludCBleGNlcHQgaW4gY29hc3RhbCBvciBs +YWtlIGZyb250IGFyZWFzIHdoZXJlIHRoZXJlIGNvdWxkIGJlIG11bHRpcGxlIG91dGxldHMgYXMg +c3RhdGVkIGJ5IHRoZSAiRmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBO +YXRpb25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKSIg4oCcU3RhbmRhcmTigJ0g +KGh0dHA6Ly9wdWJzLnVzZ3MuZ292L3RtLzExL2EzLykuIFdhdGVyc2hlZCBib3VuZGFyaWVzIGFy +ZSBkZXRlcm1pbmVkIHNvbGVseSB1cG9uIHNjaWVuY2UtYmFzZWQgaHlkcm9sb2dpYyBwcmluY2lw +bGVzLCBub3QgZmF2b3JpbmcgYW55IGFkbWluaXN0cmF0aXZlIGJvdW5kYXJpZXMgb3Igc3BlY2lh +bCBwcm9qZWN0cywgbm9yIHBhcnRpY3VsYXIgcHJvZ3JhbSBvciBhZ2VuY3kuIFRoaXMgZGF0YXNl +dCByZXByZXNlbnRzIHRoZSBoeWRyb2xvZ2ljIHVuaXQgYm91bmRhcmllcyB0byB0aGUgMTItZGln +aXQgKDZ0aCBsZXZlbCkgZm9yIHRoZSBlbnRpcmUgVW5pdGVkIFN0YXRlcy4gIFNvbWUgYXJlYXMg +bWF5IGFsc28gaW5jbHVkZSBhZGRpdGlvbmFsIHN1YmRpdmlzaW9ucyByZXByZXNlbnRpbmcgdGhl +IDE0LSBhbmQgMTYtZGlnaXQgaHlkcm9sb2dpYyB1bml0IChIVSkuIEF0IGEgbWluaW11bSwgdGhl +IEhVcyBhcmUgZGVsaW5lYXRlZCBhdCAxOjI0LDAwMC1zY2FsZSBpbiB0aGUgY29udGVybWlub3Vz +IFVuaXRlZCBTdGF0ZXMsIDE6MjUsMDAwLXNjYWxlIGluIEhhd2FpaSwgUGFjaWZpYyBiYXNpbiBh +bmQgdGhlIENhcmliYmVhbiwgYW5kIDE6NjMsMzYwLXNjYWxlIGluIEFsYXNrYSwgbWVldGluZyB0 +aGUgTmF0aW9uYWwgTWFwIEFjY3VyYWN5IFN0YW5kYXJkcyAoTk1BUykuIEhpZ2hlciByZXNvbHV0 +aW9uIGJvdW5kYXJpZXMgYXJlIGJlaW5nIGRldmVsb3BlZCB3aGVyZSBwYXJ0bmVycyBhbmQgZGF0 +YSBleGlzdCBhbmQgd2lsbCBiZSBpbmNvcnBvcmF0ZWQgYmFjayBpbnRvIHRoZSBXQkQuIFdCRCBk +YXRhIGFyZSBkZWxpdmVyZWQgYXMgYSBkYXRhc2V0IG9mIHBvbHlnb25zIGFuZCBjb3JyZXNwb25k +aW5nIGxpbmVzIHRoYXQgZGVmaW5lIHRoZSBib3VuZGFyeSBvZiB0aGUgcG9seWdvbi4gICBXQkQg +cG9seWdvbiBhdHRyaWJ1dGVzIGluY2x1ZGUgaHlkcm9sb2dpYyB1bml0IGNvZGVzIChIVUMpLCBz +aXplIChpbiB0aGUgZm9ybSBvZiBhY3JlcyBhbmQgc3F1YXJlIGtpbG9tZXRlcnMpLCBuYW1lLCBk +b3duc3RyZWFtIGh5ZHJvbG9naWMgdW5pdCBjb2RlLCB0eXBlIG9mIHdhdGVyc2hlZCwgbm9uLWNv +bnRyaWJ1dGluZyBhcmVhcywgYW5kIGZsb3cgbW9kaWZpY2F0aW9ucy4gVGhlIEhVQyBkZXNjcmli +ZXMgd2hlcmUgdGhlIHVuaXQgaXMgaW4gdGhlIGNvdW50cnkgYW5kIHRoZSBsZXZlbCBvZiB0aGUg +dW5pdC4gV0JEIGxpbmUgYXR0cmlidXRlcyBjb250YWluIHRoZSBoaWdoZXN0IGxldmVsIG9mIGh5 +ZHJvbG9naWMgdW5pdCBmb3IgZWFjaCBib3VuZGFyeSwgbGluZSBzb3VyY2UgaW5mb3JtYXRpb24g +YW5kIGZsb3cgbW9kaWZpY2F0aW9ucy48L2Fic3RyYWN0Pg0KICAgICAgPHB1cnBvc2U+VGhlIGlu +dGVudCBvZiBkZWZpbmluZyBIeWRyb2xvZ2ljIFVuaXRzIChIVSkgd2l0aGluIHRoZSBXYXRlcnNo +ZWQgQm91bmRhcnkgRGF0YXNldCBpcyB0byBlc3RhYmxpc2ggYSBiYXNlLWxpbmUgZHJhaW5hZ2Ug +Ym91bmRhcnkgZnJhbWV3b3JrLCBhY2NvdW50aW5nIGZvciBhbGwgbGFuZCBhbmQgc3VyZmFjZSBh +cmVhcy4gSHlkcm9sb2dpYyB1bml0cyBhcmUgaW50ZW5kZWQgdG8gYmUgdXNlZCBhcyBhIHRvb2wg +Zm9yIHdhdGVyLXJlc291cmNlIG1hbmFnZW1lbnQgYW5kIHBsYW5uaW5nIGFjdGl2aXRpZXMgcGFy +dGljdWxhcmx5IGZvciBzaXRlLXNwZWNpZmljIGFuZCBsb2NhbGl6ZWQgc3R1ZGllcyByZXF1aXJp +bmcgYSBsZXZlbCBvZiBkZXRhaWwgcHJvdmlkZWQgYnkgbGFyZ2Utc2NhbGUgbWFwIGluZm9ybWF0 +aW9uLiBUaGUgV0JEIGNvbXBsZW1lbnRzIHRoZSBOYXRpb25hbCBIeWRyb2dyYXBoeSBEYXRhc2V0 +IChOSEQpIGFuZCBzdXBwb3J0cyBudW1lcm91cyBwcm9ncmFtbWF0aWMgbWlzc2lvbnMgYW5kIGFj +dGl2aXRpZXMgaW5jbHVkaW5nOiB3YXRlcnNoZWQgbWFuYWdlbWVudCwgcmVoYWJpbGl0YXRpb24g +YW5kIGVuaGFuY2VtZW50LCBhcXVhdGljIHNwZWNpZXMgY29uc2VydmF0aW9uIHN0cmF0ZWdpZXMs +IGZsb29kIHBsYWluIG1hbmFnZW1lbnQgYW5kIGZsb29kIHByZXZlbnRpb24sIHdhdGVyLXF1YWxp +dHkgaW5pdGlhdGl2ZXMgYW5kIHByb2dyYW1zLCBkYW0gc2FmZXR5IHByb2dyYW1zLCBmaXJlIGFz +c2Vzc21lbnQgYW5kIG1hbmFnZW1lbnQsIHJlc291cmNlIGludmVudG9yeSBhbmQgYXNzZXNzbWVu +dCwgd2F0ZXIgZGF0YSBhbmFseXNpcyBhbmQgd2F0ZXIgY2Vuc3VzLjwvcHVycG9zZT4NCiAgICAg +IDxzdXBwbGluZj5UaGUgV0JEIHdhcyBwcm9kdWNlZCBhbmQgaXMgbWFpbnRhaW5lZCB0aHJvdWdo +IGEgY29vcGVyYXRpdmUgcHJvY2VzcyBpbnZvbHZpbmcgc3RhdGUsIGZlZGVyYWwgYW5kIGxvY2Fs +IHBhcnRuZXJzLiBQcm9jZXNzIGluZm9ybWF0aW9uIGZvciBhIHNwZWNpZmljIHN0YXRlIG9yIHJl +Z2lvbiBjYW4gYmUgZm91bmQgd2l0aGluIHRoZSBzdGF0ZSBzcGVjaWZpYyBtZXRhZGF0YSBsb2Nh +dGVkIGF0IGh0dHA6Ly9uaGQudXNncy5nb3Yvd2JkX21ldGRhdGEuaHRtbC4gVGhpcyBtZXRhZGF0 +YSBmaWxlIGhhcyBpbmZvcm1hdGlvbiBmb3IgV0JEIGZlYXR1cmVzIGNvbnRhaW5lZCBpbiB0aGUg +V0JEIGZlYXR1cmUgZGF0YXNldC4gVGhpcyBpbmNsdWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUg +Mi0sIDQtLCA2LSwgOC0sIDEwLSwgMTItLCAxNC0sIDE2LWRpZ2l0IHBvbHlnb25zIGFuZCBXQkRf +TGluZSBkYXRhc2V0LiBVc2VycyBhY2Nlc3NpbmcgdGhlIFdCRCB2aWEgc2hhcGVmaWxlIHdpbGwg +bmVlZCB0byBzZWFyY2ggZm9yIHRoZSBhdHRyaWJ1dGlvbiByZWxhdGVkIHRvIHRoYXQgc3BlY2lm +aWMgZGF0YXNldC48L3N1cHBsaW5mPg0KICAgIDwvZGVzY3JpcHQ+DQogICAgPHRpbWVwZXJkPg0K +ICAgICAgPHRpbWVpbmZvPg0KICAgICAgICA8cm5nZGF0ZXM+DQogICAgICAgICAgPGJlZ2RhdGU+ +MTk4MDwvYmVnZGF0ZT4NCiAgICAgICAgICA8ZW5kZGF0ZT4yMDE2PC9lbmRkYXRlPg0KICAgICAg +ICA8L3JuZ2RhdGVzPg0KICAgICAgPC90aW1laW5mbz4NCiAgICAgIDxjdXJyZW50PnB1YmxpY2F0 +aW9uIGRhdGU8L2N1cnJlbnQ+DQogICAgPC90aW1lcGVyZD4NCiAgICA8c3RhdHVzPg0KICAgICAg +PHByb2dyZXNzPkNvbXBsZXRlPC9wcm9ncmVzcz4NCiAgICAgIDx1cGRhdGU+QXMgbmVlZGVkPC91 +cGRhdGU+DQogICAgPC9zdGF0dXM+DQogICAgPHNwZG9tPg0KICAgICAgPGJvdW5kaW5nPg0KICAg +ICAgICA8d2VzdGJjPi0xNzkuMjI5NjU1NDg3PC93ZXN0YmM+DQogICAgICAgIDxlYXN0YmM+MTc5 +Ljg1NjY3NDczNTwvZWFzdGJjPg0KICAgICAgICA8bm9ydGhiYz43MS40Mzk1NzI1OTAyPC9ub3J0 +aGJjPg0KICAgICAgICA8c291dGhiYz4tMTQuNDI0Njk1MDk0Mzwvc291dGhiYz4NCiAgICAgIDwv +Ym91bmRpbmc+DQogICAgPC9zcGRvbT4NCiAgICA8a2V5d29yZHM+DQogICAgICA8dGhlbWU+DQog +ICAgICAgIDx0aGVtZWt0PklTTyAxOTExNSBUb3BpYyBDYXRlZ29yeTwvdGhlbWVrdD4NCiAgICAg +ICAgPHRoZW1la2V5PmlubGFuZFdhdGVyczwvdGhlbWVrZXk+DQogICAgICAgIDx0aGVtZWtleT5X +YXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldDwvdGhlbWVrZXk+DQogICAgICAgIDx0aGVtZWtleT5X +QkQ8L3RoZW1la2V5Pg0KICAgICAgICA8dGhlbWVrZXk+SHlkcm9sb2dpYyBVbml0czwvdGhlbWVr +ZXk+DQogICAgICAgIDx0aGVtZWtleT5IeWRyb2xvZ2ljIFVuaXQgQ29kZTwvdGhlbWVrZXk+DQog +ICAgICAgIDx0aGVtZWtleT5IVUM8L3RoZW1la2V5Pg0KICAgICAgICA8dGhlbWVrZXk+UmVnaW9u +PC90aGVtZWtleT4NCiAgICAgICAgPHRoZW1la2V5PlN1Yi1yZWdpb248L3RoZW1la2V5Pg0KICAg +ICAgICA8dGhlbWVrZXk+QmFzaW48L3RoZW1la2V5Pg0KICAgICAgICA8dGhlbWVrZXk+U3ViLWJh +c2luPC90aGVtZWtleT4NCiAgICAgICAgPHRoZW1la2V5PldhdGVyc2hlZDwvdGhlbWVrZXk+DQog +ICAgICAgIDx0aGVtZWtleT5TdWJ3YXRlcnNoZWQ8L3RoZW1la2V5Pg0KICAgICAgICA8dGhlbWVr +ZXk+Mi1kaWdpdDwvdGhlbWVrZXk+DQogICAgICAgIDx0aGVtZWtleT40LWRpZ2l0PC90aGVtZWtl +eT4NCiAgICAgICAgPHRoZW1la2V5PjYtZGlnaXQ8L3RoZW1la2V5Pg0KICAgICAgICA8dGhlbWVr +ZXk+OC1kaWdpdDwvdGhlbWVrZXk+DQogICAgICAgIDx0aGVtZWtleT4xMC1kaWdpdDwvdGhlbWVr +ZXk+DQogICAgICAgIDx0aGVtZWtleT4xMi1kaWdpdDwvdGhlbWVrZXk+DQogICAgICAgIDx0aGVt +ZWtleT4xNC1kaWdpdDwvdGhlbWVrZXk+DQogICAgICAgIDx0aGVtZWtleT4xNi1kaWdpdDwvdGhl +bWVrZXk+DQogICAgICA8L3RoZW1lPg0KICAgICAgPHBsYWNlPg0KICAgICAgICA8cGxhY2VrdD5V +LlMuIERlcGFydG1lbnQgb2YgQ29tbWVyY2UsIDE5NzcsIENvdW50cmllcywgZGVwZW5kZW5jaWVz +LCBhcmVhcyBvZiBzcGVjaWFsIHNvdmVyZWlnbnR5LCBhbmQgdGhlaXIgcHJpbmNpcGFsIGFkbWlu +aXN0cmF0aXZlIGRpdmlzaW9ucyAoRmVkZXJhbCBJbmZvcm1hdGlvbiBQcm9jZXNzaW5nIFN0YW5k +YXJkcyAxMC0zKTogV2FzaGluZ3RvbiwgRC5DLiwgTmF0aW9uYWwgSW5zdGl0dXRlIG9mIFN0YW5k +YXJkcyBhbmQgVGVjaG5vbG9neS48L3BsYWNla3Q+DQogICAgICAgIDxwbGFjZWtleT5VUzwvcGxh +Y2VrZXk+DQogICAgICAgIDxwbGFjZWtleT5Vbml0ZWQgU3RhdGVzPC9wbGFjZWtleT4NCiAgICAg +IDwvcGxhY2U+DQogICAgPC9rZXl3b3Jkcz4NCiAgICA8YWNjY29uc3Q+Tm9uZTwvYWNjY29uc3Q+ +DQogICAgPHVzZWNvbnN0PlRoZSBkaXN0cmlidXRvciBzaGFsbCBub3QgYmUgaGVsZCBsaWFibGUg +Zm9yIGltcHJvcGVyIG9yIGluY29ycmVjdCB1c2Ugb2YgdGhpcyBkYXRhLCBiYXNlZCBvbiB0aGUg +ZGVzY3JpcHRpb24gb2YgYXBwcm9wcmlhdGUvaW5hcHByb3ByaWF0ZSB1c2VzIGRlc2NyaWJlZCBp +biB0aGlzIG1ldGFkYXRhIGRvY3VtZW50LiBJdCBpcyBzdHJvbmdseSByZWNvbW1lbmRlZCB0aGF0 +IHRoaXMgZGF0YSBpcyBkaXJlY3RseSBhY3F1aXJlZCBmcm9tIHRoZSBkaXN0cmlidXRvciBhbmQg +bm90IGluZGlyZWN0bHkgdGhyb3VnaCBvdGhlciBzb3VyY2VzIHdoaWNoIG1heSBoYXZlIGNoYW5n +ZWQgdGhlIGRhdGEgaW4gc29tZSB3YXkuIFRoZXNlIGRhdGEgc2hvdWxkIG5vdCBiZSB1c2VkIGF0 +IHNjYWxlcyBncmVhdGVyIHRoYW4gMToyNCwwMDAgZm9yIHRoZSBwdXJwb3NlIG9mIGlkZW50aWZ5 +aW5nIGh5ZHJvZ3JhcGhpYyB3YXRlcnNoZWQgYm91bmRhcnkgZmVhdHVyZSBsb2NhdGlvbnMgaW4g +dGhlIFVuaXRlZCBTdGF0ZXMuIFRoZSBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCBpcyBwdWJs +aWMgaW5mb3JtYXRpb24gYW5kIG1heSBiZSBpbnRlcnByZXRlZCBieSBhbGwgb3JnYW5pemF0aW9u +cywgYWdlbmNpZXMsIHVuaXRzIG9mIGdvdmVybm1lbnQsIG9yIG90aGVycyBiYXNlZCBvbiBuZWVk +czsgaG93ZXZlciwgdGhleSBhcmUgcmVzcG9uc2libGUgZm9yIHRoZSBhcHByb3ByaWF0ZSBhcHBs +aWNhdGlvbiBvZiB0aGUgZGF0YS4gUGhvdG9ncmFwaGljIG9yIGRpZ2l0YWwgZW5sYXJnZW1lbnQg +b2YgdGhlc2UgbWFwcyB0byBzY2FsZXMgZ3JlYXRlciB0aGFuIHRoYXQgYXQgd2hpY2ggdGhleSB3 +ZXJlIG9yaWdpbmFsbHkgZGVsaW5lYXRlZCBjYW4gcmVzdWx0IGluIG1pc3JlcHJlc2VudGF0aW9u +IG9mIHRoZSBkYXRhLiAgSWYgZW5sYXJnZWQsIHRoZSBtYXBzIHdpbGwgbm90IGluY2x1ZGUgdGhl +IGZpbmUgZGV0YWlsIHRoYXQgd291bGQgYmUgYXBwcm9wcmlhdGUgZm9yIG1hcHBpbmcgYXQgdGhl +IHNtYWxsIHNjYWxlLiAgRGlnaXRhbCBkYXRhIGZpbGVzIGFyZSBwZXJpb2RpY2FsbHkgdXBkYXRl +ZCBhbmQgdXNlcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBvYnRhaW5pbmcgdGhlIGxhdGVzdCB2ZXJz +aW9uIG9mIHRoZSBkYXRhIGZyb20gdGhlIHNvdXJjZSBkaXN0cmlidXRvci4gQWNrbm93bGVkZ21l +bnQgb2YgdGhlIG9yaWdpbmF0aW9uIGFnZW5jaWVzIHdvdWxkIGJlIGFwcHJlY2lhdGVkIGluIHBy +b2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGVzZSBkYXRhLjwvdXNlY29uc3Q+DQogICAgPHB0Y29udGFj +Pg0KICAgICAgPGNudGluZm8+DQogICAgICAgIDxjbnRvcmdwPg0KICAgICAgICAgIDxjbnRvcmc+ +VS5TLiBHZW9sb2dpY2FsIFN1cnZleTwvY250b3JnPg0KICAgICAgICA8L2NudG9yZ3A+DQogICAg +ICAgIDxjbnRhZGRyPg0KICAgICAgICAgIDxhZGRydHlwZT5NYWlsaW5nPC9hZGRydHlwZT4NCiAg +ICAgICAgICA8YWRkcmVzcz5VLlMuIEdlb2xvZ2ljYWwgU3VydmV5LCBOYXRpb25hbCBHZW9zcGF0 +aWFsIFRlY2huaWNhbCBPcGVyYXRpb25zIENlbnRlciwgUC5PLiBCb3ggMjUwNDY8L2FkZHJlc3M+ +DQogICAgICAgICAgPGNpdHk+RGVudmVyPC9jaXR5Pg0KICAgICAgICAgIDxzdGF0ZT5DTzwvc3Rh +dGU+DQogICAgICAgICAgPHBvc3RhbD44MDIyNTwvcG9zdGFsPg0KICAgICAgICA8L2NudGFkZHI+ +DQogICAgICAgIDxjbnR2b2ljZT4xLTg3Ny0yNzUtODc0NzwvY250dm9pY2U+DQogICAgICAgIDxj +bnRlbWFpbD5icGdlb0B1c2dzLmdvdjwvY250ZW1haWw+DQogICAgICA8L2NudGluZm8+DQogICAg +PC9wdGNvbnRhYz4NCiAgICA8YnJvd3NlPg0KICAgICAgPGJyb3dzZW4+ZnRwOi8vcm9ja3lmdHAu +Y3IudXNncy5nb3YvdmRlbGl2ZXJ5L0RhdGFzZXRzL1N0YWdlZC9IeWRyb2dyYXBoeS9XQkQvTmF0 +aW9uYWwvR0RCL05hdGlvbmFsX1dCRC5qcGc8L2Jyb3dzZW4+DQogICAgICA8YnJvd3NlZD5UaHVt +Ym5haWwgSlBHIGltYWdlPC9icm93c2VkPg0KICAgICAgPGJyb3dzZXQ+SlBFRzwvYnJvd3NldD4N +CiAgICA8L2Jyb3dzZT4NCiAgICA8ZGF0YWNyZWQ+RnVuZGluZyBmb3IgdGhlIFdhdGVyc2hlZCBC +b3VuZGFyeSBEYXRhc2V0IChXQkQpIHdhcyBwcm92aWRlZCBieSB0aGUgVVNEQS1OUkNTLCBVU0dT +IGFuZCBFUEEgYWxvbmcgd2l0aCBvdGhlciBmZWRlcmFsLCBzdGF0ZSBhbmQgbG9jYWwgYWdlbmNp +ZXNpZXMuIFJlcHJlc2VudGF0aXZlcyBmcm9tIG1hbnkgYWdlbmNpZXMgY29udHJpYnV0ZWQgYSBz +dWJzdGFudGlhbCBhbW91bnQgb2YgdGltZSBhbmQgc2FsYXJ5IHRvd2FyZHMgcXVhbGl0eSByZXZp +ZXcgYW5kIHVwZGF0aW5nIG9mIHRoZSBkYXRhc2V0IGluIG9yZGVyIHRvIG1lZXQgdGhlIFdCRCBT +dGFuZGFyZHMuIEFja25vd2xlZGdtZW50IG9mIHRoZSBvcmlnaW5hdGluZyBhZ2VuY2llcyB3b3Vs +ZCBiZSBhcHByZWNpYXRlZCBpbiBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhlc2UgZGF0YS4gU2Vl +IGRhdGFzZXQgc3BlY2lmaWMgbWV0YWRhdGEgZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb248L2RhdGFj +cmVkPg0KICAgIDxuYXRpdmU+RW52aXJvbm1lbnQgYXMgb2YgTWV0YWRhdGEgQ3JlYXRpb246IE1p +Y3Jvc29mdCBXaW5kb3dzIDcgVmVyc2lvbiA2LjEgKEJ1aWxkIDc2MDEpIFNlcnZpY2UgUGFjayAx +OyBFc3JpIEFyY0dJUyAxMC4yLjIgKEJ1aWxkIDM1NTIpIFNlcnZpY2UgUGFjayBOL0EgKEJ1aWxk +IE4vQSk8L25hdGl2ZT4NCiAgPC9pZGluZm8+DQogIDxkYXRhcXVhbD4NCiAgICA8YXR0cmFjYz4N +CiAgICAgIDxhdHRyYWNjcj5BbGwgYXR0ZW1wdHMgd2VyZSBtYWRlIHRvIHZlcmlmeSAxMDAlIG9m +IHRoZSBpbml0aWFsbHkgcmVxdWlyZWQgYXR0cmlidXRlcyB1c2luZyAyNEsgZGlnaXRhbCByYXN0 +ZXIgZ3JhcGhpY3MgKERSR3MpIGFzIHRoZSBiYXNlLiBBZGRpdGlvbmFsIGRhdGFzZXRzLCBsaWtl +IHRoZSBHZW9ncmFwaGljIE5hbWVzIEluZm9ybWF0aW9uIFN5c3RlbSAoR05JUykgYW5kIE5IRCwg +bWF5IGFsc28gaGF2ZSBiZWVuIHVzZWQgdG8gdmVyaWZ5IGF0dHJpYnV0aW9uLiBUaGUgYWNjdXJh +Y3kgb2YgdGhpcyBkYXRhIGlzIGRlcGVuZGVudCBvbiB0aGUgbGV2ZWwgb2YgZGV0YWlsIG9mIHRo +ZSBzb3VyY2UgbWF0ZXJpYWwgYW5kIHRoZSBpbnRlcnByZXRhdGlvbiBwcm9jZWR1cmVzIGZvciBj +YXB0dXJpbmcgdGhhdCBzb3VyY2UuIE90aGVyIHNvdXJjZXMgYW5kIG1ldGhvZHMgbWF5IGhhdmUg +YmVlbiB1c2VkIHRvIGNyZWF0ZSBvciB1cGRhdGUgV0JEIGRhdGEuICBJbiBzb21lIGNhc2VzLCBh +ZGRpdGlvbmFsIGluZm9ybWF0aW9uIG1heSBiZSBmb3VuZCBpbiB0aGUgV0JEIE1ldGFkYXRhIHRh +YmxlLjwvYXR0cmFjY3I+DQogICAgPC9hdHRyYWNjPg0KICAgIDxsb2dpYz5MaW5lcywgcG9seWdv +bnMgYW5kIG5vZGVzIGNvbmZvcm0gdG8gdG9wb2xvZ2ljYWwgcnVsZXMuICBMaW5lcyBpbnRlcnNl +Y3Qgb25seSBhdCBub2RlcywgYW5kIGFsbCBub2RlcyBhbmNob3IgdGhlIGVuZHMgb2YgbGluZXMu +ICBMaW5lcyBkbyBub3Qgb3ZlcnNob290IG9yIHVuZGVyc2hvb3Qgb3RoZXIgbGluZXMgd2hlcmUg +dGhleSBhcmUgc3VwcG9zZWQgdG8gbWVldC4gIFRoZXJlIGFyZSBubyBkdXBsaWNhdGUgbGluZXMu +ICBMaW5lcyBib3VuZCBwb2x5Z29ucy4gIEdhcHMgYW5kIG92ZXJsYXBzIGFtb25nIHBvbHlnb25z +IGRvIG5vdCBleGlzdC4gIEFsbCBwb2x5Z29ucyBjbG9zZS48L2xvZ2ljPg0KICAgIDxjb21wbGV0 +ZT5UaGUgV0JEIGNvbnRhaW5zIGNvbXBsZXRlZCBwb2x5Z29ucyBhdCBldmVyeSBsZXZlbCBmb3Ig +dGhlIFVuaXRlZCBTdGF0ZXMuIEFsbCByZXF1aXJlZCBmaWVsZHMgd2l0aGluIHRoZSBwb2x5Z29u +IGFuZCBsaW5lIGRhdGFzZXRzIGFyZSBwb3B1bGF0ZWQuIFNvbWUgb2YgdGhlc2UgZmllbGRzIG1h +eSBiZSBwb3B1bGF0ZWQgd2l0aCBhIHplb3IgIjAiLiBUaGUgbGluZXMgY29pbmNpZGVudCB3aXRo +IHRoZSBpbnRlcm5hdGlvbmFsIGJvdW5kYXJ5IGFyZSBhc3NpZ25lZCBhIEhVTGV2ZWwgdmFsdWUg +b2YgMC4gVGhlc2UgY2Fubm90IGJlIGF0dHJpYnV0ZWQgdW50aWwgdGhlIGFkamFjZW50IGludGVy +bmF0aW9uYWwgdW5pdHMgYXJlIGFkZGVkIGF0IHdoaWNoIHBvaW50IHRoZSBoaWdoZXN0IGxldmVs +IG9mIGh5ZHJvbG9naWMgdW5pdCBjYW4gYmUgZGV0ZXJtaW5lZC4gQSBkZXRhaWxlZCBkZXNjcmlw +dGlvbiBvZiBkZWxpbmVhdGlvbiBtZXRob2RzIGFuZCBmdWxsIGF0dHJpYnV0ZSBkZWZpbml0aW9u +cyBjYW4gYmUgZm91bmQgaW4gdGhlIFdCRCBTdGFuZGFyZHMuIFVzZXJzIGFyZSBhZHZpc2VkIHRv +IGNhcmVmdWxseSByZWFkIHRoZSBtZXRhZGF0YSByZWNvcmQgZm9yIGFkZGl0aW9uYWwgZGV0YWls +cy48L2NvbXBsZXRlPg0KICAgIDxwb3NhY2M+DQogICAgICA8aG9yaXpwYT4NCiAgICAgICAgPGhv +cml6cGFyPlRoZSBXQkQgd2FzIHByb2R1Y2VkIHVzaW5nIGEgdmFyaWV0eSBvZiBkaWdpdGFsIHNw +YXRpYWwgZGF0YSBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIERpZ2l0YWwgUmFzdGVyIEdy +YXBoaWNzIChEUkdzKSwgYWVyaWFsIGltYWdlcnkgYW5kIGRpZ2l0YWwgZWxldmF0aW9uIG1vZGVs +cyAoREVNKS4gSXQgaXMgYXNzdW1lZCB0aGVzZSBkYXRhIGFyZSBtYXBwZWQgYXQgYXBwcm94aW1h +dGVseSAxOjI0LDAwMC1zY2FsZSBhbmQgY29udGFpbiBhIG1pbmltdW0gaW5oZXJlbnQgZXJyb3Ig +b2YgKy8tIDQwIGZlZXQuIEl0IHNob3VsZCBiZSBub3RlZCB0aGF0IHRoZSBXQkQgaXMgdW5kZXJn +b2luZyBjb250aW51b3VzIHVwZGF0ZSBhcyBzb3VyY2UgZGF0YSBpbXByb3ZlcyBhbmQgYXMgaHlk +cm9sb2dpYyBpbnRlcnByZXRhdGlvbnMgYXJlIHJlZmluZWQuIFdoaWxlIGdlbmVyYWwgcnVsZXMg +b2YgaHlkcm9sb2d5IHdlcmUgdXNlZCBpbiBkZWxpbmVhdGlvbiwgbG9jYXRpb25zIG9mIGJvdW5k +YXJpZXMgbWF5IGJlIHN1YmplY3RpdmUgaW4gc29tZSBjYXNlcy4gQWRkaXRpb25hbCBpbmZvcm1h +dGlvbiBtYXkgYmUgZm91bmQgaW4gdGhlIFdCRCBNZXRhZGF0YSB0YWJsZS48L2hvcml6cGFyPg0K +ICAgICAgPC9ob3JpenBhPg0KICAgICAgPHZlcnRhY2M+DQogICAgICAgIDx2ZXJ0YWNjcj5BIGZv +cm1hbCBhY2N1cmFjeSBhc3Nlc3NtZW50IG9mIHRoZSB2ZXJ0aWNhbCBwb3NpdGlvbmFsIGluZm9y +bWF0aW9uIGluIHRoZSBkYXRhIHNldCBoYXMgZWl0aGVyIG5vdCBiZWVuIGNvbmR1Y3RlZCwgb3Ig +aXMgbm90IGFwcGxpY2FibGUuPC92ZXJ0YWNjcj4NCiAgICAgIDwvdmVydGFjYz4NCiAgICA8L3Bv +c2FjYz4NCiAgICA8bGluZWFnZT4NCiAgICAgIDxzcmNpbmZvPg0KICAgICAgICA8c3JjY2l0ZT4N +CiAgICAgICAgICA8Y2l0ZWluZm8+DQogICAgICAgICAgICA8b3JpZ2luPlUuUy4gR2VvbG9naWNh +bCBTdXJ2ZXk8L29yaWdpbj4NCiAgICAgICAgICAgIDxwdWJkYXRlPlVua25vd248L3B1YmRhdGU+ +DQogICAgICAgICAgICA8dGl0bGU+Ny41IE1pbnV0ZSBUb3BvZ3JhcGhpYyBRdWFkcmFuZ2xlIFNo +ZWV0czwvdGl0bGU+DQogICAgICAgICAgICA8Z2VvZm9ybT5QYXBlciBNYXA8L2dlb2Zvcm0+DQog +ICAgICAgICAgICA8cHViaW5mbz4NCiAgICAgICAgICAgICAgPHB1YnBsYWNlPlJlc3RvbiwgVmly +Z2luaWE8L3B1YnBsYWNlPg0KICAgICAgICAgICAgICA8cHVibGlzaD5VLlMuIEdlb2xvZ2ljYWwg +U3VydmV5PC9wdWJsaXNoPg0KICAgICAgICAgICAgPC9wdWJpbmZvPg0KICAgICAgICAgIDwvY2l0 +ZWluZm8+DQogICAgICAgIDwvc3JjY2l0ZT4NCiAgICAgICAgPHNyY3NjYWxlPjI0MDAwPC9zcmNz +Y2FsZT4NCiAgICAgICAgPHR5cGVzcmM+RGlnaXRhbCBhbmQvb3IgSGFyZGNvcHkgUmVzb3VyY2Vz +PC90eXBlc3JjPg0KICAgICAgICA8c3JjdGltZT4NCiAgICAgICAgICA8dGltZWluZm8+DQogICAg +ICAgICAgICA8cm5nZGF0ZXM+DQogICAgICAgICAgICAgIDxiZWdkYXRlPjE4ODQ8L2JlZ2RhdGU+ +DQogICAgICAgICAgICAgIDxlbmRkYXRlPjIwMDY8L2VuZGRhdGU+DQogICAgICAgICAgICA8L3Ju +Z2RhdGVzPg0KICAgICAgICAgIDwvdGltZWluZm8+DQogICAgICAgICAgPHNyY2N1cnI+UHVibGlj +YXRpb24gZGF0ZTwvc3JjY3Vycj4NCiAgICAgICAgPC9zcmN0aW1lPg0KICAgICAgICA8c3JjY2l0 +ZWE+VVNHU1RvcG88L3NyY2NpdGVhPg0KICAgICAgICA8c3JjY29udHI+QmFzZSBpbmZvcm1hdGlv +biBmb3IgaHlkcm9sb2dpYyB1bml0IGRlbGluZWF0aW9uLjwvc3JjY29udHI+DQogICAgICA8L3Ny +Y2luZm8+DQogICAgICA8c3JjaW5mbz4NCiAgICAgICAgPHNyY2NpdGU+DQogICAgICAgICAgPGNp +dGVpbmZvPg0KICAgICAgICAgICAgPG9yaWdpbj5VLlMuIEdlb2xvZ2ljYWwgU3VydmV5PC9vcmln +aW4+DQogICAgICAgICAgICA8cHViZGF0ZT4xOTk5PC9wdWJkYXRlPg0KICAgICAgICAgICAgPHRp +dGxlPlUuUy4gR2VvbG9naWNhbCBTdXJ2ZXkgRGlnaXRhbCBSYXN0ZXIgR3JhcGhpYyAoRFJHKTwv +dGl0bGU+DQogICAgICAgICAgICA8Z2VvZm9ybT5SYXN0ZXIgRGlnaXRhbCBEYXRhPC9nZW9mb3Jt +Pg0KICAgICAgICAgICAgPHB1YmluZm8+DQogICAgICAgICAgICAgIDxwdWJwbGFjZT5Vbmtub3du +PC9wdWJwbGFjZT4NCiAgICAgICAgICAgICAgPHB1Ymxpc2g+VS5TLiBHZW9sb2dpY2FsIFN1cnZl +eTwvcHVibGlzaD4NCiAgICAgICAgICAgIDwvcHViaW5mbz4NCiAgICAgICAgICAgIDxvbmxpbms+ +aHR0cDovL2RhdGFnYXRld2F5Lm5yY3MudXNkYS5nb3Y8L29ubGluaz4NCiAgICAgICAgICA8L2Np +dGVpbmZvPg0KICAgICAgICA8L3NyY2NpdGU+DQogICAgICAgIDxzcmNzY2FsZT4yNDAwMDwvc3Jj +c2NhbGU+DQogICAgICAgIDx0eXBlc3JjPkRpZ2l0YWwgYW5kL29yIEhhcmRjb3B5IFJlc291cmNl +czwvdHlwZXNyYz4NCiAgICAgICAgPHNyY3RpbWU+DQogICAgICAgICAgPHRpbWVpbmZvPg0KICAg +ICAgICAgICAgPHJuZ2RhdGVzPg0KICAgICAgICAgICAgICA8YmVnZGF0ZT5Vbmtub3duPC9iZWdk +YXRlPg0KICAgICAgICAgICAgICA8ZW5kZGF0ZT4xOTk5PC9lbmRkYXRlPg0KICAgICAgICAgICAg +PC9ybmdkYXRlcz4NCiAgICAgICAgICA8L3RpbWVpbmZvPg0KICAgICAgICAgIDxzcmNjdXJyPlB1 +YmxpY2F0aW9uIGRhdGU8L3NyY2N1cnI+DQogICAgICAgIDwvc3JjdGltZT4NCiAgICAgICAgPHNy +Y2NpdGVhPlVTR1NEUkc8L3NyY2NpdGVhPg0KICAgICAgICA8c3JjY29udHI+QmFzZSBpbmZvcm1h +dGlvbiBmb3IgaHlkcm9sb2dpYyB1bml0IGRlbGluZWF0aW9uLjwvc3JjY29udHI+DQogICAgICA8 +L3NyY2luZm8+DQogICAgICA8c3JjaW5mbz4NCiAgICAgICAgPHNyY2NpdGU+DQogICAgICAgICAg +PGNpdGVpbmZvPg0KICAgICAgICAgICAgPG9yaWdpbj5VLlMuIEdlb2xvZ2ljYWwgU3VydmV5PC9v +cmlnaW4+DQogICAgICAgICAgICA8cHViZGF0ZT5Vbmtub3duPC9wdWJkYXRlPg0KICAgICAgICAg +ICAgPHRpdGxlPkRpZ2l0YWwgT3J0aG9waG90byBRdWFkczwvdGl0bGU+DQogICAgICAgICAgICA8 +Z2VvZm9ybT5SYXN0ZXIgRGlnaXRhbCBEYXRhPC9nZW9mb3JtPg0KICAgICAgICAgICAgPHB1Ymlu +Zm8+DQogICAgICAgICAgICAgIDxwdWJwbGFjZT5Vbmtub3duPC9wdWJwbGFjZT4NCiAgICAgICAg +ICAgICAgPHB1Ymxpc2g+VS5TLiBHZW9sb2dpY2FsIFN1cnZleTwvcHVibGlzaD4NCiAgICAgICAg +ICAgIDwvcHViaW5mbz4NCiAgICAgICAgICAgIDxvbmxpbms+aHR0cDovL2RhdGFnYXRld2F5Lm5y +Y3MudXNkYS5nb3Y8L29ubGluaz4NCiAgICAgICAgICA8L2NpdGVpbmZvPg0KICAgICAgICA8L3Ny +Y2NpdGU+DQogICAgICAgIDxzcmNzY2FsZT4yNDAwMDwvc3Jjc2NhbGU+DQogICAgICAgIDx0eXBl +c3JjPkRpZ2l0YWwgYW5kL29yIEhhcmRjb3B5IFJlc291cmNlczwvdHlwZXNyYz4NCiAgICAgICAg +PHNyY3RpbWU+DQogICAgICAgICAgPHRpbWVpbmZvPg0KICAgICAgICAgICAgPHNuZ2RhdGU+DQog +ICAgICAgICAgICAgIDxjYWxkYXRlPlVua25vd248L2NhbGRhdGU+DQogICAgICAgICAgICA8L3Nu +Z2RhdGU+DQogICAgICAgICAgPC90aW1laW5mbz4NCiAgICAgICAgICA8c3JjY3Vycj4yMDEwMDMy +NTwvc3JjY3Vycj4NCiAgICAgICAgPC9zcmN0aW1lPg0KICAgICAgICA8c3JjY2l0ZWE+VVNHU0RP +UTwvc3JjY2l0ZWE+DQogICAgICAgIDxzcmNjb250cj5BZXJpYWwgaW1hZ2VyeSB1c2VkIGZvciBy +ZWZlcmVuY2UgaW4gd2F0ZXJzaGVkIGJvdW5kYXJ5IGRlbGluZWF0aW9uPC9zcmNjb250cj4NCiAg +ICAgIDwvc3JjaW5mbz4NCiAgICAgIDxzcmNpbmZvPg0KICAgICAgICA8c3JjY2l0ZT4NCiAgICAg +ICAgICA8Y2l0ZWluZm8+DQogICAgICAgICAgICA8b3JpZ2luPlUuUy4gR2VvbG9naWNhbCBTdXJ2 +ZXk8L29yaWdpbj4NCiAgICAgICAgICAgIDxwdWJkYXRlPjE5OTQ8L3B1YmRhdGU+DQogICAgICAg +ICAgICA8dGl0bGU+MjUwSyBIeWRyb2xvZ2ljIFVuaXQgQm91bmRhcmllczwvdGl0bGU+DQogICAg +ICAgICAgICA8Z2VvZm9ybT5WZWN0b3IgRGlnaXRhbCBEYXRhPC9nZW9mb3JtPg0KICAgICAgICAg +ICAgPHB1YmluZm8+DQogICAgICAgICAgICAgIDxwdWJwbGFjZT5SZXN0b24sIFZpcmdpbmlhPC9w +dWJwbGFjZT4NCiAgICAgICAgICAgICAgPHB1Ymxpc2g+VS5TLiBHZW9sb2dpY2FsIFN1cnZleTwv +cHVibGlzaD4NCiAgICAgICAgICAgIDwvcHViaW5mbz4NCiAgICAgICAgICAgIDxvbmxpbms+aHR0 +cDovL3dhdGVyLnVzZ3MuZ292L2xvb2t1cC9nZXRzcGF0aWFsP2h1YzI1MGs8L29ubGluaz4NCiAg +ICAgICAgICA8L2NpdGVpbmZvPg0KICAgICAgICA8L3NyY2NpdGU+DQogICAgICAgIDxzcmNzY2Fs +ZT4yNTAwMDA8L3NyY3NjYWxlPg0KICAgICAgICA8dHlwZXNyYz5EaWdpdGFsIGFuZC9vciBIYXJk +Y29weSBSZXNvdXJjZXM8L3R5cGVzcmM+DQogICAgICAgIDxzcmN0aW1lPg0KICAgICAgICAgIDx0 +aW1laW5mbz4NCiAgICAgICAgICAgIDxybmdkYXRlcz4NCiAgICAgICAgICAgICAgPGJlZ2RhdGU+ +VW5rbm93bjwvYmVnZGF0ZT4NCiAgICAgICAgICAgICAgPGVuZGRhdGU+MTk5NDwvZW5kZGF0ZT4N +CiAgICAgICAgICAgIDwvcm5nZGF0ZXM+DQogICAgICAgICAgPC90aW1laW5mbz4NCiAgICAgICAg +ICA8c3JjY3Vycj5QdWJsaWNhdGlvbiBkYXRlPC9zcmNjdXJyPg0KICAgICAgICA8L3NyY3RpbWU+ +DQogICAgICAgIDxzcmNjaXRlYT5IVUMyNTBLPC9zcmNjaXRlYT4NCiAgICAgICAgPHNyY2NvbnRy +PlJlZmVyZW5jZSBkYXRhc2V0IGZvciB0aGUgMi0sIDQtLCA2LSBhbmQgOC1kaWdpdCBoeWRyb2xv +Z2ljIHVuaXRzPC9zcmNjb250cj4NCiAgICAgIDwvc3JjaW5mbz4NCiAgICAgIDxzcmNpbmZvPg0K +ICAgICAgICA8c3JjY2l0ZT4NCiAgICAgICAgICA8Y2l0ZWluZm8+DQogICAgICAgICAgICA8b3Jp +Z2luPlUuUy4gR2VvbG9naWNhbCBTdXJ2ZXk8L29yaWdpbj4NCiAgICAgICAgICAgIDxwdWJkYXRl +PjIwMTY8L3B1YmRhdGU+DQogICAgICAgICAgICA8dGl0bGU+TmF0aW9uYWwgSHlkcm9ncmFwaHkg +RGF0YXNldDwvdGl0bGU+DQogICAgICAgICAgICA8Z2VvZm9ybT5WZWN0b3IgRGlnaXRhbCBEYXRh +PC9nZW9mb3JtPg0KICAgICAgICAgICAgPHB1YmluZm8+DQogICAgICAgICAgICAgIDxwdWJwbGFj +ZT5EZW52ZXIsIENPPC9wdWJwbGFjZT4NCiAgICAgICAgICAgICAgPHB1Ymxpc2g+VS5TLiBHZW9s +b2dpY2FsIFN1cnZleTwvcHVibGlzaD4NCiAgICAgICAgICAgIDwvcHViaW5mbz4NCiAgICAgICAg +ICAgIDxvbmxpbms+aHR0cDovL25oZC51c2dzLmdvdi9kYXRhLmh0bWw8L29ubGluaz4NCiAgICAg +ICAgICA8L2NpdGVpbmZvPg0KICAgICAgICA8L3NyY2NpdGU+DQogICAgICAgIDxzcmNzY2FsZT4y +NDAwMDwvc3Jjc2NhbGU+DQogICAgICAgIDx0eXBlc3JjPkRpZ2l0YWwgYW5kL29yIEhhcmRjb3B5 +IFJlc291cmNlczwvdHlwZXNyYz4NCiAgICAgICAgPHNyY3RpbWU+DQogICAgICAgICAgPHRpbWVp +bmZvPg0KICAgICAgICAgICAgPHNuZ2RhdGU+DQogICAgICAgICAgICAgIDxjYWxkYXRlPnVua25v +d248L2NhbGRhdGU+DQogICAgICAgICAgICA8L3NuZ2RhdGU+DQogICAgICAgICAgPC90aW1laW5m +bz4NCiAgICAgICAgICA8c3JjY3Vycj5QdWJsaWNhdGlvbiBkYXRlPC9zcmNjdXJyPg0KICAgICAg +ICA8L3NyY3RpbWU+DQogICAgICAgIDxzcmNjaXRlYT5OSEQ8L3NyY2NpdGVhPg0KICAgICAgICA8 +c3JjY29udHI+SHlkcm9ncmFwaHkgZGF0YSB1c2VkIGZvciByZWZlcmVuY2UgaW4gd2F0ZXJzaGVk +IGJvdW5kYXJ5IGRlbGluZWF0aW9uIHByb2Nlc3M8L3NyY2NvbnRyPg0KICAgICAgPC9zcmNpbmZv +Pg0KICAgICAgPHByb2NzdGVwPg0KICAgICAgICA8cHJvY2Rlc2M+VGhlIG9yaWdpbmFsIGh5ZHJv +bG9naWMgdW5pdCBib3VuZGFyaWVzIHdlcmUgaGFuZC1kaWdpdGl6ZWQgb24gYSBkaWdpdGl6aW5n +IHRhYmxlIGZyb20gdGhlIFVTR1MgNy41IG1pbnV0ZSBxdWFkcmFuZ2xlcy4gVGhpcyBwcm9jZXNz +IG9jY3VycmVkIG92ZXIgYSBzcGFuIG9mIGFwcHJveGltYXRlbHkgMjAgeWVhcnMgZnJvbSAxOTgw +IHRvIDIwMDAuPC9wcm9jZGVzYz4NCiAgICAgICAgPHByb2NkYXRlPjIwMDA8L3Byb2NkYXRlPg0K +ICAgICAgPC9wcm9jc3RlcD4NCiAgICAgIDxwcm9jc3RlcD4NCiAgICAgICAgPHByb2NkZXNjPlRo +ZSBvcmlnaW5hbCBkYXRhc2V0IHdhcyByZXZpZXdlZCBieSBVU0dTIHBlcnNvbm5lbCB1c2luZyBv +bi1zY3JlZW4gdGVjaG5pcXVlcyB3aXRoIERSR3MgYXMgdGhlIGJhc2UgbWFwLiBBbGwgaHlkcm9s +b2dpYyB1bml0cyB3aXRoaW4gdGhlIGRhdGFzZXQgdGhhdCB3ZXJlIGxlc3MgdGhhbiAzLDAwMCBh +Y3JlcyB3ZXJlIGRpc3NvbHZlZCBvdXQuPC9wcm9jZGVzYz4NCiAgICAgICAgPHByb2NkYXRlPjIw +MDM8L3Byb2NkYXRlPg0KICAgICAgPC9wcm9jc3RlcD4NCiAgICAgIDxwcm9jc3RlcD4NCiAgICAg +ICAgPHByb2NkZXNjPlRoZSBuZXcgV0JEICgyMDA1LTIwMTEpIHdhcyByZXZpZXdlZCBvbi1zY3Jl +ZW4gYnkgVVNHUywgRVBBLCBvciBOUkNTIHBlcnNvbm5lbCB1c2luZyBEUkdzIGFuZCBET1FzcyBh +cyBiYXNlIG1hcHMuIEh5ZHJvbG9naWMgVW5pdHMgdGhhdCB3ZXJlIGxlc3MgdGhhbiAxMCwwMDAg +YWNyZXMgKGZvciB0aGUgMTItZGlnaXQgdW5pdHMpIGFuZCA0MCwwMDAgYWNyZXMgKGZvciB0aGUg +MTAtZGlnaXQgdW5pdHMpIHdlcmUgcmV2aWV3ZWQgYW5kIGlmIHBvc3NpYmxlIHdlcmUgZGlzc29s +dmVkIG91dC4gQWxvbmcgdGhlIGNvYXN0YWwgYXJlYXMsIHN0YW5kYXJkIHdhdGVyc2hlZHMgdGhh +dCBmZWxsIHdpdGhpbiB0aGUgZmVkZXJhbCBndWlkZWxpbmUncyBzaXplIGNyaXRlcmlhICgxMi1k +aWdpdDogMTAsMDAwLTQwLDAwMCBhY3JlcywgMTAtZGlnaXQ6IDQwLDAwMC0yNTAsMDAwIGFjcmVz +KSB3ZXJlIGRlbGluZWF0ZWQuIElmIHBvc3NpYmxlIHRoZSByZW1haW5pbmcgZnJvbnRhbHMgd2Vy +ZSBsZWZ0IGFzIHRoZWlyIG93biB1bml0cy4gRnJvbnRhbHMgdGhhdCBkaWQgbm90IG1lZXQgdGhl +IHNpemUgY3JpdGVyaWEgd2VyZSBncm91cGVkIHRvZ2V0aGVyIHdpdGggb3RoZXIgZnJvbnRhbHMg +d2l0aGluIHRoZSBvdmVyYWxsIDgtZGlnaXQgb3IgMTAtZGlnaXQgdW5pdC4gSHlkcm9sb2dpYyB1 +bml0cyB0aGF0IHdlcmUgZ3JlYXRlciB0aGFuIDQwLDAwMCBhY3JlcyAoMTItZGlnaXQgdW5pdHMp +IGFuZCAyNTAsMDAwIGFjcmVzICgxMC1kaWdpdCB1bml0cykgd2VyZSByZXZpZXdlZC4gSWYgcG9z +c2libGUgdGhlc2UgdW5pdHMgd2hlcmUgdGhlbiBzdWJkaXZpZGVkIGludG8gc21hbGxlciB1bml0 +cyB0aGF0IG1ldCB0aGUgc2l6ZSBjcml0ZXJpYS4gSW4gc29tZSBjYXNlcywgYWRkaXRpb25hbCBi +cmVha3Mgd2l0aGluIHRoZSB1bml0IHdvdWxkIG5vdCBoYXZlIG1hZGUgc2Vuc2Ugb3IgaGF2ZSBi +ZWVuIHZlcnkgdXNlZnVsLiBGb3IgZXhhbXBsZTogV2hlbiB0aGUgbWFqb3JpdHkgb2YgdGhlIHVu +aXQgd2FzIG1hZGUgdXAgYnkgYSBtYWpvciB3YXRlcmJvZHkgZmVhdHVyZSBzdWNoIGFzIGEgbGFr +ZSBvciByZXNlcnZvaXIgYW5kIHRoZSBzdXJyb3VuZGluZyB0cmlidXRhcmllcyB3ZXJlIHRvbyBz +bWFsbCB0byBkZWxpbmVhdGUgYXMgdGhlaXIgb3duIHVuaXQuIEluIHRoZXNlIGluc3RhbmNlcyB0 +aGUgdW5pdCB3YXMgbGVmdCBiaWcuPC9wcm9jZGVzYz4NCiAgICAgICAgPHByb2NkYXRlPjIwMTE8 +L3Byb2NkYXRlPg0KICAgICAgPC9wcm9jc3RlcD4NCiAgICAgIDxwcm9jc3RlcD4NCiAgICAgICAg +PHByb2NkZXNjPkZyb20gMjAwNSB0byAyMDExLCBoeWRyb2xvZ2ljIHVuaXRzIGZyb20gc3Vycm91 +bmRpbmcgc3RhdGVzIHdlcmUgdXNlZCB0byBlZGdlbWF0Y2ggd2F0ZXJzaGVkIGJvdW5kYXJpZXMg +YXMgdGhleSB3ZXJlIGRldmVsb3BlZC48L3Byb2NkZXNjPg0KICAgICAgICA8cHJvY2RhdGU+MjAx +MTwvcHJvY2RhdGU+DQogICAgICA8L3Byb2NzdGVwPg0KICAgICAgPHByb2NzdGVwPg0KICAgICAg +ICA8cHJvY2Rlc2M+RnJvbSAyMDA1IHRvIDIwMTEsIG9yaWdpbmFsIGRhdGFzZXQgYXR0cmlidXRp +b24gd2FzIHJldmlld2VkIGFuZCByZXZpc2VkIHRvIHJlZmxlY3QgdGhlIHVwZGF0ZXMgYW5kIGNo +YW5nZXMgbWFkZSB0byB0aGUgZGF0YXNldC4gVGhlc2UgcmV2aXNpb25zIHRvIHRoZSBhdHRyaWJ1 +dGlvbiB3ZXJlIGFsc28gbWFkZSB0byBlbnN1cmUgdGhhdCB0aGUgZGF0YXNldCBtZXQgdGhlIEZl +ZGVyYWwgU3RhbmRhcmRzIGZvciBEZWxpbmVhdGlvbiBvZiBIeWRyb2xvZ2ljIFVuaXQgQm91bmRh +cmllcy4gVGhlIE5IRCB3YXMgdXNlZCBkdXJpbmcgdGhpcyBwcm9jZXNzIHRvIGhlbHAgd2l0aCB0 +aGUgbmFtaW5nIGFuZCBkb3duc3RyZWFtIGNvZGluZyBvZiBlYWNoIHVuaXQuIEluIHNvbWUgaW5z +dGFuY2VzIHRoZXJlIHdlcmUgbmFtZSBkaXNjcmVwYW5jaWVzIGJldHdlZW4gdGhlIE5IRCBhbmQg +d2hhdCB3YXMgcHJpbnRlZCBvbiB0aGUgRFJHcy4gSW4gdGhlc2UgaW5zdGFuY2VzIHRoZSBEUkdz +IHdlcmUgdXNlZCBpbnN0ZWFkIG9mIHRoZSBOSEQuPC9wcm9jZGVzYz4NCiAgICAgICAgPHByb2Nk +YXRlPjIwMTE8L3Byb2NkYXRlPg0KICAgICAgPC9wcm9jc3RlcD4NCiAgICAgIDxwcm9jc3RlcD4N +CiAgICAgICAgPHByb2NkZXNjPkZpcnN0IGRyYWZ0IG9mIG1ldGFkYXRhIGNyZWF0ZWQgYnkgTlJD +UyB1c2luZyBNRVRBREFUQSBFZGl0b3IgaW4gQXJjQ2F0YWxvZyB2ZXIuIDkuMSBzcC4xIGh1MTJf +Z2VvODM8L3Byb2NkZXNjPg0KICAgICAgICA8cHJvY2RhdGU+MjAwNzAxMjQ8L3Byb2NkYXRlPg0K +ICAgICAgPC9wcm9jc3RlcD4NCiAgICAgIDxwcm9jc3RlcD4NCiAgICAgICAgPHByb2NkZXNjPlRo +ZSBmb2xsb3dpbmcgZWRpdHMgKDIwMTIgLSBwcmVzZW50KSB3ZXJlIGNvbXBsZXRlZCBkdXJpbmcg +bmF0aW9uYWwgcXVhbGl0eSBjb250cm9sIHJldmlldyBwZXJmb3JtZWQgYnkgdGhlIFdCRCBuYXRp +b25hbCB0ZWNobmljYWwgZWRpdCB0ZWFtIGluIHRoZSBVU0dTIFV0YWggV2F0ZXIgU2NpZW5jZSBD +ZW50ZXIuIFVwZGF0ZXMgbWF5IG5vdCBhZmZlY3QgYWxsIGh5ZHJvbG9naWMgdW5pdHMuDQoJCUVk +aXRzIGJ5IFVTR1MgV2F0ZXIgU2NpZW5jZSBDZW50ZXIgaW4gU2FsdCBMYWtlIENpdHksIFV0YWgu +IA0KCQkxLiBSZXZpZXdlZCBhbGwgdGhlIFRvSFVDIGNvZGVzIHdpdGhpbiB0aGUgMTItZGlnaXQg +cG9seWdvbnMgYW5kIG1hZGUgdXBkYXRlcyBhcyBuZWNlc3NhcnkuIEFsbCB1cGRhdGVzIHdlcmUg +Y29vcmRpbmF0ZWQgYW5kIGFwcHJvdmVkIGJ5IFdCRCBzdGF0ZSBzdGV3YXJkcy4NCgkJMi4gVXBk +YXRlZCBMaW5lc291cmNlIGNvZGUgKG1pc3NwZWxsaW5ncywgcmVtb3ZlZCBleHRyYSBzcGFjZXMg +ZXRjLikgd2hlcmUgbmVlZGVkIHRvIG1hdGNoIEZlZGVyYWwgU3RhbmRhcmRzIA0KCQkzLiBVcGRh +dGVkIGFuZCBjb3JyZWN0ZWQgZXJyb3JzIGluIHRoZSBIVV9Nb2QgZmllbGRzIHdoZXJlIG5lZWRl +ZCB0byBtYXRjaCBGZWRlcmFsIFN0YW5kYXJkcy4gDQoJCTQuIFVwZGF0ZWQgU3RhdGUgZmllbGQg +Zm9yIENhbmFkYSAoQ04pIGFuZCBNZXhpY28gKE1YKSBiYXNlZCBvbiB0aGUgbmV3IHZlcnNpb24g +b2YgdGhlIFN0YW5kYXJkcyANCgkJNS4gUmV2aWV3ZWQgYWxsIHRoZSBOYW1lcyByZWxhdGVkIHRv +IGVhY2ggMTAtZGlnaXQgYW5kIDEyLWRpZ2l0IHBvbHlnb24gYW5kIG1hZGUgdXBkYXRlcyBhcyBu +ZWNlc3NhcnkuIEFsbCB1cGRhdGVzIHdlcmUgY29vcmRpbmF0ZWQgYW5kIGFwcHJvdmVkIGJ5IHRo +ZSBXQkQgU3RhdGUgc3Rld2FyZHMNCgkJNi4gQ2hlY2tlZCBhbmQgdXBkYXRlZCBIVV9MZXZlbCBm +aWVsZCB3aGVyZSBIVV9MZXZlbCA9IDk5IG9yID0gbnVsbCANCgkJNy4gVXBkYXRlZCB0aGUgOC1k +aWdpdCBvdXRlciBib3VuZGFyeSBmb3IgdW5pdHMgZmxvd2luZyBpbnRvIG9jZWFuIHVuaXRzIGJ5 +IGV4dGVuZGluZyB0aGUgYm91bmRhcnkgb2Zmc2hvcmUgdG8gdGhlIDMgbmF1dGljYWwgbWlsZSBs +aW1pdCBwcm92aWRlZCBieSBOT0FBLiBBbGwgdXBkYXRlcyB3ZXJlIGNvb3JkaW5hdGVkIGFuZCBh +cHByb3ZlZCBieSB0aGUgV0JEIHN0YXRlIHN0ZXdhcmRzPC9wcm9jZGVzYz4NCiAgICAgICAgPHBy +b2NkYXRlPjIwMTY8L3Byb2NkYXRlPg0KICAgICAgPC9wcm9jc3RlcD4NCiAgICAgIDxwcm9jc3Rl +cD4NCiAgICAgICAgPHByb2NkZXNjPlRoZSBmb2xsb3dpbmcgYXJlIDgtZGlnaXQgdXBkYXRlcyAo +ZnJvbSAyMDA5LTIwMTYpIHRoYXQgd2VyZSBhcHByb3ZlZCBieSB0aGUgV0JEIE5hdGlvbmFsIFRl +Y2huaWNhbCBDb29yZGluYXRvcnMgYXMgcmVxdWlyZWQgYnkgdGhlIFdCRCBTdGFuZGFyZHMuIFRo +ZXNlIG1heSBpbmNsdWRlIG5hbWUvY29kZSB1cGRhdGVzIG9yIGJvdW5kYXJ5IHVwZGF0ZXMgdGhh +dCB3ZXJlIGltcGxlbWVudGVkIGluIHRoZSBXQkQgYXQgc29tZSBwb2ludCBkdXJpbmcgdGhlIGNy +ZWF0aW9uIG9yIG1haW50ZW5hbmNlIG9mIHRoZSBkYXRhLiANCglBbGFza2E6DQoJCUxlZ2FjeSAx +OTAyMDQwMSBBbmNob3JhZ2UgYm91bmRhcnkgaGFzIGNoYW5nZWQgYnkgYWJvdXQgMjAlIG9mIGl0 +cyBhcmVhLg0KCQkxOTAyMDIwMyAoUHJpbmNlIFdpbGxpYW0gU291bmQpDQoJCUFkZGVkIGEgbmV3 +IHN1YmJhc2luIHVuaXQgZm9yIFByaW5jZSBXaWxsaWFtIFNvdW5kLg0KCQlBZGp1c3RlZCBodWM4 +IGJvdW5kYXJpZXMgYmV0d2VlbiAxOTAyMDEwNCwgMTkwMjAyMDEgYW5kIDE5MDIwMjAyIHRvIGJl +dHRlciByZWZsZWN0IHN1cmZhY2Ugd2F0ZXIgZmxvdyBhbmQgdG8gYXNzaXN0IHdpdGggZGVsaW5l +YXRpbmcgdGhlIFByaW5jZSBXaWxsaWFtIFNvdW5kIGFzIGEgbmV3IHVuaXQuDQoJCUxlZ2FjeSAx +OTAyMDMwMiBVcHBlciBLZW5haSBQZW5pbnN1bGEgaGFzIGNoYW5nZWQgYnkgYWJvdXQgMjAlIG9m +IGl0cyBhcmVhLg0KCQlMZWdhY3kgMTkwMzAzMDQgV29vZCBSaXZlciB3YXMgc3ViZGl2aWRlZCB3 +aGljaCBoYXMgY3JlYXRlZCBhIHJlZHVjZWQgYXJlYSBmb3IgdGhlIDE5MDMwMzA0IFdvb2QgUml2 +ZXIgYW5kIHB1dCBJZ3VzaGlrIFJpdmVyIGludG8gaXRzIG93biBoeWRyb2xvZ2ljIHVuaXQgd2l0 +aCBhIG5ldyBjb2RlIG9mIDE5MDMwMzA2LiANCgkJTGVnYWN5IDE5MDMwNDAyIEZhcmV3ZWxsIExh +a2Ugd2FzIGRpdmlkZWQgaW50byAxOTAzMDQwNiBNaWRkbGUgRmxvcmsgS3Vza29rd2ltIFJpdmVy +IGFuZCAxOTAzMDQwNyBTb3V0aCBGb3JrIEt1c2tva3dpbSBSaXZlci4gDQoJCUxlZ2FjeSAxOTA0 +MDIwNCBCbGFjayBSaXZlciB3YXMgc3ViZGl2aWRlZC4gMTkwNDAyMDQgd2lsbCByZW1haW4gdGhl +IEJsYWNrIFJpdmVyLCBhbmQgYSBuZXcgdW5pdCAxOTA0MDIwNiBHcmFzcyBSaXZlciBpcyBicm9r +ZW4gb3V0LiANCgkJMTkwNDA1MDI6DQoJCVRoZSBvdXRsZXQgZm9yIHN1YmJhc2luIDE5MDQwNTAy +IHdhcyBtb3ZlZCBkb3duc3RyZWFtIGZyb20gdGhlIGN1cnJlbnQgYnJlYWsgYWNyb3NzIFRhbmFu +YSBSaXZlciBhdCBhIGNvbmZsdWVuY2Ugd2l0aCBhIG1pbm9yIHRyaWJ1dGFyeSB0byB0aGUgbW9y +ZSBwcm9taW5lbnQgY29uZmx1ZW5jZSB3aXRoIFJvYmVydHNvbiBSaXZlci4gVGhpcyBlZGl0IHJl +c3VsdGVkIGluIHRoZSBhZGRpdGlvbiBvZiAyIHN1YndhdGVyc2hlZHMgdG8gMTkwNDA1MDIgYW5k +IHRoZSByZW1vdmFsIG9mIDIgd2F0ZXJzaGVkcyBmcm9tIDE5MDQwNTAzLg0KCQlMZWdhY3kgMTkw +NDA1MDQgRGVsdGEgUml2ZXIgbGluZXdvcmsgY2hhbmdlZCBzaWduaWZpY2FudGx5Lg0KCQlUaGUg +bGVnYWN5IDE5MDQwNTA0IGhhZCAzIHNlcGFyYXRlIG91dGxldHM7IERlbHRhIFJpdmVyLCBEZWx0 +YSBDcmVlayBhbmQgTGl0dGxlIERlbHRhIFJpdmVyLg0KCQlUaGUgYm91bmRhcnkgd2FzIGFkanVz +dGVkIHNvIHRoYXQgMTkwNDA1MDQgY29udGFpbmVkIGp1c3QgdGhlIERlbHRhIFJpdmVyIGFzIGEg +c3RhbmRhcmQgdW5pdC4NCgkJVGhlIERlbHRhIENyZWVrIGFuZCBMaXR0bGUgRGVsdGEgUml2ZXIg +d2hlcmUgbW92ZWQgaW50byAxOTA0MDUwNy4NCgkJTGVnYWN5IDE5MDQwNTA3IFRhbmFuYSBGbGF0 +cyBMaW5ld29yayBjaGFuZ2VkIHNpZ25pZmljYW50bHkuDQoJCTE5MDQwNjA2IC0gTGVnYWN5IGJv +dW5kYXJ5IGZvciAxOTA0MDYwNiBoYWQgdGhlIG91dGxldCBhdCBhIGxvY2F0aW9uIGFjcm9zcyB0 +aGUgSHVzbGlhIFJpdmVyIGRvd25zdHJlYW0gZnJvbSB0aGUgb3V0bGV0IG9mIHRoZSBTb3V0aCBG +b3JrIEh1c2xpYSBSaXZlci4gVGhlIGJvdW5kYXJ5IHdhcyBhZGp1c3RlZCBkb3duc3RyZWFtIHRv +IHRoZSBtYWpvciBjb25mbHVlbmNlIHdoZXJlIHRoZSBIdXNsaWEgUml2ZXIgZHJhaW5zIGludG8g +dGhlIEtveXVrdWsgUml2ZXIsIHRodXMgY3JlYXRpbmcgYSBzdGFuZGFyZCBIVUM4IGZvciB0aGUg +SHVzbGlhIFJpdmVyLg0KCQkxOTA1Og0KCQkxOTA1MDIwMiwgMTkwNTAyMDMsIDE5MDUwMzAxLCAx +OTA1MDMwNCwgMTkwNTA0MDMNCgkJMTkwNTAyMDLigJlzIGJvdW5kYXJ5IHdhcyBhZGp1c3RlZCBz +byB0aGF0IHRoaXMgdW5pdCBjb250YWluZWQgYWxsIGZyb250YWwgZHJhaW5hZ2UgYXJlYXMgZmxv +d2luZyBpbnRvIHRoZSBzb3V0aGVybiBwb3J0aW9uIG9mIEtvdHplYnVlIFNvdW5kLg0KCQkxOTA1 +MDIwM+KAmXMgYm91bmRhcnkgd2FzIGFkanVzdGVkIHRvIHRoYXQgdGhlIHVuaXQgaW5jbHVkZWQg +RXNjaHNjaG9sdHogQmF5IGFuZCBhbGwgb2YgdGhlIGRyYWluYWdlIGFyZWFzIGZsb3dpbmcgaW50 +byBpdC4NCgkJMTkwNTAzMDHigJlzIGJvdW5kYXJ5IHdhcyBhZGp1c3RlZCBzbyB0aGF0IHRoaXMg +dW5pdCBoYXMgb25lIG91dGxldCBhbmQgaW5jbHVkZXMgU2VsYXdpayBMYWtlLiBUaGUgZnJvbnRh +bCBkcmFpbmFnZXMgZmxvd2luZyBpbnRvIEhvdGhhbSBJbmxldCB3ZXJlIG1vdmVkIGludG8gdW5p +dCAxOTA1MDMwNC4NCgkJMTkwNTAzMDTigJlzIGJvdW5kYXJ5IHdhcyBhZGp1c3RlZCBzbyB0aGF0 +IHRoZSB1bml0IGluY2x1ZGVkIEhvdGhhbSBJbmxldCBhbmQgdGhlIGZyb250YWwgZHJhaW5hZ2Vz +IGZsb3dpbmcgaW50byBpdC4NCgkJMTkwNTA0MDPigJlzIGJvdW5kYXJ5IHdhcyBhZGp1c3RlZCB0 +byBhIGJ1ZmZlciBkaXN0YW5jZSBvZiAxMDAwIG1ldGVycyBvZmYgc2hvcmUuDQoJCTE5MDUwNTAw +IC0gS290emVidWUgU291bmQ6DQoJCUFkZGVkIGEgbmV3IEhVQzggIHVuaXQgdG8gQUsgV0JEIGZv +ciBLb3R6ZWJ1ZSBTb3VuZC4gSW5uZXIgY29hc3RhbCB1bml0cyB0aGF0IGVuZGVkIGF0IHRoZSBz +aG9yZSBsaW5lIHdlcmUgZXh0ZW5kZWQgb2Zmc2hvcmUgdG8gYSAxMDAwIG1ldGVyIGJ1ZmZlciBk +aXN0YW5jZS4NCgkJTGVnYWN5IDE5MDYwMjA0IElrcGlrcHVrIFJpdmVyIGFic29yYmVkIEluYXJ1 +IFJpdmVyIGZyb20gTGVnYWN5IDE5MDYwMjAyDQoJCUxlZ2FjeSB1bml0IDE5MDYwMjAyIGNvbnRh +aW5lZCAyIGRpZmZlcmVudCBzdHJlYW0gc3lzdGVtcyBmbG93aW5nIGludG8gMiBkaWZmZXJlbnQg +Ym9kaWVzIG9mIHdhdGVyLg0KCQlUaGUgSW5hcnUgUml2ZXIgZmxvd3MgaW50byBBZG1pcmFsdHkg +QmF5IHdoaWxlIHRoZSBLdWdydWEgUml2ZXIgYW5kIHRoZSBvdGhlciBzbWFsbCBmcm9udGFsIGRy +YWluYWdlcyBmbG93cyBpbnRvIHRoZSBDaHVrY2hpIFNlYS4NCgkJVGhlIGJvdW5kYXJ5IHdhcyBh +ZGp1c3RlZCBzbyB0aGF0IGZsb3cgaW50byBBZG1pcmFsdHkgQmF5L0RlYXNlIElubGV0IHdhcyBz +ZXBhcmF0ZSBmcm9tIGZsb3cgaW50byBDaHVrY2hpIFNlYS4gVGhlIEluYXJ1IFJpdmVyLCBBZG1p +cmFsdHkgQmF5L0RlYXNlIElubGV0IGFuZCBhbGwgYXNzb2NpYXRlZCBmcm9udGFsIGRyYWluYWdl +cyB3ZXJlIGFkZGVkIHRvIHN1YmJhc2luIDE5MDYwMjA0Lg0KCQlOZXcgU3ViYmFzaW4gMTkwNjAy +MDYgaXMgYmVpbmcgbmFtZWQgQWRtaXJhbHR5IEJheS1EZWFzZSBJbmxldC4gVGhpcyBhcmVhIHVz +ZSB0byBiZSBwYXJ0IG9mIFN1YmJhc2luIDE5MDYwMjA0DQoJCTE5MDIwODAwIENvb2sgSW5sZXQg +aXMgYSBuZXcgaHlkcm9sb2dpYyB1bml0IGFzIHJlY29tbWVuZGVkIGJ5IHRoZSBBbGFza2EgaW4g +c3RhdGUgc3Rha2Vob2xkZXJzLg0KDQogICAgICAgIDIwMTEgLSBUaGVzZSB1cGRhdGVzIHdoZXJl +IHByb3Bvc2VkIGJ5IEZvcmVzdCBTZXJ2aWNlIHBhcnRuZXJzIHdpdGhpbiB0aGUgVG9uZ2FzcyBO +YXRpb25hbCBGb3Jlc3QuIFdoZW4gbWFqb3IgY2hhbmdlcyBhcmUgbWFkZSB0byB0aGUgSFVDOCBj +b250YWluZXIgKGkuZS4gdGhlIGNvbnRhaW5lciBpcyBzdWJkaXZpZGVkIGludG8gbXVsdGlwbGUg +dW5pdHMpIHRoZSBuYXRpb25hbCBwcm90b2NvbCBoYXMgYmVlbiB0byByZXRpcmUgdGhlIG9sZCBI +VUM4IGNvZGUgYW5kIG5hbWUgYW5kIGFzc2lnbiBuZXcgY29kZXMgYW5kIG5hbWVzIHRvIHRoZSB1 +cGRhdGVzIHVuaXRzDQoJCTE5MDEwMjAyIChLdWl1LUt1cHJlYW5vZi1NaXRrb2YtRXRvbGluLVph +cmVtYm8tV3JhbmdlbGwpIGlzIGJlaW5nIHJldGlyZWQgYW5kIDIgbmV3IEhVQzggdW5pdHMgd2Vy +ZSBmb3JtZWQuDQoJCUt1aXUgSXNsYW5kLCBNaXRrb2YgSXNsYW5kIGFuZCBLdXByZWFub2YgSXNs +YW5kIHdlcmUgc3BsaXQgb3V0IGludG8gdGhlaXIgb3duIDgtZGlnaXQgdW5pdA0KCQlIVUM4IC0g +MTkwMTAyMTANCgkJSFU4X05hbWUg4oCTIEt1aXUtS3VwcmVhbm9mLU1pdGtvZiBJc2xhbmRzDQoJ +CVphcmVtYm8gSXNsYW5kLCBXcmFuZ2VsbCBJc2xhbmQgYW5kIEV0b2xpbiBJc2xhbmQgd2VyZSBz +dWJkaXZpZGVkIGludG8gdGhlaXIgb3duIDggZGlnaXQgdW5pdA0KCQlIVUM4IOKAkyAxOTAxMDIw +OQ0KCQlIVThfTmFtZSDigJMgRXRvbGluLVphcmVtYm8tV3JhbmdlbGwgSXNsYW5kcw0KDQoJCTE5 +MDEwMjAzIChCYXJhbm9mLUNoaWNoYWdvZiBJc2xhbmRzKTE5MDEwMjAzIHdhcyByZXRpcmVkLiAx +OTAxMDIwMyB3YXMgc3ViZGl2aWRlZCAzIG5ldyB1bml0czsgMiBpc2xhbmQgdW5pdHMgYW5kIDEg +Y2hhbm5lbCB1bml0Lg0KCQlDaGljaGFnb2YgSXNsYW5kIHdhcyBzcGxpdCBvdXQgaW50byBpdHMg +b3duIDgtZGlnaXQgdW5pdA0KCQlIVUM4IOKAkyAxOTAxMDIxMQ0KCQlIVThfTmFtZSDigJMgQ2hp +Y2hhZ29mIElzbGFuZA0KCQlCYXJhbm9mIGFuZCBLcnV6b2YgSXNsYW5kcyB3ZXJlIHN1YmRpdmlk +ZWQgaW50byB0aGVpciBvd24gOC1kaWdpdCB1bml0DQoJCUhVQzgg4oCTIDE5MDEwMjEyDQoJCUhV +OF9OYW1lIOKAkyBCYXJhbm9mIElzbGFuZA0KCQlDcmVhdGVkIGEgbmV3IHdhdGVyIGh5ZHJvbG9n +aWMgdW5pdCBmb3IgdGhlIGNoYW5uZWwgYmV0d2VlbiBDaGljaGFnb2YgSXNsYW5kIGFuZCBCYXJh +bm9mL0tydXpvZiBJc2xhbmRzLiBUaGlzIG5ldyB3YXRlciB1bml0IHdvdWxkIGJlY29tZSBhIEhV +QzEwIHVuaXQgd2l0aGluIHRoZSAiV2F0ZXIiIHN1YmJhc2luIDE5MDEwNTAwLg0KCQlIVUMxMCDi +gJMgMTkwMTA1MDAxMQ0KCQlIVUMxMF9OYW1lIC0gUGVyaWwgU3RyYWl0DQoJCUJlY2F1c2Ugb2Yg +dGhlIHZhcnlpbmcgd2lkdGggb2YgdGhlIGNoYW5uZWwgdGhlIGJvdW5kYXJ5IHdhcyBncmFkdWF0 +ZWQgZnJvbSBhIDEsMDAwIG1ldGVyIGJ1ZmZlciB0byAxMDAgbWV0ZXIgYnVmZmVyIGZyb20gdGhl +IExvdyBUaWRlIFNob3JlbGluZS4gVGhlIExvdyBUaWRlIFNob3JlbGluZSB3YXMgcHJvdmlkZWQg +YnkgdGhlIEZvcmVzdCBTZXJ2aWNlLiANCgkJQSAxLDAwMCBtZXRlciBidWZmZXIgd2FzIHVzZWQg +aW4gdGhlIG9wZW4gY2hhbm5lbCB0byBtYXRjaCB0aGUgYnVmZmVyIGRpc3RhbmNlIHVzZWQgd2l0 +aGluIHRoZSByZXN0IG9mIFNFIEFLIFdCRC4gVGhlcmUgaXMgYSBuYXJyb3cgcG9ydGlvbiBvZiB0 +aGUgY2hhbm5lbCB3aGVyZSB0aGUgYm91bmRhcnkgd2FzIGdyYWR1YWxseSByZWR1Y2VkIGZyb20g +dGhlIDEsMDAwIG1ldGVyIGJ1ZmZlciB0byBhIDEwMCBtZXRlciBidWZmZXIuDQoJCQ0KCQkyMDE0 +IC0gVXBkYXRlZCBBbGFza2HigJlzIHJlZ2lvbiAxOTA0IGJhc2VkIG9uIGEgcmVxdWVzdCBmcm9t +IE5IRCBwcm9ncmFtIGFuZCBhcHByb3ZlZCBieSBzdGF0ZSBwYXJ0bmVycy4gMTkwNCB3YXMgc3Vi +ZGl2aWRlZCAzIG5ldyA0LWRpZ2l0IGh5ZHJvbG9naWMgdW5pdHMuIA0KCQlUaGUgbmV3IHVuaXRz +IGFyZQ0KCQkxOTA3IOKAkyBVcHBlciBZdWtvbiBSaXZlcg0KCQkxOTA3MDEg4oCTIEhlYWR3YXRl +cnMgWXVrb24gUml2ZXINCgkJMTkwOCDigJMgTWlkZGxlIFl1a29uIFJpdmVyDQoJCTE5MDkg4oCT +IExvd2VyIFl1a29uIFJpdmVyDQoJCQ0KCQkyMDE2IC0gVXBkYXRlcyB0byBBSyA4LWRpZ2l0IHVu +aXRzIGJhc2VkIG9uIGhhcm1vbml6YXRpb24gZWZmb3J0IHdpdGggQ2FuYWRhDQoJCTE5MDcwNTA0 +IChFYWdsZSBDcmVlay1ZdWtvbiBSaXZlcikgaXMgYmVpbmcgc3ViZGl2aWRlZCAyIG5ldyA4LWRp +Z2l0IGh5ZHJvbG9naWMgdW5pdHMuIE9yaWdpbmFsIGNvZGUgYW5kIG5hbWUgYXJlIGJlaW5nIHJl +dGlyZWQuDQoJCUhVQzggLSAxOTA3MDUwNSAoVGF0b25kdWsgUml2ZXItWXVrb24gUml2ZXIpDQoJ +CUhVQzggLSAxOTA3MDUwNiAoQ2hhcmxleSBSaXZlci1ZdWtvbiBSaXZlcikNCgkJDQoJCTE5MDYw +NTAzIChCZWF1Zm9ydCBMYWdvb24pIGlzIGJlaW5nIHN1YmRpdmlkZWQgMyBuZXcgOC1kaWdpdCBo +eWRyb2xvZ2ljIHVuaXRzLiBPcmlnaW5hbCBjb2RlIGFuZCBuYW1lIGFyZSBiZWluZyByZXRpcmVk +Lg0KCQlIVUM4IC0gMTkwNjA1MDQgKEtvbmdha3VhdCBSaXZlci1CZWF1Zm9ydCBMYWdvb24pDQoJ +CUhVQzggLSAxOTA2MDUwNSAoRmlydGggUml2ZXIpDQoJCUhVQzggLSAxOTA2MDUwNiAoQmFiYmFn +ZSBSaXZlcikgaXMgY29tcGxldGVseSB3aXRoaW4gQ2FuYWRhIFl1a29uIFRlcnJpdG9yeQ0KCQkJ +DQoJQXJpem9uYToNCgkJTGVnYWN5IDE1MDEwMDA5IEZvcnQgUGllcmNlIFdhc2ggbmFtZSBjaGFu +Z2VkIHRvIEZvcnQgUGVhcmNlIFdhc2ggdG8gYWNjb3VudCBmb3IgbWlzc3BlbGwuDQoJCUxlZ2Fj +eSAxNTAxMDAwNyBIdWFsYXBhaSBXYXNoIG5hbWUgc2hvdWxkIGNoYW5nZSBhcyB0aGUgd2FzaCBp +cyBub3cgaW4gdGhlIGFkamFjZW50IFN1YmJhc2luLiBDaGFuZ2VkIHRvIFJlZCBMYWtlIA0KCQ0K +CUNhbGlmb3JuaWE6DQoJCUxlZ2FjeSAxODAxMDEwOSBHdWFsYWxhLVNhbG1vbiBoYWQgYW4gYXJl +YSB0aGUgc2l6ZSBvZiBzZXZlcmFsIDEyLWRpZ2l0IEhVcyB0aGF0IGhhcyBiZWVuIGFnZ3JlZ2F0 +ZWQgaW50byB0aGUgYWRqYWNlbnQgbGVnYWN5IDE4MDUwMDA1IFRvbWFsZXMtRHJha2UgQmF5cyBh +cyBhIHJlc3VsdCBvZiBjb2FzdGFsIGltcGxlbWVudGF0aW9uLiBUaGlzIGlzIGFwcHJvdmVkIGJ5 +IHRoZSBpbi1zdGF0ZSBXQkQgU3Rld2FyZCBhbmQgVDMuTGVnYWN5IDE4MDMwMDEyIGFuZCBuZXcg +MTgwMzAwMTIgVHVsYXJlLUJ1ZW5hIFZpc3RhIExha2VzIGNoYW5nZWQgdG8gVHVsYXJlIExha2Ug +QmVkIGFzIHRoZSBib3VuZGFyeSBoYXMgY2hhbmdlZCBzbyBzaWduaWZpY2FudGx5IHRoYXQgQnVl +bmEgVmlzdGEgTGFrZXMgYXJlIG5vIGxvbmdlciBpbiB0aGUgYWRqdXN0ZWQgaHlkcm9sb2dpYyB1 +bml0Lg0KCQlMZWdhY3kgMTgwNDAwMDEgYW5kIG5ldyAxODA0MDAwNyBuYW1lIGNoYW5nZWQgZnJv +bSBVcHBlciBDaG93Y2hpbGxhLVVwcGVyIEZyZXNubyB0byBGcmVzbm8gUml2ZXIgYXMgdGhlIENo +b3djaGlsbGEgaXMgbm8gbG9uZ2VyIGluIHRoZSBhZGp1c3RlZCBoeWRyb2xvZ2ljIHVuaXQuDQoJ +CUxlZ2FjeSAxODA0MDAwMiBhbmQgbmV3IDE4MDQwMDAyIG5hbWUgY2hhbmdlZCBmcm9tIE1pZGRs +ZSBTYW4gSm9hcXVpbi1Mb3dlciBNZXJjZWQtTG93ZXIgU3RhbmlzbGF1cyB0byBMb3dlciBTYW4g +Sm9hcXVpbiBSaXZlciBhcyBNZXJjZWQgYW5kIFN0YW5pc2xhdXMgUml2ZXJzIGFyZSBubyBsb25n +ZXIgaW4gdGhlIGFkanVzdGVkIGh5ZHJvbG9naWMgdW5pdC4NCgkJTGVnYWN5IDE4MDUwMDA2IFNh +biBGcmFuY2lzY28tQ29hc3RhbCBTb3V0aCB3aWxsIGFic29yYiA0IGNvYXN0YWwgMTItZGlnaXQg +SFVzIGZyb20gbGVnYWN5IDE4MDYwMDAxIFNhbiBMb3JlbnpvLVNvcXVlbCBhcyBhIHJlc3VsdCBv +ZiBjb2FzdGFsIGltcGxlbWVudGF0aW9uLiBUaGlzIGlzIGFwcHJvdmVkIGJ5IHRoZSBpbi1zdGF0 +ZSBXQkQgU3Rld2FyZCBhbmQgdGhlIFdCRCBOYXRpb25hbCBUZWNobmljYWwgQ29vcmRpbmF0b3Jz +IChOVEMpDQoJCUxlZ2FjeSAxODA2MDAwNiBDZW50cmFsIENvYXN0YWwgd2lsbCBhYnNvcmIgYW4g +YXJlYSB0aGUgc2l6ZSBvZiA2IDEyLWRpZ2l0IEhV4oCZcyBmcm9tIGxlZ2FjeSAxODA2MDAxMiBD +YXJtZWwgd2hpY2ggYWxsIGRyYWlucyBkaXJlY3RseSB0byB0aGUgUGFjaWZpYyBPY2Vhbi4gVGhp +cyBpcyBhcHByb3ZlZCBieSB0aGUgaW4tc3RhdGUgV0JEIFN0ZXdhcmQgYW5kIHRoZSBXQkQgTmF0 +aW9uYWwgVGVjaG5pY2FsIENvb3JkaW5hdG9ycyAoTlRDKQ0KCQlQb3J0aW9ucyBvZiBsZWdhY3kg +MTgwNjAwMTEsIDE4MDYwMDEyLCBhbmQgcGFydCBvZiAxOTA2MDAwMSB3aWxsIGJlY29tZSBhIG5l +dyBzdWJiYXNpbiBhY2NvdW50aW5nIGZvciBhbGwgb2YgdGhlc2UgZnJvbnRhbCBwaWVjZXMuIEl0 +IHdpbGwgYmUgY29kZWQgMTgwNjAwMTUgYW5kIG5hbWVkIE1vbnRlcmV5IEJheS4gVGhpcyBpcyBh +cHByb3ZlZCBieSB0aGUgaW4tc3RhdGUgV0JEIFN0ZXdhcmQgYW5kIHRoZSBXQkQgTmF0aW9uYWwg +VGVjaG5pY2FsIENvb3JkaW5hdG9ycyAoTlRDKQ0KCQlMZWdhY3kgMTgwNjAwMTMgU2FudGEgQmFy +YmFyYSBDb2FzdGFsIGhhZCBhbiBhcmVhIHRoZSBzaXplIG9mIG9uZSAxMi1kaWdpdCBIVSB3aGlj +aCB3aWxsIGJlIGFnZ3JlZ2F0ZWQgd2l0aCBsZWdhY3kgMTgwNzAxMDEgVmVudHVyYSBhcyBhIHJl +c3VsdCBvZiBjb2FzdGFsIGltcGxlbWVudGF0aW9uLiBUaGlzIGlzIGFwcHJvdmVkIGJ5IHRoZSBp +bi1zdGF0ZSBXQkQgU3Rld2FyZCBhbmQgdGhlIFdCRCBOYXRpb25hbCBUZWNobmljYWwgQ29vcmRp +bmF0b3JzIChOVEMpDQoJCUxlZ2FjeSAxODA3MDEwNCBTYW50YSBNb25pY2EgQmF5IGhhZCBhbiBh +cmVhIHRoZSBzaXplIG9mIHNldmVyYWwgMTItZGlnaXQgSFVzIHdoaWNoIHdpbGwgYmUgYWdncmVn +YXRlZCB3aXRoIGxlZ2FjeSAxODA3MDEwNiBTYW4gR2FicmllbCBhcyBhIHJlc3VsdCBvZiBjb2Fz +dGFsIGltcGxlbWVudGF0aW9uLiBUaGlzIGlzIGFwcHJvdmVkIGJ5IHRoZSBpbi1zdGF0ZSBXQkQg +U3Rld2FyZCBhbmQgV0JEIE5hdGlvbmFsIFRlY2huaWNhbCBDb29yZGluYXRvcnMgKE5UQykNCgkJ +TGVnYWN5IDE4MTAwMjAwIGhhcyBub3cgYmVlbiBzdWJkaXZpZGUgaW50byAxODEwMDIwMSwgMTgx +MDAyMDIsIDE4MTAwMjAzLCBhbmQgMTgxMDAyMDQuIA0KCQlUaGUgbGVnYWN5IG5hbWUgZm9yIDE4 +MDEwMDIwMCBoYXMgYmVlbiByZXRhaW5lZCBhcyB0aGUgU2FsdG9uIFNlYSBmb3IgbmV3ICBjb2Rl +IDE4MTAwMjA0LiBOZXcgbmFtZXMgZm9yIHRoZSBvdGhlciBzdWJkaXZpc2lvbnMgaGF2ZSBiZWVu +IHJldmlld2VkIGFuZCBhY2NlcHRlZCBhcyBmb2xsb3dzOg0KCQkJMTgxMDAyMDEgV2hpdGV3YXRl +ciBSaXZlcg0KCQkJMTgxMDAyMDIgQ2Fycml6byBDcmVlaw0KCQkJMTgxMDAyMDMgU2FuIEZlbGlw +ZSBDcmVlaw0KCQlMZWdhY3kgMTgwNDAwMDIgYW5kIG5ldyAxODA0MDA1MSBuYW1lIE1pZGRsZSBT +YW4gSm9hcXVpbi1Mb3dlciBNZXJjZWQtTG93ZXIgU3RhbmlzbGF1cyB3YXMgY2hhbmdlIHRvIFJv +Y2sgQ3JlZWstRnJlbmNoIENhbXAgU2xvdWdoLg0KCQlMZWdhY3kgMTgwMjAxMjQgSG9uY3V0IEhl +YWR3YXRlcnMgbmFtZSBhbmQgY29kZSBoYXZlIGJlZW4gcmV0aXJlZC4gIEl0IHdhcyBhYnNvcmJl +ZCBpbiB0byBsZWdhY3kgMTgwMjAxMDYgTG93ZXIgRmVhdGhlciB0byBmb3JtIHRoZSBuZXcgMTgw +MjAxNTkuIFdCRCBOYXRpb25hbCBUZWNobmljYWwgQ29vcmRpbmF0b3JzIChOVEMpIHJlY29tbWVu +ZHMgdGhlIG5hbWUgcmV0YWluIHRoZSBjb21iaW5lZCBsZWdhY3kgbmFtZXMgb2YgSG9uY3V0IEhl +YWR3YXRlcnMtTG93ZXIgRmVhdGhlci4NCgkJTGVnYWN5IDE4MDIwMTIwIFVwcGVyIEJ1dHRlIGFu +ZCBsZWdhY3kgMTgwMjAxMDUgTG93ZXIgQnV0dGUgaGF2ZSBiZWVuIHJldGlyZWQuDQoJCVRoZSB0 +d28gaHlkcm9sb2dpYyB1bml0cyB3ZXJlIGNvbWJpbmVkIGluIHRvIHRoZSBuZXcgYWNjZXB0ZWQg +Y29kZSBhbmQgbmFtZSBvZiAxODAyMDE1OCBCdXR0ZSBDcmVlay4NCgkJTGVnYWN5IDE4MDIwMTE5 +IE1pbGwtQmlnIENoaWNvLCAxODAyMDEwMyBTYWNyYW1lbnRvLUxvd2VyIFRob21lcywgYW5kIDE4 +MDIwMTE0IFVwcGVyIEVsZGVyIFRob21lcyBoYXZlIGJlZW4gcmV0aXJlZC4gIFRoZSBhY2NlcHRl +ZCBuYW1lcyBhbmQgY29kZXMgZm9yIHRoZSBuZXdseSBkZWxpbmVhdGVkIGh5ZHJvbG9naWMgdW5p +dHMgdG8gcmVwbGFjZSB0aG9zZSBhcmVhcyBhcmUgMTgwMjAxNTcgQmlnIENoaWNvIENyZWVrLVNh +Y3JhbWVudG8gUml2ZXIsIDE4MDIwMTU2IFRob21lcyBDcmVlay1TYWNyYW1lbnRvIFJpdmVyLCBh +bmQgMTgwMjAxNTUgUGF5bmVzIENyZWVrLVNhY3JhbWVudG8gUml2ZXIuDQoJCVRoZSBmb2xsb3dp +bmcgbGVnYWN5IG5hbWVzIGFuZCBjb2RlcyBoYXZlIGJlZW4gcmV0aXJlZDogMTgwMjAxMTMgQ290 +dG9ud29vZCBIZWFkd2F0ZXJzLCAxODAyMDEwMiBMb3dlciBDb3R0b253b29kLCAxODAyMDEwMSBT +YWNyYW1lbnRvLUxvd2VyIENvdy1Mb3dlciBDbGVhciwgMTgwMjAxMTggVXBwZXIgQ293LUJhdHRs +ZSwgYW5kIDE4MDIwMTEyIFNhY3JhbWVudG8tVXBwZXIgQ2xlYXIuICBUaGUgYWNjZXB0ZWQgY29k +ZXMgZm9yIHRoZSBuZXdseSBkZWxpbmVhdGVkIGh5ZHJvbG9naWMgdW5pdHMgdGhhdCByZXBsYWNl +IHRob3NlIGFyZWFzIHdpbGwgYmUgMTgwMjAxNTEtMTgwMjAxNTQuICANCgkJCVRoZSBhcHByb3Zl +ZCBuYW1lcyBhcmU6DQoJCQkxODAyMDE1MSBDb3cgQ3JlZWsNCgkJCTE4MDIwMTUyIENvdHRvbndv +b2QgQ3JlZWsNCgkJCTE4MDIwMTUzIEJhdHRsZSBDcmVlaw0KCQkJMTgwMjAxNTQgQ2xlYXIgQ3Jl +ZWstU2FjcmFtZW50byBSaXZlciANCgkJMTgwMTAxMTEgY29kZSBhbmQgbmFtZSBoYXZlIGJlZW4g +cmV0aXJlZCBhbmQgdGhlIGFyZWEgaGFzIGJlZW4gc3ViZGl2aWRlZC4gQSBwb3J0aW9uIGlzIGlu +IDE4MDEwMTA5IEd1YWxhbGEtU2FsbW9uLCBhbmQgdGhlIG90aGVyIHBvcnRpb24gaW4gMTgwNTAw +MDUgVG9tYWxlcy1EcmFrZSBCYXlzDQoJCTE4MDIwMTA3IGNvZGUgYW5kIG5hbWUgaGF2ZSBiZWVu +IHJldGlyZWQgYW5kIHRoZSBhcmVhIGlzIG5vdyBpbmNsdWRlZCB3aXRoIDE4MDIwMTI1IFVwcGVy +IFl1YmENCgkJMTgwMjAxMDggY29kZSBhbmQgbmFtZSBoYXZlIGJlZW4gcmV0aXJlZCBhbmQgdGhl +IGFyZWEgaXMgbm93IGluY2x1ZGVkIHdpdGggMTgwMjAxMjYgVXBwZXIgQmVhcg0KCQkxODAyMDEx +MCBjb2RlIGFuZCBuYW1lIGhhdmUgYmVlbiByZXRpcmVkIGFuZCB0aGUgYXJlYSBpcyBub3cgaW5j +bHVkZWQgd2l0aCAxODAyMDExNiBVcHBlciBDYWNoZQ0KCQkxODAzMDAwOCBjb2RlIGFuZCBuYW1l +IGhhdmUgYmVlbiByZXRpcmVkIGFuZCB0aGUgYXJlYSBpcyBub3cgaW5jbHVkZWQgd2l0aCAxODAz +MDAxMiBUdWxhcmUgTGFrZSBCZWQNCgkJMTgwMzAwMTEgY29kZSBhbmQgbmFtZSBoYXZlIGJlZW4g +cmV0aXJlZCBhbmQgdGhlIGFyZWEgaGFzIGJlZW4gc3ViZGl2aWRlZC4gQSBwb3J0aW9uIGlzIGlu +IDE4MDMwMDEyIFR1bGFyZSBMYWtlIEJlZCwgYW5kIHRoZSBvdGhlciBwb3J0aW9uIGluIDE4MDMw +MDA5IFVwcGVyIERyeSANCgkJMTgwNDAwMDQgY29kZSBhbmQgbmFtZSBoYXZlIGJlZW4gcmV0aXJl +ZCBhbmQgdGhlIGFyZWEgaXMgbm93IHBhcnQgb2YgMTgwNDAwMTEgVXBwZXIgQ2FsYXZlcmFzIENh +bGlmb3JuaWENCgkJMTgwNDAwMDUgY29kZSBhbmQgbmFtZSBoYXZlIGJlZW4gcmV0aXJlZCBhbmQg +dGhlIGFyZWEgaXMgbm93IHBhcnQgb2YgMTgwNDAwMDMgU2FuIEpvYXF1aW4gRGVsdGEsIDE4MDQw +MDEyLCAxODA0MDAxMiBVcHBlciBNb2tlbHVtbmUsIGFuZCAxODA0MDAwMyBVcHBlciBDb3N1bW5l +cw0KCQkxODAyMDEwOSBjb2RlIGFuZCBuYW1lIGhhdmUgYmVlbiByZXRpcmVkIGFuZCB0aGUgYXJl +YSBpcyBub3cgcGFydCBvZiAxODAyMDE2MyBMb3dlciBTYWNyYW1lbnRvDQoJCTE4MDIwMTE3IGNv +ZGUgYW5kIG5hbWUgaGF2ZSBiZWVuIHJldGlyZWQgYW5kIHRoZSBhcmVhIGlzIG5vdyBwYXJ0IG9m +IDE4MDIwMTYyIFVwcGVyIFB1dGFoDQoJCTE4MDYwMDAxIGNvZGUgYW5kIG5hbWUgaGF2ZSBiZWVu +IHJldGlyZWQsIGFuZCB0aGUgYXJlYXMgYXJlIG5vdyBzdWJkaXZpZGVkIGJldHdlZW4gMTgwNTAw +MDYgU2FuIEZyYW5jaXNjbyBDb2FzdGFsIFNvdXRoIGFuZCAxODA2MDAxNSBNb250ZXJleSBCYXkN +CgkJMTgwNjAwMTEgY29kZSBhbmQgbmFtZSBoYXZlIGJlZW4gcmV0aXJlZCBhbmQgbm93IGlzIHN1 +YmRpdmlkZWQgYmV0d2VlbiAxODA2MDAxNSBNb250ZXJleSBCYXkgYW5kIDE4MDYwMDA1IFNhbGlu +YXMNCgkJMTgwNjAwMTIgY29kZSBhbmQgbmFtZSBoYXZlIGJlZW4gcmV0aXJlZCBhbmQgdGhlIGFy +ZWEgaXMgbm93IHBhcnQgb2YgMTgwNjAwMDYgQ2VudHJhbCBDb2FzdCBhbmQgMTgwNjAwMTUgTW9u +dGVyZXkgQmF5DQoNCglDb2xvcmFkbzoNCgkJTGVnYWN5IDE0MDEwMDA2IFBhcmFjaHV0ZS1Sb2Fu +IG5hbWUgYW5kIGNvZGUgaGF2ZSBiZWVuIHJldGlyZWQuIFRoaXMgYXJlYSBoYXMgYmVlbiBjb21i +aW5lZCB3aXRoIDE0MDEwMDA1IENvbG9yYWRvIEhlYWR3YXRlcnMtUGxhdGVhdS4NCg0KCUNvbm5l +Y3RpY3V0Og0KCQkwMTEwMDAwNyBjb2RlIGFuZCBuYW1lIGhhdmUgYmVlbiByZXRpcmVkIGFuZCB0 +aGUgYXJlYSBpcyBub3cgcGFydCBvZiAwMTEwMDA0IFF1aW5uaXBpYWMNCg0KCURlbGF3YXJlOg0K +CQkwMjA2MDAwNyBjb2RlIGFuZCBuYW1lIGhhdmUgYmVlbiByZXRpcmVkIGFuZCB0aGlzIGFyZWEg +bm93IGluY2x1ZGVkIHdpdGggMDIwODAxMTAgVGFuZ2llcg0KCQkwMjA2MDAwOCBjb2RlIGFuZCBu +YW1lIGhhdmUgYmVlbiByZXRpcmVkIGFuZCB0aGlzIGFyZWEgbm93IGluY2x1ZGVkIHdpdGggMDIw +ODAxMDkgTmFudGljb2tlDQoJCTAyMDYwMDA5IGNvZGUgYW5kIG5hbWUgaGF2ZSBiZWVuIHJldGly +ZWQgYW5kIHRoaXMgYXJlYSBpcyBub3cgcGFydCBvZiAwMjA4MDExMSBQb2tvbW9rZS1XZXN0ZXJu +IExvd2VyIERlbG1hcnZhIGFuZCAwMjA4MDExMCBUYW5naWVyDQoJCTAyMDYwMDEwIGNvZGUgYW5k +IG5hbWUgaGF2ZSBiZWVuIHJldGlyZWQgYW5kIHRoaXMgYXJlYSBpcyBub3cgcGFydCBvZiAwMjA0 +MDMwMyBDaGluY290ZWFndWUNCg0KCUZsb3JpZGE6DQoJCUxlZ2FjeSAwMzA5MDIwMiBFdmVyZ2xh +ZGVzIGhhcyBiZWVuIG1vZGlmaWVkIGFzIGZvbGxvd3M6DQoJCVRoZSBsYXJnZXN0IHBhcnQgb2Yg +MDMwOTAyMDIgRXZlcmdsYWRlcyBjYXJyaWVzIHRoZSBsZWdhY3kgY29kZSBhbmQgbmFtZS4NCgkJ +U3ViZGl2aWRlZCBvdXQgbmV3IFN1YmJhc2luIDAzMDkwMjA2IEZsb3JpZGEgU291dGhlYXN0IENv +YXN0DQoJCUNvbWJpbmVkIGFkZGl0aW9uYWwgc21hbGxlciBwb3J0aW9ucyBvZiAwMzA5MDIwMiB3 +aXRoIGFkamFjZW50IFN1YmJhc2lucy4NCg0KCUxvdWlzaWFuYToNCgkJMjAwOSAtIFVTR1MgV2F0 +ZXIgU2NpZW5jZSBDZW50ZXIsIFNhbHQgTGFrZSBDaXR5LCBVVC4gUmVjb2RlZCBhbGwgSFVDMTIg +Y29kZXMgYW5kIERTIGNvZGVzIGZvciAwODA4MDEwMCBBdGNoYWZhbGF5YSB0byAwODA4MDEwMSBB +dGNoYWZhbGF5YS4gMDgwODAxMDEgaXMgdGhlIGNvcnJlY3QgY29kZS4gRHVyaW5nIHRoZSBkZXZl +bG9wbWVudCBvZiB0aGUgV0JEIHRoZSAxMi1kaWdpdCBoeWRyb2xvZ2ljIHVuaXRzIHdlcmUgbWlz +Y29kZWQgYXMgMDgwODAxMDAuDQogICAgICAgIA0KCU1haW5lDQoJCVVwZGF0ZXMgYXQgdGhlIDgt +ZGlnaXQgb2NjdXJyZWQgYXMgYSByZXN1bHQgb2YgdGhlIFVTL0NhbmFkYSBoYXJtb25pemF0aW9u +IGVmZm9ydC4gU2VlIHByb2Nlc3Mgc2VjdGlvbiBvbiBDYW5hZGlhbiBoYXJtb25pemF0aW9uIGZv +ciB0aGVzZSBkZXRhaWxzLg0KCQ0KCU1hc3NhY2h1c2V0dHM6DQoJCTAxMDcwMDAyIGlzIHJldGFp +bmVkIGZvciB0aGUgaGVhZHdhdGVycyBvZiB0aGlzIG9yaWdpbmFsIGNvZGUsIGJ1dCDCviBvZiB0 +aGUgb3JpZ2luYWwgYXJlYSBpcyBub3cgY29kZWQgMDEwNzAwMDYuIFRoZSBhcmVhIG5vdyBjb2Rl +ZCAwMTA3MDAwNiByZXRhaW5lZCB0aGUgb3JpZ2luYWwgbmFtZSBmb3IgdGhlIGFyZWEgb2YgbGVn +YWN5IDAxMDcwMDAyIGFuZCBpcyBjYWxsZWQgTWVycmltYWNrLCB3aGVyZWFzIDAxMDcwMDAyIGlz +IG5vdCBjYWxsZWQgV2lubmlwZXNhdWtlZSBSaXZlciAob3RoZXIgc3RhdGUgZG9jdW1lbnRhdGlv +biBzdXBwb3J0aW5nIHRoaXMgZGVjaXNpb24pDQoNCglOZXcgSGFtcHNoaXJlOg0KCQlMZWdhY3kg +MDEwNzAwMDIgTWVycmltYWNrIHdhcyBzdWJkaXZpZGVkIGluIHRvIDAxMDcwMDAyIE1lcnJpbWFj +ayB0byB0aGUgTm9ydGggYW5kIDAxMDcwMDA2IE1lcnJpbWFjayBSaXZlciB0byB0aGUgU291dGgu +ICBUaGUgdGVjaG5pY2FsIHRlYW0gcmVxdWVzdHMgdGhhdCB0aGUgcG9ydGlvbiB0byB0aGUgU291 +dGggcmV0YWluIHRoZSBsZWdhY3kgY29kZSBhbmQgbmFtZSBvZiAwMTA3MDAwMiwgTWVycmltYWNr +LCBhbmQgdGhhdCB0aGUgbm9ydGhlcm4gaHlkcm9sb2dpYyB1bml0IHJlY2VpdmUgdGhlIGNvZGUg +YW5kIG5hbWUgMDEwNzAwMDYgV2lubmlwZXNhdWtlZSBSaXZlci4gIFRoZXJlIGlzIG5vIE1lcnJp +bWFjayBSaXZlciBpbiB0aGUgbm9ydGhlcm4gcG9ydGlvbiBhbmQgdGhlIHNvdXRoZXJuIHBvcnRp +b24gbW9zdCBjbG9zZWx5IHJlc2VtYmxlcyB0aGUgbGVnYWN5IGRlbGluZWF0aW9uLg0KCQ0KCQlB +ZGRpdGlvbmFsIHVwZGF0ZXMgYXQgdGhlIDgtZGlnaXQgb2NjdXJyZWQgYXMgYSByZXN1bHQgb2Yg +dGhlIFVTL0NhbmFkYSBoYXJtb25pemF0aW9uIGVmZm9ydC4gU2VlIHByb2Nlc3Mgc2VjdGlvbiBv +biBDYW5hZGlhbiBoYXJtb25pemF0aW9uIGZvciB0aGVzZSBkZXRhaWxzDQoNCglOZXcgWW9yazoN +CgkJTGVnYWN5IDA0MTUwMzA3IEVuZ2xpc2gtU2FsbW9uIHdhcyBzdWJkaXZpZGVkIGludG8gMDQx +NTAzMDcgU2FsbW9uIGFuZCAwNDE1MDMwOCBDaGF0ZWF1Z2F5LUVuZ2xpc2guIFRoZSBUZWNobmlj +YWwgVGVhbSBhY2NlcHRzIHRoaXMgY2hhbmdlLg0KCQ0KCQkyMDEwLSBFZGl0cyB3ZXJlIG1hZGUg +dG8gTGFrZSBDaGFtcGxhaW4gQmFzaW4gbW92aW5nIGl0IGZyb20gUmVnaW9uIDAyIHRvIFJlZ2lv +biAwNC4gVXBkYXRlIHRvIGRlbGluZWF0aW9uIGRhdGEgaW4gTGFrZSBDaGFtcGxhaW4gYXJlYSBv +biB0aGUgVVMgc2lkZSBhbmQgQ2FuYWRpYW4gc2lkZS4gQWxsIGxpbmVzIHdpdGhpbiBDYW5hZGEg +YXJlIGRyYWZ0IGRlbGluZWF0aW9ucyBvbmx5LiBUaGVzZSBib3VuZGFyaWVzIHdlcmUgYmFzZWQg +b24gQ2FuYWRhJ3MgMTo1MCwwMDAgTmF0aW9uYWwgSHlkcm9ncmFwaHkgTmV0d29yayBXb3JrIFVu +aXRzIG9yIHdlcmUgZGVsaW5lYXRlZCB1c2luZyBlaXRoZXIgMTo1MCwwMDAgc2NhbGUgdG9wb3Mg +b3IgQ0RFRCBlbGV2YXRpb24gZGF0YS4gVGhlc2UgYm91bmRhcmllcyBoYXZlIG5vdCBiZWVuIGZ1 +bGx5IHJldmlld2VkIG9yIGFwcHJvdmVkIGJ5IGVpdGhlciB0aGUgQ2FuYWRpYW4gZmVkZXJhbCBv +ciBwcm92aW5jaWFsIGFnZW5jaWVzIGFuZCBhcmUgc3ViamVjdCB0byBjaGFuZ2UuICBCb3JkZXIg +cG9seWdvbnMgYXJlIGJhc2VkIG9mZiBvZiB0aGVzZSBpbnRlcm5hbCBib3VuZGFyaWVzIHdpdGhp +biBDYW5hZGEgYW5kIHNvIGFyZSBhbHNvIHN1YmplY3QgdG8gY2hhbmdlIHdpdGhpbiBDYW5hZGEu +IEVkaXRzIG1hZGUgYnkgVVNHUyBTYWx0IExha2UgQ2l0eSwgV2F0ZXIgU2NpZW5jZSBDZW50ZXI6 +IHRvIHRoZSBMYWtlIENoYW1wbGFpbiBhbmQgc3Vycm91bmRpbmcgc3ViYmFzaW5zIHRvIHJlbW92 +ZSBhbGwgc2hvcmVsaW5lIHJlcHJlc2VudGF0aW9ucyBmcm9tIHRoZSBXQkQuIFRoZSBjb2Rlcywg +RFMgY29kZXMgYW5kIG5hbWVzIHdoZXJlIHVwZGF0ZWQgd2hlcmUgbmVjZXNzYXJ5Lg0KDQoJCTAy +MDEwMDA0IG5hbWUgYW5kIGNvZGUgaGF2ZSBiZWVuIHJldGlyZWQsIGFuZCB0aGlzIGFyZWEgd2Fz +IHN1YmRpdmlkZWQsIHBhcnQgaXMgaW4gMDQxNTA0MDQgQXVzYWJsZSBSaXZlciBhbmQgcGFydCBp +biAwNDE1MDQwOCBMYWtlIENoYW1wbGFpbi4NCgkJMDIwMTAwMDYgbmFtZSBhbmQgY29kZSBoYXZl +IGJlZW4gcmV0aXJlZCBhbmQgdGhpcyBhcmVhIHdhcyBzdWJkaXZpZGVkLiBQYXJ0IGlzIGluIDA0 +MTUwNDA2IFNhcmFuYWMgUml2ZXIgYW5kIHBhcnQgaXMgaW4gMDQxNTA0MDggTGFrZSBDaGFtcGxh +aW4uDQoJCTAyMDEwMDAxIG5hbWUgYW5kIGNvZGUgaGF2ZSBiZWVuIHJldGlyZWQgYW5kIHRoaXMg +YXJlYSB3YXMgc3ViZGl2aWRlZCBpbnRvIDA0MTUwNDAxIE1ldHRhd2VlIFJpdmVyIGFuZCAwNDE1 +MDQwOCBMYWtlIENoYW1wbGFpbg0KCQ0KCQlUaGUgbmV3IExha2UgQ2hhbXBsYWluIHVuaXQgMDQx +NTA0MDggaXMgbWFkZSB1cCBvZiBwYXJ0cyBvZiBvcmlnaW5hbCBIVUMyNTBLIHVuaXRzIDAyMDEw +MDAxLCAwMjAxMDAwMiwgMDIwMTAwMDMsIDAyMDEwMDA0LCAwMjAxMDAwNSwgMDIwMTAwMDYgYW5k +IDAyMDEwMDA3DQoJDQoJCUFkZGl0aW9uYWwgdXBkYXRlcyBhdCB0aGUgOC1kaWdpdCBvY2N1cnJl +ZCBhcyBhIHJlc3VsdCBvZiB0aGUgVVMvQ2FuYWRhIGhhcm1vbml6YXRpb24gZWZmb3J0LiBTZWUg +cHJvY2VzcyBzZWN0aW9uIG9uIENhbmFkaWFuIGhhcm1vbml6YXRpb24gZm9yIHRoZXNlIGRldGFp +bHMNCg0KCU5vcnRoIENhcm9saW5hOg0KCQlMZWdhY3kgc3ViYmFzaW4gMDMwMzAwMDEgYW5kIGxl +Z2FjeSBzdWJiYXNpbiAwMzAyMDEwNiBoYXZlIGJlZW4gY29tYmluZWQgYW5kIHJlY29tbWVuZGVk +IGZvciBhY2NlcHRhbmNlIGFzIGEgbmV3IDYtZGlnaXQgQmFzaW4gMDMwMjAzIE9uc2xvdyBCYXku +ICANCgkJTGVnYWN5IFN1YmJhc2luIDAzMDMwMDAxIE5ldyBoYXMgYmVlbiByZWNvZGVkIGFuZCBy +ZW5hbWVkIHRvIDAzMDIwMzAyIE5ldyBSaXZlci4gVGhlIHRlY2huaWNhbCB0ZWFtIGFjY2VwdHMg +dGhlIG5ldyBjb2RlIGFuZCBuYW1lLg0KCQlMZWdhY3kgU3ViYmFzaW4gMDMwMjAxMDYgQm9ndWUt +Q29yZSBTb3VuZHMgaGFzIGJlZW4gcmVjb2RlZCBhbmQgcmVuYW1lZCB0byAwMzAyMDMwMSBXaGl0 +ZSBPYWsgUml2ZXIuIFRoZSB0ZWNobmljYWwgdGVhbSBhY2NlcHRzIHRoZSBuZXcgY29kZSBhbmQg +bmFtZS4NCgkJMDMwNDAyMDcgY29kZSBhbmQgbmFtZSBhcmUgc3RpbGwgaW4gdXNlLCBidXQgdGhl +IHBvcnRpb24gdGhhdCBzdHJldGNoZXMgYWxvbmcgdGhlIGNvYXN0IGhhcyBiZWVuIGJyb2tlbiBv +dXQgdG8gYSBuZXcgMDMwNDAyMDggQ29hc3RhbCBDYXJvbGluYQ0KDQoJTm9ydGggRGFrb3RhOg0K +CQlMZWdhY3kgMTAxNjAwMDcgRWFzdCBNaXNzb3VyaSBDb3RlYXUsIGNoYW5nZWQgdG8gTm9ydGgg +Rm9yayBTbmFrZSBhcyB0aGF0IGlzIGEgYmV0dGVyIGh5ZHJvbG9naWMgcmVwcmVzZW50YXRpb24g +b2YgdGhlIGh5ZHJvbG9naWMgdW5pdC4NCgkJTGVnYWN5IDEwMTcwMTAzIFNvdXRoIEJpZyBTaW91 +eCBDb3RlYXUgbmFtZSBjaGFuZ2VkIHRvIExha2UgVGhvbXBzb24NCgkJTGVnYWN5IDEwMTcwMjAx +IE1pZGRsZSBCaWcgU2lvdXggQ290ZWF1IG5hbWUgY2hhbmdlZCB0byBVcHBlciBCaWcgU2lvdXgN +CgkJTGVnYWN5IDEwMTcwMjAyIFVwcGVyIEJpZyBTaW91eCBuYW1lIGNoYW5nZWQgdG8gTWlkZGxl +IEJpZyBTaW91eA0KCQlCZWNhdXNlIGxlZ2FjeSAxMDE3MDIwMyBMb3dlciBCaWcgU2lvdXggc2hv +dWxkIHN0YXkgdGhlIHNhbWUsIGl0IGRvZXNu4oCZdCBtYWtlIHNlbnNlIG5vdCB0byBoYXZlIGEg +bWlkZGxlIGFuZCBhbiB1cHBlci4gQWx0aG91Z2ggdGhlIGJvdW5kYXJpZXMgaGF2ZSBzaWduaWZp +Y2FudGx5IHJlbG9jYXRlZCwgaXQgc2VlbSBsaWtlIG1vc3QgdmlhYmxlIG9wdGlvbiBpcyB0byBy +ZXRhaW4gdGhlIFVwcGVyLCBNaWRkbGUsIExvd2VyIG5hbWluZyBjb252ZW50aW9uLg0KDQoJCUFk +ZGl0aW9uYWwgdXBkYXRlcyBhdCB0aGUgOC1kaWdpdCBvY2N1cnJlZCBhcyBhIHJlc3VsdCBvZiB0 +aGUgVVMvQ2FuYWRhIGhhcm1vbml6YXRpb24gZWZmb3J0LiBTZWUgcHJvY2VzcyBzZWN0aW9uIG9u +IENhbmFkaWFuIGhhcm1vbml6YXRpb24gZm9yIHRoZXNlIGRldGFpbHMNCg0KCU9yZWdvbjogDQoJ +CUxlZ2FjeSAxNzEwMDMwNCBDb29zIHdhcyBzdWJkaXZpZGVkIGludG8gMTcxMDAzMDQgQ29vcyB0 +byB0aGUgbm9ydGggYW5kIDE3MTAwMzA2IFNpeGVzIHRvIHRoZSBzb3V0aC4gVGhlIFRlY2huaWNh +bCB0ZWFtIGFjY2VwdHMgdGhpcyBjaGFuZ2UuDQoNCglTb3V0aCBDYXJvbGluYToNCgkJTGVnYWN5 +IDAzMDQwMjA3IENhcm9saW5hIENvYXN0YWwtU2FtcGl0IHdhcyBzdWJkaXZpZGVkIGludG8gYSBz +b3V0aGVybiBwb3J0aW9uIGNhbGxlZCAwMzA0MDIwNyBDYXJvbGluYSBDb2FzdGFsLVNhbXBpdCBh +bmQgYSBub3J0aGVybiBwb3J0aW9uIG5ld2x5IGNvZGVkIGFuZCBuYW1lZCAwMzA0MDIwOCBDb2Fz +dGFsIENhcm9saW5hLiBUaGUgdGVjaG5pY2FsIHRlYW0gcmVjb2duaXplcyB0aGlzIGFzIGFuIGFj +Y2VwdGFibGUgc29sdXRpb24sIGhvd2V2ZXIsIGZ1dHVyZSBjb2FzdGFsIGRlbGluZWF0aW9ucyBt +YXkgcmVxdWlyZSBhZGRpdGlvbmFsIG1vZGlmaWNhdGlvbi4NCgkJTGVnYWN5IDAzMDUwMjAyIFNv +dXRoIENhcm9saW5hIENvYXN0YWwgaGFzIG5vdyBiZWVuIHN1YmRpdmlkZWQgaW50byBzdWJiYXNp +bnMgMDMwNTAyMDIgU291dGggQ2Fyb2xpbmEgQ29hc3RhbCBhbmQgMDMwNTAyMDkgQnVsbHMgQmF5 +IHdpdGggYW4gYWRkaXRpb25hbCBwb3J0aW9uIG9mIDAzMDUwMjAyIGJlaW5nIGFnZ3JlZ2F0ZWQg +aW4gd2l0aCBsZWdhY3kgMDMwNTAyMDEgDQoJCUxlZ2FjeSAwMzA1MDIwOCBCcm9hZC1TdC4gSGVs +ZW5hIGhhcyBoYWQgdGhlIGZvbGxvd2luZyBtb2RpZmljYXRpb25zIHdoaWNoIHRoZSBOVEMgY29u +Y3VycyB3aXRoOg0KCQkwMzA1MDIwOCBCcm9hZC1TdC4gSGVsZW5hIGNvZGUgYW5kIG5hbWUgcmV0 +YWluZWQgaW50byBhIG11Y2ggc21hbGxlciB1bml0IGNhcHR1cmluZyBvbmx5IHRoZSBCcm9hZC1T +dC4gSGVsZW5hIFJpdmVycw0KCQkJU3ViZGl2aWRlZCBpbnRvIG5ldyAwMzA2MDExMCBDYWxpYm9n +dWUgU291bmQtV3JpZ2h0IFJpdmVyLCBhbmQgbm93IHBhcnQgb2YgdGhlIGFkamFjZW50IFN1YnJl +Z2lvbiB0byB0aGUgc291dGguDQoJCQlTdWJkaXZpZGVkIGludG8gbmV3IDAzMDUwMjEwIFN0LiBI +ZWxlbmEgSXNsYW5kIHBvcnRpb24gY29tYmluZWQgd2l0aCAwMzA1MDIwNyBTYWxrZWhhdGNoaWUu +DQoJCUxlZ2FjeSAwMzA1MDIwNSBuYW1lIGlzIGNoYW5nZWQgdG8gRm91ciBIb2xlIFN3YW1wIChm +cm9tIEVkaXN0by4uLnRoaXMgbmFtZSB3YXMgZmxpcHBlZCB3aXRoIHRoZSBoeWRyb2xvZ2ljIHVu +aXQgdGhlIHdhdGVyIGZlYXR1cmUgcmVzaWRlcyBpbikuIFRoZSBXQkQgTmF0aW9uYWwgVGVjaG5p +Y2FsIFRlYW0gcmVjb21tZW5kZWQgdGhhdCB0aGlzIG5hbWUgbm90IGJlIHJldXNlZCBhcyBpdCBo +YXMgYmVlbiBoaXN0b3JpY2FsbHkgYXNzaWduZWQgdG8gMDMwNTAyMDYsIGJ1dCBhbGwgaW4gc3Rh +dGUgaW50ZXJhZ2VuY3kgZm9sa3MgZmVsdCBzdHJvbmdseSB0aGF0IGl0IHNob3VsZCBiZSByZXVz +ZWQgYXMgdGhhdCBpcyBieSBmYXIgdGhlIHByZWRvbWluYW50IGZlYXR1cmUgZm9yIHRoZSBIVS4g +UmVwb3J0cyBzaW5jZSAyMDA1IHJlZmxlY3QgdGhpcy4NCgkJTGVnYWN5IDAzMDUwMjA2IG5hbWUg +aXMgY2hhbmdlZCB0byBFZGlzdG8gUml2ZXIgdG8gcmVmbGVjdCB0aGUgbWFqb3IgaHlkcm9sb2dp +YyBmZWF0dXJlLg0KDQoJU291dGggRGFrb3RhOg0KCQkyMDA5IC0gRWRpdHMgbWFkZSBieSBpbi1z +dGF0ZSBkYXRhIHN0ZXdhcmQ7IGFsbCBvZiBzdWItYmFzaW4gMTAxNjAwMTAgKG5vdyByZXRpcmVk +KSB3YXMgcmVjb2RlZCB0byAxMDE2MDAxMSAoTG93ZXIgSmFtZXMpOyBJbiBhZGRpdGlvbiB0byB0 +aGUgcmVjb2Rpbmcgb2YgdGhpcyA4LWRpZ2l0IGxldmVsIHVuaXQgaW4gdGhlIEphbWVzIEJhc2lu +LCB0aGlzIGdyb3VwIG9mIGVkaXRzIHByaW1hcmlseSBjb25zaXN0ZWQgb2YgbWlub3IgY29ycmVj +dGlvbnMgdG8gbGluZXdvcmsgYW5kIDEyLWRpZ2l0IGRvd25zdHJlYW0gY29kZXMsIHBvcHVsYXRp +bmcgbmNvbnRyYl9BIGZpZWxkcyBvZiBzZWxlY3RlZCAxMi1kaWdpdCB1bml0cywgYW5kIHR3ZWFr +aW5nIHNlbGVjdGVkIDV0aC0gYW5kIDZ0aC1sZXZlbCB1bml0IG5hbWVzIHRvIGZhY2lsaXRhdGUg +bWVyZ2luZyB3aXRoIEdOSVMuDQoJCQ0KCVRleGFzOg0KCQlMZWdhY3kxMzA3MDAwOCBMb3dlciBQ +ZWNvcyB3YXMgc3ViZGl2aWRlZCBpbnRvIGEgbm9ydGhlcm4gYW5kIHNvdXRoZXJuIHBvcnRpb24u +IFRoZSBub3J0aGVybiBwb3J0aW9uIHJldGFpbnMgdGhlIDEzMDcwMDA4IGNvZGUgYnV0IG5hbWUg +c2hvdWxkIGJlIFBlY29zLiBUaGUgbmV3IHN1YmRpdmlkZWQgMTMwNzAwMTIgaHlkcm9sb2dpYyB1 +bml0IHNob3VsZCBjYXJyeSB0aGUgbGVnYWN5IG5hbWUgTG93ZXIgUGVjb3MuDQoJCUxlZ2FjeSAx +MzA5MDAwMiBMb3dlciBSaW8gR3JhbmRlIGlzIG1pc3NpbmcgZnJvbSB0aGUgY3VycmVudCBXQkQu +DQoNCglWZXJtb250Og0KCQlVcGRhdGVkIDAxMTEwMDAwIGZyb20gUmVnaW9uIDAxIHRvIFJlZ2lv +biAwNCBhbmQgaXMgbm93IDA0MTUwNTAwIChTdC4gRnJhbmNvaXMgUml2ZXIpLiBDcmFpZyBKb2hu +c3RvbiAoVVNHUykgcG9pbnRlZCBvdXQgdGhhdCB0aGlzIHVuaXQgY29udGFpbnMgdGhlIFN0LiBG +cmFuY29pcyBSaXZlciB3aGljaCBmbG93cyB1cCBpbnRvIENhbmFkYSBhbmQgdGhlbiBkdW1wcyBp +bnRvIHRoZSBTdCBMYXdyZW5jZSBSaXZlci4gUmVnaW9uIDAxIGlzIE1haW5lIENvYXN0YWwgZHJh +aW5hZ2UncyB3aGlsZSByZWdpb24gMDQgaXMgU3QuIExhd3JlbmNlIGRyYWluYWdlJ3MsIHNvIHRo +aXMgdW5pdCByZWFsbHkgYmVsb25ncyBpbiByZWdpb24gMDQuIA0KCQ0KCQkyMDEwLSBFZGl0cyB3 +ZXJlIG1hZGUgdG8gTGFrZSBDaGFtcGxhaW4gQmFzaW4gbW92aW5nIGl0IGZyb20gUmVnaW9uIDAy +IHRvIFJlZ2lvbiAwNC4gVXBkYXRlIHRvIGRlbGluZWF0aW9uIGRhdGEgaW4gTGFrZSBDaGFtcGxh +aW4gYXJlYSBvbiB0aGUgVVMgc2lkZSBhbmQgQ2FuYWRpYW4gc2lkZS4gQWxsIGxpbmVzIHdpdGhp +biBDYW5hZGEgYXJlIGRyYWZ0IGRlbGluZWF0aW9ucyBvbmx5LiBUaGVzZSBib3VuZGFyaWVzIHdl +cmUgYmFzZWQgb24gQ2FuYWRhJ3MgMTo1MCwwMDAgTmF0aW9uYWwgSHlkcm9ncmFwaHkgTmV0d29y +ayBXb3JrIFVuaXRzIG9yIHdlcmUgZGVsaW5lYXRlZCB1c2luZyBlaXRoZXIgMTo1MCwwMDAgc2Nh +bGUgdG9wb3Mgb3IgQ0RFRCBlbGV2YXRpb24gZGF0YS4gVGhlc2UgYm91bmRhcmllcyBoYXZlIG5v +dCBiZWVuIGZ1bGx5IHJldmlld2VkIG9yIGFwcHJvdmVkIGJ5IGVpdGhlciB0aGUgQ2FuYWRpYW4g +ZmVkZXJhbCBvciBwcm92aW5jaWFsIGFnZW5jaWVzIGFuZCBhcmUgc3ViamVjdCB0byBjaGFuZ2Uu +ICBCb3JkZXIgcG9seWdvbnMgYXJlIGJhc2VkIG9mZiBvZiB0aGVzZSBpbnRlcm5hbCBib3VuZGFy +aWVzIHdpdGhpbiBDYW5hZGEgYW5kIHNvIGFyZSBhbHNvIHN1YmplY3QgdG8gY2hhbmdlIHdpdGhp +biBDYW5hZGEuIEVkaXRzIG1hZGUgYnkgVVNHUyBTYWx0IExha2UgQ2l0eSwgV2F0ZXIgU2NpZW5j +ZSBDZW50ZXI6IHRvIHRoZSBMYWtlIENoYW1wbGFpbiBhbmQgc3Vycm91bmRpbmcgc3ViYmFzaW5z +IHRvIHJlbW92ZSBhbGwgc2hvcmVsaW5lIHJlcHJlc2VudGF0aW9ucyBmcm9tIHRoZSBXQkQuIFRo +ZSBjb2RlcywgRFMgY29kZXMgYW5kIG5hbWVzIHdoZXJlIHVwZGF0ZWQgd2hlcmUgbmVjZXNzYXJ5 +Lg0KDQoJCTAyMDEwMDAxIG5hbWUgYW5kIGNvZGUgaGF2ZSBiZWVuIHJldGlyZWQgYW5kIHRoaXMg +YXJlYSB3YXMgc3ViZGl2aWRlZCBpbnRvIDA0MTUwNDAxIE1ldHRhd2VlIFJpdmVyIGFuZCAwNDE1 +MDQwOCBMYWtlIENoYW1wbGFpbi4NCgkJMDIwMTAwMDIgbmFtZSBhbmQgY29kZSBoYXZlIGJlZW4g +cmV0aXJlZCBhbmQgdGhpcyBhcmVhIHdhcyBzdWJkaXZpZGVkIGludG8gMDQxNTA0MDIgT3R0ZXIg +Q3JlZWsgYW5kIDA0MTUwNDA4IExha2UgQ2hhbXBsYWluLg0KCQkwMjAxMDAwMyBuYW1lIGFuZCBj +b2RlIGhhdmUgYmVlbiByZXRpcmVkIGFuZCB0aGlzIGFyZWEgd2FzIHN1YmRpdmlkZWQgaW50byAw +NDE1MDQwMyBXaW5vb3NraSBSaXZlciBhbmQgMDQxNTA0MDggTGFrZSBDaGFtcGxhaW4uDQoJCTAy +MDEwMDA1IG5hbWUgYW5kIGNvZGUgaGF2ZSBiZWVuIHJldGlyZWQgYW5kIHRoaXMgYXJlYSB3YXMg +c3ViZGl2aWRlZCBpbnRvIDA0MTUwNDA1IExhbW9pbGxlIFJpdmVyIGFuZCAwNDE1MDQwOCBMYWtl +IENoYW1wbGFpbi4NCgkJMDIwMTAwMDcgbmFtZSBhbmQgY29kZSBoYXZlIGJlZW4gcmV0aXJlZCBh +bmQgdGhpcyBhcmVhIHdhcyBzdWJkaXZpZGVkIGludG8gMDQxNTA0MDcgTWlzc2lxdW9pIFJpdmVy +IGFuZCAwNDE1MDQwOCBMYWtlIENoYW1wbGFpbi4gDQoJDQoJCVRoZSBuZXcgTGFrZSBDaGFtcGxh +aW4gdW5pdCAwNDE1MDQwOCBpcyBtYWRlIHVwIG9mIHBhcnRzIG9mIG9yaWdpbmFsIEhVQzI1MEsg +dW5pdHMgMDIwMTAwMDEsIDAyMDEwMDAyLCAwMjAxMDAwMywgMDIwMTAwMDQsIDAyMDEwMDA1LCAw +MjAxMDAwNiBhbmQgMDIwMTAwMDcuDQoJDQoJCUFkZGl0aW9uYWwgdXBkYXRlcyBhdCB0aGUgOC1k +aWdpdCBvY2N1cnJlZCBhcyBhIHJlc3VsdCBvZiB0aGUgVVMvQ2FuYWRhIGhhcm1vbml6YXRpb24g +ZWZmb3J0LiBTZWUgcHJvY2VzcyBzZWN0aW9uIG9uIENhbmFkaWFuIGhhcm1vbml6YXRpb24gZm9y +IHRoZXNlIGRldGFpbHMNCg0KCVdpc2NvbnNpbjoNCgkJTGVnYWN5IDA3MDkwMDAxVXBwZXIgUm9j +ayBrZWVwcyB0aGUgc2FtZSBjb2RlIGFuZCBuYW1lIGJ1dCB0aGUgb3JpZ2luYWwgaHlkcm9sb2dp +YyB1bml0IGRlbGluZWF0aW9uIGNoYW5nZWQgc2lnbmlmaWNhbnRseS4NCgkJTGVnYWN5IDA3MDkw +MDAyIENyYXdmaXNoIGtlZXBzIHRoZSBzYW1lIGNvZGUgYW5kIGlzIHJlbmFtZWQgdG8gTWlkZGxl +IFJvY2suIFRoZSBvcmlnaW5hbCBoeWRyb2xvZ2ljIHVuaXQgZGVsaW5lYXRpb24gY2hhbmdlZCBz +aWduaWZpY2FudGx5LjwvcHJvY2Rlc2M+DQogICAgICAgIDxwcm9jZGF0ZT4yMDE2PC9wcm9jZGF0 +ZT4NCiAgICAgIDwvcHJvY3N0ZXA+DQogICAgICA8cHJvY3N0ZXA+DQogICAgICAgIDxwcm9jZGVz +Yz5CZWxvdyBpcyBhIGxpc3Qgb2YgdXBkYXRlcyAoZnJvbSAyMDExIHRvIDIwMTYpIHJlc3VsdGlu +ZyBmcm9tIGhhcm1vbml6YXRpb24gd29yayB3aXRoIENhbmFkYS4NCglBbGFza2E6DQoJCUxlZ2Fj +eSAxOTAxMDEwMSBTb3V0aGVhc3QgTWFpbmxhbmQgbmFtZSBhbmQgY29kZSB3ZXJlIHJldGlyZWQg +YW5kIHRoZSBhcmVhIHN1YmRpdmlkZWQgaW50byBmb3VyIHVuaXRzLiBOZXcgY29kZXMgYW5kIG5h +bWVzIGFyZSBhcyBmb2xsb3dzIGFuZCBhY2NlcHRlZCBieSB0aGUgTmF0aW9uYWwgVGVjaG5pY2Fs +IFRlYW0gYW5kIGFwcHJvdmVkIHdpdGggQ2FuYWRpYW4gYW5kIEFsYXNrYSBwYXJ0bmVycyAoVVNG +Uyk6DQoJCQkxOTAxMDEwNCBCcmFkZmllbGQgQ2FuYWwNCgkJCTE5MDEwMTA1IEJ1cnJvdWdocyBC +YXkNCgkJCTE5MDEwMTA2IEhlYWR3YXRlcnMgUG9ydGxhbmQgQ2FuYWwNCgkJCTE5MDEwMTA3IE91 +dGxldCBQb3J0bGFuZCBDYW5hbA0KCQlMZWdhY3kgMTkwMTAyMDEgTWFpbmxhbmQgaGFkIGEgcG9y +dGlvbiBicm9rZW4gb3V0LiAxOTAxMDIwMSB3aWxsIGJlIHByZXNlcnZlZCBhbmQgdGhlIHNtYWxs +IHBpZWNlIGJyb2VrbiBvdXQgaW4gb3JkZXIgdG8gaGFybW9uaXplIHdpdGggQ2FuYWRhLiBUaGUg +c21hbGxlciBwaWVjZSB3aWxsIGhhdmUgdGhlIG5ldyBjb2RlIDE5MDEwMjA1IGFuZCB0aGUgbmFt +ZSB3aWxsIGJlIExvd2VyIElza3V0Lg0KCQlSZXZpc2VkIGFnYWluIDUvMzEvMTE6IDE5MDEwMjAx +IE1haW5sYW5kIHdhcyBicm9rZW4gaW50byB0aHJlZSBuZXcgdW5pdHMNCgkJCTE5MDEwMjA2IEhv +bGtoYW0gQmF5DQoJCQkxOTAxMDIwNyBTdGlraW5lIFJpdmVyDQoJCQkxOTAxMDIwOCBUaG9tYXMg +QmF5DQoJCUxlZ2FjeSAxOTAxMDMwMSBMeW5uIENhbmFsIG5vdyBoYXMgdGhlIFRha3UgUml2ZXIg +YnJva2VuIG91dCB0byBhY2NvbW1vZGF0ZSBDYW5hZGEuIFRha3UgUml2ZXIgd2lsbCBiZSBjb2Rl +IDE5MDEwMzA0LiBUaGUgTmF0aW9uYWwgVGVjaG5pY2FsIENvb3JkaW5hdG9ycyAoTlRDKSBhY2Nl +cHRzIHRoaXMuIFJldmlzZWQgYWdhaW4gNS8zMS8xMTooQUsgZ3JvdXAgY29uc3VsdGVkIGFsb25n +IHdpdGggUGV0ZSBTdGVldmVzLCBLaW0gSm9uZXMsIFN0ZXBoZW4gRGF3LCBLYXJlbiBIYW5zb24p +OiANCgkJMTkwNzAxMDEgQXRsaW4gTGFrZSB3YXMgYnJva2VuIG91dCBvZiB0aGUgbGVnYWN5IEx5 +bm4gQ2FuYWwgMTkwMTAzMDEgYW5kIGlzIHBhcnQgb2YgdGhlIG5ld2x5IGFjY2VwdGVkIFN1YnJl +Z2lvbiAxOTA3DQoJCUxlZ2FjeSAxOTAxMDMwMiBHbGFjaWVyIEJheSB3YXMgc3ViZGl2aWRlZCBh +bG9uZyB0aGUgcmlkZ2Ugc2VwYXJhdGluZyBvdXQgdGhlIG9jZWFuIGZsb3cuIFRoZSB1bml0IGJy +b2tlbiBvdXQgaXM6DQoJCTE5MDEwNDA2IFBhbG1hIEJheSAodGhpcyB1bml0IGFsc28gaW5jbHVk +ZXMgYSBwb3J0aW9uIG9mIHRoZSBvcmlnaW5hbCAxOTAxMDQwMSkNCgkJTm90ZTogTGVnYWN5IDE5 +MDEwMzAyIEdsYWNpZXIgQmF5IHdpbGwgYmUgcmV0YWluZWQgYWx0aG91Z2ggdGhlIGFyZWEgaXMg +bm93IHNtYWxsZXIuIE90aGVyIG9wdGlvbnMgZGlkbuKAmXQgbWFrZSBhcyBtdWNoIHNlbnNlLg0K +CQkNCgkJTGVnYWN5IDE5MDEwMzAzIENoaWxrYXQtU2thZ3dheSBSaXZlcnMgd2FzIHN1YmRpdmlk +ZWQgaW50bzoNCgkJCTE5MDcwMTAyIEJlbm5ldHQgTGFrZQ0KCQkJMTkwNzAxMDMgVGFnaXNoIExh +a2UNCgkJCTE5MDcwMTA0IFRha2hpbmkgUml2ZXINCgkJTm90ZTogMTkwMTAzMDMgQ2hpbGthdC1T +YWtnd2F5IFJpdmVycyBpcyByZXRhaW5lZA0KCQkNCgkJTGVnYWN5IDE5MDEwNDAxIFlha3V0YXQg +QmF5IG5hbWUgYW5kIGNvZGUgcmV0aXJlZCBhbmQgdGhlIGFyZWEgc3ViZGl2aWRlZCBpbnRvIDQg +bmV3IHVuaXRzLiBOZXcgY29kZXMgYW5kIG5hbWVzIGFyZSBhcyBmb2xsb3dzDQoJCQkxOTAxMDQw +MyBUYXRzaGVuc2hpbmkgUml2ZXINCgkJCTE5MDEwNDA0IEFsc2VrIFJpdmVyDQoJCQkxOTAxMDQw +NSBZYWt1dGF0IEJheS1HdWxmIG9mIEFsYXNrYQ0KCQkJMTkwMTA0MDYgUGFsbWEgQmF5IChUaGlz +IG5ldyB1bml0IGFsc28gaW5jbHVkZXMgYSBwb3J0aW9uIG9mIHRoZSBvcmlnaW5hbCAxOTAxMDMw +MikNCgkJCQkNCglJZGFobyBhbmQgV2FzaGluZ3RvbiAtIA0KCQkyMDEzIC0gVGhlIENvbHVtYmlh +IFJpdmVyIEJhc2luIGFuZCBQdWdldCBTb3VuZCBDb2FzdGFsIGFyZWEgd2FzIHVwZGF0ZWQgdG8g +aW5jbHVkZSB0aGUgaGFybW9uaXplZCA4LSwgMTAsIGFuZCAxMi1kaWdpdCBoeWRyb2xvZ2ljIHVu +aXRzIHdpdGhpbiBDYW5hZGEuIFRoaXMgaGFybW9uaXplZCBkYXRhIHdhcyBjcmVhdGVkIHdpdGgg +Y29udHJpYnV0aW9ucyBmcm9tIFVTIGFuZCBDYW5hZGlhbiBGZWRlcmFsLCBTdGF0ZSwgUHJvdmlu +Y2lhbCBhbmQgbG9jYWwgcGFydG5lcnMuIFRoZSBCcml0aXNoIENvbHVtYmlhIDIwSyBGcmVzaCBX +YXRlciBBdGxhcyB3YXRlcnNoZWQgZGF0YSBhbmQgREVNIGRhdGEgd2VyZSB1c2VkIHRvIGNyZWF0 +ZSB0aGUgdW5pdHMgd2l0aGluIENhbmFkYS4gQm9yZGVyIHVuaXRzIHdlcmUgdXBkYXRlZCB0aHJv +dWdoIGEgcmV2aWV3L2FncmVlbWVudCBwcm9jZXNzIHdpdGggbG9jYWwgYW5kIHN0YXRlL3Byb3Zp +bmNpYWwgcGFydG5lcnMgdXNpbmcgdGhlIGJlc3QgYXZhaWxhYmxlIGRhdGEgKERFTSwgRFJHLCBJ +bWFnZXJ5LCBGaWVsZCBWZXJpZmljYXRpb24pLiANCgkJRHVyaW5nIHRoZSBoYXJtb25pemF0aW9u +IGVmZm9ydCB0aGVyZSB3ZXJlIHNvbWUgOC1kaWdpdCB1cGRhdGVzIHRoYXQgd2VyZSBhZ3JlZWQg +dG8uDQoJCQlMZWdhY3kgMTcwMTAxMDEgVXBwZXIgS29vdGVuYWkgbmFtZSB3aWxsIGNoYW5nZSB0 +byBNaWRkbGUgS29vdGVuYWkgdG8gY29vcmRpbmF0ZSB3aXRoIENhbmFkYSBzaW5jZSB0aGVyZSBp +cyBhbiBVcHBlciBLb290ZW5heSBzb2xlbHkgaW4gQ2FuYWRhLiANCgkJCUxlZ2FjeSAxNzAxMDEw +MSBVcHBlciBLb290ZW5haSBib3VuZGFyeSBjaGFuZ2VkIHNsaWdodGx5LiBUaGUgV0JEIFRlY2hu +aWNhbCBUZWFtIHJlY29tbWVuZHMgcmV0YWluaW5nIHRoZSBsZWdhY3kgbmFtZSBhbmQgY29kZS4N +CgkJQSBuZXcgc3ViYmFzaW4gd2FzIGNyZWF0ZWQgYXMgYSByZXN1bHQgb2YgdGhlIGludGVybmF0 +aW9uYWwgYm9yZGVyIGhhcm1vbml6YXRpb24gd2hpY2ggc2xpZ2h0bHkgZ29lcyBpbnRvIHRoZSBV +LlMuICh0aGUgcG9ydGlvbiBvZiAxNzAxMDEwMSByZWZlcmVuY2VkIGFib3ZlKS4gVGhlIFdCRCBU +ZWNobmljYWwgVGVhbSByZWNvbW1lbmRzIGNvZGluZyB0aGlzIHVuaXQgd2l0aCB0aGUgbmV4dCBk +b3duIHNlcXVlbnRpYWwgY29kZSB3aGljaCB3b3VsZCBiZSAxNzAxMDEwNiBhbmQgdXNpbmcgdGhl +IG5hbWUgdGhhdCBDYW5hZGEgcmVmZXJzIHRvIHRoaXMgaHlkcm9sb2dpYyB1bml0IGFzIOKAnEVs +a+KAnS4NCgkJMTcxMTAwMDEgbGVnYWN5IG5hbWUg4oCcRnJhc2Vy4oCdIGlzIGJlaW5nIGNoYW5n +ZWQgdG8g4oCcU3VtYXMgUml2ZXLigJ0gdG8gbWF0Y2ggd2l0aCBDYW5hZGEsIGFuZCBiZWNhdXNl +IHRoZSBGcmFzZXIgUml2ZXIgZG9lc27igJl0IGZsb3cgdGhyb3VnaCB0aGlzIHVuaXQuDQoNCglN +b250YW5hOg0KCQkxMDAxIGZsb3dzIGludG8gQ2FuYWRhIGFuZCB0aGUgU2Fza2F0Y2hld2FuIFJp +dmVyIGFuZCBub3QgaW50byB0aGUgTWlzc291cmkgUml2ZXIgYXMgb3JpZ2luYWxseSB0aG91Z2h0 +LiBBcyBzdWNoIHRoaXMgNC1kaWdpdCBoeWRyb2xvZ2ljIHVuaXRzIHdhcyBtb3ZlZCBmcm9tIHJl +Z2lvbiAxMCB0byAwOS4NCgkJMDkwNCAtIFNhc2thdGNoZXdhbiBSaXZlcg0KCQkwOTA0MDAtIFVw +cGVyIFNvdXRoIFNhc2thdGNoZXdhbiBSaXZlciAoVGhpcyBtYXRjaGVzIHRoZSBDYW5hZGlhbiBG +REEgYXQgdGhlIFdTQ1NEQSBsZXZlbCAoc3ViIGRyYWluYWdlIGFyZWEpKS4NCgkJMTAwMTAwMDEg +bmFtZSBhbmQgY29kZSBoYXZlIGJlZW4gcmV0aXJlZCwgYW5kIHRoaXMgYXJlYSBpcyBub3cgMDkw +NDAwMDIgQmVsbHkNCgkJMTAwMTAwMDIgbmFtZSBhbmQgY29kZSBoYXZlIGJlZW4gcmV0aXJlZCwg +YW5kIHRoaXMgYXJlYSBpcyBub3cgMDkwNDAwMDEgU3QuIE1hcnlzDQoNCglNaW5uZXNvdGE6DQoJ +CTIwMTQgLSBSYWlueSBSaXZlciBCYXNpbiB3YXMgdXBkYXRlZCB0byBpbmNsdWRlIHRoZSBoYXJt +b25pemVkIDgtLCAxMC0gYW5kIDEyLWRpZ2l0IGh5ZHJvbG9naWMgdW5pdHMgd2l0aCBDYW5hZGEu +IFRoaXMgaGFybW9uaXplZCBkYXRhIHdhcyBjcmVhdGVkIG92ZXIgYSA2IG1vbnRoIHRpbWUgcGVy +aW9kIHdpdGggY29vcGVyYXRpb24gZnJvbSBGZWRlcmFsLCBTdGF0ZSwgUHJvdmluY2lhbCBhbmQg +TG9jYWwgUGFydG5lcnMuIA0KCQlTb21lIG9mIHRoZSBib3VuZGFyaWVzIHdpdGhpbiBNTiB3ZXJl +IHVwZGF0ZWQgdXNpbmcgdGhlIE1OIExpREFSIGRhdGEuIFRoZSBNTiBMaURBUiB3YXMgYWxzbyB1 +c2VkIGluIHRoZSBjcmVhdGlvbiBvZiBib3VuZGFyaWVzIHdpdGhpbiBDYW5hZGEgd2hlbiB0aGUg +TGlEQVIgZGF0YSBvdmVybGFwcGVkIGludG8gQ2FuYWRhLiBUaGUgb3RoZXIgYm91bmRhcmllcyB3 +aXRoaW4gQ2FuYWRhIHdlcmUgZ2VuZXJhdGVkIHVzaW5nIHRoZSBwcm92aW5jZSBvZiBPbnRhcmlv +4oCZcyAyMEsgREVNIGFuZCBIeWRyb2dyYXBoeSBkYXRhLg0KCQlUaGVyZSB3ZXJlIHNvbWUgOC1k +aWdpdCB1cGRhdGVzIGFzIGEgcmVzdWx0IG9mIHRoZSBoYXJtb25pemF0aW9uIGVmZm9ydC4NCgkJ +MDkwMzAwMDQgVXBwZXIgUmFpbnkgaGFzIGJlZW4gcmV0aXJlZA0KCQkwOTAzMDAwNCBpcyBub3cg +YSBwYXJ0IG9mIDA5MDMwMDA4IHRoZSBMb3dlciBSYWlueQ0KCQkyIG5ldyA4LWRpZ2l0IHVuaXRz +IHdlcmUgYnJva2VuIG91dCBpbiBDYW5hZGENCgkJCTA5MDMwMDEwIOKAkyBCaWcgVHVydGxlIFJp +dmVyLVJhaW55IExha2UNCgkJCTA5MDMwMDExIOKAkyBTaG9hbCBMYWtlDQoJCQkNCglOb3J0aCBE +YWtvdGE6DQoJCUxlZ2FjeSAwOTAyMDMxMyBQZW1iaW5hIHdhcyBzdWJkaXZpZGVkIGludG8gdHdv +IG5ldyB1bml0cy4gDQoJCVRoZSBsZWdhY3kgbmFtZSBhbmQgY29kZSB3ZXJlIHJldGlyZWQuIA0K +CQlUaGUgbmV3IGNvZGVzIGFuZCBuYW1lcyBhcmU6DQoJCQkwOTAyMDMxNSBVcHBlciBQZW1iaW5h +IFJpdmVyDQoJCQkwOTAyMDMxNiBMb3dlciBQZW1iaW5hIFJpdmVyDQoNCgkJMjAxNC0gU291cmlz +IFJpdmVyIEJhc2luIHdhcyB1cGRhdGVkIHRvIGluY2x1ZGUgdGhlIGhhcm1vbml6ZWQgOC0sIDEw +LSBhbmQgMTItZGlnaXQgaHlkcm9sb2dpYyB1bml0cyB3aXRoIENhbmFkYS4gVGhpcyBoYXJtb25p +emVkIGRhdGEgd2FzIGNyZWF0ZWQgb3ZlciBhIDYgbW9udGggdGltZSBwZXJpb2Qgd2l0aCBjb29w +ZXJhdGlvbiBmcm9tIEZlZGVyYWwsIFN0YXRlLCBQcm92aW5jaWFsIGFuZCBMb2NhbCBQYXJ0bmVy +cy4NCgkJVGhlcmUgd2VyZSBzb21lIDgtZGlnaXQgdXBkYXRlcyBhcyBhIHJlc3VsdCBvZiB0aGUg +aGFybW9uaXphdGlvbiBlZmZvcnQuDQoJCUxlZ2FjeSAwOTAxMDAwMSBVcHBlciBTb3VyaXMgaGFz +IG5vdyBiZWVuIHN1YmRpdmlkZWQuIFRoYXQgY29kZSBhbmQgbmFtZSBoYXZlIGJlZW4gcmV0aXJl +ZCBhbmQgdGhlIG5ldyB1bml0cyBhcmU6DQoJCQkwOTAxMDAwNiBMb25nIENyZWVrDQoJCQkwOTAx +MDAwNyBIZWFkd2F0ZXJzIFNvdXJpcyBSaXZlcg0KCQkJMDkwMTAwMDggTW9vc2UgTW91bnRhaW4g +Q3JlZWstU291cmlzIFJpdmVyDQoNCglOb3J0aCBEYWtvdGEgYW5kIE1pbm5lc290dGE6IFJlZCBS +aXZlciBCYXNpbg0KCQlMZWdhY3kgMDkwMjAzMTEgTG93ZXIgUmVkIG5hbWUgaXMgYmVpbmcgY2hh +bmdlZCB0byBNaWRkbGUgUmVkIGluIG9yZGVyIHRvIGhhcm1vbml6ZSB3aXRoIENhbmFkYS4gTG93 +ZXIgUmVkIGlzIHRoZSBCYXNpbiBuYW1lIGZvciB0aGlzIGVudGlyZSBhcmVhIGJ1dCB0aGUgaW1w +YWN0IHRvIGNoYW5nZSBhdCB0aGF0IGxldmVsIGlzbuKAmXQga25vd24gc28gd29u4oCZdCBjaGFu +Z2UuDQoJCQ0KCQkyMDE2IC0gUmVkIFJpdmVyIEJhc2luIHdhcyB1cGRhdGVkIHRvIGluY2x1ZGUg +dGhlIGhhcm1vbml6ZWQgOC0sIDEwLSwgYW5kIDEyLWRpZ2l0IGh5ZHJvbG9naWMgdW5pdHMgd2l0 +aGluIENhbmFkYS4gU29tZSBvZiB0aGUgYm91bmRhcmllcyB3aXRoaW4gTU4gYW5kIE5EIHdlcmUg +dXBkYXRlZCB1c2luZyBMaWRhciBkYXRhLiBMaWRhciBkYXRhIHdhcyBhbHNvIHVzZWQgaW4gdGhl +IGRldmVsb3BtZW50IG9mIGh5ZHJvbG9naWNhbCB1bml0cyB3aXRoaW4gQ2FuYWRhLiBXaGVyZSBM +aWRhciBkYXRhIGRpZCBub3QgZXhpc3QgdGhlIHByb3ZpbmNlIG9mIE1hbml0b2JhIHByb3ZpZGVk +IGVpdGhlciAxOjIwLDAwMCBzY2FsZSBvciAxOjUwLDAwMCBzY2FsZSBkaWdpdGFsIGVsZXZhdGlv +biBkYXRhIGZvciBib3VuZGFyeSBkZWxpbmVhdGlvbnMuDQoNCglNYWluZQ0KCQlBbGwgSFVDOCBi +b3VuZGFyaWVzIHdlcmUgdXBkYXRlZCB3aXRoIHRoZSBIYXJtb25pemVkIFVTL0NBTiBib3JkZXIg +aW50byBDYW5hZGEuDQoJCUNvZGluZyB3YXMgdXBkYXRlZCBhcyBuZWVkZWQuDQoJCTAxMDEwMDAx +IHdhcyBzdWJkaXZpZGVkIGludG8gNiBuZXcgdW5pdHMuDQoJCTAxMDEwMDAxIGNvZGUgcmV0aXJl +ZA0KCQkwMTAxMDAwMSBIVUM4IG5hbWUgcmV0aXJlZCAoVXBwZXIgU3QuIEpvaG4pDQoJCU5ldyBj +b2RlcyBhbmQgSFVDOCBuYW1lcw0KCQkJMDEwMTAwMDYg4oCTIEhlYWR3YXRlcnMgU2FpbnQgSm9o +biBSaXZlcg0KCQkJMDEwMTAwMDcg4oCTIEJpZyBCbGFjayBSaXZlci1TYWludCBKb2huIFJpdmVy +DQoJCQkwMTAxMDAwOCDigJMgU3QuIEZyYW5jaXMgUml2ZXItU2FpbnQgSm9obiBSaXZlcg0KCQkJ +MDEwMTAwMDkg4oCTIExpdHRsZSBSaXZlci1TYWludCBKb2huIFJpdmVyDQoJCQkwMTAxMDAxMCDi +gJMgQmVjYWd1aW1lYyBTdHJlYW0tU2FpbnQgSm9obiBSaXZlciAoVGhpcyB1bml0IG5vdyBjb250 +YWlucyBhIHBvcnRpb24gb2YgdGhlIG9yaWdpbmFsIDAxMDEwMDA1KQ0KCQkJMDEwMTAwMTEg4oCT +IEtlc3dpY2sgUml2ZXItU2FpbnQgSm9obiBSaXZlcg0KDQoJCTAxMDEwMDA0IC0gQm91bmRhcnkg +d2l0aGluIENhbmFkYSB3YXMgdXBkYXRlZCB3aXRoIGhhcm1vbml6ZWQgYm91bmRhcnkuDQoJCTAx +MDEwMDA1IC0gQm91bmRhcnkgd2FzIHVwZGF0ZWQgd2l0aCBVUy9DQU4gaGFybW9uaXplZCBib3Vu +ZGFyeS4gQSBzbWFsbCBwb3J0aW9uIG9mIDAxMDEwMDA1IHdhcyBtb3ZlZCBpbnRvIHRoZSBuZXcg +MDEwMTAwMTAgc28gdGhhdCAwMTAxMDAwNSBpcyBhIHN0YW5kYXJkIEhVQyA4IHVuaXQgZm9yIHRo +ZSBNZWR1eG5la2VhZyBSaXZlci4NCgkJMDEwMjAwMDEgLSBPcmlnaW5hbCBXQkQgYm91bmRhcnkg +YmV0d2VlbiB0aGUgVVMgYW5kIENhbmFkYSB1c2VkIHRoZSBpbnRlcm5hdGlvbmFsIGJvdW5kYXJ5 +LiBIb3dldmVyIHdoZW4gdGhpcyBib3VuZGFyeSB3YXMgY29tcGFyZWQgdG8gdGhlIDE6MjQsMDAw +IHNjYWxlIERSR3MgaW4gdGhlIFVTIGFuZCAxOjIwLDAwMCBoeXBzb2dyYXBoeSBpbiBDYW5hZGEg +dGhlIGludGVybmF0aW9uYWwgYm91bmRhcnkgYW5kIHJpZGdlbGluZXMgd2VyZSBub3QgY29pbmNp +ZGVudC4gVGhlIEJvdW5kYXJ5IHdhcyB1cGRhdGVkIHRvIHRoZSByaWRnZWxpbmUuICAgQ29kaW5n +IG5vdCB1cGRhdGVkLg0KCQkwMTAzMDAwMSAtIE9yaWdpbmFsIFdCRCBib3VuZGFyeSBiZXR3ZWVu +IHRoZSBVUyBhbmQgQ2FuYWRhIHVzZWQgdGhlIGludGVybmF0aW9uYWwgYm91bmRhcnkuIEhvd2V2 +ZXIgd2hlbiB0aGlzIGJvdW5kYXJ5IHdhcyBjb21wYXJlZCB0byB0aGUgMToyNCwwMDAgc2NhbGUg +RFJHcyBpbiB0aGUgVVMgYW5kIDE6MjAsMDAwIGh5cHNvZ3JhcGh5IGluIENhbmFkYSB0aGUgaW50 +ZXJuYXRpb25hbCBib3VuZGFyeSBhbmQgcmlkZ2VsaW5lcyB3ZXJlIG5vdCBjb2luY2lkZW50LiBU +aGUgQm91bmRhcnkgd2FzIHVwZGF0ZWQgdG8gdGhlIHJpZGdlbGluZS4gIENvZGluZyBub3QgdXBk +YXRlZC4NCgkJMDEwMzAwMDIgLSBPcmlnaW5hbCBXQkQgYm91bmRhcnkgYmV0d2VlbiB0aGUgVVMg +YW5kIENhbmFkYSB1c2VkIHRoZSBpbnRlcm5hdGlvbmFsIGJvdW5kYXJ5LiBIb3dldmVyIHdoZW4g +dGhpcyBib3VuZGFyeSB3YXMgY29tcGFyZWQgdG8gdGhlIDE6MjQsMDAwIHNjYWxlIERSR3MgaW4g +dGhlIFVTIGFuZCAxOjIwLDAwMCBoeXBzb2dyYXBoeSBpbiBDYW5hZGEgdGhlIGludGVybmF0aW9u +YWwgYm91bmRhcnkgYW5kIHJpZGdlbGluZXMgd2VyZSBub3QgY29pbmNpZGVudC4gVGhlIEJvdW5k +YXJ5IHdhcyB1cGRhdGVkIHRvIHRoZSByaWRnZWxpbmUuICBDb2Rpbmcgbm90IHVwZGF0ZWQuDQoJ +CTAxMDQwMDAxIC0gT3JpZ2luYWwgV0JEIGJvdW5kYXJ5IGJldHdlZW4gdGhlIFVTIGFuZCBDYW5h +ZGEgdXNlZCB0aGUgaW50ZXJuYXRpb25hbCBib3VuZGFyeS4gSG93ZXZlciB3aGVuIHRoaXMgYm91 +bmRhcnkgd2FzIGNvbXBhcmVkIHRvIHRoZSAxOjI0LDAwMCBzY2FsZSBEUkdzIGluIHRoZSBVUyBh +bmQgMToyMCwwMDAgaHlwc29ncmFwaHkgaW4gQ2FuYWRhIHRoZSBpbnRlcm5hdGlvbmFsIGJvdW5k +YXJ5IGFuZCByaWRnZWxpbmVzIHdlcmUgbm90IGNvaW5jaWRlbnQuIFRoZSBCb3VuZGFyeSB3YXMg +dXBkYXRlZCB0byB0aGUgcmlkZ2VsaW5lLiAgQ29kaW5nIG5vdCB1cGRhdGVkLg0KCQkwMTA1MDAw +MSAtIEJvdW5kYXJ5IHdhcyB1cGRhdGVkIHdpdGggVVMvQ0FOIGhhcm1vbml6ZWQgYm91bmRhcnku +ICBUaGlzIGJvdW5kYXJ5IHdhcyBkZXZlbG9wZWQgZHVyaW5nIHRoZSBpbml0aWFsIFN0LiBDcm9p +eCBwaWxvdCBhbmQgaW5jbHVkZXMgdXBkYXRlcyB3aXRoaW4gdGhlIFVTIGFzIHdlbGwgYXMgQ2Fu +YWRhLiBDb2RpbmcgbGVmdCBhcyBpcw0KCQkwMTA1MDAwMiAtIFRoZSBoYXJtb25pemVkIGJvdW5k +YXJ5IGZvciAwMTA1MDAwNCByZXF1aXJlZCB1cGRhdGVzIHRvIDAxMDUwMDAyLiANCgkJQSBwb3J0 +aW9uIG9mIDAxMDUwMDAyIHdhcyBtb3ZlZCB0byAwMTA1MDAwNCB0byBhY2NvbW1vZGF0ZSB0aGUg +bmV3IGhhcm1vbml6ZWQgYm91bmRhcnkuDQoJCVRoaXMgcmVxdWlyZWQgcmUtY29kaW5nIG9mIHRo +ZSBlbnRpcmUgMDEwNTAwMDIuDQoJCTAxMDUwMDA0IC0gQm91bmRhcnkgd2FzIHVwZGF0ZWQgd2l0 +aCBVUy9DQU4gaGFybW9uaXplZCBib3VuZGFyeS4gQSBwb3J0aW9uIG9mIDAxMDUwMDAyIHdhcyBt +b3ZlZCBpbnRvIHRoaXMgdW5pdC4gIENvZGVzIHdlcmUgdXBkYXRlZCB0byByZWZsZWN0IHRoaXMg +Ym91bmRhcnkgY2hhbmdlLg0KDQoJCTA0MTUwNjAwIOKAkyBDaGF1ZGllcmUgUml2ZXINCgkJVGhp +cyBpcyBhIG5ldyB1bml0IHRoYXQgd2FzIGNyZWF0ZWQgd2hlbiB0aGUgV0JEIGJvdW5kYXJ5IHdh +cyBtb3ZlZCBmcm9tIHRoZSBpbnRlcm5hdGlvbmFsIGJvdW5kYXJ5IG9uIHRvIHRoZSByaWRnZWxp +bmVzDQoJCU9yaWdpbmFsIFdCRCBib3VuZGFyeSBiZXR3ZWVuIHRoZSBVUyBhbmQgQ2FuYWRhIHVz +ZWQgdGhlIGludGVybmF0aW9uYWwgYm91bmRhcnkuIEhvd2V2ZXIgd2hlbiB0aGlzIGJvdW5kYXJ5 +IHdhcyBjb21wYXJlZCB0byB0aGUgMToyNCwwMDAgc2NhbGUgRFJHcyBpbiB0aGUgVVMgYW5kIDE6 +MjAsMDAwIGh5cHNvZ3JhcGh5IGluIENhbmFkYSB0aGUgaW50ZXJuYXRpb25hbCBib3VuZGFyeSBh +bmQgcmlkZ2VsaW5lcyB3ZXJlIG5vdCBjb2luY2lkZW50LiBUaGUgQm91bmRhcnkgd2FzIHVwZGF0 +ZWQgdG8gdGhlIHJpZGdlbGluZS4NCgkJMDQxNTA1MDAgLSBCb3VuZGFyeSB3YXMgdXBkYXRlZCB3 +aXRoIFVTL0NBTiBoYXJtb25pemVkIGJvdW5kYXJ5LiBDb2RpbmcgbGVmdCBhcyBpcw0KCQ0KCQ0K +CU5ldyBIYW1wc2hpcmUNCgkJMDEwNDAwMDEgLSBPcmlnaW5hbCBXQkQgYm91bmRhcnkgYmV0d2Vl +biB0aGUgVVMgYW5kIENhbmFkYSB1c2VkIHRoZSBpbnRlcm5hdGlvbmFsIGJvdW5kYXJ5LiBIb3dl +dmVyIHdoZW4gdGhpcyBib3VuZGFyeSB3YXMgY29tcGFyZWQgdG8gdGhlIDE6MjQsMDAwIHNjYWxl +IERSR3MgaW4gdGhlIFVTIGFuZCAxOjIwLDAwMCBoeXBzb2dyYXBoeSBpbiBDYW5hZGEgdGhlIGlu +dGVybmF0aW9uYWwgYm91bmRhcnkgYW5kIHJpZGdlbGluZXMgd2VyZSBub3QgY29pbmNpZGVudC4g +VGhlIEJvdW5kYXJ5IHdhcyB1cGRhdGVkIHRvIHRoZSByaWRnZWxpbmUuICBDb2Rpbmcgbm90IHVw +ZGF0ZWQuDQoJCTA0MTUwNTAwIC0gQm91bmRhcnkgd2FzIHVwZGF0ZWQgd2l0aCBVUy9DQU4gaGFy +bW9uaXplZCBib3VuZGFyeS4gQ29kaW5nIGxlZnQgYXMgaXMNCgkNCglOZXcgWW9yaw0KCQkwNDE1 +MDMwMSAtIFN1YmRpdmlkZWQgaW50byAyIG5ldyB1bml0cw0KCQkwNDE1MDMwMSBjb2RlIHJldGly +ZWQgDQoJCTA0MTUwMzAxIEhVQzggbmFtZSByZXRpcmVkIChVcHBlciBTdC4gTGF3cmVuY2UpDQoJ +CU5ldyBDb2RlcyBhbmQgSFVDOCBuYW1lcw0KCQkJMDQxNTAzMDkg4oCTIEhlYWR3YXRlcnMgU3Qu +IExhd3JlbmNlIFJpdmVyDQoJCQkwNDE1MDMxMCDigJMgUmFpc2luIFJpdmVyLVN0LiBMYXdyZW5j +ZSBSaXZlcg0KDQoJCTA0MTUwMzA2IC0gQm91bmRhcnkgd2FzIHVwZGF0ZWQgd2l0aCBVUy9DQU4g +aGFybW9uaXplZCBib3VuZGFyeS4gQ29kaW5nIGxlZnQgYXMgaXMNCgkJMDQxNTAzMDcgLSBCb3Vu +ZGFyeSB3YXMgdXBkYXRlZCB3aXRoIFVTL0NBTiBoYXJtb25pemVkIGJvdW5kYXJ5LiBDb2Rpbmcg +bGVmdCBhcyBpcw0KCQkwNDE1MDMwOCAtIEJvdW5kYXJ5IHdhcyB1cGRhdGVkIHdpdGggVVMvQ0FO +IGhhcm1vbml6ZWQgYm91bmRhcnkuIENvZGluZyBsZWZ0IGFzIGlzDQoJCTA0MTUwNDA4IC0gQm91 +bmRhcnkgd2FzIHVwZGF0ZWQgd2l0aCBVUy9DQU4gaGFybW9uaXplZCBib3VuZGFyeS4gQ29kaW5n +IGxlZnQgYXMgaXMNCgkJMDQxNTA0MDkgLSBCb3VuZGFyeSB3YXMgdXBkYXRlZCB3aXRoIFVTL0NB +TiBoYXJtb25pemVkIGJvdW5kYXJ5LiBDb2RpbmcgbGVmdCBhcyBpcw0KCQkNCglWZXJtb250DQoJ +CTA0MTUwNDA3IC0gQm91bmRhcnkgd2FzIHVwZGF0ZWQgd2l0aCBVUy9DQU4gaGFybW9uaXplZCBi +b3VuZGFyeS4gQ29kaW5nIGxlZnQgYXMgaXMNCgkJMDQxNTA0MDggLSBCb3VuZGFyeSB3YXMgdXBk +YXRlZCB3aXRoIFVTL0NBTiBoYXJtb25pemVkIGJvdW5kYXJ5LiBDb2RpbmcgbGVmdCBhcyBpcw0K +CQkwNDE1MDQwOSAtIEJvdW5kYXJ5IHdhcyB1cGRhdGVkIHdpdGggVVMvQ0FOIGhhcm1vbml6ZWQg +Ym91bmRhcnkuIENvZGluZyBsZWZ0IGFzIGlzDQoJCTA0MTUwNTAwIC0gQm91bmRhcnkgd2FzIHVw +ZGF0ZWQgd2l0aCBVUy9DQU4gaGFybW9uaXplZCBib3VuZGFyeS4gQ29kaW5nIGxlZnQgYXMgaXMN +Cg0KDQoJR3JlYXQgTGFrZXMNCgkJVGhlIGJvdW5kYXJpZXMgZm9yIExha2UgT250YXJpbyAoMDQx +NTIwMCksIExha2UgRXJpZSAoMDQxMjAyMDApLCBMYWtlIEh1cm9uICgwNDA4MDMwMCkgYW5kIExh +a2UgU3VwZXJpb3IgKDA0MDIwMzAwKSB3ZXJlIHVwZGF0ZWQgdXNpbmcgdGhlIG5ldyBpbmxhbmQg +bGFrZXMgY29hc3RhbCBtZXRob2QuIEFsbCB1cGRhdGVzIHdlcmUgY29vcmRpbmF0ZWQgd2l0aCB0 +aGUgV0JEIHN0YXRlIHN0ZXdhcmQgZm9yIGVhY2ggYWRqYWNlbnQgc3RhdGUuIFRoZSBhcmVhIHdp +dGhpbiBXaXNjb25zaW4gd2FzIGV4Y2x1ZGVkIHBlciB0aGUgc3RhdGUgcGFydG5lcuKAmXMgcmVx +dWVzdC4gQWxsIHN1cnJvdW5kaW5nIDgtZGlnaXRzICh1bml0cyB0b3VjaGluZyB0aGUgbGFrZXMp +IHdlcmUgcmV2aWV3ZWQgYW5kIHVwZGF0ZWQgYXMgd2VsbC4gPC9wcm9jZGVzYz4NCiAgICAgICAg +PHByb2NkYXRlPjIwMTY8L3Byb2NkYXRlPg0KICAgICAgPC9wcm9jc3RlcD4NCiAgICAgIDxwcm9j +c3RlcD4NCiAgICAgICAgPHByb2NkZXNjPk1leGljbyBIYXJtb25pemF0aW9uICgyMDEwLTIwMTQp +DQoJDQoJMjAxMCAtIEhhcm1vbml6YXRpb24gd2l0aCBUZXhhcyBhbmQgTWV4aWNvOyBIVUMxMiBw +b2x5Z29ucyBhbmQgbGluZSByZXdvcmsgYnkgVVNHUyBXYXRlciBTY2llbmNlIENlbnRlciwgU2Fs +dCBMYWtlIENpdHksIFVULg0KCQ0KCTIwMTQgLSBIYXJtb25pemVkIDgtLCAxMCBhbmQgMTItZGln +aXQgdW5pdHMgZm9yIGFsbCBib3JkZXIgOC1kaWdpdCB1bml0cyB3aXRoIE1leGljbyB3ZXJlIGlu +Y29ycG9yYXRlZCBpbnRvIHRoZSBXQkQuIFRoZXNlIGRhdGFzZXRzIHdlcmUgZGV2ZWxvcGVkIHRo +cm91Z2ggYSBjb29yZGluYXRlZCBlZmZvcnQgYmV0d2VlbiB0aGUgVVNHUyBhbmQgSU5FR0kgYWxv +bmcgd2l0aCBpbnB1dCBmcm9tIFN0YXRlIGFuZCBsb2NhbCBwYXJ0bmVycy4gRHVlIHRvIHRoZSBo +YXJtb25pemF0aW9uIGVmZm9ydCBzb21lIDgtZGlnaXQgYm91bmRhcmllcyBtYXkgaGF2ZSBiZWVu +IGFkanVzdGVkLiBJbiBhZGRpdGlvbiB0byB0aGlzIHRoZSAxMC0gYW5kIDEyLWRpZ2l0IGJvdW5k +YXJpZXMgYWxvbmcgdGhlIGJvcmRlciBtaWdodCBoYXZlIGFsc28gYmVlbiBhZGp1c3RlZCBiYXNl +ZCBvbiB0aGUgYXZhaWxhYmlsaXR5IG9mIGJldHRlciBiYXNlIGluZm9ybWF0aW9uIHdpdGhpbiBN +ZXhpY28gcHJvdmlkZWQgYnkgSU5FR0kuPC9wcm9jZGVzYz4NCiAgICAgICAgPHByb2NkYXRlPjIw +MTQ8L3Byb2NkYXRlPg0KICAgICAgPC9wcm9jc3RlcD4NCiAgICAgIDxwcm9jc3RlcD4NCiAgICAg +ICAgPHByb2NkZXNjPlRoZSBmb2xsb3dpbmcgc2VjdGlvbiBkZXNjcmliZXMgdXBkYXRlcyB0byB0 +aGUgV0JEIGRhdGEgbW9kZWwgKDIwMTItMjAxNikuDQoJCQ0KCUp1bHkgMjAxMiANCglOYXRpb25h +bCByZXNwb25zaWJpbGl0eSBmb3Igc3Rld2FyZHNoaXAgYW5kIG1haW50ZW5hbmNlIG9mIHRoZSBX +QkQgdHJhbnNmZXJyZWQgZnJvbSBOUkNTIHRvIHRoZSBVU0dTLiBBcyBhIHJlc3VsdCB0aGUgV0JE +IGRhdGEgbW9kZWwgd2FzIHVwZGF0ZWQgYW5kIHRoZSBkYXRhIHdhcyBpbmNvcnBvcmF0ZWQgaW50 +byB0aGUgTkhEIGRhdGFiYXNlLg0KCVdCRCBtb2RlbCB1cGRhdGVkIGJhc2VkIG9uIGlucHV0IGZy +b20gTlJDUywgVVNHUywgTkhEIHByb2dyYW0gYW5kIHVzZXIgY29tbXVuaXR5Lg0KCVdCRCBwb2x5 +Z29uIGRhdGFzZXQgc3ViZGl2aWRlZCBpbnRvIGluZGl2aWR1YWwgcG9seWdvbiBkYXRhc2V0cyBm +b3IgZWFjaCBsZXZlbCBvZiBoeWRyb2xvZ2ljIHVuaXRzLiAgDQoJVHdvIGFkZGl0aW9uYWwgZGF0 +YXNldHMgYWRkZWQgZm9yIHRoZSBuZXh0IDIgbGV2ZWxzIG9mIHN1YmRpdmlzaW9ucyAoMTQtIGFu +ZCAxNi1kaWdpdCkgYnV0IGFyZSBub3QgcmVxdWlyZWQgZm9yIGVhY2ggc3RhdGUgdG8gcG9wdWxh +dGUgdGhlc2UuDQoJQXR0cmlidXRlIHRhYmxlcyBmb3IgcG9seWdvbnMgYW5kIGxpbmVzIHdlcmUg +dXBkYXRlZCB3aXRoIHNvbWUgZmllbGRzIGJlaW5nIGFkZGVkLCByZW5hbWVkIG9yIHJlbW92ZWQu +IFNlZSBiZWxvdyBmb3IgYSBsaXN0IG9mIGNoYW5nZXMuDQoNCglXQkQgTGluZSBhdHRyaWJ1dGUg +dGFibGUgY2hhbmdlczogDQoJT2xkIE1vZGVsOg0KCQlIVV9MRVZFTCANCgkJTElORVNPVVJDRQ0K +CQlNRVRBX0lEIOKAkyByZW1vdmVkIOKAkyBGZWF0dXJlIGxldmVsIG1ldGFkYXRhIGZ1bmN0aW9u +YWxpdHkgaXMgYWRkZWQgdG8gdHJhY2sgdXBkYXRlcyBpbiB0aGUgbmV3IG1vZGVsDQoJCUxFRlRf +SFVDXzgg4oCTIHJlbW92ZWQNCgkJUklHSFRfSFVDXzgg4oCTIHJlbW92ZWQNCg0KCU5ldyBNb2Rl +bDoNCgkJUGVybWFuZW50X0lkZW50aWZpZXIg4oCTIE5ldyBmaWVsZCBmb3IgZmVhdHVyZSBsZXZl +bCBtZXRhZGF0YQ0KCQlTb3VyY2VfRmVhdHVyZUlEIOKAkyBOZXcgZmllbGQgZm9yIGZlYXR1cmUg +bGV2ZWwgbWV0YWRhdGEgDQoJCU1ldGFfU291cmNlSUQg4oCTIE5ldyBmaWVsZCBmb3IgZmVhdHVy +ZSBsZXZlbCBtZXRhZGF0YQ0KCQlTb3VyY2VfRGF0YURlc2Mg4oCTIE5ldyBmaWVsZCBmb3IgZmVh +dHVyZSBsZXZlbCBtZXRhZGF0YQ0KCQlTb3VyY2VfT3JpZ2luYXRvciDigJMgTmV3IGZpZWxkIGZv +ciBmZWF0dXJlIGxldmVsIG1ldGFkYXRhDQoJCUhVX0xldmVsDQoJCUhVX0NsYXNzIOKAkyBOZXcg +ZmllbGQgcG9wdWxhdGVkIHdpdGggdGhlIG51bWJlciBvZiBkaWdpdHMgb2YgdGhlIGh5ZHJvbG9n +aWMgdW5pdA0KCQlMb2FkRGF0ZSDigJMgTmV3IGZpZWxkIGZvciBmZWF0dXJlIGxldmVsIG1ldGFk +YXRhDQoJCUxpbmVTb3VyY2UNCg0KCVdCRCBQb2x5Z29uIGF0dHJpYnV0ZSB0YWJsZSBjaGFuZ2Vz +Og0KCUNvZGVzIGFuZCBuYW1lcyBtb3ZlZCBmcm9tIHNpbmdsZSBwb2x5Z29uIGRhdGFzZXQgdG8g +dGhlIGFwcHJvcHJpYXRlIGh5ZHJvbG9naWMgdW5pdCBkYXRhc2V0IGZvciBlYWNoIGxldmVsDQoJ +T2xkIE1vZGVsOg0KCQlIVUNfOCDigJMgbW92ZWQgdG8gOC1kaWdpdCBwb2x5Z29uIGRhdGFzZXQN +CgkJSFVDXzEwIOKAkyBtb3ZlZCB0byAxMC1kaWdpdCBwb2x5Z29uIGRhdGFzZXQNCgkJSFVDXzEy +IOKAkyBtb3ZlZCB0byAxMi1kaWdpdCBwb2x5Z29uIGRhdGFzZXQNCgkJQUNSRVMg4oCTIHJlLW5h +bWVkIHRvIEFSRUFfQUNSRVMNCgkJTkNPTlRSQl9BDQoJCUhVXzEwX0dOSVMg4oCTIFJlcGxhY2Vk +IHdpdGggR2F6X0lEDQoJCUhVXzEyX0dOSVMg4oCTIFJlcGxhY2VkIHdpdGggR2F6X0lEDQoJCUhV +XzEwX0RTIOKAkyBSZW1vdmVkIGZyb20gbmV3IG1vZGVsDQoJCUhVXzEwX05BTUUg4oCTIG1vdmVk +IHRvIDEwLWRpZ2l0IHBvbHlnb24gZGF0YXNldA0KCQlIVV8xMF9NT0Qg4oCTIG1vdmVkIHRvIDEw +LWRpZ2l0IHBvbHlnb24gZGF0YXNldA0KCQlIVV8xMF9UWVBFIOKAkyBtb3ZlZCB0byAxMC1kaWdp +dCBwb2x5Z29uIGRhdGFzZXQNCgkJSFVfMTJfRFMg4oCTIG1vdmVkIHRvIDEyLWRpZ2l0IHBvbHln +b24gZGF0YXNldA0KCQlIVV8xMl9OQU1FIOKAkyBtb3ZlZCB0byAxMi1kaWdpdCBwb2x5Z29uIGRh +dGFzZXQNCgkJSFVfMTJfTU9EIOKAkyBtb3ZlZCB0byAxMi1kaWdpdCBwb2x5Z29uIGRhdGFzZXQN +CgkJSFVfMTJfVFlQRSDigJMgbW92ZWQgdG8gMTItZGlnaXQgcG9seWdvbiBkYXRhc2V0DQoJCU1F +VEFfSUQgLSByZW1vdmVkIOKAkyBGZWF0dXJlIGxldmVsIG1ldGFkYXRhIGZ1bmN0aW9uYWxpdHkg +aXMgYWRkZWQgdG8gdHJhY2sgdXBkYXRlcyBpbiB0aGUgbmV3IG1vZGVsDQoJCVNUQVRFUw0KDQoJ +TmV3IE1vZGVsOg0KCUZpZWxkcyBpbmNsdWRlZCBpbiBhbGwgbGV2ZWxzIG9mIGh5ZHJvbG9naWMg +dW5pdCBwb2x5Z29uIGRhdGFzZXRzLg0KCQlHYXpfSUQg4oCTIE9sZCBtb2RlbCB3YXMgdGhlIEdO +SVMgZmllbGQNCgkJQXJlYV9BY3JlcyAtIFJlbmFtZWQNCgkJQXJlYV9TcUttIOKAkyBOZXcgZmll +bGQNCgkJU3RhdGVzDQoJCUxvYWREYXRlLSBOZXcgZmllbGQNCgkJSFVDXyIjZGlnaXQiIC0gRm9y +IEV4YW1wbGU6IEhVQzEyDQoJCUhVXyIjZGlnaXQiX05hbWUgLSBGb3IgRXhhbXBsZTogSFVfMTJf +TmFtZQ0KDQoJRmllbGRzIGluY2x1ZGVkIHdpdGggdGhlIDEwLSwgMTItLCAxNC0gYW5kIDE2LSBk +aWdpdCBwb2x5Z29uIGRhdGFzZXRzLg0KCQlIVV8iI2RpZ2l0Il9UeXBlIC0gRm9yIEV4YW1wbGUg +SFVfMTJfVHlwZQ0KCQlIVV8iI2RpZ2l0Il9Nb2QgLSBGb3IgRXhhbXBsZSBIVV8xMl9Nb2QNCg0K +CUZpZWxkcyBpbmNsdWRlZCB3aXRoIHRoZSAxMi0sIDE0LSBhbmQgMTYtIGRpZ2l0IHBvbHlnb24g +ZGF0YXNldHMuDQoJCU5Db250cmJfQWNyZXMNCgkJTkNvbnRyYl9TcUttIOKAkyBOZXcgZmllbGQN +CgkJDQogICAgVGFibGVzIA0KCU5ldyBNb2RlbDoNCgkJRXh0ZXJuYWxJRENyb3Nzd2Fsaw0KCQlG +ZWF0dXJldG9IVU1vZA0KCQlGZWF0dXJlVG9NZXRhZGF0YQ0KCQlNZXRhX1Byb2Nlc3NEZXRhaWwN +CgkJTWV0YV9Tb3VyY2VEZXRhaWwNCgkJUHJvY2Vzc2luZ1BhcmFtZXRlcnMNCgkJVXBkYXRlU3Rh +dHVzDQoJCVdCRF9BdHRyaWJ1dGVzDQoJCVdCRF9OYXYNCgkNCglPY3RvYmVyIDIwMTIJDQoJQ2hh +bmdlcyB0byB0aGUgV0JEIGRhdGEgbW9kZWwgaW5jbHVkZSB0aGUgZWxpbWluYXRpb24gb2YgdGhl +IHVuZGVyc2NvcmUgIl8iIGluIGZpZWxkIGFuZCB0YWJsZSBuYW1lcywgc3dpdGNoaW5nIHRvIGNh +bWVsQ2FzZS4gT3RoZXIgY2hhbmdlcyB0byB0aGUgV0JEIGRhdGEgbW9kZWwgaW5jbHVkZSB0aGUg +ZWxpbWluYXRpb24gb2YgdGhlIFdCRFBvaW50IHRhYmxlLCB0aGUgV0JEUG9pbnRFdmVudCB0YWJs +ZSwgYW5kIHRoZSBXQkRBdHJpYnV0ZXMgdGFibGUuICBGaWVsZHMgaGF2ZSBiZWVuIGFkZGVkIHRv +IHRoZSBXQkRIVTEyIHBvbHlnb24gZmVhdHVyZSBkYXRhc2V0IHRoYXQgYWxsb3cgbWV0YWRhdGEg +cmVjb3JkIGxpbmtpbmcgYW5kIGFsc28gaW5jbHVkZSB0aGUgZG93bnN0cmVhbSBhdHRyaWJ1dGUu +ICBOV0lTIGRyYWluYWdlIGFyZWEgbGluZSBhbmQgcG9seWdvbiBmZWF0dXJlIGNsYXNzZXMgaGF2 +ZSBiZWVuIGFkZGVkIGFsc28uDQoJCQ0KCU5ldyBNb2RlbDoNCglXQkQgbGluZSBkYXRhc2V0DQoJ +CVROTUlEIOKAkyBVc2UgdG8gYmUgUGVybWFuZW50SUQNCgkJSFVMZXZlbA0KCQlIVUNsYXNzIOKA +kyBOZXcgZmllbGQgcG9wdWxhdGVkIHdpdGggdGhlIG51bWJlciBvZiBkaWdpdHMgb2YgdGhlIGh5 +ZHJvbG9naWMgdW5pdA0KCQlIVU1vZA0KCQlMaW5lU291cmNlDQoJCUxvYWREYXRlIOKAkyBOZXcg +ZmllbGQgZm9yIGZlYXR1cmUgbGV2ZWwgbWV0YWRhdGENCgkJKFNvdXJjZV9GZWF0dXJlSUQsIE1l +dGFfU291cmNlSUQsIFNvdXJjZV9EYXRhRGVzYywgU291cmNlX09yaWdpbmF0b3IgZmllbGRzIHJl +bW92ZWQgZnJvbSBXQkRMaW5lIGRhdGFzZXQpDQoJCQ0KCVdCRCBwb2x5Z29uIGRhdGFzZXQNCglG +aWVsZHMgaW5jbHVkZWQgaW4gYWxsIGxldmVscyBvZiBoeWRyb2xvZ2ljIHVuaXQgcG9seWdvbiBk +YXRhc2V0cy4NCgkJVE5NSUQg4oCTIE5ldyBmaWVsZCBmb3IgZmVhdHVyZSBsZXZlbCBtZXRhZGF0 +YSANCgkJTWV0YVNvdXJjZUlEIOKAkyBOZXcgZmllbGQgZm9yIGZlYXR1cmUgbGV2ZWwgbWV0YWRh +dGENCgkJU291cmNlRGF0YURlc2Mg4oCTIE5ldyBmaWVsZCBmb3IgZmVhdHVyZSBsZXZlbCBtZXRh +ZGF0YQ0KCQlTb3VyY2VPcmlnaW5hdG9yIOKAkyBOZXcgZmllbGQgZm9yIGZlYXR1cmUgbGV2ZWwg +bWV0YWRhdGENCgkJU291cmNlRmVhdHVyZUlEIOKAkyBOZXcgZmllbGQgZm9yIGZlYXR1cmUgbGV2 +ZWwgbWV0YWRhdGENCgkJTG9hZERhdGUg4oCTIE5ldyBmaWVsZCBmb3IgZmVhdHVyZSBsZXZlbCBt +ZXRhZGF0YQ0KCQlHTklTX0lEID0gcmVwbGFjZXMgR2F6X0lEIA0KCQlBcmVhQWNyZXMgDQoJCUFy +ZWFTcUttIA0KCQlTdGF0ZXMNCgkJTG9hZERhdGUNCgkJSFVDImRpZ2l0IiAtIGZvciBleGFtcGxl +OiBIVUMxMiANCgkJTmFtZQ0KCQkNCglGaWVsZHMgaW5jbHVkZWQgd2l0aCB0aGUgMTAtLCAxMi0s +IDE0LSBhbmQgMTYtIGRpZ2l0IHBvbHlnb24gZGF0YXNldHMuDQoJCUhVVHlwZQ0KCQlIVU1vZA0K +DQoJRmllbGRzIGluY2x1ZGVkIHdpdGggdGhlIDEyLSwgMTQtIGFuZCAxNi0gZGlnaXQgcG9seWdv +biBkYXRhc2V0cy4NCgkJTkNvbnRyYkFjcmVzDQoJCU5Db250cmJTcUttIA0KDQoJRmllbGQgaW5j +bHVkZWQgd2l0aCB0aGUgMTItZGlnaXQgcG9seWdvbiBkYXRhc2V0LiANCgkJVG9IVUMg4oCTIFRo +aXMgYXR0cmlidXRlIHdhcyBpbmNsdWRlZCBpbiB0aGUgb3JpZ2luYWwgV0JEIGRhdGEgbW9kZWwg +YXMgSFVfMTJfRFMgYW5kIHJlcHJlc2VudHMgdGhlIGNvZGUgb2YgdGhlIG5leHQgdW5pdCBkb3du +c3RyZWFtLiBUaGUgdmFsdWVzIGZvciB0aGlzIGZpZWxkIHdlcmUgcG9wdWxhdGVkIGZvciB0aGUg +bGFzdCB2ZXJzaW9uIG9mIHRoZSBkYXRhc2V0IGluIHRoZSBvbGQgbW9kZWwgYnkgbGlua2luZyB0 +aGUgMiB0YWJsZXMgYnkgdGhlIDEyLWRpZ2l0IGNvZGUgYW5kIGNhbGN1bGF0aW5nIHRoZSB2YWx1 +ZSBvdmVyLg0KDQoJTldJU0RyYWluYWdlQXJlYSBwb2x5Z29uIGRhdGFzZXQgYWRkZWQgYXMgYSBw +bGFjZSBob2xkZXIgZm9yIHdoZW4gdGhlc2UgZGF0YXNldHMgYXJlIGdlbmVyYXRlZC4NCglBdHRy +aWJ1dGUgRmllbGRzOg0KCQlUTk1JRA0KCQlNZXRhU291cmNlSUQNCgkJU291cmNlRGF0YURlc2MN +CgkJU291cmNlT3JpZ2luYXRvcg0KCQlTb3VyY2VGZWF0dXJlSUQNCgkJTG9hZERhdGUNCgkJUmVm +ZXJlbmNlVE5NSUQNCgkJU2l0ZUlEDQoJCUFnZW5jeUNvZGUNCgkJU2l0ZU51bWJlcg0KCQlTdGF0 +aW9uTmFtZQ0KCQlUb3RhbERyYWluYWdlQXJlYQ0KCQlDb250cmlidXRpbmdEcmFpbmFnZUFyZWEN +Cg0KCU5XSVNCb3VuZGFyeSBsaW5lIGRhdGFzZXQgYWRkZWQgYXMgYSBwbGFjZSBob2xkZXIgZm9y +IHdoZW4gdGhlc2UgZGF0YXNldHMgYXJlIGdlbmVyYXRlZC4NCglBdHRyaWJ1dGUgRmllbGRzOg0K +CQlUTk1JRA0KCQlNZXRhU291cmNlSUQNCgkJU291cmNlRGF0YURlc2MNCgkJU291cmNlT3JpZ2lu +YXRvcg0KCQlTb3VyY2VGZWF0dXJlSUQNCgkJTG9hZERhdGUNCgkJUmVmZXJlbmNlVE5NSUQNCg0K +CU5vbkNvbnRyaWJ1dGluZ0RyYWluYWdlQXJlYSBwb2x5Z29uIGRhdGFzZXQgYWRkZWQgYXMgYSBw +bGFjZSBob2xkZXIgZm9yIHdoZW4gdGhlc2UgZGF0YXNldHMgYXJlIGdlbmVyYXRlZC4NCglBdHRy +aWJ1dGUgRmllbGRzOg0KCQlUTk1JRA0KCQlNZXRhU291cmNlSUQNCgkJU291cmNlRGF0YURlc2MN +CgkJU291cmNlT3JpZ2luYXRvcg0KCQlTb3VyY2VGZWF0dXJlSUQNCgkJTG9hZERhdGUNCiAgICAg +IA0KCTIwMTMgDQoJQ2hhbmdlcyB0byB0aGUgV0JEIGRhdGEgbW9kZWwgaW5jbHVkZSB1cGRhdGVz +IHRvIHRoZSBmaWVsZCBmb3IgdGhlIE5vbkNvbnRyaWJ1dGluZ0RyYWluYWdlQXJlYSBwb2x5Z29u +IGRhdGFzZXQsIE5XSVNCb3VuZGFyeSBsaW5lIGRhdGFzZXQgYW5kIHRoZSBOV0lTRHJhaW5hZ2VB +cmVhIHBvbHlnb24gZGF0YXNldC4gVGhpcyBpbmNsdWRlcyB0aGUgYWRkaXRpb24gb2YgbmV3IGZp +ZWxkcyBhbmQgdGhlIHJlLW5hbWluZyBvZiBzb21lIG9mIHRoZSBleGlzdGluZyBmaWVsZHMuDQoJ +CQ0KCU5XSVNEcmFpbmFnZUFyZWEgcG9seWdvbiBkYXRhc2V0OiANCglBdHRyaWJ1dGUgRmllbGRz +Og0KCQlUTk1JRA0KCQlNZXRhU291cmNlSUQNCgkJU291cmNlRGF0YURlc2MNCgkJU291cmNlT3Jp +Z2luYXRvcg0KCQlTb3VyY2VGZWF0dXJlSUQNCgkJTG9hZERhdGUNCgkJUmVmZXJlbmNlVE5NSURO +SERQb2ludEV2ZW50IOKAkyBSZW5hbWVkIGZyb20gUmVmZXJlbmNlVE5NSUQNCgkJQWdlbmN5Q29k +ZQ0KCQlTaXRlTnVtYmVyDQoJCVN0YXRpb25OYW1lDQoJCUNvbnRyaWJ1dGluZ0RyYWluYWdlQXJl +YUFjcmVzIOKAkyBPcmlnaW5hbGx5IGNhbGxlZCBDb250cmlidXRpbmdEcmFpbmFnZUFyZWENCgkJ +VG90YWxEcmFpbmFnZUFyZWFBY3JlcyDigJMgT3JpZ2luYWxseSBjYWxsZWQgVG90YWxEcmFpbmFn +ZUFyZWENCgkJQ29udHJpYnV0aW5nRHJhaW5hZ2VBcmVhU3FLbSDigJMgTmV3IGZpZWxkDQoJCVRv +dGFsRHJhaW5hZ2VBcmVhU3FLbSDigJMgTmV3IGZpZWxkDQoJCVNpdGVJRCAtIFJlbW92ZWQNCg0K +CU5XSVNCb3VuZGFyeSBsaW5lIGRhdGFzZXQ6IA0KCUF0dHJpYnV0ZSBGaWVsZHM6DQoJCVROTUlE +DQoJCU1ldGFTb3VyY2VJRA0KCQlTb3VyY2VEYXRhRGVzYw0KCQlTb3VyY2VPcmlnaW5hdG9yDQoJ +CVNvdXJjZUZlYXR1cmVJRA0KCQlMb2FkRGF0ZQ0KCQlSZWZlcmVuY2VUTk1JRFBvaW50RXZlbnQg +4oCTIE9yaWdpbmFsbHkgY2FsbGVkIFJlZmVyZW5jZVROTUlEDQoJCVNpdGVOdW1iZXIg4oCTIE5l +dyBmaWVsZA0KDQoJTm9uQ29udHJpYnV0aW5nRHJhaW5hZ2VBcmVhIHBvbHlnb24gZGF0YXNldCAN +CgkJQXR0cmlidXRlIEZpZWxkczoNCgkJVE5NSUQNCgkJTWV0YVNvdXJjZUlEDQoJCVNvdXJjZURh +dGFEZXNjDQoJCVNvdXJjZU9yaWdpbmF0b3INCgkJU291cmNlRmVhdHVyZUlEDQoJCUxvYWREYXRl +DQoJCU5vbkNvbnRyaWJ1dGluZ1NxS20g4oCTIE5ldyBmaWVsZA0KCQlOb25Db250cmlidXRpbmdB +Y3JlcyDigJMgTmV3IGZpZWxkDQoJCVJlZmVyZW5jZVROTUlEMTJkaWdpdEhVIOKAkyBOZXcgZmll +bGQNCgkJDQoJVGFibGVzDQoJCUV4dGVybmFsQ3Jvc3N3YWxrIC0gT3JpZ2luYWxseSBjYWxsZWQg +RXh0ZXJuYWxJRENyb3Nzd2Fsaw0KCQlGZWF0dXJlVG9IVU1vZCAtIHJlbW92ZWQNCgkJRmVhdHVy +ZVRvTWV0YWRhdGENCgkJSFVNb2QgLSBOZXdGaWVsZA0KCQlNZXRhUHJvY2Vzc0RldGFpbCAtIFBy +ZXZpb3VzIHZlcnNpb24gY2FsbGVkIE1ldGFfUHJvY2Vzc0RldGFpbA0KCQlNZXRhU291cmNlRGV0 +YWlsIC0gUHJldmlvdXMgdmVyc2lvbiBjYWxsZWQgTWV0YV9Tb3VyY2VEZXRhaWwNCgkJUHJvY2Vz +c2luZ1BhcmFtZXRlcnMNCgkJVXBkYXRlU3RhdHVzDQoJCVdCRF9BdHRyaWJ1dGVzIC0gcmVtb3Zl +ZA0KCQlXQkROYXZpZ2F0aW9uIC0gT3JpZ2luYWxseSBXQkRfTmF2DQoJCQ0KCTIwMTQNCgkNCgkN +CgkyMDE1DQoJQ2hhbmdlcyB0byB0aGUgV0JEIGRhdGEgbW9kZWwgaW5jbHVkZSB1cGRhdGVzIG9y +IGFkZGl0aW9ucyB0byB0aGUgZmllbGRzIGZvciB0aGUgTm9uQ29udHJpYnV0aW5nRHJhaW5hZ2VB +cmVhIHBvbHlnb24gZGF0YXNldCwgTldJU0JvdW5kYXJ5IGxpbmUgZGF0YXNldCBhbmQgdGhlIE5X +SVNEcmFpbmFnZUFyZWEgcG9seWdvbiBkYXRhc2V0LiBUaGUgbWFqb3JpdHkgb2YgdGhlc2UgYXJl +IGR1ZSB0byB0aGUgbGVuZ3RoIG9mIHRoZSBvcmlnaW5hbCBuYW1lIGZvciB0aGUgZmllbGQuIEEg +bmV3IGxpbmUgZGF0YXNldCB3YXMgY3JlYXRlZCBmb3IgTm9uIENvbnRyaWJ1dGluZyBBcmVhIGNh +bGxlZCBOb25Db250cmlidXRpbmdEcmFpbmFnZUxpbmUgTldJU0JvdW5kYXJ5IHdhcyByZS1uYW1l +ZCBOV0lTRHJhaW5hZ2VMaW5lDQoJCQ0KCU5XSVNEcmFpbmFnZUFyZWEgcG9seWdvbiBkYXRhc2V0 +OiANCglBdHRyaWJ1dGUgRmllbGRzOg0KCQlUTk1JRA0KCQlNZXRhU291cmNlSUQNCgkJU291cmNl +RGF0YURlc2MNCgkJU291cmNlT3JpZ2luYXRvcg0KCQlTb3VyY2VGZWF0dXJlSUQNCgkJTG9hZERh +dGUNCgkJQXJlYVNxS20g4oCTIE5ldyBGaWVsZA0KCQlBZ2VuY3lDb2RlDQoJCVNpdGVOdW1iZXIN +CgkJU3RhdGlvbk5hbWUNCgkJVG90YWxBcmVhU3FNaSDigJMgTmV3IEZpZWxkDQoJCU5XSVNUb3Rh +bEFyZWFTcU1pIOKAkyBOZXcgRmllbGQNCgkJQ29udHJpYnV0aW5nQXJlYVNxTWkg4oCTIE5ldyBG +aWVsZA0KCQlOV0lTQ29udHJpYnV0aW5nQXJlYVNxTWkg4oCTIE5ldyBGaWVsZA0KCQlSZWZlcmVu +Y2VUTk1JRE5IRFBvaW50RXZlbnQgDQoJCVJlbWFya3Mg4oCTIE5ldyBGaWVsZA0KCQlDb250cmli +dXRpbmdEcmFpbmFnZUFyZWFBY3JlcyDigJMgUmVtb3ZlZA0KCQlUb3RhbERyYWluYWdlQXJlYUFj +cmVzIOKAkyBSZW1vdmVkDQoJCUNvbnRyaWJ1dGluZ0RyYWluYWdlQXJlYVNxS20g4oCTIFJlbW92 +ZWQNCgkJVG90YWxEcmFpbmFnZUFyZWFTcUttIOKAkyBSZW1vdmVkDQoNCglOV0lTRHJhaW5hZ2VM +aW5lIGxpbmUgZGF0YXNldCANCglBdHRyaWJ1dGUgRmllbGRzOg0KCQlUTk1JRA0KCQlNZXRhU291 +cmNlSUQNCgkJU291cmNlRGF0YURlc2MNCgkJU291cmNlT3JpZ2luYXRvcg0KCQlTb3VyY2VGZWF0 +dXJlSUQNCgkJTG9hZERhdGUNCgkJTGVuZ3RoS20g4oCTIE5ldyBGaWVsZA0KCQlMaW5lU291cmNl +IOKAkyBOZXcgRmllbGQNCgkJQWdlbmN5IENvZGUg4oCTIE5ldyBGaWVsZA0KCQlTaXRlTnVtYmVy +IA0KCQlSZWZlcmVuY2VUTk1JRFBvaW50RXZlbnQg4oCTIFJlbW92ZWQNCg0KCU5vbkNvbnRyaWJ1 +dGluZ0RyYWluYWdlQXJlYSBwb2x5Z29uIGRhdGFzZXQgDQoJQXR0cmlidXRlIEZpZWxkczoNCgkJ +VE5NSUQNCgkJTWV0YVNvdXJjZUlEDQoJCVNvdXJjZURhdGFEZXNjDQoJCVNvdXJjZU9yaWdpbmF0 +b3INCgkJU291cmNlRmVhdHVyZUlEDQoJCUxvYWREYXRlDQoJCUFyZWFTcUttIOKAkyBOZXcgRmll +bGQNCgkJTm9uQ29udHJpYnV0aW5nQXJlYVNxS20g4oCTIFJlLW5hbWVkIGZyb20gTm9uQ29udHJp +YnV0aW5nU3FLbQ0KCQlSZW1hcmtzIOKAkyBOZXcgRmllbGQNCgkJTm9uQ29udHJpYnV0aW5nQWNy +ZXMgLSBSZW1vdmVkDQoJCVJlZmVyZW5jZVROTUlEMTJkaWdpdEhVIC0gUmVtb3ZlZA0KDQoJTm9u +Q29udHJpYnV0aW5nRHJhaW5hZ2VMaW5lIGxpbmUgZGF0YXNldCDigJMgTmV3IGRhdGFzZXQNCgkJ +QXR0cmlidXRlIEZpZWxkczoNCgkJVE5NSUQNCgkJTWV0YVNvdXJjZUlEDQoJCVNvdXJjZURhdGFE +ZXNjDQoJCVNvdXJjZU9yaWdpbmF0b3INCgkJU291cmNlRmVhdHVyZUlEDQoJCUxvYWREYXRlDQoJ +CUxlbmd0aEttDQoJCUxpbmVTb3VyY2UNCg0KCTIwMTYNCgkNCglXQkRMaW5lIGRhdGFzZXQNCgkJ +VE5NSUQNCgkJSFVMZXZlbCAtIHJlbW92ZWQNCgkJSFVEaWdpdCAtIE9yaWdpbmFsbHkgY2FsbGVk +IEhVQ2xhc3MNCgkJSFVNb2QNCgkJTGluZVNvdXJjZQ0KCQlNZXRhU291cmNlSUQNCgkJTG9hZERh +dGUNCgkNCglXQkQgcG9seWdvbiBkYXRhc2V0cw0KCUZpZWxkcyBpbmNsdWRlZCB3aXRoIHRoZSAx +Mi0sIDE0LSBhbmQgMTYtIGRpZ2l0IHBvbHlnb24gZGF0YXNldHMuDQoJCU5vbkNvbnRyaWJ1dGlu +Z0FyZWFBY3JlcyAtIHByZXZpb3VzIHZlcnNpb24gd2FzIE5vbkNvbnRyaWJ1dGluZ0FjcmVzDQoJ +CU5vbkNvbnRyaWJ1dGluZ0FyZWFTcUttIC0gcHJldmlvdXMgdmVyc2lvbiB3YXMgTm9uQ29udHJp +YnV0aW5nU3FLbTwvcHJvY2Rlc2M+DQogICAgICAgIDxwcm9jZGF0ZT4yMDE2PC9wcm9jZGF0ZT4N +CiAgICAgIDwvcHJvY3N0ZXA+DQogICAgICA8cHJvY3N0ZXA+DQogICAgICAgIDxwcm9jZGVzYz5B +ZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwcm9jZXNzZXMgdXNlZCB0byBjcmVhdGUg +YW5kIG1haW50YWluIHRoZSBXQkQgYWZ0ZXIgSnVuZSBvZiAyMDEyIGNhbiBiZSBmb3VuZCBpbiB0 +aGUgdGFibGUgY2FsbGVkIE1FVEFQUk9DRVNTREVUQUlMLiBUaGUgcHJvY2VzcyBkZXNjcmlwdGlv +bnMgYXJlIGxpbmtlZCB1c2luZyB0aGUgVE5NSUQgdG8gdGhlIEZFQVRVUkVUT01FVEFEQVRBIHRh +YmxlLiBJbiBhZGRpdGlvbiB0aGUgTUVUQVNPVVJDRURFVEFJTCB0YWJsZSBjYW4gYWxzbyBiZSBs +aW5rZWQgdG8gZGV0ZXJtaW5lIHRoZSBzb3VyY2VzIHVzZWQgdG8gY3JlYXRlIG9yIHVwZGF0ZSB0 +aGUgV0JEIGRhdGEuPC9wcm9jZGVzYz4NCiAgICAgICAgPHByb2NkYXRlPjIwMTI8L3Byb2NkYXRl +Pg0KICAgICAgPC9wcm9jc3RlcD4NCiAgICA8L2xpbmVhZ2U+DQogIDwvZGF0YXF1YWw+DQogIDxz +cGRvaW5mbz4NCiAgICA8ZGlyZWN0PlZlY3RvcjwvZGlyZWN0Pg0KICA8L3NwZG9pbmZvPg0KICA8 +c3ByZWY+DQogICAgPGhvcml6c3lzPg0KICAgICAgPGdlb2dyYXBoPg0KICAgICAgICA8bGF0cmVz +PjAuMDE5Nzk0MDMyNDwvbGF0cmVzPg0KICAgICAgICA8bG9uZ3Jlcz4wLjAyMjM5NDU5OTg8L2xv +bmdyZXM+DQogICAgICAgIDxnZW9ndW5pdD5EZWNpbWFsIHNlY29uZHM8L2dlb2d1bml0Pg0KICAg +ICAgPC9nZW9ncmFwaD4NCiAgICAgIDxnZW9kZXRpYz4NCiAgICAgICAgPGhvcml6ZG4+Tm9ydGgg +QW1lcmljYW4gRGF0dW0gb2YgMTk4MzwvaG9yaXpkbj4NCiAgICAgICAgPGVsbGlwcz5HZW9kZXRp +YyBSZWZlcmVuY2UgU3lzdGVtIDgwPC9lbGxpcHM+DQogICAgICAgIDxzZW1pYXhpcz42Mzc4MTM3 +LjA8L3NlbWlheGlzPg0KICAgICAgICA8ZGVuZmxhdD4yOTguMjU3MjIyMTAxPC9kZW5mbGF0Pg0K +ICAgICAgPC9nZW9kZXRpYz4NCiAgICA8L2hvcml6c3lzPg0KICA8L3NwcmVmPg0KICA8ZWFpbmZv +Pg0KICAgIDxkZXRhaWxlZCBOYW1lPSJXQkRIVTgiPg0KICAgICAgPGVudHR5cD4NCiAgICAgICAg +PGVudHR5cGw+V0JESFUyPC9lbnR0eXBsPg0KICAgICAgICA8ZW50dHlwZD5Qb2x5Z29uIGZlYXR1 +cmUgY2xhc3MgcmVwcmVzZW50aW5nIHRoZSAyLWRpZ2l0IGh5ZHJvbG9naWMgdW5pdCBib3VuZGFy +aWVzIChwcmV2aW91c2x5IHJlZmVycmVkIHRvIGFzIFJlZ2lvbnMpIGFuZCBhcmUgcGFydCBvZiB0 +aGUgV0JEIGRlbGl2ZXJ5LjwvZW50dHlwZD4NCiAgICAgICAgPGVudHR5cGRzPkZlZGVyYWwgU3Rh +bmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5 +IERhdGFzZXQ8L2VudHR5cGRzPg0KICAgICAgICA8ZW50dHlwdCBTeW5jPSJUUlVFIj5GZWF0dXJl +IENsYXNzPC9lbnR0eXB0Pg0KICAgICAgICA8ZW50dHlwYyBTeW5jPSJUUlVFIj4wPC9lbnR0eXBj +Pg0KICAgICAgPC9lbnR0eXA+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsIFN5bmM9 +IlRSVUUiPk9CSkVDVElEPC9hdHRybGFibD4NCiAgICAgICAgPGF0dGFsaWFzIFN5bmM9IlRSVUUi +Pk9CSkVDVElEPC9hdHRhbGlhcz4NCiAgICAgICAgPGF0dHJ0eXBlIFN5bmM9IlRSVUUiPk9JRDwv +YXR0cnR5cGU+DQogICAgICAgIDxhdHR3aWR0aCBTeW5jPSJUUlVFIj40PC9hdHR3aWR0aD4NCiAg +ICAgICAgPGF0cHJlY2lzIFN5bmM9IlRSVUUiPjA8L2F0cHJlY2lzPg0KICAgICAgICA8YXR0c2Nh +bGUgU3luYz0iVFJVRSI+MDwvYXR0c2NhbGU+DQogICAgICAgIDxhdHRyZGVmIFN5bmM9IlRSVUUi +PkludGVybmFsIGZlYXR1cmUgbnVtYmVyLjwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzIFN5 +bmM9IlRSVUUiPkVzcmk8L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAg +PHVkb20gU3luYz0iVFJVRSI+U2VxdWVudGlhbCB1bmlxdWUgd2hvbGUgbnVtYmVycyB0aGF0IGFy +ZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZC48L3Vkb20+DQogICAgICAgIDwvYXR0cmRvbXY+DQog +ICAgICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsIFN5bmM9IlRSVUUi +PlNoYXBlPC9hdHRybGFibD4NCiAgICAgICAgPGF0dGFsaWFzIFN5bmM9IlRSVUUiPlNIQVBFPC9h +dHRhbGlhcz4NCiAgICAgICAgPGF0dHJ0eXBlIFN5bmM9IlRSVUUiPkdlb21ldHJ5PC9hdHRydHlw +ZT4NCiAgICAgICAgPGF0dHdpZHRoIFN5bmM9IlRSVUUiPjA8L2F0dHdpZHRoPg0KICAgICAgICA8 +YXRwcmVjaXMgU3luYz0iVFJVRSI+MDwvYXRwcmVjaXM+DQogICAgICAgIDxhdHRzY2FsZSBTeW5j +PSJUUlVFIj4wPC9hdHRzY2FsZT4NCiAgICAgICAgPGF0dHJkZWYgU3luYz0iVFJVRSI+RmVhdHVy +ZSBnZW9tZXRyeS48L2F0dHJkZWY+DQogICAgICAgIDxhdHRyZGVmcyBTeW5jPSJUUlVFIj5Fc3Jp +PC9hdHRyZGVmcz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDx1ZG9tIFN5bmM9IlRS +VUUiPkNvb3JkaW5hdGVzIGRlZmluaW5nIHRoZSBmZWF0dXJlcy48L3Vkb20+DQogICAgICAgIDwv +YXR0cmRvbXY+DQogICAgICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJs +IFN5bmM9IlRSVUUiPlROTUlEPC9hdHRybGFibD4NCiAgICAgICAgPGF0dGFsaWFzIFN5bmM9IlRS +VUUiPlROTUlEPC9hdHRhbGlhcz4NCiAgICAgICAgPGF0dHJ0eXBlIFN5bmM9IlRSVUUiPlN0cmlu +ZzwvYXR0cnR5cGU+DQogICAgICAgIDxhdHR3aWR0aCBTeW5jPSJUUlVFIj40MDwvYXR0d2lkdGg+ +DQogICAgICAgIDxhdHByZWNpcyBTeW5jPSJUUlVFIj4wPC9hdHByZWNpcz4NCiAgICAgICAgPGF0 +dHNjYWxlIFN5bmM9IlRSVUUiPjA8L2F0dHNjYWxlPg0KICAgICAgPC9hdHRyPg0KICAgICAgPGF0 +dHI+DQogICAgICAgIDxhdHRybGFibCBTeW5jPSJUUlVFIj5NZXRhU291cmNlSUQ8L2F0dHJsYWJs +Pg0KICAgICAgICA8YXR0YWxpYXMgU3luYz0iVFJVRSI+TWV0YVNvdXJjZUlEPC9hdHRhbGlhcz4N +CiAgICAgICAgPGF0dHJ0eXBlIFN5bmM9IlRSVUUiPlN0cmluZzwvYXR0cnR5cGU+DQogICAgICAg +IDxhdHR3aWR0aCBTeW5jPSJUUlVFIj40MDwvYXR0d2lkdGg+DQogICAgICAgIDxhdHByZWNpcyBT +eW5jPSJUUlVFIj4wPC9hdHByZWNpcz4NCiAgICAgICAgPGF0dHNjYWxlIFN5bmM9IlRSVUUiPjA8 +L2F0dHNjYWxlPg0KICAgICAgPC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFi +bCBTeW5jPSJUUlVFIj5Tb3VyY2VEYXRhRGVzYzwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRhbGlh +cyBTeW5jPSJUUlVFIj5Tb3VyY2VEYXRhRGVzYzwvYXR0YWxpYXM+DQogICAgICAgIDxhdHRydHlw +ZSBTeW5jPSJUUlVFIj5TdHJpbmc8L2F0dHJ0eXBlPg0KICAgICAgICA8YXR0d2lkdGggU3luYz0i +VFJVRSI+MTAwPC9hdHR3aWR0aD4NCiAgICAgICAgPGF0cHJlY2lzIFN5bmM9IlRSVUUiPjA8L2F0 +cHJlY2lzPg0KICAgICAgICA8YXR0c2NhbGUgU3luYz0iVFJVRSI+MDwvYXR0c2NhbGU+DQogICAg +ICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsIFN5bmM9IlRSVUUiPlNv +dXJjZU9yaWdpbmF0b3I8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0YWxpYXMgU3luYz0iVFJVRSI+ +U291cmNlT3JpZ2luYXRvcjwvYXR0YWxpYXM+DQogICAgICAgIDxhdHRydHlwZSBTeW5jPSJUUlVF +Ij5TdHJpbmc8L2F0dHJ0eXBlPg0KICAgICAgICA8YXR0d2lkdGggU3luYz0iVFJVRSI+MTMwPC9h +dHR3aWR0aD4NCiAgICAgICAgPGF0cHJlY2lzIFN5bmM9IlRSVUUiPjA8L2F0cHJlY2lzPg0KICAg +ICAgICA8YXR0c2NhbGUgU3luYz0iVFJVRSI+MDwvYXR0c2NhbGU+DQogICAgICA8L2F0dHI+DQog +ICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsIFN5bmM9IlRSVUUiPlNvdXJjZUZlYXR1cmVJ +RDwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRhbGlhcyBTeW5jPSJUUlVFIj5Tb3VyY2VGZWF0dXJl +SUQ8L2F0dGFsaWFzPg0KICAgICAgICA8YXR0cnR5cGUgU3luYz0iVFJVRSI+U3RyaW5nPC9hdHRy +dHlwZT4NCiAgICAgICAgPGF0dHdpZHRoIFN5bmM9IlRSVUUiPjQwPC9hdHR3aWR0aD4NCiAgICAg +ICAgPGF0cHJlY2lzIFN5bmM9IlRSVUUiPjA8L2F0cHJlY2lzPg0KICAgICAgICA8YXR0c2NhbGUg +U3luYz0iVFJVRSI+MDwvYXR0c2NhbGU+DQogICAgICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAg +ICAgICAgPGF0dHJsYWJsIFN5bmM9IlRSVUUiPkxvYWREYXRlPC9hdHRybGFibD4NCiAgICAgICAg +PGF0dGFsaWFzIFN5bmM9IlRSVUUiPkxvYWREYXRlPC9hdHRhbGlhcz4NCiAgICAgICAgPGF0dHJ0 +eXBlIFN5bmM9IlRSVUUiPkRhdGU8L2F0dHJ0eXBlPg0KICAgICAgICA8YXR0d2lkdGggU3luYz0i +VFJVRSI+ODwvYXR0d2lkdGg+DQogICAgICAgIDxhdHByZWNpcyBTeW5jPSJUUlVFIj4wPC9hdHBy +ZWNpcz4NCiAgICAgICAgPGF0dHNjYWxlIFN5bmM9IlRSVUUiPjA8L2F0dHNjYWxlPg0KICAgICAg +PC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibCBTeW5jPSJUUlVFIj5BcmVh +U3FLbTwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRhbGlhcyBTeW5jPSJUUlVFIj5BcmVhU3FLbTwv +YXR0YWxpYXM+DQogICAgICAgIDxhdHRydHlwZSBTeW5jPSJUUlVFIj5Eb3VibGU8L2F0dHJ0eXBl +Pg0KICAgICAgICA8YXR0d2lkdGggU3luYz0iVFJVRSI+ODwvYXR0d2lkdGg+DQogICAgICAgIDxh +dHByZWNpcyBTeW5jPSJUUlVFIj4wPC9hdHByZWNpcz4NCiAgICAgICAgPGF0dHNjYWxlIFN5bmM9 +IlRSVUUiPjA8L2F0dHNjYWxlPg0KICAgICAgPC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAg +IDxhdHRybGFibCBTeW5jPSJUUlVFIj5BcmVhQWNyZXM8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0 +YWxpYXMgU3luYz0iVFJVRSI+QXJlYUFjcmVzPC9hdHRhbGlhcz4NCiAgICAgICAgPGF0dHJ0eXBl +IFN5bmM9IlRSVUUiPkRvdWJsZTwvYXR0cnR5cGU+DQogICAgICAgIDxhdHR3aWR0aCBTeW5jPSJU +UlVFIj44PC9hdHR3aWR0aD4NCiAgICAgICAgPGF0cHJlY2lzIFN5bmM9IlRSVUUiPjA8L2F0cHJl +Y2lzPg0KICAgICAgICA8YXR0c2NhbGUgU3luYz0iVFJVRSI+MDwvYXR0c2NhbGU+DQogICAgICA8 +L2F0dHI+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsIFN5bmM9IlRSVUUiPkdOSVNf +SUQ8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0YWxpYXMgU3luYz0iVFJVRSI+R05JU19JRDwvYXR0 +YWxpYXM+DQogICAgICAgIDxhdHRydHlwZSBTeW5jPSJUUlVFIj5JbnRlZ2VyPC9hdHRydHlwZT4N +CiAgICAgICAgPGF0dHdpZHRoIFN5bmM9IlRSVUUiPjQ8L2F0dHdpZHRoPg0KICAgICAgICA8YXRw +cmVjaXMgU3luYz0iVFJVRSI+MDwvYXRwcmVjaXM+DQogICAgICAgIDxhdHRzY2FsZSBTeW5jPSJU +UlVFIj4wPC9hdHRzY2FsZT4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8 +YXR0cmxhYmwgU3luYz0iVFJVRSI+TmFtZTwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRhbGlhcyBT +eW5jPSJUUlVFIj5OYW1lPC9hdHRhbGlhcz4NCiAgICAgICAgPGF0dHJ0eXBlIFN5bmM9IlRSVUUi +PlN0cmluZzwvYXR0cnR5cGU+DQogICAgICAgIDxhdHR3aWR0aCBTeW5jPSJUUlVFIj4xMjA8L2F0 +dHdpZHRoPg0KICAgICAgICA8YXRwcmVjaXMgU3luYz0iVFJVRSI+MDwvYXRwcmVjaXM+DQogICAg +ICAgIDxhdHRzY2FsZSBTeW5jPSJUUlVFIj4wPC9hdHRzY2FsZT4NCiAgICAgIDwvYXR0cj4NCiAg +ICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmwgU3luYz0iVFJVRSI+U3RhdGVzPC9hdHRybGFi +bD4NCiAgICAgICAgPGF0dGFsaWFzIFN5bmM9IlRSVUUiPlN0YXRlczwvYXR0YWxpYXM+DQogICAg +ICAgIDxhdHRydHlwZSBTeW5jPSJUUlVFIj5TdHJpbmc8L2F0dHJ0eXBlPg0KICAgICAgICA8YXR0 +d2lkdGggU3luYz0iVFJVRSI+NTA8L2F0dHdpZHRoPg0KICAgICAgICA8YXRwcmVjaXMgU3luYz0i +VFJVRSI+MDwvYXRwcmVjaXM+DQogICAgICAgIDxhdHRzY2FsZSBTeW5jPSJUUlVFIj4wPC9hdHRz +Y2FsZT4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmwgU3lu +Yz0iVFJVRSI+SFVDODwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRhbGlhcyBTeW5jPSJUUlVFIj5I +VUM4PC9hdHRhbGlhcz4NCiAgICAgICAgPGF0dHJ0eXBlIFN5bmM9IlRSVUUiPlN0cmluZzwvYXR0 +cnR5cGU+DQogICAgICAgIDxhdHR3aWR0aCBTeW5jPSJUUlVFIj44PC9hdHR3aWR0aD4NCiAgICAg +ICAgPGF0cHJlY2lzIFN5bmM9IlRSVUUiPjA8L2F0cHJlY2lzPg0KICAgICAgICA8YXR0c2NhbGUg +U3luYz0iVFJVRSI+MDwvYXR0c2NhbGU+DQogICAgICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAg +ICAgICAgPGF0dHJsYWJsIFN5bmM9IlRSVUUiPlNoYXBlX0xlbmd0aDwvYXR0cmxhYmw+DQogICAg +ICAgIDxhdHRhbGlhcyBTeW5jPSJUUlVFIj5TSEFQRV9MRU5HVEg8L2F0dGFsaWFzPg0KICAgICAg +ICA8YXR0cnR5cGUgU3luYz0iVFJVRSI+RG91YmxlPC9hdHRydHlwZT4NCiAgICAgICAgPGF0dHdp +ZHRoIFN5bmM9IlRSVUUiPjg8L2F0dHdpZHRoPg0KICAgICAgICA8YXRwcmVjaXMgU3luYz0iVFJV +RSI+MDwvYXRwcmVjaXM+DQogICAgICAgIDxhdHRzY2FsZSBTeW5jPSJUUlVFIj4wPC9hdHRzY2Fs +ZT4NCiAgICAgICAgPGF0dHJkZWYgU3luYz0iVFJVRSI+TGVuZ3RoIG9mIGZlYXR1cmUgaW4gaW50 +ZXJuYWwgdW5pdHMuPC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRlZnMgU3luYz0iVFJVRSI+RXNy +aTwvYXR0cmRlZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8dWRvbSBTeW5jPSJU +UlVFIj5Qb3NpdGl2ZSByZWFsIG51bWJlcnMgdGhhdCBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0 +ZWQuPC91ZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0KICAgICAgPGF0 +dHI+DQogICAgICAgIDxhdHRybGFibCBTeW5jPSJUUlVFIj5TaGFwZV9BcmVhPC9hdHRybGFibD4N +CiAgICAgICAgPGF0dGFsaWFzIFN5bmM9IlRSVUUiPlNIQVBFX0FSRUE8L2F0dGFsaWFzPg0KICAg +ICAgICA8YXR0cnR5cGUgU3luYz0iVFJVRSI+RG91YmxlPC9hdHRydHlwZT4NCiAgICAgICAgPGF0 +dHdpZHRoIFN5bmM9IlRSVUUiPjg8L2F0dHdpZHRoPg0KICAgICAgICA8YXRwcmVjaXMgU3luYz0i +VFJVRSI+MDwvYXRwcmVjaXM+DQogICAgICAgIDxhdHRzY2FsZSBTeW5jPSJUUlVFIj4wPC9hdHRz +Y2FsZT4NCiAgICAgICAgPGF0dHJkZWYgU3luYz0iVFJVRSI+QXJlYSBvZiBmZWF0dXJlIGluIGlu +dGVybmFsIHVuaXRzIHNxdWFyZWQuPC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRlZnMgU3luYz0i +VFJVRSI+RXNyaTwvYXR0cmRlZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8dWRv +bSBTeW5jPSJUUlVFIj5Qb3NpdGl2ZSByZWFsIG51bWJlcnMgdGhhdCBhcmUgYXV0b21hdGljYWxs +eSBnZW5lcmF0ZWQuPC91ZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0K +ICAgIDwvZGV0YWlsZWQ+DQogICAgPGRldGFpbGVkPg0KICAgICAgPGVudHR5cD4NCiAgICAgICAg +PGVudHR5cGw+V0JESFU0PC9lbnR0eXBsPg0KICAgICAgICA8ZW50dHlwZD5Qb2x5Z29uIGZlYXR1 +cmUgY2xhc3MgcmVwcmVzZW50aW5nIHRoZSA0LWRpZ2l0IGh5ZHJvbG9naWMgdW5pdCBib3VuZGFy +aWVzIChwcmV2aW91c2x5IHJlZmVycmVkIHRvIGFzIFN1YnJlZ2lvbnMpIHRoYXQgYXJlIHBhcnQg +b2YgdGhlIFdCRCBkZWxpdmVyeS48L2VudHR5cGQ+DQogICAgICAgIDxlbnR0eXBkcz5GZWRlcmFs +IFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3Vu +ZGFyeSBEYXRhc2V0PC9lbnR0eXBkcz4NCiAgICAgIDwvZW50dHlwPg0KICAgICAgPGF0dHI+DQog +ICAgICAgIDxhdHRybGFibD5IVUM0PC9hdHRybGFibD4NCiAgICAgICAgPGF0dHJkZWY+VGhlIEhV +QzQgZmllbGQgaXMgYSB1bmlxdWUgNC1kaWdpdCBoeWRyb2xvZ2ljIHVuaXQgY29kZS48L2F0dHJk +ZWY+DQogICAgICAgIDxhdHRyZGVmcz5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBm +b3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0IChXQkQpPC9hdHRyZGVm +cz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDxjb2Rlc2V0ZD4NCiAgICAgICAgICAg +IDxjb2Rlc2V0bj5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlv +bmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0IChXQkQpPC9jb2Rlc2V0bj4NCiAgICAgICAg +ICAgIDxjb2Rlc2V0cz5TZWN0aW9uIDY6IEdlb3NwYXRpYWwgRGF0YSBTdHJ1Y3R1cmUgYW5kIEF0 +dHJpYnV0ZXMgaHR0cDovL3B1YnMudXNncy5nb3YvdG0vMTEvYTMvKTwvY29kZXNldHM+DQogICAg +ICAgICAgPC9jb2Rlc2V0ZD4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAg +ICA8L2RldGFpbGVkPg0KICAgIDxkZXRhaWxlZD4NCiAgICAgIDxlbnR0eXA+DQogICAgICAgIDxl +bnR0eXBsPldCREhVNjwvZW50dHlwbD4NCiAgICAgICAgPGVudHR5cGQ+UG9seWdvbiBmZWF0dXJl +IGNsYXNzIHJlcHJlc2VudGluZyB0aGUgNi1kaWdpdCBoeWRyb2xvZ2ljIHVuaXQgYm91bmRhcmll +cyAocHJldmlvdXNseSByZWZlcnJlZCB0byBhcyBCYXNpbnMpIGFuZCBhcmUgcGFydCBvZiB0aGUg +V0JEIGRlbGl2ZXJ5LjwvZW50dHlwZD4NCiAgICAgICAgPGVudHR5cGRzPkZlZGVyYWwgU3RhbmRh +cmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERh +dGFzZXQ8L2VudHR5cGRzPg0KICAgICAgPC9lbnR0eXA+DQogICAgICA8YXR0cj4NCiAgICAgICAg +PGF0dHJsYWJsPkhVQzY8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5UaGUgSFVDNiBmaWVs +ZCBpcyBhIHVuaXF1ZSA2LWRpZ2l0IGh5ZHJvbG9naWMgdW5pdCBjb2RlLjwvYXR0cmRlZj4NCiAg +ICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUg +TmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2F0dHJkZWZzPg0KICAg +ICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPGNvZGVzZXRkPg0KICAgICAgICAgICAgPGNvZGVz +ZXRuPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0 +ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2NvZGVzZXRuPg0KICAgICAgICAgICAgPGNv +ZGVzZXRzPlNlY3Rpb24gNjogR2Vvc3BhdGlhbCBEYXRhIFN0cnVjdHVyZSBhbmQgQXR0cmlidXRl +cyAoaHR0cDovL3B1YnMudXNncy5nb3YvdG0vMTEvYTMvKTwvY29kZXNldHM+DQogICAgICAgICAg +PC9jb2Rlc2V0ZD4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICA8L2Rl +dGFpbGVkPg0KICAgIDxkZXRhaWxlZD4NCiAgICAgIDxlbnR0eXA+DQogICAgICAgIDxlbnR0eXBs +PldCREhVODwvZW50dHlwbD4NCiAgICAgICAgPGVudHR5cGQ+UG9seWdvbiBmZWF0dXJlIGNsYXNz +IHJlcHJlc2VudGluZyB0aGUgOC1kaWdpdCBoeWRyb2xvZ2ljIHVuaXQgYm91bmRhcmllcyAocHJl +dmlvdXNseSByZWZlcnJlZCB0byBhcyBTdWJiYXNpbnMpIGFuZCBhcmUgcGFydCBvZiB0aGUgV0JE +IGRlbGl2ZXJ5LjwvZW50dHlwZD4NCiAgICAgICAgPGVudHR5cGRzPkZlZGVyYWwgU3RhbmRhcmRz +IGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFz +ZXQ8L2VudHR5cGRzPg0KICAgICAgPC9lbnR0eXA+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0 +dHJsYWJsPkhVQzg8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5UaGUgSFVDOCBmaWVsZCBp +cyBhIHVuaXF1ZSA4LWRpZ2l0IGh5ZHJvbG9naWMgdW5pdCBjb2RlLjwvYXR0cmRlZj4NCiAgICAg +ICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0 +aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2F0dHJkZWZzPg0KICAgICAg +ICA8YXR0cmRvbXY+DQogICAgICAgICAgPGNvZGVzZXRkPg0KICAgICAgICAgICAgPGNvZGVzZXRu +PkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJz +aGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2NvZGVzZXRuPg0KICAgICAgICAgICAgPGNvZGVz +ZXRzPlNlY3Rpb24gNjogR2Vvc3BhdGlhbCBEYXRhIFN0cnVjdHVyZSBhbmQgQXR0cmlidXRlcyBo +dHRwOi8vcHVicy51c2dzLmdvdi90bS8xMS9hMy8pPC9jb2Rlc2V0cz4NCiAgICAgICAgICA8L2Nv +ZGVzZXRkPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0KICAgIDwvZGV0YWls +ZWQ+DQogICAgPGRldGFpbGVkPg0KICAgICAgPGVudHR5cD4NCiAgICAgICAgPGVudHR5cGw+V0JE +SFUxMDwvZW50dHlwbD4NCiAgICAgICAgPGVudHR5cGQ+UG9seWdvbiBmZWF0dXJlIGNsYXNzIHJl +cHJlc2VudGluZyB0aGUgMTAtZGlnaXQgaHlkcm9sb2dpYyB1bml0IGJvdW5kYXJpZXMgKHByZXZp +b3VzbHkgcmVmZXJyZWQgdG8gYXMgV2F0ZXJzaGVkcykuPC9lbnR0eXBkPg0KICAgICAgICA8ZW50 +dHlwZHM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBX +YXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldDwvZW50dHlwZHM+DQogICAgICA8L2VudHR5cD4NCiAg +ICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmw+SFVDMTA8L2F0dHJsYWJsPg0KICAgICAgICA8 +YXR0cmRlZj5UaGUgSFVDMTAgZmllbGQgaXMgYSB1bmlxdWUgMTAtZGlnaXQgaHlkcm9sb2dpYyB1 +bml0IGNvZGUuPC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRlZnM+RmVkZXJhbCBTdGFuZGFyZHMg +YW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNl +dCAoV0JEKTwvYXR0cmRlZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8Y29kZXNl +dGQ+DQogICAgICAgICAgICA8Y29kZXNldG4+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVy +ZXMgZm9yIHRoZSBOYXRpb25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvY29k +ZXNldG4+DQogICAgICAgICAgICA8Y29kZXNldHM+UHJvdmlkZSBDb2Rlc2V0IERlZmluaXRpb24g +UmVmZXJlbmNlIChDaXRhdGF0aW9uL1VSTCk8L2NvZGVzZXRzPg0KICAgICAgICAgIDwvY29kZXNl +dGQ+DQogICAgICAgIDwvYXR0cmRvbXY+DQogICAgICA8L2F0dHI+DQogICAgPC9kZXRhaWxlZD4N +CiAgICA8ZGV0YWlsZWQ+DQogICAgICA8ZW50dHlwPg0KICAgICAgICA8ZW50dHlwbD5XQkRIVTEy +PC9lbnR0eXBsPg0KICAgICAgICA8ZW50dHlwZD5Qb2x5Z29uIGZlYXR1cmUgY2xhc3MgcmVwcmVz +ZW50aW5nIHRoZSAxMi1kaWdpdCBoeWRyb2xvZ2ljIHVuaXQgYm91bmRhcmllcyAocHJldmlvdXNs +eSByZWZlcnJlZCB0byBhcyBTdWJ3YXRlcnNoZWRzKS48L2VudHR5cGQ+DQogICAgICAgIDxlbnR0 +eXBkcz5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdh +dGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0PC9lbnR0eXBkcz4NCiAgICAgIDwvZW50dHlwPg0KICAg +ICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5IVUMxMjwvYXR0cmxhYmw+DQogICAgICAgIDxh +dHRyZGVmPlRoZSBIVUMxMiBmaWVsZCBpcyBhIHVuaXF1ZSAxMi1kaWdpdCBoeWRyb2xvZ2ljIHVu +aXQgY29kZS48L2F0dHJkZWY+DQogICAgICAgIDxhdHRyZGVmcz5GZWRlcmFsIFN0YW5kYXJkcyBh +bmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0 +IChXQkQpPC9hdHRyZGVmcz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDxjb2Rlc2V0 +ZD4NCiAgICAgICAgICAgIDxjb2Rlc2V0bj5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJl +cyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0IChXQkQpPC9jb2Rl +c2V0bj4NCiAgICAgICAgICAgIDxjb2Rlc2V0cz5TZWN0aW9uIDY6IEdlb3NwYXRpYWwgRGF0YSBT +dHJ1Y3R1cmUgYW5kIEF0dHJpYnV0ZXMgKGh0dHA6Ly9wdWJzLnVzZ3MuZ292L3RtLzExL2EzLyk8 +L2NvZGVzZXRzPg0KICAgICAgICAgIDwvY29kZXNldGQ+DQogICAgICAgIDwvYXR0cmRvbXY+DQog +ICAgICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsPlRvSFVDPC9hdHRy +bGFibD4NCiAgICAgICAgPGF0dHJkZWY+VGhlIDEyLWRpZ2l0IGh5ZHJvbG9naWMgdW5pdCBUb0hV +QyBjb2RlIGF0dHJpYnV0ZSBpcyB0aGUgY29kZSBmb3IgdGhlIDEyLWRpZ2l0IGh5ZHJvbG9naWMg +dW5pdCB0aGF0IGlzIGRvd25zdHJlYW0gZnJvbSBhbmQgbmF0dXJhbGx5IHJlY2VpdmVzIA0KCXRo +ZSBtYWpvcml0eSBvZiB0aGUgZmxvdyBmcm9tIGFub3RoZXIgMTItZGlnaXQgaHlkcm9sb2dpYyB1 +bml0LjwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQ +cm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdC +RCk8L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPGNvZGVzZXRkPg0K +ICAgICAgICAgICAgPGNvZGVzZXRuPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZv +ciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2NvZGVzZXRu +Pg0KICAgICAgICAgICAgPGNvZGVzZXRzPlNlY3Rpb24gNjogR2Vvc3BhdGlhbCBEYXRhIFN0cnVj +dHVyZSBhbmQgQXR0cmlidXRlcyAoaHR0cDovL3B1YnMudXNncy5nb3YvdG0vMTEvYTMvKTwvY29k +ZXNldHM+DQogICAgICAgICAgPC9jb2Rlc2V0ZD4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAg +IDwvYXR0cj4NCiAgICA8L2RldGFpbGVkPg0KICAgIDxkZXRhaWxlZD4NCiAgICAgIDxlbnR0eXA+ +DQogICAgICAgIDxlbnR0eXBsPldCREhVMTQ8L2VudHR5cGw+DQogICAgICAgIDxlbnR0eXBkPlBv +bHlnb24gZmVhdHVyZSBjbGFzcyByZXByZXNlbnRpbmcgdGhlIDE0LWRpZ2l0IGh5ZHJvbG9naWMg +dW5pdCBib3VuZGFyaWVzLjwvZW50dHlwZD4NCiAgICAgICAgPGVudHR5cGRzPkZlZGVyYWwgU3Rh +bmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5 +IERhdGFzZXQ8L2VudHR5cGRzPg0KICAgICAgPC9lbnR0eXA+DQogICAgICA8YXR0cj4NCiAgICAg +ICAgPGF0dHJsYWJsPkhVQzE0PC9hdHRybGFibD4NCiAgICAgICAgPGF0dHJkZWY+VGhlIEhVQzE0 +IGZpZWxkIGlzIGEgdW5pcXVlIDE0LWRpZ2l0IGh5ZHJvbG9naWMgdW5pdCBjb2RlLjwvYXR0cmRl +Zj4NCiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZv +ciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2F0dHJkZWZz +Pg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPGNvZGVzZXRkPg0KICAgICAgICAgICAg +PGNvZGVzZXRuPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9u +YWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2NvZGVzZXRuPg0KICAgICAgICAg +ICAgPGNvZGVzZXRzPlNlY3Rpb24gNjogR2Vvc3BhdGlhbCBEYXRhIFN0cnVjdHVyZSBhbmQgQXR0 +cmlidXRlcyAoaHR0cDovL3B1YnMudXNncy5nb3YvdG0vMTEvYTMvKTwvY29kZXNldHM+DQogICAg +ICAgICAgPC9jb2Rlc2V0ZD4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAg +ICA8L2RldGFpbGVkPg0KICAgIDxkZXRhaWxlZD4NCiAgICAgIDxlbnR0eXA+DQogICAgICAgIDxl +bnR0eXBsPldCREhVMTY8L2VudHR5cGw+DQogICAgICAgIDxlbnR0eXBkPlBvbHlnb24gZmVhdHVy +ZSBjbGFzcyByZXByZXNlbnRpbmcgdGhlIDE2LWRpZ2l0IGh5ZHJvbG9naWMgdW5pdCBib3VuZGFy +aWVzLjwvZW50dHlwZD4NCiAgICAgICAgPGVudHR5cGRzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQ +cm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQ8L2Vu +dHR5cGRzPg0KICAgICAgPC9lbnR0eXA+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJs +PkhVQzE2PC9hdHRybGFibD4NCiAgICAgICAgPGF0dHJkZWY+VGhlIEhVQzE2IGZpZWxkIGlzIGEg +dW5pcXVlIDE2LWRpZ2l0IGh5ZHJvbG9naWMgdW5pdCBjb2RlLjwvYXR0cmRlZj4NCiAgICAgICAg +PGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9u +YWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2F0dHJkZWZzPg0KICAgICAgICA8 +YXR0cmRvbXY+DQogICAgICAgICAgPGNvZGVzZXRkPg0KICAgICAgICAgICAgPGNvZGVzZXRuPkZl +ZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVk +IEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2NvZGVzZXRuPg0KICAgICAgICAgICAgPGNvZGVzZXRz +PlNlY3Rpb24gNjogR2Vvc3BhdGlhbCBEYXRhIFN0cnVjdHVyZSBhbmQgQXR0cmlidXRlcyBodHRw +Oi8vcHVicy51c2dzLmdvdi90bS8xMS9hMy8pPC9jb2Rlc2V0cz4NCiAgICAgICAgICA8L2NvZGVz +ZXRkPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0KICAgIDwvZGV0YWlsZWQ+ +DQogICAgPGRldGFpbGVkPg0KICAgICAgPGVudHR5cD4NCiAgICAgICAgPGVudHR5cGw+V0JETGlu +ZTwvZW50dHlwbD4NCiAgICAgICAgPGVudHR5cGQ+TGluZSBmZWF0dXJlIGNsYXNzIGRlZmluaW5n +IHRoZSBoeWRyb2xvZ2ljIHVuaXQgYm91bmRhcmllczwvZW50dHlwZD4NCiAgICAgICAgPGVudHR5 +cGRzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0 +ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQ8L2VudHR5cGRzPg0KICAgICAgPC9lbnR0eXA+DQogICAg +ICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsPkhVRGlnaXQ8L2F0dHJsYWJsPg0KICAgICAgICA8 +YXR0cmRlZj5IVURpZ2l0IGlzIGEgZG9tYWluLWJhc2VkIGZpZWxkIHRoYXQgaW5kaWNhdGVzIHRo +ZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgdXNlZCB0byByZXByZXNlbnQgdGhlIGh5ZHJvbG9n +aWMgdW5pdCBib3VuZGVkIGJ5IHRoZSBsaW5lLjwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZz +PkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJz +aGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+ +DQogICAgICAgICAgPGNvZGVzZXRkPg0KICAgICAgICAgICAgPGNvZGVzZXRuPkZlZGVyYWwgU3Rh +bmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5 +IERhdGFzZXQgKFdCRCk8L2NvZGVzZXRuPg0KICAgICAgICAgICAgPGNvZGVzZXRzPlNlY3Rpb24g +NjogR2Vvc3BhdGlhbCBEYXRhIFN0cnVjdHVyZSBhbmQgQXR0cmlidXRlcyAoaHR0cDovL3B1YnMu +dXNncy5nb3YvdG0vMTEvYTMvKTwvY29kZXNldHM+DQogICAgICAgICAgPC9jb2Rlc2V0ZD4NCiAg +ICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8 +YXR0cmxhYmw+SFVNb2Q8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5Ud28tY2hhcmFjdGVy +LCB1cHBlcmNhc2UgYWJicmV2aWF0aW9uIHVzZWQgdG8gdHJhY2sgZWl0aGVyIGEgbW9kaWZpY2F0 +aW9uIHRvIG5hdHVyYWwgb3ZlcmxhbmQgZmxvdyB0aGF0IGFsdGVycyB0aGUgbG9jYXRpb24gb2Yg +dGhlIGh5ZHJvbG9naWMgdW5pdCBib3VuZGFyeSBvciBzcGVjaWFsIGNvbmRpdGlvbnMgdGhhdCBh +cmUgYXBwbGllZCB0byBhIHNwZWNpZmljIGJvdW5kYXJ5IGxpbmUgc2VnbWVudC4gVGhlIHZhbHVl +IGlkZW50aWZpZXMgdGhlIHR5cGUgb2YgbW9kaWZpY2F0aW9uLCBmcm9tIHRoZSBsaXN0IHByb3Zp +ZGVkLCB0aGF0IGhhcyBiZWVuIGFwcGxpZWQgdG8gdGhlIGJvdW5kYXJ5IHNlZ21lbnQuIElmIG1v +cmUgdGhhbiBvbmUgYWJicmV2aWF0aW9uIGlzIHVzZWQsIHRoZSBsaXN0IGlzIHNlcGFyYXRlZCBi +eSBjb21tYXMgd2l0aG91dCBzcGFjZXMgYW5kIG9yZ2FuaXplZCBmcm9tIG1vc3QgdG8gbGVhc3Qg +cHJlZG9taW5hbnQuDQo8L2F0dHJkZWY+DQogICAgICAgIDxhdHRyZGVmcz5GZWRlcmFsIFN0YW5k +YXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBE +YXRhc2V0IChXQkQpPC9hdHRyZGVmcz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDxj +b2Rlc2V0ZD4NCiAgICAgICAgICAgIDxjb2Rlc2V0bj5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJv +Y2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0IChXQkQp +PC9jb2Rlc2V0bj4NCiAgICAgICAgICAgIDxjb2Rlc2V0cz5TZWN0aW9uIDY6IEdlb3NwYXRpYWwg +RGF0YSBTdHJ1Y3R1cmUgYW5kIEF0dHJpYnV0ZXMgKGh0dHA6Ly9wdWJzLnVzZ3MuZ292L3RtLzEx +L2EzLyk8L2NvZGVzZXRzPg0KICAgICAgICAgIDwvY29kZXNldGQ+DQogICAgICAgIDwvYXR0cmRv +bXY+DQogICAgICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsPkxpbmVT +b3VyY2U8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5MaW5lU291cmNlIHJlcHJlc2VudHMg +dGhlIGNvZGUgZm9yIHRoZSBiYXNlIGRhdGEgdXNlZCBmb3IgZGVsaW5lYXRpbmcgaHlkcm9sb2dp +YyB1bml0IGJvdW5kYXJpZXMuDQoJSWYgbW9yZSB0aGFuIG9uZSBjb2RlIGlzIHVzZWQsdGhlbiB0 +aGUgbGlzdCBpcyBzZXBhcmF0ZWQgYnkgYSBjb21tYSB3aXRoIG5vIHNwYWNlcyB3aXRoIHRoZSBt +b3N0IHJlY2VudCBMaW5lU291cmNlIGxpc3RlZCBmaXJzdCBpbiB0aGUgc2VxdWVuY2UuPC9hdHRy +ZGVmPg0KICAgICAgICA8YXR0cmRlZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMg +Zm9yIHRoZSBOYXRpb25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvYXR0cmRl +ZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8Y29kZXNldGQ+DQogICAgICAgICAg +ICA8Y29kZXNldG4+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRp +b25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvY29kZXNldG4+DQogICAgICAg +ICAgICA8Y29kZXNldHM+U2VjdGlvbiA2OiBHZW9zcGF0aWFsIERhdGEgU3RydWN0dXJlIGFuZCBB +dHRyaWJ1dGVzIChodHRwOi8vcHVicy51c2dzLmdvdi90bS8xMS9hMy8pPC9jb2Rlc2V0cz4NCiAg +ICAgICAgICA8L2NvZGVzZXRkPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0K +ICAgIDwvZGV0YWlsZWQ+DQogICAgPGRldGFpbGVkPg0KICAgICAgPGVudHR5cD4NCiAgICAgICAg +PGVudHR5cGw+TldJU0RyYWluYWdlQXJlYTwvZW50dHlwbD4NCiAgICAgICAgPGVudHR5cGQ+UG9s +eWdvbiBmZWF0dXJlcyByZXByZXNlbnRpbmcgUFJPVklTSU9OQUwgY29udHJpYnV0aW5nIGRyYWlu +YWdlIGFyZWEgZm9yIHNlbGVjdCBnYWdlIGxvY2F0aW9ucyBpbiB0aGUgVS5TLiBHZW9sb2dpY2Fs +IFN1cnZleSBOYXRpb25hbCBXYXRlciBJbmZvcm1hdGlvbiBTeXN0ZW0NCjwvZW50dHlwZD4NCiAg +ICAgICAgPGVudHR5cGRzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUg +TmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQ8L2VudHR5cGRzPg0KICAgICAgPC9l +bnR0eXA+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsPkFyZWFTcUttPC9hdHRybGFi +bD4NCiAgICAgICAgPGF0dHJkZWY+QXJlYSBvZiB0aGUgZ2FnZWQgd2F0ZXJzaGVkPC9hdHRyZGVm +Pg0KICAgICAgICA8YXR0cmRlZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9y +IHRoZSBOYXRpb25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvYXR0cmRlZnM+ +DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8dWRvbT5DYWxjdWxhdGVkIHBvbHlnb24g +YXJlYSwgc3F1YXJlIGtpbG9tZXRlcnM8L3Vkb20+DQogICAgICAgIDwvYXR0cmRvbXY+DQogICAg +ICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsPkFnZW5jeUNvZGU8L2F0 +dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5TaXRlIEFnZW5jeSBjb2RlPC9hdHRyZGVmPg0KICAg +ICAgICA8YXR0cmRlZnM+VS5TLiBHZW9sb2dpY2FsIFN1cnZleSBOYXRpb25hbCBXYXRlciBJbmZv +cm1hdGlvbiBTeXN0ZW08L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAg +PGNvZGVzZXRkPg0KICAgICAgICAgICAgPGNvZGVzZXRuPlUuUy4gR2VvbG9naWNhbCBTdXJ2ZXkg +TmF0aW9uYWwgV2F0ZXIgSW5mb3JtYXRpb24gU3lzdGVtPC9jb2Rlc2V0bj4NCiAgICAgICAgICAg +IDxjb2Rlc2V0cz4gaHR0cDovL2hlbHAud2F0ZXJkYXRhLnVzZ3MuZ292LzwvY29kZXNldHM+DQog +ICAgICAgICAgPC9jb2Rlc2V0ZD4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4N +CiAgICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmw+U2l0ZU51bWJlcjwvYXR0cmxhYmw+DQog +ICAgICAgIDxhdHRyZGVmPlUuUy4gR2VvbG9naWNhbCBTdXJ2ZXkgdW5pcXVlIHNpdGUgaWRlbnRp +ZmllcjwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPlUuUy4gR2VvbG9naWNhbCBTdXJ2ZXkg +TmF0aW9uYWwgV2F0ZXIgSW5mb3JtYXRpb24gU3lzdGVtPC9hdHRyZGVmcz4NCiAgICAgICAgPGF0 +dHJkb212Pg0KICAgICAgICAgIDx1ZG9tPlVuaXF1ZSBjb2RlIGlkZW50aWZ5aW5nIGEgbWVhc3Vy +ZW1lbnQgc2l0ZSBpbiB0aGUgTmF0aW9uYWwgV2F0ZXIgSW5mb3JtYXRpb24gU3lzdGVtIGRhdGFi +YXNlPC91ZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0KICAgICAgPGF0 +dHI+DQogICAgICAgIDxhdHRybGFibD5TdGF0aW9uTmFtZTwvYXR0cmxhYmw+DQogICAgICAgIDxh +dHRyZGVmPlNpdGUgTmFtZTwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPlUuUy4gR2VvbG9n +aWNhbCBTdXJ2ZXkgTmF0aW9uYWwgV2F0ZXIgSW5mb3JtYXRpb24gU3lzdGVtPC9hdHRyZGVmcz4N +CiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDx1ZG9tPkNvbW1vbiBuYW1lIGFzc29jaWF0 +ZWQgd2l0aCBzaXRlIGluIHRoZSBOYXRpb25hbCBXYXRlciBJbmZvcm1hdGlvbiBTeXN0ZW0gZGF0 +YWJhc2U8L3Vkb20+DQogICAgICAgIDwvYXR0cmRvbXY+DQogICAgICA8L2F0dHI+DQogICAgICA8 +YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsPlRvdGFsQXJlYVNxTWk8L2F0dHJsYWJsPg0KICAgICAg +ICA8YXR0cmRlZj5Ub3RhbCBkcmFpbmFnZSBhcmVhPC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRl +ZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBXYXRl +cnNoZWQgQm91bmRhcnkgRGF0YXNldDwvYXR0cmRlZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAg +ICAgICAgICA8dWRvbT5Ub3RhbCBhcmVhIG9mIHRoZSBwb2x5Z29uLCBzcXVhcmUgbWlsZXM8L3Vk +b20+DQogICAgICAgIDwvYXR0cmRvbXY+DQogICAgICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAg +ICAgICAgPGF0dHJsYWJsPk5XSVNUb3RhbEFyZWFTcU1pPC9hdHRybGFibD4NCiAgICAgICAgPGF0 +dHJkZWY+VG90YWwgZHJhaW5hZ2UgYXJlYSByZXBvcnRlZCBpbiBVLlMuIEdlb2xvZ2ljYWwgU3Vy +dmV5IE5hdGlvbmFsIFdhdGVyIEluZm9ybWF0aW9uIFN5c3RlbTwvYXR0cmRlZj4NCiAgICAgICAg +PGF0dHJkZWZzPlUuUy4gR2VvbG9naWNhbCBTdXJ2ZXkgTmF0aW9uYWwgV2F0ZXIgSW5mb3JtYXRp +b24gU3lzdGVtPC9hdHRyZGVmcz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDx1ZG9t +PlRvdGFsIGFyZWEgaW4gc3F1YXJlIG1pbGVzPC91ZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0K +ICAgICAgPC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5Db250cmlidXRp +bmdBcmVhU3FNaTwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRyZGVmPlRvdGFsIGNvbnRyaWJ1dGlu +ZyBkcmFpbmFnZSBhcmVhLCBzcXVhcmUgbWlsZXM8L2F0dHJkZWY+DQogICAgICAgIDxhdHRyZGVm +cz5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVy +c2hlZCBCb3VuZGFyeSBEYXRhc2V0PC9hdHRyZGVmcz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAg +ICAgICAgIDx1ZG9tPlRvdGFsIGNvbnRyaWJ1dGluZyBhcmVhLCBzcXVhcmUgbWlsZXM8L3Vkb20+ +DQogICAgICAgIDwvYXR0cmRvbXY+DQogICAgICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAgICAg +ICAgPGF0dHJsYWJsPk5XSVNDb250cmlidXRpbmdBcmVhU3FNaTwvYXR0cmxhYmw+DQogICAgICAg +IDxhdHRyZGVmPkNvbnRyaWJ1dGluZyBkcmFpbmFnZSBhcmVhIHJlcG9ydGVkIGluIFUuUy4gR2Vv +bG9naWNhbCBTdXJ2ZXkgTmF0aW9uYWwgV2F0ZXIgSW5mb3JtYXRpb24gU3lzdGVtPC9hdHRyZGVm +Pg0KICAgICAgICA8YXR0cmRlZnM+VS5TLiBHZW9sb2dpY2FsIFN1cnZleSBOYXRpb25hbCBXYXRl +ciBJbmZvcm1hdGlvbiBTeXN0ZW08L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAg +ICAgICAgPHVkb20+VG90YWwgY29udHJpYnV0aW5nIGFyZWEsIHNxdWFyZSBtaWxlczwvdWRvbT4N +CiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAg +ICA8YXR0cmxhYmw+UmVmZXJlbmNlVE5NSUROSERQb2ludEV2ZW50PC9hdHRybGFibD4NCiAgICAg +ICAgPGF0dHJkZWY+VW5pcXVlIGlkZW50aWZpZXIgZm9yIE5IRCBwb2ludCBldmVudCByZXByZXNl +bnRpbmcgZ2FnZTwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRz +IGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFz +ZXQ8L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPHVkb20+VW5pcXVl +IGlkZW50aWZpZXIgdGhhdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZDwvdWRvbT4NCiAgICAg +ICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8YXR0 +cmxhYmw+UmVtYXJrczwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRyZGVmPlJlbWFya3M8L2F0dHJk +ZWY+DQogICAgICAgIDxhdHRyZGVmcz5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBm +b3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0PC9hdHRyZGVmcz4NCiAg +ICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDx1ZG9tPkZyZWUgdGV4dCBob2xkaW5nIHJlbWFy +a3MgZnJvbSByZXZpZXdlcnMgYW5kL29yIGRhdGFzZXQgb3JpZ2luYXRvcjwvdWRvbT4NCiAgICAg +ICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICA8L2RldGFpbGVkPg0KICAgIDxkZXRh +aWxlZD4NCiAgICAgIDxlbnR0eXA+DQogICAgICAgIDxlbnR0eXBsPk5XSVNEcmFpbmFnZUxpbmU8 +L2VudHR5cGw+DQogICAgICAgIDxlbnR0eXBkPkxpbmUgZmVhdHVyZXMgcmVwcmVzZW50aW5nIHRo +ZSBib3VuZGFyeSBvZiB0aGUgY29udHJpYnV0aW5nIGdhZ2VkIGRyYWluYWdlIGFyZWE8L2VudHR5 +cGQ+DQogICAgICAgIDxlbnR0eXBkcz5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBm +b3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0PC9lbnR0eXBkcz4NCiAg +ICAgIDwvZW50dHlwPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5MZW5ndGhLbTwv +YXR0cmxhYmw+DQogICAgICAgIDxhdHRyZGVmPkxlbmd0aCBvZiB0aGUgbGluZTwvYXR0cmRlZj4N +CiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0 +aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQ8L2F0dHJkZWZzPg0KICAgICAg +ICA8YXR0cmRvbXY+DQogICAgICAgICAgPHVkb20+Q2FsY3VsYXRlZCBsaW5lIGxlbmd0aCwga2ls +b21ldGVyczwvdWRvbT4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAg +IDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmw+TGluZVNvdXJjZTwvYXR0cmxhYmw+DQogICAgICAg +IDxhdHRyZGVmPkNvZGUgaWRlbnRpZnlpbmcgdGhlIGJhc2UgZGF0YSB1c2VkIGZvciBkZWxpbmVh +dGluZyBoeWRyb2xvZ2ljIHVuaXQgYm91bmRhcmllczwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJk +ZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0 +ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQ8L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQog +ICAgICAgICAgPGNvZGVzZXRkPg0KICAgICAgICAgICAgPGNvZGVzZXRuPkZlZGVyYWwgU3RhbmRh +cmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERh +dGFzZXQgKFdCRCk8L2NvZGVzZXRuPg0KICAgICAgICAgICAgPGNvZGVzZXRzPlNlY3Rpb24gNjog +R2Vvc3BhdGlhbCBEYXRhIFN0cnVjdHVyZSBhbmQgQXR0cmlidXRlcyAoaHR0cDovL3B1YnMudXNn +cy5nb3YvdG0vMTEvYTMvKTwvY29kZXNldHM+DQogICAgICAgICAgPC9jb2Rlc2V0ZD4NCiAgICAg +ICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8YXR0 +cmxhYmw+QWdlbmN5Q29kZTwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRyZGVmPlNpdGUgQWdlbmN5 +IGNvZGU8L2F0dHJkZWY+DQogICAgICAgIDxhdHRyZGVmcz5VLlMuIEdlb2xvZ2ljYWwgU3VydmV5 +IE5hdGlvbmFsIFdhdGVyIEluZm9ybWF0aW9uIFN5c3RlbTwvYXR0cmRlZnM+DQogICAgICAgIDxh +dHRyZG9tdj4NCiAgICAgICAgICA8Y29kZXNldGQ+DQogICAgICAgICAgICA8Y29kZXNldG4+VS5T +LiBHZW9sb2dpY2FsIFN1cnZleSBOYXRpb25hbCBXYXRlciBJbmZvcm1hdGlvbiBTeXN0ZW08L2Nv +ZGVzZXRuPg0KICAgICAgICAgICAgPGNvZGVzZXRzPiBodHRwOi8vaGVscC53YXRlcmRhdGEudXNn +cy5nb3YvPC9jb2Rlc2V0cz4NCiAgICAgICAgICA8L2NvZGVzZXRkPg0KICAgICAgICA8L2F0dHJk +b212Pg0KICAgICAgPC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5TaXRl +TnVtYmVyPC9hdHRybGFibD4NCiAgICAgICAgPGF0dHJkZWY+VS5TLiBHZW9sb2dpY2FsIFN1cnZl +eSB1bmlxdWUgc2l0ZSBpZGVudGlmaWVyPC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRlZnM+VS5T +LiBHZW9sb2dpY2FsIFN1cnZleSBOYXRpb25hbCBXYXRlciBJbmZvcm1hdGlvbiBTeXN0ZW08L2F0 +dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPHVkb20+VW5pcXVlIGNvZGUg +aWRlbnRpZnlpbmcgYSBtZWFzdXJlbWVudCBzaXRlIGluIHRoZSBOYXRpb25hbCBXYXRlciBJbmZv +cm1hdGlvbiBTeXN0ZW0gZGF0YWJhc2U8L3Vkb20+DQogICAgICAgIDwvYXR0cmRvbXY+DQogICAg +ICA8L2F0dHI+DQogICAgPC9kZXRhaWxlZD4NCiAgICA8ZGV0YWlsZWQ+DQogICAgICA8ZW50dHlw +Pg0KICAgICAgICA8ZW50dHlwbD5XQkRMaW5lLCBXQkRIVTIsIFdCREhVNCwgV0JESFU2LCBXQkRI +VTgsIFdCREhVMTAsIFdCREhVMTIsIFdCREhVMTQsIFdCREhVMTYsIE5XSVNEcmFpbmFnZUFyZWEs +IE5XSVNEcmFpbmFnZUxpbmUsIE5vbkNvbnRyaWJ1dGluZ0RyYWluYWdlQXJlYSwgTm9uQ29udHJp +YnV0aW5nRHJhaW5hZ2VMaW5lPC9lbnR0eXBsPg0KICAgICAgICA8ZW50dHlwZD5UaGUgZm9sbG93 +aW5nIGF0dHJpYnV0ZSBmaWVsZHMgYXJlIGNvbW1vbiB0byBhbGwgZmVhdHVyZSBjbGFzc2VzIHdp +dGhpbiB0aGUgV0JEIDwvZW50dHlwZD4NCiAgICAgICAgPGVudHR5cGRzPkZlZGVyYWwgU3RhbmRh +cmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERh +dGFzZXQ8L2VudHR5cGRzPg0KICAgICAgPC9lbnR0eXA+DQogICAgICA8YXR0cj4NCiAgICAgICAg +PGF0dHJsYWJsPk9CSkVDVElEPC9hdHRybGFibD4NCiAgICAgICAgPGF0dHJkZWY+SW50ZXJuYWwg +ZmVhdHVyZSBudW1iZXIuPC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRlZnM+RVNSSTwvYXR0cmRl +ZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8dWRvbT5TZXF1ZW50aWFsIHVuaXF1 +ZSB3aG9sZSBudW1iZXJzIHRoYXQgYXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkLjwvdWRvbT4N +CiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAg +ICA8YXR0cmxhYmw+U2hhcGU8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5GZWF0dXJlIGdl +b21ldHJ5LjwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPkVTUkk8L2F0dHJkZWZzPg0KICAg +ICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPHVkb20+Q29vcmRpbmF0ZXMgZGVmaW5pbmcgdGhl +IGZlYXR1cmVzLjwvdWRvbT4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAg +ICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmw+VE5NSUQ8L2F0dHJsYWJsPg0KICAgICAgICA8 +YXR0cmRlZj5UTk1JRCAoc2hvcnQgZm9yIFRoZSBOYXRpb25hbCBNYXAgSWRlbnRpZmljYXRpb24p +IGlzIGEgdW5pcXVlIDQwLWNoYXJhY3RlciBmaWVsZCB0aGF0IGlkZW50aWZpZXMgZWFjaCBlbGVt +ZW50IGluIHRoZSBkYXRhYmFzZSBleGNsdXNpdmVseS48L2F0dHJkZWY+DQogICAgICAgIDxhdHRy +ZGVmcz5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdh +dGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0IChXQkQpPC9hdHRyZGVmcz4NCiAgICAgICAgPGF0dHJk +b212Pg0KICAgICAgICAgIDx1ZG9tPlROTUlEIGlzIGFuIGF1dG9tYXRpY2FsbHkgYXNzaWduZWQg +Y29kZSB0aGF0IHN0YXlzIHdpdGggZWFjaCBlbGVtZW50LiBXaGVuIGFuIGVsZW1lbnQgaXMgdXBk +YXRlZCBvciBjaGFuZ2VkLCBUTk1JRCBsaW5rcyB0aGUgZWxlbWVudCB0byB0aGUgbWV0YWRhdGEg +cmVjb3JkIGFuZCBkb2N1bWVudHMgdGhlIGNoYW5nZS4gVE5NSUQgaXMgYWxzbyB1c2VkIHRvIG1h +aW50YWluIHJlbGF0aW9uc2hpcCBjbGFzc2VzIGluIHRoZSBub3JtYWxpemVkIGRhdGEgbW9kZWwu +IFdoZW4gYW4gZWxlbWVudCBpcyBkZWxldGVkIG9yIHNwbGl0LCBUTk1JRCBzdGF5cyB3aXRoIHRo +ZSBvcmlnaW5hbCBlbGVtZW50IGFuZCBpcyBub3QgdXNlZCBhZ2Fpbi4gV2hlbiBhbiBlbGVtZW50 +IGlzIHNwbGl0LCBuZXcgcGVybWFuZW50IGlkZW50aWZpZXJzIGFyZSBhc3NpZ25lZCB0byB0aGUg +cmVzdWx0YW50IHBhcnRzLjwvdWRvbT4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0 +cj4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmw+TWV0YVNvdXJjZUlEPC9hdHRybGFi +bD4NCiAgICAgICAgPGF0dHJkZWY+TWV0YVNvdXJjZUlEIGlzIGEgdW5pcXVlIGlkZW50aWZpZXIg +dGhhdCBsaW5rcyB0aGUgZWxlbWVudCB0byB0aGUgbWV0YWRhdGEgdGFibGVzLjwvYXR0cmRlZj4N +CiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0 +aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2F0dHJkZWZzPg0K +ICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPHVkb20+TWV0YVNvdXJjZUlEIGlzIGEgdW5p +cXVlIGlkZW50aWZpZXIgdGhhdCBsaW5rcyB0aGUgZWxlbWVudCB0byB0aGUgbWV0YWRhdGEgdGFi +bGVzLiBUaGlzIElEIGlzIGdlbmVyYXRlZCBhbmQgYXNzaWduZWQgYXV0b21hdGljYWxseSBieSB0 +aGUgZGF0YWJhc2UgYW5kIHJlbWFpbnMgd2l0aCB0aGUgb2JqZWN0IHBlcm1hbmVudGx5LjwvdWRv +bT4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAg +ICAgICA8YXR0cmxhYmw+U291cmNlRGF0YURlc2M8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRl +Zj5Tb3VyY2VEYXRhRGVzYyBpcyBhIHNwYWNlIHByb3ZpZGVkIGZvciBhIGJyaWVmIGRlc2NyaXB0 +aW9uIG9mIHRoZSB0eXBlIG9mIGJhc2UgZGF0YSB1c2VkIHRvIHVwZGF0ZSBvciBjaGFuZ2UgdGhl +IGN1cnJlbnQgV0JELjwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRh +cmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERh +dGFzZXQgKFdCRCk8L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPHVk +b20+VGhlIFdCRCBJbi1TdGF0ZSBTdGV3YXJkIGNvbXBsZXRlcyB0aGlzIGZpZWxkIGFzIHBhcnQg +b2YgdGhlIG1ldGFkYXRhIGZvcm0uPC91ZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAg +PC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5Tb3VyY2VPcmlnaW5hdG9y +PC9hdHRybGFibD4NCiAgICAgICAgPGF0dHJkZWY+U291cmNlT3JpZ2luYXRvciBpcyB0aGUgZGVz +Y3JpcHRpb24gb2YgdGhlIGFnZW5jeSB0aGF0IGNyZWF0ZWQgdGhlIGJhc2UgZGF0YSB1c2VkIHRv +IGltcHJvdmUgdGhlIFdCRC48L2F0dHJkZWY+DQogICAgICAgIDxhdHRyZGVmcz5GZWRlcmFsIFN0 +YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFy +eSBEYXRhc2V0IChXQkQpPC9hdHRyZGVmcz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAg +IDx1ZG9tPlRoZSBXQkQgSW4tU3RhdGUgU3Rld2FyZCBjb21wbGV0ZXMgdGhpcyBmaWVsZCBhcyBw +YXJ0IG9mIHRoZSBtZXRhZGF0YSBmb3JtPC91ZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAg +ICAgPC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5Tb3VyY2VGZWF0dXJl +SUQ8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5Tb3VyY2VGZWF0dXJlSUQgaXMgYSBsb25n +LCB1bmlxdWUgY29kZS48L2F0dHJkZWY+DQogICAgICAgIDxhdHRyZGVmcz5GZWRlcmFsIFN0YW5k +YXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBE +YXRhc2V0IChXQkQpPC9hdHRyZGVmcz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDx1 +ZG9tPlRoaXMgY29kZSBpZGVudGlmaWVzIHRoZSBwYXJlbnQgb2YgdGhlIGZlYXR1cmUgaWYgdGhl +IGZlYXR1cmUgaXMgdGhlIHJlc3VsdCBvZiBhIHNwbGl0IG9yIG1lcmdlLCBhbmQgaXQgaXMgYXV0 +b21hdGljYWxseSBnZW5lcmF0ZWQgYW5kIGFzc2lnbmVkLjwvdWRvbT4NCiAgICAgICAgPC9hdHRy +ZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmw+TG9h +ZERhdGU8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5Mb2FkRGF0ZSByZXByZXNlbnRzIHRo +ZSBkYXRlIHdoZW4gdGhlIGRhdGEgd2VyZSBsb2FkZWQgaW50byB0aGUgb2ZmaWNpYWwgVVNHUyBX +QkQgQXJjU0RFIGRhdGFiYXNlLiBUaGUgZmllbGQgaXMgdGhlIGVmZmVjdGl2ZSBkYXRlIGZvciBh +bGwgZmVhdHVyZSBlZGl0cywgYW5kIGl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkLjwvYXR0 +cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVz +IGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2F0dHJk +ZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPHJkb20+DQogICAgICAgICAgICA8 +cmRvbW1pbj4xMjowMDowMCBBTTwvcmRvbW1pbj4NCiAgICAgICAgICAgIDxyZG9tbWF4PjUvMjIv +MjAxNSA5OjE4OjU0IEFNPC9yZG9tbWF4Pg0KICAgICAgICAgIDwvcmRvbT4NCiAgICAgICAgPC9h +dHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmw+ +U0hBUEVfTGVuZ3RoPC9hdHRybGFibD4NCiAgICAgICAgPGF0dHJkZWY+TGVuZ3RoIG9mIGZlYXR1 +cmUgaW4gaW50ZXJuYWwgdW5pdHMuPC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRlZnM+RXNyaTwv +YXR0cmRlZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8cmRvbT4NCiAgICAgICAg +ICAgIDxyZG9tbWluPjAuMDA5Njk2NjgxMzU2MjA0NDI8L3Jkb21taW4+DQogICAgICAgICAgICA8 +cmRvbW1heD4xNTYuMTA2Mzk0ODkzNTY0PC9yZG9tbWF4Pg0KICAgICAgICAgIDwvcmRvbT4NCiAg +ICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICA8L2RldGFpbGVkPg0KICAgIDxk +ZXRhaWxlZD4NCiAgICAgIDxlbnR0eXA+DQogICAgICAgIDxlbnR0eXBsPldCREhVMiwgV0JESFU0 +LCBXQkRIVTYsIFdCREhVOCwgV0JESFUxMCwgV0JESFUxMiwgV0JESFUxNCwgV0JESFUxNiwgTldJ +U0RyYWluYWdlQXJlYSwgTm9uQ29udHJpYnV0aW5nRHJhaW5hZ2VBcmVhPC9lbnR0eXBsPg0KICAg +ICAgICA8ZW50dHlwZD5UaGUgZm9sbG93aW5nIGF0dHJpYnV0ZSBmaWVsZCBpcyBjb21tb24gdG8g +YWxsIHBvbHlnb24gZmVhdHVyZSBjbGFzc2VzIHdpdGhpbiB0aGUgV0JEIDwvZW50dHlwZD4NCiAg +ICAgICAgPGVudHR5cGRzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUg +TmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQ8L2VudHR5cGRzPg0KICAgICAgPC9l +bnR0eXA+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsPlNoYXBlX0FyZWE8L2F0dHJs +YWJsPg0KICAgICAgICA8YXR0cmRlZj5BcmVhIG9mIGZlYXR1cmUgaW4gaW50ZXJuYWwgdW5pdHMg +c3F1YXJlZC48L2F0dHJkZWY+DQogICAgICAgIDxhdHRyZGVmcz5Fc3JpPC9hdHRyZGVmcz4NCiAg +ICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDxyZG9tPg0KICAgICAgICAgICAgPHJkb21taW4+ +MS40ODc3NjM1MTc5MzM5RS0wNjwvcmRvbW1pbj4NCiAgICAgICAgICAgIDxyZG9tbWF4PjkuNzky +OTkzMTAyMjk4MDg8L3Jkb21tYXg+DQogICAgICAgICAgPC9yZG9tPg0KICAgICAgICA8L2F0dHJk +b212Pg0KICAgICAgPC9hdHRyPg0KICAgIDwvZGV0YWlsZWQ+DQogICAgPGRldGFpbGVkPg0KICAg +ICAgPGVudHR5cD4NCiAgICAgICAgPGVudHR5cGw+V0JESFUyLCBXQkRIVTQsIFdCREhVNiwgV0JE +SFU4LCBXQkRIVTEwLCBXQkRIVTEyLCBXQkRIVTE0LCBXQkRIVTE2PC9lbnR0eXBsPg0KICAgICAg +ICA8ZW50dHlwZD5UaGUgZm9sbG93aW5nIGF0dHJpYnV0ZSBmaWVsZHMgYXJlIGNvbW1vbiB0byB0 +aGUgV0JEIGh5ZHJvbG9naWMgdW5pdCBwb2x5Z29uIGRhdGFzZXRzPC9lbnR0eXBkPg0KICAgICAg +ICA8ZW50dHlwZHM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRp +b25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldDwvZW50dHlwZHM+DQogICAgICA8L2VudHR5 +cD4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmw+R05JU19JRDwvYXR0cmxhYmw+DQog +ICAgICAgIDxhdHRyZGVmPkdOSVNfSUQgaXMgYSBwcmVhc3NpZ25lZCBudW1lcmljIGZpZWxkIHRo +YXQgdXNlcyBhIHVuaXF1ZSBudW1iZXIgdG8gcmVsYXRlIHRoZSBuYW1lIG9mIHRoZSBoeWRyb2xv +Z2ljIHVuaXQgdG8gdGhlIEdOSVMgbmFtZXMgZGF0YWJhc2UuPC9hdHRyZGVmPg0KICAgICAgICA8 +YXR0cmRlZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25h +bCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvYXR0cmRlZnM+DQogICAgICAgIDxh +dHRyZG9tdj4NCiAgICAgICAgICA8Y29kZXNldGQ+DQogICAgICAgICAgICA8Y29kZXNldG4+R2Vv +Z3JhcGhpYyBOYW1lcyBJbmZvcm1hdGlvbiBTeXN0ZW0gKEdOSVMpPC9jb2Rlc2V0bj4NCiAgICAg +ICAgICAgIDxjb2Rlc2V0cz5HTklTIChodHRwOi8vZ25pcy51c2dzLmdvdi8pPC9jb2Rlc2V0cz4N +CiAgICAgICAgICA8L2NvZGVzZXRkPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRy +Pg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5BcmVhQWNyZXM8L2F0dHJsYWJsPg0K +ICAgICAgICA8YXR0cmRlZj5UaGUgYXJlYSBvZiBlYWNoIGh5ZHJvbG9naWMgdW5pdCBpbmNsdWRp +bmcgbm9uLWNvbnRyaWJ1dGluZyBhcmVhcyBzdG9yZWQgaW4gYWNyZXMNCkFyZWFBY3JlcyBpcyBj +b21tb24gdG8gYWxsIHBvbHlnb24gZmVhdHVyZSBjbGFzc2VzIGFuZCBpcyBjYWxjdWxhdGVkIGF0 +IHRoZSAxMi1kaWdpdCBoeWRyb2xvZ2ljIHVuaXQgZnJvbSB0aGUgaW50cmluc2ljIGFyZWEgdmFs +dWUgbWFpbnRhaW5lZCBieSB0aGUgR0lTIHNvZnR3YXJlOyB0aGVyZWZvcmUsIGFjcmVhZ2UgdmFs +dWVzIG1heSB2YXJ5IGZyb20gdXNlciBjYWxjdWxhdGlvbnMsIGRlcGVuZGluZyBvbiB0aGUgcHJv +amVjdGlvbiBvZiB0aGUgZGF0YS4gTm9ydGggQW1lcmljYW4gQWxiZXJzIEVxdWFsIEFyZWEgQ29u +aWMsIE5vcnRoIEFtZXJpY2FuIERhdHVtIDE5ODMgaXMgdGhlIHJlcXVpcmVkIHByb2plY3Rpb24g +dG8gdXNlIGZvciBjYWxjdWxhdGlvbi4gSWYgdGhlIHVuaXRzIG9mIHRoZSBhcmVhIGZpZWxkIGFy +ZSBzdG9yZWQgaW4gc3F1YXJlIG1ldGVycywgdGhlbiB1c2UgdGhlIGNvbnZlcnNpb24gZmFjdG9y +IDAuMDAwMjQ3MS4gRm9yIGV4YW1wbGUsIDQwLDQ2OSw0NDYgc3F1YXJlIG1ldGVycyBtdWx0aXBs +aWVkIGJ5IDAuMDAwMjQ3MSA9MTAsMDAwIGFjcmVzPC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRl +ZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBXYXRl +cnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvYXR0cmRlZnM+DQogICAgICAgIDxhdHRyZG9t +dj4NCiAgICAgICAgICA8cmRvbT4NCiAgICAgICAgICAgIDxyZG9tbWluPjA8L3Jkb21taW4+DQog +ICAgICAgICAgICA8cmRvbW1heD41MDAwMDAwMDwvcmRvbW1heD4NCiAgICAgICAgICAgIDxhdHRy +dW5pdD5hY3JlczwvYXR0cnVuaXQ+DQogICAgICAgICAgPC9yZG9tPg0KICAgICAgICA8L2F0dHJk +b212Pg0KICAgICAgPC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5BcmVh +U3FLbTwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRyZGVmPlRoZSBhcmVhIG9mIGVhY2ggaHlkcm9s +b2dpYyB1bml0IGluY2x1ZGluZyBub24tY29udHJpYnV0aW5nIGFyZWFzIHN0b3JlZCBpbiBzcXVh +cmUga2lsb21ldGVycy4NCkFyZWFTcUttIGlzIGNhbGN1bGF0ZWQgYXQgdGhlIDEyLWRpZ2l0IGh5 +ZHJvbG9naWMgdW5pdCBmcm9tIHRoZSBpbnRyaW5zaWMgYXJlYSB2YWx1ZSBtYWludGFpbmVkIGJ5 +IHRoZSBHSVMgc29mdHdhcmU7IHRoZXJlZm9yZSwgdGhlIHNxdWFyZSBraWxvbWV0ZXIgdmFsdWVz +IG1heSB2YXJ5IGZyb20gdXNlciBjYWxjdWxhdGlvbnMsIGRlcGVuZGluZyBvbiB0aGUgcHJvamVj +dGlvbiBvZiB0aGUgZGF0YS4gTm9ydGggQW1lcmljYW4gQWxiZXJzIEVxdWFsIEFyZWEgQ29uaWMs +IE5vcnRoIEFtZXJpY2FuIERhdHVtIDE5ODMgaXMgdGhlIGRlZmF1bHQgcHJvamVjdGlvbi48L2F0 +dHJkZWY+DQogICAgICAgIDxhdHRyZGVmcz5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJl +cyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0IChXQkQpPC9hdHRy +ZGVmcz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDxyZG9tPg0KICAgICAgICAgICAg +PHJkb21taW4+MDwvcmRvbW1pbj4NCiAgICAgICAgICAgIDxyZG9tbWF4PjEwMDAwMDwvcmRvbW1h +eD4NCiAgICAgICAgICAgIDxhdHRydW5pdD5zcXVhcmUga2lsb21ldGVyczwvYXR0cnVuaXQ+DQog +ICAgICAgICAgPC9yZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0KICAg +ICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5TdGF0ZXM8L2F0dHJsYWJsPg0KICAgICAgICA8 +YXR0cmRlZj5UaGUgU3RhdGVzIG9yIG91dGx5aW5nIGFyZWEgYXR0cmlidXRlIGlkZW50aWZpZXMg +dGhlIFN0YXRlKHMpIG9yIG91dGx5aW5nIGFyZWFzIHRoYXQgdGhlIGh5ZHJvbG9naWMgdW5pdCBm +YWxscyB3aXRoaW4gb3IgdG91Y2hlcy4gV2lsbCBiZSBwb3B1bGF0ZWQgd2l0aCB0aGUgMiBjaGFy +YWN0ZXIgc3RhdGUgYWJicmV2aWF0aW9uIG9yIG91dGx5aW5nIGFyZWEgYXR0cmlidXRlIGZvciBl +YWNoIGFyZWEgdGhhdCB0aGUgdW5pdCBmYWxscyB3aXRoaW4gaW4gYWxwaGFiZXRpY2FsIG9yZGVy +LjwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9j +ZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8 +L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPGNvZGVzZXRkPg0KICAg +ICAgICAgICAgPGNvZGVzZXRuPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0 +aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2NvZGVzZXRuPg0K +ICAgICAgICAgICAgPGNvZGVzZXRzPlNlY3Rpb24gNjogR2Vvc3BhdGlhbCBEYXRhIFN0cnVjdHVy +ZSBhbmQgQXR0cmlidXRlcyBodHRwOi8vcHVicy51c2dzLmdvdi90bS8xMS9hMy8pPC9jb2Rlc2V0 +cz4NCiAgICAgICAgICA8L2NvZGVzZXRkPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9h +dHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5OYW1lPC9hdHRybGFibD4NCiAg +ICAgICAgPGF0dHJkZWY+TmFtZSByZWZlcnMgdG8gdGhlIEdOSVMgbmFtZSBmb3IgdGhlIGdlb2dy +YXBoaWMgYXJlYSBpbiB3aGljaCB0aGUgaHlkcm9sb2dpYyB1bml0IGlzIGxvY2F0ZWQuPC9hdHRy +ZGVmPg0KICAgICAgICA8YXR0cmRlZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMg +Zm9yIHRoZSBOYXRpb25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvYXR0cmRl +ZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8Y29kZXNldGQ+DQogICAgICAgICAg +ICA8Y29kZXNldG4+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRp +b25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvY29kZXNldG4+DQogICAgICAg +ICAgICA8Y29kZXNldHM+U2VjdGlvbiA2OiBHZW9zcGF0aWFsIERhdGEgU3RydWN0dXJlIGFuZCBB +dHRyaWJ1dGVzIChodHRwOi8vcHVicy51c2dzLmdvdi90bS8xMS9hMy8pPC9jb2Rlc2V0cz4NCiAg +ICAgICAgICA8L2NvZGVzZXRkPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0K +ICAgIDwvZGV0YWlsZWQ+DQogICAgPGRldGFpbGVkPg0KICAgICAgPGVudHR5cD4NCiAgICAgICAg +PGVudHR5cGw+V0JESFUxMCwgV0JESFUxMiwgV0JESFUxNCwgV0JESFUxNjwvZW50dHlwbD4NCiAg +ICAgICAgPGVudHR5cGQ+VGhlIGZvbGxvd2luZyBhdHRyaWJ1dGUgZmllbGRzIGFyZSBjb21tb24g +dG8gdGhlIDEwLWRpZ2l0LCAxMi1kaWdpdCwgMTQtZGlnaXQgYW5kIDE2LWRpZ2l0IFdCRCBwb2x5 +Z29uIGRhdGFzZXRzPC9lbnR0eXBkPg0KICAgICAgICA8ZW50dHlwZHM+RmVkZXJhbCBTdGFuZGFy +ZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0 +YXNldDwvZW50dHlwZHM+DQogICAgICA8L2VudHR5cD4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8 +YXR0cmxhYmw+SFVUeXBlPC9hdHRybGFibD4NCiAgICAgICAgPGF0dHJkZWY+VGhlIDEyLWRpZ2l0 +IGh5ZHJvbG9naWMgdW5pdCB0eXBlIGF0dHJpYnV0ZSBpcyB0aGUgc2luZ2xlLWxldHRlciBhYmJy +ZXZpYXRpb24gZm9yIFdhdGVyc2hlZCB0eXBlIGZyb20gdGhlIGxpc3Qgb2Ygb2ZmaWNpYWwgbmFt +ZXMgcHJvdmlkZWQgaW4gdGhlIFdCRCBTdGFuZGFyZHMuPC9hdHRyZGVmPg0KICAgICAgICA8YXR0 +cmRlZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBX +YXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvYXR0cmRlZnM+DQogICAgICAgIDxhdHRy +ZG9tdj4NCiAgICAgICAgICA8Y29kZXNldGQ+DQogICAgICAgICAgICA8Y29kZXNldG4+RmVkZXJh +bCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBXYXRlcnNoZWQgQm91 +bmRhcnkgRGF0YXNldCAoV0JEKTwvY29kZXNldG4+DQogICAgICAgICAgICA8Y29kZXNldHM+U2Vj +dGlvbiA2OiBHZW9zcGF0aWFsIERhdGEgU3RydWN0dXJlIGFuZCBBdHRyaWJ1dGVzIChodHRwOi8v +cHVicy51c2dzLmdvdi90bS8xMS9hMy8pPC9jb2Rlc2V0cz4NCiAgICAgICAgICA8L2NvZGVzZXRk +Pg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAg +ICAgIDxhdHRybGFibD5IVU1vZDwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRyZGVmPlRoZSBoeWRy +b2xvZ2ljIHVuaXQgbW9kaWZpY2F0aW9uIGF0dHJpYnV0ZSBpcyBhIHR3by1jaGFyYWN0ZXIsIHVw +cGVyY2FzZSBhYmJyZXZpYXRpb24ocykgZm9yIGVpdGhlciAoMSkgdGhlIHR5cGUgb2YgbW9kaWZp +Y2F0aW9uIHRvIG5hdHVyYWwgb3ZlcmxhbmQgZmxvdyB0aGF0IGFsdGVycyB0aGUgbmF0dXJhbCBk +ZWxpbmVhdGlvbiBvZiBhIGh5ZHJvbG9naWMgdW5pdCBvciAoMikgdGhlIHNwZWNpYWwgY29uZGl0 +aW9ucyBHRi1ncm91bmR3YXRlciBmbG93LCBHTC1nbGFjaWVyLCBJRi1pY2UgZmllbGQsIEtBLWth +cnN0LCBhbmQgTkMtbm9uY29udHJpYnV0aW5nIGFyZWEuIFRoZSB2YWx1ZSBvZiB0aGUgSFVNb2Qg +ZmllbGQgaGVscHMgdG8gaW5kaWNhdGUgd2hlcmUgdGhlIG1vZGlmaWNhdGlvbiB0byB0aGUgaHlk +cm9sb2dpYyB1bml0IGlzIGxvY2F0ZWQuIElmIG1vcmUgdGhhbiBvbmUgYWJicmV2aWF0aW9uIGlz +IHVzZWQsIHRoZSB3aWxsIGJlIHNlcGFyYXRlZCBieSBjb21tYXMgd2l0aG91dCBzcGFjZXMgYW5k +IGxpc3RlZCBmcm9tIG1vc3QgdG8gbGVhc3QgcHJlZG9taW5hbnQuPC9hdHRyZGVmPg0KICAgICAg +ICA8YXR0cmRlZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRp +b25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvYXR0cmRlZnM+DQogICAgICAg +IDxhdHRyZG9tdj4NCiAgICAgICAgICA8Y29kZXNldGQ+DQogICAgICAgICAgICA8Y29kZXNldG4+ +RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBXYXRlcnNo +ZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvY29kZXNldG4+DQogICAgICAgICAgICA8Y29kZXNl +dHM+U2VjdGlvbiA2OiBHZW9zcGF0aWFsIERhdGEgU3RydWN0dXJlIGFuZCBBdHRyaWJ1dGVzICho +dHRwOi8vcHVicy51c2dzLmdvdi90bS8xMS9hMy8pPC9jb2Rlc2V0cz4NCiAgICAgICAgICA8L2Nv +ZGVzZXRkPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0KICAgIDwvZGV0YWls +ZWQ+DQogICAgPGRldGFpbGVkPg0KICAgICAgPGVudHR5cD4NCiAgICAgICAgPGVudHR5cGw+V0JE +SFUxMiwgV0JESFUxNCwgV0JESFUxNiwgTldJU0RyYWluYWdlQXJlYSBhbmQgTm9uQ29udHJpYnV0 +aW5nRHJhaW5hZ2VBcmVhPC9lbnR0eXBsPg0KICAgICAgICA8ZW50dHlwZD5UaGUgZm9sbG93aW5n +IGF0dHJpYnV0ZSBmaWVsZHMgYXJlIGNvbW1vbiB0byB0aGUgMTItZGlnaXQsIDE0LWRpZ2l0IGFu +ZCAxNi1kaWdpdCBXQkQgcG9seWdvbiBkYXRhc2V0cyBhcyB3ZWxsIGFzIHRoZSBOV0lTRHJhaW5h +Z2VBcmVhLCBhbmQgTm9uQ29udHJpYnV0aW5nRHJhaW5hZ2VBcmVhIHBvbHlnb24gZGF0YXNldHM8 +L2VudHR5cGQ+DQogICAgICAgIDxlbnR0eXBkcz5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2Vk +dXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0PC9lbnR0eXBk +cz4NCiAgICAgIDwvZW50dHlwPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5Ob25D +b250cmlidXRpbmdBcmVhQWNyZXM8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5UaGUgbm9u +Y29udHJpYnV0aW5nIGFyZWEgYXR0cmlidXRlIHJlcHJlc2VudHMgdGhlIGFyZWEsIGluIGFjcmVz +LCBvZiBoeWRyb2xvZ2ljIHVuaXRzIHRoYXQgZG8gbm90IGNvbnRyaWJ1dGUgdG8gZG93bnN0cmVh +bSBhY2N1bXVsYXRpb24gb2Ygc3RyZWFtZmxvdyB1bmRlciBub3JtYWwgZmxvdyBjb25kaXRpb25z +LjwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9j +ZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8 +L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPHJkb20+DQogICAgICAg +ICAgICA8cmRvbW1pbj4wPC9yZG9tbWluPg0KICAgICAgICAgICAgPHJkb21tYXg+NTAwMDAwMDA8 +L3Jkb21tYXg+DQogICAgICAgICAgPC9yZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAg +PC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5Ob25Db250cmlidXRpbmdB +cmVhU3FLbTwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRyZGVmPlRoZSBub25jb250cmlidXRpbmcg +YXJlYSBhdHRyaWJ1dGUgcmVwcmVzZW50cyB0aGUgYXJlYSwgaW4gc3F1YXJlIGtpbG9tZXRlcnMs +IG9mIGh5ZHJvbG9naWMgdW5pdHMgdGhhdCBkbyBub3QgY29udHJpYnV0ZSB0byBkb3duc3RyZWFt +IGFjY3VtdWxhdGlvbiBvZiBzdHJlYW1mbG93IHVuZGVyIG5vcm1hbCBmbG93IGNvbmRpdGlvbnMu +PC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRlZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2Nl +ZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwv +YXR0cmRlZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8cmRvbT4NCiAgICAgICAg +ICAgIDxyZG9tbWluPjA8L3Jkb21taW4+DQogICAgICAgICAgICA8cmRvbW1heD4xMDAwMDA8L3Jk +b21tYXg+DQogICAgICAgICAgPC9yZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9h +dHRyPg0KICAgIDwvZGV0YWlsZWQ+DQogICAgPG92ZXJ2aWV3Pg0KICAgICAgPGVhb3Zlcj5UaGUg +V2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgaXMgYSBjb21wcmVoZW5zaXZlIHNldCBvZiBkaWdp +dGFsIHNwYXRpYWwgZGF0YSB0aGF0IHJlcHJlc2VudHMgdGhlIHN1cmZhY2UgZHJhaW5hZ2VzIGFy +ZWFzIG9mIHRoZSBVbml0ZWQgU3RhdGVzLiBUaGUgaW5mb3JtYXRpb24gaW5jbHVkZWQgd2l0aCB0 +aGUgZmVhdHVyZXMgaW5jbHVkZXMgYSBmZWF0dXJlIGRhdGUsIGEgdW5pcXVlIGNvbW1vbiBpZGVu +dGlmaWVyLCBuYW1lLCB0aGUgZmVhdHVyZSBsZW5ndGggb3IgYXJlYSwgYW5kIG90aGVyIGNoYXJh +Y3RlcmlzdGljcy4gTmFtZXMgYW5kIHRoZWlyIGlkZW50aWZpZXJzIGFyZSBhc3NpZ25lZCBmcm9t +IHRoZSBHZW9ncmFwaGljIE5hbWVzIEluZm9ybWF0aW9uIFN5c3RlbS4gVGhlIGRhdGEgYWxzbyBj +b250YWlucyByZWxhdGlvbnMgdGhhdCBlbmNvZGUgbWV0YWRhdGEuIFRoZSBuYW1lcyBhbmQgZGVm +aW5pdGlvbnMgb2YgYWxsIHRoZXNlIGZlYXR1cmUgYXR0cmlidXRlcyBhcmUgaW4gdGhlIEZlZGVy +YWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJv +dW5kYXJ5IERhdGFzZXQgKFdCRCkuIFRoZSBkb2N1bWVudCBpcyBhdmFpbGFibGUgb25saW5lIGF0 +IGh0dHA6Ly9wdWJzLnVzZ3MuZ292L3RtLzExL2EzLy48L2Vhb3Zlcj4NCiAgICAgIDxlYWRldGNp +dD5UaGUgbmFtZXMgYW5kIGRlZmluaXRpb25zIG9mIGFsbCBmaWVsZHMgd2l0aGluIHRoZSBXQkQg +YXR0cmlidXRpb24gYXJlIGluIHRoZSBVLlMuIEdlb2xvZ2ljYWwgU3VydmV5LCBGZWRlcmFsIFN0 +YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFy +eSBEYXRhc2V0IChXQkQpLiBUaGUgZG9jdW1lbnQgaXMgYXZhaWxhYmxlIG9ubGluZSBhdCBodHRw +Oi8vcHVicy51c2dzLmdvdi90bS8xMS9hMy8uIEluZm9ybWF0aW9uIGFib3V0IHRoZSBhdHRyaWJ1 +dGUgdGFibGVzIGFuZCBmaWVsZHMgYXJlIGluIFNlY3Rpb24gNjogR2Vvc3BhdGlhbCBEYXRhIFN0 +cnVjdHVyZSBhbmQgQXR0cmlidXRlczwvZWFkZXRjaXQ+DQogICAgPC9vdmVydmlldz4NCiAgPC9l +YWluZm8+DQogIDxkaXN0aW5mbz4NCiAgICA8ZGlzdHJpYj4NCiAgICAgIDxjbnRpbmZvPg0KICAg +ICAgICA8Y250b3JncD4NCiAgICAgICAgICA8Y250b3JnPlUuUy4gR2VvbG9naWNhbCBTdXJ2ZXk8 +L2NudG9yZz4NCiAgICAgICAgPC9jbnRvcmdwPg0KICAgICAgICA8Y250YWRkcj4NCiAgICAgICAg +ICA8YWRkcnR5cGU+TWFpbGluZzwvYWRkcnR5cGU+DQogICAgICAgICAgPGFkZHJlc3M+VS5TLiBH +ZW9sb2dpY2FsIFN1cnZleSwgTmF0aW9uYWwgR2Vvc3BhdGlhbCBUZWNobmljYWwgT3BlcmF0aW9u +cyBDZW50ZXIsIFAuTy4gQm94IDI1MDQ2PC9hZGRyZXNzPg0KICAgICAgICAgIDxjaXR5PkRlbnZl +cjwvY2l0eT4NCiAgICAgICAgICA8c3RhdGU+Q088L3N0YXRlPg0KICAgICAgICAgIDxwb3N0YWw+ +ODAyMjU8L3Bvc3RhbD4NCiAgICAgICAgPC9jbnRhZGRyPg0KICAgICAgICA8Y250dm9pY2U+MS04 +NzctMjc1LTg3NDc8L2NudHZvaWNlPg0KICAgICAgICA8Y250ZW1haWw+YnBnZW9AdXNncy5nb3Y8 +L2NudGVtYWlsPg0KICAgICAgPC9jbnRpbmZvPg0KICAgIDwvZGlzdHJpYj4NCiAgICA8ZGlzdGxp +YWI+VGhlIGRpc3RyaWJ1dG9yIHNoYWxsIG5vdCBiZSBoZWxkIGxpYWJsZSBmb3IgaW1wcm9wZXIg +b3IgaW5jb3JyZWN0IHVzZSBvZiB0aGlzIGRhdGEsIGJhc2VkIG9uIHRoZSBkZXNjcmlwdGlvbiBv +ZiBhcHByb3ByaWF0ZS9pbmFwcHJvcHJpYXRlIHVzZXMgZGVzY3JpYmVkIGluIHRoaXMgbWV0YWRh +dGEgZG9jdW1lbnQuIEl0IGlzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRoYXQgdGhpcyBkYXRhIGlz +IGRpcmVjdGx5IGFjcXVpcmVkIGZyb20gdGhlIGRpc3RyaWJ1dG9yIGFuZCBub3QgaW5kaXJlY3Rs +eSB0aHJvdWdoIG90aGVyIHNvdXJjZXMgd2hpY2ggbWF5IGhhdmUgY2hhbmdlZCB0aGUgZGF0YSBp +biBzb21lIHdheS4gVGhlIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0IGlzIHB1YmxpYyBpbmZv +cm1hdGlvbiBhbmQgbWF5IGJlIGludGVycHJldGVkIGJ5IGFsbCBvcmdhbml6YXRpb25zLCBhZ2Vu +Y2llcywgdW5pdHMgb2YgZ292ZXJubWVudCwgb3Igb3RoZXJzIGJhc2VkIG9uIG5lZWRzOyBob3dl +dmVyLCB0aGV5IGFyZSByZXNwb25zaWJsZSBmb3IgdGhlIGFwcHJvcHJpYXRlIGFwcGxpY2F0aW9u +IG9mIHRoZSBkYXRhLiBGZWRlcmFsLCBTdGF0ZSwgb3IgbG9jYWwgcmVndWxhdG9yeSBib2RpZXMg +YXJlIG5vdCB0byByZWFzc2lnbiB0byB0aGUgVS5TLiBEZXBhcnRtZW50IG9mIEFncmljdWx0dXJl +LU5hdHVyYWwgUmVzb3VyY2VzIENvbnNlcnZhdGlvbiBTZXJ2aWNlIG9yIHRoZSBVLlMuIEdlb2xv +Z2ljYWwgU3VydmV5IGFueSBhdXRob3JpdHkgZm9yIHRoZSBkZWNpc2lvbnMgdGhleSBtYWtlLiAg +UGhvdG9ncmFwaGljIG9yIGRpZ2l0YWwgZW5sYXJnZW1lbnQgb2YgdGhlc2UgbWFwcyB0byBzY2Fs +ZXMgZ3JlYXRlciB0aGFuIHRoYXQgYXQgd2hpY2ggdGhleSB3ZXJlIG9yaWdpbmFsbHkgZGVsaW5l +YXRlZCBjYW4gcmVzdWx0IGluIG1pc3JlcHJlc2VudGF0aW9uIG9mIHRoZSBkYXRhLiAgSWYgZW5s +YXJnZWQsIHRoZSBtYXBzIHdpbGwgbm90IGluY2x1ZGUgdGhlIGZpbmUgZGV0YWlsIHRoYXQgd291 +bGQgYmUgYXBwcm9wcmlhdGUgZm9yIG1hcHBpbmcgYXQgdGhlIHNtYWxsIHNjYWxlLiAgRGlnaXRh +bCBkYXRhIGZpbGVzIGFyZSBwZXJpb2RpY2FsbHkgdXBkYXRlZC4gRmlsZXMgYXJlIGRhdGVkLCBh +bmQgdXNlcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBvYnRhaW5pbmcgdGhlIGxhdGVzdCB2ZXJzaW9u +IG9mIHRoZSBkYXRhIGZyb20gdGhlIHNvdXJjZSBkaXN0cmlidXRvci48L2Rpc3RsaWFiPg0KICAg +IDxzdGRvcmRlcj4NCiAgICAgIDxkaWdmb3JtPg0KICAgICAgICA8ZGlndGluZm8+DQogICAgICAg +ICAgPGZvcm1uYW1lPlZlY3RvciBEaWdpdGFsIERhdGEgU2V0IChQb2x5Z29uKTwvZm9ybW5hbWU+ +DQogICAgICAgIDwvZGlndGluZm8+DQogICAgICAgIDxkaWd0b3B0Pg0KICAgICAgICAgIDxvbmxp +bm9wdD4NCiAgICAgICAgICAgIDxjb21wdXRlcj4NCiAgICAgICAgICAgICAgPG5ldHdvcmthPg0K +ICAgICAgICAgICAgICAgIDxuZXR3b3Jrcj5mdHA6Ly9yb2NreWZ0cC5jci51c2dzLmdvdi92ZGVs +aXZlcnkvRGF0YXNldHMvU3RhZ2VkL0h5ZHJvZ3JhcGh5L1dCRC9OYXRpb25hbC9HREIvTmF0aW9u +YWxfV0JELnppcDwvbmV0d29ya3I+DQogICAgICAgICAgICAgIDwvbmV0d29ya2E+DQogICAgICAg +ICAgICA8L2NvbXB1dGVyPg0KICAgICAgICAgIDwvb25saW5vcHQ+DQogICAgICAgIDwvZGlndG9w +dD4NCiAgICAgIDwvZGlnZm9ybT4NCiAgICAgIDxmZWVzPk5vbmUuIE5vIGZlZXMgYXJlIGFwcGxp +Y2FibGUgZm9yIG9idGFpbmluZyB0aGUgZGF0YSBzZXQuPC9mZWVzPg0KICAgIDwvc3Rkb3JkZXI+ +DQogIDwvZGlzdGluZm8+DQogIDxtZXRhaW5mbz4NCiAgICA8bWV0ZD4yMDE2MDcyNzwvbWV0ZD4N +CiAgICA8bWV0Yz4NCiAgICAgIDxjbnRpbmZvPg0KICAgICAgICA8Y250cGVycD4NCiAgICAgICAg +ICA8Y250cGVyPldCRCBQb2ludCBvZiBDb250YWN0PC9jbnRwZXI+DQogICAgICAgICAgPGNudG9y +Zz5VLlMuIEdlb2xvZ2ljYWwgU3VydmV5PC9jbnRvcmc+DQogICAgICAgIDwvY250cGVycD4NCiAg +ICAgICAgPGNudGFkZHI+DQogICAgICAgICAgPGFkZHJ0eXBlPk1haWxpbmc8L2FkZHJ0eXBlPg0K +ICAgICAgICAgIDxhZGRyZXNzPlUuUy4gR2VvbG9naWNhbCBTdXJ2ZXksIE5hdGlvbmFsIEdlb3Nw +YXRpYWwgVGVjaG5pY2FsIE9wZXJhdGlvbnMgQ2VudGVyLCBQLk8uIEJveCAyNTA0NjwvYWRkcmVz +cz4NCiAgICAgICAgICA8Y2l0eT5EZW52ZXI8L2NpdHk+DQogICAgICAgICAgPHN0YXRlPkNPPC9z +dGF0ZT4NCiAgICAgICAgICA8cG9zdGFsPjgwMjI1PC9wb3N0YWw+DQogICAgICAgIDwvY250YWRk +cj4NCiAgICAgICAgPGNudHZvaWNlPjEtODc3LTI3NS04NzQ3PC9jbnR2b2ljZT4NCiAgICAgICAg +PGNudGVtYWlsPmJwZ2VvQHVzZ3MuZ292PC9jbnRlbWFpbD4NCiAgICAgIDwvY250aW5mbz4NCiAg +ICA8L21ldGM+DQogICAgPG1ldHN0ZG4+RkdEQyBDb250ZW50IFN0YW5kYXJkIGZvciBEaWdpdGFs +IEdlb3NwYXRpYWwgTWV0YWRhdGE8L21ldHN0ZG4+DQogICAgPG1ldHN0ZHY+RkdEQy1TVEQtMDAx +LTE5OTg8L21ldHN0ZHY+DQogIDwvbWV0YWluZm8+DQogIDxFc3JpPg0KICAgIDxTeW5jRGF0ZT4y +MDE3MDExMDwvU3luY0RhdGU+DQogICAgPFN5bmNUaW1lPjEwNTgwNjAwPC9TeW5jVGltZT4NCiAg +ICA8TW9kRGF0ZT4yMDE3MDExMDwvTW9kRGF0ZT4NCiAgICA8TW9kVGltZT4xMDU4MDYwMDwvTW9k +VGltZT4NCiAgPC9Fc3JpPg0KPC9tZXRhZGF0YT4=datasetEPSG6.5(3.0.1)0
diff --git a/book/tutorials/decision_trees/02.input/shape/bear.shx b/book/tutorials/decision_trees/02.input/shape/bear.shx new file mode 100644 index 0000000..6e7d848 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/bear.shx differ diff --git a/book/tutorials/decision_trees/02.input/shape/bear_merged.cpg b/book/tutorials/decision_trees/02.input/shape/bear_merged.cpg new file mode 100644 index 0000000..cd89cb9 --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/bear_merged.cpg @@ -0,0 +1 @@ +ISO-8859-1 \ No newline at end of file diff --git a/book/tutorials/decision_trees/02.input/shape/bear_merged.dbf b/book/tutorials/decision_trees/02.input/shape/bear_merged.dbf new file mode 100644 index 0000000..6a8b5da Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/bear_merged.dbf differ diff --git a/book/tutorials/decision_trees/02.input/shape/bear_merged.prj b/book/tutorials/decision_trees/02.input/shape/bear_merged.prj new file mode 100644 index 0000000..5ded4bc --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/bear_merged.prj @@ -0,0 +1 @@ +GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/book/tutorials/decision_trees/02.input/shape/bear_merged.shp b/book/tutorials/decision_trees/02.input/shape/bear_merged.shp new file mode 100644 index 0000000..df7794f Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/bear_merged.shp differ diff --git a/book/tutorials/decision_trees/02.input/shape/bear_merged.shx b/book/tutorials/decision_trees/02.input/shape/bear_merged.shx new file mode 100644 index 0000000..ca678d2 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/bear_merged.shx differ diff --git a/book/tutorials/decision_trees/02.input/shape/jordan.cpg b/book/tutorials/decision_trees/02.input/shape/jordan.cpg new file mode 100644 index 0000000..3ad133c --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/jordan.cpg @@ -0,0 +1 @@ +UTF-8 \ No newline at end of file diff --git a/book/tutorials/decision_trees/02.input/shape/jordan.dbf b/book/tutorials/decision_trees/02.input/shape/jordan.dbf new file mode 100644 index 0000000..9db3225 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/jordan.dbf differ diff --git a/book/tutorials/decision_trees/02.input/shape/jordan.prj b/book/tutorials/decision_trees/02.input/shape/jordan.prj new file mode 100644 index 0000000..5ded4bc --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/jordan.prj @@ -0,0 +1 @@ +GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/book/tutorials/decision_trees/02.input/shape/jordan.sbn b/book/tutorials/decision_trees/02.input/shape/jordan.sbn new file mode 100644 index 0000000..7ca7c04 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/jordan.sbn differ diff --git a/book/tutorials/decision_trees/02.input/shape/jordan.sbx b/book/tutorials/decision_trees/02.input/shape/jordan.sbx new file mode 100644 index 0000000..fb9c3b1 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/jordan.sbx differ diff --git a/book/tutorials/decision_trees/02.input/shape/jordan.shp b/book/tutorials/decision_trees/02.input/shape/jordan.shp new file mode 100644 index 0000000..e2a3962 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/jordan.shp differ diff --git a/book/tutorials/decision_trees/02.input/shape/jordan.shp.xml b/book/tutorials/decision_trees/02.input/shape/jordan.shp.xml new file mode 100644 index 0000000..472d3cd --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/jordan.shp.xml @@ -0,0 +1,2553 @@ +U.S. Geological Survey (USGS)U.S. Department of Agriculture - Natural Resource Conservation Service (NRCS)U.S. Environmental Protection Agency (EPA)Other Federal, State, and local partners (see dataset specific metadata for details http://nhd.usgs.gov/wbd_metadata.html)20151216National Watershed Boundary Dataset (WBD)Vector Digital Data Setftp://rockyftp.cr.usgs.gov/vdelivery/Datasets/Staged/Hydrography/WBD/National/GDB/National_WBD.zipThe Watershed Boundary Dataset (WBD) is a comprehensive aggregated collection of hydrologic unit data consistent with the national criteria for delineation and resolution. It defines the areal extent of surface water drainage to a point except in coastal or lake front areas where there could be multiple outlets as stated by the "Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)" “Standard” (http://pubs.usgs.gov/tm/11/a3/). Watershed boundaries are determined solely upon science-based hydrologic principles, not favoring any administrative boundaries or special projects, nor particular program or agency. This dataset represents the hydrologic unit boundaries to the 12-digit (6th level) for the entire United States. Some areas may also include additional subdivisions representing the 14- and 16-digit hydrologic unit (HU). At a minimum, the HUs are delineated at 1:24,000-scale in the conterminous United States, 1:25,000-scale in Hawaii, Pacific basin and the Caribbean, and 1:63,360-scale in Alaska, meeting the National Map Accuracy Standards (NMAS). Higher resolution boundaries are being developed where partners and data exist and will be incorporated back into the WBD. WBD data are delivered as a dataset of polygons and corresponding lines that define the boundary of the polygon. WBD polygon attributes include hydrologic unit codes (HUC), size (in the form of acres and square kilometers), name, downstream hydrologic unit code, type of watershed, non-contributing areas, and flow modifications. The HUC describes where the unit is in the country and the level of the unit. WBD line attributes contain the highest level of hydrologic unit for each boundary, line source information and flow modifications.The intent of defining Hydrologic Units (HU) within the Watershed Boundary Dataset is to establish a base-line drainage boundary framework, accounting for all land and surface areas. Hydrologic units are intended to be used as a tool for water-resource management and planning activities particularly for site-specific and localized studies requiring a level of detail provided by large-scale map information. The WBD complements the National Hydrography Dataset (NHD) and supports numerous programmatic missions and activities including: watershed management, rehabilitation and enhancement, aquatic species conservation strategies, flood plain management and flood prevention, water-quality initiatives and programs, dam safety programs, fire assessment and management, resource inventory and assessment, water data analysis and water census.The WBD was produced and is maintained through a cooperative process involving state, federal and local partners. Process information for a specific state or region can be found within the state specific metadata located at http://nhd.usgs.gov/wbd_metdata.html. This metadata file has information for WBD features contained in the WBD feature dataset. This includes information about the 2-, 4-, 6-, 8-, 10-, 12-, 14-, 16-digit polygons and WBD_Line dataset. Users accessing the WBD via shapefile will need to search for the attribution related to that specific dataset.19802016publication dateCompleteAs needed-179.229655487179.85667473571.4395725902-14.4246950943ISO 19115 Topic CategoryinlandWatersWatershed Boundary DatasetWBDHydrologic UnitsHydrologic Unit CodeHUCRegionSub-regionBasinSub-basinWatershedSubwatershed2-digit4-digit6-digit8-digit10-digit12-digit14-digit16-digitU.S. Department of Commerce, 1977, Countries, dependencies, areas of special sovereignty, and their principal administrative divisions (Federal Information Processing Standards 10-3): Washington, D.C., National Institute of Standards and Technology.USUnited StatesNoneThe distributor shall not be held liable for improper or incorrect use of this data, based on the description of appropriate/inappropriate uses described in this metadata document. It is strongly recommended that this data is directly acquired from the distributor and not indirectly through other sources which may have changed the data in some way. These data should not be used at scales greater than 1:24,000 for the purpose of identifying hydrographic watershed boundary feature locations in the United States. The Watershed Boundary Dataset is public information and may be interpreted by all organizations, agencies, units of government, or others based on needs; however, they are responsible for the appropriate application of the data. Photographic or digital enlargement of these maps to scales greater than that at which they were originally delineated can result in misrepresentation of the data. If enlarged, the maps will not include the fine detail that would be appropriate for mapping at the small scale. Digital data files are periodically updated and users are responsible for obtaining the latest version of the data from the source distributor. Acknowledgment of the origination agencies would be appreciated in products derived from these data.U.S. Geological SurveyMailing
U.S. Geological Survey, National Geospatial Technical Operations Center, P.O. Box 25046
DenverCO80225
1-877-275-8747bpgeo@usgs.gov
ftp://rockyftp.cr.usgs.gov/vdelivery/Datasets/Staged/Hydrography/WBD/National/GDB/National_WBD.jpgThumbnail JPG imageJPEGFunding for the Watershed Boundary Dataset (WBD) was provided by the USDA-NRCS, USGS and EPA along with other federal, state and local agenciesies. Representatives from many agencies contributed a substantial amount of time and salary towards quality review and updating of the dataset in order to meet the WBD Standards. Acknowledgment of the originating agencies would be appreciated in products derived from these data. See dataset specific metadata for further informationEnvironment as of Metadata Creation: Microsoft Windows 7 Version 6.1 (Build 7601) Service Pack 1; Esri ArcGIS 10.2.2 (Build 3552) Service Pack N/A (Build N/A)
All attempts were made to verify 100% of the initially required attributes using 24K digital raster graphics (DRGs) as the base. Additional datasets, like the Geographic Names Information System (GNIS) and NHD, may also have been used to verify attribution. The accuracy of this data is dependent on the level of detail of the source material and the interpretation procedures for capturing that source. Other sources and methods may have been used to create or update WBD data. In some cases, additional information may be found in the WBD Metadata table.Lines, polygons and nodes conform to topological rules. Lines intersect only at nodes, and all nodes anchor the ends of lines. Lines do not overshoot or undershoot other lines where they are supposed to meet. There are no duplicate lines. Lines bound polygons. Gaps and overlaps among polygons do not exist. All polygons close.The WBD contains completed polygons at every level for the United States. All required fields within the polygon and line datasets are populated. Some of these fields may be populated with a zeor "0". The lines coincident with the international boundary are assigned a HULevel value of 0. These cannot be attributed until the adjacent international units are added at which point the highest level of hydrologic unit can be determined. A detailed description of delineation methods and full attribute definitions can be found in the WBD Standards. Users are advised to carefully read the metadata record for additional details.The WBD was produced using a variety of digital spatial data including but not limited to Digital Raster Graphics (DRGs), aerial imagery and digital elevation models (DEM). It is assumed these data are mapped at approximately 1:24,000-scale and contain a minimum inherent error of +/- 40 feet. It should be noted that the WBD is undergoing continuous update as source data improves and as hydrologic interpretations are refined. While general rules of hydrology were used in delineation, locations of boundaries may be subjective in some cases. Additional information may be found in the WBD Metadata table.A formal accuracy assessment of the vertical positional information in the data set has either not been conducted, or is not applicable.U.S. Geological SurveyUnknown7.5 Minute Topographic Quadrangle SheetsPaper MapReston, VirginiaU.S. Geological Survey24000Digital and/or Hardcopy Resources18842006Publication dateUSGSTopoBase information for hydrologic unit delineation.U.S. Geological Survey1999U.S. Geological Survey Digital Raster Graphic (DRG)Raster Digital DataUnknownU.S. Geological Surveyhttp://datagateway.nrcs.usda.gov24000Digital and/or Hardcopy ResourcesUnknown1999Publication dateUSGSDRGBase information for hydrologic unit delineation.U.S. Geological SurveyUnknownDigital Orthophoto QuadsRaster Digital DataUnknownU.S. Geological Surveyhttp://datagateway.nrcs.usda.gov24000Digital and/or Hardcopy ResourcesUnknown20100325USGSDOQAerial imagery used for reference in watershed boundary delineationU.S. Geological Survey1994250K Hydrologic Unit BoundariesVector Digital DataReston, VirginiaU.S. Geological Surveyhttp://water.usgs.gov/lookup/getspatial?huc250k250000Digital and/or Hardcopy ResourcesUnknown1994Publication dateHUC250KReference dataset for the 2-, 4-, 6- and 8-digit hydrologic unitsU.S. Geological Survey2016National Hydrography DatasetVector Digital DataDenver, COU.S. Geological Surveyhttp://nhd.usgs.gov/data.html24000Digital and/or Hardcopy ResourcesunknownPublication dateNHDHydrography data used for reference in watershed boundary delineation processThe original hydrologic unit boundaries were hand-digitized on a digitizing table from the USGS 7.5 minute quadrangles. This process occurred over a span of approximately 20 years from 1980 to 2000.2000The original dataset was reviewed by USGS personnel using on-screen techniques with DRGs as the base map. All hydrologic units within the dataset that were less than 3,000 acres were dissolved out.2003The new WBD (2005-2011) was reviewed on-screen by USGS, EPA, or NRCS personnel using DRGs and DOQss as base maps. Hydrologic Units that were less than 10,000 acres (for the 12-digit units) and 40,000 acres (for the 10-digit units) were reviewed and if possible were dissolved out. Along the coastal areas, standard watersheds that fell within the federal guideline's size criteria (12-digit: 10,000-40,000 acres, 10-digit: 40,000-250,000 acres) were delineated. If possible the remaining frontals were left as their own units. Frontals that did not meet the size criteria were grouped together with other frontals within the overall 8-digit or 10-digit unit. Hydrologic units that were greater than 40,000 acres (12-digit units) and 250,000 acres (10-digit units) were reviewed. If possible these units where then subdivided into smaller units that met the size criteria. In some cases, additional breaks within the unit would not have made sense or have been very useful. For example: When the majority of the unit was made up by a major waterbody feature such as a lake or reservoir and the surrounding tributaries were too small to delineate as their own unit. In these instances the unit was left big.2011From 2005 to 2011, hydrologic units from surrounding states were used to edgematch watershed boundaries as they were developed.2011From 2005 to 2011, original dataset attribution was reviewed and revised to reflect the updates and changes made to the dataset. These revisions to the attribution were also made to ensure that the dataset met the Federal Standards for Delineation of Hydrologic Unit Boundaries. The NHD was used during this process to help with the naming and downstream coding of each unit. In some instances there were name discrepancies between the NHD and what was printed on the DRGs. In these instances the DRGs were used instead of the NHD.2011First draft of metadata created by NRCS using METADATA Editor in ArcCatalog ver. 9.1 sp.1 hu12_geo8320070124The following edits (2012 - present) were completed during national quality control review performed by the WBD national technical edit team in the USGS Utah Water Science Center. Updates may not affect all hydrologic units. + Edits by USGS Water Science Center in Salt Lake City, Utah. + 1. Reviewed all the ToHUC codes within the 12-digit polygons and made updates as necessary. All updates were coordinated and approved by WBD state stewards. + 2. Updated Linesource code (misspellings, removed extra spaces etc.) where needed to match Federal Standards + 3. Updated and corrected errors in the HU_Mod fields where needed to match Federal Standards. + 4. Updated State field for Canada (CN) and Mexico (MX) based on the new version of the Standards + 5. Reviewed all the Names related to each 10-digit and 12-digit polygon and made updates as necessary. All updates were coordinated and approved by the WBD State stewards + 6. Checked and updated HU_Level field where HU_Level = 99 or = null + 7. Updated the 8-digit outer boundary for units flowing into ocean units by extending the boundary offshore to the 3 nautical mile limit provided by NOAA. All updates were coordinated and approved by the WBD state stewards2016The following are 8-digit updates (from 2009-2016) that were approved by the WBD National Technical Coordinators as required by the WBD Standards. These may include name/code updates or boundary updates that were implemented in the WBD at some point during the creation or maintenance of the data. + Alaska: + Legacy 19020401 Anchorage boundary has changed by about 20% of its area. + 19020203 (Prince William Sound) + Added a new subbasin unit for Prince William Sound. + Adjusted huc8 boundaries between 19020104, 19020201 and 19020202 to better reflect surface water flow and to assist with delineating the Prince William Sound as a new unit. + Legacy 19020302 Upper Kenai Peninsula has changed by about 20% of its area. + Legacy 19030304 Wood River was subdivided which has created a reduced area for the 19030304 Wood River and put Igushik River into its own hydrologic unit with a new code of 19030306. + Legacy 19030402 Farewell Lake was divided into 19030406 Middle Flork Kuskokwim River and 19030407 South Fork Kuskokwim River. + Legacy 19040204 Black River was subdivided. 19040204 will remain the Black River, and a new unit 19040206 Grass River is broken out. + 19040502: + The outlet for subbasin 19040502 was moved downstream from the current break across Tanana River at a confluence with a minor tributary to the more prominent confluence with Robertson River. This edit resulted in the addition of 2 subwatersheds to 19040502 and the removal of 2 watersheds from 19040503. + Legacy 19040504 Delta River linework changed significantly. + The legacy 19040504 had 3 separate outlets; Delta River, Delta Creek and Little Delta River. + The boundary was adjusted so that 19040504 contained just the Delta River as a standard unit. + The Delta Creek and Little Delta River where moved into 19040507. + Legacy 19040507 Tanana Flats Linework changed significantly. + 19040606 - Legacy boundary for 19040606 had the outlet at a location across the Huslia River downstream from the outlet of the South Fork Huslia River. The boundary was adjusted downstream to the major confluence where the Huslia River drains into the Koyukuk River, thus creating a standard HUC8 for the Huslia River. + 1905: + 19050202, 19050203, 19050301, 19050304, 19050403 + 19050202’s boundary was adjusted so that this unit contained all frontal drainage areas flowing into the southern portion of Kotzebue Sound. + 19050203’s boundary was adjusted to that the unit included Eschscholtz Bay and all of the drainage areas flowing into it. + 19050301’s boundary was adjusted so that this unit has one outlet and includes Selawik Lake. The frontal drainages flowing into Hotham Inlet were moved into unit 19050304. + 19050304’s boundary was adjusted so that the unit included Hotham Inlet and the frontal drainages flowing into it. + 19050403’s boundary was adjusted to a buffer distance of 1000 meters off shore. + 19050500 - Kotzebue Sound: + Added a new HUC8 unit to AK WBD for Kotzebue Sound. Inner coastal units that ended at the shore line were extended offshore to a 1000 meter buffer distance. + Legacy 19060204 Ikpikpuk River absorbed Inaru River from Legacy 19060202 + Legacy unit 19060202 contained 2 different stream systems flowing into 2 different bodies of water. + The Inaru River flows into Admiralty Bay while the Kugrua River and the other small frontal drainages flows into the Chukchi Sea. + The boundary was adjusted so that flow into Admiralty Bay/Dease Inlet was separate from flow into Chukchi Sea. The Inaru River, Admiralty Bay/Dease Inlet and all associated frontal drainages were added to subbasin 19060204. + New Subbasin 19060206 is being named Admiralty Bay-Dease Inlet. This area use to be part of Subbasin 19060204 + 19020800 Cook Inlet is a new hydrologic unit as recommended by the Alaska in state stakeholders. + + 2011 - These updates where proposed by Forest Service partners within the Tongass National Forest. When major changes are made to the HUC8 container (i.e. the container is subdivided into multiple units) the national protocol has been to retire the old HUC8 code and name and assign new codes and names to the updates units + 19010202 (Kuiu-Kupreanof-Mitkof-Etolin-Zarembo-Wrangell) is being retired and 2 new HUC8 units were formed. + Kuiu Island, Mitkof Island and Kupreanof Island were split out into their own 8-digit unit + HUC8 - 19010210 + HU8_Name – Kuiu-Kupreanof-Mitkof Islands + Zarembo Island, Wrangell Island and Etolin Island were subdivided into their own 8 digit unit + HUC8 – 19010209 + HU8_Name – Etolin-Zarembo-Wrangell Islands + + 19010203 (Baranof-Chichagof Islands)19010203 was retired. 19010203 was subdivided 3 new units; 2 island units and 1 channel unit. + Chichagof Island was split out into its own 8-digit unit + HUC8 – 19010211 + HU8_Name – Chichagof Island + Baranof and Kruzof Islands were subdivided into their own 8-digit unit + HUC8 – 19010212 + HU8_Name – Baranof Island + Created a new water hydrologic unit for the channel between Chichagof Island and Baranof/Kruzof Islands. This new water unit would become a HUC10 unit within the "Water" subbasin 19010500. + HUC10 – 1901050011 + HUC10_Name - Peril Strait + Because of the varying width of the channel the boundary was graduated from a 1,000 meter buffer to 100 meter buffer from the Low Tide Shoreline. The Low Tide Shoreline was provided by the Forest Service. + A 1,000 meter buffer was used in the open channel to match the buffer distance used within the rest of SE AK WBD. There is a narrow portion of the channel where the boundary was gradually reduced from the 1,000 meter buffer to a 100 meter buffer. + + 2014 - Updated Alaska’s region 1904 based on a request from NHD program and approved by state partners. 1904 was subdivided 3 new 4-digit hydrologic units. + The new units are + 1907 – Upper Yukon River + 190701 – Headwaters Yukon River + 1908 – Middle Yukon River + 1909 – Lower Yukon River + + 2016 - Updates to AK 8-digit units based on harmonization effort with Canada + 19070504 (Eagle Creek-Yukon River) is being subdivided 2 new 8-digit hydrologic units. Original code and name are being retired. + HUC8 - 19070505 (Tatonduk River-Yukon River) + HUC8 - 19070506 (Charley River-Yukon River) + + 19060503 (Beaufort Lagoon) is being subdivided 3 new 8-digit hydrologic units. Original code and name are being retired. + HUC8 - 19060504 (Kongakuat River-Beaufort Lagoon) + HUC8 - 19060505 (Firth River) + HUC8 - 19060506 (Babbage River) is completely within Canada Yukon Territory + + Arizona: + Legacy 15010009 Fort Pierce Wash name changed to Fort Pearce Wash to account for misspell. + Legacy 15010007 Hualapai Wash name should change as the wash is now in the adjacent Subbasin. Changed to Red Lake + + California: + Legacy 18010109 Gualala-Salmon had an area the size of several 12-digit HUs that has been aggregated into the adjacent legacy 18050005 Tomales-Drake Bays as a result of coastal implementation. This is approved by the in-state WBD Steward and T3.Legacy 18030012 and new 18030012 Tulare-Buena Vista Lakes changed to Tulare Lake Bed as the boundary has changed so significantly that Buena Vista Lakes are no longer in the adjusted hydrologic unit. + Legacy 18040001 and new 18040007 name changed from Upper Chowchilla-Upper Fresno to Fresno River as the Chowchilla is no longer in the adjusted hydrologic unit. + Legacy 18040002 and new 18040002 name changed from Middle San Joaquin-Lower Merced-Lower Stanislaus to Lower San Joaquin River as Merced and Stanislaus Rivers are no longer in the adjusted hydrologic unit. + Legacy 18050006 San Francisco-Coastal South will absorb 4 coastal 12-digit HUs from legacy 18060001 San Lorenzo-Soquel as a result of coastal implementation. This is approved by the in-state WBD Steward and the WBD National Technical Coordinators (NTC) + Legacy 18060006 Central Coastal will absorb an area the size of 6 12-digit HU’s from legacy 18060012 Carmel which all drains directly to the Pacific Ocean. This is approved by the in-state WBD Steward and the WBD National Technical Coordinators (NTC) + Portions of legacy 18060011, 18060012, and part of 19060001 will become a new subbasin accounting for all of these frontal pieces. It will be coded 18060015 and named Monterey Bay. This is approved by the in-state WBD Steward and the WBD National Technical Coordinators (NTC) + Legacy 18060013 Santa Barbara Coastal had an area the size of one 12-digit HU which will be aggregated with legacy 18070101 Ventura as a result of coastal implementation. This is approved by the in-state WBD Steward and the WBD National Technical Coordinators (NTC) + Legacy 18070104 Santa Monica Bay had an area the size of several 12-digit HUs which will be aggregated with legacy 18070106 San Gabriel as a result of coastal implementation. This is approved by the in-state WBD Steward and WBD National Technical Coordinators (NTC) + Legacy 18100200 has now been subdivide into 18100201, 18100202, 18100203, and 18100204. + The legacy name for 180100200 has been retained as the Salton Sea for new code 18100204. New names for the other subdivisions have been reviewed and accepted as follows: + 18100201 Whitewater River + 18100202 Carrizo Creek + 18100203 San Felipe Creek + Legacy 18040002 and new 18040051 name Middle San Joaquin-Lower Merced-Lower Stanislaus was change to Rock Creek-French Camp Slough. + Legacy 18020124 Honcut Headwaters name and code have been retired. It was absorbed in to legacy 18020106 Lower Feather to form the new 18020159. WBD National Technical Coordinators (NTC) recommends the name retain the combined legacy names of Honcut Headwaters-Lower Feather. + Legacy 18020120 Upper Butte and legacy 18020105 Lower Butte have been retired. + The two hydrologic units were combined in to the new accepted code and name of 18020158 Butte Creek. + Legacy 18020119 Mill-Big Chico, 18020103 Sacramento-Lower Thomes, and 18020114 Upper Elder Thomes have been retired. The accepted names and codes for the newly delineated hydrologic units to replace those areas are 18020157 Big Chico Creek-Sacramento River, 18020156 Thomes Creek-Sacramento River, and 18020155 Paynes Creek-Sacramento River. + The following legacy names and codes have been retired: 18020113 Cottonwood Headwaters, 18020102 Lower Cottonwood, 18020101 Sacramento-Lower Cow-Lower Clear, 18020118 Upper Cow-Battle, and 18020112 Sacramento-Upper Clear. The accepted codes for the newly delineated hydrologic units that replace those areas will be 18020151-18020154. + The approved names are: + 18020151 Cow Creek + 18020152 Cottonwood Creek + 18020153 Battle Creek + 18020154 Clear Creek-Sacramento River + 18010111 code and name have been retired and the area has been subdivided. A portion is in 18010109 Gualala-Salmon, and the other portion in 18050005 Tomales-Drake Bays + 18020107 code and name have been retired and the area is now included with 18020125 Upper Yuba + 18020108 code and name have been retired and the area is now included with 18020126 Upper Bear + 18020110 code and name have been retired and the area is now included with 18020116 Upper Cache + 18030008 code and name have been retired and the area is now included with 18030012 Tulare Lake Bed + 18030011 code and name have been retired and the area has been subdivided. A portion is in 18030012 Tulare Lake Bed, and the other portion in 18030009 Upper Dry + 18040004 code and name have been retired and the area is now part of 18040011 Upper Calaveras California + 18040005 code and name have been retired and the area is now part of 18040003 San Joaquin Delta, 18040012, 18040012 Upper Mokelumne, and 18040003 Upper Cosumnes + 18020109 code and name have been retired and the area is now part of 18020163 Lower Sacramento + 18020117 code and name have been retired and the area is now part of 18020162 Upper Putah + 18060001 code and name have been retired, and the areas are now subdivided between 18050006 San Francisco Coastal South and 18060015 Monterey Bay + 18060011 code and name have been retired and now is subdivided between 18060015 Monterey Bay and 18060005 Salinas + 18060012 code and name have been retired and the area is now part of 18060006 Central Coast and 18060015 Monterey Bay + + Colorado: + Legacy 14010006 Parachute-Roan name and code have been retired. This area has been combined with 14010005 Colorado Headwaters-Plateau. + + Connecticut: + 01100007 code and name have been retired and the area is now part of 0110004 Quinnipiac + + Delaware: + 02060007 code and name have been retired and this area now included with 02080110 Tangier + 02060008 code and name have been retired and this area now included with 02080109 Nanticoke + 02060009 code and name have been retired and this area is now part of 02080111 Pokomoke-Western Lower Delmarva and 02080110 Tangier + 02060010 code and name have been retired and this area is now part of 02040303 Chincoteague + + Florida: + Legacy 03090202 Everglades has been modified as follows: + The largest part of 03090202 Everglades carries the legacy code and name. + Subdivided out new Subbasin 03090206 Florida Southeast Coast + Combined additional smaller portions of 03090202 with adjacent Subbasins. + + Louisiana: + 2009 - USGS Water Science Center, Salt Lake City, UT. Recoded all HUC12 codes and DS codes for 08080100 Atchafalaya to 08080101 Atchafalaya. 08080101 is the correct code. During the development of the WBD the 12-digit hydrologic units were miscoded as 08080100. + + Maine + Updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details. + + Massachusetts: + 01070002 is retained for the headwaters of this original code, but ¾ of the original area is now coded 01070006. The area now coded 01070006 retained the original name for the area of legacy 01070002 and is called Merrimack, whereas 01070002 is not called Winnipesaukee River (other state documentation supporting this decision) + + New Hampshire: + Legacy 01070002 Merrimack was subdivided in to 01070002 Merrimack to the North and 01070006 Merrimack River to the South. The technical team requests that the portion to the South retain the legacy code and name of 01070002, Merrimack, and that the northern hydrologic unit receive the code and name 01070006 Winnipesaukee River. There is no Merrimack River in the northern portion and the southern portion most closely resembles the legacy delineation. + + Additional updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details + + New York: + Legacy 04150307 English-Salmon was subdivided into 04150307 Salmon and 04150308 Chateaugay-English. The Technical Team accepts this change. + + 2010- Edits were made to Lake Champlain Basin moving it from Region 02 to Region 04. Update to delineation data in Lake Champlain area on the US side and Canadian side. All lines within Canada are draft delineations only. These boundaries were based on Canada's 1:50,000 National Hydrography Network Work Units or were delineated using either 1:50,000 scale topos or CDED elevation data. These boundaries have not been fully reviewed or approved by either the Canadian federal or provincial agencies and are subject to change. Border polygons are based off of these internal boundaries within Canada and so are also subject to change within Canada. Edits made by USGS Salt Lake City, Water Science Center: to the Lake Champlain and surrounding subbasins to remove all shoreline representations from the WBD. The codes, DS codes and names where updated where necessary. + + 02010004 name and code have been retired, and this area was subdivided, part is in 04150404 Ausable River and part in 04150408 Lake Champlain. + 02010006 name and code have been retired and this area was subdivided. Part is in 04150406 Saranac River and part is in 04150408 Lake Champlain. + 02010001 name and code have been retired and this area was subdivided into 04150401 Mettawee River and 04150408 Lake Champlain + + The new Lake Champlain unit 04150408 is made up of parts of original HUC250K units 02010001, 02010002, 02010003, 02010004, 02010005, 02010006 and 02010007 + + Additional updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details + + North Carolina: + Legacy subbasin 03030001 and legacy subbasin 03020106 have been combined and recommended for acceptance as a new 6-digit Basin 030203 Onslow Bay. + Legacy Subbasin 03030001 New has been recoded and renamed to 03020302 New River. The technical team accepts the new code and name. + Legacy Subbasin 03020106 Bogue-Core Sounds has been recoded and renamed to 03020301 White Oak River. The technical team accepts the new code and name. + 03040207 code and name are still in use, but the portion that stretches along the coast has been broken out to a new 03040208 Coastal Carolina + + North Dakota: + Legacy 10160007 East Missouri Coteau, changed to North Fork Snake as that is a better hydrologic representation of the hydrologic unit. + Legacy 10170103 South Big Sioux Coteau name changed to Lake Thompson + Legacy 10170201 Middle Big Sioux Coteau name changed to Upper Big Sioux + Legacy 10170202 Upper Big Sioux name changed to Middle Big Sioux + Because legacy 10170203 Lower Big Sioux should stay the same, it doesn’t make sense not to have a middle and an upper. Although the boundaries have significantly relocated, it seem like most viable option is to retain the Upper, Middle, Lower naming convention. + + Additional updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details + + Oregon: + Legacy 17100304 Coos was subdivided into 17100304 Coos to the north and 17100306 Sixes to the south. The Technical team accepts this change. + + South Carolina: + Legacy 03040207 Carolina Coastal-Sampit was subdivided into a southern portion called 03040207 Carolina Coastal-Sampit and a northern portion newly coded and named 03040208 Coastal Carolina. The technical team recognizes this as an acceptable solution, however, future coastal delineations may require additional modification. + Legacy 03050202 South Carolina Coastal has now been subdivided into subbasins 03050202 South Carolina Coastal and 03050209 Bulls Bay with an additional portion of 03050202 being aggregated in with legacy 03050201 + Legacy 03050208 Broad-St. Helena has had the following modifications which the NTC concurs with: + 03050208 Broad-St. Helena code and name retained into a much smaller unit capturing only the Broad-St. Helena Rivers + Subdivided into new 03060110 Calibogue Sound-Wright River, and now part of the adjacent Subregion to the south. + Subdivided into new 03050210 St. Helena Island portion combined with 03050207 Salkehatchie. + Legacy 03050205 name is changed to Four Hole Swamp (from Edisto...this name was flipped with the hydrologic unit the water feature resides in). The WBD National Technical Team recommended that this name not be reused as it has been historically assigned to 03050206, but all in state interagency folks felt strongly that it should be reused as that is by far the predominant feature for the HU. Reports since 2005 reflect this. + Legacy 03050206 name is changed to Edisto River to reflect the major hydrologic feature. + + South Dakota: + 2009 - Edits made by in-state data steward; all of sub-basin 10160010 (now retired) was recoded to 10160011 (Lower James); In addition to the recoding of this 8-digit level unit in the James Basin, this group of edits primarily consisted of minor corrections to linework and 12-digit downstream codes, populating ncontrb_A fields of selected 12-digit units, and tweaking selected 5th- and 6th-level unit names to facilitate merging with GNIS. + + Texas: + Legacy13070008 Lower Pecos was subdivided into a northern and southern portion. The northern portion retains the 13070008 code but name should be Pecos. The new subdivided 13070012 hydrologic unit should carry the legacy name Lower Pecos. + Legacy 13090002 Lower Rio Grande is missing from the current WBD. + + Vermont: + Updated 01110000 from Region 01 to Region 04 and is now 04150500 (St. Francois River). Craig Johnston (USGS) pointed out that this unit contains the St. Francois River which flows up into Canada and then dumps into the St Lawrence River. Region 01 is Maine Coastal drainage's while region 04 is St. Lawrence drainage's, so this unit really belongs in region 04. + + 2010- Edits were made to Lake Champlain Basin moving it from Region 02 to Region 04. Update to delineation data in Lake Champlain area on the US side and Canadian side. All lines within Canada are draft delineations only. These boundaries were based on Canada's 1:50,000 National Hydrography Network Work Units or were delineated using either 1:50,000 scale topos or CDED elevation data. These boundaries have not been fully reviewed or approved by either the Canadian federal or provincial agencies and are subject to change. Border polygons are based off of these internal boundaries within Canada and so are also subject to change within Canada. Edits made by USGS Salt Lake City, Water Science Center: to the Lake Champlain and surrounding subbasins to remove all shoreline representations from the WBD. The codes, DS codes and names where updated where necessary. + + 02010001 name and code have been retired and this area was subdivided into 04150401 Mettawee River and 04150408 Lake Champlain. + 02010002 name and code have been retired and this area was subdivided into 04150402 Otter Creek and 04150408 Lake Champlain. + 02010003 name and code have been retired and this area was subdivided into 04150403 Winooski River and 04150408 Lake Champlain. + 02010005 name and code have been retired and this area was subdivided into 04150405 Lamoille River and 04150408 Lake Champlain. + 02010007 name and code have been retired and this area was subdivided into 04150407 Missiquoi River and 04150408 Lake Champlain. + + The new Lake Champlain unit 04150408 is made up of parts of original HUC250K units 02010001, 02010002, 02010003, 02010004, 02010005, 02010006 and 02010007. + + Additional updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details + + Wisconsin: + Legacy 07090001Upper Rock keeps the same code and name but the original hydrologic unit delineation changed significantly. + Legacy 07090002 Crawfish keeps the same code and is renamed to Middle Rock. The original hydrologic unit delineation changed significantly.2016Below is a list of updates (from 2011 to 2016) resulting from harmonization work with Canada. + Alaska: + Legacy 19010101 Southeast Mainland name and code were retired and the area subdivided into four units. New codes and names are as follows and accepted by the National Technical Team and approved with Canadian and Alaska partners (USFS): + 19010104 Bradfield Canal + 19010105 Burroughs Bay + 19010106 Headwaters Portland Canal + 19010107 Outlet Portland Canal + Legacy 19010201 Mainland had a portion broken out. 19010201 will be preserved and the small piece broekn out in order to harmonize with Canada. The smaller piece will have the new code 19010205 and the name will be Lower Iskut. + Revised again 5/31/11: 19010201 Mainland was broken into three new units + 19010206 Holkham Bay + 19010207 Stikine River + 19010208 Thomas Bay + Legacy 19010301 Lynn Canal now has the Taku River broken out to accommodate Canada. Taku River will be code 19010304. The National Technical Coordinators (NTC) accepts this. Revised again 5/31/11:(AK group consulted along with Pete Steeves, Kim Jones, Stephen Daw, Karen Hanson): + 19070101 Atlin Lake was broken out of the legacy Lynn Canal 19010301 and is part of the newly accepted Subregion 1907 + Legacy 19010302 Glacier Bay was subdivided along the ridge separating out the ocean flow. The unit broken out is: + 19010406 Palma Bay (this unit also includes a portion of the original 19010401) + Note: Legacy 19010302 Glacier Bay will be retained although the area is now smaller. Other options didn’t make as much sense. + + Legacy 19010303 Chilkat-Skagway Rivers was subdivided into: + 19070102 Bennett Lake + 19070103 Tagish Lake + 19070104 Takhini River + Note: 19010303 Chilkat-Sakgway Rivers is retained + + Legacy 19010401 Yakutat Bay name and code retired and the area subdivided into 4 new units. New codes and names are as follows + 19010403 Tatshenshini River + 19010404 Alsek River + 19010405 Yakutat Bay-Gulf of Alaska + 19010406 Palma Bay (This new unit also includes a portion of the original 19010302) + + Idaho and Washington - + 2013 - The Columbia River Basin and Puget Sound Coastal area was updated to include the harmonized 8-, 10, and 12-digit hydrologic units within Canada. This harmonized data was created with contributions from US and Canadian Federal, State, Provincial and local partners. The British Columbia 20K Fresh Water Atlas watershed data and DEM data were used to create the units within Canada. Border units were updated through a review/agreement process with local and state/provincial partners using the best available data (DEM, DRG, Imagery, Field Verification). + During the harmonization effort there were some 8-digit updates that were agreed to. + Legacy 17010101 Upper Kootenai name will change to Middle Kootenai to coordinate with Canada since there is an Upper Kootenay solely in Canada. + Legacy 17010101 Upper Kootenai boundary changed slightly. The WBD Technical Team recommends retaining the legacy name and code. + A new subbasin was created as a result of the international border harmonization which slightly goes into the U.S. (the portion of 17010101 referenced above). The WBD Technical Team recommends coding this unit with the next down sequential code which would be 17010106 and using the name that Canada refers to this hydrologic unit as “Elk”. + 17110001 legacy name “Fraser” is being changed to “Sumas River” to match with Canada, and because the Fraser River doesn’t flow through this unit. + + Montana: + 1001 flows into Canada and the Saskatchewan River and not into the Missouri River as originally thought. As such this 4-digit hydrologic units was moved from region 10 to 09. + 0904 - Saskatchewan River + 090400- Upper South Saskatchewan River (This matches the Canadian FDA at the WSCSDA level (sub drainage area)). + 10010001 name and code have been retired, and this area is now 09040002 Belly + 10010002 name and code have been retired, and this area is now 09040001 St. Marys + + Minnesota: + 2014 - Rainy River Basin was updated to include the harmonized 8-, 10- and 12-digit hydrologic units with Canada. This harmonized data was created over a 6 month time period with cooperation from Federal, State, Provincial and Local Partners. + Some of the boundaries within MN were updated using the MN LiDAR data. The MN LiDAR was also used in the creation of boundaries within Canada when the LiDAR data overlapped into Canada. The other boundaries within Canada were generated using the province of Ontario’s 20K DEM and Hydrography data. + There were some 8-digit updates as a result of the harmonization effort. + 09030004 Upper Rainy has been retired + 09030004 is now a part of 09030008 the Lower Rainy + 2 new 8-digit units were broken out in Canada + 09030010 – Big Turtle River-Rainy Lake + 09030011 – Shoal Lake + + North Dakota: + Legacy 09020313 Pembina was subdivided into two new units. + The legacy name and code were retired. + The new codes and names are: + 09020315 Upper Pembina River + 09020316 Lower Pembina River + + 2014- Souris River Basin was updated to include the harmonized 8-, 10- and 12-digit hydrologic units with Canada. This harmonized data was created over a 6 month time period with cooperation from Federal, State, Provincial and Local Partners. + There were some 8-digit updates as a result of the harmonization effort. + Legacy 09010001 Upper Souris has now been subdivided. That code and name have been retired and the new units are: + 09010006 Long Creek + 09010007 Headwaters Souris River + 09010008 Moose Mountain Creek-Souris River + + North Dakota and Minnesotta: Red River Basin + Legacy 09020311 Lower Red name is being changed to Middle Red in order to harmonize with Canada. Lower Red is the Basin name for this entire area but the impact to change at that level isn’t known so won’t change. + + 2016 - Red River Basin was updated to include the harmonized 8-, 10-, and 12-digit hydrologic units within Canada. Some of the boundaries within MN and ND were updated using Lidar data. Lidar data was also used in the development of hydrological units within Canada. Where Lidar data did not exist the province of Manitoba provided either 1:20,000 scale or 1:50,000 scale digital elevation data for boundary delineations. + + Maine + All HUC8 boundaries were updated with the Harmonized US/CAN border into Canada. + Coding was updated as needed. + 01010001 was subdivided into 6 new units. + 01010001 code retired + 01010001 HUC8 name retired (Upper St. John) + New codes and HUC8 names + 01010006 – Headwaters Saint John River + 01010007 – Big Black River-Saint John River + 01010008 – St. Francis River-Saint John River + 01010009 – Little River-Saint John River + 01010010 – Becaguimec Stream-Saint John River (This unit now contains a portion of the original 01010005) + 01010011 – Keswick River-Saint John River + + 01010004 - Boundary within Canada was updated with harmonized boundary. + 01010005 - Boundary was updated with US/CAN harmonized boundary. A small portion of 01010005 was moved into the new 01010010 so that 01010005 is a standard HUC 8 unit for the Meduxnekeag River. + 01020001 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. + 01030001 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. + 01030002 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. + 01040001 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. + 01050001 - Boundary was updated with US/CAN harmonized boundary. This boundary was developed during the initial St. Croix pilot and includes updates within the US as well as Canada. Coding left as is + 01050002 - The harmonized boundary for 01050004 required updates to 01050002. + A portion of 01050002 was moved to 01050004 to accommodate the new harmonized boundary. + This required re-coding of the entire 01050002. + 01050004 - Boundary was updated with US/CAN harmonized boundary. A portion of 01050002 was moved into this unit. Codes were updated to reflect this boundary change. + + 04150600 – Chaudiere River + This is a new unit that was created when the WBD boundary was moved from the international boundary on to the ridgelines + Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. + 04150500 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + + + New Hampshire + 01040001 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. + 04150500 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + + New York + 04150301 - Subdivided into 2 new units + 04150301 code retired + 04150301 HUC8 name retired (Upper St. Lawrence) + New Codes and HUC8 names + 04150309 – Headwaters St. Lawrence River + 04150310 – Raisin River-St. Lawrence River + + 04150306 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + 04150307 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + 04150308 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + 04150408 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + 04150409 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + + Vermont + 04150407 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + 04150408 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + 04150409 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + 04150500 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + + + Great Lakes + The boundaries for Lake Ontario (0415200), Lake Erie (04120200), Lake Huron (04080300) and Lake Superior (04020300) were updated using the new inland lakes coastal method. All updates were coordinated with the WBD state steward for each adjacent state. The area within Wisconsin was excluded per the state partner’s request. All surrounding 8-digits (units touching the lakes) were reviewed and updated as well. 2016Mexico Harmonization (2010-2014) + + 2010 - Harmonization with Texas and Mexico; HUC12 polygons and line rework by USGS Water Science Center, Salt Lake City, UT. + + 2014 - Harmonized 8-, 10 and 12-digit units for all border 8-digit units with Mexico were incorporated into the WBD. These datasets were developed through a coordinated effort between the USGS and INEGI along with input from State and local partners. Due to the harmonization effort some 8-digit boundaries may have been adjusted. In addition to this the 10- and 12-digit boundaries along the border might have also been adjusted based on the availability of better base information within Mexico provided by INEGI.2014The following section describes updates to the WBD data model (2012-2016). + + July 2012 + National responsibility for stewardship and maintenance of the WBD transferred from NRCS to the USGS. As a result the WBD data model was updated and the data was incorporated into the NHD database. + WBD model updated based on input from NRCS, USGS, NHD program and user community. + WBD polygon dataset subdivided into individual polygon datasets for each level of hydrologic units. + Two additional datasets added for the next 2 levels of subdivisions (14- and 16-digit) but are not required for each state to populate these. + Attribute tables for polygons and lines were updated with some fields being added, renamed or removed. See below for a list of changes. + + WBD Line attribute table changes: + Old Model: + HU_LEVEL + LINESOURCE + META_ID – removed – Feature level metadata functionality is added to track updates in the new model + LEFT_HUC_8 – removed + RIGHT_HUC_8 – removed + + New Model: + Permanent_Identifier – New field for feature level metadata + Source_FeatureID – New field for feature level metadata + Meta_SourceID – New field for feature level metadata + Source_DataDesc – New field for feature level metadata + Source_Originator – New field for feature level metadata + HU_Level + HU_Class – New field populated with the number of digits of the hydrologic unit + LoadDate – New field for feature level metadata + LineSource + + WBD Polygon attribute table changes: + Codes and names moved from single polygon dataset to the appropriate hydrologic unit dataset for each level + Old Model: + HUC_8 – moved to 8-digit polygon dataset + HUC_10 – moved to 10-digit polygon dataset + HUC_12 – moved to 12-digit polygon dataset + ACRES – re-named to AREA_ACRES + NCONTRB_A + HU_10_GNIS – Replaced with Gaz_ID + HU_12_GNIS – Replaced with Gaz_ID + HU_10_DS – Removed from new model + HU_10_NAME – moved to 10-digit polygon dataset + HU_10_MOD – moved to 10-digit polygon dataset + HU_10_TYPE – moved to 10-digit polygon dataset + HU_12_DS – moved to 12-digit polygon dataset + HU_12_NAME – moved to 12-digit polygon dataset + HU_12_MOD – moved to 12-digit polygon dataset + HU_12_TYPE – moved to 12-digit polygon dataset + META_ID - removed – Feature level metadata functionality is added to track updates in the new model + STATES + + New Model: + Fields included in all levels of hydrologic unit polygon datasets. + Gaz_ID – Old model was the GNIS field + Area_Acres - Renamed + Area_SqKm – New field + States + LoadDate- New field + HUC_"#digit" - For Example: HUC12 + HU_"#digit"_Name - For Example: HU_12_Name + + Fields included with the 10-, 12-, 14- and 16- digit polygon datasets. + HU_"#digit"_Type - For Example HU_12_Type + HU_"#digit"_Mod - For Example HU_12_Mod + + Fields included with the 12-, 14- and 16- digit polygon datasets. + NContrb_Acres + NContrb_SqKm – New field + + Tables + New Model: + ExternalIDCrosswalk + FeaturetoHUMod + FeatureToMetadata + Meta_ProcessDetail + Meta_SourceDetail + ProcessingParameters + UpdateStatus + WBD_Attributes + WBD_Nav + + October 2012 + Changes to the WBD data model include the elimination of the underscore "_" in field and table names, switching to camelCase. Other changes to the WBD data model include the elimination of the WBDPoint table, the WBDPointEvent table, and the WBDAtributes table. Fields have been added to the WBDHU12 polygon feature dataset that allow metadata record linking and also include the downstream attribute. NWIS drainage area line and polygon feature classes have been added also. + + New Model: + WBD line dataset + TNMID – Use to be PermanentID + HULevel + HUClass – New field populated with the number of digits of the hydrologic unit + HUMod + LineSource + LoadDate – New field for feature level metadata + (Source_FeatureID, Meta_SourceID, Source_DataDesc, Source_Originator fields removed from WBDLine dataset) + + WBD polygon dataset + Fields included in all levels of hydrologic unit polygon datasets. + TNMID – New field for feature level metadata + MetaSourceID – New field for feature level metadata + SourceDataDesc – New field for feature level metadata + SourceOriginator – New field for feature level metadata + SourceFeatureID – New field for feature level metadata + LoadDate – New field for feature level metadata + GNIS_ID = replaces Gaz_ID + AreaAcres + AreaSqKm + States + LoadDate + HUC"digit" - for example: HUC12 + Name + + Fields included with the 10-, 12-, 14- and 16- digit polygon datasets. + HUType + HUMod + + Fields included with the 12-, 14- and 16- digit polygon datasets. + NContrbAcres + NContrbSqKm + + Field included with the 12-digit polygon dataset. + ToHUC – This attribute was included in the original WBD data model as HU_12_DS and represents the code of the next unit downstream. The values for this field were populated for the last version of the dataset in the old model by linking the 2 tables by the 12-digit code and calculating the value over. + + NWISDrainageArea polygon dataset added as a place holder for when these datasets are generated. + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + ReferenceTNMID + SiteID + AgencyCode + SiteNumber + StationName + TotalDrainageArea + ContributingDrainageArea + + NWISBoundary line dataset added as a place holder for when these datasets are generated. + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + ReferenceTNMID + + NonContributingDrainageArea polygon dataset added as a place holder for when these datasets are generated. + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + + 2013 + Changes to the WBD data model include updates to the field for the NonContributingDrainageArea polygon dataset, NWISBoundary line dataset and the NWISDrainageArea polygon dataset. This includes the addition of new fields and the re-naming of some of the existing fields. + + NWISDrainageArea polygon dataset: + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + ReferenceTNMIDNHDPointEvent – Renamed from ReferenceTNMID + AgencyCode + SiteNumber + StationName + ContributingDrainageAreaAcres – Originally called ContributingDrainageArea + TotalDrainageAreaAcres – Originally called TotalDrainageArea + ContributingDrainageAreaSqKm – New field + TotalDrainageAreaSqKm – New field + SiteID - Removed + + NWISBoundary line dataset: + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + ReferenceTNMIDPointEvent – Originally called ReferenceTNMID + SiteNumber – New field + + NonContributingDrainageArea polygon dataset + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + NonContributingSqKm – New field + NonContributingAcres – New field + ReferenceTNMID12digitHU – New field + + Tables + ExternalCrosswalk - Originally called ExternalIDCrosswalk + FeatureToHUMod - removed + FeatureToMetadata + HUMod - NewField + MetaProcessDetail - Previous version called Meta_ProcessDetail + MetaSourceDetail - Previous version called Meta_SourceDetail + ProcessingParameters + UpdateStatus + WBD_Attributes - removed + WBDNavigation - Originally WBD_Nav + + 2014 + + + 2015 + Changes to the WBD data model include updates or additions to the fields for the NonContributingDrainageArea polygon dataset, NWISBoundary line dataset and the NWISDrainageArea polygon dataset. The majority of these are due to the length of the original name for the field. A new line dataset was created for Non Contributing Area called NonContributingDrainageLine NWISBoundary was re-named NWISDrainageLine + + NWISDrainageArea polygon dataset: + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + AreaSqKm – New Field + AgencyCode + SiteNumber + StationName + TotalAreaSqMi – New Field + NWISTotalAreaSqMi – New Field + ContributingAreaSqMi – New Field + NWISContributingAreaSqMi – New Field + ReferenceTNMIDNHDPointEvent + Remarks – New Field + ContributingDrainageAreaAcres – Removed + TotalDrainageAreaAcres – Removed + ContributingDrainageAreaSqKm – Removed + TotalDrainageAreaSqKm – Removed + + NWISDrainageLine line dataset + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + LengthKm – New Field + LineSource – New Field + Agency Code – New Field + SiteNumber + ReferenceTNMIDPointEvent – Removed + + NonContributingDrainageArea polygon dataset + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + AreaSqKm – New Field + NonContributingAreaSqKm – Re-named from NonContributingSqKm + Remarks – New Field + NonContributingAcres - Removed + ReferenceTNMID12digitHU - Removed + + NonContributingDrainageLine line dataset – New dataset + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + LengthKm + LineSource + + 2016 + + WBDLine dataset + TNMID + HULevel - removed + HUDigit - Originally called HUClass + HUMod + LineSource + MetaSourceID + LoadDate + + WBD polygon datasets + Fields included with the 12-, 14- and 16- digit polygon datasets. + NonContributingAreaAcres - previous version was NonContributingAcres + NonContributingAreaSqKm - previous version was NonContributingSqKm2016Additional information about the processes used to create and maintain the WBD after June of 2012 can be found in the table called METAPROCESSDETAIL. The process descriptions are linked using the TNMID to the FEATURETOMETADATA table. In addition the METASOURCEDETAIL table can also be linked to determine the sources used to create or update the WBD data.2012VectorSimpleFALSE0FALSEFALSE0.01979403240.0223945998Decimal secondsNorth American Datum of 1983Geodetic Reference System 806378137.0298.257222101jordanPolygon feature class representing the 2-digit hydrologic unit boundaries (previously referred to as Regions) and are part of the WBD delivery.Federal Standards and Procedures for the National Watershed Boundary DatasetFeature Class0FIDFIDOID400Internal feature number.EsriSequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.EsriCoordinates defining the features.TNMIDTNMIDString4000LoadDateLoadDateDate800AreaSqKmAreaSqKmDouble1900AreaAcresAreaAcresDouble1900NameNameString12000StatesStatesString5000HUC8HUC8String800Shape_LengShape_LengDouble1900Shape_AreaShape_AreaDouble1900Area of feature in internal units squared.EsriPositive real numbers that are automatically generated.WBDHU4Polygon feature class representing the 4-digit hydrologic unit boundaries (previously referred to as Subregions) that are part of the WBD delivery.Federal Standards and Procedures for the National Watershed Boundary DatasetHUC4The HUC4 field is a unique 4-digit hydrologic unit code.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes http://pubs.usgs.gov/tm/11/a3/)WBDHU6Polygon feature class representing the 6-digit hydrologic unit boundaries (previously referred to as Basins) and are part of the WBD delivery.Federal Standards and Procedures for the National Watershed Boundary DatasetHUC6The HUC6 field is a unique 6-digit hydrologic unit code.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)WBDHU8Polygon feature class representing the 8-digit hydrologic unit boundaries (previously referred to as Subbasins) and are part of the WBD delivery.Federal Standards and Procedures for the National Watershed Boundary DatasetHUC8The HUC8 field is a unique 8-digit hydrologic unit code.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes http://pubs.usgs.gov/tm/11/a3/)WBDHU10Polygon feature class representing the 10-digit hydrologic unit boundaries (previously referred to as Watersheds).Federal Standards and Procedures for the National Watershed Boundary DatasetHUC10The HUC10 field is a unique 10-digit hydrologic unit code.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Provide Codeset Definition Reference (Citatation/URL)WBDHU12Polygon feature class representing the 12-digit hydrologic unit boundaries (previously referred to as Subwatersheds).Federal Standards and Procedures for the National Watershed Boundary DatasetHUC12The HUC12 field is a unique 12-digit hydrologic unit code.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)ToHUCThe 12-digit hydrologic unit ToHUC code attribute is the code for the 12-digit hydrologic unit that is downstream from and naturally receives + the majority of the flow from another 12-digit hydrologic unit.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)WBDHU14Polygon feature class representing the 14-digit hydrologic unit boundaries.Federal Standards and Procedures for the National Watershed Boundary DatasetHUC14The HUC14 field is a unique 14-digit hydrologic unit code.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)WBDHU16Polygon feature class representing the 16-digit hydrologic unit boundaries.Federal Standards and Procedures for the National Watershed Boundary DatasetHUC16The HUC16 field is a unique 16-digit hydrologic unit code.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes http://pubs.usgs.gov/tm/11/a3/)WBDLineLine feature class defining the hydrologic unit boundariesFederal Standards and Procedures for the National Watershed Boundary DatasetHUDigitHUDigit is a domain-based field that indicates the minimum number of digits used to represent the hydrologic unit bounded by the line.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)HUModTwo-character, uppercase abbreviation used to track either a modification to natural overland flow that alters the location of the hydrologic unit boundary or special conditions that are applied to a specific boundary line segment. The value identifies the type of modification, from the list provided, that has been applied to the boundary segment. If more than one abbreviation is used, the list is separated by commas without spaces and organized from most to least predominant. +Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)LineSourceLineSource represents the code for the base data used for delineating hydrologic unit boundaries. + If more than one code is used,then the list is separated by a comma with no spaces with the most recent LineSource listed first in the sequence.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)NWISDrainageAreaPolygon features representing PROVISIONAL contributing drainage area for select gage locations in the U.S. Geological Survey National Water Information System +Federal Standards and Procedures for the National Watershed Boundary DatasetAreaSqKmArea of the gaged watershedFederal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Calculated polygon area, square kilometersAgencyCodeSite Agency codeU.S. Geological Survey National Water Information SystemU.S. Geological Survey National Water Information System http://help.waterdata.usgs.gov/SiteNumberU.S. Geological Survey unique site identifierU.S. Geological Survey National Water Information SystemUnique code identifying a measurement site in the National Water Information System databaseStationNameSite NameU.S. Geological Survey National Water Information SystemCommon name associated with site in the National Water Information System databaseTotalAreaSqMiTotal drainage areaFederal Standards and Procedures for the National Watershed Boundary DatasetTotal area of the polygon, square milesNWISTotalAreaSqMiTotal drainage area reported in U.S. Geological Survey National Water Information SystemU.S. Geological Survey National Water Information SystemTotal area in square milesContributingAreaSqMiTotal contributing drainage area, square milesFederal Standards and Procedures for the National Watershed Boundary DatasetTotal contributing area, square milesNWISContributingAreaSqMiContributing drainage area reported in U.S. Geological Survey National Water Information SystemU.S. Geological Survey National Water Information SystemTotal contributing area, square milesReferenceTNMIDNHDPointEventUnique identifier for NHD point event representing gageFederal Standards and Procedures for the National Watershed Boundary DatasetUnique identifier that is automatically generatedRemarksRemarksFederal Standards and Procedures for the National Watershed Boundary DatasetFree text holding remarks from reviewers and/or dataset originatorNWISDrainageLineLine features representing the boundary of the contributing gaged drainage areaFederal Standards and Procedures for the National Watershed Boundary DatasetLengthKmLength of the lineFederal Standards and Procedures for the National Watershed Boundary DatasetCalculated line length, kilometersLineSourceCode identifying the base data used for delineating hydrologic unit boundariesFederal Standards and Procedures for the National Watershed Boundary DatasetFederal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)AgencyCodeSite Agency codeU.S. Geological Survey National Water Information SystemU.S. Geological Survey National Water Information System http://help.waterdata.usgs.gov/SiteNumberU.S. Geological Survey unique site identifierU.S. Geological Survey National Water Information SystemUnique code identifying a measurement site in the National Water Information System databaseWBDLine, WBDHU2, WBDHU4, WBDHU6, WBDHU8, WBDHU10, WBDHU12, WBDHU14, WBDHU16, NWISDrainageArea, NWISDrainageLine, NonContributingDrainageArea, NonContributingDrainageLineThe following attribute fields are common to all feature classes within the WBD Federal Standards and Procedures for the National Watershed Boundary DatasetOBJECTIDInternal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeFeature geometry.ESRICoordinates defining the features.TNMIDTNMID (short for The National Map Identification) is a unique 40-character field that identifies each element in the database exclusively.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)TNMID is an automatically assigned code that stays with each element. When an element is updated or changed, TNMID links the element to the metadata record and documents the change. TNMID is also used to maintain relationship classes in the normalized data model. When an element is deleted or split, TNMID stays with the original element and is not used again. When an element is split, new permanent identifiers are assigned to the resultant parts.MetaSourceIDMetaSourceID is a unique identifier that links the element to the metadata tables.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)MetaSourceID is a unique identifier that links the element to the metadata tables. This ID is generated and assigned automatically by the database and remains with the object permanently.SourceDataDescSourceDataDesc is a space provided for a brief description of the type of base data used to update or change the current WBD.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)The WBD In-State Steward completes this field as part of the metadata form.SourceOriginatorSourceOriginator is the description of the agency that created the base data used to improve the WBD.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)The WBD In-State Steward completes this field as part of the metadata formSourceFeatureIDSourceFeatureID is a long, unique code.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)This code identifies the parent of the feature if the feature is the result of a split or merge, and it is automatically generated and assigned.LoadDateLoadDate represents the date when the data were loaded into the official USGS WBD ArcSDE database. The field is the effective date for all feature edits, and it is automatically generated.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)12:00:00 AM5/22/2015 9:18:54 AMSHAPE_LengthLength of feature in internal units.Esri0.00969668135620442156.106394893564WBDHU2, WBDHU4, WBDHU6, WBDHU8, WBDHU10, WBDHU12, WBDHU14, WBDHU16, NWISDrainageArea, NonContributingDrainageAreaThe following attribute field is common to all polygon feature classes within the WBD Federal Standards and Procedures for the National Watershed Boundary DatasetShape_AreaArea of feature in internal units squared.Esri1.4877635179339E-069.79299310229808WBDHU2, WBDHU4, WBDHU6, WBDHU8, WBDHU10, WBDHU12, WBDHU14, WBDHU16The following attribute fields are common to the WBD hydrologic unit polygon datasetsFederal Standards and Procedures for the National Watershed Boundary DatasetGNIS_IDGNIS_ID is a preassigned numeric field that uses a unique number to relate the name of the hydrologic unit to the GNIS names database.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Geographic Names Information System (GNIS)GNIS (http://gnis.usgs.gov/)AreaAcresThe area of each hydrologic unit including non-contributing areas stored in acres +AreaAcres is common to all polygon feature classes and is calculated at the 12-digit hydrologic unit from the intrinsic area value maintained by the GIS software; therefore, acreage values may vary from user calculations, depending on the projection of the data. North American Albers Equal Area Conic, North American Datum 1983 is the required projection to use for calculation. If the units of the area field are stored in square meters, then use the conversion factor 0.0002471. For example, 40,469,446 square meters multiplied by 0.0002471 =10,000 acresFederal Standards and Procedures for the National Watershed Boundary Dataset (WBD)050000000acresAreaSqKmThe area of each hydrologic unit including non-contributing areas stored in square kilometers. +AreaSqKm is calculated at the 12-digit hydrologic unit from the intrinsic area value maintained by the GIS software; therefore, the square kilometer values may vary from user calculations, depending on the projection of the data. North American Albers Equal Area Conic, North American Datum 1983 is the default projection.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)0100000square kilometersStatesThe States or outlying area attribute identifies the State(s) or outlying areas that the hydrologic unit falls within or touches. Will be populated with the 2 character state abbreviation or outlying area attribute for each area that the unit falls within in alphabetical order.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes http://pubs.usgs.gov/tm/11/a3/)NameName refers to the GNIS name for the geographic area in which the hydrologic unit is located.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)WBDHU10, WBDHU12, WBDHU14, WBDHU16The following attribute fields are common to the 10-digit, 12-digit, 14-digit and 16-digit WBD polygon datasetsFederal Standards and Procedures for the National Watershed Boundary DatasetHUTypeThe 12-digit hydrologic unit type attribute is the single-letter abbreviation for Watershed type from the list of official names provided in the WBD Standards.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)HUModThe hydrologic unit modification attribute is a two-character, uppercase abbreviation(s) for either (1) the type of modification to natural overland flow that alters the natural delineation of a hydrologic unit or (2) the special conditions GF-groundwater flow, GL-glacier, IF-ice field, KA-karst, and NC-noncontributing area. The value of the HUMod field helps to indicate where the modification to the hydrologic unit is located. If more than one abbreviation is used, the will be separated by commas without spaces and listed from most to least predominant.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)WBDHU12, WBDHU14, WBDHU16, NWISDrainageArea and NonContributingDrainageAreaThe following attribute fields are common to the 12-digit, 14-digit and 16-digit WBD polygon datasets as well as the NWISDrainageArea, and NonContributingDrainageArea polygon datasetsFederal Standards and Procedures for the National Watershed Boundary DatasetNonContributingAreaAcresThe noncontributing area attribute represents the area, in acres, of hydrologic units that do not contribute to downstream accumulation of streamflow under normal flow conditions.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)050000000NonContributingAreaSqKmThe noncontributing area attribute represents the area, in square kilometers, of hydrologic units that do not contribute to downstream accumulation of streamflow under normal flow conditions.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)0100000The Watershed Boundary Dataset is a comprehensive set of digital spatial data that represents the surface drainages areas of the United States. The information included with the features includes a feature date, a unique common identifier, name, the feature length or area, and other characteristics. Names and their identifiers are assigned from the Geographic Names Information System. The data also contains relations that encode metadata. The names and definitions of all these feature attributes are in the Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD). The document is available online at http://pubs.usgs.gov/tm/11/a3/.The names and definitions of all fields within the WBD attribution are in the U.S. Geological Survey, Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD). The document is available online at http://pubs.usgs.gov/tm/11/a3/. Information about the attribute tables and fields are in Section 6: Geospatial Data Structure and AttributesU.S. Geological SurveyMailing
U.S. Geological Survey, National Geospatial Technical Operations Center, P.O. Box 25046
DenverCO80225
1-877-275-8747bpgeo@usgs.gov
The distributor shall not be held liable for improper or incorrect use of this data, based on the description of appropriate/inappropriate uses described in this metadata document. It is strongly recommended that this data is directly acquired from the distributor and not indirectly through other sources which may have changed the data in some way. The Watershed Boundary Dataset is public information and may be interpreted by all organizations, agencies, units of government, or others based on needs; however, they are responsible for the appropriate application of the data. Federal, State, or local regulatory bodies are not to reassign to the U.S. Department of Agriculture-Natural Resources Conservation Service or the U.S. Geological Survey any authority for the decisions they make. Photographic or digital enlargement of these maps to scales greater than that at which they were originally delineated can result in misrepresentation of the data. If enlarged, the maps will not include the fine detail that would be appropriate for mapping at the small scale. Digital data files are periodically updated. Files are dated, and users are responsible for obtaining the latest version of the data from the source distributor.Vector Digital Data Set (Polygon)ftp://rockyftp.cr.usgs.gov/vdelivery/Datasets/Staged/Hydrography/WBD/National/GDB/National_WBD.zipNone. No fees are applicable for obtaining the data set.
20160727WBD Point of ContactU.S. Geological SurveyMailing
U.S. Geological Survey, National Geospatial Technical Operations Center, P.O. Box 25046
DenverCO80225
1-877-275-8747bpgeo@usgs.gov
FGDC Content Standard for Digital Geospatial MetadataFGDC-STD-001-1998
jordanfile://\\CYB-TURING-AG1\E$\OneDrive\OneDrive - The University of Alabama\02.projects\02.nidis\02.code\ewri\02.inputs\shape\jordan.shpLocal Area Network0020.000GeographicGCS_North_American_1983Angular Unit: Degree (0.017453)<GeographicCoordinateSystem xsi:type='typens:GeographicCoordinateSystem' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.1.0'><WKT>GEOGCS[&quot;GCS_North_American_1983&quot;,DATUM[&quot;D_North_American_1983&quot;,SPHEROID[&quot;GRS_1980&quot;,6378137.0,298.257222101]],PRIMEM[&quot;Greenwich&quot;,0.0],UNIT[&quot;Degree&quot;,0.0174532925199433],AUTHORITY[&quot;EPSG&quot;,4269]]</WKT><XOrigin>-400</XOrigin><YOrigin>-400</YOrigin><XYScale>11258999068426.238</XYScale><ZOrigin>-100000</ZOrigin><ZScale>10000</ZScale><MOrigin>-100000</MOrigin><MScale>10000</MScale><XYTolerance>8.983152841195215e-09</XYTolerance><ZTolerance>0.001</ZTolerance><MTolerance>0.001</MTolerance><HighPrecision>true</HighPrecision><LeftLongitude>-180</LeftLongitude><WKID>4269</WKID><LatestWKID>4269</LatestWKID></GeographicCoordinateSystem>ExportFeatures WBDHU8 "E:\OneDrive\OneDrive - The University of Alabama\01.dissertation\04.data\01.gsl\01.map\02.modified_data\my_basin_v_00\my_basin_v_00.gdb\WBDHU8_ExportFeatures" # NOT_USE_ALIAS "TNMID "tnmid" true true false 40 Text 0 0,First,#,WBDHU8,TNMID,0,40;LoadDate "loaddate" true true false 8 Date 0 0,First,#,WBDHU8,LoadDate,-1,-1;AreaAcres "areaacres" true true false 8 Double 0 0,First,#,WBDHU8,AreaAcres,-1,-1;AreaSqKm "areasqkm" true true false 8 Double 0 0,First,#,WBDHU8,AreaSqKm,-1,-1;States "states" true true false 50 Text 0 0,First,#,WBDHU8,States,0,50;HUC8 "huc8" true true false 8 Text 0 0,First,#,WBDHU8,HUC8,0,8;Name "name" true true false 120 Text 0 0,First,#,WBDHU8,Name,0,120;Shape_Area "shape_Area" false true true 8 Double 0 0,First,#,WBDHU8,Shape_Area,-1,-1" #ExportFeatures "Jordan-Weber Watershed" "E:\OneDrive\OneDrive - The University of Alabama\01.dissertation\04.data\01.gsl\01.map\02.modified_data\my_basin_v_00\my_basin_v_00.gdb\Jordan_Watershed" # NOT_USE_ALIAS "TNMID "tnmid" true true false 40 Text 0 0,First,#,Jordan-Weber Watershed,TNMID,0,40;LoadDate "loaddate" true true false 8 Date 0 0,First,#,Jordan-Weber Watershed,LoadDate,-1,-1;AreaAcres "areaacres" true true false 8 Double 0 0,First,#,Jordan-Weber Watershed,AreaAcres,-1,-1;AreaSqKm "areasqkm" true true false 8 Double 0 0,First,#,Jordan-Weber Watershed,AreaSqKm,-1,-1;States "states" true true false 50 Text 0 0,First,#,Jordan-Weber Watershed,States,0,50;HUC8 "huc8" true true false 8 Text 0 0,First,#,Jordan-Weber Watershed,HUC8,0,8;Name "name" true true false 120 Text 0 0,First,#,Jordan-Weber Watershed,Name,0,120;Shape_Length "Shape_Length" false true true 8 Double 0 0,First,#,Jordan-Weber Watershed,Shape_Length,-1,-1;Shape_Area "Shape_Area" false true true 8 Double 0 0,First,#,Jordan-Weber Watershed,Shape_Area,-1,-1" #ExportFeatures "Jordan Watershed" "E:\OneDrive\OneDrive - The University of Alabama\02.projects\02.nidis\02.code\ewri\02.inputs\shape\jordan.shp" # NOT_USE_ALIAS "TNMID "tnmid" true true false 40 Text 0 0,First,#,Jordan Watershed,TNMID,0,40;LoadDate "loaddate" true true false 8 Date 0 0,First,#,Jordan Watershed,LoadDate,-1,-1;AreaAcres "areaacres" true true false 8 Double 0 0,First,#,Jordan Watershed,AreaAcres,-1,-1;AreaSqKm "areasqkm" true true false 8 Double 0 0,First,#,Jordan Watershed,AreaSqKm,-1,-1;States "states" true true false 50 Text 0 0,First,#,Jordan Watershed,States,0,50;HUC8 "huc8" true true false 8 Text 0 0,First,#,Jordan Watershed,HUC8,0,8;Name "name" true true false 120 Text 0 0,First,#,Jordan Watershed,Name,0,120;Shape_Length "Shape_Length" false true true 8 Double 0 0,First,#,Jordan Watershed,Shape_Length,-1,-1;Shape_Area "Shape_Area" false true true 8 Double 0 0,First,#,Jordan Watershed,Shape_Area,-1,-1" #202405082224560020240508222456001.0250000240002017031411230000ISO 19139 Metadata Implementation SpecificationFALSEWBD Point of ContactU.S. Geological Survey1-877-275-8747U.S. Geological Survey, National Geospatial Technical Operations Center, P.O. Box 25046DenverCO80225bpgeo@usgs.gov20240508ArcGIS Metadata1.0U.S. Geological Survey1-877-275-8747U.S. Geological Survey, National Geospatial Technical Operations Center, P.O. Box 25046DenverCO80225bpgeo@usgs.govNone. No fees are applicable for obtaining the data set.Vector Digital Data Set (Polygon)ftp://rockyftp.cr.usgs.gov/vdelivery/Datasets/Staged/Hydrography/WBD/National/GDB/National_WBD.zipftp://rockyftp.cr.usgs.gov/vdelivery/Datasets/Staged/Hydrography/WBD/National/GDB/National_WBD.zip0.000ShapefileNational Watershed Boundary Dataset (WBD)2015-12-16U.S. Department of Agriculture - Natural Resource Conservation Service (NRCS)U.S. Geological Survey (USGS)Other Federal, State, and local partners (see dataset specific metadata for details http://nhd.usgs.gov/wbd_metadata.html)U.S. Environmental Protection Agency (EPA)Vector Digital Data SetThe Watershed Boundary Dataset (WBD) is a comprehensive aggregated collection of hydrologic unit data consistent with the national criteria for delineation and resolution. It defines the areal extent of surface water drainage to a point except in coastal or lake front areas where there could be multiple outlets as stated by the "Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)" “Standard” (http://pubs.usgs.gov/tm/11/a3/). Watershed boundaries are determined solely upon science-based hydrologic principles, not favoring any administrative boundaries or special projects, nor particular program or agency. This dataset represents the hydrologic unit boundaries to the 12-digit (6th level) for the entire United States. Some areas may also include additional subdivisions representing the 14- and 16-digit hydrologic unit (HU). At a minimum, the HUs are delineated at 1:24,000-scale in the conterminous United States, 1:25,000-scale in Hawaii, Pacific basin and the Caribbean, and 1:63,360-scale in Alaska, meeting the National Map Accuracy Standards (NMAS). Higher resolution boundaries are being developed where partners and data exist and will be incorporated back into the WBD. WBD data are delivered as a dataset of polygons and corresponding lines that define the boundary of the polygon. WBD polygon attributes include hydrologic unit codes (HUC), size (in the form of acres and square kilometers), name, downstream hydrologic unit code, type of watershed, non-contributing areas, and flow modifications. The HUC describes where the unit is in the country and the level of the unit. WBD line attributes contain the highest level of hydrologic unit for each boundary, line source information and flow modifications.The intent of defining Hydrologic Units (HU) within the Watershed Boundary Dataset is to establish a base-line drainage boundary framework, accounting for all land and surface areas. Hydrologic units are intended to be used as a tool for water-resource management and planning activities particularly for site-specific and localized studies requiring a level of detail provided by large-scale map information. The WBD complements the National Hydrography Dataset (NHD) and supports numerous programmatic missions and activities including: watershed management, rehabilitation and enhancement, aquatic species conservation strategies, flood plain management and flood prevention, water-quality initiatives and programs, dam safety programs, fire assessment and management, resource inventory and assessment, water data analysis and water census.Funding for the Watershed Boundary Dataset (WBD) was provided by the USDA-NRCS, USGS and EPA along with other federal, state and local agenciesies. Representatives from many agencies contributed a substantial amount of time and salary towards quality review and updating of the dataset in order to meet the WBD Standards. Acknowledgment of the originating agencies would be appreciated in products derived from these data. See dataset specific metadata for further informationU.S. Geological Survey1-877-275-8747U.S. Geological Survey, National Geospatial Technical Operations Center, P.O. Box 25046DenverCO80225bpgeo@usgs.govftp://rockyftp.cr.usgs.gov/vdelivery/Datasets/Staged/Hydrography/WBD/National/GDB/National_WBD.jpgThumbnail JPG imageJPEGUSUnited StatesU.S. Department of Commerce, 1977, Countries, dependencies, areas of special sovereignty, and their principal administrative divisions (Federal Information Processing Standards 10-3): Washington, D.C., National Institute of Standards and Technology.16-digitHydrologic Unit CodeRegion4-digitHUCWatershed Boundary Dataset2-digitBasin10-digitHydrologic UnitsSub-basinWatershedWBD6-digitinlandWatersSub-regionSubwatershed12-digit14-digit8-digitISO 19115 Topic Category16-digitHydrologic Unit CodeRegionUS4-digitHUCUnited StatesWatershed Boundary Dataset2-digitBasin10-digitHydrologic UnitsSub-basinWatershedWBD6-digitinlandWatersSub-regionSubwatershed12-digit14-digit8-digitThe distributor shall not be held liable for improper or incorrect use of this data, based on the description of appropriate/inappropriate uses described in this metadata document. It is strongly recommended that this data is directly acquired from the distributor and not indirectly through other sources which may have changed the data in some way. The Watershed Boundary Dataset is public information and may be interpreted by all organizations, agencies, units of government, or others based on needs; however, they are responsible for the appropriate application of the data. Federal, State, or local regulatory bodies are not to reassign to the U.S. Department of Agriculture-Natural Resources Conservation Service or the U.S. Geological Survey any authority for the decisions they make. Photographic or digital enlargement of these maps to scales greater than that at which they were originally delineated can result in misrepresentation of the data. If enlarged, the maps will not include the fine detail that would be appropriate for mapping at the small scale. Digital data files are periodically updated. Files are dated, and users are responsible for obtaining the latest version of the data from the source distributor.The distributor shall not be held liable for improper or incorrect use of this data, based on the description of appropriate/inappropriate uses described in this metadata document. It is strongly recommended that this data is directly acquired from the distributor and not indirectly through other sources which may have changed the data in some way. These data should not be used at scales greater than 1:24,000 for the purpose of identifying hydrographic watershed boundary feature locations in the United States. The Watershed Boundary Dataset is public information and may be interpreted by all organizations, agencies, units of government, or others based on needs; however, they are responsible for the appropriate application of the data. Photographic or digital enlargement of these maps to scales greater than that at which they were originally delineated can result in misrepresentation of the data. If enlarged, the maps will not include the fine detail that would be appropriate for mapping at the small scale. Digital data files are periodically updated and users are responsible for obtaining the latest version of the data from the source distributor. Acknowledgment of the origination agencies would be appreciated in products derived from these data.Microsoft Windows 10 Version 10.0 (Build 19045) ; Esri ArcGIS 13.1.3.41833publication date1980-01-012016-01-01-179.229655487179.856674735-14.424695094371.4395725902The WBD was produced and is maintained through a cooperative process involving state, federal and local partners. Process information for a specific state or region can be found within the state specific metadata located at http://nhd.usgs.gov/wbd_metdata.html. This metadata file has information for WBD features contained in the WBD feature dataset. This includes information about the 2-, 4-, 6-, 8-, 10-, 12-, 14-, 16-digit polygons and WBD_Line dataset. Users accessing the WBD via shapefile will need to search for the attribution related to that specific dataset.Lines, polygons and nodes conform to topological rules. Lines intersect only at nodes, and all nodes anchor the ends of lines. Lines do not overshoot or undershoot other lines where they are supposed to meet. There are no duplicate lines. Lines bound polygons. Gaps and overlaps among polygons do not exist. All polygons close.Lines, polygons and nodes conform to topological rules. Lines intersect only at nodes, and all nodes anchor the ends of lines. Lines do not overshoot or undershoot other lines where they are supposed to meet. There are no duplicate lines. Lines bound polygons. Gaps and overlaps among polygons do not exist. All polygons close.The WBD contains completed polygons at every level for the United States. All required fields within the polygon and line datasets are populated. Some of these fields may be populated with a zeor "0". The lines coincident with the international boundary are assigned a HULevel value of 0. These cannot be attributed until the adjacent international units are added at which point the highest level of hydrologic unit can be determined. A detailed description of delineation methods and full attribute definitions can be found in the WBD Standards. Users are advised to carefully read the metadata record for additional details.All attempts were made to verify 100% of the initially required attributes using 24K digital raster graphics (DRGs) as the base. Additional datasets, like the Geographic Names Information System (GNIS) and NHD, may also have been used to verify attribution. The accuracy of this data is dependent on the level of detail of the source material and the interpretation procedures for capturing that source. Other sources and methods may have been used to create or update WBD data. In some cases, additional information may be found in the WBD Metadata table.The WBD was produced using a variety of digital spatial data including but not limited to Digital Raster Graphics (DRGs), aerial imagery and digital elevation models (DEM). It is assumed these data are mapped at approximately 1:24,000-scale and contain a minimum inherent error of +/- 40 feet. It should be noted that the WBD is undergoing continuous update as source data improves and as hydrologic interpretations are refined. While general rules of hydrology were used in delineation, locations of boundaries may be subjective in some cases. Additional information may be found in the WBD Metadata table.A formal accuracy assessment of the vertical positional information in the data set has either not been conducted, or is not applicable.The original dataset was reviewed by USGS personnel using on-screen techniques with DRGs as the base map. All hydrologic units within the dataset that were less than 3,000 acres were dissolved out.2003-01-01First draft of metadata created by NRCS using METADATA Editor in ArcCatalog ver. 9.1 sp.1 hu12_geo832007-01-24Below is a list of updates (from 2011 to 2016) resulting from harmonization work with Canada. Alaska: Legacy 19010101 Southeast Mainland name and code were retired and the area subdivided into four units. New codes and names are as follows and accepted by the National Technical Team and approved with Canadian and Alaska partners (USFS): 19010104 Bradfield Canal 19010105 Burroughs Bay 19010106 Headwaters Portland Canal 19010107 Outlet Portland Canal Legacy 19010201 Mainland had a portion broken out. 19010201 will be preserved and the small piece broekn out in order to harmonize with Canada. The smaller piece will have the new code 19010205 and the name will be Lower Iskut. Revised again 5/31/11: 19010201 Mainland was broken into three new units 19010206 Holkham Bay 19010207 Stikine River 19010208 Thomas Bay Legacy 19010301 Lynn Canal now has the Taku River broken out to accommodate Canada. Taku River will be code 19010304. The National Technical Coordinators (NTC) accepts this. Revised again 5/31/11:(AK group consulted along with Pete Steeves, Kim Jones, Stephen Daw, Karen Hanson): 19070101 Atlin Lake was broken out of the legacy Lynn Canal 19010301 and is part of the newly accepted Subregion 1907 Legacy 19010302 Glacier Bay was subdivided along the ridge separating out the ocean flow. The unit broken out is: 19010406 Palma Bay (this unit also includes a portion of the original 19010401) Note: Legacy 19010302 Glacier Bay will be retained although the area is now smaller. Other options didn’t make as much sense. Legacy 19010303 Chilkat-Skagway Rivers was subdivided into: 19070102 Bennett Lake 19070103 Tagish Lake 19070104 Takhini River Note: 19010303 Chilkat-Sakgway Rivers is retained Legacy 19010401 Yakutat Bay name and code retired and the area subdivided into 4 new units. New codes and names are as follows 19010403 Tatshenshini River 19010404 Alsek River 19010405 Yakutat Bay-Gulf of Alaska 19010406 Palma Bay (This new unit also includes a portion of the original 19010302) Idaho and Washington - 2013 - The Columbia River Basin and Puget Sound Coastal area was updated to include the harmonized 8-, 10, and 12-digit hydrologic units within Canada. This harmonized data was created with contributions from US and Canadian Federal, State, Provincial and local partners. The British Columbia 20K Fresh Water Atlas watershed data and DEM data were used to create the units within Canada. Border units were updated through a review/agreement process with local and state/provincial partners using the best available data (DEM, DRG, Imagery, Field Verification). During the harmonization effort there were some 8-digit updates that were agreed to. Legacy 17010101 Upper Kootenai name will change to Middle Kootenai to coordinate with Canada since there is an Upper Kootenay solely in Canada. Legacy 17010101 Upper Kootenai boundary changed slightly. The WBD Technical Team recommends retaining the legacy name and code. A new subbasin was created as a result of the international border harmonization which slightly goes into the U.S. (the portion of 17010101 referenced above). The WBD Technical Team recommends coding this unit with the next down sequential code which would be 17010106 and using the name that Canada refers to this hydrologic unit as “Elk”. 17110001 legacy name “Fraser” is being changed to “Sumas River” to match with Canada, and because the Fraser River doesn’t flow through this unit. Montana: 1001 flows into Canada and the Saskatchewan River and not into the Missouri River as originally thought. As such this 4-digit hydrologic units was moved from region 10 to 09. 0904 - Saskatchewan River 090400- Upper South Saskatchewan River (This matches the Canadian FDA at the WSCSDA level (sub drainage area)). 10010001 name and code have been retired, and this area is now 09040002 Belly 10010002 name and code have been retired, and this area is now 09040001 St. Marys Minnesota: 2014 - Rainy River Basin was updated to include the harmonized 8-, 10- and 12-digit hydrologic units with Canada. This harmonized data was created over a 6 month time period with cooperation from Federal, State, Provincial and Local Partners. Some of the boundaries within MN were updated using the MN LiDAR data. The MN LiDAR was also used in the creation of boundaries within Canada when the LiDAR data overlapped into Canada. The other boundaries within Canada were generated using the province of Ontario’s 20K DEM and Hydrography data. There were some 8-digit updates as a result of the harmonization effort. 09030004 Upper Rainy has been retired 09030004 is now a part of 09030008 the Lower Rainy 2 new 8-digit units were broken out in Canada 09030010 – Big Turtle River-Rainy Lake 09030011 – Shoal Lake North Dakota: Legacy 09020313 Pembina was subdivided into two new units. The legacy name and code were retired. The new codes and names are: 09020315 Upper Pembina River 09020316 Lower Pembina River 2014- Souris River Basin was updated to include the harmonized 8-, 10- and 12-digit hydrologic units with Canada. This harmonized data was created over a 6 month time period with cooperation from Federal, State, Provincial and Local Partners. There were some 8-digit updates as a result of the harmonization effort. Legacy 09010001 Upper Souris has now been subdivided. That code and name have been retired and the new units are: 09010006 Long Creek 09010007 Headwaters Souris River 09010008 Moose Mountain Creek-Souris River North Dakota and Minnesotta: Red River Basin Legacy 09020311 Lower Red name is being changed to Middle Red in order to harmonize with Canada. Lower Red is the Basin name for this entire area but the impact to change at that level isn’t known so won’t change. 2016 - Red River Basin was updated to include the harmonized 8-, 10-, and 12-digit hydrologic units within Canada. Some of the boundaries within MN and ND were updated using Lidar data. Lidar data was also used in the development of hydrological units within Canada. Where Lidar data did not exist the province of Manitoba provided either 1:20,000 scale or 1:50,000 scale digital elevation data for boundary delineations. Maine All HUC8 boundaries were updated with the Harmonized US/CAN border into Canada. Coding was updated as needed. 01010001 was subdivided into 6 new units. 01010001 code retired 01010001 HUC8 name retired (Upper St. John) New codes and HUC8 names 01010006 – Headwaters Saint John River 01010007 – Big Black River-Saint John River 01010008 – St. Francis River-Saint John River 01010009 – Little River-Saint John River 01010010 – Becaguimec Stream-Saint John River (This unit now contains a portion of the original 01010005) 01010011 – Keswick River-Saint John River 01010004 - Boundary within Canada was updated with harmonized boundary. 01010005 - Boundary was updated with US/CAN harmonized boundary. A small portion of 01010005 was moved into the new 01010010 so that 01010005 is a standard HUC 8 unit for the Meduxnekeag River. 01020001 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. 01030001 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. 01030002 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. 01040001 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. 01050001 - Boundary was updated with US/CAN harmonized boundary. This boundary was developed during the initial St. Croix pilot and includes updates within the US as well as Canada. Coding left as is 01050002 - The harmonized boundary for 01050004 required updates to 01050002. A portion of 01050002 was moved to 01050004 to accommodate the new harmonized boundary. This required re-coding of the entire 01050002. 01050004 - Boundary was updated with US/CAN harmonized boundary. A portion of 01050002 was moved into this unit. Codes were updated to reflect this boundary change. 04150600 – Chaudiere River This is a new unit that was created when the WBD boundary was moved from the international boundary on to the ridgelines Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. 04150500 - Boundary was updated with US/CAN harmonized boundary. Coding left as is New Hampshire 01040001 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. 04150500 - Boundary was updated with US/CAN harmonized boundary. Coding left as is New York 04150301 - Subdivided into 2 new units 04150301 code retired 04150301 HUC8 name retired (Upper St. Lawrence) New Codes and HUC8 names 04150309 – Headwaters St. Lawrence River 04150310 – Raisin River-St. Lawrence River 04150306 - Boundary was updated with US/CAN harmonized boundary. Coding left as is 04150307 - Boundary was updated with US/CAN harmonized boundary. Coding left as is 04150308 - Boundary was updated with US/CAN harmonized boundary. Coding left as is 04150408 - Boundary was updated with US/CAN harmonized boundary. Coding left as is 04150409 - Boundary was updated with US/CAN harmonized boundary. Coding left as is Vermont 04150407 - Boundary was updated with US/CAN harmonized boundary. Coding left as is 04150408 - Boundary was updated with US/CAN harmonized boundary. Coding left as is 04150409 - Boundary was updated with US/CAN harmonized boundary. Coding left as is 04150500 - Boundary was updated with US/CAN harmonized boundary. Coding left as is Great Lakes The boundaries for Lake Ontario (0415200), Lake Erie (04120200), Lake Huron (04080300) and Lake Superior (04020300) were updated using the new inland lakes coastal method. All updates were coordinated with the WBD state steward for each adjacent state. The area within Wisconsin was excluded per the state partner’s request. All surrounding 8-digits (units touching the lakes) were reviewed and updated as well.2016-01-01Mexico Harmonization (2010-2014) 2010 - Harmonization with Texas and Mexico; HUC12 polygons and line rework by USGS Water Science Center, Salt Lake City, UT. 2014 - Harmonized 8-, 10 and 12-digit units for all border 8-digit units with Mexico were incorporated into the WBD. These datasets were developed through a coordinated effort between the USGS and INEGI along with input from State and local partners. Due to the harmonization effort some 8-digit boundaries may have been adjusted. In addition to this the 10- and 12-digit boundaries along the border might have also been adjusted based on the availability of better base information within Mexico provided by INEGI.2014-01-01The following edits (2012 - present) were completed during national quality control review performed by the WBD national technical edit team in the USGS Utah Water Science Center. Updates may not affect all hydrologic units. Edits by USGS Water Science Center in Salt Lake City, Utah. 1. Reviewed all the ToHUC codes within the 12-digit polygons and made updates as necessary. All updates were coordinated and approved by WBD state stewards. 2. Updated Linesource code (misspellings, removed extra spaces etc.) where needed to match Federal Standards 3. Updated and corrected errors in the HU_Mod fields where needed to match Federal Standards. 4. Updated State field for Canada (CN) and Mexico (MX) based on the new version of the Standards 5. Reviewed all the Names related to each 10-digit and 12-digit polygon and made updates as necessary. All updates were coordinated and approved by the WBD State stewards 6. Checked and updated HU_Level field where HU_Level = 99 or = null 7. Updated the 8-digit outer boundary for units flowing into ocean units by extending the boundary offshore to the 3 nautical mile limit provided by NOAA. All updates were coordinated and approved by the WBD state stewards2016-01-01The following are 8-digit updates (from 2009-2016) that were approved by the WBD National Technical Coordinators as required by the WBD Standards. These may include name/code updates or boundary updates that were implemented in the WBD at some point during the creation or maintenance of the data. Alaska: Legacy 19020401 Anchorage boundary has changed by about 20% of its area. 19020203 (Prince William Sound) Added a new subbasin unit for Prince William Sound. Adjusted huc8 boundaries between 19020104, 19020201 and 19020202 to better reflect surface water flow and to assist with delineating the Prince William Sound as a new unit. Legacy 19020302 Upper Kenai Peninsula has changed by about 20% of its area. Legacy 19030304 Wood River was subdivided which has created a reduced area for the 19030304 Wood River and put Igushik River into its own hydrologic unit with a new code of 19030306. Legacy 19030402 Farewell Lake was divided into 19030406 Middle Flork Kuskokwim River and 19030407 South Fork Kuskokwim River. Legacy 19040204 Black River was subdivided. 19040204 will remain the Black River, and a new unit 19040206 Grass River is broken out. 19040502: The outlet for subbasin 19040502 was moved downstream from the current break across Tanana River at a confluence with a minor tributary to the more prominent confluence with Robertson River. This edit resulted in the addition of 2 subwatersheds to 19040502 and the removal of 2 watersheds from 19040503. Legacy 19040504 Delta River linework changed significantly. The legacy 19040504 had 3 separate outlets; Delta River, Delta Creek and Little Delta River. The boundary was adjusted so that 19040504 contained just the Delta River as a standard unit. The Delta Creek and Little Delta River where moved into 19040507. Legacy 19040507 Tanana Flats Linework changed significantly. 19040606 - Legacy boundary for 19040606 had the outlet at a location across the Huslia River downstream from the outlet of the South Fork Huslia River. The boundary was adjusted downstream to the major confluence where the Huslia River drains into the Koyukuk River, thus creating a standard HUC8 for the Huslia River. 1905: 19050202, 19050203, 19050301, 19050304, 19050403 19050202’s boundary was adjusted so that this unit contained all frontal drainage areas flowing into the southern portion of Kotzebue Sound. 19050203’s boundary was adjusted to that the unit included Eschscholtz Bay and all of the drainage areas flowing into it. 19050301’s boundary was adjusted so that this unit has one outlet and includes Selawik Lake. The frontal drainages flowing into Hotham Inlet were moved into unit 19050304. 19050304’s boundary was adjusted so that the unit included Hotham Inlet and the frontal drainages flowing into it. 19050403’s boundary was adjusted to a buffer distance of 1000 meters off shore. 19050500 - Kotzebue Sound: Added a new HUC8 unit to AK WBD for Kotzebue Sound. Inner coastal units that ended at the shore line were extended offshore to a 1000 meter buffer distance. Legacy 19060204 Ikpikpuk River absorbed Inaru River from Legacy 19060202 Legacy unit 19060202 contained 2 different stream systems flowing into 2 different bodies of water. The Inaru River flows into Admiralty Bay while the Kugrua River and the other small frontal drainages flows into the Chukchi Sea. The boundary was adjusted so that flow into Admiralty Bay/Dease Inlet was separate from flow into Chukchi Sea. The Inaru River, Admiralty Bay/Dease Inlet and all associated frontal drainages were added to subbasin 19060204. New Subbasin 19060206 is being named Admiralty Bay-Dease Inlet. This area use to be part of Subbasin 19060204 19020800 Cook Inlet is a new hydrologic unit as recommended by the Alaska in state stakeholders. 2011 - These updates where proposed by Forest Service partners within the Tongass National Forest. When major changes are made to the HUC8 container (i.e. the container is subdivided into multiple units) the national protocol has been to retire the old HUC8 code and name and assign new codes and names to the updates units 19010202 (Kuiu-Kupreanof-Mitkof-Etolin-Zarembo-Wrangell) is being retired and 2 new HUC8 units were formed. Kuiu Island, Mitkof Island and Kupreanof Island were split out into their own 8-digit unit HUC8 - 19010210 HU8_Name – Kuiu-Kupreanof-Mitkof Islands Zarembo Island, Wrangell Island and Etolin Island were subdivided into their own 8 digit unit HUC8 – 19010209 HU8_Name – Etolin-Zarembo-Wrangell Islands 19010203 (Baranof-Chichagof Islands)19010203 was retired. 19010203 was subdivided 3 new units; 2 island units and 1 channel unit. Chichagof Island was split out into its own 8-digit unit HUC8 – 19010211 HU8_Name – Chichagof Island Baranof and Kruzof Islands were subdivided into their own 8-digit unit HUC8 – 19010212 HU8_Name – Baranof Island Created a new water hydrologic unit for the channel between Chichagof Island and Baranof/Kruzof Islands. This new water unit would become a HUC10 unit within the "Water" subbasin 19010500. HUC10 – 1901050011 HUC10_Name - Peril Strait Because of the varying width of the channel the boundary was graduated from a 1,000 meter buffer to 100 meter buffer from the Low Tide Shoreline. The Low Tide Shoreline was provided by the Forest Service. A 1,000 meter buffer was used in the open channel to match the buffer distance used within the rest of SE AK WBD. There is a narrow portion of the channel where the boundary was gradually reduced from the 1,000 meter buffer to a 100 meter buffer. 2014 - Updated Alaska’s region 1904 based on a request from NHD program and approved by state partners. 1904 was subdivided 3 new 4-digit hydrologic units. The new units are 1907 – Upper Yukon River 190701 – Headwaters Yukon River 1908 – Middle Yukon River 1909 – Lower Yukon River 2016 - Updates to AK 8-digit units based on harmonization effort with Canada 19070504 (Eagle Creek-Yukon River) is being subdivided 2 new 8-digit hydrologic units. Original code and name are being retired. HUC8 - 19070505 (Tatonduk River-Yukon River) HUC8 - 19070506 (Charley River-Yukon River) 19060503 (Beaufort Lagoon) is being subdivided 3 new 8-digit hydrologic units. Original code and name are being retired. HUC8 - 19060504 (Kongakuat River-Beaufort Lagoon) HUC8 - 19060505 (Firth River) HUC8 - 19060506 (Babbage River) is completely within Canada Yukon Territory Arizona: Legacy 15010009 Fort Pierce Wash name changed to Fort Pearce Wash to account for misspell. Legacy 15010007 Hualapai Wash name should change as the wash is now in the adjacent Subbasin. Changed to Red Lake California: Legacy 18010109 Gualala-Salmon had an area the size of several 12-digit HUs that has been aggregated into the adjacent legacy 18050005 Tomales-Drake Bays as a result of coastal implementation. This is approved by the in-state WBD Steward and T3.Legacy 18030012 and new 18030012 Tulare-Buena Vista Lakes changed to Tulare Lake Bed as the boundary has changed so significantly that Buena Vista Lakes are no longer in the adjusted hydrologic unit. Legacy 18040001 and new 18040007 name changed from Upper Chowchilla-Upper Fresno to Fresno River as the Chowchilla is no longer in the adjusted hydrologic unit. Legacy 18040002 and new 18040002 name changed from Middle San Joaquin-Lower Merced-Lower Stanislaus to Lower San Joaquin River as Merced and Stanislaus Rivers are no longer in the adjusted hydrologic unit. Legacy 18050006 San Francisco-Coastal South will absorb 4 coastal 12-digit HUs from legacy 18060001 San Lorenzo-Soquel as a result of coastal implementation. This is approved by the in-state WBD Steward and the WBD National Technical Coordinators (NTC) Legacy 18060006 Central Coastal will absorb an area the size of 6 12-digit HU’s from legacy 18060012 Carmel which all drains directly to the Pacific Ocean. This is approved by the in-state WBD Steward and the WBD National Technical Coordinators (NTC) Portions of legacy 18060011, 18060012, and part of 19060001 will become a new subbasin accounting for all of these frontal pieces. It will be coded 18060015 and named Monterey Bay. This is approved by the in-state WBD Steward and the WBD National Technical Coordinators (NTC) Legacy 18060013 Santa Barbara Coastal had an area the size of one 12-digit HU which will be aggregated with legacy 18070101 Ventura as a result of coastal implementation. This is approved by the in-state WBD Steward and the WBD National Technical Coordinators (NTC) Legacy 18070104 Santa Monica Bay had an area the size of several 12-digit HUs which will be aggregated with legacy 18070106 San Gabriel as a result of coastal implementation. This is approved by the in-state WBD Steward and WBD National Technical Coordinators (NTC) Legacy 18100200 has now been subdivide into 18100201, 18100202, 18100203, and 18100204. The legacy name for 180100200 has been retained as the Salton Sea for new code 18100204. New names for the other subdivisions have been reviewed and accepted as follows: 18100201 Whitewater River 18100202 Carrizo Creek 18100203 San Felipe Creek Legacy 18040002 and new 18040051 name Middle San Joaquin-Lower Merced-Lower Stanislaus was change to Rock Creek-French Camp Slough. Legacy 18020124 Honcut Headwaters name and code have been retired. It was absorbed in to legacy 18020106 Lower Feather to form the new 18020159. WBD National Technical Coordinators (NTC) recommends the name retain the combined legacy names of Honcut Headwaters-Lower Feather. Legacy 18020120 Upper Butte and legacy 18020105 Lower Butte have been retired. The two hydrologic units were combined in to the new accepted code and name of 18020158 Butte Creek. Legacy 18020119 Mill-Big Chico, 18020103 Sacramento-Lower Thomes, and 18020114 Upper Elder Thomes have been retired. The accepted names and codes for the newly delineated hydrologic units to replace those areas are 18020157 Big Chico Creek-Sacramento River, 18020156 Thomes Creek-Sacramento River, and 18020155 Paynes Creek-Sacramento River. The following legacy names and codes have been retired: 18020113 Cottonwood Headwaters, 18020102 Lower Cottonwood, 18020101 Sacramento-Lower Cow-Lower Clear, 18020118 Upper Cow-Battle, and 18020112 Sacramento-Upper Clear. The accepted codes for the newly delineated hydrologic units that replace those areas will be 18020151-18020154. The approved names are: 18020151 Cow Creek 18020152 Cottonwood Creek 18020153 Battle Creek 18020154 Clear Creek-Sacramento River 18010111 code and name have been retired and the area has been subdivided. A portion is in 18010109 Gualala-Salmon, and the other portion in 18050005 Tomales-Drake Bays 18020107 code and name have been retired and the area is now included with 18020125 Upper Yuba 18020108 code and name have been retired and the area is now included with 18020126 Upper Bear 18020110 code and name have been retired and the area is now included with 18020116 Upper Cache 18030008 code and name have been retired and the area is now included with 18030012 Tulare Lake Bed 18030011 code and name have been retired and the area has been subdivided. A portion is in 18030012 Tulare Lake Bed, and the other portion in 18030009 Upper Dry 18040004 code and name have been retired and the area is now part of 18040011 Upper Calaveras California 18040005 code and name have been retired and the area is now part of 18040003 San Joaquin Delta, 18040012, 18040012 Upper Mokelumne, and 18040003 Upper Cosumnes 18020109 code and name have been retired and the area is now part of 18020163 Lower Sacramento 18020117 code and name have been retired and the area is now part of 18020162 Upper Putah 18060001 code and name have been retired, and the areas are now subdivided between 18050006 San Francisco Coastal South and 18060015 Monterey Bay 18060011 code and name have been retired and now is subdivided between 18060015 Monterey Bay and 18060005 Salinas 18060012 code and name have been retired and the area is now part of 18060006 Central Coast and 18060015 Monterey Bay Colorado: Legacy 14010006 Parachute-Roan name and code have been retired. This area has been combined with 14010005 Colorado Headwaters-Plateau. Connecticut: 01100007 code and name have been retired and the area is now part of 0110004 Quinnipiac Delaware: 02060007 code and name have been retired and this area now included with 02080110 Tangier 02060008 code and name have been retired and this area now included with 02080109 Nanticoke 02060009 code and name have been retired and this area is now part of 02080111 Pokomoke-Western Lower Delmarva and 02080110 Tangier 02060010 code and name have been retired and this area is now part of 02040303 Chincoteague Florida: Legacy 03090202 Everglades has been modified as follows: The largest part of 03090202 Everglades carries the legacy code and name. Subdivided out new Subbasin 03090206 Florida Southeast Coast Combined additional smaller portions of 03090202 with adjacent Subbasins. Louisiana: 2009 - USGS Water Science Center, Salt Lake City, UT. Recoded all HUC12 codes and DS codes for 08080100 Atchafalaya to 08080101 Atchafalaya. 08080101 is the correct code. During the development of the WBD the 12-digit hydrologic units were miscoded as 08080100. Maine Updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details. Massachusetts: 01070002 is retained for the headwaters of this original code, but ¾ of the original area is now coded 01070006. The area now coded 01070006 retained the original name for the area of legacy 01070002 and is called Merrimack, whereas 01070002 is not called Winnipesaukee River (other state documentation supporting this decision) New Hampshire: Legacy 01070002 Merrimack was subdivided in to 01070002 Merrimack to the North and 01070006 Merrimack River to the South. The technical team requests that the portion to the South retain the legacy code and name of 01070002, Merrimack, and that the northern hydrologic unit receive the code and name 01070006 Winnipesaukee River. There is no Merrimack River in the northern portion and the southern portion most closely resembles the legacy delineation. Additional updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details New York: Legacy 04150307 English-Salmon was subdivided into 04150307 Salmon and 04150308 Chateaugay-English. The Technical Team accepts this change. 2010- Edits were made to Lake Champlain Basin moving it from Region 02 to Region 04. Update to delineation data in Lake Champlain area on the US side and Canadian side. All lines within Canada are draft delineations only. These boundaries were based on Canada's 1:50,000 National Hydrography Network Work Units or were delineated using either 1:50,000 scale topos or CDED elevation data. These boundaries have not been fully reviewed or approved by either the Canadian federal or provincial agencies and are subject to change. Border polygons are based off of these internal boundaries within Canada and so are also subject to change within Canada. Edits made by USGS Salt Lake City, Water Science Center: to the Lake Champlain and surrounding subbasins to remove all shoreline representations from the WBD. The codes, DS codes and names where updated where necessary. 02010004 name and code have been retired, and this area was subdivided, part is in 04150404 Ausable River and part in 04150408 Lake Champlain. 02010006 name and code have been retired and this area was subdivided. Part is in 04150406 Saranac River and part is in 04150408 Lake Champlain. 02010001 name and code have been retired and this area was subdivided into 04150401 Mettawee River and 04150408 Lake Champlain The new Lake Champlain unit 04150408 is made up of parts of original HUC250K units 02010001, 02010002, 02010003, 02010004, 02010005, 02010006 and 02010007 Additional updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details North Carolina: Legacy subbasin 03030001 and legacy subbasin 03020106 have been combined and recommended for acceptance as a new 6-digit Basin 030203 Onslow Bay. Legacy Subbasin 03030001 New has been recoded and renamed to 03020302 New River. The technical team accepts the new code and name. Legacy Subbasin 03020106 Bogue-Core Sounds has been recoded and renamed to 03020301 White Oak River. The technical team accepts the new code and name. 03040207 code and name are still in use, but the portion that stretches along the coast has been broken out to a new 03040208 Coastal Carolina North Dakota: Legacy 10160007 East Missouri Coteau, changed to North Fork Snake as that is a better hydrologic representation of the hydrologic unit. Legacy 10170103 South Big Sioux Coteau name changed to Lake Thompson Legacy 10170201 Middle Big Sioux Coteau name changed to Upper Big Sioux Legacy 10170202 Upper Big Sioux name changed to Middle Big Sioux Because legacy 10170203 Lower Big Sioux should stay the same, it doesn’t make sense not to have a middle and an upper. Although the boundaries have significantly relocated, it seem like most viable option is to retain the Upper, Middle, Lower naming convention. Additional updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details Oregon: Legacy 17100304 Coos was subdivided into 17100304 Coos to the north and 17100306 Sixes to the south. The Technical team accepts this change. South Carolina: Legacy 03040207 Carolina Coastal-Sampit was subdivided into a southern portion called 03040207 Carolina Coastal-Sampit and a northern portion newly coded and named 03040208 Coastal Carolina. The technical team recognizes this as an acceptable solution, however, future coastal delineations may require additional modification. Legacy 03050202 South Carolina Coastal has now been subdivided into subbasins 03050202 South Carolina Coastal and 03050209 Bulls Bay with an additional portion of 03050202 being aggregated in with legacy 03050201 Legacy 03050208 Broad-St. Helena has had the following modifications which the NTC concurs with: 03050208 Broad-St. Helena code and name retained into a much smaller unit capturing only the Broad-St. Helena Rivers Subdivided into new 03060110 Calibogue Sound-Wright River, and now part of the adjacent Subregion to the south. Subdivided into new 03050210 St. Helena Island portion combined with 03050207 Salkehatchie. Legacy 03050205 name is changed to Four Hole Swamp (from Edisto...this name was flipped with the hydrologic unit the water feature resides in). The WBD National Technical Team recommended that this name not be reused as it has been historically assigned to 03050206, but all in state interagency folks felt strongly that it should be reused as that is by far the predominant feature for the HU. Reports since 2005 reflect this. Legacy 03050206 name is changed to Edisto River to reflect the major hydrologic feature. South Dakota: 2009 - Edits made by in-state data steward; all of sub-basin 10160010 (now retired) was recoded to 10160011 (Lower James); In addition to the recoding of this 8-digit level unit in the James Basin, this group of edits primarily consisted of minor corrections to linework and 12-digit downstream codes, populating ncontrb_A fields of selected 12-digit units, and tweaking selected 5th- and 6th-level unit names to facilitate merging with GNIS. Texas: Legacy13070008 Lower Pecos was subdivided into a northern and southern portion. The northern portion retains the 13070008 code but name should be Pecos. The new subdivided 13070012 hydrologic unit should carry the legacy name Lower Pecos. Legacy 13090002 Lower Rio Grande is missing from the current WBD. Vermont: Updated 01110000 from Region 01 to Region 04 and is now 04150500 (St. Francois River). Craig Johnston (USGS) pointed out that this unit contains the St. Francois River which flows up into Canada and then dumps into the St Lawrence River. Region 01 is Maine Coastal drainage's while region 04 is St. Lawrence drainage's, so this unit really belongs in region 04. 2010- Edits were made to Lake Champlain Basin moving it from Region 02 to Region 04. Update to delineation data in Lake Champlain area on the US side and Canadian side. All lines within Canada are draft delineations only. These boundaries were based on Canada's 1:50,000 National Hydrography Network Work Units or were delineated using either 1:50,000 scale topos or CDED elevation data. These boundaries have not been fully reviewed or approved by either the Canadian federal or provincial agencies and are subject to change. Border polygons are based off of these internal boundaries within Canada and so are also subject to change within Canada. Edits made by USGS Salt Lake City, Water Science Center: to the Lake Champlain and surrounding subbasins to remove all shoreline representations from the WBD. The codes, DS codes and names where updated where necessary. 02010001 name and code have been retired and this area was subdivided into 04150401 Mettawee River and 04150408 Lake Champlain. 02010002 name and code have been retired and this area was subdivided into 04150402 Otter Creek and 04150408 Lake Champlain. 02010003 name and code have been retired and this area was subdivided into 04150403 Winooski River and 04150408 Lake Champlain. 02010005 name and code have been retired and this area was subdivided into 04150405 Lamoille River and 04150408 Lake Champlain. 02010007 name and code have been retired and this area was subdivided into 04150407 Missiquoi River and 04150408 Lake Champlain. The new Lake Champlain unit 04150408 is made up of parts of original HUC250K units 02010001, 02010002, 02010003, 02010004, 02010005, 02010006 and 02010007. Additional updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details Wisconsin: Legacy 07090001Upper Rock keeps the same code and name but the original hydrologic unit delineation changed significantly. Legacy 07090002 Crawfish keeps the same code and is renamed to Middle Rock. The original hydrologic unit delineation changed significantly.2016-01-01The following section describes updates to the WBD data model (2012-2016). July 2012 National responsibility for stewardship and maintenance of the WBD transferred from NRCS to the USGS. As a result the WBD data model was updated and the data was incorporated into the NHD database. WBD model updated based on input from NRCS, USGS, NHD program and user community. WBD polygon dataset subdivided into individual polygon datasets for each level of hydrologic units. Two additional datasets added for the next 2 levels of subdivisions (14- and 16-digit) but are not required for each state to populate these. Attribute tables for polygons and lines were updated with some fields being added, renamed or removed. See below for a list of changes. WBD Line attribute table changes: Old Model: HU_LEVEL LINESOURCE META_ID – removed – Feature level metadata functionality is added to track updates in the new model LEFT_HUC_8 – removed RIGHT_HUC_8 – removed New Model: Permanent_Identifier – New field for feature level metadata Source_FeatureID – New field for feature level metadata Meta_SourceID – New field for feature level metadata Source_DataDesc – New field for feature level metadata Source_Originator – New field for feature level metadata HU_Level HU_Class – New field populated with the number of digits of the hydrologic unit LoadDate – New field for feature level metadata LineSource WBD Polygon attribute table changes: Codes and names moved from single polygon dataset to the appropriate hydrologic unit dataset for each level Old Model: HUC_8 – moved to 8-digit polygon dataset HUC_10 – moved to 10-digit polygon dataset HUC_12 – moved to 12-digit polygon dataset ACRES – re-named to AREA_ACRES NCONTRB_A HU_10_GNIS – Replaced with Gaz_ID HU_12_GNIS – Replaced with Gaz_ID HU_10_DS – Removed from new model HU_10_NAME – moved to 10-digit polygon dataset HU_10_MOD – moved to 10-digit polygon dataset HU_10_TYPE – moved to 10-digit polygon dataset HU_12_DS – moved to 12-digit polygon dataset HU_12_NAME – moved to 12-digit polygon dataset HU_12_MOD – moved to 12-digit polygon dataset HU_12_TYPE – moved to 12-digit polygon dataset META_ID - removed – Feature level metadata functionality is added to track updates in the new model STATES New Model: Fields included in all levels of hydrologic unit polygon datasets. Gaz_ID – Old model was the GNIS field Area_Acres - Renamed Area_SqKm – New field States LoadDate- New field HUC_"#digit" - For Example: HUC12 HU_"#digit"_Name - For Example: HU_12_Name Fields included with the 10-, 12-, 14- and 16- digit polygon datasets. HU_"#digit"_Type - For Example HU_12_Type HU_"#digit"_Mod - For Example HU_12_Mod Fields included with the 12-, 14- and 16- digit polygon datasets. NContrb_Acres NContrb_SqKm – New field Tables New Model: ExternalIDCrosswalk FeaturetoHUMod FeatureToMetadata Meta_ProcessDetail Meta_SourceDetail ProcessingParameters UpdateStatus WBD_Attributes WBD_Nav October 2012 Changes to the WBD data model include the elimination of the underscore "_" in field and table names, switching to camelCase. Other changes to the WBD data model include the elimination of the WBDPoint table, the WBDPointEvent table, and the WBDAtributes table. Fields have been added to the WBDHU12 polygon feature dataset that allow metadata record linking and also include the downstream attribute. NWIS drainage area line and polygon feature classes have been added also. New Model: WBD line dataset TNMID – Use to be PermanentID HULevel HUClass – New field populated with the number of digits of the hydrologic unit HUMod LineSource LoadDate – New field for feature level metadata (Source_FeatureID, Meta_SourceID, Source_DataDesc, Source_Originator fields removed from WBDLine dataset) WBD polygon dataset Fields included in all levels of hydrologic unit polygon datasets. TNMID – New field for feature level metadata MetaSourceID – New field for feature level metadata SourceDataDesc – New field for feature level metadata SourceOriginator – New field for feature level metadata SourceFeatureID – New field for feature level metadata LoadDate – New field for feature level metadata GNIS_ID = replaces Gaz_ID AreaAcres AreaSqKm States LoadDate HUC"digit" - for example: HUC12 Name Fields included with the 10-, 12-, 14- and 16- digit polygon datasets. HUType HUMod Fields included with the 12-, 14- and 16- digit polygon datasets. NContrbAcres NContrbSqKm Field included with the 12-digit polygon dataset. ToHUC – This attribute was included in the original WBD data model as HU_12_DS and represents the code of the next unit downstream. The values for this field were populated for the last version of the dataset in the old model by linking the 2 tables by the 12-digit code and calculating the value over. NWISDrainageArea polygon dataset added as a place holder for when these datasets are generated. Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate ReferenceTNMID SiteID AgencyCode SiteNumber StationName TotalDrainageArea ContributingDrainageArea NWISBoundary line dataset added as a place holder for when these datasets are generated. Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate ReferenceTNMID NonContributingDrainageArea polygon dataset added as a place holder for when these datasets are generated. Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate 2013 Changes to the WBD data model include updates to the field for the NonContributingDrainageArea polygon dataset, NWISBoundary line dataset and the NWISDrainageArea polygon dataset. This includes the addition of new fields and the re-naming of some of the existing fields. NWISDrainageArea polygon dataset: Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate ReferenceTNMIDNHDPointEvent – Renamed from ReferenceTNMID AgencyCode SiteNumber StationName ContributingDrainageAreaAcres – Originally called ContributingDrainageArea TotalDrainageAreaAcres – Originally called TotalDrainageArea ContributingDrainageAreaSqKm – New field TotalDrainageAreaSqKm – New field SiteID - Removed NWISBoundary line dataset: Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate ReferenceTNMIDPointEvent – Originally called ReferenceTNMID SiteNumber – New field NonContributingDrainageArea polygon dataset Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate NonContributingSqKm – New field NonContributingAcres – New field ReferenceTNMID12digitHU – New field Tables ExternalCrosswalk - Originally called ExternalIDCrosswalk FeatureToHUMod - removed FeatureToMetadata HUMod - NewField MetaProcessDetail - Previous version called Meta_ProcessDetail MetaSourceDetail - Previous version called Meta_SourceDetail ProcessingParameters UpdateStatus WBD_Attributes - removed WBDNavigation - Originally WBD_Nav 2014 2015 Changes to the WBD data model include updates or additions to the fields for the NonContributingDrainageArea polygon dataset, NWISBoundary line dataset and the NWISDrainageArea polygon dataset. The majority of these are due to the length of the original name for the field. A new line dataset was created for Non Contributing Area called NonContributingDrainageLine NWISBoundary was re-named NWISDrainageLine NWISDrainageArea polygon dataset: Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate AreaSqKm – New Field AgencyCode SiteNumber StationName TotalAreaSqMi – New Field NWISTotalAreaSqMi – New Field ContributingAreaSqMi – New Field NWISContributingAreaSqMi – New Field ReferenceTNMIDNHDPointEvent Remarks – New Field ContributingDrainageAreaAcres – Removed TotalDrainageAreaAcres – Removed ContributingDrainageAreaSqKm – Removed TotalDrainageAreaSqKm – Removed NWISDrainageLine line dataset Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate LengthKm – New Field LineSource – New Field Agency Code – New Field SiteNumber ReferenceTNMIDPointEvent – Removed NonContributingDrainageArea polygon dataset Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate AreaSqKm – New Field NonContributingAreaSqKm – Re-named from NonContributingSqKm Remarks – New Field NonContributingAcres - Removed ReferenceTNMID12digitHU - Removed NonContributingDrainageLine line dataset – New dataset Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate LengthKm LineSource 2016 WBDLine dataset TNMID HULevel - removed HUDigit - Originally called HUClass HUMod LineSource MetaSourceID LoadDate WBD polygon datasets Fields included with the 12-, 14- and 16- digit polygon datasets. NonContributingAreaAcres - previous version was NonContributingAcres NonContributingAreaSqKm - previous version was NonContributingSqKm2016-01-01The original hydrologic unit boundaries were hand-digitized on a digitizing table from the USGS 7.5 minute quadrangles. This process occurred over a span of approximately 20 years from 1980 to 2000.2000-01-01From 2005 to 2011, original dataset attribution was reviewed and revised to reflect the updates and changes made to the dataset. These revisions to the attribution were also made to ensure that the dataset met the Federal Standards for Delineation of Hydrologic Unit Boundaries. The NHD was used during this process to help with the naming and downstream coding of each unit. In some instances there were name discrepancies between the NHD and what was printed on the DRGs. In these instances the DRGs were used instead of the NHD.2011-01-01Additional information about the processes used to create and maintain the WBD after June of 2012 can be found in the table called METAPROCESSDETAIL. The process descriptions are linked using the TNMID to the FEATURETOMETADATA table. In addition the METASOURCEDETAIL table can also be linked to determine the sources used to create or update the WBD data.2012-01-01The new WBD (2005-2011) was reviewed on-screen by USGS, EPA, or NRCS personnel using DRGs and DOQss as base maps. Hydrologic Units that were less than 10,000 acres (for the 12-digit units) and 40,000 acres (for the 10-digit units) were reviewed and if possible were dissolved out. Along the coastal areas, standard watersheds that fell within the federal guideline's size criteria (12-digit: 10,000-40,000 acres, 10-digit: 40,000-250,000 acres) were delineated. If possible the remaining frontals were left as their own units. Frontals that did not meet the size criteria were grouped together with other frontals within the overall 8-digit or 10-digit unit. Hydrologic units that were greater than 40,000 acres (12-digit units) and 250,000 acres (10-digit units) were reviewed. If possible these units where then subdivided into smaller units that met the size criteria. In some cases, additional breaks within the unit would not have made sense or have been very useful. For example: When the majority of the unit was made up by a major waterbody feature such as a lake or reservoir and the surrounding tributaries were too small to delineate as their own unit. In these instances the unit was left big.2011-01-01From 2005 to 2011, hydrologic units from surrounding states were used to edgematch watershed boundaries as they were developed.2011-01-01Hydrography data used for reference in watershed boundary delineation process24000National Hydrography DatasetNHD2016-01-01U.S. Geological SurveyU.S. Geological SurveyDenver, COVector Digital Datahttp://nhd.usgs.gov/data.htmlPublication dateAerial imagery used for reference in watershed boundary delineation24000Digital Orthophoto QuadsUSGSDOQU.S. Geological SurveyU.S. Geological SurveyUnknownRaster Digital Datahttp://datagateway.nrcs.usda.gov20100325Reference dataset for the 2-, 4-, 6- and 8-digit hydrologic units250000250K Hydrologic Unit BoundariesHUC250K1994-01-01U.S. Geological SurveyReston, VirginiaU.S. Geological SurveyVector Digital Datahttp://water.usgs.gov/lookup/getspatial?huc250kPublication date1994-01-01Base information for hydrologic unit delineation.240007.5 Minute Topographic Quadrangle SheetsUSGSTopoU.S. Geological SurveyReston, VirginiaU.S. Geological SurveyPaper MapPublication date1884-01-012006-01-01Base information for hydrologic unit delineation.24000U.S. Geological Survey Digital Raster Graphic (DRG)USGSDRG1999-01-01U.S. Geological SurveyU.S. Geological SurveyUnknownRaster Digital Datahttp://datagateway.nrcs.usda.govPublication date1999-01-01original metadataPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxtZXRhZGF0YT4NCiAgPGlk +aW5mbz4NCiAgICA8Y2l0YXRpb24+DQogICAgICA8Y2l0ZWluZm8+DQogICAgICAgIDxvcmlnaW4+ +VS5TLiBHZW9sb2dpY2FsIFN1cnZleSAoVVNHUyk8L29yaWdpbj4NCiAgICAgICAgPG9yaWdpbj5V +LlMuIERlcGFydG1lbnQgb2YgQWdyaWN1bHR1cmUgLSBOYXR1cmFsIFJlc291cmNlIENvbnNlcnZh +dGlvbiBTZXJ2aWNlIChOUkNTKTwvb3JpZ2luPg0KICAgICAgICA8b3JpZ2luPlUuUy4gRW52aXJv +bm1lbnRhbCBQcm90ZWN0aW9uIEFnZW5jeSAoRVBBKTwvb3JpZ2luPg0KICAgICAgICA8b3JpZ2lu +Pk90aGVyIEZlZGVyYWwsIFN0YXRlLCBhbmQgbG9jYWwgcGFydG5lcnMgKHNlZSBkYXRhc2V0IHNw +ZWNpZmljIG1ldGFkYXRhIGZvciBkZXRhaWxzIGh0dHA6Ly9uaGQudXNncy5nb3Yvd2JkX21ldGFk +YXRhLmh0bWwpPC9vcmlnaW4+DQogICAgICAgIDxwdWJkYXRlPjIwMTUxMjE2PC9wdWJkYXRlPg0K +ICAgICAgICA8dGl0bGU+TmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8 +L3RpdGxlPg0KICAgICAgICA8Z2VvZm9ybT5WZWN0b3IgRGlnaXRhbCBEYXRhIFNldDwvZ2VvZm9y +bT4NCiAgICAgICAgPG9ubGluaz5mdHA6Ly9yb2NreWZ0cC5jci51c2dzLmdvdi92ZGVsaXZlcnkv +RGF0YXNldHMvU3RhZ2VkL0h5ZHJvZ3JhcGh5L1dCRC9OYXRpb25hbC9HREIvTmF0aW9uYWxfV0JE +LnppcDwvb25saW5rPg0KICAgICAgPC9jaXRlaW5mbz4NCiAgICA8L2NpdGF0aW9uPg0KICAgIDxk +ZXNjcmlwdD4NCiAgICAgIDxhYnN0cmFjdD5UaGUgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQg +KFdCRCkgaXMgYSBjb21wcmVoZW5zaXZlIGFnZ3JlZ2F0ZWQgY29sbGVjdGlvbiBvZiBoeWRyb2xv +Z2ljIHVuaXQgZGF0YSBjb25zaXN0ZW50IHdpdGggdGhlIG5hdGlvbmFsIGNyaXRlcmlhIGZvciBk +ZWxpbmVhdGlvbiBhbmQgcmVzb2x1dGlvbi4gSXQgZGVmaW5lcyB0aGUgYXJlYWwgZXh0ZW50IG9m +IHN1cmZhY2Ugd2F0ZXIgZHJhaW5hZ2UgdG8gYSBwb2ludCBleGNlcHQgaW4gY29hc3RhbCBvciBs +YWtlIGZyb250IGFyZWFzIHdoZXJlIHRoZXJlIGNvdWxkIGJlIG11bHRpcGxlIG91dGxldHMgYXMg +c3RhdGVkIGJ5IHRoZSAiRmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBO +YXRpb25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKSIg4oCcU3RhbmRhcmTigJ0g +KGh0dHA6Ly9wdWJzLnVzZ3MuZ292L3RtLzExL2EzLykuIFdhdGVyc2hlZCBib3VuZGFyaWVzIGFy +ZSBkZXRlcm1pbmVkIHNvbGVseSB1cG9uIHNjaWVuY2UtYmFzZWQgaHlkcm9sb2dpYyBwcmluY2lw +bGVzLCBub3QgZmF2b3JpbmcgYW55IGFkbWluaXN0cmF0aXZlIGJvdW5kYXJpZXMgb3Igc3BlY2lh +bCBwcm9qZWN0cywgbm9yIHBhcnRpY3VsYXIgcHJvZ3JhbSBvciBhZ2VuY3kuIFRoaXMgZGF0YXNl +dCByZXByZXNlbnRzIHRoZSBoeWRyb2xvZ2ljIHVuaXQgYm91bmRhcmllcyB0byB0aGUgMTItZGln +aXQgKDZ0aCBsZXZlbCkgZm9yIHRoZSBlbnRpcmUgVW5pdGVkIFN0YXRlcy4gIFNvbWUgYXJlYXMg +bWF5IGFsc28gaW5jbHVkZSBhZGRpdGlvbmFsIHN1YmRpdmlzaW9ucyByZXByZXNlbnRpbmcgdGhl +IDE0LSBhbmQgMTYtZGlnaXQgaHlkcm9sb2dpYyB1bml0IChIVSkuIEF0IGEgbWluaW11bSwgdGhl +IEhVcyBhcmUgZGVsaW5lYXRlZCBhdCAxOjI0LDAwMC1zY2FsZSBpbiB0aGUgY29udGVybWlub3Vz +IFVuaXRlZCBTdGF0ZXMsIDE6MjUsMDAwLXNjYWxlIGluIEhhd2FpaSwgUGFjaWZpYyBiYXNpbiBh +bmQgdGhlIENhcmliYmVhbiwgYW5kIDE6NjMsMzYwLXNjYWxlIGluIEFsYXNrYSwgbWVldGluZyB0 +aGUgTmF0aW9uYWwgTWFwIEFjY3VyYWN5IFN0YW5kYXJkcyAoTk1BUykuIEhpZ2hlciByZXNvbHV0 +aW9uIGJvdW5kYXJpZXMgYXJlIGJlaW5nIGRldmVsb3BlZCB3aGVyZSBwYXJ0bmVycyBhbmQgZGF0 +YSBleGlzdCBhbmQgd2lsbCBiZSBpbmNvcnBvcmF0ZWQgYmFjayBpbnRvIHRoZSBXQkQuIFdCRCBk +YXRhIGFyZSBkZWxpdmVyZWQgYXMgYSBkYXRhc2V0IG9mIHBvbHlnb25zIGFuZCBjb3JyZXNwb25k +aW5nIGxpbmVzIHRoYXQgZGVmaW5lIHRoZSBib3VuZGFyeSBvZiB0aGUgcG9seWdvbi4gICBXQkQg +cG9seWdvbiBhdHRyaWJ1dGVzIGluY2x1ZGUgaHlkcm9sb2dpYyB1bml0IGNvZGVzIChIVUMpLCBz +aXplIChpbiB0aGUgZm9ybSBvZiBhY3JlcyBhbmQgc3F1YXJlIGtpbG9tZXRlcnMpLCBuYW1lLCBk +b3duc3RyZWFtIGh5ZHJvbG9naWMgdW5pdCBjb2RlLCB0eXBlIG9mIHdhdGVyc2hlZCwgbm9uLWNv +bnRyaWJ1dGluZyBhcmVhcywgYW5kIGZsb3cgbW9kaWZpY2F0aW9ucy4gVGhlIEhVQyBkZXNjcmli +ZXMgd2hlcmUgdGhlIHVuaXQgaXMgaW4gdGhlIGNvdW50cnkgYW5kIHRoZSBsZXZlbCBvZiB0aGUg +dW5pdC4gV0JEIGxpbmUgYXR0cmlidXRlcyBjb250YWluIHRoZSBoaWdoZXN0IGxldmVsIG9mIGh5 +ZHJvbG9naWMgdW5pdCBmb3IgZWFjaCBib3VuZGFyeSwgbGluZSBzb3VyY2UgaW5mb3JtYXRpb24g +YW5kIGZsb3cgbW9kaWZpY2F0aW9ucy48L2Fic3RyYWN0Pg0KICAgICAgPHB1cnBvc2U+VGhlIGlu +dGVudCBvZiBkZWZpbmluZyBIeWRyb2xvZ2ljIFVuaXRzIChIVSkgd2l0aGluIHRoZSBXYXRlcnNo +ZWQgQm91bmRhcnkgRGF0YXNldCBpcyB0byBlc3RhYmxpc2ggYSBiYXNlLWxpbmUgZHJhaW5hZ2Ug +Ym91bmRhcnkgZnJhbWV3b3JrLCBhY2NvdW50aW5nIGZvciBhbGwgbGFuZCBhbmQgc3VyZmFjZSBh +cmVhcy4gSHlkcm9sb2dpYyB1bml0cyBhcmUgaW50ZW5kZWQgdG8gYmUgdXNlZCBhcyBhIHRvb2wg +Zm9yIHdhdGVyLXJlc291cmNlIG1hbmFnZW1lbnQgYW5kIHBsYW5uaW5nIGFjdGl2aXRpZXMgcGFy +dGljdWxhcmx5IGZvciBzaXRlLXNwZWNpZmljIGFuZCBsb2NhbGl6ZWQgc3R1ZGllcyByZXF1aXJp +bmcgYSBsZXZlbCBvZiBkZXRhaWwgcHJvdmlkZWQgYnkgbGFyZ2Utc2NhbGUgbWFwIGluZm9ybWF0 +aW9uLiBUaGUgV0JEIGNvbXBsZW1lbnRzIHRoZSBOYXRpb25hbCBIeWRyb2dyYXBoeSBEYXRhc2V0 +IChOSEQpIGFuZCBzdXBwb3J0cyBudW1lcm91cyBwcm9ncmFtbWF0aWMgbWlzc2lvbnMgYW5kIGFj +dGl2aXRpZXMgaW5jbHVkaW5nOiB3YXRlcnNoZWQgbWFuYWdlbWVudCwgcmVoYWJpbGl0YXRpb24g +YW5kIGVuaGFuY2VtZW50LCBhcXVhdGljIHNwZWNpZXMgY29uc2VydmF0aW9uIHN0cmF0ZWdpZXMs +IGZsb29kIHBsYWluIG1hbmFnZW1lbnQgYW5kIGZsb29kIHByZXZlbnRpb24sIHdhdGVyLXF1YWxp +dHkgaW5pdGlhdGl2ZXMgYW5kIHByb2dyYW1zLCBkYW0gc2FmZXR5IHByb2dyYW1zLCBmaXJlIGFz +c2Vzc21lbnQgYW5kIG1hbmFnZW1lbnQsIHJlc291cmNlIGludmVudG9yeSBhbmQgYXNzZXNzbWVu +dCwgd2F0ZXIgZGF0YSBhbmFseXNpcyBhbmQgd2F0ZXIgY2Vuc3VzLjwvcHVycG9zZT4NCiAgICAg +IDxzdXBwbGluZj5UaGUgV0JEIHdhcyBwcm9kdWNlZCBhbmQgaXMgbWFpbnRhaW5lZCB0aHJvdWdo +IGEgY29vcGVyYXRpdmUgcHJvY2VzcyBpbnZvbHZpbmcgc3RhdGUsIGZlZGVyYWwgYW5kIGxvY2Fs +IHBhcnRuZXJzLiBQcm9jZXNzIGluZm9ybWF0aW9uIGZvciBhIHNwZWNpZmljIHN0YXRlIG9yIHJl +Z2lvbiBjYW4gYmUgZm91bmQgd2l0aGluIHRoZSBzdGF0ZSBzcGVjaWZpYyBtZXRhZGF0YSBsb2Nh +dGVkIGF0IGh0dHA6Ly9uaGQudXNncy5nb3Yvd2JkX21ldGRhdGEuaHRtbC4gVGhpcyBtZXRhZGF0 +YSBmaWxlIGhhcyBpbmZvcm1hdGlvbiBmb3IgV0JEIGZlYXR1cmVzIGNvbnRhaW5lZCBpbiB0aGUg +V0JEIGZlYXR1cmUgZGF0YXNldC4gVGhpcyBpbmNsdWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUg +Mi0sIDQtLCA2LSwgOC0sIDEwLSwgMTItLCAxNC0sIDE2LWRpZ2l0IHBvbHlnb25zIGFuZCBXQkRf +TGluZSBkYXRhc2V0LiBVc2VycyBhY2Nlc3NpbmcgdGhlIFdCRCB2aWEgc2hhcGVmaWxlIHdpbGwg +bmVlZCB0byBzZWFyY2ggZm9yIHRoZSBhdHRyaWJ1dGlvbiByZWxhdGVkIHRvIHRoYXQgc3BlY2lm +aWMgZGF0YXNldC48L3N1cHBsaW5mPg0KICAgIDwvZGVzY3JpcHQ+DQogICAgPHRpbWVwZXJkPg0K +ICAgICAgPHRpbWVpbmZvPg0KICAgICAgICA8cm5nZGF0ZXM+DQogICAgICAgICAgPGJlZ2RhdGU+ +MTk4MDwvYmVnZGF0ZT4NCiAgICAgICAgICA8ZW5kZGF0ZT4yMDE2PC9lbmRkYXRlPg0KICAgICAg +ICA8L3JuZ2RhdGVzPg0KICAgICAgPC90aW1laW5mbz4NCiAgICAgIDxjdXJyZW50PnB1YmxpY2F0 +aW9uIGRhdGU8L2N1cnJlbnQ+DQogICAgPC90aW1lcGVyZD4NCiAgICA8c3RhdHVzPg0KICAgICAg +PHByb2dyZXNzPkNvbXBsZXRlPC9wcm9ncmVzcz4NCiAgICAgIDx1cGRhdGU+QXMgbmVlZGVkPC91 +cGRhdGU+DQogICAgPC9zdGF0dXM+DQogICAgPHNwZG9tPg0KICAgICAgPGJvdW5kaW5nPg0KICAg +ICAgICA8d2VzdGJjPi0xNzkuMjI5NjU1NDg3PC93ZXN0YmM+DQogICAgICAgIDxlYXN0YmM+MTc5 +Ljg1NjY3NDczNTwvZWFzdGJjPg0KICAgICAgICA8bm9ydGhiYz43MS40Mzk1NzI1OTAyPC9ub3J0 +aGJjPg0KICAgICAgICA8c291dGhiYz4tMTQuNDI0Njk1MDk0Mzwvc291dGhiYz4NCiAgICAgIDwv +Ym91bmRpbmc+DQogICAgPC9zcGRvbT4NCiAgICA8a2V5d29yZHM+DQogICAgICA8dGhlbWU+DQog +ICAgICAgIDx0aGVtZWt0PklTTyAxOTExNSBUb3BpYyBDYXRlZ29yeTwvdGhlbWVrdD4NCiAgICAg +ICAgPHRoZW1la2V5PmlubGFuZFdhdGVyczwvdGhlbWVrZXk+DQogICAgICAgIDx0aGVtZWtleT5X +YXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldDwvdGhlbWVrZXk+DQogICAgICAgIDx0aGVtZWtleT5X +QkQ8L3RoZW1la2V5Pg0KICAgICAgICA8dGhlbWVrZXk+SHlkcm9sb2dpYyBVbml0czwvdGhlbWVr +ZXk+DQogICAgICAgIDx0aGVtZWtleT5IeWRyb2xvZ2ljIFVuaXQgQ29kZTwvdGhlbWVrZXk+DQog +ICAgICAgIDx0aGVtZWtleT5IVUM8L3RoZW1la2V5Pg0KICAgICAgICA8dGhlbWVrZXk+UmVnaW9u +PC90aGVtZWtleT4NCiAgICAgICAgPHRoZW1la2V5PlN1Yi1yZWdpb248L3RoZW1la2V5Pg0KICAg +ICAgICA8dGhlbWVrZXk+QmFzaW48L3RoZW1la2V5Pg0KICAgICAgICA8dGhlbWVrZXk+U3ViLWJh +c2luPC90aGVtZWtleT4NCiAgICAgICAgPHRoZW1la2V5PldhdGVyc2hlZDwvdGhlbWVrZXk+DQog +ICAgICAgIDx0aGVtZWtleT5TdWJ3YXRlcnNoZWQ8L3RoZW1la2V5Pg0KICAgICAgICA8dGhlbWVr +ZXk+Mi1kaWdpdDwvdGhlbWVrZXk+DQogICAgICAgIDx0aGVtZWtleT40LWRpZ2l0PC90aGVtZWtl +eT4NCiAgICAgICAgPHRoZW1la2V5PjYtZGlnaXQ8L3RoZW1la2V5Pg0KICAgICAgICA8dGhlbWVr +ZXk+OC1kaWdpdDwvdGhlbWVrZXk+DQogICAgICAgIDx0aGVtZWtleT4xMC1kaWdpdDwvdGhlbWVr +ZXk+DQogICAgICAgIDx0aGVtZWtleT4xMi1kaWdpdDwvdGhlbWVrZXk+DQogICAgICAgIDx0aGVt +ZWtleT4xNC1kaWdpdDwvdGhlbWVrZXk+DQogICAgICAgIDx0aGVtZWtleT4xNi1kaWdpdDwvdGhl +bWVrZXk+DQogICAgICA8L3RoZW1lPg0KICAgICAgPHBsYWNlPg0KICAgICAgICA8cGxhY2VrdD5V +LlMuIERlcGFydG1lbnQgb2YgQ29tbWVyY2UsIDE5NzcsIENvdW50cmllcywgZGVwZW5kZW5jaWVz +LCBhcmVhcyBvZiBzcGVjaWFsIHNvdmVyZWlnbnR5LCBhbmQgdGhlaXIgcHJpbmNpcGFsIGFkbWlu +aXN0cmF0aXZlIGRpdmlzaW9ucyAoRmVkZXJhbCBJbmZvcm1hdGlvbiBQcm9jZXNzaW5nIFN0YW5k +YXJkcyAxMC0zKTogV2FzaGluZ3RvbiwgRC5DLiwgTmF0aW9uYWwgSW5zdGl0dXRlIG9mIFN0YW5k +YXJkcyBhbmQgVGVjaG5vbG9neS48L3BsYWNla3Q+DQogICAgICAgIDxwbGFjZWtleT5VUzwvcGxh +Y2VrZXk+DQogICAgICAgIDxwbGFjZWtleT5Vbml0ZWQgU3RhdGVzPC9wbGFjZWtleT4NCiAgICAg +IDwvcGxhY2U+DQogICAgPC9rZXl3b3Jkcz4NCiAgICA8YWNjY29uc3Q+Tm9uZTwvYWNjY29uc3Q+ +DQogICAgPHVzZWNvbnN0PlRoZSBkaXN0cmlidXRvciBzaGFsbCBub3QgYmUgaGVsZCBsaWFibGUg +Zm9yIGltcHJvcGVyIG9yIGluY29ycmVjdCB1c2Ugb2YgdGhpcyBkYXRhLCBiYXNlZCBvbiB0aGUg +ZGVzY3JpcHRpb24gb2YgYXBwcm9wcmlhdGUvaW5hcHByb3ByaWF0ZSB1c2VzIGRlc2NyaWJlZCBp +biB0aGlzIG1ldGFkYXRhIGRvY3VtZW50LiBJdCBpcyBzdHJvbmdseSByZWNvbW1lbmRlZCB0aGF0 +IHRoaXMgZGF0YSBpcyBkaXJlY3RseSBhY3F1aXJlZCBmcm9tIHRoZSBkaXN0cmlidXRvciBhbmQg +bm90IGluZGlyZWN0bHkgdGhyb3VnaCBvdGhlciBzb3VyY2VzIHdoaWNoIG1heSBoYXZlIGNoYW5n +ZWQgdGhlIGRhdGEgaW4gc29tZSB3YXkuIFRoZXNlIGRhdGEgc2hvdWxkIG5vdCBiZSB1c2VkIGF0 +IHNjYWxlcyBncmVhdGVyIHRoYW4gMToyNCwwMDAgZm9yIHRoZSBwdXJwb3NlIG9mIGlkZW50aWZ5 +aW5nIGh5ZHJvZ3JhcGhpYyB3YXRlcnNoZWQgYm91bmRhcnkgZmVhdHVyZSBsb2NhdGlvbnMgaW4g +dGhlIFVuaXRlZCBTdGF0ZXMuIFRoZSBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCBpcyBwdWJs +aWMgaW5mb3JtYXRpb24gYW5kIG1heSBiZSBpbnRlcnByZXRlZCBieSBhbGwgb3JnYW5pemF0aW9u +cywgYWdlbmNpZXMsIHVuaXRzIG9mIGdvdmVybm1lbnQsIG9yIG90aGVycyBiYXNlZCBvbiBuZWVk +czsgaG93ZXZlciwgdGhleSBhcmUgcmVzcG9uc2libGUgZm9yIHRoZSBhcHByb3ByaWF0ZSBhcHBs +aWNhdGlvbiBvZiB0aGUgZGF0YS4gUGhvdG9ncmFwaGljIG9yIGRpZ2l0YWwgZW5sYXJnZW1lbnQg +b2YgdGhlc2UgbWFwcyB0byBzY2FsZXMgZ3JlYXRlciB0aGFuIHRoYXQgYXQgd2hpY2ggdGhleSB3 +ZXJlIG9yaWdpbmFsbHkgZGVsaW5lYXRlZCBjYW4gcmVzdWx0IGluIG1pc3JlcHJlc2VudGF0aW9u +IG9mIHRoZSBkYXRhLiAgSWYgZW5sYXJnZWQsIHRoZSBtYXBzIHdpbGwgbm90IGluY2x1ZGUgdGhl +IGZpbmUgZGV0YWlsIHRoYXQgd291bGQgYmUgYXBwcm9wcmlhdGUgZm9yIG1hcHBpbmcgYXQgdGhl +IHNtYWxsIHNjYWxlLiAgRGlnaXRhbCBkYXRhIGZpbGVzIGFyZSBwZXJpb2RpY2FsbHkgdXBkYXRl +ZCBhbmQgdXNlcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBvYnRhaW5pbmcgdGhlIGxhdGVzdCB2ZXJz +aW9uIG9mIHRoZSBkYXRhIGZyb20gdGhlIHNvdXJjZSBkaXN0cmlidXRvci4gQWNrbm93bGVkZ21l +bnQgb2YgdGhlIG9yaWdpbmF0aW9uIGFnZW5jaWVzIHdvdWxkIGJlIGFwcHJlY2lhdGVkIGluIHBy +b2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGVzZSBkYXRhLjwvdXNlY29uc3Q+DQogICAgPHB0Y29udGFj +Pg0KICAgICAgPGNudGluZm8+DQogICAgICAgIDxjbnRvcmdwPg0KICAgICAgICAgIDxjbnRvcmc+ +VS5TLiBHZW9sb2dpY2FsIFN1cnZleTwvY250b3JnPg0KICAgICAgICA8L2NudG9yZ3A+DQogICAg +ICAgIDxjbnRhZGRyPg0KICAgICAgICAgIDxhZGRydHlwZT5NYWlsaW5nPC9hZGRydHlwZT4NCiAg +ICAgICAgICA8YWRkcmVzcz5VLlMuIEdlb2xvZ2ljYWwgU3VydmV5LCBOYXRpb25hbCBHZW9zcGF0 +aWFsIFRlY2huaWNhbCBPcGVyYXRpb25zIENlbnRlciwgUC5PLiBCb3ggMjUwNDY8L2FkZHJlc3M+ +DQogICAgICAgICAgPGNpdHk+RGVudmVyPC9jaXR5Pg0KICAgICAgICAgIDxzdGF0ZT5DTzwvc3Rh +dGU+DQogICAgICAgICAgPHBvc3RhbD44MDIyNTwvcG9zdGFsPg0KICAgICAgICA8L2NudGFkZHI+ +DQogICAgICAgIDxjbnR2b2ljZT4xLTg3Ny0yNzUtODc0NzwvY250dm9pY2U+DQogICAgICAgIDxj +bnRlbWFpbD5icGdlb0B1c2dzLmdvdjwvY250ZW1haWw+DQogICAgICA8L2NudGluZm8+DQogICAg +PC9wdGNvbnRhYz4NCiAgICA8YnJvd3NlPg0KICAgICAgPGJyb3dzZW4+ZnRwOi8vcm9ja3lmdHAu +Y3IudXNncy5nb3YvdmRlbGl2ZXJ5L0RhdGFzZXRzL1N0YWdlZC9IeWRyb2dyYXBoeS9XQkQvTmF0 +aW9uYWwvR0RCL05hdGlvbmFsX1dCRC5qcGc8L2Jyb3dzZW4+DQogICAgICA8YnJvd3NlZD5UaHVt +Ym5haWwgSlBHIGltYWdlPC9icm93c2VkPg0KICAgICAgPGJyb3dzZXQ+SlBFRzwvYnJvd3NldD4N +CiAgICA8L2Jyb3dzZT4NCiAgICA8ZGF0YWNyZWQ+RnVuZGluZyBmb3IgdGhlIFdhdGVyc2hlZCBC +b3VuZGFyeSBEYXRhc2V0IChXQkQpIHdhcyBwcm92aWRlZCBieSB0aGUgVVNEQS1OUkNTLCBVU0dT +IGFuZCBFUEEgYWxvbmcgd2l0aCBvdGhlciBmZWRlcmFsLCBzdGF0ZSBhbmQgbG9jYWwgYWdlbmNp +ZXNpZXMuIFJlcHJlc2VudGF0aXZlcyBmcm9tIG1hbnkgYWdlbmNpZXMgY29udHJpYnV0ZWQgYSBz +dWJzdGFudGlhbCBhbW91bnQgb2YgdGltZSBhbmQgc2FsYXJ5IHRvd2FyZHMgcXVhbGl0eSByZXZp +ZXcgYW5kIHVwZGF0aW5nIG9mIHRoZSBkYXRhc2V0IGluIG9yZGVyIHRvIG1lZXQgdGhlIFdCRCBT +dGFuZGFyZHMuIEFja25vd2xlZGdtZW50IG9mIHRoZSBvcmlnaW5hdGluZyBhZ2VuY2llcyB3b3Vs +ZCBiZSBhcHByZWNpYXRlZCBpbiBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhlc2UgZGF0YS4gU2Vl +IGRhdGFzZXQgc3BlY2lmaWMgbWV0YWRhdGEgZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb248L2RhdGFj +cmVkPg0KICAgIDxuYXRpdmU+RW52aXJvbm1lbnQgYXMgb2YgTWV0YWRhdGEgQ3JlYXRpb246IE1p +Y3Jvc29mdCBXaW5kb3dzIDcgVmVyc2lvbiA2LjEgKEJ1aWxkIDc2MDEpIFNlcnZpY2UgUGFjayAx +OyBFc3JpIEFyY0dJUyAxMC4yLjIgKEJ1aWxkIDM1NTIpIFNlcnZpY2UgUGFjayBOL0EgKEJ1aWxk +IE4vQSk8L25hdGl2ZT4NCiAgPC9pZGluZm8+DQogIDxkYXRhcXVhbD4NCiAgICA8YXR0cmFjYz4N +CiAgICAgIDxhdHRyYWNjcj5BbGwgYXR0ZW1wdHMgd2VyZSBtYWRlIHRvIHZlcmlmeSAxMDAlIG9m +IHRoZSBpbml0aWFsbHkgcmVxdWlyZWQgYXR0cmlidXRlcyB1c2luZyAyNEsgZGlnaXRhbCByYXN0 +ZXIgZ3JhcGhpY3MgKERSR3MpIGFzIHRoZSBiYXNlLiBBZGRpdGlvbmFsIGRhdGFzZXRzLCBsaWtl +IHRoZSBHZW9ncmFwaGljIE5hbWVzIEluZm9ybWF0aW9uIFN5c3RlbSAoR05JUykgYW5kIE5IRCwg +bWF5IGFsc28gaGF2ZSBiZWVuIHVzZWQgdG8gdmVyaWZ5IGF0dHJpYnV0aW9uLiBUaGUgYWNjdXJh +Y3kgb2YgdGhpcyBkYXRhIGlzIGRlcGVuZGVudCBvbiB0aGUgbGV2ZWwgb2YgZGV0YWlsIG9mIHRo +ZSBzb3VyY2UgbWF0ZXJpYWwgYW5kIHRoZSBpbnRlcnByZXRhdGlvbiBwcm9jZWR1cmVzIGZvciBj +YXB0dXJpbmcgdGhhdCBzb3VyY2UuIE90aGVyIHNvdXJjZXMgYW5kIG1ldGhvZHMgbWF5IGhhdmUg +YmVlbiB1c2VkIHRvIGNyZWF0ZSBvciB1cGRhdGUgV0JEIGRhdGEuICBJbiBzb21lIGNhc2VzLCBh +ZGRpdGlvbmFsIGluZm9ybWF0aW9uIG1heSBiZSBmb3VuZCBpbiB0aGUgV0JEIE1ldGFkYXRhIHRh +YmxlLjwvYXR0cmFjY3I+DQogICAgPC9hdHRyYWNjPg0KICAgIDxsb2dpYz5MaW5lcywgcG9seWdv +bnMgYW5kIG5vZGVzIGNvbmZvcm0gdG8gdG9wb2xvZ2ljYWwgcnVsZXMuICBMaW5lcyBpbnRlcnNl +Y3Qgb25seSBhdCBub2RlcywgYW5kIGFsbCBub2RlcyBhbmNob3IgdGhlIGVuZHMgb2YgbGluZXMu +ICBMaW5lcyBkbyBub3Qgb3ZlcnNob290IG9yIHVuZGVyc2hvb3Qgb3RoZXIgbGluZXMgd2hlcmUg +dGhleSBhcmUgc3VwcG9zZWQgdG8gbWVldC4gIFRoZXJlIGFyZSBubyBkdXBsaWNhdGUgbGluZXMu +ICBMaW5lcyBib3VuZCBwb2x5Z29ucy4gIEdhcHMgYW5kIG92ZXJsYXBzIGFtb25nIHBvbHlnb25z +IGRvIG5vdCBleGlzdC4gIEFsbCBwb2x5Z29ucyBjbG9zZS48L2xvZ2ljPg0KICAgIDxjb21wbGV0 +ZT5UaGUgV0JEIGNvbnRhaW5zIGNvbXBsZXRlZCBwb2x5Z29ucyBhdCBldmVyeSBsZXZlbCBmb3Ig +dGhlIFVuaXRlZCBTdGF0ZXMuIEFsbCByZXF1aXJlZCBmaWVsZHMgd2l0aGluIHRoZSBwb2x5Z29u +IGFuZCBsaW5lIGRhdGFzZXRzIGFyZSBwb3B1bGF0ZWQuIFNvbWUgb2YgdGhlc2UgZmllbGRzIG1h +eSBiZSBwb3B1bGF0ZWQgd2l0aCBhIHplb3IgIjAiLiBUaGUgbGluZXMgY29pbmNpZGVudCB3aXRo +IHRoZSBpbnRlcm5hdGlvbmFsIGJvdW5kYXJ5IGFyZSBhc3NpZ25lZCBhIEhVTGV2ZWwgdmFsdWUg +b2YgMC4gVGhlc2UgY2Fubm90IGJlIGF0dHJpYnV0ZWQgdW50aWwgdGhlIGFkamFjZW50IGludGVy +bmF0aW9uYWwgdW5pdHMgYXJlIGFkZGVkIGF0IHdoaWNoIHBvaW50IHRoZSBoaWdoZXN0IGxldmVs +IG9mIGh5ZHJvbG9naWMgdW5pdCBjYW4gYmUgZGV0ZXJtaW5lZC4gQSBkZXRhaWxlZCBkZXNjcmlw +dGlvbiBvZiBkZWxpbmVhdGlvbiBtZXRob2RzIGFuZCBmdWxsIGF0dHJpYnV0ZSBkZWZpbml0aW9u +cyBjYW4gYmUgZm91bmQgaW4gdGhlIFdCRCBTdGFuZGFyZHMuIFVzZXJzIGFyZSBhZHZpc2VkIHRv +IGNhcmVmdWxseSByZWFkIHRoZSBtZXRhZGF0YSByZWNvcmQgZm9yIGFkZGl0aW9uYWwgZGV0YWls +cy48L2NvbXBsZXRlPg0KICAgIDxwb3NhY2M+DQogICAgICA8aG9yaXpwYT4NCiAgICAgICAgPGhv +cml6cGFyPlRoZSBXQkQgd2FzIHByb2R1Y2VkIHVzaW5nIGEgdmFyaWV0eSBvZiBkaWdpdGFsIHNw +YXRpYWwgZGF0YSBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIERpZ2l0YWwgUmFzdGVyIEdy +YXBoaWNzIChEUkdzKSwgYWVyaWFsIGltYWdlcnkgYW5kIGRpZ2l0YWwgZWxldmF0aW9uIG1vZGVs +cyAoREVNKS4gSXQgaXMgYXNzdW1lZCB0aGVzZSBkYXRhIGFyZSBtYXBwZWQgYXQgYXBwcm94aW1h +dGVseSAxOjI0LDAwMC1zY2FsZSBhbmQgY29udGFpbiBhIG1pbmltdW0gaW5oZXJlbnQgZXJyb3Ig +b2YgKy8tIDQwIGZlZXQuIEl0IHNob3VsZCBiZSBub3RlZCB0aGF0IHRoZSBXQkQgaXMgdW5kZXJn +b2luZyBjb250aW51b3VzIHVwZGF0ZSBhcyBzb3VyY2UgZGF0YSBpbXByb3ZlcyBhbmQgYXMgaHlk +cm9sb2dpYyBpbnRlcnByZXRhdGlvbnMgYXJlIHJlZmluZWQuIFdoaWxlIGdlbmVyYWwgcnVsZXMg +b2YgaHlkcm9sb2d5IHdlcmUgdXNlZCBpbiBkZWxpbmVhdGlvbiwgbG9jYXRpb25zIG9mIGJvdW5k +YXJpZXMgbWF5IGJlIHN1YmplY3RpdmUgaW4gc29tZSBjYXNlcy4gQWRkaXRpb25hbCBpbmZvcm1h +dGlvbiBtYXkgYmUgZm91bmQgaW4gdGhlIFdCRCBNZXRhZGF0YSB0YWJsZS48L2hvcml6cGFyPg0K +ICAgICAgPC9ob3JpenBhPg0KICAgICAgPHZlcnRhY2M+DQogICAgICAgIDx2ZXJ0YWNjcj5BIGZv +cm1hbCBhY2N1cmFjeSBhc3Nlc3NtZW50IG9mIHRoZSB2ZXJ0aWNhbCBwb3NpdGlvbmFsIGluZm9y +bWF0aW9uIGluIHRoZSBkYXRhIHNldCBoYXMgZWl0aGVyIG5vdCBiZWVuIGNvbmR1Y3RlZCwgb3Ig +aXMgbm90IGFwcGxpY2FibGUuPC92ZXJ0YWNjcj4NCiAgICAgIDwvdmVydGFjYz4NCiAgICA8L3Bv +c2FjYz4NCiAgICA8bGluZWFnZT4NCiAgICAgIDxzcmNpbmZvPg0KICAgICAgICA8c3JjY2l0ZT4N +CiAgICAgICAgICA8Y2l0ZWluZm8+DQogICAgICAgICAgICA8b3JpZ2luPlUuUy4gR2VvbG9naWNh +bCBTdXJ2ZXk8L29yaWdpbj4NCiAgICAgICAgICAgIDxwdWJkYXRlPlVua25vd248L3B1YmRhdGU+ +DQogICAgICAgICAgICA8dGl0bGU+Ny41IE1pbnV0ZSBUb3BvZ3JhcGhpYyBRdWFkcmFuZ2xlIFNo +ZWV0czwvdGl0bGU+DQogICAgICAgICAgICA8Z2VvZm9ybT5QYXBlciBNYXA8L2dlb2Zvcm0+DQog +ICAgICAgICAgICA8cHViaW5mbz4NCiAgICAgICAgICAgICAgPHB1YnBsYWNlPlJlc3RvbiwgVmly +Z2luaWE8L3B1YnBsYWNlPg0KICAgICAgICAgICAgICA8cHVibGlzaD5VLlMuIEdlb2xvZ2ljYWwg +U3VydmV5PC9wdWJsaXNoPg0KICAgICAgICAgICAgPC9wdWJpbmZvPg0KICAgICAgICAgIDwvY2l0 +ZWluZm8+DQogICAgICAgIDwvc3JjY2l0ZT4NCiAgICAgICAgPHNyY3NjYWxlPjI0MDAwPC9zcmNz +Y2FsZT4NCiAgICAgICAgPHR5cGVzcmM+RGlnaXRhbCBhbmQvb3IgSGFyZGNvcHkgUmVzb3VyY2Vz +PC90eXBlc3JjPg0KICAgICAgICA8c3JjdGltZT4NCiAgICAgICAgICA8dGltZWluZm8+DQogICAg +ICAgICAgICA8cm5nZGF0ZXM+DQogICAgICAgICAgICAgIDxiZWdkYXRlPjE4ODQ8L2JlZ2RhdGU+ +DQogICAgICAgICAgICAgIDxlbmRkYXRlPjIwMDY8L2VuZGRhdGU+DQogICAgICAgICAgICA8L3Ju +Z2RhdGVzPg0KICAgICAgICAgIDwvdGltZWluZm8+DQogICAgICAgICAgPHNyY2N1cnI+UHVibGlj +YXRpb24gZGF0ZTwvc3JjY3Vycj4NCiAgICAgICAgPC9zcmN0aW1lPg0KICAgICAgICA8c3JjY2l0 +ZWE+VVNHU1RvcG88L3NyY2NpdGVhPg0KICAgICAgICA8c3JjY29udHI+QmFzZSBpbmZvcm1hdGlv +biBmb3IgaHlkcm9sb2dpYyB1bml0IGRlbGluZWF0aW9uLjwvc3JjY29udHI+DQogICAgICA8L3Ny +Y2luZm8+DQogICAgICA8c3JjaW5mbz4NCiAgICAgICAgPHNyY2NpdGU+DQogICAgICAgICAgPGNp +dGVpbmZvPg0KICAgICAgICAgICAgPG9yaWdpbj5VLlMuIEdlb2xvZ2ljYWwgU3VydmV5PC9vcmln +aW4+DQogICAgICAgICAgICA8cHViZGF0ZT4xOTk5PC9wdWJkYXRlPg0KICAgICAgICAgICAgPHRp +dGxlPlUuUy4gR2VvbG9naWNhbCBTdXJ2ZXkgRGlnaXRhbCBSYXN0ZXIgR3JhcGhpYyAoRFJHKTwv +dGl0bGU+DQogICAgICAgICAgICA8Z2VvZm9ybT5SYXN0ZXIgRGlnaXRhbCBEYXRhPC9nZW9mb3Jt +Pg0KICAgICAgICAgICAgPHB1YmluZm8+DQogICAgICAgICAgICAgIDxwdWJwbGFjZT5Vbmtub3du +PC9wdWJwbGFjZT4NCiAgICAgICAgICAgICAgPHB1Ymxpc2g+VS5TLiBHZW9sb2dpY2FsIFN1cnZl +eTwvcHVibGlzaD4NCiAgICAgICAgICAgIDwvcHViaW5mbz4NCiAgICAgICAgICAgIDxvbmxpbms+ +aHR0cDovL2RhdGFnYXRld2F5Lm5yY3MudXNkYS5nb3Y8L29ubGluaz4NCiAgICAgICAgICA8L2Np +dGVpbmZvPg0KICAgICAgICA8L3NyY2NpdGU+DQogICAgICAgIDxzcmNzY2FsZT4yNDAwMDwvc3Jj +c2NhbGU+DQogICAgICAgIDx0eXBlc3JjPkRpZ2l0YWwgYW5kL29yIEhhcmRjb3B5IFJlc291cmNl +czwvdHlwZXNyYz4NCiAgICAgICAgPHNyY3RpbWU+DQogICAgICAgICAgPHRpbWVpbmZvPg0KICAg +ICAgICAgICAgPHJuZ2RhdGVzPg0KICAgICAgICAgICAgICA8YmVnZGF0ZT5Vbmtub3duPC9iZWdk +YXRlPg0KICAgICAgICAgICAgICA8ZW5kZGF0ZT4xOTk5PC9lbmRkYXRlPg0KICAgICAgICAgICAg +PC9ybmdkYXRlcz4NCiAgICAgICAgICA8L3RpbWVpbmZvPg0KICAgICAgICAgIDxzcmNjdXJyPlB1 +YmxpY2F0aW9uIGRhdGU8L3NyY2N1cnI+DQogICAgICAgIDwvc3JjdGltZT4NCiAgICAgICAgPHNy +Y2NpdGVhPlVTR1NEUkc8L3NyY2NpdGVhPg0KICAgICAgICA8c3JjY29udHI+QmFzZSBpbmZvcm1h +dGlvbiBmb3IgaHlkcm9sb2dpYyB1bml0IGRlbGluZWF0aW9uLjwvc3JjY29udHI+DQogICAgICA8 +L3NyY2luZm8+DQogICAgICA8c3JjaW5mbz4NCiAgICAgICAgPHNyY2NpdGU+DQogICAgICAgICAg +PGNpdGVpbmZvPg0KICAgICAgICAgICAgPG9yaWdpbj5VLlMuIEdlb2xvZ2ljYWwgU3VydmV5PC9v +cmlnaW4+DQogICAgICAgICAgICA8cHViZGF0ZT5Vbmtub3duPC9wdWJkYXRlPg0KICAgICAgICAg +ICAgPHRpdGxlPkRpZ2l0YWwgT3J0aG9waG90byBRdWFkczwvdGl0bGU+DQogICAgICAgICAgICA8 +Z2VvZm9ybT5SYXN0ZXIgRGlnaXRhbCBEYXRhPC9nZW9mb3JtPg0KICAgICAgICAgICAgPHB1Ymlu +Zm8+DQogICAgICAgICAgICAgIDxwdWJwbGFjZT5Vbmtub3duPC9wdWJwbGFjZT4NCiAgICAgICAg +ICAgICAgPHB1Ymxpc2g+VS5TLiBHZW9sb2dpY2FsIFN1cnZleTwvcHVibGlzaD4NCiAgICAgICAg +ICAgIDwvcHViaW5mbz4NCiAgICAgICAgICAgIDxvbmxpbms+aHR0cDovL2RhdGFnYXRld2F5Lm5y +Y3MudXNkYS5nb3Y8L29ubGluaz4NCiAgICAgICAgICA8L2NpdGVpbmZvPg0KICAgICAgICA8L3Ny +Y2NpdGU+DQogICAgICAgIDxzcmNzY2FsZT4yNDAwMDwvc3Jjc2NhbGU+DQogICAgICAgIDx0eXBl +c3JjPkRpZ2l0YWwgYW5kL29yIEhhcmRjb3B5IFJlc291cmNlczwvdHlwZXNyYz4NCiAgICAgICAg +PHNyY3RpbWU+DQogICAgICAgICAgPHRpbWVpbmZvPg0KICAgICAgICAgICAgPHNuZ2RhdGU+DQog +ICAgICAgICAgICAgIDxjYWxkYXRlPlVua25vd248L2NhbGRhdGU+DQogICAgICAgICAgICA8L3Nu +Z2RhdGU+DQogICAgICAgICAgPC90aW1laW5mbz4NCiAgICAgICAgICA8c3JjY3Vycj4yMDEwMDMy +NTwvc3JjY3Vycj4NCiAgICAgICAgPC9zcmN0aW1lPg0KICAgICAgICA8c3JjY2l0ZWE+VVNHU0RP +UTwvc3JjY2l0ZWE+DQogICAgICAgIDxzcmNjb250cj5BZXJpYWwgaW1hZ2VyeSB1c2VkIGZvciBy +ZWZlcmVuY2UgaW4gd2F0ZXJzaGVkIGJvdW5kYXJ5IGRlbGluZWF0aW9uPC9zcmNjb250cj4NCiAg +ICAgIDwvc3JjaW5mbz4NCiAgICAgIDxzcmNpbmZvPg0KICAgICAgICA8c3JjY2l0ZT4NCiAgICAg +ICAgICA8Y2l0ZWluZm8+DQogICAgICAgICAgICA8b3JpZ2luPlUuUy4gR2VvbG9naWNhbCBTdXJ2 +ZXk8L29yaWdpbj4NCiAgICAgICAgICAgIDxwdWJkYXRlPjE5OTQ8L3B1YmRhdGU+DQogICAgICAg +ICAgICA8dGl0bGU+MjUwSyBIeWRyb2xvZ2ljIFVuaXQgQm91bmRhcmllczwvdGl0bGU+DQogICAg +ICAgICAgICA8Z2VvZm9ybT5WZWN0b3IgRGlnaXRhbCBEYXRhPC9nZW9mb3JtPg0KICAgICAgICAg +ICAgPHB1YmluZm8+DQogICAgICAgICAgICAgIDxwdWJwbGFjZT5SZXN0b24sIFZpcmdpbmlhPC9w +dWJwbGFjZT4NCiAgICAgICAgICAgICAgPHB1Ymxpc2g+VS5TLiBHZW9sb2dpY2FsIFN1cnZleTwv +cHVibGlzaD4NCiAgICAgICAgICAgIDwvcHViaW5mbz4NCiAgICAgICAgICAgIDxvbmxpbms+aHR0 +cDovL3dhdGVyLnVzZ3MuZ292L2xvb2t1cC9nZXRzcGF0aWFsP2h1YzI1MGs8L29ubGluaz4NCiAg +ICAgICAgICA8L2NpdGVpbmZvPg0KICAgICAgICA8L3NyY2NpdGU+DQogICAgICAgIDxzcmNzY2Fs +ZT4yNTAwMDA8L3NyY3NjYWxlPg0KICAgICAgICA8dHlwZXNyYz5EaWdpdGFsIGFuZC9vciBIYXJk +Y29weSBSZXNvdXJjZXM8L3R5cGVzcmM+DQogICAgICAgIDxzcmN0aW1lPg0KICAgICAgICAgIDx0 +aW1laW5mbz4NCiAgICAgICAgICAgIDxybmdkYXRlcz4NCiAgICAgICAgICAgICAgPGJlZ2RhdGU+ +VW5rbm93bjwvYmVnZGF0ZT4NCiAgICAgICAgICAgICAgPGVuZGRhdGU+MTk5NDwvZW5kZGF0ZT4N +CiAgICAgICAgICAgIDwvcm5nZGF0ZXM+DQogICAgICAgICAgPC90aW1laW5mbz4NCiAgICAgICAg +ICA8c3JjY3Vycj5QdWJsaWNhdGlvbiBkYXRlPC9zcmNjdXJyPg0KICAgICAgICA8L3NyY3RpbWU+ +DQogICAgICAgIDxzcmNjaXRlYT5IVUMyNTBLPC9zcmNjaXRlYT4NCiAgICAgICAgPHNyY2NvbnRy +PlJlZmVyZW5jZSBkYXRhc2V0IGZvciB0aGUgMi0sIDQtLCA2LSBhbmQgOC1kaWdpdCBoeWRyb2xv +Z2ljIHVuaXRzPC9zcmNjb250cj4NCiAgICAgIDwvc3JjaW5mbz4NCiAgICAgIDxzcmNpbmZvPg0K +ICAgICAgICA8c3JjY2l0ZT4NCiAgICAgICAgICA8Y2l0ZWluZm8+DQogICAgICAgICAgICA8b3Jp +Z2luPlUuUy4gR2VvbG9naWNhbCBTdXJ2ZXk8L29yaWdpbj4NCiAgICAgICAgICAgIDxwdWJkYXRl +PjIwMTY8L3B1YmRhdGU+DQogICAgICAgICAgICA8dGl0bGU+TmF0aW9uYWwgSHlkcm9ncmFwaHkg +RGF0YXNldDwvdGl0bGU+DQogICAgICAgICAgICA8Z2VvZm9ybT5WZWN0b3IgRGlnaXRhbCBEYXRh +PC9nZW9mb3JtPg0KICAgICAgICAgICAgPHB1YmluZm8+DQogICAgICAgICAgICAgIDxwdWJwbGFj +ZT5EZW52ZXIsIENPPC9wdWJwbGFjZT4NCiAgICAgICAgICAgICAgPHB1Ymxpc2g+VS5TLiBHZW9s +b2dpY2FsIFN1cnZleTwvcHVibGlzaD4NCiAgICAgICAgICAgIDwvcHViaW5mbz4NCiAgICAgICAg +ICAgIDxvbmxpbms+aHR0cDovL25oZC51c2dzLmdvdi9kYXRhLmh0bWw8L29ubGluaz4NCiAgICAg +ICAgICA8L2NpdGVpbmZvPg0KICAgICAgICA8L3NyY2NpdGU+DQogICAgICAgIDxzcmNzY2FsZT4y +NDAwMDwvc3Jjc2NhbGU+DQogICAgICAgIDx0eXBlc3JjPkRpZ2l0YWwgYW5kL29yIEhhcmRjb3B5 +IFJlc291cmNlczwvdHlwZXNyYz4NCiAgICAgICAgPHNyY3RpbWU+DQogICAgICAgICAgPHRpbWVp +bmZvPg0KICAgICAgICAgICAgPHNuZ2RhdGU+DQogICAgICAgICAgICAgIDxjYWxkYXRlPnVua25v +d248L2NhbGRhdGU+DQogICAgICAgICAgICA8L3NuZ2RhdGU+DQogICAgICAgICAgPC90aW1laW5m +bz4NCiAgICAgICAgICA8c3JjY3Vycj5QdWJsaWNhdGlvbiBkYXRlPC9zcmNjdXJyPg0KICAgICAg +ICA8L3NyY3RpbWU+DQogICAgICAgIDxzcmNjaXRlYT5OSEQ8L3NyY2NpdGVhPg0KICAgICAgICA8 +c3JjY29udHI+SHlkcm9ncmFwaHkgZGF0YSB1c2VkIGZvciByZWZlcmVuY2UgaW4gd2F0ZXJzaGVk +IGJvdW5kYXJ5IGRlbGluZWF0aW9uIHByb2Nlc3M8L3NyY2NvbnRyPg0KICAgICAgPC9zcmNpbmZv +Pg0KICAgICAgPHByb2NzdGVwPg0KICAgICAgICA8cHJvY2Rlc2M+VGhlIG9yaWdpbmFsIGh5ZHJv +bG9naWMgdW5pdCBib3VuZGFyaWVzIHdlcmUgaGFuZC1kaWdpdGl6ZWQgb24gYSBkaWdpdGl6aW5n +IHRhYmxlIGZyb20gdGhlIFVTR1MgNy41IG1pbnV0ZSBxdWFkcmFuZ2xlcy4gVGhpcyBwcm9jZXNz +IG9jY3VycmVkIG92ZXIgYSBzcGFuIG9mIGFwcHJveGltYXRlbHkgMjAgeWVhcnMgZnJvbSAxOTgw +IHRvIDIwMDAuPC9wcm9jZGVzYz4NCiAgICAgICAgPHByb2NkYXRlPjIwMDA8L3Byb2NkYXRlPg0K +ICAgICAgPC9wcm9jc3RlcD4NCiAgICAgIDxwcm9jc3RlcD4NCiAgICAgICAgPHByb2NkZXNjPlRo +ZSBvcmlnaW5hbCBkYXRhc2V0IHdhcyByZXZpZXdlZCBieSBVU0dTIHBlcnNvbm5lbCB1c2luZyBv +bi1zY3JlZW4gdGVjaG5pcXVlcyB3aXRoIERSR3MgYXMgdGhlIGJhc2UgbWFwLiBBbGwgaHlkcm9s +b2dpYyB1bml0cyB3aXRoaW4gdGhlIGRhdGFzZXQgdGhhdCB3ZXJlIGxlc3MgdGhhbiAzLDAwMCBh +Y3JlcyB3ZXJlIGRpc3NvbHZlZCBvdXQuPC9wcm9jZGVzYz4NCiAgICAgICAgPHByb2NkYXRlPjIw +MDM8L3Byb2NkYXRlPg0KICAgICAgPC9wcm9jc3RlcD4NCiAgICAgIDxwcm9jc3RlcD4NCiAgICAg +ICAgPHByb2NkZXNjPlRoZSBuZXcgV0JEICgyMDA1LTIwMTEpIHdhcyByZXZpZXdlZCBvbi1zY3Jl +ZW4gYnkgVVNHUywgRVBBLCBvciBOUkNTIHBlcnNvbm5lbCB1c2luZyBEUkdzIGFuZCBET1FzcyBh +cyBiYXNlIG1hcHMuIEh5ZHJvbG9naWMgVW5pdHMgdGhhdCB3ZXJlIGxlc3MgdGhhbiAxMCwwMDAg +YWNyZXMgKGZvciB0aGUgMTItZGlnaXQgdW5pdHMpIGFuZCA0MCwwMDAgYWNyZXMgKGZvciB0aGUg +MTAtZGlnaXQgdW5pdHMpIHdlcmUgcmV2aWV3ZWQgYW5kIGlmIHBvc3NpYmxlIHdlcmUgZGlzc29s +dmVkIG91dC4gQWxvbmcgdGhlIGNvYXN0YWwgYXJlYXMsIHN0YW5kYXJkIHdhdGVyc2hlZHMgdGhh +dCBmZWxsIHdpdGhpbiB0aGUgZmVkZXJhbCBndWlkZWxpbmUncyBzaXplIGNyaXRlcmlhICgxMi1k +aWdpdDogMTAsMDAwLTQwLDAwMCBhY3JlcywgMTAtZGlnaXQ6IDQwLDAwMC0yNTAsMDAwIGFjcmVz +KSB3ZXJlIGRlbGluZWF0ZWQuIElmIHBvc3NpYmxlIHRoZSByZW1haW5pbmcgZnJvbnRhbHMgd2Vy +ZSBsZWZ0IGFzIHRoZWlyIG93biB1bml0cy4gRnJvbnRhbHMgdGhhdCBkaWQgbm90IG1lZXQgdGhl +IHNpemUgY3JpdGVyaWEgd2VyZSBncm91cGVkIHRvZ2V0aGVyIHdpdGggb3RoZXIgZnJvbnRhbHMg +d2l0aGluIHRoZSBvdmVyYWxsIDgtZGlnaXQgb3IgMTAtZGlnaXQgdW5pdC4gSHlkcm9sb2dpYyB1 +bml0cyB0aGF0IHdlcmUgZ3JlYXRlciB0aGFuIDQwLDAwMCBhY3JlcyAoMTItZGlnaXQgdW5pdHMp +IGFuZCAyNTAsMDAwIGFjcmVzICgxMC1kaWdpdCB1bml0cykgd2VyZSByZXZpZXdlZC4gSWYgcG9z +c2libGUgdGhlc2UgdW5pdHMgd2hlcmUgdGhlbiBzdWJkaXZpZGVkIGludG8gc21hbGxlciB1bml0 +cyB0aGF0IG1ldCB0aGUgc2l6ZSBjcml0ZXJpYS4gSW4gc29tZSBjYXNlcywgYWRkaXRpb25hbCBi +cmVha3Mgd2l0aGluIHRoZSB1bml0IHdvdWxkIG5vdCBoYXZlIG1hZGUgc2Vuc2Ugb3IgaGF2ZSBi +ZWVuIHZlcnkgdXNlZnVsLiBGb3IgZXhhbXBsZTogV2hlbiB0aGUgbWFqb3JpdHkgb2YgdGhlIHVu +aXQgd2FzIG1hZGUgdXAgYnkgYSBtYWpvciB3YXRlcmJvZHkgZmVhdHVyZSBzdWNoIGFzIGEgbGFr +ZSBvciByZXNlcnZvaXIgYW5kIHRoZSBzdXJyb3VuZGluZyB0cmlidXRhcmllcyB3ZXJlIHRvbyBz +bWFsbCB0byBkZWxpbmVhdGUgYXMgdGhlaXIgb3duIHVuaXQuIEluIHRoZXNlIGluc3RhbmNlcyB0 +aGUgdW5pdCB3YXMgbGVmdCBiaWcuPC9wcm9jZGVzYz4NCiAgICAgICAgPHByb2NkYXRlPjIwMTE8 +L3Byb2NkYXRlPg0KICAgICAgPC9wcm9jc3RlcD4NCiAgICAgIDxwcm9jc3RlcD4NCiAgICAgICAg +PHByb2NkZXNjPkZyb20gMjAwNSB0byAyMDExLCBoeWRyb2xvZ2ljIHVuaXRzIGZyb20gc3Vycm91 +bmRpbmcgc3RhdGVzIHdlcmUgdXNlZCB0byBlZGdlbWF0Y2ggd2F0ZXJzaGVkIGJvdW5kYXJpZXMg +YXMgdGhleSB3ZXJlIGRldmVsb3BlZC48L3Byb2NkZXNjPg0KICAgICAgICA8cHJvY2RhdGU+MjAx +MTwvcHJvY2RhdGU+DQogICAgICA8L3Byb2NzdGVwPg0KICAgICAgPHByb2NzdGVwPg0KICAgICAg +ICA8cHJvY2Rlc2M+RnJvbSAyMDA1IHRvIDIwMTEsIG9yaWdpbmFsIGRhdGFzZXQgYXR0cmlidXRp +b24gd2FzIHJldmlld2VkIGFuZCByZXZpc2VkIHRvIHJlZmxlY3QgdGhlIHVwZGF0ZXMgYW5kIGNo +YW5nZXMgbWFkZSB0byB0aGUgZGF0YXNldC4gVGhlc2UgcmV2aXNpb25zIHRvIHRoZSBhdHRyaWJ1 +dGlvbiB3ZXJlIGFsc28gbWFkZSB0byBlbnN1cmUgdGhhdCB0aGUgZGF0YXNldCBtZXQgdGhlIEZl +ZGVyYWwgU3RhbmRhcmRzIGZvciBEZWxpbmVhdGlvbiBvZiBIeWRyb2xvZ2ljIFVuaXQgQm91bmRh +cmllcy4gVGhlIE5IRCB3YXMgdXNlZCBkdXJpbmcgdGhpcyBwcm9jZXNzIHRvIGhlbHAgd2l0aCB0 +aGUgbmFtaW5nIGFuZCBkb3duc3RyZWFtIGNvZGluZyBvZiBlYWNoIHVuaXQuIEluIHNvbWUgaW5z +dGFuY2VzIHRoZXJlIHdlcmUgbmFtZSBkaXNjcmVwYW5jaWVzIGJldHdlZW4gdGhlIE5IRCBhbmQg +d2hhdCB3YXMgcHJpbnRlZCBvbiB0aGUgRFJHcy4gSW4gdGhlc2UgaW5zdGFuY2VzIHRoZSBEUkdz +IHdlcmUgdXNlZCBpbnN0ZWFkIG9mIHRoZSBOSEQuPC9wcm9jZGVzYz4NCiAgICAgICAgPHByb2Nk +YXRlPjIwMTE8L3Byb2NkYXRlPg0KICAgICAgPC9wcm9jc3RlcD4NCiAgICAgIDxwcm9jc3RlcD4N +CiAgICAgICAgPHByb2NkZXNjPkZpcnN0IGRyYWZ0IG9mIG1ldGFkYXRhIGNyZWF0ZWQgYnkgTlJD +UyB1c2luZyBNRVRBREFUQSBFZGl0b3IgaW4gQXJjQ2F0YWxvZyB2ZXIuIDkuMSBzcC4xIGh1MTJf +Z2VvODM8L3Byb2NkZXNjPg0KICAgICAgICA8cHJvY2RhdGU+MjAwNzAxMjQ8L3Byb2NkYXRlPg0K +ICAgICAgPC9wcm9jc3RlcD4NCiAgICAgIDxwcm9jc3RlcD4NCiAgICAgICAgPHByb2NkZXNjPlRo +ZSBmb2xsb3dpbmcgZWRpdHMgKDIwMTIgLSBwcmVzZW50KSB3ZXJlIGNvbXBsZXRlZCBkdXJpbmcg +bmF0aW9uYWwgcXVhbGl0eSBjb250cm9sIHJldmlldyBwZXJmb3JtZWQgYnkgdGhlIFdCRCBuYXRp +b25hbCB0ZWNobmljYWwgZWRpdCB0ZWFtIGluIHRoZSBVU0dTIFV0YWggV2F0ZXIgU2NpZW5jZSBD +ZW50ZXIuIFVwZGF0ZXMgbWF5IG5vdCBhZmZlY3QgYWxsIGh5ZHJvbG9naWMgdW5pdHMuDQoJCUVk +aXRzIGJ5IFVTR1MgV2F0ZXIgU2NpZW5jZSBDZW50ZXIgaW4gU2FsdCBMYWtlIENpdHksIFV0YWgu +IA0KCQkxLiBSZXZpZXdlZCBhbGwgdGhlIFRvSFVDIGNvZGVzIHdpdGhpbiB0aGUgMTItZGlnaXQg +cG9seWdvbnMgYW5kIG1hZGUgdXBkYXRlcyBhcyBuZWNlc3NhcnkuIEFsbCB1cGRhdGVzIHdlcmUg +Y29vcmRpbmF0ZWQgYW5kIGFwcHJvdmVkIGJ5IFdCRCBzdGF0ZSBzdGV3YXJkcy4NCgkJMi4gVXBk +YXRlZCBMaW5lc291cmNlIGNvZGUgKG1pc3NwZWxsaW5ncywgcmVtb3ZlZCBleHRyYSBzcGFjZXMg +ZXRjLikgd2hlcmUgbmVlZGVkIHRvIG1hdGNoIEZlZGVyYWwgU3RhbmRhcmRzIA0KCQkzLiBVcGRh +dGVkIGFuZCBjb3JyZWN0ZWQgZXJyb3JzIGluIHRoZSBIVV9Nb2QgZmllbGRzIHdoZXJlIG5lZWRl +ZCB0byBtYXRjaCBGZWRlcmFsIFN0YW5kYXJkcy4gDQoJCTQuIFVwZGF0ZWQgU3RhdGUgZmllbGQg +Zm9yIENhbmFkYSAoQ04pIGFuZCBNZXhpY28gKE1YKSBiYXNlZCBvbiB0aGUgbmV3IHZlcnNpb24g +b2YgdGhlIFN0YW5kYXJkcyANCgkJNS4gUmV2aWV3ZWQgYWxsIHRoZSBOYW1lcyByZWxhdGVkIHRv +IGVhY2ggMTAtZGlnaXQgYW5kIDEyLWRpZ2l0IHBvbHlnb24gYW5kIG1hZGUgdXBkYXRlcyBhcyBu +ZWNlc3NhcnkuIEFsbCB1cGRhdGVzIHdlcmUgY29vcmRpbmF0ZWQgYW5kIGFwcHJvdmVkIGJ5IHRo +ZSBXQkQgU3RhdGUgc3Rld2FyZHMNCgkJNi4gQ2hlY2tlZCBhbmQgdXBkYXRlZCBIVV9MZXZlbCBm +aWVsZCB3aGVyZSBIVV9MZXZlbCA9IDk5IG9yID0gbnVsbCANCgkJNy4gVXBkYXRlZCB0aGUgOC1k +aWdpdCBvdXRlciBib3VuZGFyeSBmb3IgdW5pdHMgZmxvd2luZyBpbnRvIG9jZWFuIHVuaXRzIGJ5 +IGV4dGVuZGluZyB0aGUgYm91bmRhcnkgb2Zmc2hvcmUgdG8gdGhlIDMgbmF1dGljYWwgbWlsZSBs +aW1pdCBwcm92aWRlZCBieSBOT0FBLiBBbGwgdXBkYXRlcyB3ZXJlIGNvb3JkaW5hdGVkIGFuZCBh +cHByb3ZlZCBieSB0aGUgV0JEIHN0YXRlIHN0ZXdhcmRzPC9wcm9jZGVzYz4NCiAgICAgICAgPHBy +b2NkYXRlPjIwMTY8L3Byb2NkYXRlPg0KICAgICAgPC9wcm9jc3RlcD4NCiAgICAgIDxwcm9jc3Rl +cD4NCiAgICAgICAgPHByb2NkZXNjPlRoZSBmb2xsb3dpbmcgYXJlIDgtZGlnaXQgdXBkYXRlcyAo +ZnJvbSAyMDA5LTIwMTYpIHRoYXQgd2VyZSBhcHByb3ZlZCBieSB0aGUgV0JEIE5hdGlvbmFsIFRl +Y2huaWNhbCBDb29yZGluYXRvcnMgYXMgcmVxdWlyZWQgYnkgdGhlIFdCRCBTdGFuZGFyZHMuIFRo +ZXNlIG1heSBpbmNsdWRlIG5hbWUvY29kZSB1cGRhdGVzIG9yIGJvdW5kYXJ5IHVwZGF0ZXMgdGhh +dCB3ZXJlIGltcGxlbWVudGVkIGluIHRoZSBXQkQgYXQgc29tZSBwb2ludCBkdXJpbmcgdGhlIGNy +ZWF0aW9uIG9yIG1haW50ZW5hbmNlIG9mIHRoZSBkYXRhLiANCglBbGFza2E6DQoJCUxlZ2FjeSAx +OTAyMDQwMSBBbmNob3JhZ2UgYm91bmRhcnkgaGFzIGNoYW5nZWQgYnkgYWJvdXQgMjAlIG9mIGl0 +cyBhcmVhLg0KCQkxOTAyMDIwMyAoUHJpbmNlIFdpbGxpYW0gU291bmQpDQoJCUFkZGVkIGEgbmV3 +IHN1YmJhc2luIHVuaXQgZm9yIFByaW5jZSBXaWxsaWFtIFNvdW5kLg0KCQlBZGp1c3RlZCBodWM4 +IGJvdW5kYXJpZXMgYmV0d2VlbiAxOTAyMDEwNCwgMTkwMjAyMDEgYW5kIDE5MDIwMjAyIHRvIGJl +dHRlciByZWZsZWN0IHN1cmZhY2Ugd2F0ZXIgZmxvdyBhbmQgdG8gYXNzaXN0IHdpdGggZGVsaW5l +YXRpbmcgdGhlIFByaW5jZSBXaWxsaWFtIFNvdW5kIGFzIGEgbmV3IHVuaXQuDQoJCUxlZ2FjeSAx +OTAyMDMwMiBVcHBlciBLZW5haSBQZW5pbnN1bGEgaGFzIGNoYW5nZWQgYnkgYWJvdXQgMjAlIG9m +IGl0cyBhcmVhLg0KCQlMZWdhY3kgMTkwMzAzMDQgV29vZCBSaXZlciB3YXMgc3ViZGl2aWRlZCB3 +aGljaCBoYXMgY3JlYXRlZCBhIHJlZHVjZWQgYXJlYSBmb3IgdGhlIDE5MDMwMzA0IFdvb2QgUml2 +ZXIgYW5kIHB1dCBJZ3VzaGlrIFJpdmVyIGludG8gaXRzIG93biBoeWRyb2xvZ2ljIHVuaXQgd2l0 +aCBhIG5ldyBjb2RlIG9mIDE5MDMwMzA2LiANCgkJTGVnYWN5IDE5MDMwNDAyIEZhcmV3ZWxsIExh +a2Ugd2FzIGRpdmlkZWQgaW50byAxOTAzMDQwNiBNaWRkbGUgRmxvcmsgS3Vza29rd2ltIFJpdmVy +IGFuZCAxOTAzMDQwNyBTb3V0aCBGb3JrIEt1c2tva3dpbSBSaXZlci4gDQoJCUxlZ2FjeSAxOTA0 +MDIwNCBCbGFjayBSaXZlciB3YXMgc3ViZGl2aWRlZC4gMTkwNDAyMDQgd2lsbCByZW1haW4gdGhl +IEJsYWNrIFJpdmVyLCBhbmQgYSBuZXcgdW5pdCAxOTA0MDIwNiBHcmFzcyBSaXZlciBpcyBicm9r +ZW4gb3V0LiANCgkJMTkwNDA1MDI6DQoJCVRoZSBvdXRsZXQgZm9yIHN1YmJhc2luIDE5MDQwNTAy +IHdhcyBtb3ZlZCBkb3duc3RyZWFtIGZyb20gdGhlIGN1cnJlbnQgYnJlYWsgYWNyb3NzIFRhbmFu +YSBSaXZlciBhdCBhIGNvbmZsdWVuY2Ugd2l0aCBhIG1pbm9yIHRyaWJ1dGFyeSB0byB0aGUgbW9y +ZSBwcm9taW5lbnQgY29uZmx1ZW5jZSB3aXRoIFJvYmVydHNvbiBSaXZlci4gVGhpcyBlZGl0IHJl +c3VsdGVkIGluIHRoZSBhZGRpdGlvbiBvZiAyIHN1YndhdGVyc2hlZHMgdG8gMTkwNDA1MDIgYW5k +IHRoZSByZW1vdmFsIG9mIDIgd2F0ZXJzaGVkcyBmcm9tIDE5MDQwNTAzLg0KCQlMZWdhY3kgMTkw +NDA1MDQgRGVsdGEgUml2ZXIgbGluZXdvcmsgY2hhbmdlZCBzaWduaWZpY2FudGx5Lg0KCQlUaGUg +bGVnYWN5IDE5MDQwNTA0IGhhZCAzIHNlcGFyYXRlIG91dGxldHM7IERlbHRhIFJpdmVyLCBEZWx0 +YSBDcmVlayBhbmQgTGl0dGxlIERlbHRhIFJpdmVyLg0KCQlUaGUgYm91bmRhcnkgd2FzIGFkanVz +dGVkIHNvIHRoYXQgMTkwNDA1MDQgY29udGFpbmVkIGp1c3QgdGhlIERlbHRhIFJpdmVyIGFzIGEg +c3RhbmRhcmQgdW5pdC4NCgkJVGhlIERlbHRhIENyZWVrIGFuZCBMaXR0bGUgRGVsdGEgUml2ZXIg +d2hlcmUgbW92ZWQgaW50byAxOTA0MDUwNy4NCgkJTGVnYWN5IDE5MDQwNTA3IFRhbmFuYSBGbGF0 +cyBMaW5ld29yayBjaGFuZ2VkIHNpZ25pZmljYW50bHkuDQoJCTE5MDQwNjA2IC0gTGVnYWN5IGJv +dW5kYXJ5IGZvciAxOTA0MDYwNiBoYWQgdGhlIG91dGxldCBhdCBhIGxvY2F0aW9uIGFjcm9zcyB0 +aGUgSHVzbGlhIFJpdmVyIGRvd25zdHJlYW0gZnJvbSB0aGUgb3V0bGV0IG9mIHRoZSBTb3V0aCBG +b3JrIEh1c2xpYSBSaXZlci4gVGhlIGJvdW5kYXJ5IHdhcyBhZGp1c3RlZCBkb3duc3RyZWFtIHRv +IHRoZSBtYWpvciBjb25mbHVlbmNlIHdoZXJlIHRoZSBIdXNsaWEgUml2ZXIgZHJhaW5zIGludG8g +dGhlIEtveXVrdWsgUml2ZXIsIHRodXMgY3JlYXRpbmcgYSBzdGFuZGFyZCBIVUM4IGZvciB0aGUg +SHVzbGlhIFJpdmVyLg0KCQkxOTA1Og0KCQkxOTA1MDIwMiwgMTkwNTAyMDMsIDE5MDUwMzAxLCAx +OTA1MDMwNCwgMTkwNTA0MDMNCgkJMTkwNTAyMDLigJlzIGJvdW5kYXJ5IHdhcyBhZGp1c3RlZCBz +byB0aGF0IHRoaXMgdW5pdCBjb250YWluZWQgYWxsIGZyb250YWwgZHJhaW5hZ2UgYXJlYXMgZmxv +d2luZyBpbnRvIHRoZSBzb3V0aGVybiBwb3J0aW9uIG9mIEtvdHplYnVlIFNvdW5kLg0KCQkxOTA1 +MDIwM+KAmXMgYm91bmRhcnkgd2FzIGFkanVzdGVkIHRvIHRoYXQgdGhlIHVuaXQgaW5jbHVkZWQg +RXNjaHNjaG9sdHogQmF5IGFuZCBhbGwgb2YgdGhlIGRyYWluYWdlIGFyZWFzIGZsb3dpbmcgaW50 +byBpdC4NCgkJMTkwNTAzMDHigJlzIGJvdW5kYXJ5IHdhcyBhZGp1c3RlZCBzbyB0aGF0IHRoaXMg +dW5pdCBoYXMgb25lIG91dGxldCBhbmQgaW5jbHVkZXMgU2VsYXdpayBMYWtlLiBUaGUgZnJvbnRh +bCBkcmFpbmFnZXMgZmxvd2luZyBpbnRvIEhvdGhhbSBJbmxldCB3ZXJlIG1vdmVkIGludG8gdW5p +dCAxOTA1MDMwNC4NCgkJMTkwNTAzMDTigJlzIGJvdW5kYXJ5IHdhcyBhZGp1c3RlZCBzbyB0aGF0 +IHRoZSB1bml0IGluY2x1ZGVkIEhvdGhhbSBJbmxldCBhbmQgdGhlIGZyb250YWwgZHJhaW5hZ2Vz +IGZsb3dpbmcgaW50byBpdC4NCgkJMTkwNTA0MDPigJlzIGJvdW5kYXJ5IHdhcyBhZGp1c3RlZCB0 +byBhIGJ1ZmZlciBkaXN0YW5jZSBvZiAxMDAwIG1ldGVycyBvZmYgc2hvcmUuDQoJCTE5MDUwNTAw +IC0gS290emVidWUgU291bmQ6DQoJCUFkZGVkIGEgbmV3IEhVQzggIHVuaXQgdG8gQUsgV0JEIGZv +ciBLb3R6ZWJ1ZSBTb3VuZC4gSW5uZXIgY29hc3RhbCB1bml0cyB0aGF0IGVuZGVkIGF0IHRoZSBz +aG9yZSBsaW5lIHdlcmUgZXh0ZW5kZWQgb2Zmc2hvcmUgdG8gYSAxMDAwIG1ldGVyIGJ1ZmZlciBk +aXN0YW5jZS4NCgkJTGVnYWN5IDE5MDYwMjA0IElrcGlrcHVrIFJpdmVyIGFic29yYmVkIEluYXJ1 +IFJpdmVyIGZyb20gTGVnYWN5IDE5MDYwMjAyDQoJCUxlZ2FjeSB1bml0IDE5MDYwMjAyIGNvbnRh +aW5lZCAyIGRpZmZlcmVudCBzdHJlYW0gc3lzdGVtcyBmbG93aW5nIGludG8gMiBkaWZmZXJlbnQg +Ym9kaWVzIG9mIHdhdGVyLg0KCQlUaGUgSW5hcnUgUml2ZXIgZmxvd3MgaW50byBBZG1pcmFsdHkg +QmF5IHdoaWxlIHRoZSBLdWdydWEgUml2ZXIgYW5kIHRoZSBvdGhlciBzbWFsbCBmcm9udGFsIGRy +YWluYWdlcyBmbG93cyBpbnRvIHRoZSBDaHVrY2hpIFNlYS4NCgkJVGhlIGJvdW5kYXJ5IHdhcyBh +ZGp1c3RlZCBzbyB0aGF0IGZsb3cgaW50byBBZG1pcmFsdHkgQmF5L0RlYXNlIElubGV0IHdhcyBz +ZXBhcmF0ZSBmcm9tIGZsb3cgaW50byBDaHVrY2hpIFNlYS4gVGhlIEluYXJ1IFJpdmVyLCBBZG1p +cmFsdHkgQmF5L0RlYXNlIElubGV0IGFuZCBhbGwgYXNzb2NpYXRlZCBmcm9udGFsIGRyYWluYWdl +cyB3ZXJlIGFkZGVkIHRvIHN1YmJhc2luIDE5MDYwMjA0Lg0KCQlOZXcgU3ViYmFzaW4gMTkwNjAy +MDYgaXMgYmVpbmcgbmFtZWQgQWRtaXJhbHR5IEJheS1EZWFzZSBJbmxldC4gVGhpcyBhcmVhIHVz +ZSB0byBiZSBwYXJ0IG9mIFN1YmJhc2luIDE5MDYwMjA0DQoJCTE5MDIwODAwIENvb2sgSW5sZXQg +aXMgYSBuZXcgaHlkcm9sb2dpYyB1bml0IGFzIHJlY29tbWVuZGVkIGJ5IHRoZSBBbGFza2EgaW4g +c3RhdGUgc3Rha2Vob2xkZXJzLg0KDQogICAgICAgIDIwMTEgLSBUaGVzZSB1cGRhdGVzIHdoZXJl +IHByb3Bvc2VkIGJ5IEZvcmVzdCBTZXJ2aWNlIHBhcnRuZXJzIHdpdGhpbiB0aGUgVG9uZ2FzcyBO +YXRpb25hbCBGb3Jlc3QuIFdoZW4gbWFqb3IgY2hhbmdlcyBhcmUgbWFkZSB0byB0aGUgSFVDOCBj +b250YWluZXIgKGkuZS4gdGhlIGNvbnRhaW5lciBpcyBzdWJkaXZpZGVkIGludG8gbXVsdGlwbGUg +dW5pdHMpIHRoZSBuYXRpb25hbCBwcm90b2NvbCBoYXMgYmVlbiB0byByZXRpcmUgdGhlIG9sZCBI +VUM4IGNvZGUgYW5kIG5hbWUgYW5kIGFzc2lnbiBuZXcgY29kZXMgYW5kIG5hbWVzIHRvIHRoZSB1 +cGRhdGVzIHVuaXRzDQoJCTE5MDEwMjAyIChLdWl1LUt1cHJlYW5vZi1NaXRrb2YtRXRvbGluLVph +cmVtYm8tV3JhbmdlbGwpIGlzIGJlaW5nIHJldGlyZWQgYW5kIDIgbmV3IEhVQzggdW5pdHMgd2Vy +ZSBmb3JtZWQuDQoJCUt1aXUgSXNsYW5kLCBNaXRrb2YgSXNsYW5kIGFuZCBLdXByZWFub2YgSXNs +YW5kIHdlcmUgc3BsaXQgb3V0IGludG8gdGhlaXIgb3duIDgtZGlnaXQgdW5pdA0KCQlIVUM4IC0g +MTkwMTAyMTANCgkJSFU4X05hbWUg4oCTIEt1aXUtS3VwcmVhbm9mLU1pdGtvZiBJc2xhbmRzDQoJ +CVphcmVtYm8gSXNsYW5kLCBXcmFuZ2VsbCBJc2xhbmQgYW5kIEV0b2xpbiBJc2xhbmQgd2VyZSBz +dWJkaXZpZGVkIGludG8gdGhlaXIgb3duIDggZGlnaXQgdW5pdA0KCQlIVUM4IOKAkyAxOTAxMDIw +OQ0KCQlIVThfTmFtZSDigJMgRXRvbGluLVphcmVtYm8tV3JhbmdlbGwgSXNsYW5kcw0KDQoJCTE5 +MDEwMjAzIChCYXJhbm9mLUNoaWNoYWdvZiBJc2xhbmRzKTE5MDEwMjAzIHdhcyByZXRpcmVkLiAx +OTAxMDIwMyB3YXMgc3ViZGl2aWRlZCAzIG5ldyB1bml0czsgMiBpc2xhbmQgdW5pdHMgYW5kIDEg +Y2hhbm5lbCB1bml0Lg0KCQlDaGljaGFnb2YgSXNsYW5kIHdhcyBzcGxpdCBvdXQgaW50byBpdHMg +b3duIDgtZGlnaXQgdW5pdA0KCQlIVUM4IOKAkyAxOTAxMDIxMQ0KCQlIVThfTmFtZSDigJMgQ2hp +Y2hhZ29mIElzbGFuZA0KCQlCYXJhbm9mIGFuZCBLcnV6b2YgSXNsYW5kcyB3ZXJlIHN1YmRpdmlk +ZWQgaW50byB0aGVpciBvd24gOC1kaWdpdCB1bml0DQoJCUhVQzgg4oCTIDE5MDEwMjEyDQoJCUhV +OF9OYW1lIOKAkyBCYXJhbm9mIElzbGFuZA0KCQlDcmVhdGVkIGEgbmV3IHdhdGVyIGh5ZHJvbG9n +aWMgdW5pdCBmb3IgdGhlIGNoYW5uZWwgYmV0d2VlbiBDaGljaGFnb2YgSXNsYW5kIGFuZCBCYXJh +bm9mL0tydXpvZiBJc2xhbmRzLiBUaGlzIG5ldyB3YXRlciB1bml0IHdvdWxkIGJlY29tZSBhIEhV +QzEwIHVuaXQgd2l0aGluIHRoZSAiV2F0ZXIiIHN1YmJhc2luIDE5MDEwNTAwLg0KCQlIVUMxMCDi +gJMgMTkwMTA1MDAxMQ0KCQlIVUMxMF9OYW1lIC0gUGVyaWwgU3RyYWl0DQoJCUJlY2F1c2Ugb2Yg +dGhlIHZhcnlpbmcgd2lkdGggb2YgdGhlIGNoYW5uZWwgdGhlIGJvdW5kYXJ5IHdhcyBncmFkdWF0 +ZWQgZnJvbSBhIDEsMDAwIG1ldGVyIGJ1ZmZlciB0byAxMDAgbWV0ZXIgYnVmZmVyIGZyb20gdGhl +IExvdyBUaWRlIFNob3JlbGluZS4gVGhlIExvdyBUaWRlIFNob3JlbGluZSB3YXMgcHJvdmlkZWQg +YnkgdGhlIEZvcmVzdCBTZXJ2aWNlLiANCgkJQSAxLDAwMCBtZXRlciBidWZmZXIgd2FzIHVzZWQg +aW4gdGhlIG9wZW4gY2hhbm5lbCB0byBtYXRjaCB0aGUgYnVmZmVyIGRpc3RhbmNlIHVzZWQgd2l0 +aGluIHRoZSByZXN0IG9mIFNFIEFLIFdCRC4gVGhlcmUgaXMgYSBuYXJyb3cgcG9ydGlvbiBvZiB0 +aGUgY2hhbm5lbCB3aGVyZSB0aGUgYm91bmRhcnkgd2FzIGdyYWR1YWxseSByZWR1Y2VkIGZyb20g +dGhlIDEsMDAwIG1ldGVyIGJ1ZmZlciB0byBhIDEwMCBtZXRlciBidWZmZXIuDQoJCQ0KCQkyMDE0 +IC0gVXBkYXRlZCBBbGFza2HigJlzIHJlZ2lvbiAxOTA0IGJhc2VkIG9uIGEgcmVxdWVzdCBmcm9t +IE5IRCBwcm9ncmFtIGFuZCBhcHByb3ZlZCBieSBzdGF0ZSBwYXJ0bmVycy4gMTkwNCB3YXMgc3Vi +ZGl2aWRlZCAzIG5ldyA0LWRpZ2l0IGh5ZHJvbG9naWMgdW5pdHMuIA0KCQlUaGUgbmV3IHVuaXRz +IGFyZQ0KCQkxOTA3IOKAkyBVcHBlciBZdWtvbiBSaXZlcg0KCQkxOTA3MDEg4oCTIEhlYWR3YXRl +cnMgWXVrb24gUml2ZXINCgkJMTkwOCDigJMgTWlkZGxlIFl1a29uIFJpdmVyDQoJCTE5MDkg4oCT +IExvd2VyIFl1a29uIFJpdmVyDQoJCQ0KCQkyMDE2IC0gVXBkYXRlcyB0byBBSyA4LWRpZ2l0IHVu +aXRzIGJhc2VkIG9uIGhhcm1vbml6YXRpb24gZWZmb3J0IHdpdGggQ2FuYWRhDQoJCTE5MDcwNTA0 +IChFYWdsZSBDcmVlay1ZdWtvbiBSaXZlcikgaXMgYmVpbmcgc3ViZGl2aWRlZCAyIG5ldyA4LWRp +Z2l0IGh5ZHJvbG9naWMgdW5pdHMuIE9yaWdpbmFsIGNvZGUgYW5kIG5hbWUgYXJlIGJlaW5nIHJl +dGlyZWQuDQoJCUhVQzggLSAxOTA3MDUwNSAoVGF0b25kdWsgUml2ZXItWXVrb24gUml2ZXIpDQoJ +CUhVQzggLSAxOTA3MDUwNiAoQ2hhcmxleSBSaXZlci1ZdWtvbiBSaXZlcikNCgkJDQoJCTE5MDYw +NTAzIChCZWF1Zm9ydCBMYWdvb24pIGlzIGJlaW5nIHN1YmRpdmlkZWQgMyBuZXcgOC1kaWdpdCBo +eWRyb2xvZ2ljIHVuaXRzLiBPcmlnaW5hbCBjb2RlIGFuZCBuYW1lIGFyZSBiZWluZyByZXRpcmVk +Lg0KCQlIVUM4IC0gMTkwNjA1MDQgKEtvbmdha3VhdCBSaXZlci1CZWF1Zm9ydCBMYWdvb24pDQoJ +CUhVQzggLSAxOTA2MDUwNSAoRmlydGggUml2ZXIpDQoJCUhVQzggLSAxOTA2MDUwNiAoQmFiYmFn +ZSBSaXZlcikgaXMgY29tcGxldGVseSB3aXRoaW4gQ2FuYWRhIFl1a29uIFRlcnJpdG9yeQ0KCQkJ +DQoJQXJpem9uYToNCgkJTGVnYWN5IDE1MDEwMDA5IEZvcnQgUGllcmNlIFdhc2ggbmFtZSBjaGFu +Z2VkIHRvIEZvcnQgUGVhcmNlIFdhc2ggdG8gYWNjb3VudCBmb3IgbWlzc3BlbGwuDQoJCUxlZ2Fj +eSAxNTAxMDAwNyBIdWFsYXBhaSBXYXNoIG5hbWUgc2hvdWxkIGNoYW5nZSBhcyB0aGUgd2FzaCBp +cyBub3cgaW4gdGhlIGFkamFjZW50IFN1YmJhc2luLiBDaGFuZ2VkIHRvIFJlZCBMYWtlIA0KCQ0K +CUNhbGlmb3JuaWE6DQoJCUxlZ2FjeSAxODAxMDEwOSBHdWFsYWxhLVNhbG1vbiBoYWQgYW4gYXJl +YSB0aGUgc2l6ZSBvZiBzZXZlcmFsIDEyLWRpZ2l0IEhVcyB0aGF0IGhhcyBiZWVuIGFnZ3JlZ2F0 +ZWQgaW50byB0aGUgYWRqYWNlbnQgbGVnYWN5IDE4MDUwMDA1IFRvbWFsZXMtRHJha2UgQmF5cyBh +cyBhIHJlc3VsdCBvZiBjb2FzdGFsIGltcGxlbWVudGF0aW9uLiBUaGlzIGlzIGFwcHJvdmVkIGJ5 +IHRoZSBpbi1zdGF0ZSBXQkQgU3Rld2FyZCBhbmQgVDMuTGVnYWN5IDE4MDMwMDEyIGFuZCBuZXcg +MTgwMzAwMTIgVHVsYXJlLUJ1ZW5hIFZpc3RhIExha2VzIGNoYW5nZWQgdG8gVHVsYXJlIExha2Ug +QmVkIGFzIHRoZSBib3VuZGFyeSBoYXMgY2hhbmdlZCBzbyBzaWduaWZpY2FudGx5IHRoYXQgQnVl +bmEgVmlzdGEgTGFrZXMgYXJlIG5vIGxvbmdlciBpbiB0aGUgYWRqdXN0ZWQgaHlkcm9sb2dpYyB1 +bml0Lg0KCQlMZWdhY3kgMTgwNDAwMDEgYW5kIG5ldyAxODA0MDAwNyBuYW1lIGNoYW5nZWQgZnJv +bSBVcHBlciBDaG93Y2hpbGxhLVVwcGVyIEZyZXNubyB0byBGcmVzbm8gUml2ZXIgYXMgdGhlIENo +b3djaGlsbGEgaXMgbm8gbG9uZ2VyIGluIHRoZSBhZGp1c3RlZCBoeWRyb2xvZ2ljIHVuaXQuDQoJ +CUxlZ2FjeSAxODA0MDAwMiBhbmQgbmV3IDE4MDQwMDAyIG5hbWUgY2hhbmdlZCBmcm9tIE1pZGRs +ZSBTYW4gSm9hcXVpbi1Mb3dlciBNZXJjZWQtTG93ZXIgU3RhbmlzbGF1cyB0byBMb3dlciBTYW4g +Sm9hcXVpbiBSaXZlciBhcyBNZXJjZWQgYW5kIFN0YW5pc2xhdXMgUml2ZXJzIGFyZSBubyBsb25n +ZXIgaW4gdGhlIGFkanVzdGVkIGh5ZHJvbG9naWMgdW5pdC4NCgkJTGVnYWN5IDE4MDUwMDA2IFNh +biBGcmFuY2lzY28tQ29hc3RhbCBTb3V0aCB3aWxsIGFic29yYiA0IGNvYXN0YWwgMTItZGlnaXQg +SFVzIGZyb20gbGVnYWN5IDE4MDYwMDAxIFNhbiBMb3JlbnpvLVNvcXVlbCBhcyBhIHJlc3VsdCBv +ZiBjb2FzdGFsIGltcGxlbWVudGF0aW9uLiBUaGlzIGlzIGFwcHJvdmVkIGJ5IHRoZSBpbi1zdGF0 +ZSBXQkQgU3Rld2FyZCBhbmQgdGhlIFdCRCBOYXRpb25hbCBUZWNobmljYWwgQ29vcmRpbmF0b3Jz +IChOVEMpDQoJCUxlZ2FjeSAxODA2MDAwNiBDZW50cmFsIENvYXN0YWwgd2lsbCBhYnNvcmIgYW4g +YXJlYSB0aGUgc2l6ZSBvZiA2IDEyLWRpZ2l0IEhV4oCZcyBmcm9tIGxlZ2FjeSAxODA2MDAxMiBD +YXJtZWwgd2hpY2ggYWxsIGRyYWlucyBkaXJlY3RseSB0byB0aGUgUGFjaWZpYyBPY2Vhbi4gVGhp +cyBpcyBhcHByb3ZlZCBieSB0aGUgaW4tc3RhdGUgV0JEIFN0ZXdhcmQgYW5kIHRoZSBXQkQgTmF0 +aW9uYWwgVGVjaG5pY2FsIENvb3JkaW5hdG9ycyAoTlRDKQ0KCQlQb3J0aW9ucyBvZiBsZWdhY3kg +MTgwNjAwMTEsIDE4MDYwMDEyLCBhbmQgcGFydCBvZiAxOTA2MDAwMSB3aWxsIGJlY29tZSBhIG5l +dyBzdWJiYXNpbiBhY2NvdW50aW5nIGZvciBhbGwgb2YgdGhlc2UgZnJvbnRhbCBwaWVjZXMuIEl0 +IHdpbGwgYmUgY29kZWQgMTgwNjAwMTUgYW5kIG5hbWVkIE1vbnRlcmV5IEJheS4gVGhpcyBpcyBh +cHByb3ZlZCBieSB0aGUgaW4tc3RhdGUgV0JEIFN0ZXdhcmQgYW5kIHRoZSBXQkQgTmF0aW9uYWwg +VGVjaG5pY2FsIENvb3JkaW5hdG9ycyAoTlRDKQ0KCQlMZWdhY3kgMTgwNjAwMTMgU2FudGEgQmFy +YmFyYSBDb2FzdGFsIGhhZCBhbiBhcmVhIHRoZSBzaXplIG9mIG9uZSAxMi1kaWdpdCBIVSB3aGlj +aCB3aWxsIGJlIGFnZ3JlZ2F0ZWQgd2l0aCBsZWdhY3kgMTgwNzAxMDEgVmVudHVyYSBhcyBhIHJl +c3VsdCBvZiBjb2FzdGFsIGltcGxlbWVudGF0aW9uLiBUaGlzIGlzIGFwcHJvdmVkIGJ5IHRoZSBp +bi1zdGF0ZSBXQkQgU3Rld2FyZCBhbmQgdGhlIFdCRCBOYXRpb25hbCBUZWNobmljYWwgQ29vcmRp +bmF0b3JzIChOVEMpDQoJCUxlZ2FjeSAxODA3MDEwNCBTYW50YSBNb25pY2EgQmF5IGhhZCBhbiBh +cmVhIHRoZSBzaXplIG9mIHNldmVyYWwgMTItZGlnaXQgSFVzIHdoaWNoIHdpbGwgYmUgYWdncmVn +YXRlZCB3aXRoIGxlZ2FjeSAxODA3MDEwNiBTYW4gR2FicmllbCBhcyBhIHJlc3VsdCBvZiBjb2Fz +dGFsIGltcGxlbWVudGF0aW9uLiBUaGlzIGlzIGFwcHJvdmVkIGJ5IHRoZSBpbi1zdGF0ZSBXQkQg +U3Rld2FyZCBhbmQgV0JEIE5hdGlvbmFsIFRlY2huaWNhbCBDb29yZGluYXRvcnMgKE5UQykNCgkJ +TGVnYWN5IDE4MTAwMjAwIGhhcyBub3cgYmVlbiBzdWJkaXZpZGUgaW50byAxODEwMDIwMSwgMTgx +MDAyMDIsIDE4MTAwMjAzLCBhbmQgMTgxMDAyMDQuIA0KCQlUaGUgbGVnYWN5IG5hbWUgZm9yIDE4 +MDEwMDIwMCBoYXMgYmVlbiByZXRhaW5lZCBhcyB0aGUgU2FsdG9uIFNlYSBmb3IgbmV3ICBjb2Rl +IDE4MTAwMjA0LiBOZXcgbmFtZXMgZm9yIHRoZSBvdGhlciBzdWJkaXZpc2lvbnMgaGF2ZSBiZWVu +IHJldmlld2VkIGFuZCBhY2NlcHRlZCBhcyBmb2xsb3dzOg0KCQkJMTgxMDAyMDEgV2hpdGV3YXRl +ciBSaXZlcg0KCQkJMTgxMDAyMDIgQ2Fycml6byBDcmVlaw0KCQkJMTgxMDAyMDMgU2FuIEZlbGlw +ZSBDcmVlaw0KCQlMZWdhY3kgMTgwNDAwMDIgYW5kIG5ldyAxODA0MDA1MSBuYW1lIE1pZGRsZSBT +YW4gSm9hcXVpbi1Mb3dlciBNZXJjZWQtTG93ZXIgU3RhbmlzbGF1cyB3YXMgY2hhbmdlIHRvIFJv +Y2sgQ3JlZWstRnJlbmNoIENhbXAgU2xvdWdoLg0KCQlMZWdhY3kgMTgwMjAxMjQgSG9uY3V0IEhl +YWR3YXRlcnMgbmFtZSBhbmQgY29kZSBoYXZlIGJlZW4gcmV0aXJlZC4gIEl0IHdhcyBhYnNvcmJl +ZCBpbiB0byBsZWdhY3kgMTgwMjAxMDYgTG93ZXIgRmVhdGhlciB0byBmb3JtIHRoZSBuZXcgMTgw +MjAxNTkuIFdCRCBOYXRpb25hbCBUZWNobmljYWwgQ29vcmRpbmF0b3JzIChOVEMpIHJlY29tbWVu +ZHMgdGhlIG5hbWUgcmV0YWluIHRoZSBjb21iaW5lZCBsZWdhY3kgbmFtZXMgb2YgSG9uY3V0IEhl +YWR3YXRlcnMtTG93ZXIgRmVhdGhlci4NCgkJTGVnYWN5IDE4MDIwMTIwIFVwcGVyIEJ1dHRlIGFu +ZCBsZWdhY3kgMTgwMjAxMDUgTG93ZXIgQnV0dGUgaGF2ZSBiZWVuIHJldGlyZWQuDQoJCVRoZSB0 +d28gaHlkcm9sb2dpYyB1bml0cyB3ZXJlIGNvbWJpbmVkIGluIHRvIHRoZSBuZXcgYWNjZXB0ZWQg +Y29kZSBhbmQgbmFtZSBvZiAxODAyMDE1OCBCdXR0ZSBDcmVlay4NCgkJTGVnYWN5IDE4MDIwMTE5 +IE1pbGwtQmlnIENoaWNvLCAxODAyMDEwMyBTYWNyYW1lbnRvLUxvd2VyIFRob21lcywgYW5kIDE4 +MDIwMTE0IFVwcGVyIEVsZGVyIFRob21lcyBoYXZlIGJlZW4gcmV0aXJlZC4gIFRoZSBhY2NlcHRl +ZCBuYW1lcyBhbmQgY29kZXMgZm9yIHRoZSBuZXdseSBkZWxpbmVhdGVkIGh5ZHJvbG9naWMgdW5p +dHMgdG8gcmVwbGFjZSB0aG9zZSBhcmVhcyBhcmUgMTgwMjAxNTcgQmlnIENoaWNvIENyZWVrLVNh +Y3JhbWVudG8gUml2ZXIsIDE4MDIwMTU2IFRob21lcyBDcmVlay1TYWNyYW1lbnRvIFJpdmVyLCBh +bmQgMTgwMjAxNTUgUGF5bmVzIENyZWVrLVNhY3JhbWVudG8gUml2ZXIuDQoJCVRoZSBmb2xsb3dp +bmcgbGVnYWN5IG5hbWVzIGFuZCBjb2RlcyBoYXZlIGJlZW4gcmV0aXJlZDogMTgwMjAxMTMgQ290 +dG9ud29vZCBIZWFkd2F0ZXJzLCAxODAyMDEwMiBMb3dlciBDb3R0b253b29kLCAxODAyMDEwMSBT +YWNyYW1lbnRvLUxvd2VyIENvdy1Mb3dlciBDbGVhciwgMTgwMjAxMTggVXBwZXIgQ293LUJhdHRs +ZSwgYW5kIDE4MDIwMTEyIFNhY3JhbWVudG8tVXBwZXIgQ2xlYXIuICBUaGUgYWNjZXB0ZWQgY29k +ZXMgZm9yIHRoZSBuZXdseSBkZWxpbmVhdGVkIGh5ZHJvbG9naWMgdW5pdHMgdGhhdCByZXBsYWNl +IHRob3NlIGFyZWFzIHdpbGwgYmUgMTgwMjAxNTEtMTgwMjAxNTQuICANCgkJCVRoZSBhcHByb3Zl +ZCBuYW1lcyBhcmU6DQoJCQkxODAyMDE1MSBDb3cgQ3JlZWsNCgkJCTE4MDIwMTUyIENvdHRvbndv +b2QgQ3JlZWsNCgkJCTE4MDIwMTUzIEJhdHRsZSBDcmVlaw0KCQkJMTgwMjAxNTQgQ2xlYXIgQ3Jl +ZWstU2FjcmFtZW50byBSaXZlciANCgkJMTgwMTAxMTEgY29kZSBhbmQgbmFtZSBoYXZlIGJlZW4g +cmV0aXJlZCBhbmQgdGhlIGFyZWEgaGFzIGJlZW4gc3ViZGl2aWRlZC4gQSBwb3J0aW9uIGlzIGlu +IDE4MDEwMTA5IEd1YWxhbGEtU2FsbW9uLCBhbmQgdGhlIG90aGVyIHBvcnRpb24gaW4gMTgwNTAw +MDUgVG9tYWxlcy1EcmFrZSBCYXlzDQoJCTE4MDIwMTA3IGNvZGUgYW5kIG5hbWUgaGF2ZSBiZWVu +IHJldGlyZWQgYW5kIHRoZSBhcmVhIGlzIG5vdyBpbmNsdWRlZCB3aXRoIDE4MDIwMTI1IFVwcGVy +IFl1YmENCgkJMTgwMjAxMDggY29kZSBhbmQgbmFtZSBoYXZlIGJlZW4gcmV0aXJlZCBhbmQgdGhl +IGFyZWEgaXMgbm93IGluY2x1ZGVkIHdpdGggMTgwMjAxMjYgVXBwZXIgQmVhcg0KCQkxODAyMDEx +MCBjb2RlIGFuZCBuYW1lIGhhdmUgYmVlbiByZXRpcmVkIGFuZCB0aGUgYXJlYSBpcyBub3cgaW5j +bHVkZWQgd2l0aCAxODAyMDExNiBVcHBlciBDYWNoZQ0KCQkxODAzMDAwOCBjb2RlIGFuZCBuYW1l +IGhhdmUgYmVlbiByZXRpcmVkIGFuZCB0aGUgYXJlYSBpcyBub3cgaW5jbHVkZWQgd2l0aCAxODAz +MDAxMiBUdWxhcmUgTGFrZSBCZWQNCgkJMTgwMzAwMTEgY29kZSBhbmQgbmFtZSBoYXZlIGJlZW4g +cmV0aXJlZCBhbmQgdGhlIGFyZWEgaGFzIGJlZW4gc3ViZGl2aWRlZC4gQSBwb3J0aW9uIGlzIGlu +IDE4MDMwMDEyIFR1bGFyZSBMYWtlIEJlZCwgYW5kIHRoZSBvdGhlciBwb3J0aW9uIGluIDE4MDMw +MDA5IFVwcGVyIERyeSANCgkJMTgwNDAwMDQgY29kZSBhbmQgbmFtZSBoYXZlIGJlZW4gcmV0aXJl +ZCBhbmQgdGhlIGFyZWEgaXMgbm93IHBhcnQgb2YgMTgwNDAwMTEgVXBwZXIgQ2FsYXZlcmFzIENh +bGlmb3JuaWENCgkJMTgwNDAwMDUgY29kZSBhbmQgbmFtZSBoYXZlIGJlZW4gcmV0aXJlZCBhbmQg +dGhlIGFyZWEgaXMgbm93IHBhcnQgb2YgMTgwNDAwMDMgU2FuIEpvYXF1aW4gRGVsdGEsIDE4MDQw +MDEyLCAxODA0MDAxMiBVcHBlciBNb2tlbHVtbmUsIGFuZCAxODA0MDAwMyBVcHBlciBDb3N1bW5l +cw0KCQkxODAyMDEwOSBjb2RlIGFuZCBuYW1lIGhhdmUgYmVlbiByZXRpcmVkIGFuZCB0aGUgYXJl +YSBpcyBub3cgcGFydCBvZiAxODAyMDE2MyBMb3dlciBTYWNyYW1lbnRvDQoJCTE4MDIwMTE3IGNv +ZGUgYW5kIG5hbWUgaGF2ZSBiZWVuIHJldGlyZWQgYW5kIHRoZSBhcmVhIGlzIG5vdyBwYXJ0IG9m +IDE4MDIwMTYyIFVwcGVyIFB1dGFoDQoJCTE4MDYwMDAxIGNvZGUgYW5kIG5hbWUgaGF2ZSBiZWVu +IHJldGlyZWQsIGFuZCB0aGUgYXJlYXMgYXJlIG5vdyBzdWJkaXZpZGVkIGJldHdlZW4gMTgwNTAw +MDYgU2FuIEZyYW5jaXNjbyBDb2FzdGFsIFNvdXRoIGFuZCAxODA2MDAxNSBNb250ZXJleSBCYXkN +CgkJMTgwNjAwMTEgY29kZSBhbmQgbmFtZSBoYXZlIGJlZW4gcmV0aXJlZCBhbmQgbm93IGlzIHN1 +YmRpdmlkZWQgYmV0d2VlbiAxODA2MDAxNSBNb250ZXJleSBCYXkgYW5kIDE4MDYwMDA1IFNhbGlu +YXMNCgkJMTgwNjAwMTIgY29kZSBhbmQgbmFtZSBoYXZlIGJlZW4gcmV0aXJlZCBhbmQgdGhlIGFy +ZWEgaXMgbm93IHBhcnQgb2YgMTgwNjAwMDYgQ2VudHJhbCBDb2FzdCBhbmQgMTgwNjAwMTUgTW9u +dGVyZXkgQmF5DQoNCglDb2xvcmFkbzoNCgkJTGVnYWN5IDE0MDEwMDA2IFBhcmFjaHV0ZS1Sb2Fu +IG5hbWUgYW5kIGNvZGUgaGF2ZSBiZWVuIHJldGlyZWQuIFRoaXMgYXJlYSBoYXMgYmVlbiBjb21i +aW5lZCB3aXRoIDE0MDEwMDA1IENvbG9yYWRvIEhlYWR3YXRlcnMtUGxhdGVhdS4NCg0KCUNvbm5l +Y3RpY3V0Og0KCQkwMTEwMDAwNyBjb2RlIGFuZCBuYW1lIGhhdmUgYmVlbiByZXRpcmVkIGFuZCB0 +aGUgYXJlYSBpcyBub3cgcGFydCBvZiAwMTEwMDA0IFF1aW5uaXBpYWMNCg0KCURlbGF3YXJlOg0K +CQkwMjA2MDAwNyBjb2RlIGFuZCBuYW1lIGhhdmUgYmVlbiByZXRpcmVkIGFuZCB0aGlzIGFyZWEg +bm93IGluY2x1ZGVkIHdpdGggMDIwODAxMTAgVGFuZ2llcg0KCQkwMjA2MDAwOCBjb2RlIGFuZCBu +YW1lIGhhdmUgYmVlbiByZXRpcmVkIGFuZCB0aGlzIGFyZWEgbm93IGluY2x1ZGVkIHdpdGggMDIw +ODAxMDkgTmFudGljb2tlDQoJCTAyMDYwMDA5IGNvZGUgYW5kIG5hbWUgaGF2ZSBiZWVuIHJldGly +ZWQgYW5kIHRoaXMgYXJlYSBpcyBub3cgcGFydCBvZiAwMjA4MDExMSBQb2tvbW9rZS1XZXN0ZXJu +IExvd2VyIERlbG1hcnZhIGFuZCAwMjA4MDExMCBUYW5naWVyDQoJCTAyMDYwMDEwIGNvZGUgYW5k +IG5hbWUgaGF2ZSBiZWVuIHJldGlyZWQgYW5kIHRoaXMgYXJlYSBpcyBub3cgcGFydCBvZiAwMjA0 +MDMwMyBDaGluY290ZWFndWUNCg0KCUZsb3JpZGE6DQoJCUxlZ2FjeSAwMzA5MDIwMiBFdmVyZ2xh +ZGVzIGhhcyBiZWVuIG1vZGlmaWVkIGFzIGZvbGxvd3M6DQoJCVRoZSBsYXJnZXN0IHBhcnQgb2Yg +MDMwOTAyMDIgRXZlcmdsYWRlcyBjYXJyaWVzIHRoZSBsZWdhY3kgY29kZSBhbmQgbmFtZS4NCgkJ +U3ViZGl2aWRlZCBvdXQgbmV3IFN1YmJhc2luIDAzMDkwMjA2IEZsb3JpZGEgU291dGhlYXN0IENv +YXN0DQoJCUNvbWJpbmVkIGFkZGl0aW9uYWwgc21hbGxlciBwb3J0aW9ucyBvZiAwMzA5MDIwMiB3 +aXRoIGFkamFjZW50IFN1YmJhc2lucy4NCg0KCUxvdWlzaWFuYToNCgkJMjAwOSAtIFVTR1MgV2F0 +ZXIgU2NpZW5jZSBDZW50ZXIsIFNhbHQgTGFrZSBDaXR5LCBVVC4gUmVjb2RlZCBhbGwgSFVDMTIg +Y29kZXMgYW5kIERTIGNvZGVzIGZvciAwODA4MDEwMCBBdGNoYWZhbGF5YSB0byAwODA4MDEwMSBB +dGNoYWZhbGF5YS4gMDgwODAxMDEgaXMgdGhlIGNvcnJlY3QgY29kZS4gRHVyaW5nIHRoZSBkZXZl +bG9wbWVudCBvZiB0aGUgV0JEIHRoZSAxMi1kaWdpdCBoeWRyb2xvZ2ljIHVuaXRzIHdlcmUgbWlz +Y29kZWQgYXMgMDgwODAxMDAuDQogICAgICAgIA0KCU1haW5lDQoJCVVwZGF0ZXMgYXQgdGhlIDgt +ZGlnaXQgb2NjdXJyZWQgYXMgYSByZXN1bHQgb2YgdGhlIFVTL0NhbmFkYSBoYXJtb25pemF0aW9u +IGVmZm9ydC4gU2VlIHByb2Nlc3Mgc2VjdGlvbiBvbiBDYW5hZGlhbiBoYXJtb25pemF0aW9uIGZv +ciB0aGVzZSBkZXRhaWxzLg0KCQ0KCU1hc3NhY2h1c2V0dHM6DQoJCTAxMDcwMDAyIGlzIHJldGFp +bmVkIGZvciB0aGUgaGVhZHdhdGVycyBvZiB0aGlzIG9yaWdpbmFsIGNvZGUsIGJ1dCDCviBvZiB0 +aGUgb3JpZ2luYWwgYXJlYSBpcyBub3cgY29kZWQgMDEwNzAwMDYuIFRoZSBhcmVhIG5vdyBjb2Rl +ZCAwMTA3MDAwNiByZXRhaW5lZCB0aGUgb3JpZ2luYWwgbmFtZSBmb3IgdGhlIGFyZWEgb2YgbGVn +YWN5IDAxMDcwMDAyIGFuZCBpcyBjYWxsZWQgTWVycmltYWNrLCB3aGVyZWFzIDAxMDcwMDAyIGlz +IG5vdCBjYWxsZWQgV2lubmlwZXNhdWtlZSBSaXZlciAob3RoZXIgc3RhdGUgZG9jdW1lbnRhdGlv +biBzdXBwb3J0aW5nIHRoaXMgZGVjaXNpb24pDQoNCglOZXcgSGFtcHNoaXJlOg0KCQlMZWdhY3kg +MDEwNzAwMDIgTWVycmltYWNrIHdhcyBzdWJkaXZpZGVkIGluIHRvIDAxMDcwMDAyIE1lcnJpbWFj +ayB0byB0aGUgTm9ydGggYW5kIDAxMDcwMDA2IE1lcnJpbWFjayBSaXZlciB0byB0aGUgU291dGgu +ICBUaGUgdGVjaG5pY2FsIHRlYW0gcmVxdWVzdHMgdGhhdCB0aGUgcG9ydGlvbiB0byB0aGUgU291 +dGggcmV0YWluIHRoZSBsZWdhY3kgY29kZSBhbmQgbmFtZSBvZiAwMTA3MDAwMiwgTWVycmltYWNr +LCBhbmQgdGhhdCB0aGUgbm9ydGhlcm4gaHlkcm9sb2dpYyB1bml0IHJlY2VpdmUgdGhlIGNvZGUg +YW5kIG5hbWUgMDEwNzAwMDYgV2lubmlwZXNhdWtlZSBSaXZlci4gIFRoZXJlIGlzIG5vIE1lcnJp +bWFjayBSaXZlciBpbiB0aGUgbm9ydGhlcm4gcG9ydGlvbiBhbmQgdGhlIHNvdXRoZXJuIHBvcnRp +b24gbW9zdCBjbG9zZWx5IHJlc2VtYmxlcyB0aGUgbGVnYWN5IGRlbGluZWF0aW9uLg0KCQ0KCQlB +ZGRpdGlvbmFsIHVwZGF0ZXMgYXQgdGhlIDgtZGlnaXQgb2NjdXJyZWQgYXMgYSByZXN1bHQgb2Yg +dGhlIFVTL0NhbmFkYSBoYXJtb25pemF0aW9uIGVmZm9ydC4gU2VlIHByb2Nlc3Mgc2VjdGlvbiBv +biBDYW5hZGlhbiBoYXJtb25pemF0aW9uIGZvciB0aGVzZSBkZXRhaWxzDQoNCglOZXcgWW9yazoN +CgkJTGVnYWN5IDA0MTUwMzA3IEVuZ2xpc2gtU2FsbW9uIHdhcyBzdWJkaXZpZGVkIGludG8gMDQx +NTAzMDcgU2FsbW9uIGFuZCAwNDE1MDMwOCBDaGF0ZWF1Z2F5LUVuZ2xpc2guIFRoZSBUZWNobmlj +YWwgVGVhbSBhY2NlcHRzIHRoaXMgY2hhbmdlLg0KCQ0KCQkyMDEwLSBFZGl0cyB3ZXJlIG1hZGUg +dG8gTGFrZSBDaGFtcGxhaW4gQmFzaW4gbW92aW5nIGl0IGZyb20gUmVnaW9uIDAyIHRvIFJlZ2lv +biAwNC4gVXBkYXRlIHRvIGRlbGluZWF0aW9uIGRhdGEgaW4gTGFrZSBDaGFtcGxhaW4gYXJlYSBv +biB0aGUgVVMgc2lkZSBhbmQgQ2FuYWRpYW4gc2lkZS4gQWxsIGxpbmVzIHdpdGhpbiBDYW5hZGEg +YXJlIGRyYWZ0IGRlbGluZWF0aW9ucyBvbmx5LiBUaGVzZSBib3VuZGFyaWVzIHdlcmUgYmFzZWQg +b24gQ2FuYWRhJ3MgMTo1MCwwMDAgTmF0aW9uYWwgSHlkcm9ncmFwaHkgTmV0d29yayBXb3JrIFVu +aXRzIG9yIHdlcmUgZGVsaW5lYXRlZCB1c2luZyBlaXRoZXIgMTo1MCwwMDAgc2NhbGUgdG9wb3Mg +b3IgQ0RFRCBlbGV2YXRpb24gZGF0YS4gVGhlc2UgYm91bmRhcmllcyBoYXZlIG5vdCBiZWVuIGZ1 +bGx5IHJldmlld2VkIG9yIGFwcHJvdmVkIGJ5IGVpdGhlciB0aGUgQ2FuYWRpYW4gZmVkZXJhbCBv +ciBwcm92aW5jaWFsIGFnZW5jaWVzIGFuZCBhcmUgc3ViamVjdCB0byBjaGFuZ2UuICBCb3JkZXIg +cG9seWdvbnMgYXJlIGJhc2VkIG9mZiBvZiB0aGVzZSBpbnRlcm5hbCBib3VuZGFyaWVzIHdpdGhp +biBDYW5hZGEgYW5kIHNvIGFyZSBhbHNvIHN1YmplY3QgdG8gY2hhbmdlIHdpdGhpbiBDYW5hZGEu +IEVkaXRzIG1hZGUgYnkgVVNHUyBTYWx0IExha2UgQ2l0eSwgV2F0ZXIgU2NpZW5jZSBDZW50ZXI6 +IHRvIHRoZSBMYWtlIENoYW1wbGFpbiBhbmQgc3Vycm91bmRpbmcgc3ViYmFzaW5zIHRvIHJlbW92 +ZSBhbGwgc2hvcmVsaW5lIHJlcHJlc2VudGF0aW9ucyBmcm9tIHRoZSBXQkQuIFRoZSBjb2Rlcywg +RFMgY29kZXMgYW5kIG5hbWVzIHdoZXJlIHVwZGF0ZWQgd2hlcmUgbmVjZXNzYXJ5Lg0KDQoJCTAy +MDEwMDA0IG5hbWUgYW5kIGNvZGUgaGF2ZSBiZWVuIHJldGlyZWQsIGFuZCB0aGlzIGFyZWEgd2Fz +IHN1YmRpdmlkZWQsIHBhcnQgaXMgaW4gMDQxNTA0MDQgQXVzYWJsZSBSaXZlciBhbmQgcGFydCBp +biAwNDE1MDQwOCBMYWtlIENoYW1wbGFpbi4NCgkJMDIwMTAwMDYgbmFtZSBhbmQgY29kZSBoYXZl +IGJlZW4gcmV0aXJlZCBhbmQgdGhpcyBhcmVhIHdhcyBzdWJkaXZpZGVkLiBQYXJ0IGlzIGluIDA0 +MTUwNDA2IFNhcmFuYWMgUml2ZXIgYW5kIHBhcnQgaXMgaW4gMDQxNTA0MDggTGFrZSBDaGFtcGxh +aW4uDQoJCTAyMDEwMDAxIG5hbWUgYW5kIGNvZGUgaGF2ZSBiZWVuIHJldGlyZWQgYW5kIHRoaXMg +YXJlYSB3YXMgc3ViZGl2aWRlZCBpbnRvIDA0MTUwNDAxIE1ldHRhd2VlIFJpdmVyIGFuZCAwNDE1 +MDQwOCBMYWtlIENoYW1wbGFpbg0KCQ0KCQlUaGUgbmV3IExha2UgQ2hhbXBsYWluIHVuaXQgMDQx +NTA0MDggaXMgbWFkZSB1cCBvZiBwYXJ0cyBvZiBvcmlnaW5hbCBIVUMyNTBLIHVuaXRzIDAyMDEw +MDAxLCAwMjAxMDAwMiwgMDIwMTAwMDMsIDAyMDEwMDA0LCAwMjAxMDAwNSwgMDIwMTAwMDYgYW5k +IDAyMDEwMDA3DQoJDQoJCUFkZGl0aW9uYWwgdXBkYXRlcyBhdCB0aGUgOC1kaWdpdCBvY2N1cnJl +ZCBhcyBhIHJlc3VsdCBvZiB0aGUgVVMvQ2FuYWRhIGhhcm1vbml6YXRpb24gZWZmb3J0LiBTZWUg +cHJvY2VzcyBzZWN0aW9uIG9uIENhbmFkaWFuIGhhcm1vbml6YXRpb24gZm9yIHRoZXNlIGRldGFp +bHMNCg0KCU5vcnRoIENhcm9saW5hOg0KCQlMZWdhY3kgc3ViYmFzaW4gMDMwMzAwMDEgYW5kIGxl +Z2FjeSBzdWJiYXNpbiAwMzAyMDEwNiBoYXZlIGJlZW4gY29tYmluZWQgYW5kIHJlY29tbWVuZGVk +IGZvciBhY2NlcHRhbmNlIGFzIGEgbmV3IDYtZGlnaXQgQmFzaW4gMDMwMjAzIE9uc2xvdyBCYXku +ICANCgkJTGVnYWN5IFN1YmJhc2luIDAzMDMwMDAxIE5ldyBoYXMgYmVlbiByZWNvZGVkIGFuZCBy +ZW5hbWVkIHRvIDAzMDIwMzAyIE5ldyBSaXZlci4gVGhlIHRlY2huaWNhbCB0ZWFtIGFjY2VwdHMg +dGhlIG5ldyBjb2RlIGFuZCBuYW1lLg0KCQlMZWdhY3kgU3ViYmFzaW4gMDMwMjAxMDYgQm9ndWUt +Q29yZSBTb3VuZHMgaGFzIGJlZW4gcmVjb2RlZCBhbmQgcmVuYW1lZCB0byAwMzAyMDMwMSBXaGl0 +ZSBPYWsgUml2ZXIuIFRoZSB0ZWNobmljYWwgdGVhbSBhY2NlcHRzIHRoZSBuZXcgY29kZSBhbmQg +bmFtZS4NCgkJMDMwNDAyMDcgY29kZSBhbmQgbmFtZSBhcmUgc3RpbGwgaW4gdXNlLCBidXQgdGhl +IHBvcnRpb24gdGhhdCBzdHJldGNoZXMgYWxvbmcgdGhlIGNvYXN0IGhhcyBiZWVuIGJyb2tlbiBv +dXQgdG8gYSBuZXcgMDMwNDAyMDggQ29hc3RhbCBDYXJvbGluYQ0KDQoJTm9ydGggRGFrb3RhOg0K +CQlMZWdhY3kgMTAxNjAwMDcgRWFzdCBNaXNzb3VyaSBDb3RlYXUsIGNoYW5nZWQgdG8gTm9ydGgg +Rm9yayBTbmFrZSBhcyB0aGF0IGlzIGEgYmV0dGVyIGh5ZHJvbG9naWMgcmVwcmVzZW50YXRpb24g +b2YgdGhlIGh5ZHJvbG9naWMgdW5pdC4NCgkJTGVnYWN5IDEwMTcwMTAzIFNvdXRoIEJpZyBTaW91 +eCBDb3RlYXUgbmFtZSBjaGFuZ2VkIHRvIExha2UgVGhvbXBzb24NCgkJTGVnYWN5IDEwMTcwMjAx +IE1pZGRsZSBCaWcgU2lvdXggQ290ZWF1IG5hbWUgY2hhbmdlZCB0byBVcHBlciBCaWcgU2lvdXgN +CgkJTGVnYWN5IDEwMTcwMjAyIFVwcGVyIEJpZyBTaW91eCBuYW1lIGNoYW5nZWQgdG8gTWlkZGxl +IEJpZyBTaW91eA0KCQlCZWNhdXNlIGxlZ2FjeSAxMDE3MDIwMyBMb3dlciBCaWcgU2lvdXggc2hv +dWxkIHN0YXkgdGhlIHNhbWUsIGl0IGRvZXNu4oCZdCBtYWtlIHNlbnNlIG5vdCB0byBoYXZlIGEg +bWlkZGxlIGFuZCBhbiB1cHBlci4gQWx0aG91Z2ggdGhlIGJvdW5kYXJpZXMgaGF2ZSBzaWduaWZp +Y2FudGx5IHJlbG9jYXRlZCwgaXQgc2VlbSBsaWtlIG1vc3QgdmlhYmxlIG9wdGlvbiBpcyB0byBy +ZXRhaW4gdGhlIFVwcGVyLCBNaWRkbGUsIExvd2VyIG5hbWluZyBjb252ZW50aW9uLg0KDQoJCUFk +ZGl0aW9uYWwgdXBkYXRlcyBhdCB0aGUgOC1kaWdpdCBvY2N1cnJlZCBhcyBhIHJlc3VsdCBvZiB0 +aGUgVVMvQ2FuYWRhIGhhcm1vbml6YXRpb24gZWZmb3J0LiBTZWUgcHJvY2VzcyBzZWN0aW9uIG9u +IENhbmFkaWFuIGhhcm1vbml6YXRpb24gZm9yIHRoZXNlIGRldGFpbHMNCg0KCU9yZWdvbjogDQoJ +CUxlZ2FjeSAxNzEwMDMwNCBDb29zIHdhcyBzdWJkaXZpZGVkIGludG8gMTcxMDAzMDQgQ29vcyB0 +byB0aGUgbm9ydGggYW5kIDE3MTAwMzA2IFNpeGVzIHRvIHRoZSBzb3V0aC4gVGhlIFRlY2huaWNh +bCB0ZWFtIGFjY2VwdHMgdGhpcyBjaGFuZ2UuDQoNCglTb3V0aCBDYXJvbGluYToNCgkJTGVnYWN5 +IDAzMDQwMjA3IENhcm9saW5hIENvYXN0YWwtU2FtcGl0IHdhcyBzdWJkaXZpZGVkIGludG8gYSBz +b3V0aGVybiBwb3J0aW9uIGNhbGxlZCAwMzA0MDIwNyBDYXJvbGluYSBDb2FzdGFsLVNhbXBpdCBh +bmQgYSBub3J0aGVybiBwb3J0aW9uIG5ld2x5IGNvZGVkIGFuZCBuYW1lZCAwMzA0MDIwOCBDb2Fz +dGFsIENhcm9saW5hLiBUaGUgdGVjaG5pY2FsIHRlYW0gcmVjb2duaXplcyB0aGlzIGFzIGFuIGFj +Y2VwdGFibGUgc29sdXRpb24sIGhvd2V2ZXIsIGZ1dHVyZSBjb2FzdGFsIGRlbGluZWF0aW9ucyBt +YXkgcmVxdWlyZSBhZGRpdGlvbmFsIG1vZGlmaWNhdGlvbi4NCgkJTGVnYWN5IDAzMDUwMjAyIFNv +dXRoIENhcm9saW5hIENvYXN0YWwgaGFzIG5vdyBiZWVuIHN1YmRpdmlkZWQgaW50byBzdWJiYXNp +bnMgMDMwNTAyMDIgU291dGggQ2Fyb2xpbmEgQ29hc3RhbCBhbmQgMDMwNTAyMDkgQnVsbHMgQmF5 +IHdpdGggYW4gYWRkaXRpb25hbCBwb3J0aW9uIG9mIDAzMDUwMjAyIGJlaW5nIGFnZ3JlZ2F0ZWQg +aW4gd2l0aCBsZWdhY3kgMDMwNTAyMDEgDQoJCUxlZ2FjeSAwMzA1MDIwOCBCcm9hZC1TdC4gSGVs +ZW5hIGhhcyBoYWQgdGhlIGZvbGxvd2luZyBtb2RpZmljYXRpb25zIHdoaWNoIHRoZSBOVEMgY29u +Y3VycyB3aXRoOg0KCQkwMzA1MDIwOCBCcm9hZC1TdC4gSGVsZW5hIGNvZGUgYW5kIG5hbWUgcmV0 +YWluZWQgaW50byBhIG11Y2ggc21hbGxlciB1bml0IGNhcHR1cmluZyBvbmx5IHRoZSBCcm9hZC1T +dC4gSGVsZW5hIFJpdmVycw0KCQkJU3ViZGl2aWRlZCBpbnRvIG5ldyAwMzA2MDExMCBDYWxpYm9n +dWUgU291bmQtV3JpZ2h0IFJpdmVyLCBhbmQgbm93IHBhcnQgb2YgdGhlIGFkamFjZW50IFN1YnJl +Z2lvbiB0byB0aGUgc291dGguDQoJCQlTdWJkaXZpZGVkIGludG8gbmV3IDAzMDUwMjEwIFN0LiBI +ZWxlbmEgSXNsYW5kIHBvcnRpb24gY29tYmluZWQgd2l0aCAwMzA1MDIwNyBTYWxrZWhhdGNoaWUu +DQoJCUxlZ2FjeSAwMzA1MDIwNSBuYW1lIGlzIGNoYW5nZWQgdG8gRm91ciBIb2xlIFN3YW1wIChm +cm9tIEVkaXN0by4uLnRoaXMgbmFtZSB3YXMgZmxpcHBlZCB3aXRoIHRoZSBoeWRyb2xvZ2ljIHVu +aXQgdGhlIHdhdGVyIGZlYXR1cmUgcmVzaWRlcyBpbikuIFRoZSBXQkQgTmF0aW9uYWwgVGVjaG5p +Y2FsIFRlYW0gcmVjb21tZW5kZWQgdGhhdCB0aGlzIG5hbWUgbm90IGJlIHJldXNlZCBhcyBpdCBo +YXMgYmVlbiBoaXN0b3JpY2FsbHkgYXNzaWduZWQgdG8gMDMwNTAyMDYsIGJ1dCBhbGwgaW4gc3Rh +dGUgaW50ZXJhZ2VuY3kgZm9sa3MgZmVsdCBzdHJvbmdseSB0aGF0IGl0IHNob3VsZCBiZSByZXVz +ZWQgYXMgdGhhdCBpcyBieSBmYXIgdGhlIHByZWRvbWluYW50IGZlYXR1cmUgZm9yIHRoZSBIVS4g +UmVwb3J0cyBzaW5jZSAyMDA1IHJlZmxlY3QgdGhpcy4NCgkJTGVnYWN5IDAzMDUwMjA2IG5hbWUg +aXMgY2hhbmdlZCB0byBFZGlzdG8gUml2ZXIgdG8gcmVmbGVjdCB0aGUgbWFqb3IgaHlkcm9sb2dp +YyBmZWF0dXJlLg0KDQoJU291dGggRGFrb3RhOg0KCQkyMDA5IC0gRWRpdHMgbWFkZSBieSBpbi1z +dGF0ZSBkYXRhIHN0ZXdhcmQ7IGFsbCBvZiBzdWItYmFzaW4gMTAxNjAwMTAgKG5vdyByZXRpcmVk +KSB3YXMgcmVjb2RlZCB0byAxMDE2MDAxMSAoTG93ZXIgSmFtZXMpOyBJbiBhZGRpdGlvbiB0byB0 +aGUgcmVjb2Rpbmcgb2YgdGhpcyA4LWRpZ2l0IGxldmVsIHVuaXQgaW4gdGhlIEphbWVzIEJhc2lu +LCB0aGlzIGdyb3VwIG9mIGVkaXRzIHByaW1hcmlseSBjb25zaXN0ZWQgb2YgbWlub3IgY29ycmVj +dGlvbnMgdG8gbGluZXdvcmsgYW5kIDEyLWRpZ2l0IGRvd25zdHJlYW0gY29kZXMsIHBvcHVsYXRp +bmcgbmNvbnRyYl9BIGZpZWxkcyBvZiBzZWxlY3RlZCAxMi1kaWdpdCB1bml0cywgYW5kIHR3ZWFr +aW5nIHNlbGVjdGVkIDV0aC0gYW5kIDZ0aC1sZXZlbCB1bml0IG5hbWVzIHRvIGZhY2lsaXRhdGUg +bWVyZ2luZyB3aXRoIEdOSVMuDQoJCQ0KCVRleGFzOg0KCQlMZWdhY3kxMzA3MDAwOCBMb3dlciBQ +ZWNvcyB3YXMgc3ViZGl2aWRlZCBpbnRvIGEgbm9ydGhlcm4gYW5kIHNvdXRoZXJuIHBvcnRpb24u +IFRoZSBub3J0aGVybiBwb3J0aW9uIHJldGFpbnMgdGhlIDEzMDcwMDA4IGNvZGUgYnV0IG5hbWUg +c2hvdWxkIGJlIFBlY29zLiBUaGUgbmV3IHN1YmRpdmlkZWQgMTMwNzAwMTIgaHlkcm9sb2dpYyB1 +bml0IHNob3VsZCBjYXJyeSB0aGUgbGVnYWN5IG5hbWUgTG93ZXIgUGVjb3MuDQoJCUxlZ2FjeSAx +MzA5MDAwMiBMb3dlciBSaW8gR3JhbmRlIGlzIG1pc3NpbmcgZnJvbSB0aGUgY3VycmVudCBXQkQu +DQoNCglWZXJtb250Og0KCQlVcGRhdGVkIDAxMTEwMDAwIGZyb20gUmVnaW9uIDAxIHRvIFJlZ2lv +biAwNCBhbmQgaXMgbm93IDA0MTUwNTAwIChTdC4gRnJhbmNvaXMgUml2ZXIpLiBDcmFpZyBKb2hu +c3RvbiAoVVNHUykgcG9pbnRlZCBvdXQgdGhhdCB0aGlzIHVuaXQgY29udGFpbnMgdGhlIFN0LiBG +cmFuY29pcyBSaXZlciB3aGljaCBmbG93cyB1cCBpbnRvIENhbmFkYSBhbmQgdGhlbiBkdW1wcyBp +bnRvIHRoZSBTdCBMYXdyZW5jZSBSaXZlci4gUmVnaW9uIDAxIGlzIE1haW5lIENvYXN0YWwgZHJh +aW5hZ2UncyB3aGlsZSByZWdpb24gMDQgaXMgU3QuIExhd3JlbmNlIGRyYWluYWdlJ3MsIHNvIHRo +aXMgdW5pdCByZWFsbHkgYmVsb25ncyBpbiByZWdpb24gMDQuIA0KCQ0KCQkyMDEwLSBFZGl0cyB3 +ZXJlIG1hZGUgdG8gTGFrZSBDaGFtcGxhaW4gQmFzaW4gbW92aW5nIGl0IGZyb20gUmVnaW9uIDAy +IHRvIFJlZ2lvbiAwNC4gVXBkYXRlIHRvIGRlbGluZWF0aW9uIGRhdGEgaW4gTGFrZSBDaGFtcGxh +aW4gYXJlYSBvbiB0aGUgVVMgc2lkZSBhbmQgQ2FuYWRpYW4gc2lkZS4gQWxsIGxpbmVzIHdpdGhp +biBDYW5hZGEgYXJlIGRyYWZ0IGRlbGluZWF0aW9ucyBvbmx5LiBUaGVzZSBib3VuZGFyaWVzIHdl +cmUgYmFzZWQgb24gQ2FuYWRhJ3MgMTo1MCwwMDAgTmF0aW9uYWwgSHlkcm9ncmFwaHkgTmV0d29y +ayBXb3JrIFVuaXRzIG9yIHdlcmUgZGVsaW5lYXRlZCB1c2luZyBlaXRoZXIgMTo1MCwwMDAgc2Nh +bGUgdG9wb3Mgb3IgQ0RFRCBlbGV2YXRpb24gZGF0YS4gVGhlc2UgYm91bmRhcmllcyBoYXZlIG5v +dCBiZWVuIGZ1bGx5IHJldmlld2VkIG9yIGFwcHJvdmVkIGJ5IGVpdGhlciB0aGUgQ2FuYWRpYW4g +ZmVkZXJhbCBvciBwcm92aW5jaWFsIGFnZW5jaWVzIGFuZCBhcmUgc3ViamVjdCB0byBjaGFuZ2Uu +ICBCb3JkZXIgcG9seWdvbnMgYXJlIGJhc2VkIG9mZiBvZiB0aGVzZSBpbnRlcm5hbCBib3VuZGFy +aWVzIHdpdGhpbiBDYW5hZGEgYW5kIHNvIGFyZSBhbHNvIHN1YmplY3QgdG8gY2hhbmdlIHdpdGhp +biBDYW5hZGEuIEVkaXRzIG1hZGUgYnkgVVNHUyBTYWx0IExha2UgQ2l0eSwgV2F0ZXIgU2NpZW5j +ZSBDZW50ZXI6IHRvIHRoZSBMYWtlIENoYW1wbGFpbiBhbmQgc3Vycm91bmRpbmcgc3ViYmFzaW5z +IHRvIHJlbW92ZSBhbGwgc2hvcmVsaW5lIHJlcHJlc2VudGF0aW9ucyBmcm9tIHRoZSBXQkQuIFRo +ZSBjb2RlcywgRFMgY29kZXMgYW5kIG5hbWVzIHdoZXJlIHVwZGF0ZWQgd2hlcmUgbmVjZXNzYXJ5 +Lg0KDQoJCTAyMDEwMDAxIG5hbWUgYW5kIGNvZGUgaGF2ZSBiZWVuIHJldGlyZWQgYW5kIHRoaXMg +YXJlYSB3YXMgc3ViZGl2aWRlZCBpbnRvIDA0MTUwNDAxIE1ldHRhd2VlIFJpdmVyIGFuZCAwNDE1 +MDQwOCBMYWtlIENoYW1wbGFpbi4NCgkJMDIwMTAwMDIgbmFtZSBhbmQgY29kZSBoYXZlIGJlZW4g +cmV0aXJlZCBhbmQgdGhpcyBhcmVhIHdhcyBzdWJkaXZpZGVkIGludG8gMDQxNTA0MDIgT3R0ZXIg +Q3JlZWsgYW5kIDA0MTUwNDA4IExha2UgQ2hhbXBsYWluLg0KCQkwMjAxMDAwMyBuYW1lIGFuZCBj +b2RlIGhhdmUgYmVlbiByZXRpcmVkIGFuZCB0aGlzIGFyZWEgd2FzIHN1YmRpdmlkZWQgaW50byAw +NDE1MDQwMyBXaW5vb3NraSBSaXZlciBhbmQgMDQxNTA0MDggTGFrZSBDaGFtcGxhaW4uDQoJCTAy +MDEwMDA1IG5hbWUgYW5kIGNvZGUgaGF2ZSBiZWVuIHJldGlyZWQgYW5kIHRoaXMgYXJlYSB3YXMg +c3ViZGl2aWRlZCBpbnRvIDA0MTUwNDA1IExhbW9pbGxlIFJpdmVyIGFuZCAwNDE1MDQwOCBMYWtl +IENoYW1wbGFpbi4NCgkJMDIwMTAwMDcgbmFtZSBhbmQgY29kZSBoYXZlIGJlZW4gcmV0aXJlZCBh +bmQgdGhpcyBhcmVhIHdhcyBzdWJkaXZpZGVkIGludG8gMDQxNTA0MDcgTWlzc2lxdW9pIFJpdmVy +IGFuZCAwNDE1MDQwOCBMYWtlIENoYW1wbGFpbi4gDQoJDQoJCVRoZSBuZXcgTGFrZSBDaGFtcGxh +aW4gdW5pdCAwNDE1MDQwOCBpcyBtYWRlIHVwIG9mIHBhcnRzIG9mIG9yaWdpbmFsIEhVQzI1MEsg +dW5pdHMgMDIwMTAwMDEsIDAyMDEwMDAyLCAwMjAxMDAwMywgMDIwMTAwMDQsIDAyMDEwMDA1LCAw +MjAxMDAwNiBhbmQgMDIwMTAwMDcuDQoJDQoJCUFkZGl0aW9uYWwgdXBkYXRlcyBhdCB0aGUgOC1k +aWdpdCBvY2N1cnJlZCBhcyBhIHJlc3VsdCBvZiB0aGUgVVMvQ2FuYWRhIGhhcm1vbml6YXRpb24g +ZWZmb3J0LiBTZWUgcHJvY2VzcyBzZWN0aW9uIG9uIENhbmFkaWFuIGhhcm1vbml6YXRpb24gZm9y +IHRoZXNlIGRldGFpbHMNCg0KCVdpc2NvbnNpbjoNCgkJTGVnYWN5IDA3MDkwMDAxVXBwZXIgUm9j +ayBrZWVwcyB0aGUgc2FtZSBjb2RlIGFuZCBuYW1lIGJ1dCB0aGUgb3JpZ2luYWwgaHlkcm9sb2dp +YyB1bml0IGRlbGluZWF0aW9uIGNoYW5nZWQgc2lnbmlmaWNhbnRseS4NCgkJTGVnYWN5IDA3MDkw +MDAyIENyYXdmaXNoIGtlZXBzIHRoZSBzYW1lIGNvZGUgYW5kIGlzIHJlbmFtZWQgdG8gTWlkZGxl +IFJvY2suIFRoZSBvcmlnaW5hbCBoeWRyb2xvZ2ljIHVuaXQgZGVsaW5lYXRpb24gY2hhbmdlZCBz +aWduaWZpY2FudGx5LjwvcHJvY2Rlc2M+DQogICAgICAgIDxwcm9jZGF0ZT4yMDE2PC9wcm9jZGF0 +ZT4NCiAgICAgIDwvcHJvY3N0ZXA+DQogICAgICA8cHJvY3N0ZXA+DQogICAgICAgIDxwcm9jZGVz +Yz5CZWxvdyBpcyBhIGxpc3Qgb2YgdXBkYXRlcyAoZnJvbSAyMDExIHRvIDIwMTYpIHJlc3VsdGlu +ZyBmcm9tIGhhcm1vbml6YXRpb24gd29yayB3aXRoIENhbmFkYS4NCglBbGFza2E6DQoJCUxlZ2Fj +eSAxOTAxMDEwMSBTb3V0aGVhc3QgTWFpbmxhbmQgbmFtZSBhbmQgY29kZSB3ZXJlIHJldGlyZWQg +YW5kIHRoZSBhcmVhIHN1YmRpdmlkZWQgaW50byBmb3VyIHVuaXRzLiBOZXcgY29kZXMgYW5kIG5h +bWVzIGFyZSBhcyBmb2xsb3dzIGFuZCBhY2NlcHRlZCBieSB0aGUgTmF0aW9uYWwgVGVjaG5pY2Fs +IFRlYW0gYW5kIGFwcHJvdmVkIHdpdGggQ2FuYWRpYW4gYW5kIEFsYXNrYSBwYXJ0bmVycyAoVVNG +Uyk6DQoJCQkxOTAxMDEwNCBCcmFkZmllbGQgQ2FuYWwNCgkJCTE5MDEwMTA1IEJ1cnJvdWdocyBC +YXkNCgkJCTE5MDEwMTA2IEhlYWR3YXRlcnMgUG9ydGxhbmQgQ2FuYWwNCgkJCTE5MDEwMTA3IE91 +dGxldCBQb3J0bGFuZCBDYW5hbA0KCQlMZWdhY3kgMTkwMTAyMDEgTWFpbmxhbmQgaGFkIGEgcG9y +dGlvbiBicm9rZW4gb3V0LiAxOTAxMDIwMSB3aWxsIGJlIHByZXNlcnZlZCBhbmQgdGhlIHNtYWxs +IHBpZWNlIGJyb2VrbiBvdXQgaW4gb3JkZXIgdG8gaGFybW9uaXplIHdpdGggQ2FuYWRhLiBUaGUg +c21hbGxlciBwaWVjZSB3aWxsIGhhdmUgdGhlIG5ldyBjb2RlIDE5MDEwMjA1IGFuZCB0aGUgbmFt +ZSB3aWxsIGJlIExvd2VyIElza3V0Lg0KCQlSZXZpc2VkIGFnYWluIDUvMzEvMTE6IDE5MDEwMjAx +IE1haW5sYW5kIHdhcyBicm9rZW4gaW50byB0aHJlZSBuZXcgdW5pdHMNCgkJCTE5MDEwMjA2IEhv +bGtoYW0gQmF5DQoJCQkxOTAxMDIwNyBTdGlraW5lIFJpdmVyDQoJCQkxOTAxMDIwOCBUaG9tYXMg +QmF5DQoJCUxlZ2FjeSAxOTAxMDMwMSBMeW5uIENhbmFsIG5vdyBoYXMgdGhlIFRha3UgUml2ZXIg +YnJva2VuIG91dCB0byBhY2NvbW1vZGF0ZSBDYW5hZGEuIFRha3UgUml2ZXIgd2lsbCBiZSBjb2Rl +IDE5MDEwMzA0LiBUaGUgTmF0aW9uYWwgVGVjaG5pY2FsIENvb3JkaW5hdG9ycyAoTlRDKSBhY2Nl +cHRzIHRoaXMuIFJldmlzZWQgYWdhaW4gNS8zMS8xMTooQUsgZ3JvdXAgY29uc3VsdGVkIGFsb25n +IHdpdGggUGV0ZSBTdGVldmVzLCBLaW0gSm9uZXMsIFN0ZXBoZW4gRGF3LCBLYXJlbiBIYW5zb24p +OiANCgkJMTkwNzAxMDEgQXRsaW4gTGFrZSB3YXMgYnJva2VuIG91dCBvZiB0aGUgbGVnYWN5IEx5 +bm4gQ2FuYWwgMTkwMTAzMDEgYW5kIGlzIHBhcnQgb2YgdGhlIG5ld2x5IGFjY2VwdGVkIFN1YnJl +Z2lvbiAxOTA3DQoJCUxlZ2FjeSAxOTAxMDMwMiBHbGFjaWVyIEJheSB3YXMgc3ViZGl2aWRlZCBh +bG9uZyB0aGUgcmlkZ2Ugc2VwYXJhdGluZyBvdXQgdGhlIG9jZWFuIGZsb3cuIFRoZSB1bml0IGJy +b2tlbiBvdXQgaXM6DQoJCTE5MDEwNDA2IFBhbG1hIEJheSAodGhpcyB1bml0IGFsc28gaW5jbHVk +ZXMgYSBwb3J0aW9uIG9mIHRoZSBvcmlnaW5hbCAxOTAxMDQwMSkNCgkJTm90ZTogTGVnYWN5IDE5 +MDEwMzAyIEdsYWNpZXIgQmF5IHdpbGwgYmUgcmV0YWluZWQgYWx0aG91Z2ggdGhlIGFyZWEgaXMg +bm93IHNtYWxsZXIuIE90aGVyIG9wdGlvbnMgZGlkbuKAmXQgbWFrZSBhcyBtdWNoIHNlbnNlLg0K +CQkNCgkJTGVnYWN5IDE5MDEwMzAzIENoaWxrYXQtU2thZ3dheSBSaXZlcnMgd2FzIHN1YmRpdmlk +ZWQgaW50bzoNCgkJCTE5MDcwMTAyIEJlbm5ldHQgTGFrZQ0KCQkJMTkwNzAxMDMgVGFnaXNoIExh +a2UNCgkJCTE5MDcwMTA0IFRha2hpbmkgUml2ZXINCgkJTm90ZTogMTkwMTAzMDMgQ2hpbGthdC1T +YWtnd2F5IFJpdmVycyBpcyByZXRhaW5lZA0KCQkNCgkJTGVnYWN5IDE5MDEwNDAxIFlha3V0YXQg +QmF5IG5hbWUgYW5kIGNvZGUgcmV0aXJlZCBhbmQgdGhlIGFyZWEgc3ViZGl2aWRlZCBpbnRvIDQg +bmV3IHVuaXRzLiBOZXcgY29kZXMgYW5kIG5hbWVzIGFyZSBhcyBmb2xsb3dzDQoJCQkxOTAxMDQw +MyBUYXRzaGVuc2hpbmkgUml2ZXINCgkJCTE5MDEwNDA0IEFsc2VrIFJpdmVyDQoJCQkxOTAxMDQw +NSBZYWt1dGF0IEJheS1HdWxmIG9mIEFsYXNrYQ0KCQkJMTkwMTA0MDYgUGFsbWEgQmF5IChUaGlz +IG5ldyB1bml0IGFsc28gaW5jbHVkZXMgYSBwb3J0aW9uIG9mIHRoZSBvcmlnaW5hbCAxOTAxMDMw +MikNCgkJCQkNCglJZGFobyBhbmQgV2FzaGluZ3RvbiAtIA0KCQkyMDEzIC0gVGhlIENvbHVtYmlh +IFJpdmVyIEJhc2luIGFuZCBQdWdldCBTb3VuZCBDb2FzdGFsIGFyZWEgd2FzIHVwZGF0ZWQgdG8g +aW5jbHVkZSB0aGUgaGFybW9uaXplZCA4LSwgMTAsIGFuZCAxMi1kaWdpdCBoeWRyb2xvZ2ljIHVu +aXRzIHdpdGhpbiBDYW5hZGEuIFRoaXMgaGFybW9uaXplZCBkYXRhIHdhcyBjcmVhdGVkIHdpdGgg +Y29udHJpYnV0aW9ucyBmcm9tIFVTIGFuZCBDYW5hZGlhbiBGZWRlcmFsLCBTdGF0ZSwgUHJvdmlu +Y2lhbCBhbmQgbG9jYWwgcGFydG5lcnMuIFRoZSBCcml0aXNoIENvbHVtYmlhIDIwSyBGcmVzaCBX +YXRlciBBdGxhcyB3YXRlcnNoZWQgZGF0YSBhbmQgREVNIGRhdGEgd2VyZSB1c2VkIHRvIGNyZWF0 +ZSB0aGUgdW5pdHMgd2l0aGluIENhbmFkYS4gQm9yZGVyIHVuaXRzIHdlcmUgdXBkYXRlZCB0aHJv +dWdoIGEgcmV2aWV3L2FncmVlbWVudCBwcm9jZXNzIHdpdGggbG9jYWwgYW5kIHN0YXRlL3Byb3Zp +bmNpYWwgcGFydG5lcnMgdXNpbmcgdGhlIGJlc3QgYXZhaWxhYmxlIGRhdGEgKERFTSwgRFJHLCBJ +bWFnZXJ5LCBGaWVsZCBWZXJpZmljYXRpb24pLiANCgkJRHVyaW5nIHRoZSBoYXJtb25pemF0aW9u +IGVmZm9ydCB0aGVyZSB3ZXJlIHNvbWUgOC1kaWdpdCB1cGRhdGVzIHRoYXQgd2VyZSBhZ3JlZWQg +dG8uDQoJCQlMZWdhY3kgMTcwMTAxMDEgVXBwZXIgS29vdGVuYWkgbmFtZSB3aWxsIGNoYW5nZSB0 +byBNaWRkbGUgS29vdGVuYWkgdG8gY29vcmRpbmF0ZSB3aXRoIENhbmFkYSBzaW5jZSB0aGVyZSBp +cyBhbiBVcHBlciBLb290ZW5heSBzb2xlbHkgaW4gQ2FuYWRhLiANCgkJCUxlZ2FjeSAxNzAxMDEw +MSBVcHBlciBLb290ZW5haSBib3VuZGFyeSBjaGFuZ2VkIHNsaWdodGx5LiBUaGUgV0JEIFRlY2hu +aWNhbCBUZWFtIHJlY29tbWVuZHMgcmV0YWluaW5nIHRoZSBsZWdhY3kgbmFtZSBhbmQgY29kZS4N +CgkJQSBuZXcgc3ViYmFzaW4gd2FzIGNyZWF0ZWQgYXMgYSByZXN1bHQgb2YgdGhlIGludGVybmF0 +aW9uYWwgYm9yZGVyIGhhcm1vbml6YXRpb24gd2hpY2ggc2xpZ2h0bHkgZ29lcyBpbnRvIHRoZSBV +LlMuICh0aGUgcG9ydGlvbiBvZiAxNzAxMDEwMSByZWZlcmVuY2VkIGFib3ZlKS4gVGhlIFdCRCBU +ZWNobmljYWwgVGVhbSByZWNvbW1lbmRzIGNvZGluZyB0aGlzIHVuaXQgd2l0aCB0aGUgbmV4dCBk +b3duIHNlcXVlbnRpYWwgY29kZSB3aGljaCB3b3VsZCBiZSAxNzAxMDEwNiBhbmQgdXNpbmcgdGhl +IG5hbWUgdGhhdCBDYW5hZGEgcmVmZXJzIHRvIHRoaXMgaHlkcm9sb2dpYyB1bml0IGFzIOKAnEVs +a+KAnS4NCgkJMTcxMTAwMDEgbGVnYWN5IG5hbWUg4oCcRnJhc2Vy4oCdIGlzIGJlaW5nIGNoYW5n +ZWQgdG8g4oCcU3VtYXMgUml2ZXLigJ0gdG8gbWF0Y2ggd2l0aCBDYW5hZGEsIGFuZCBiZWNhdXNl +IHRoZSBGcmFzZXIgUml2ZXIgZG9lc27igJl0IGZsb3cgdGhyb3VnaCB0aGlzIHVuaXQuDQoNCglN +b250YW5hOg0KCQkxMDAxIGZsb3dzIGludG8gQ2FuYWRhIGFuZCB0aGUgU2Fza2F0Y2hld2FuIFJp +dmVyIGFuZCBub3QgaW50byB0aGUgTWlzc291cmkgUml2ZXIgYXMgb3JpZ2luYWxseSB0aG91Z2h0 +LiBBcyBzdWNoIHRoaXMgNC1kaWdpdCBoeWRyb2xvZ2ljIHVuaXRzIHdhcyBtb3ZlZCBmcm9tIHJl +Z2lvbiAxMCB0byAwOS4NCgkJMDkwNCAtIFNhc2thdGNoZXdhbiBSaXZlcg0KCQkwOTA0MDAtIFVw +cGVyIFNvdXRoIFNhc2thdGNoZXdhbiBSaXZlciAoVGhpcyBtYXRjaGVzIHRoZSBDYW5hZGlhbiBG +REEgYXQgdGhlIFdTQ1NEQSBsZXZlbCAoc3ViIGRyYWluYWdlIGFyZWEpKS4NCgkJMTAwMTAwMDEg +bmFtZSBhbmQgY29kZSBoYXZlIGJlZW4gcmV0aXJlZCwgYW5kIHRoaXMgYXJlYSBpcyBub3cgMDkw +NDAwMDIgQmVsbHkNCgkJMTAwMTAwMDIgbmFtZSBhbmQgY29kZSBoYXZlIGJlZW4gcmV0aXJlZCwg +YW5kIHRoaXMgYXJlYSBpcyBub3cgMDkwNDAwMDEgU3QuIE1hcnlzDQoNCglNaW5uZXNvdGE6DQoJ +CTIwMTQgLSBSYWlueSBSaXZlciBCYXNpbiB3YXMgdXBkYXRlZCB0byBpbmNsdWRlIHRoZSBoYXJt +b25pemVkIDgtLCAxMC0gYW5kIDEyLWRpZ2l0IGh5ZHJvbG9naWMgdW5pdHMgd2l0aCBDYW5hZGEu +IFRoaXMgaGFybW9uaXplZCBkYXRhIHdhcyBjcmVhdGVkIG92ZXIgYSA2IG1vbnRoIHRpbWUgcGVy +aW9kIHdpdGggY29vcGVyYXRpb24gZnJvbSBGZWRlcmFsLCBTdGF0ZSwgUHJvdmluY2lhbCBhbmQg +TG9jYWwgUGFydG5lcnMuIA0KCQlTb21lIG9mIHRoZSBib3VuZGFyaWVzIHdpdGhpbiBNTiB3ZXJl +IHVwZGF0ZWQgdXNpbmcgdGhlIE1OIExpREFSIGRhdGEuIFRoZSBNTiBMaURBUiB3YXMgYWxzbyB1 +c2VkIGluIHRoZSBjcmVhdGlvbiBvZiBib3VuZGFyaWVzIHdpdGhpbiBDYW5hZGEgd2hlbiB0aGUg +TGlEQVIgZGF0YSBvdmVybGFwcGVkIGludG8gQ2FuYWRhLiBUaGUgb3RoZXIgYm91bmRhcmllcyB3 +aXRoaW4gQ2FuYWRhIHdlcmUgZ2VuZXJhdGVkIHVzaW5nIHRoZSBwcm92aW5jZSBvZiBPbnRhcmlv +4oCZcyAyMEsgREVNIGFuZCBIeWRyb2dyYXBoeSBkYXRhLg0KCQlUaGVyZSB3ZXJlIHNvbWUgOC1k +aWdpdCB1cGRhdGVzIGFzIGEgcmVzdWx0IG9mIHRoZSBoYXJtb25pemF0aW9uIGVmZm9ydC4NCgkJ +MDkwMzAwMDQgVXBwZXIgUmFpbnkgaGFzIGJlZW4gcmV0aXJlZA0KCQkwOTAzMDAwNCBpcyBub3cg +YSBwYXJ0IG9mIDA5MDMwMDA4IHRoZSBMb3dlciBSYWlueQ0KCQkyIG5ldyA4LWRpZ2l0IHVuaXRz +IHdlcmUgYnJva2VuIG91dCBpbiBDYW5hZGENCgkJCTA5MDMwMDEwIOKAkyBCaWcgVHVydGxlIFJp +dmVyLVJhaW55IExha2UNCgkJCTA5MDMwMDExIOKAkyBTaG9hbCBMYWtlDQoJCQkNCglOb3J0aCBE +YWtvdGE6DQoJCUxlZ2FjeSAwOTAyMDMxMyBQZW1iaW5hIHdhcyBzdWJkaXZpZGVkIGludG8gdHdv +IG5ldyB1bml0cy4gDQoJCVRoZSBsZWdhY3kgbmFtZSBhbmQgY29kZSB3ZXJlIHJldGlyZWQuIA0K +CQlUaGUgbmV3IGNvZGVzIGFuZCBuYW1lcyBhcmU6DQoJCQkwOTAyMDMxNSBVcHBlciBQZW1iaW5h +IFJpdmVyDQoJCQkwOTAyMDMxNiBMb3dlciBQZW1iaW5hIFJpdmVyDQoNCgkJMjAxNC0gU291cmlz +IFJpdmVyIEJhc2luIHdhcyB1cGRhdGVkIHRvIGluY2x1ZGUgdGhlIGhhcm1vbml6ZWQgOC0sIDEw +LSBhbmQgMTItZGlnaXQgaHlkcm9sb2dpYyB1bml0cyB3aXRoIENhbmFkYS4gVGhpcyBoYXJtb25p +emVkIGRhdGEgd2FzIGNyZWF0ZWQgb3ZlciBhIDYgbW9udGggdGltZSBwZXJpb2Qgd2l0aCBjb29w +ZXJhdGlvbiBmcm9tIEZlZGVyYWwsIFN0YXRlLCBQcm92aW5jaWFsIGFuZCBMb2NhbCBQYXJ0bmVy +cy4NCgkJVGhlcmUgd2VyZSBzb21lIDgtZGlnaXQgdXBkYXRlcyBhcyBhIHJlc3VsdCBvZiB0aGUg +aGFybW9uaXphdGlvbiBlZmZvcnQuDQoJCUxlZ2FjeSAwOTAxMDAwMSBVcHBlciBTb3VyaXMgaGFz +IG5vdyBiZWVuIHN1YmRpdmlkZWQuIFRoYXQgY29kZSBhbmQgbmFtZSBoYXZlIGJlZW4gcmV0aXJl +ZCBhbmQgdGhlIG5ldyB1bml0cyBhcmU6DQoJCQkwOTAxMDAwNiBMb25nIENyZWVrDQoJCQkwOTAx +MDAwNyBIZWFkd2F0ZXJzIFNvdXJpcyBSaXZlcg0KCQkJMDkwMTAwMDggTW9vc2UgTW91bnRhaW4g +Q3JlZWstU291cmlzIFJpdmVyDQoNCglOb3J0aCBEYWtvdGEgYW5kIE1pbm5lc290dGE6IFJlZCBS +aXZlciBCYXNpbg0KCQlMZWdhY3kgMDkwMjAzMTEgTG93ZXIgUmVkIG5hbWUgaXMgYmVpbmcgY2hh +bmdlZCB0byBNaWRkbGUgUmVkIGluIG9yZGVyIHRvIGhhcm1vbml6ZSB3aXRoIENhbmFkYS4gTG93 +ZXIgUmVkIGlzIHRoZSBCYXNpbiBuYW1lIGZvciB0aGlzIGVudGlyZSBhcmVhIGJ1dCB0aGUgaW1w +YWN0IHRvIGNoYW5nZSBhdCB0aGF0IGxldmVsIGlzbuKAmXQga25vd24gc28gd29u4oCZdCBjaGFu +Z2UuDQoJCQ0KCQkyMDE2IC0gUmVkIFJpdmVyIEJhc2luIHdhcyB1cGRhdGVkIHRvIGluY2x1ZGUg +dGhlIGhhcm1vbml6ZWQgOC0sIDEwLSwgYW5kIDEyLWRpZ2l0IGh5ZHJvbG9naWMgdW5pdHMgd2l0 +aGluIENhbmFkYS4gU29tZSBvZiB0aGUgYm91bmRhcmllcyB3aXRoaW4gTU4gYW5kIE5EIHdlcmUg +dXBkYXRlZCB1c2luZyBMaWRhciBkYXRhLiBMaWRhciBkYXRhIHdhcyBhbHNvIHVzZWQgaW4gdGhl +IGRldmVsb3BtZW50IG9mIGh5ZHJvbG9naWNhbCB1bml0cyB3aXRoaW4gQ2FuYWRhLiBXaGVyZSBM +aWRhciBkYXRhIGRpZCBub3QgZXhpc3QgdGhlIHByb3ZpbmNlIG9mIE1hbml0b2JhIHByb3ZpZGVk +IGVpdGhlciAxOjIwLDAwMCBzY2FsZSBvciAxOjUwLDAwMCBzY2FsZSBkaWdpdGFsIGVsZXZhdGlv +biBkYXRhIGZvciBib3VuZGFyeSBkZWxpbmVhdGlvbnMuDQoNCglNYWluZQ0KCQlBbGwgSFVDOCBi +b3VuZGFyaWVzIHdlcmUgdXBkYXRlZCB3aXRoIHRoZSBIYXJtb25pemVkIFVTL0NBTiBib3JkZXIg +aW50byBDYW5hZGEuDQoJCUNvZGluZyB3YXMgdXBkYXRlZCBhcyBuZWVkZWQuDQoJCTAxMDEwMDAx +IHdhcyBzdWJkaXZpZGVkIGludG8gNiBuZXcgdW5pdHMuDQoJCTAxMDEwMDAxIGNvZGUgcmV0aXJl +ZA0KCQkwMTAxMDAwMSBIVUM4IG5hbWUgcmV0aXJlZCAoVXBwZXIgU3QuIEpvaG4pDQoJCU5ldyBj +b2RlcyBhbmQgSFVDOCBuYW1lcw0KCQkJMDEwMTAwMDYg4oCTIEhlYWR3YXRlcnMgU2FpbnQgSm9o +biBSaXZlcg0KCQkJMDEwMTAwMDcg4oCTIEJpZyBCbGFjayBSaXZlci1TYWludCBKb2huIFJpdmVy +DQoJCQkwMTAxMDAwOCDigJMgU3QuIEZyYW5jaXMgUml2ZXItU2FpbnQgSm9obiBSaXZlcg0KCQkJ +MDEwMTAwMDkg4oCTIExpdHRsZSBSaXZlci1TYWludCBKb2huIFJpdmVyDQoJCQkwMTAxMDAxMCDi +gJMgQmVjYWd1aW1lYyBTdHJlYW0tU2FpbnQgSm9obiBSaXZlciAoVGhpcyB1bml0IG5vdyBjb250 +YWlucyBhIHBvcnRpb24gb2YgdGhlIG9yaWdpbmFsIDAxMDEwMDA1KQ0KCQkJMDEwMTAwMTEg4oCT +IEtlc3dpY2sgUml2ZXItU2FpbnQgSm9obiBSaXZlcg0KDQoJCTAxMDEwMDA0IC0gQm91bmRhcnkg +d2l0aGluIENhbmFkYSB3YXMgdXBkYXRlZCB3aXRoIGhhcm1vbml6ZWQgYm91bmRhcnkuDQoJCTAx +MDEwMDA1IC0gQm91bmRhcnkgd2FzIHVwZGF0ZWQgd2l0aCBVUy9DQU4gaGFybW9uaXplZCBib3Vu +ZGFyeS4gQSBzbWFsbCBwb3J0aW9uIG9mIDAxMDEwMDA1IHdhcyBtb3ZlZCBpbnRvIHRoZSBuZXcg +MDEwMTAwMTAgc28gdGhhdCAwMTAxMDAwNSBpcyBhIHN0YW5kYXJkIEhVQyA4IHVuaXQgZm9yIHRo +ZSBNZWR1eG5la2VhZyBSaXZlci4NCgkJMDEwMjAwMDEgLSBPcmlnaW5hbCBXQkQgYm91bmRhcnkg +YmV0d2VlbiB0aGUgVVMgYW5kIENhbmFkYSB1c2VkIHRoZSBpbnRlcm5hdGlvbmFsIGJvdW5kYXJ5 +LiBIb3dldmVyIHdoZW4gdGhpcyBib3VuZGFyeSB3YXMgY29tcGFyZWQgdG8gdGhlIDE6MjQsMDAw +IHNjYWxlIERSR3MgaW4gdGhlIFVTIGFuZCAxOjIwLDAwMCBoeXBzb2dyYXBoeSBpbiBDYW5hZGEg +dGhlIGludGVybmF0aW9uYWwgYm91bmRhcnkgYW5kIHJpZGdlbGluZXMgd2VyZSBub3QgY29pbmNp +ZGVudC4gVGhlIEJvdW5kYXJ5IHdhcyB1cGRhdGVkIHRvIHRoZSByaWRnZWxpbmUuICAgQ29kaW5n +IG5vdCB1cGRhdGVkLg0KCQkwMTAzMDAwMSAtIE9yaWdpbmFsIFdCRCBib3VuZGFyeSBiZXR3ZWVu +IHRoZSBVUyBhbmQgQ2FuYWRhIHVzZWQgdGhlIGludGVybmF0aW9uYWwgYm91bmRhcnkuIEhvd2V2 +ZXIgd2hlbiB0aGlzIGJvdW5kYXJ5IHdhcyBjb21wYXJlZCB0byB0aGUgMToyNCwwMDAgc2NhbGUg +RFJHcyBpbiB0aGUgVVMgYW5kIDE6MjAsMDAwIGh5cHNvZ3JhcGh5IGluIENhbmFkYSB0aGUgaW50 +ZXJuYXRpb25hbCBib3VuZGFyeSBhbmQgcmlkZ2VsaW5lcyB3ZXJlIG5vdCBjb2luY2lkZW50LiBU +aGUgQm91bmRhcnkgd2FzIHVwZGF0ZWQgdG8gdGhlIHJpZGdlbGluZS4gIENvZGluZyBub3QgdXBk +YXRlZC4NCgkJMDEwMzAwMDIgLSBPcmlnaW5hbCBXQkQgYm91bmRhcnkgYmV0d2VlbiB0aGUgVVMg +YW5kIENhbmFkYSB1c2VkIHRoZSBpbnRlcm5hdGlvbmFsIGJvdW5kYXJ5LiBIb3dldmVyIHdoZW4g +dGhpcyBib3VuZGFyeSB3YXMgY29tcGFyZWQgdG8gdGhlIDE6MjQsMDAwIHNjYWxlIERSR3MgaW4g +dGhlIFVTIGFuZCAxOjIwLDAwMCBoeXBzb2dyYXBoeSBpbiBDYW5hZGEgdGhlIGludGVybmF0aW9u +YWwgYm91bmRhcnkgYW5kIHJpZGdlbGluZXMgd2VyZSBub3QgY29pbmNpZGVudC4gVGhlIEJvdW5k +YXJ5IHdhcyB1cGRhdGVkIHRvIHRoZSByaWRnZWxpbmUuICBDb2Rpbmcgbm90IHVwZGF0ZWQuDQoJ +CTAxMDQwMDAxIC0gT3JpZ2luYWwgV0JEIGJvdW5kYXJ5IGJldHdlZW4gdGhlIFVTIGFuZCBDYW5h +ZGEgdXNlZCB0aGUgaW50ZXJuYXRpb25hbCBib3VuZGFyeS4gSG93ZXZlciB3aGVuIHRoaXMgYm91 +bmRhcnkgd2FzIGNvbXBhcmVkIHRvIHRoZSAxOjI0LDAwMCBzY2FsZSBEUkdzIGluIHRoZSBVUyBh +bmQgMToyMCwwMDAgaHlwc29ncmFwaHkgaW4gQ2FuYWRhIHRoZSBpbnRlcm5hdGlvbmFsIGJvdW5k +YXJ5IGFuZCByaWRnZWxpbmVzIHdlcmUgbm90IGNvaW5jaWRlbnQuIFRoZSBCb3VuZGFyeSB3YXMg +dXBkYXRlZCB0byB0aGUgcmlkZ2VsaW5lLiAgQ29kaW5nIG5vdCB1cGRhdGVkLg0KCQkwMTA1MDAw +MSAtIEJvdW5kYXJ5IHdhcyB1cGRhdGVkIHdpdGggVVMvQ0FOIGhhcm1vbml6ZWQgYm91bmRhcnku +ICBUaGlzIGJvdW5kYXJ5IHdhcyBkZXZlbG9wZWQgZHVyaW5nIHRoZSBpbml0aWFsIFN0LiBDcm9p +eCBwaWxvdCBhbmQgaW5jbHVkZXMgdXBkYXRlcyB3aXRoaW4gdGhlIFVTIGFzIHdlbGwgYXMgQ2Fu +YWRhLiBDb2RpbmcgbGVmdCBhcyBpcw0KCQkwMTA1MDAwMiAtIFRoZSBoYXJtb25pemVkIGJvdW5k +YXJ5IGZvciAwMTA1MDAwNCByZXF1aXJlZCB1cGRhdGVzIHRvIDAxMDUwMDAyLiANCgkJQSBwb3J0 +aW9uIG9mIDAxMDUwMDAyIHdhcyBtb3ZlZCB0byAwMTA1MDAwNCB0byBhY2NvbW1vZGF0ZSB0aGUg +bmV3IGhhcm1vbml6ZWQgYm91bmRhcnkuDQoJCVRoaXMgcmVxdWlyZWQgcmUtY29kaW5nIG9mIHRo +ZSBlbnRpcmUgMDEwNTAwMDIuDQoJCTAxMDUwMDA0IC0gQm91bmRhcnkgd2FzIHVwZGF0ZWQgd2l0 +aCBVUy9DQU4gaGFybW9uaXplZCBib3VuZGFyeS4gQSBwb3J0aW9uIG9mIDAxMDUwMDAyIHdhcyBt +b3ZlZCBpbnRvIHRoaXMgdW5pdC4gIENvZGVzIHdlcmUgdXBkYXRlZCB0byByZWZsZWN0IHRoaXMg +Ym91bmRhcnkgY2hhbmdlLg0KDQoJCTA0MTUwNjAwIOKAkyBDaGF1ZGllcmUgUml2ZXINCgkJVGhp +cyBpcyBhIG5ldyB1bml0IHRoYXQgd2FzIGNyZWF0ZWQgd2hlbiB0aGUgV0JEIGJvdW5kYXJ5IHdh +cyBtb3ZlZCBmcm9tIHRoZSBpbnRlcm5hdGlvbmFsIGJvdW5kYXJ5IG9uIHRvIHRoZSByaWRnZWxp +bmVzDQoJCU9yaWdpbmFsIFdCRCBib3VuZGFyeSBiZXR3ZWVuIHRoZSBVUyBhbmQgQ2FuYWRhIHVz +ZWQgdGhlIGludGVybmF0aW9uYWwgYm91bmRhcnkuIEhvd2V2ZXIgd2hlbiB0aGlzIGJvdW5kYXJ5 +IHdhcyBjb21wYXJlZCB0byB0aGUgMToyNCwwMDAgc2NhbGUgRFJHcyBpbiB0aGUgVVMgYW5kIDE6 +MjAsMDAwIGh5cHNvZ3JhcGh5IGluIENhbmFkYSB0aGUgaW50ZXJuYXRpb25hbCBib3VuZGFyeSBh +bmQgcmlkZ2VsaW5lcyB3ZXJlIG5vdCBjb2luY2lkZW50LiBUaGUgQm91bmRhcnkgd2FzIHVwZGF0 +ZWQgdG8gdGhlIHJpZGdlbGluZS4NCgkJMDQxNTA1MDAgLSBCb3VuZGFyeSB3YXMgdXBkYXRlZCB3 +aXRoIFVTL0NBTiBoYXJtb25pemVkIGJvdW5kYXJ5LiBDb2RpbmcgbGVmdCBhcyBpcw0KCQ0KCQ0K +CU5ldyBIYW1wc2hpcmUNCgkJMDEwNDAwMDEgLSBPcmlnaW5hbCBXQkQgYm91bmRhcnkgYmV0d2Vl +biB0aGUgVVMgYW5kIENhbmFkYSB1c2VkIHRoZSBpbnRlcm5hdGlvbmFsIGJvdW5kYXJ5LiBIb3dl +dmVyIHdoZW4gdGhpcyBib3VuZGFyeSB3YXMgY29tcGFyZWQgdG8gdGhlIDE6MjQsMDAwIHNjYWxl +IERSR3MgaW4gdGhlIFVTIGFuZCAxOjIwLDAwMCBoeXBzb2dyYXBoeSBpbiBDYW5hZGEgdGhlIGlu +dGVybmF0aW9uYWwgYm91bmRhcnkgYW5kIHJpZGdlbGluZXMgd2VyZSBub3QgY29pbmNpZGVudC4g +VGhlIEJvdW5kYXJ5IHdhcyB1cGRhdGVkIHRvIHRoZSByaWRnZWxpbmUuICBDb2Rpbmcgbm90IHVw +ZGF0ZWQuDQoJCTA0MTUwNTAwIC0gQm91bmRhcnkgd2FzIHVwZGF0ZWQgd2l0aCBVUy9DQU4gaGFy +bW9uaXplZCBib3VuZGFyeS4gQ29kaW5nIGxlZnQgYXMgaXMNCgkNCglOZXcgWW9yaw0KCQkwNDE1 +MDMwMSAtIFN1YmRpdmlkZWQgaW50byAyIG5ldyB1bml0cw0KCQkwNDE1MDMwMSBjb2RlIHJldGly +ZWQgDQoJCTA0MTUwMzAxIEhVQzggbmFtZSByZXRpcmVkIChVcHBlciBTdC4gTGF3cmVuY2UpDQoJ +CU5ldyBDb2RlcyBhbmQgSFVDOCBuYW1lcw0KCQkJMDQxNTAzMDkg4oCTIEhlYWR3YXRlcnMgU3Qu +IExhd3JlbmNlIFJpdmVyDQoJCQkwNDE1MDMxMCDigJMgUmFpc2luIFJpdmVyLVN0LiBMYXdyZW5j +ZSBSaXZlcg0KDQoJCTA0MTUwMzA2IC0gQm91bmRhcnkgd2FzIHVwZGF0ZWQgd2l0aCBVUy9DQU4g +aGFybW9uaXplZCBib3VuZGFyeS4gQ29kaW5nIGxlZnQgYXMgaXMNCgkJMDQxNTAzMDcgLSBCb3Vu +ZGFyeSB3YXMgdXBkYXRlZCB3aXRoIFVTL0NBTiBoYXJtb25pemVkIGJvdW5kYXJ5LiBDb2Rpbmcg +bGVmdCBhcyBpcw0KCQkwNDE1MDMwOCAtIEJvdW5kYXJ5IHdhcyB1cGRhdGVkIHdpdGggVVMvQ0FO +IGhhcm1vbml6ZWQgYm91bmRhcnkuIENvZGluZyBsZWZ0IGFzIGlzDQoJCTA0MTUwNDA4IC0gQm91 +bmRhcnkgd2FzIHVwZGF0ZWQgd2l0aCBVUy9DQU4gaGFybW9uaXplZCBib3VuZGFyeS4gQ29kaW5n +IGxlZnQgYXMgaXMNCgkJMDQxNTA0MDkgLSBCb3VuZGFyeSB3YXMgdXBkYXRlZCB3aXRoIFVTL0NB +TiBoYXJtb25pemVkIGJvdW5kYXJ5LiBDb2RpbmcgbGVmdCBhcyBpcw0KCQkNCglWZXJtb250DQoJ +CTA0MTUwNDA3IC0gQm91bmRhcnkgd2FzIHVwZGF0ZWQgd2l0aCBVUy9DQU4gaGFybW9uaXplZCBi +b3VuZGFyeS4gQ29kaW5nIGxlZnQgYXMgaXMNCgkJMDQxNTA0MDggLSBCb3VuZGFyeSB3YXMgdXBk +YXRlZCB3aXRoIFVTL0NBTiBoYXJtb25pemVkIGJvdW5kYXJ5LiBDb2RpbmcgbGVmdCBhcyBpcw0K +CQkwNDE1MDQwOSAtIEJvdW5kYXJ5IHdhcyB1cGRhdGVkIHdpdGggVVMvQ0FOIGhhcm1vbml6ZWQg +Ym91bmRhcnkuIENvZGluZyBsZWZ0IGFzIGlzDQoJCTA0MTUwNTAwIC0gQm91bmRhcnkgd2FzIHVw +ZGF0ZWQgd2l0aCBVUy9DQU4gaGFybW9uaXplZCBib3VuZGFyeS4gQ29kaW5nIGxlZnQgYXMgaXMN +Cg0KDQoJR3JlYXQgTGFrZXMNCgkJVGhlIGJvdW5kYXJpZXMgZm9yIExha2UgT250YXJpbyAoMDQx +NTIwMCksIExha2UgRXJpZSAoMDQxMjAyMDApLCBMYWtlIEh1cm9uICgwNDA4MDMwMCkgYW5kIExh +a2UgU3VwZXJpb3IgKDA0MDIwMzAwKSB3ZXJlIHVwZGF0ZWQgdXNpbmcgdGhlIG5ldyBpbmxhbmQg +bGFrZXMgY29hc3RhbCBtZXRob2QuIEFsbCB1cGRhdGVzIHdlcmUgY29vcmRpbmF0ZWQgd2l0aCB0 +aGUgV0JEIHN0YXRlIHN0ZXdhcmQgZm9yIGVhY2ggYWRqYWNlbnQgc3RhdGUuIFRoZSBhcmVhIHdp +dGhpbiBXaXNjb25zaW4gd2FzIGV4Y2x1ZGVkIHBlciB0aGUgc3RhdGUgcGFydG5lcuKAmXMgcmVx +dWVzdC4gQWxsIHN1cnJvdW5kaW5nIDgtZGlnaXRzICh1bml0cyB0b3VjaGluZyB0aGUgbGFrZXMp +IHdlcmUgcmV2aWV3ZWQgYW5kIHVwZGF0ZWQgYXMgd2VsbC4gPC9wcm9jZGVzYz4NCiAgICAgICAg +PHByb2NkYXRlPjIwMTY8L3Byb2NkYXRlPg0KICAgICAgPC9wcm9jc3RlcD4NCiAgICAgIDxwcm9j +c3RlcD4NCiAgICAgICAgPHByb2NkZXNjPk1leGljbyBIYXJtb25pemF0aW9uICgyMDEwLTIwMTQp +DQoJDQoJMjAxMCAtIEhhcm1vbml6YXRpb24gd2l0aCBUZXhhcyBhbmQgTWV4aWNvOyBIVUMxMiBw +b2x5Z29ucyBhbmQgbGluZSByZXdvcmsgYnkgVVNHUyBXYXRlciBTY2llbmNlIENlbnRlciwgU2Fs +dCBMYWtlIENpdHksIFVULg0KCQ0KCTIwMTQgLSBIYXJtb25pemVkIDgtLCAxMCBhbmQgMTItZGln +aXQgdW5pdHMgZm9yIGFsbCBib3JkZXIgOC1kaWdpdCB1bml0cyB3aXRoIE1leGljbyB3ZXJlIGlu +Y29ycG9yYXRlZCBpbnRvIHRoZSBXQkQuIFRoZXNlIGRhdGFzZXRzIHdlcmUgZGV2ZWxvcGVkIHRo +cm91Z2ggYSBjb29yZGluYXRlZCBlZmZvcnQgYmV0d2VlbiB0aGUgVVNHUyBhbmQgSU5FR0kgYWxv +bmcgd2l0aCBpbnB1dCBmcm9tIFN0YXRlIGFuZCBsb2NhbCBwYXJ0bmVycy4gRHVlIHRvIHRoZSBo +YXJtb25pemF0aW9uIGVmZm9ydCBzb21lIDgtZGlnaXQgYm91bmRhcmllcyBtYXkgaGF2ZSBiZWVu +IGFkanVzdGVkLiBJbiBhZGRpdGlvbiB0byB0aGlzIHRoZSAxMC0gYW5kIDEyLWRpZ2l0IGJvdW5k +YXJpZXMgYWxvbmcgdGhlIGJvcmRlciBtaWdodCBoYXZlIGFsc28gYmVlbiBhZGp1c3RlZCBiYXNl +ZCBvbiB0aGUgYXZhaWxhYmlsaXR5IG9mIGJldHRlciBiYXNlIGluZm9ybWF0aW9uIHdpdGhpbiBN +ZXhpY28gcHJvdmlkZWQgYnkgSU5FR0kuPC9wcm9jZGVzYz4NCiAgICAgICAgPHByb2NkYXRlPjIw +MTQ8L3Byb2NkYXRlPg0KICAgICAgPC9wcm9jc3RlcD4NCiAgICAgIDxwcm9jc3RlcD4NCiAgICAg +ICAgPHByb2NkZXNjPlRoZSBmb2xsb3dpbmcgc2VjdGlvbiBkZXNjcmliZXMgdXBkYXRlcyB0byB0 +aGUgV0JEIGRhdGEgbW9kZWwgKDIwMTItMjAxNikuDQoJCQ0KCUp1bHkgMjAxMiANCglOYXRpb25h +bCByZXNwb25zaWJpbGl0eSBmb3Igc3Rld2FyZHNoaXAgYW5kIG1haW50ZW5hbmNlIG9mIHRoZSBX +QkQgdHJhbnNmZXJyZWQgZnJvbSBOUkNTIHRvIHRoZSBVU0dTLiBBcyBhIHJlc3VsdCB0aGUgV0JE +IGRhdGEgbW9kZWwgd2FzIHVwZGF0ZWQgYW5kIHRoZSBkYXRhIHdhcyBpbmNvcnBvcmF0ZWQgaW50 +byB0aGUgTkhEIGRhdGFiYXNlLg0KCVdCRCBtb2RlbCB1cGRhdGVkIGJhc2VkIG9uIGlucHV0IGZy +b20gTlJDUywgVVNHUywgTkhEIHByb2dyYW0gYW5kIHVzZXIgY29tbXVuaXR5Lg0KCVdCRCBwb2x5 +Z29uIGRhdGFzZXQgc3ViZGl2aWRlZCBpbnRvIGluZGl2aWR1YWwgcG9seWdvbiBkYXRhc2V0cyBm +b3IgZWFjaCBsZXZlbCBvZiBoeWRyb2xvZ2ljIHVuaXRzLiAgDQoJVHdvIGFkZGl0aW9uYWwgZGF0 +YXNldHMgYWRkZWQgZm9yIHRoZSBuZXh0IDIgbGV2ZWxzIG9mIHN1YmRpdmlzaW9ucyAoMTQtIGFu +ZCAxNi1kaWdpdCkgYnV0IGFyZSBub3QgcmVxdWlyZWQgZm9yIGVhY2ggc3RhdGUgdG8gcG9wdWxh +dGUgdGhlc2UuDQoJQXR0cmlidXRlIHRhYmxlcyBmb3IgcG9seWdvbnMgYW5kIGxpbmVzIHdlcmUg +dXBkYXRlZCB3aXRoIHNvbWUgZmllbGRzIGJlaW5nIGFkZGVkLCByZW5hbWVkIG9yIHJlbW92ZWQu +IFNlZSBiZWxvdyBmb3IgYSBsaXN0IG9mIGNoYW5nZXMuDQoNCglXQkQgTGluZSBhdHRyaWJ1dGUg +dGFibGUgY2hhbmdlczogDQoJT2xkIE1vZGVsOg0KCQlIVV9MRVZFTCANCgkJTElORVNPVVJDRQ0K +CQlNRVRBX0lEIOKAkyByZW1vdmVkIOKAkyBGZWF0dXJlIGxldmVsIG1ldGFkYXRhIGZ1bmN0aW9u +YWxpdHkgaXMgYWRkZWQgdG8gdHJhY2sgdXBkYXRlcyBpbiB0aGUgbmV3IG1vZGVsDQoJCUxFRlRf +SFVDXzgg4oCTIHJlbW92ZWQNCgkJUklHSFRfSFVDXzgg4oCTIHJlbW92ZWQNCg0KCU5ldyBNb2Rl +bDoNCgkJUGVybWFuZW50X0lkZW50aWZpZXIg4oCTIE5ldyBmaWVsZCBmb3IgZmVhdHVyZSBsZXZl +bCBtZXRhZGF0YQ0KCQlTb3VyY2VfRmVhdHVyZUlEIOKAkyBOZXcgZmllbGQgZm9yIGZlYXR1cmUg +bGV2ZWwgbWV0YWRhdGEgDQoJCU1ldGFfU291cmNlSUQg4oCTIE5ldyBmaWVsZCBmb3IgZmVhdHVy +ZSBsZXZlbCBtZXRhZGF0YQ0KCQlTb3VyY2VfRGF0YURlc2Mg4oCTIE5ldyBmaWVsZCBmb3IgZmVh +dHVyZSBsZXZlbCBtZXRhZGF0YQ0KCQlTb3VyY2VfT3JpZ2luYXRvciDigJMgTmV3IGZpZWxkIGZv +ciBmZWF0dXJlIGxldmVsIG1ldGFkYXRhDQoJCUhVX0xldmVsDQoJCUhVX0NsYXNzIOKAkyBOZXcg +ZmllbGQgcG9wdWxhdGVkIHdpdGggdGhlIG51bWJlciBvZiBkaWdpdHMgb2YgdGhlIGh5ZHJvbG9n +aWMgdW5pdA0KCQlMb2FkRGF0ZSDigJMgTmV3IGZpZWxkIGZvciBmZWF0dXJlIGxldmVsIG1ldGFk +YXRhDQoJCUxpbmVTb3VyY2UNCg0KCVdCRCBQb2x5Z29uIGF0dHJpYnV0ZSB0YWJsZSBjaGFuZ2Vz +Og0KCUNvZGVzIGFuZCBuYW1lcyBtb3ZlZCBmcm9tIHNpbmdsZSBwb2x5Z29uIGRhdGFzZXQgdG8g +dGhlIGFwcHJvcHJpYXRlIGh5ZHJvbG9naWMgdW5pdCBkYXRhc2V0IGZvciBlYWNoIGxldmVsDQoJ +T2xkIE1vZGVsOg0KCQlIVUNfOCDigJMgbW92ZWQgdG8gOC1kaWdpdCBwb2x5Z29uIGRhdGFzZXQN +CgkJSFVDXzEwIOKAkyBtb3ZlZCB0byAxMC1kaWdpdCBwb2x5Z29uIGRhdGFzZXQNCgkJSFVDXzEy +IOKAkyBtb3ZlZCB0byAxMi1kaWdpdCBwb2x5Z29uIGRhdGFzZXQNCgkJQUNSRVMg4oCTIHJlLW5h +bWVkIHRvIEFSRUFfQUNSRVMNCgkJTkNPTlRSQl9BDQoJCUhVXzEwX0dOSVMg4oCTIFJlcGxhY2Vk +IHdpdGggR2F6X0lEDQoJCUhVXzEyX0dOSVMg4oCTIFJlcGxhY2VkIHdpdGggR2F6X0lEDQoJCUhV +XzEwX0RTIOKAkyBSZW1vdmVkIGZyb20gbmV3IG1vZGVsDQoJCUhVXzEwX05BTUUg4oCTIG1vdmVk +IHRvIDEwLWRpZ2l0IHBvbHlnb24gZGF0YXNldA0KCQlIVV8xMF9NT0Qg4oCTIG1vdmVkIHRvIDEw +LWRpZ2l0IHBvbHlnb24gZGF0YXNldA0KCQlIVV8xMF9UWVBFIOKAkyBtb3ZlZCB0byAxMC1kaWdp +dCBwb2x5Z29uIGRhdGFzZXQNCgkJSFVfMTJfRFMg4oCTIG1vdmVkIHRvIDEyLWRpZ2l0IHBvbHln +b24gZGF0YXNldA0KCQlIVV8xMl9OQU1FIOKAkyBtb3ZlZCB0byAxMi1kaWdpdCBwb2x5Z29uIGRh +dGFzZXQNCgkJSFVfMTJfTU9EIOKAkyBtb3ZlZCB0byAxMi1kaWdpdCBwb2x5Z29uIGRhdGFzZXQN +CgkJSFVfMTJfVFlQRSDigJMgbW92ZWQgdG8gMTItZGlnaXQgcG9seWdvbiBkYXRhc2V0DQoJCU1F +VEFfSUQgLSByZW1vdmVkIOKAkyBGZWF0dXJlIGxldmVsIG1ldGFkYXRhIGZ1bmN0aW9uYWxpdHkg +aXMgYWRkZWQgdG8gdHJhY2sgdXBkYXRlcyBpbiB0aGUgbmV3IG1vZGVsDQoJCVNUQVRFUw0KDQoJ +TmV3IE1vZGVsOg0KCUZpZWxkcyBpbmNsdWRlZCBpbiBhbGwgbGV2ZWxzIG9mIGh5ZHJvbG9naWMg +dW5pdCBwb2x5Z29uIGRhdGFzZXRzLg0KCQlHYXpfSUQg4oCTIE9sZCBtb2RlbCB3YXMgdGhlIEdO +SVMgZmllbGQNCgkJQXJlYV9BY3JlcyAtIFJlbmFtZWQNCgkJQXJlYV9TcUttIOKAkyBOZXcgZmll +bGQNCgkJU3RhdGVzDQoJCUxvYWREYXRlLSBOZXcgZmllbGQNCgkJSFVDXyIjZGlnaXQiIC0gRm9y +IEV4YW1wbGU6IEhVQzEyDQoJCUhVXyIjZGlnaXQiX05hbWUgLSBGb3IgRXhhbXBsZTogSFVfMTJf +TmFtZQ0KDQoJRmllbGRzIGluY2x1ZGVkIHdpdGggdGhlIDEwLSwgMTItLCAxNC0gYW5kIDE2LSBk +aWdpdCBwb2x5Z29uIGRhdGFzZXRzLg0KCQlIVV8iI2RpZ2l0Il9UeXBlIC0gRm9yIEV4YW1wbGUg +SFVfMTJfVHlwZQ0KCQlIVV8iI2RpZ2l0Il9Nb2QgLSBGb3IgRXhhbXBsZSBIVV8xMl9Nb2QNCg0K +CUZpZWxkcyBpbmNsdWRlZCB3aXRoIHRoZSAxMi0sIDE0LSBhbmQgMTYtIGRpZ2l0IHBvbHlnb24g +ZGF0YXNldHMuDQoJCU5Db250cmJfQWNyZXMNCgkJTkNvbnRyYl9TcUttIOKAkyBOZXcgZmllbGQN +CgkJDQogICAgVGFibGVzIA0KCU5ldyBNb2RlbDoNCgkJRXh0ZXJuYWxJRENyb3Nzd2Fsaw0KCQlG +ZWF0dXJldG9IVU1vZA0KCQlGZWF0dXJlVG9NZXRhZGF0YQ0KCQlNZXRhX1Byb2Nlc3NEZXRhaWwN +CgkJTWV0YV9Tb3VyY2VEZXRhaWwNCgkJUHJvY2Vzc2luZ1BhcmFtZXRlcnMNCgkJVXBkYXRlU3Rh +dHVzDQoJCVdCRF9BdHRyaWJ1dGVzDQoJCVdCRF9OYXYNCgkNCglPY3RvYmVyIDIwMTIJDQoJQ2hh +bmdlcyB0byB0aGUgV0JEIGRhdGEgbW9kZWwgaW5jbHVkZSB0aGUgZWxpbWluYXRpb24gb2YgdGhl +IHVuZGVyc2NvcmUgIl8iIGluIGZpZWxkIGFuZCB0YWJsZSBuYW1lcywgc3dpdGNoaW5nIHRvIGNh +bWVsQ2FzZS4gT3RoZXIgY2hhbmdlcyB0byB0aGUgV0JEIGRhdGEgbW9kZWwgaW5jbHVkZSB0aGUg +ZWxpbWluYXRpb24gb2YgdGhlIFdCRFBvaW50IHRhYmxlLCB0aGUgV0JEUG9pbnRFdmVudCB0YWJs +ZSwgYW5kIHRoZSBXQkRBdHJpYnV0ZXMgdGFibGUuICBGaWVsZHMgaGF2ZSBiZWVuIGFkZGVkIHRv +IHRoZSBXQkRIVTEyIHBvbHlnb24gZmVhdHVyZSBkYXRhc2V0IHRoYXQgYWxsb3cgbWV0YWRhdGEg +cmVjb3JkIGxpbmtpbmcgYW5kIGFsc28gaW5jbHVkZSB0aGUgZG93bnN0cmVhbSBhdHRyaWJ1dGUu +ICBOV0lTIGRyYWluYWdlIGFyZWEgbGluZSBhbmQgcG9seWdvbiBmZWF0dXJlIGNsYXNzZXMgaGF2 +ZSBiZWVuIGFkZGVkIGFsc28uDQoJCQ0KCU5ldyBNb2RlbDoNCglXQkQgbGluZSBkYXRhc2V0DQoJ +CVROTUlEIOKAkyBVc2UgdG8gYmUgUGVybWFuZW50SUQNCgkJSFVMZXZlbA0KCQlIVUNsYXNzIOKA +kyBOZXcgZmllbGQgcG9wdWxhdGVkIHdpdGggdGhlIG51bWJlciBvZiBkaWdpdHMgb2YgdGhlIGh5 +ZHJvbG9naWMgdW5pdA0KCQlIVU1vZA0KCQlMaW5lU291cmNlDQoJCUxvYWREYXRlIOKAkyBOZXcg +ZmllbGQgZm9yIGZlYXR1cmUgbGV2ZWwgbWV0YWRhdGENCgkJKFNvdXJjZV9GZWF0dXJlSUQsIE1l +dGFfU291cmNlSUQsIFNvdXJjZV9EYXRhRGVzYywgU291cmNlX09yaWdpbmF0b3IgZmllbGRzIHJl +bW92ZWQgZnJvbSBXQkRMaW5lIGRhdGFzZXQpDQoJCQ0KCVdCRCBwb2x5Z29uIGRhdGFzZXQNCglG +aWVsZHMgaW5jbHVkZWQgaW4gYWxsIGxldmVscyBvZiBoeWRyb2xvZ2ljIHVuaXQgcG9seWdvbiBk +YXRhc2V0cy4NCgkJVE5NSUQg4oCTIE5ldyBmaWVsZCBmb3IgZmVhdHVyZSBsZXZlbCBtZXRhZGF0 +YSANCgkJTWV0YVNvdXJjZUlEIOKAkyBOZXcgZmllbGQgZm9yIGZlYXR1cmUgbGV2ZWwgbWV0YWRh +dGENCgkJU291cmNlRGF0YURlc2Mg4oCTIE5ldyBmaWVsZCBmb3IgZmVhdHVyZSBsZXZlbCBtZXRh +ZGF0YQ0KCQlTb3VyY2VPcmlnaW5hdG9yIOKAkyBOZXcgZmllbGQgZm9yIGZlYXR1cmUgbGV2ZWwg +bWV0YWRhdGENCgkJU291cmNlRmVhdHVyZUlEIOKAkyBOZXcgZmllbGQgZm9yIGZlYXR1cmUgbGV2 +ZWwgbWV0YWRhdGENCgkJTG9hZERhdGUg4oCTIE5ldyBmaWVsZCBmb3IgZmVhdHVyZSBsZXZlbCBt +ZXRhZGF0YQ0KCQlHTklTX0lEID0gcmVwbGFjZXMgR2F6X0lEIA0KCQlBcmVhQWNyZXMgDQoJCUFy +ZWFTcUttIA0KCQlTdGF0ZXMNCgkJTG9hZERhdGUNCgkJSFVDImRpZ2l0IiAtIGZvciBleGFtcGxl +OiBIVUMxMiANCgkJTmFtZQ0KCQkNCglGaWVsZHMgaW5jbHVkZWQgd2l0aCB0aGUgMTAtLCAxMi0s +IDE0LSBhbmQgMTYtIGRpZ2l0IHBvbHlnb24gZGF0YXNldHMuDQoJCUhVVHlwZQ0KCQlIVU1vZA0K +DQoJRmllbGRzIGluY2x1ZGVkIHdpdGggdGhlIDEyLSwgMTQtIGFuZCAxNi0gZGlnaXQgcG9seWdv +biBkYXRhc2V0cy4NCgkJTkNvbnRyYkFjcmVzDQoJCU5Db250cmJTcUttIA0KDQoJRmllbGQgaW5j +bHVkZWQgd2l0aCB0aGUgMTItZGlnaXQgcG9seWdvbiBkYXRhc2V0LiANCgkJVG9IVUMg4oCTIFRo +aXMgYXR0cmlidXRlIHdhcyBpbmNsdWRlZCBpbiB0aGUgb3JpZ2luYWwgV0JEIGRhdGEgbW9kZWwg +YXMgSFVfMTJfRFMgYW5kIHJlcHJlc2VudHMgdGhlIGNvZGUgb2YgdGhlIG5leHQgdW5pdCBkb3du +c3RyZWFtLiBUaGUgdmFsdWVzIGZvciB0aGlzIGZpZWxkIHdlcmUgcG9wdWxhdGVkIGZvciB0aGUg +bGFzdCB2ZXJzaW9uIG9mIHRoZSBkYXRhc2V0IGluIHRoZSBvbGQgbW9kZWwgYnkgbGlua2luZyB0 +aGUgMiB0YWJsZXMgYnkgdGhlIDEyLWRpZ2l0IGNvZGUgYW5kIGNhbGN1bGF0aW5nIHRoZSB2YWx1 +ZSBvdmVyLg0KDQoJTldJU0RyYWluYWdlQXJlYSBwb2x5Z29uIGRhdGFzZXQgYWRkZWQgYXMgYSBw +bGFjZSBob2xkZXIgZm9yIHdoZW4gdGhlc2UgZGF0YXNldHMgYXJlIGdlbmVyYXRlZC4NCglBdHRy +aWJ1dGUgRmllbGRzOg0KCQlUTk1JRA0KCQlNZXRhU291cmNlSUQNCgkJU291cmNlRGF0YURlc2MN +CgkJU291cmNlT3JpZ2luYXRvcg0KCQlTb3VyY2VGZWF0dXJlSUQNCgkJTG9hZERhdGUNCgkJUmVm +ZXJlbmNlVE5NSUQNCgkJU2l0ZUlEDQoJCUFnZW5jeUNvZGUNCgkJU2l0ZU51bWJlcg0KCQlTdGF0 +aW9uTmFtZQ0KCQlUb3RhbERyYWluYWdlQXJlYQ0KCQlDb250cmlidXRpbmdEcmFpbmFnZUFyZWEN +Cg0KCU5XSVNCb3VuZGFyeSBsaW5lIGRhdGFzZXQgYWRkZWQgYXMgYSBwbGFjZSBob2xkZXIgZm9y +IHdoZW4gdGhlc2UgZGF0YXNldHMgYXJlIGdlbmVyYXRlZC4NCglBdHRyaWJ1dGUgRmllbGRzOg0K +CQlUTk1JRA0KCQlNZXRhU291cmNlSUQNCgkJU291cmNlRGF0YURlc2MNCgkJU291cmNlT3JpZ2lu +YXRvcg0KCQlTb3VyY2VGZWF0dXJlSUQNCgkJTG9hZERhdGUNCgkJUmVmZXJlbmNlVE5NSUQNCg0K +CU5vbkNvbnRyaWJ1dGluZ0RyYWluYWdlQXJlYSBwb2x5Z29uIGRhdGFzZXQgYWRkZWQgYXMgYSBw +bGFjZSBob2xkZXIgZm9yIHdoZW4gdGhlc2UgZGF0YXNldHMgYXJlIGdlbmVyYXRlZC4NCglBdHRy +aWJ1dGUgRmllbGRzOg0KCQlUTk1JRA0KCQlNZXRhU291cmNlSUQNCgkJU291cmNlRGF0YURlc2MN +CgkJU291cmNlT3JpZ2luYXRvcg0KCQlTb3VyY2VGZWF0dXJlSUQNCgkJTG9hZERhdGUNCiAgICAg +IA0KCTIwMTMgDQoJQ2hhbmdlcyB0byB0aGUgV0JEIGRhdGEgbW9kZWwgaW5jbHVkZSB1cGRhdGVz +IHRvIHRoZSBmaWVsZCBmb3IgdGhlIE5vbkNvbnRyaWJ1dGluZ0RyYWluYWdlQXJlYSBwb2x5Z29u +IGRhdGFzZXQsIE5XSVNCb3VuZGFyeSBsaW5lIGRhdGFzZXQgYW5kIHRoZSBOV0lTRHJhaW5hZ2VB +cmVhIHBvbHlnb24gZGF0YXNldC4gVGhpcyBpbmNsdWRlcyB0aGUgYWRkaXRpb24gb2YgbmV3IGZp +ZWxkcyBhbmQgdGhlIHJlLW5hbWluZyBvZiBzb21lIG9mIHRoZSBleGlzdGluZyBmaWVsZHMuDQoJ +CQ0KCU5XSVNEcmFpbmFnZUFyZWEgcG9seWdvbiBkYXRhc2V0OiANCglBdHRyaWJ1dGUgRmllbGRz +Og0KCQlUTk1JRA0KCQlNZXRhU291cmNlSUQNCgkJU291cmNlRGF0YURlc2MNCgkJU291cmNlT3Jp +Z2luYXRvcg0KCQlTb3VyY2VGZWF0dXJlSUQNCgkJTG9hZERhdGUNCgkJUmVmZXJlbmNlVE5NSURO +SERQb2ludEV2ZW50IOKAkyBSZW5hbWVkIGZyb20gUmVmZXJlbmNlVE5NSUQNCgkJQWdlbmN5Q29k +ZQ0KCQlTaXRlTnVtYmVyDQoJCVN0YXRpb25OYW1lDQoJCUNvbnRyaWJ1dGluZ0RyYWluYWdlQXJl +YUFjcmVzIOKAkyBPcmlnaW5hbGx5IGNhbGxlZCBDb250cmlidXRpbmdEcmFpbmFnZUFyZWENCgkJ +VG90YWxEcmFpbmFnZUFyZWFBY3JlcyDigJMgT3JpZ2luYWxseSBjYWxsZWQgVG90YWxEcmFpbmFn +ZUFyZWENCgkJQ29udHJpYnV0aW5nRHJhaW5hZ2VBcmVhU3FLbSDigJMgTmV3IGZpZWxkDQoJCVRv +dGFsRHJhaW5hZ2VBcmVhU3FLbSDigJMgTmV3IGZpZWxkDQoJCVNpdGVJRCAtIFJlbW92ZWQNCg0K +CU5XSVNCb3VuZGFyeSBsaW5lIGRhdGFzZXQ6IA0KCUF0dHJpYnV0ZSBGaWVsZHM6DQoJCVROTUlE +DQoJCU1ldGFTb3VyY2VJRA0KCQlTb3VyY2VEYXRhRGVzYw0KCQlTb3VyY2VPcmlnaW5hdG9yDQoJ +CVNvdXJjZUZlYXR1cmVJRA0KCQlMb2FkRGF0ZQ0KCQlSZWZlcmVuY2VUTk1JRFBvaW50RXZlbnQg +4oCTIE9yaWdpbmFsbHkgY2FsbGVkIFJlZmVyZW5jZVROTUlEDQoJCVNpdGVOdW1iZXIg4oCTIE5l +dyBmaWVsZA0KDQoJTm9uQ29udHJpYnV0aW5nRHJhaW5hZ2VBcmVhIHBvbHlnb24gZGF0YXNldCAN +CgkJQXR0cmlidXRlIEZpZWxkczoNCgkJVE5NSUQNCgkJTWV0YVNvdXJjZUlEDQoJCVNvdXJjZURh +dGFEZXNjDQoJCVNvdXJjZU9yaWdpbmF0b3INCgkJU291cmNlRmVhdHVyZUlEDQoJCUxvYWREYXRl +DQoJCU5vbkNvbnRyaWJ1dGluZ1NxS20g4oCTIE5ldyBmaWVsZA0KCQlOb25Db250cmlidXRpbmdB +Y3JlcyDigJMgTmV3IGZpZWxkDQoJCVJlZmVyZW5jZVROTUlEMTJkaWdpdEhVIOKAkyBOZXcgZmll +bGQNCgkJDQoJVGFibGVzDQoJCUV4dGVybmFsQ3Jvc3N3YWxrIC0gT3JpZ2luYWxseSBjYWxsZWQg +RXh0ZXJuYWxJRENyb3Nzd2Fsaw0KCQlGZWF0dXJlVG9IVU1vZCAtIHJlbW92ZWQNCgkJRmVhdHVy +ZVRvTWV0YWRhdGENCgkJSFVNb2QgLSBOZXdGaWVsZA0KCQlNZXRhUHJvY2Vzc0RldGFpbCAtIFBy +ZXZpb3VzIHZlcnNpb24gY2FsbGVkIE1ldGFfUHJvY2Vzc0RldGFpbA0KCQlNZXRhU291cmNlRGV0 +YWlsIC0gUHJldmlvdXMgdmVyc2lvbiBjYWxsZWQgTWV0YV9Tb3VyY2VEZXRhaWwNCgkJUHJvY2Vz +c2luZ1BhcmFtZXRlcnMNCgkJVXBkYXRlU3RhdHVzDQoJCVdCRF9BdHRyaWJ1dGVzIC0gcmVtb3Zl +ZA0KCQlXQkROYXZpZ2F0aW9uIC0gT3JpZ2luYWxseSBXQkRfTmF2DQoJCQ0KCTIwMTQNCgkNCgkN +CgkyMDE1DQoJQ2hhbmdlcyB0byB0aGUgV0JEIGRhdGEgbW9kZWwgaW5jbHVkZSB1cGRhdGVzIG9y +IGFkZGl0aW9ucyB0byB0aGUgZmllbGRzIGZvciB0aGUgTm9uQ29udHJpYnV0aW5nRHJhaW5hZ2VB +cmVhIHBvbHlnb24gZGF0YXNldCwgTldJU0JvdW5kYXJ5IGxpbmUgZGF0YXNldCBhbmQgdGhlIE5X +SVNEcmFpbmFnZUFyZWEgcG9seWdvbiBkYXRhc2V0LiBUaGUgbWFqb3JpdHkgb2YgdGhlc2UgYXJl +IGR1ZSB0byB0aGUgbGVuZ3RoIG9mIHRoZSBvcmlnaW5hbCBuYW1lIGZvciB0aGUgZmllbGQuIEEg +bmV3IGxpbmUgZGF0YXNldCB3YXMgY3JlYXRlZCBmb3IgTm9uIENvbnRyaWJ1dGluZyBBcmVhIGNh +bGxlZCBOb25Db250cmlidXRpbmdEcmFpbmFnZUxpbmUgTldJU0JvdW5kYXJ5IHdhcyByZS1uYW1l +ZCBOV0lTRHJhaW5hZ2VMaW5lDQoJCQ0KCU5XSVNEcmFpbmFnZUFyZWEgcG9seWdvbiBkYXRhc2V0 +OiANCglBdHRyaWJ1dGUgRmllbGRzOg0KCQlUTk1JRA0KCQlNZXRhU291cmNlSUQNCgkJU291cmNl +RGF0YURlc2MNCgkJU291cmNlT3JpZ2luYXRvcg0KCQlTb3VyY2VGZWF0dXJlSUQNCgkJTG9hZERh +dGUNCgkJQXJlYVNxS20g4oCTIE5ldyBGaWVsZA0KCQlBZ2VuY3lDb2RlDQoJCVNpdGVOdW1iZXIN +CgkJU3RhdGlvbk5hbWUNCgkJVG90YWxBcmVhU3FNaSDigJMgTmV3IEZpZWxkDQoJCU5XSVNUb3Rh +bEFyZWFTcU1pIOKAkyBOZXcgRmllbGQNCgkJQ29udHJpYnV0aW5nQXJlYVNxTWkg4oCTIE5ldyBG +aWVsZA0KCQlOV0lTQ29udHJpYnV0aW5nQXJlYVNxTWkg4oCTIE5ldyBGaWVsZA0KCQlSZWZlcmVu +Y2VUTk1JRE5IRFBvaW50RXZlbnQgDQoJCVJlbWFya3Mg4oCTIE5ldyBGaWVsZA0KCQlDb250cmli +dXRpbmdEcmFpbmFnZUFyZWFBY3JlcyDigJMgUmVtb3ZlZA0KCQlUb3RhbERyYWluYWdlQXJlYUFj +cmVzIOKAkyBSZW1vdmVkDQoJCUNvbnRyaWJ1dGluZ0RyYWluYWdlQXJlYVNxS20g4oCTIFJlbW92 +ZWQNCgkJVG90YWxEcmFpbmFnZUFyZWFTcUttIOKAkyBSZW1vdmVkDQoNCglOV0lTRHJhaW5hZ2VM +aW5lIGxpbmUgZGF0YXNldCANCglBdHRyaWJ1dGUgRmllbGRzOg0KCQlUTk1JRA0KCQlNZXRhU291 +cmNlSUQNCgkJU291cmNlRGF0YURlc2MNCgkJU291cmNlT3JpZ2luYXRvcg0KCQlTb3VyY2VGZWF0 +dXJlSUQNCgkJTG9hZERhdGUNCgkJTGVuZ3RoS20g4oCTIE5ldyBGaWVsZA0KCQlMaW5lU291cmNl +IOKAkyBOZXcgRmllbGQNCgkJQWdlbmN5IENvZGUg4oCTIE5ldyBGaWVsZA0KCQlTaXRlTnVtYmVy +IA0KCQlSZWZlcmVuY2VUTk1JRFBvaW50RXZlbnQg4oCTIFJlbW92ZWQNCg0KCU5vbkNvbnRyaWJ1 +dGluZ0RyYWluYWdlQXJlYSBwb2x5Z29uIGRhdGFzZXQgDQoJQXR0cmlidXRlIEZpZWxkczoNCgkJ +VE5NSUQNCgkJTWV0YVNvdXJjZUlEDQoJCVNvdXJjZURhdGFEZXNjDQoJCVNvdXJjZU9yaWdpbmF0 +b3INCgkJU291cmNlRmVhdHVyZUlEDQoJCUxvYWREYXRlDQoJCUFyZWFTcUttIOKAkyBOZXcgRmll +bGQNCgkJTm9uQ29udHJpYnV0aW5nQXJlYVNxS20g4oCTIFJlLW5hbWVkIGZyb20gTm9uQ29udHJp +YnV0aW5nU3FLbQ0KCQlSZW1hcmtzIOKAkyBOZXcgRmllbGQNCgkJTm9uQ29udHJpYnV0aW5nQWNy +ZXMgLSBSZW1vdmVkDQoJCVJlZmVyZW5jZVROTUlEMTJkaWdpdEhVIC0gUmVtb3ZlZA0KDQoJTm9u +Q29udHJpYnV0aW5nRHJhaW5hZ2VMaW5lIGxpbmUgZGF0YXNldCDigJMgTmV3IGRhdGFzZXQNCgkJ +QXR0cmlidXRlIEZpZWxkczoNCgkJVE5NSUQNCgkJTWV0YVNvdXJjZUlEDQoJCVNvdXJjZURhdGFE +ZXNjDQoJCVNvdXJjZU9yaWdpbmF0b3INCgkJU291cmNlRmVhdHVyZUlEDQoJCUxvYWREYXRlDQoJ +CUxlbmd0aEttDQoJCUxpbmVTb3VyY2UNCg0KCTIwMTYNCgkNCglXQkRMaW5lIGRhdGFzZXQNCgkJ +VE5NSUQNCgkJSFVMZXZlbCAtIHJlbW92ZWQNCgkJSFVEaWdpdCAtIE9yaWdpbmFsbHkgY2FsbGVk +IEhVQ2xhc3MNCgkJSFVNb2QNCgkJTGluZVNvdXJjZQ0KCQlNZXRhU291cmNlSUQNCgkJTG9hZERh +dGUNCgkNCglXQkQgcG9seWdvbiBkYXRhc2V0cw0KCUZpZWxkcyBpbmNsdWRlZCB3aXRoIHRoZSAx +Mi0sIDE0LSBhbmQgMTYtIGRpZ2l0IHBvbHlnb24gZGF0YXNldHMuDQoJCU5vbkNvbnRyaWJ1dGlu +Z0FyZWFBY3JlcyAtIHByZXZpb3VzIHZlcnNpb24gd2FzIE5vbkNvbnRyaWJ1dGluZ0FjcmVzDQoJ +CU5vbkNvbnRyaWJ1dGluZ0FyZWFTcUttIC0gcHJldmlvdXMgdmVyc2lvbiB3YXMgTm9uQ29udHJp +YnV0aW5nU3FLbTwvcHJvY2Rlc2M+DQogICAgICAgIDxwcm9jZGF0ZT4yMDE2PC9wcm9jZGF0ZT4N +CiAgICAgIDwvcHJvY3N0ZXA+DQogICAgICA8cHJvY3N0ZXA+DQogICAgICAgIDxwcm9jZGVzYz5B +ZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwcm9jZXNzZXMgdXNlZCB0byBjcmVhdGUg +YW5kIG1haW50YWluIHRoZSBXQkQgYWZ0ZXIgSnVuZSBvZiAyMDEyIGNhbiBiZSBmb3VuZCBpbiB0 +aGUgdGFibGUgY2FsbGVkIE1FVEFQUk9DRVNTREVUQUlMLiBUaGUgcHJvY2VzcyBkZXNjcmlwdGlv +bnMgYXJlIGxpbmtlZCB1c2luZyB0aGUgVE5NSUQgdG8gdGhlIEZFQVRVUkVUT01FVEFEQVRBIHRh +YmxlLiBJbiBhZGRpdGlvbiB0aGUgTUVUQVNPVVJDRURFVEFJTCB0YWJsZSBjYW4gYWxzbyBiZSBs +aW5rZWQgdG8gZGV0ZXJtaW5lIHRoZSBzb3VyY2VzIHVzZWQgdG8gY3JlYXRlIG9yIHVwZGF0ZSB0 +aGUgV0JEIGRhdGEuPC9wcm9jZGVzYz4NCiAgICAgICAgPHByb2NkYXRlPjIwMTI8L3Byb2NkYXRl +Pg0KICAgICAgPC9wcm9jc3RlcD4NCiAgICA8L2xpbmVhZ2U+DQogIDwvZGF0YXF1YWw+DQogIDxz +cGRvaW5mbz4NCiAgICA8ZGlyZWN0PlZlY3RvcjwvZGlyZWN0Pg0KICA8L3NwZG9pbmZvPg0KICA8 +c3ByZWY+DQogICAgPGhvcml6c3lzPg0KICAgICAgPGdlb2dyYXBoPg0KICAgICAgICA8bGF0cmVz +PjAuMDE5Nzk0MDMyNDwvbGF0cmVzPg0KICAgICAgICA8bG9uZ3Jlcz4wLjAyMjM5NDU5OTg8L2xv +bmdyZXM+DQogICAgICAgIDxnZW9ndW5pdD5EZWNpbWFsIHNlY29uZHM8L2dlb2d1bml0Pg0KICAg +ICAgPC9nZW9ncmFwaD4NCiAgICAgIDxnZW9kZXRpYz4NCiAgICAgICAgPGhvcml6ZG4+Tm9ydGgg +QW1lcmljYW4gRGF0dW0gb2YgMTk4MzwvaG9yaXpkbj4NCiAgICAgICAgPGVsbGlwcz5HZW9kZXRp +YyBSZWZlcmVuY2UgU3lzdGVtIDgwPC9lbGxpcHM+DQogICAgICAgIDxzZW1pYXhpcz42Mzc4MTM3 +LjA8L3NlbWlheGlzPg0KICAgICAgICA8ZGVuZmxhdD4yOTguMjU3MjIyMTAxPC9kZW5mbGF0Pg0K +ICAgICAgPC9nZW9kZXRpYz4NCiAgICA8L2hvcml6c3lzPg0KICA8L3NwcmVmPg0KICA8ZWFpbmZv +Pg0KICAgIDxkZXRhaWxlZCBOYW1lPSJXQkRIVTgiPg0KICAgICAgPGVudHR5cD4NCiAgICAgICAg +PGVudHR5cGw+V0JESFUyPC9lbnR0eXBsPg0KICAgICAgICA8ZW50dHlwZD5Qb2x5Z29uIGZlYXR1 +cmUgY2xhc3MgcmVwcmVzZW50aW5nIHRoZSAyLWRpZ2l0IGh5ZHJvbG9naWMgdW5pdCBib3VuZGFy +aWVzIChwcmV2aW91c2x5IHJlZmVycmVkIHRvIGFzIFJlZ2lvbnMpIGFuZCBhcmUgcGFydCBvZiB0 +aGUgV0JEIGRlbGl2ZXJ5LjwvZW50dHlwZD4NCiAgICAgICAgPGVudHR5cGRzPkZlZGVyYWwgU3Rh +bmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5 +IERhdGFzZXQ8L2VudHR5cGRzPg0KICAgICAgICA8ZW50dHlwdCBTeW5jPSJUUlVFIj5GZWF0dXJl +IENsYXNzPC9lbnR0eXB0Pg0KICAgICAgICA8ZW50dHlwYyBTeW5jPSJUUlVFIj4wPC9lbnR0eXBj +Pg0KICAgICAgPC9lbnR0eXA+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsIFN5bmM9 +IlRSVUUiPk9CSkVDVElEPC9hdHRybGFibD4NCiAgICAgICAgPGF0dGFsaWFzIFN5bmM9IlRSVUUi +Pk9CSkVDVElEPC9hdHRhbGlhcz4NCiAgICAgICAgPGF0dHJ0eXBlIFN5bmM9IlRSVUUiPk9JRDwv +YXR0cnR5cGU+DQogICAgICAgIDxhdHR3aWR0aCBTeW5jPSJUUlVFIj40PC9hdHR3aWR0aD4NCiAg +ICAgICAgPGF0cHJlY2lzIFN5bmM9IlRSVUUiPjA8L2F0cHJlY2lzPg0KICAgICAgICA8YXR0c2Nh +bGUgU3luYz0iVFJVRSI+MDwvYXR0c2NhbGU+DQogICAgICAgIDxhdHRyZGVmIFN5bmM9IlRSVUUi +PkludGVybmFsIGZlYXR1cmUgbnVtYmVyLjwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzIFN5 +bmM9IlRSVUUiPkVzcmk8L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAg +PHVkb20gU3luYz0iVFJVRSI+U2VxdWVudGlhbCB1bmlxdWUgd2hvbGUgbnVtYmVycyB0aGF0IGFy +ZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZC48L3Vkb20+DQogICAgICAgIDwvYXR0cmRvbXY+DQog +ICAgICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsIFN5bmM9IlRSVUUi +PlNoYXBlPC9hdHRybGFibD4NCiAgICAgICAgPGF0dGFsaWFzIFN5bmM9IlRSVUUiPlNIQVBFPC9h +dHRhbGlhcz4NCiAgICAgICAgPGF0dHJ0eXBlIFN5bmM9IlRSVUUiPkdlb21ldHJ5PC9hdHRydHlw +ZT4NCiAgICAgICAgPGF0dHdpZHRoIFN5bmM9IlRSVUUiPjA8L2F0dHdpZHRoPg0KICAgICAgICA8 +YXRwcmVjaXMgU3luYz0iVFJVRSI+MDwvYXRwcmVjaXM+DQogICAgICAgIDxhdHRzY2FsZSBTeW5j +PSJUUlVFIj4wPC9hdHRzY2FsZT4NCiAgICAgICAgPGF0dHJkZWYgU3luYz0iVFJVRSI+RmVhdHVy +ZSBnZW9tZXRyeS48L2F0dHJkZWY+DQogICAgICAgIDxhdHRyZGVmcyBTeW5jPSJUUlVFIj5Fc3Jp +PC9hdHRyZGVmcz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDx1ZG9tIFN5bmM9IlRS +VUUiPkNvb3JkaW5hdGVzIGRlZmluaW5nIHRoZSBmZWF0dXJlcy48L3Vkb20+DQogICAgICAgIDwv +YXR0cmRvbXY+DQogICAgICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJs +IFN5bmM9IlRSVUUiPlROTUlEPC9hdHRybGFibD4NCiAgICAgICAgPGF0dGFsaWFzIFN5bmM9IlRS +VUUiPlROTUlEPC9hdHRhbGlhcz4NCiAgICAgICAgPGF0dHJ0eXBlIFN5bmM9IlRSVUUiPlN0cmlu +ZzwvYXR0cnR5cGU+DQogICAgICAgIDxhdHR3aWR0aCBTeW5jPSJUUlVFIj40MDwvYXR0d2lkdGg+ +DQogICAgICAgIDxhdHByZWNpcyBTeW5jPSJUUlVFIj4wPC9hdHByZWNpcz4NCiAgICAgICAgPGF0 +dHNjYWxlIFN5bmM9IlRSVUUiPjA8L2F0dHNjYWxlPg0KICAgICAgPC9hdHRyPg0KICAgICAgPGF0 +dHI+DQogICAgICAgIDxhdHRybGFibCBTeW5jPSJUUlVFIj5NZXRhU291cmNlSUQ8L2F0dHJsYWJs +Pg0KICAgICAgICA8YXR0YWxpYXMgU3luYz0iVFJVRSI+TWV0YVNvdXJjZUlEPC9hdHRhbGlhcz4N +CiAgICAgICAgPGF0dHJ0eXBlIFN5bmM9IlRSVUUiPlN0cmluZzwvYXR0cnR5cGU+DQogICAgICAg +IDxhdHR3aWR0aCBTeW5jPSJUUlVFIj40MDwvYXR0d2lkdGg+DQogICAgICAgIDxhdHByZWNpcyBT +eW5jPSJUUlVFIj4wPC9hdHByZWNpcz4NCiAgICAgICAgPGF0dHNjYWxlIFN5bmM9IlRSVUUiPjA8 +L2F0dHNjYWxlPg0KICAgICAgPC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFi +bCBTeW5jPSJUUlVFIj5Tb3VyY2VEYXRhRGVzYzwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRhbGlh +cyBTeW5jPSJUUlVFIj5Tb3VyY2VEYXRhRGVzYzwvYXR0YWxpYXM+DQogICAgICAgIDxhdHRydHlw +ZSBTeW5jPSJUUlVFIj5TdHJpbmc8L2F0dHJ0eXBlPg0KICAgICAgICA8YXR0d2lkdGggU3luYz0i +VFJVRSI+MTAwPC9hdHR3aWR0aD4NCiAgICAgICAgPGF0cHJlY2lzIFN5bmM9IlRSVUUiPjA8L2F0 +cHJlY2lzPg0KICAgICAgICA8YXR0c2NhbGUgU3luYz0iVFJVRSI+MDwvYXR0c2NhbGU+DQogICAg +ICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsIFN5bmM9IlRSVUUiPlNv +dXJjZU9yaWdpbmF0b3I8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0YWxpYXMgU3luYz0iVFJVRSI+ +U291cmNlT3JpZ2luYXRvcjwvYXR0YWxpYXM+DQogICAgICAgIDxhdHRydHlwZSBTeW5jPSJUUlVF +Ij5TdHJpbmc8L2F0dHJ0eXBlPg0KICAgICAgICA8YXR0d2lkdGggU3luYz0iVFJVRSI+MTMwPC9h +dHR3aWR0aD4NCiAgICAgICAgPGF0cHJlY2lzIFN5bmM9IlRSVUUiPjA8L2F0cHJlY2lzPg0KICAg +ICAgICA8YXR0c2NhbGUgU3luYz0iVFJVRSI+MDwvYXR0c2NhbGU+DQogICAgICA8L2F0dHI+DQog +ICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsIFN5bmM9IlRSVUUiPlNvdXJjZUZlYXR1cmVJ +RDwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRhbGlhcyBTeW5jPSJUUlVFIj5Tb3VyY2VGZWF0dXJl +SUQ8L2F0dGFsaWFzPg0KICAgICAgICA8YXR0cnR5cGUgU3luYz0iVFJVRSI+U3RyaW5nPC9hdHRy +dHlwZT4NCiAgICAgICAgPGF0dHdpZHRoIFN5bmM9IlRSVUUiPjQwPC9hdHR3aWR0aD4NCiAgICAg +ICAgPGF0cHJlY2lzIFN5bmM9IlRSVUUiPjA8L2F0cHJlY2lzPg0KICAgICAgICA8YXR0c2NhbGUg +U3luYz0iVFJVRSI+MDwvYXR0c2NhbGU+DQogICAgICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAg +ICAgICAgPGF0dHJsYWJsIFN5bmM9IlRSVUUiPkxvYWREYXRlPC9hdHRybGFibD4NCiAgICAgICAg +PGF0dGFsaWFzIFN5bmM9IlRSVUUiPkxvYWREYXRlPC9hdHRhbGlhcz4NCiAgICAgICAgPGF0dHJ0 +eXBlIFN5bmM9IlRSVUUiPkRhdGU8L2F0dHJ0eXBlPg0KICAgICAgICA8YXR0d2lkdGggU3luYz0i +VFJVRSI+ODwvYXR0d2lkdGg+DQogICAgICAgIDxhdHByZWNpcyBTeW5jPSJUUlVFIj4wPC9hdHBy +ZWNpcz4NCiAgICAgICAgPGF0dHNjYWxlIFN5bmM9IlRSVUUiPjA8L2F0dHNjYWxlPg0KICAgICAg +PC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibCBTeW5jPSJUUlVFIj5BcmVh +U3FLbTwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRhbGlhcyBTeW5jPSJUUlVFIj5BcmVhU3FLbTwv +YXR0YWxpYXM+DQogICAgICAgIDxhdHRydHlwZSBTeW5jPSJUUlVFIj5Eb3VibGU8L2F0dHJ0eXBl +Pg0KICAgICAgICA8YXR0d2lkdGggU3luYz0iVFJVRSI+ODwvYXR0d2lkdGg+DQogICAgICAgIDxh +dHByZWNpcyBTeW5jPSJUUlVFIj4wPC9hdHByZWNpcz4NCiAgICAgICAgPGF0dHNjYWxlIFN5bmM9 +IlRSVUUiPjA8L2F0dHNjYWxlPg0KICAgICAgPC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAg +IDxhdHRybGFibCBTeW5jPSJUUlVFIj5BcmVhQWNyZXM8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0 +YWxpYXMgU3luYz0iVFJVRSI+QXJlYUFjcmVzPC9hdHRhbGlhcz4NCiAgICAgICAgPGF0dHJ0eXBl +IFN5bmM9IlRSVUUiPkRvdWJsZTwvYXR0cnR5cGU+DQogICAgICAgIDxhdHR3aWR0aCBTeW5jPSJU +UlVFIj44PC9hdHR3aWR0aD4NCiAgICAgICAgPGF0cHJlY2lzIFN5bmM9IlRSVUUiPjA8L2F0cHJl +Y2lzPg0KICAgICAgICA8YXR0c2NhbGUgU3luYz0iVFJVRSI+MDwvYXR0c2NhbGU+DQogICAgICA8 +L2F0dHI+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsIFN5bmM9IlRSVUUiPkdOSVNf +SUQ8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0YWxpYXMgU3luYz0iVFJVRSI+R05JU19JRDwvYXR0 +YWxpYXM+DQogICAgICAgIDxhdHRydHlwZSBTeW5jPSJUUlVFIj5JbnRlZ2VyPC9hdHRydHlwZT4N +CiAgICAgICAgPGF0dHdpZHRoIFN5bmM9IlRSVUUiPjQ8L2F0dHdpZHRoPg0KICAgICAgICA8YXRw +cmVjaXMgU3luYz0iVFJVRSI+MDwvYXRwcmVjaXM+DQogICAgICAgIDxhdHRzY2FsZSBTeW5jPSJU +UlVFIj4wPC9hdHRzY2FsZT4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8 +YXR0cmxhYmwgU3luYz0iVFJVRSI+TmFtZTwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRhbGlhcyBT +eW5jPSJUUlVFIj5OYW1lPC9hdHRhbGlhcz4NCiAgICAgICAgPGF0dHJ0eXBlIFN5bmM9IlRSVUUi +PlN0cmluZzwvYXR0cnR5cGU+DQogICAgICAgIDxhdHR3aWR0aCBTeW5jPSJUUlVFIj4xMjA8L2F0 +dHdpZHRoPg0KICAgICAgICA8YXRwcmVjaXMgU3luYz0iVFJVRSI+MDwvYXRwcmVjaXM+DQogICAg +ICAgIDxhdHRzY2FsZSBTeW5jPSJUUlVFIj4wPC9hdHRzY2FsZT4NCiAgICAgIDwvYXR0cj4NCiAg +ICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmwgU3luYz0iVFJVRSI+U3RhdGVzPC9hdHRybGFi +bD4NCiAgICAgICAgPGF0dGFsaWFzIFN5bmM9IlRSVUUiPlN0YXRlczwvYXR0YWxpYXM+DQogICAg +ICAgIDxhdHRydHlwZSBTeW5jPSJUUlVFIj5TdHJpbmc8L2F0dHJ0eXBlPg0KICAgICAgICA8YXR0 +d2lkdGggU3luYz0iVFJVRSI+NTA8L2F0dHdpZHRoPg0KICAgICAgICA8YXRwcmVjaXMgU3luYz0i +VFJVRSI+MDwvYXRwcmVjaXM+DQogICAgICAgIDxhdHRzY2FsZSBTeW5jPSJUUlVFIj4wPC9hdHRz +Y2FsZT4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmwgU3lu +Yz0iVFJVRSI+SFVDODwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRhbGlhcyBTeW5jPSJUUlVFIj5I +VUM4PC9hdHRhbGlhcz4NCiAgICAgICAgPGF0dHJ0eXBlIFN5bmM9IlRSVUUiPlN0cmluZzwvYXR0 +cnR5cGU+DQogICAgICAgIDxhdHR3aWR0aCBTeW5jPSJUUlVFIj44PC9hdHR3aWR0aD4NCiAgICAg +ICAgPGF0cHJlY2lzIFN5bmM9IlRSVUUiPjA8L2F0cHJlY2lzPg0KICAgICAgICA8YXR0c2NhbGUg +U3luYz0iVFJVRSI+MDwvYXR0c2NhbGU+DQogICAgICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAg +ICAgICAgPGF0dHJsYWJsIFN5bmM9IlRSVUUiPlNoYXBlX0xlbmd0aDwvYXR0cmxhYmw+DQogICAg +ICAgIDxhdHRhbGlhcyBTeW5jPSJUUlVFIj5TSEFQRV9MRU5HVEg8L2F0dGFsaWFzPg0KICAgICAg +ICA8YXR0cnR5cGUgU3luYz0iVFJVRSI+RG91YmxlPC9hdHRydHlwZT4NCiAgICAgICAgPGF0dHdp +ZHRoIFN5bmM9IlRSVUUiPjg8L2F0dHdpZHRoPg0KICAgICAgICA8YXRwcmVjaXMgU3luYz0iVFJV +RSI+MDwvYXRwcmVjaXM+DQogICAgICAgIDxhdHRzY2FsZSBTeW5jPSJUUlVFIj4wPC9hdHRzY2Fs +ZT4NCiAgICAgICAgPGF0dHJkZWYgU3luYz0iVFJVRSI+TGVuZ3RoIG9mIGZlYXR1cmUgaW4gaW50 +ZXJuYWwgdW5pdHMuPC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRlZnMgU3luYz0iVFJVRSI+RXNy +aTwvYXR0cmRlZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8dWRvbSBTeW5jPSJU +UlVFIj5Qb3NpdGl2ZSByZWFsIG51bWJlcnMgdGhhdCBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0 +ZWQuPC91ZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0KICAgICAgPGF0 +dHI+DQogICAgICAgIDxhdHRybGFibCBTeW5jPSJUUlVFIj5TaGFwZV9BcmVhPC9hdHRybGFibD4N +CiAgICAgICAgPGF0dGFsaWFzIFN5bmM9IlRSVUUiPlNIQVBFX0FSRUE8L2F0dGFsaWFzPg0KICAg +ICAgICA8YXR0cnR5cGUgU3luYz0iVFJVRSI+RG91YmxlPC9hdHRydHlwZT4NCiAgICAgICAgPGF0 +dHdpZHRoIFN5bmM9IlRSVUUiPjg8L2F0dHdpZHRoPg0KICAgICAgICA8YXRwcmVjaXMgU3luYz0i +VFJVRSI+MDwvYXRwcmVjaXM+DQogICAgICAgIDxhdHRzY2FsZSBTeW5jPSJUUlVFIj4wPC9hdHRz +Y2FsZT4NCiAgICAgICAgPGF0dHJkZWYgU3luYz0iVFJVRSI+QXJlYSBvZiBmZWF0dXJlIGluIGlu +dGVybmFsIHVuaXRzIHNxdWFyZWQuPC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRlZnMgU3luYz0i +VFJVRSI+RXNyaTwvYXR0cmRlZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8dWRv +bSBTeW5jPSJUUlVFIj5Qb3NpdGl2ZSByZWFsIG51bWJlcnMgdGhhdCBhcmUgYXV0b21hdGljYWxs +eSBnZW5lcmF0ZWQuPC91ZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0K +ICAgIDwvZGV0YWlsZWQ+DQogICAgPGRldGFpbGVkPg0KICAgICAgPGVudHR5cD4NCiAgICAgICAg +PGVudHR5cGw+V0JESFU0PC9lbnR0eXBsPg0KICAgICAgICA8ZW50dHlwZD5Qb2x5Z29uIGZlYXR1 +cmUgY2xhc3MgcmVwcmVzZW50aW5nIHRoZSA0LWRpZ2l0IGh5ZHJvbG9naWMgdW5pdCBib3VuZGFy +aWVzIChwcmV2aW91c2x5IHJlZmVycmVkIHRvIGFzIFN1YnJlZ2lvbnMpIHRoYXQgYXJlIHBhcnQg +b2YgdGhlIFdCRCBkZWxpdmVyeS48L2VudHR5cGQ+DQogICAgICAgIDxlbnR0eXBkcz5GZWRlcmFs +IFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3Vu +ZGFyeSBEYXRhc2V0PC9lbnR0eXBkcz4NCiAgICAgIDwvZW50dHlwPg0KICAgICAgPGF0dHI+DQog +ICAgICAgIDxhdHRybGFibD5IVUM0PC9hdHRybGFibD4NCiAgICAgICAgPGF0dHJkZWY+VGhlIEhV +QzQgZmllbGQgaXMgYSB1bmlxdWUgNC1kaWdpdCBoeWRyb2xvZ2ljIHVuaXQgY29kZS48L2F0dHJk +ZWY+DQogICAgICAgIDxhdHRyZGVmcz5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBm +b3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0IChXQkQpPC9hdHRyZGVm +cz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDxjb2Rlc2V0ZD4NCiAgICAgICAgICAg +IDxjb2Rlc2V0bj5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlv +bmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0IChXQkQpPC9jb2Rlc2V0bj4NCiAgICAgICAg +ICAgIDxjb2Rlc2V0cz5TZWN0aW9uIDY6IEdlb3NwYXRpYWwgRGF0YSBTdHJ1Y3R1cmUgYW5kIEF0 +dHJpYnV0ZXMgaHR0cDovL3B1YnMudXNncy5nb3YvdG0vMTEvYTMvKTwvY29kZXNldHM+DQogICAg +ICAgICAgPC9jb2Rlc2V0ZD4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAg +ICA8L2RldGFpbGVkPg0KICAgIDxkZXRhaWxlZD4NCiAgICAgIDxlbnR0eXA+DQogICAgICAgIDxl +bnR0eXBsPldCREhVNjwvZW50dHlwbD4NCiAgICAgICAgPGVudHR5cGQ+UG9seWdvbiBmZWF0dXJl +IGNsYXNzIHJlcHJlc2VudGluZyB0aGUgNi1kaWdpdCBoeWRyb2xvZ2ljIHVuaXQgYm91bmRhcmll +cyAocHJldmlvdXNseSByZWZlcnJlZCB0byBhcyBCYXNpbnMpIGFuZCBhcmUgcGFydCBvZiB0aGUg +V0JEIGRlbGl2ZXJ5LjwvZW50dHlwZD4NCiAgICAgICAgPGVudHR5cGRzPkZlZGVyYWwgU3RhbmRh +cmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERh +dGFzZXQ8L2VudHR5cGRzPg0KICAgICAgPC9lbnR0eXA+DQogICAgICA8YXR0cj4NCiAgICAgICAg +PGF0dHJsYWJsPkhVQzY8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5UaGUgSFVDNiBmaWVs +ZCBpcyBhIHVuaXF1ZSA2LWRpZ2l0IGh5ZHJvbG9naWMgdW5pdCBjb2RlLjwvYXR0cmRlZj4NCiAg +ICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUg +TmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2F0dHJkZWZzPg0KICAg +ICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPGNvZGVzZXRkPg0KICAgICAgICAgICAgPGNvZGVz +ZXRuPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0 +ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2NvZGVzZXRuPg0KICAgICAgICAgICAgPGNv +ZGVzZXRzPlNlY3Rpb24gNjogR2Vvc3BhdGlhbCBEYXRhIFN0cnVjdHVyZSBhbmQgQXR0cmlidXRl +cyAoaHR0cDovL3B1YnMudXNncy5nb3YvdG0vMTEvYTMvKTwvY29kZXNldHM+DQogICAgICAgICAg +PC9jb2Rlc2V0ZD4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICA8L2Rl +dGFpbGVkPg0KICAgIDxkZXRhaWxlZD4NCiAgICAgIDxlbnR0eXA+DQogICAgICAgIDxlbnR0eXBs +PldCREhVODwvZW50dHlwbD4NCiAgICAgICAgPGVudHR5cGQ+UG9seWdvbiBmZWF0dXJlIGNsYXNz +IHJlcHJlc2VudGluZyB0aGUgOC1kaWdpdCBoeWRyb2xvZ2ljIHVuaXQgYm91bmRhcmllcyAocHJl +dmlvdXNseSByZWZlcnJlZCB0byBhcyBTdWJiYXNpbnMpIGFuZCBhcmUgcGFydCBvZiB0aGUgV0JE +IGRlbGl2ZXJ5LjwvZW50dHlwZD4NCiAgICAgICAgPGVudHR5cGRzPkZlZGVyYWwgU3RhbmRhcmRz +IGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFz +ZXQ8L2VudHR5cGRzPg0KICAgICAgPC9lbnR0eXA+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0 +dHJsYWJsPkhVQzg8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5UaGUgSFVDOCBmaWVsZCBp +cyBhIHVuaXF1ZSA4LWRpZ2l0IGh5ZHJvbG9naWMgdW5pdCBjb2RlLjwvYXR0cmRlZj4NCiAgICAg +ICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0 +aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2F0dHJkZWZzPg0KICAgICAg +ICA8YXR0cmRvbXY+DQogICAgICAgICAgPGNvZGVzZXRkPg0KICAgICAgICAgICAgPGNvZGVzZXRu +PkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJz +aGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2NvZGVzZXRuPg0KICAgICAgICAgICAgPGNvZGVz +ZXRzPlNlY3Rpb24gNjogR2Vvc3BhdGlhbCBEYXRhIFN0cnVjdHVyZSBhbmQgQXR0cmlidXRlcyBo +dHRwOi8vcHVicy51c2dzLmdvdi90bS8xMS9hMy8pPC9jb2Rlc2V0cz4NCiAgICAgICAgICA8L2Nv +ZGVzZXRkPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0KICAgIDwvZGV0YWls +ZWQ+DQogICAgPGRldGFpbGVkPg0KICAgICAgPGVudHR5cD4NCiAgICAgICAgPGVudHR5cGw+V0JE +SFUxMDwvZW50dHlwbD4NCiAgICAgICAgPGVudHR5cGQ+UG9seWdvbiBmZWF0dXJlIGNsYXNzIHJl +cHJlc2VudGluZyB0aGUgMTAtZGlnaXQgaHlkcm9sb2dpYyB1bml0IGJvdW5kYXJpZXMgKHByZXZp +b3VzbHkgcmVmZXJyZWQgdG8gYXMgV2F0ZXJzaGVkcykuPC9lbnR0eXBkPg0KICAgICAgICA8ZW50 +dHlwZHM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBX +YXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldDwvZW50dHlwZHM+DQogICAgICA8L2VudHR5cD4NCiAg +ICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmw+SFVDMTA8L2F0dHJsYWJsPg0KICAgICAgICA8 +YXR0cmRlZj5UaGUgSFVDMTAgZmllbGQgaXMgYSB1bmlxdWUgMTAtZGlnaXQgaHlkcm9sb2dpYyB1 +bml0IGNvZGUuPC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRlZnM+RmVkZXJhbCBTdGFuZGFyZHMg +YW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNl +dCAoV0JEKTwvYXR0cmRlZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8Y29kZXNl +dGQ+DQogICAgICAgICAgICA8Y29kZXNldG4+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVy +ZXMgZm9yIHRoZSBOYXRpb25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvY29k +ZXNldG4+DQogICAgICAgICAgICA8Y29kZXNldHM+UHJvdmlkZSBDb2Rlc2V0IERlZmluaXRpb24g +UmVmZXJlbmNlIChDaXRhdGF0aW9uL1VSTCk8L2NvZGVzZXRzPg0KICAgICAgICAgIDwvY29kZXNl +dGQ+DQogICAgICAgIDwvYXR0cmRvbXY+DQogICAgICA8L2F0dHI+DQogICAgPC9kZXRhaWxlZD4N +CiAgICA8ZGV0YWlsZWQ+DQogICAgICA8ZW50dHlwPg0KICAgICAgICA8ZW50dHlwbD5XQkRIVTEy +PC9lbnR0eXBsPg0KICAgICAgICA8ZW50dHlwZD5Qb2x5Z29uIGZlYXR1cmUgY2xhc3MgcmVwcmVz +ZW50aW5nIHRoZSAxMi1kaWdpdCBoeWRyb2xvZ2ljIHVuaXQgYm91bmRhcmllcyAocHJldmlvdXNs +eSByZWZlcnJlZCB0byBhcyBTdWJ3YXRlcnNoZWRzKS48L2VudHR5cGQ+DQogICAgICAgIDxlbnR0 +eXBkcz5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdh +dGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0PC9lbnR0eXBkcz4NCiAgICAgIDwvZW50dHlwPg0KICAg +ICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5IVUMxMjwvYXR0cmxhYmw+DQogICAgICAgIDxh +dHRyZGVmPlRoZSBIVUMxMiBmaWVsZCBpcyBhIHVuaXF1ZSAxMi1kaWdpdCBoeWRyb2xvZ2ljIHVu +aXQgY29kZS48L2F0dHJkZWY+DQogICAgICAgIDxhdHRyZGVmcz5GZWRlcmFsIFN0YW5kYXJkcyBh +bmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0 +IChXQkQpPC9hdHRyZGVmcz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDxjb2Rlc2V0 +ZD4NCiAgICAgICAgICAgIDxjb2Rlc2V0bj5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJl +cyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0IChXQkQpPC9jb2Rl +c2V0bj4NCiAgICAgICAgICAgIDxjb2Rlc2V0cz5TZWN0aW9uIDY6IEdlb3NwYXRpYWwgRGF0YSBT +dHJ1Y3R1cmUgYW5kIEF0dHJpYnV0ZXMgKGh0dHA6Ly9wdWJzLnVzZ3MuZ292L3RtLzExL2EzLyk8 +L2NvZGVzZXRzPg0KICAgICAgICAgIDwvY29kZXNldGQ+DQogICAgICAgIDwvYXR0cmRvbXY+DQog +ICAgICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsPlRvSFVDPC9hdHRy +bGFibD4NCiAgICAgICAgPGF0dHJkZWY+VGhlIDEyLWRpZ2l0IGh5ZHJvbG9naWMgdW5pdCBUb0hV +QyBjb2RlIGF0dHJpYnV0ZSBpcyB0aGUgY29kZSBmb3IgdGhlIDEyLWRpZ2l0IGh5ZHJvbG9naWMg +dW5pdCB0aGF0IGlzIGRvd25zdHJlYW0gZnJvbSBhbmQgbmF0dXJhbGx5IHJlY2VpdmVzIA0KCXRo +ZSBtYWpvcml0eSBvZiB0aGUgZmxvdyBmcm9tIGFub3RoZXIgMTItZGlnaXQgaHlkcm9sb2dpYyB1 +bml0LjwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQ +cm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdC +RCk8L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPGNvZGVzZXRkPg0K +ICAgICAgICAgICAgPGNvZGVzZXRuPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZv +ciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2NvZGVzZXRu +Pg0KICAgICAgICAgICAgPGNvZGVzZXRzPlNlY3Rpb24gNjogR2Vvc3BhdGlhbCBEYXRhIFN0cnVj +dHVyZSBhbmQgQXR0cmlidXRlcyAoaHR0cDovL3B1YnMudXNncy5nb3YvdG0vMTEvYTMvKTwvY29k +ZXNldHM+DQogICAgICAgICAgPC9jb2Rlc2V0ZD4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAg +IDwvYXR0cj4NCiAgICA8L2RldGFpbGVkPg0KICAgIDxkZXRhaWxlZD4NCiAgICAgIDxlbnR0eXA+ +DQogICAgICAgIDxlbnR0eXBsPldCREhVMTQ8L2VudHR5cGw+DQogICAgICAgIDxlbnR0eXBkPlBv +bHlnb24gZmVhdHVyZSBjbGFzcyByZXByZXNlbnRpbmcgdGhlIDE0LWRpZ2l0IGh5ZHJvbG9naWMg +dW5pdCBib3VuZGFyaWVzLjwvZW50dHlwZD4NCiAgICAgICAgPGVudHR5cGRzPkZlZGVyYWwgU3Rh +bmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5 +IERhdGFzZXQ8L2VudHR5cGRzPg0KICAgICAgPC9lbnR0eXA+DQogICAgICA8YXR0cj4NCiAgICAg +ICAgPGF0dHJsYWJsPkhVQzE0PC9hdHRybGFibD4NCiAgICAgICAgPGF0dHJkZWY+VGhlIEhVQzE0 +IGZpZWxkIGlzIGEgdW5pcXVlIDE0LWRpZ2l0IGh5ZHJvbG9naWMgdW5pdCBjb2RlLjwvYXR0cmRl +Zj4NCiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZv +ciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2F0dHJkZWZz +Pg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPGNvZGVzZXRkPg0KICAgICAgICAgICAg +PGNvZGVzZXRuPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9u +YWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2NvZGVzZXRuPg0KICAgICAgICAg +ICAgPGNvZGVzZXRzPlNlY3Rpb24gNjogR2Vvc3BhdGlhbCBEYXRhIFN0cnVjdHVyZSBhbmQgQXR0 +cmlidXRlcyAoaHR0cDovL3B1YnMudXNncy5nb3YvdG0vMTEvYTMvKTwvY29kZXNldHM+DQogICAg +ICAgICAgPC9jb2Rlc2V0ZD4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAg +ICA8L2RldGFpbGVkPg0KICAgIDxkZXRhaWxlZD4NCiAgICAgIDxlbnR0eXA+DQogICAgICAgIDxl +bnR0eXBsPldCREhVMTY8L2VudHR5cGw+DQogICAgICAgIDxlbnR0eXBkPlBvbHlnb24gZmVhdHVy +ZSBjbGFzcyByZXByZXNlbnRpbmcgdGhlIDE2LWRpZ2l0IGh5ZHJvbG9naWMgdW5pdCBib3VuZGFy +aWVzLjwvZW50dHlwZD4NCiAgICAgICAgPGVudHR5cGRzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQ +cm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQ8L2Vu +dHR5cGRzPg0KICAgICAgPC9lbnR0eXA+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJs +PkhVQzE2PC9hdHRybGFibD4NCiAgICAgICAgPGF0dHJkZWY+VGhlIEhVQzE2IGZpZWxkIGlzIGEg +dW5pcXVlIDE2LWRpZ2l0IGh5ZHJvbG9naWMgdW5pdCBjb2RlLjwvYXR0cmRlZj4NCiAgICAgICAg +PGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9u +YWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2F0dHJkZWZzPg0KICAgICAgICA8 +YXR0cmRvbXY+DQogICAgICAgICAgPGNvZGVzZXRkPg0KICAgICAgICAgICAgPGNvZGVzZXRuPkZl +ZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVk +IEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2NvZGVzZXRuPg0KICAgICAgICAgICAgPGNvZGVzZXRz +PlNlY3Rpb24gNjogR2Vvc3BhdGlhbCBEYXRhIFN0cnVjdHVyZSBhbmQgQXR0cmlidXRlcyBodHRw +Oi8vcHVicy51c2dzLmdvdi90bS8xMS9hMy8pPC9jb2Rlc2V0cz4NCiAgICAgICAgICA8L2NvZGVz +ZXRkPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0KICAgIDwvZGV0YWlsZWQ+ +DQogICAgPGRldGFpbGVkPg0KICAgICAgPGVudHR5cD4NCiAgICAgICAgPGVudHR5cGw+V0JETGlu +ZTwvZW50dHlwbD4NCiAgICAgICAgPGVudHR5cGQ+TGluZSBmZWF0dXJlIGNsYXNzIGRlZmluaW5n +IHRoZSBoeWRyb2xvZ2ljIHVuaXQgYm91bmRhcmllczwvZW50dHlwZD4NCiAgICAgICAgPGVudHR5 +cGRzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0 +ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQ8L2VudHR5cGRzPg0KICAgICAgPC9lbnR0eXA+DQogICAg +ICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsPkhVRGlnaXQ8L2F0dHJsYWJsPg0KICAgICAgICA8 +YXR0cmRlZj5IVURpZ2l0IGlzIGEgZG9tYWluLWJhc2VkIGZpZWxkIHRoYXQgaW5kaWNhdGVzIHRo +ZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgdXNlZCB0byByZXByZXNlbnQgdGhlIGh5ZHJvbG9n +aWMgdW5pdCBib3VuZGVkIGJ5IHRoZSBsaW5lLjwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZz +PkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJz +aGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+ +DQogICAgICAgICAgPGNvZGVzZXRkPg0KICAgICAgICAgICAgPGNvZGVzZXRuPkZlZGVyYWwgU3Rh +bmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5 +IERhdGFzZXQgKFdCRCk8L2NvZGVzZXRuPg0KICAgICAgICAgICAgPGNvZGVzZXRzPlNlY3Rpb24g +NjogR2Vvc3BhdGlhbCBEYXRhIFN0cnVjdHVyZSBhbmQgQXR0cmlidXRlcyAoaHR0cDovL3B1YnMu +dXNncy5nb3YvdG0vMTEvYTMvKTwvY29kZXNldHM+DQogICAgICAgICAgPC9jb2Rlc2V0ZD4NCiAg +ICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8 +YXR0cmxhYmw+SFVNb2Q8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5Ud28tY2hhcmFjdGVy +LCB1cHBlcmNhc2UgYWJicmV2aWF0aW9uIHVzZWQgdG8gdHJhY2sgZWl0aGVyIGEgbW9kaWZpY2F0 +aW9uIHRvIG5hdHVyYWwgb3ZlcmxhbmQgZmxvdyB0aGF0IGFsdGVycyB0aGUgbG9jYXRpb24gb2Yg +dGhlIGh5ZHJvbG9naWMgdW5pdCBib3VuZGFyeSBvciBzcGVjaWFsIGNvbmRpdGlvbnMgdGhhdCBh +cmUgYXBwbGllZCB0byBhIHNwZWNpZmljIGJvdW5kYXJ5IGxpbmUgc2VnbWVudC4gVGhlIHZhbHVl +IGlkZW50aWZpZXMgdGhlIHR5cGUgb2YgbW9kaWZpY2F0aW9uLCBmcm9tIHRoZSBsaXN0IHByb3Zp +ZGVkLCB0aGF0IGhhcyBiZWVuIGFwcGxpZWQgdG8gdGhlIGJvdW5kYXJ5IHNlZ21lbnQuIElmIG1v +cmUgdGhhbiBvbmUgYWJicmV2aWF0aW9uIGlzIHVzZWQsIHRoZSBsaXN0IGlzIHNlcGFyYXRlZCBi +eSBjb21tYXMgd2l0aG91dCBzcGFjZXMgYW5kIG9yZ2FuaXplZCBmcm9tIG1vc3QgdG8gbGVhc3Qg +cHJlZG9taW5hbnQuDQo8L2F0dHJkZWY+DQogICAgICAgIDxhdHRyZGVmcz5GZWRlcmFsIFN0YW5k +YXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBE +YXRhc2V0IChXQkQpPC9hdHRyZGVmcz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDxj +b2Rlc2V0ZD4NCiAgICAgICAgICAgIDxjb2Rlc2V0bj5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJv +Y2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0IChXQkQp +PC9jb2Rlc2V0bj4NCiAgICAgICAgICAgIDxjb2Rlc2V0cz5TZWN0aW9uIDY6IEdlb3NwYXRpYWwg +RGF0YSBTdHJ1Y3R1cmUgYW5kIEF0dHJpYnV0ZXMgKGh0dHA6Ly9wdWJzLnVzZ3MuZ292L3RtLzEx +L2EzLyk8L2NvZGVzZXRzPg0KICAgICAgICAgIDwvY29kZXNldGQ+DQogICAgICAgIDwvYXR0cmRv +bXY+DQogICAgICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsPkxpbmVT +b3VyY2U8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5MaW5lU291cmNlIHJlcHJlc2VudHMg +dGhlIGNvZGUgZm9yIHRoZSBiYXNlIGRhdGEgdXNlZCBmb3IgZGVsaW5lYXRpbmcgaHlkcm9sb2dp +YyB1bml0IGJvdW5kYXJpZXMuDQoJSWYgbW9yZSB0aGFuIG9uZSBjb2RlIGlzIHVzZWQsdGhlbiB0 +aGUgbGlzdCBpcyBzZXBhcmF0ZWQgYnkgYSBjb21tYSB3aXRoIG5vIHNwYWNlcyB3aXRoIHRoZSBt +b3N0IHJlY2VudCBMaW5lU291cmNlIGxpc3RlZCBmaXJzdCBpbiB0aGUgc2VxdWVuY2UuPC9hdHRy +ZGVmPg0KICAgICAgICA8YXR0cmRlZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMg +Zm9yIHRoZSBOYXRpb25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvYXR0cmRl +ZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8Y29kZXNldGQ+DQogICAgICAgICAg +ICA8Y29kZXNldG4+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRp +b25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvY29kZXNldG4+DQogICAgICAg +ICAgICA8Y29kZXNldHM+U2VjdGlvbiA2OiBHZW9zcGF0aWFsIERhdGEgU3RydWN0dXJlIGFuZCBB +dHRyaWJ1dGVzIChodHRwOi8vcHVicy51c2dzLmdvdi90bS8xMS9hMy8pPC9jb2Rlc2V0cz4NCiAg +ICAgICAgICA8L2NvZGVzZXRkPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0K +ICAgIDwvZGV0YWlsZWQ+DQogICAgPGRldGFpbGVkPg0KICAgICAgPGVudHR5cD4NCiAgICAgICAg +PGVudHR5cGw+TldJU0RyYWluYWdlQXJlYTwvZW50dHlwbD4NCiAgICAgICAgPGVudHR5cGQ+UG9s +eWdvbiBmZWF0dXJlcyByZXByZXNlbnRpbmcgUFJPVklTSU9OQUwgY29udHJpYnV0aW5nIGRyYWlu +YWdlIGFyZWEgZm9yIHNlbGVjdCBnYWdlIGxvY2F0aW9ucyBpbiB0aGUgVS5TLiBHZW9sb2dpY2Fs +IFN1cnZleSBOYXRpb25hbCBXYXRlciBJbmZvcm1hdGlvbiBTeXN0ZW0NCjwvZW50dHlwZD4NCiAg +ICAgICAgPGVudHR5cGRzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUg +TmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQ8L2VudHR5cGRzPg0KICAgICAgPC9l +bnR0eXA+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsPkFyZWFTcUttPC9hdHRybGFi +bD4NCiAgICAgICAgPGF0dHJkZWY+QXJlYSBvZiB0aGUgZ2FnZWQgd2F0ZXJzaGVkPC9hdHRyZGVm +Pg0KICAgICAgICA8YXR0cmRlZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9y +IHRoZSBOYXRpb25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvYXR0cmRlZnM+ +DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8dWRvbT5DYWxjdWxhdGVkIHBvbHlnb24g +YXJlYSwgc3F1YXJlIGtpbG9tZXRlcnM8L3Vkb20+DQogICAgICAgIDwvYXR0cmRvbXY+DQogICAg +ICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsPkFnZW5jeUNvZGU8L2F0 +dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5TaXRlIEFnZW5jeSBjb2RlPC9hdHRyZGVmPg0KICAg +ICAgICA8YXR0cmRlZnM+VS5TLiBHZW9sb2dpY2FsIFN1cnZleSBOYXRpb25hbCBXYXRlciBJbmZv +cm1hdGlvbiBTeXN0ZW08L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAg +PGNvZGVzZXRkPg0KICAgICAgICAgICAgPGNvZGVzZXRuPlUuUy4gR2VvbG9naWNhbCBTdXJ2ZXkg +TmF0aW9uYWwgV2F0ZXIgSW5mb3JtYXRpb24gU3lzdGVtPC9jb2Rlc2V0bj4NCiAgICAgICAgICAg +IDxjb2Rlc2V0cz4gaHR0cDovL2hlbHAud2F0ZXJkYXRhLnVzZ3MuZ292LzwvY29kZXNldHM+DQog +ICAgICAgICAgPC9jb2Rlc2V0ZD4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4N +CiAgICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmw+U2l0ZU51bWJlcjwvYXR0cmxhYmw+DQog +ICAgICAgIDxhdHRyZGVmPlUuUy4gR2VvbG9naWNhbCBTdXJ2ZXkgdW5pcXVlIHNpdGUgaWRlbnRp +ZmllcjwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPlUuUy4gR2VvbG9naWNhbCBTdXJ2ZXkg +TmF0aW9uYWwgV2F0ZXIgSW5mb3JtYXRpb24gU3lzdGVtPC9hdHRyZGVmcz4NCiAgICAgICAgPGF0 +dHJkb212Pg0KICAgICAgICAgIDx1ZG9tPlVuaXF1ZSBjb2RlIGlkZW50aWZ5aW5nIGEgbWVhc3Vy +ZW1lbnQgc2l0ZSBpbiB0aGUgTmF0aW9uYWwgV2F0ZXIgSW5mb3JtYXRpb24gU3lzdGVtIGRhdGFi +YXNlPC91ZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0KICAgICAgPGF0 +dHI+DQogICAgICAgIDxhdHRybGFibD5TdGF0aW9uTmFtZTwvYXR0cmxhYmw+DQogICAgICAgIDxh +dHRyZGVmPlNpdGUgTmFtZTwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPlUuUy4gR2VvbG9n +aWNhbCBTdXJ2ZXkgTmF0aW9uYWwgV2F0ZXIgSW5mb3JtYXRpb24gU3lzdGVtPC9hdHRyZGVmcz4N +CiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDx1ZG9tPkNvbW1vbiBuYW1lIGFzc29jaWF0 +ZWQgd2l0aCBzaXRlIGluIHRoZSBOYXRpb25hbCBXYXRlciBJbmZvcm1hdGlvbiBTeXN0ZW0gZGF0 +YWJhc2U8L3Vkb20+DQogICAgICAgIDwvYXR0cmRvbXY+DQogICAgICA8L2F0dHI+DQogICAgICA8 +YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsPlRvdGFsQXJlYVNxTWk8L2F0dHJsYWJsPg0KICAgICAg +ICA8YXR0cmRlZj5Ub3RhbCBkcmFpbmFnZSBhcmVhPC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRl +ZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBXYXRl +cnNoZWQgQm91bmRhcnkgRGF0YXNldDwvYXR0cmRlZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAg +ICAgICAgICA8dWRvbT5Ub3RhbCBhcmVhIG9mIHRoZSBwb2x5Z29uLCBzcXVhcmUgbWlsZXM8L3Vk +b20+DQogICAgICAgIDwvYXR0cmRvbXY+DQogICAgICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAg +ICAgICAgPGF0dHJsYWJsPk5XSVNUb3RhbEFyZWFTcU1pPC9hdHRybGFibD4NCiAgICAgICAgPGF0 +dHJkZWY+VG90YWwgZHJhaW5hZ2UgYXJlYSByZXBvcnRlZCBpbiBVLlMuIEdlb2xvZ2ljYWwgU3Vy +dmV5IE5hdGlvbmFsIFdhdGVyIEluZm9ybWF0aW9uIFN5c3RlbTwvYXR0cmRlZj4NCiAgICAgICAg +PGF0dHJkZWZzPlUuUy4gR2VvbG9naWNhbCBTdXJ2ZXkgTmF0aW9uYWwgV2F0ZXIgSW5mb3JtYXRp +b24gU3lzdGVtPC9hdHRyZGVmcz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDx1ZG9t +PlRvdGFsIGFyZWEgaW4gc3F1YXJlIG1pbGVzPC91ZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0K +ICAgICAgPC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5Db250cmlidXRp +bmdBcmVhU3FNaTwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRyZGVmPlRvdGFsIGNvbnRyaWJ1dGlu +ZyBkcmFpbmFnZSBhcmVhLCBzcXVhcmUgbWlsZXM8L2F0dHJkZWY+DQogICAgICAgIDxhdHRyZGVm +cz5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVy +c2hlZCBCb3VuZGFyeSBEYXRhc2V0PC9hdHRyZGVmcz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAg +ICAgICAgIDx1ZG9tPlRvdGFsIGNvbnRyaWJ1dGluZyBhcmVhLCBzcXVhcmUgbWlsZXM8L3Vkb20+ +DQogICAgICAgIDwvYXR0cmRvbXY+DQogICAgICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAgICAg +ICAgPGF0dHJsYWJsPk5XSVNDb250cmlidXRpbmdBcmVhU3FNaTwvYXR0cmxhYmw+DQogICAgICAg +IDxhdHRyZGVmPkNvbnRyaWJ1dGluZyBkcmFpbmFnZSBhcmVhIHJlcG9ydGVkIGluIFUuUy4gR2Vv +bG9naWNhbCBTdXJ2ZXkgTmF0aW9uYWwgV2F0ZXIgSW5mb3JtYXRpb24gU3lzdGVtPC9hdHRyZGVm +Pg0KICAgICAgICA8YXR0cmRlZnM+VS5TLiBHZW9sb2dpY2FsIFN1cnZleSBOYXRpb25hbCBXYXRl +ciBJbmZvcm1hdGlvbiBTeXN0ZW08L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAg +ICAgICAgPHVkb20+VG90YWwgY29udHJpYnV0aW5nIGFyZWEsIHNxdWFyZSBtaWxlczwvdWRvbT4N +CiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAg +ICA8YXR0cmxhYmw+UmVmZXJlbmNlVE5NSUROSERQb2ludEV2ZW50PC9hdHRybGFibD4NCiAgICAg +ICAgPGF0dHJkZWY+VW5pcXVlIGlkZW50aWZpZXIgZm9yIE5IRCBwb2ludCBldmVudCByZXByZXNl +bnRpbmcgZ2FnZTwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRz +IGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFz +ZXQ8L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPHVkb20+VW5pcXVl +IGlkZW50aWZpZXIgdGhhdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZDwvdWRvbT4NCiAgICAg +ICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8YXR0 +cmxhYmw+UmVtYXJrczwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRyZGVmPlJlbWFya3M8L2F0dHJk +ZWY+DQogICAgICAgIDxhdHRyZGVmcz5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBm +b3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0PC9hdHRyZGVmcz4NCiAg +ICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDx1ZG9tPkZyZWUgdGV4dCBob2xkaW5nIHJlbWFy +a3MgZnJvbSByZXZpZXdlcnMgYW5kL29yIGRhdGFzZXQgb3JpZ2luYXRvcjwvdWRvbT4NCiAgICAg +ICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICA8L2RldGFpbGVkPg0KICAgIDxkZXRh +aWxlZD4NCiAgICAgIDxlbnR0eXA+DQogICAgICAgIDxlbnR0eXBsPk5XSVNEcmFpbmFnZUxpbmU8 +L2VudHR5cGw+DQogICAgICAgIDxlbnR0eXBkPkxpbmUgZmVhdHVyZXMgcmVwcmVzZW50aW5nIHRo +ZSBib3VuZGFyeSBvZiB0aGUgY29udHJpYnV0aW5nIGdhZ2VkIGRyYWluYWdlIGFyZWE8L2VudHR5 +cGQ+DQogICAgICAgIDxlbnR0eXBkcz5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBm +b3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0PC9lbnR0eXBkcz4NCiAg +ICAgIDwvZW50dHlwPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5MZW5ndGhLbTwv +YXR0cmxhYmw+DQogICAgICAgIDxhdHRyZGVmPkxlbmd0aCBvZiB0aGUgbGluZTwvYXR0cmRlZj4N +CiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0 +aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQ8L2F0dHJkZWZzPg0KICAgICAg +ICA8YXR0cmRvbXY+DQogICAgICAgICAgPHVkb20+Q2FsY3VsYXRlZCBsaW5lIGxlbmd0aCwga2ls +b21ldGVyczwvdWRvbT4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAg +IDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmw+TGluZVNvdXJjZTwvYXR0cmxhYmw+DQogICAgICAg +IDxhdHRyZGVmPkNvZGUgaWRlbnRpZnlpbmcgdGhlIGJhc2UgZGF0YSB1c2VkIGZvciBkZWxpbmVh +dGluZyBoeWRyb2xvZ2ljIHVuaXQgYm91bmRhcmllczwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJk +ZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0 +ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQ8L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQog +ICAgICAgICAgPGNvZGVzZXRkPg0KICAgICAgICAgICAgPGNvZGVzZXRuPkZlZGVyYWwgU3RhbmRh +cmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERh +dGFzZXQgKFdCRCk8L2NvZGVzZXRuPg0KICAgICAgICAgICAgPGNvZGVzZXRzPlNlY3Rpb24gNjog +R2Vvc3BhdGlhbCBEYXRhIFN0cnVjdHVyZSBhbmQgQXR0cmlidXRlcyAoaHR0cDovL3B1YnMudXNn +cy5nb3YvdG0vMTEvYTMvKTwvY29kZXNldHM+DQogICAgICAgICAgPC9jb2Rlc2V0ZD4NCiAgICAg +ICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8YXR0 +cmxhYmw+QWdlbmN5Q29kZTwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRyZGVmPlNpdGUgQWdlbmN5 +IGNvZGU8L2F0dHJkZWY+DQogICAgICAgIDxhdHRyZGVmcz5VLlMuIEdlb2xvZ2ljYWwgU3VydmV5 +IE5hdGlvbmFsIFdhdGVyIEluZm9ybWF0aW9uIFN5c3RlbTwvYXR0cmRlZnM+DQogICAgICAgIDxh +dHRyZG9tdj4NCiAgICAgICAgICA8Y29kZXNldGQ+DQogICAgICAgICAgICA8Y29kZXNldG4+VS5T +LiBHZW9sb2dpY2FsIFN1cnZleSBOYXRpb25hbCBXYXRlciBJbmZvcm1hdGlvbiBTeXN0ZW08L2Nv +ZGVzZXRuPg0KICAgICAgICAgICAgPGNvZGVzZXRzPiBodHRwOi8vaGVscC53YXRlcmRhdGEudXNn +cy5nb3YvPC9jb2Rlc2V0cz4NCiAgICAgICAgICA8L2NvZGVzZXRkPg0KICAgICAgICA8L2F0dHJk +b212Pg0KICAgICAgPC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5TaXRl +TnVtYmVyPC9hdHRybGFibD4NCiAgICAgICAgPGF0dHJkZWY+VS5TLiBHZW9sb2dpY2FsIFN1cnZl +eSB1bmlxdWUgc2l0ZSBpZGVudGlmaWVyPC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRlZnM+VS5T +LiBHZW9sb2dpY2FsIFN1cnZleSBOYXRpb25hbCBXYXRlciBJbmZvcm1hdGlvbiBTeXN0ZW08L2F0 +dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPHVkb20+VW5pcXVlIGNvZGUg +aWRlbnRpZnlpbmcgYSBtZWFzdXJlbWVudCBzaXRlIGluIHRoZSBOYXRpb25hbCBXYXRlciBJbmZv +cm1hdGlvbiBTeXN0ZW0gZGF0YWJhc2U8L3Vkb20+DQogICAgICAgIDwvYXR0cmRvbXY+DQogICAg +ICA8L2F0dHI+DQogICAgPC9kZXRhaWxlZD4NCiAgICA8ZGV0YWlsZWQ+DQogICAgICA8ZW50dHlw +Pg0KICAgICAgICA8ZW50dHlwbD5XQkRMaW5lLCBXQkRIVTIsIFdCREhVNCwgV0JESFU2LCBXQkRI +VTgsIFdCREhVMTAsIFdCREhVMTIsIFdCREhVMTQsIFdCREhVMTYsIE5XSVNEcmFpbmFnZUFyZWEs +IE5XSVNEcmFpbmFnZUxpbmUsIE5vbkNvbnRyaWJ1dGluZ0RyYWluYWdlQXJlYSwgTm9uQ29udHJp +YnV0aW5nRHJhaW5hZ2VMaW5lPC9lbnR0eXBsPg0KICAgICAgICA8ZW50dHlwZD5UaGUgZm9sbG93 +aW5nIGF0dHJpYnV0ZSBmaWVsZHMgYXJlIGNvbW1vbiB0byBhbGwgZmVhdHVyZSBjbGFzc2VzIHdp +dGhpbiB0aGUgV0JEIDwvZW50dHlwZD4NCiAgICAgICAgPGVudHR5cGRzPkZlZGVyYWwgU3RhbmRh +cmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERh +dGFzZXQ8L2VudHR5cGRzPg0KICAgICAgPC9lbnR0eXA+DQogICAgICA8YXR0cj4NCiAgICAgICAg +PGF0dHJsYWJsPk9CSkVDVElEPC9hdHRybGFibD4NCiAgICAgICAgPGF0dHJkZWY+SW50ZXJuYWwg +ZmVhdHVyZSBudW1iZXIuPC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRlZnM+RVNSSTwvYXR0cmRl +ZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8dWRvbT5TZXF1ZW50aWFsIHVuaXF1 +ZSB3aG9sZSBudW1iZXJzIHRoYXQgYXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkLjwvdWRvbT4N +CiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAg +ICA8YXR0cmxhYmw+U2hhcGU8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5GZWF0dXJlIGdl +b21ldHJ5LjwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPkVTUkk8L2F0dHJkZWZzPg0KICAg +ICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPHVkb20+Q29vcmRpbmF0ZXMgZGVmaW5pbmcgdGhl +IGZlYXR1cmVzLjwvdWRvbT4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAg +ICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmw+VE5NSUQ8L2F0dHJsYWJsPg0KICAgICAgICA8 +YXR0cmRlZj5UTk1JRCAoc2hvcnQgZm9yIFRoZSBOYXRpb25hbCBNYXAgSWRlbnRpZmljYXRpb24p +IGlzIGEgdW5pcXVlIDQwLWNoYXJhY3RlciBmaWVsZCB0aGF0IGlkZW50aWZpZXMgZWFjaCBlbGVt +ZW50IGluIHRoZSBkYXRhYmFzZSBleGNsdXNpdmVseS48L2F0dHJkZWY+DQogICAgICAgIDxhdHRy +ZGVmcz5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdh +dGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0IChXQkQpPC9hdHRyZGVmcz4NCiAgICAgICAgPGF0dHJk +b212Pg0KICAgICAgICAgIDx1ZG9tPlROTUlEIGlzIGFuIGF1dG9tYXRpY2FsbHkgYXNzaWduZWQg +Y29kZSB0aGF0IHN0YXlzIHdpdGggZWFjaCBlbGVtZW50LiBXaGVuIGFuIGVsZW1lbnQgaXMgdXBk +YXRlZCBvciBjaGFuZ2VkLCBUTk1JRCBsaW5rcyB0aGUgZWxlbWVudCB0byB0aGUgbWV0YWRhdGEg +cmVjb3JkIGFuZCBkb2N1bWVudHMgdGhlIGNoYW5nZS4gVE5NSUQgaXMgYWxzbyB1c2VkIHRvIG1h +aW50YWluIHJlbGF0aW9uc2hpcCBjbGFzc2VzIGluIHRoZSBub3JtYWxpemVkIGRhdGEgbW9kZWwu +IFdoZW4gYW4gZWxlbWVudCBpcyBkZWxldGVkIG9yIHNwbGl0LCBUTk1JRCBzdGF5cyB3aXRoIHRo +ZSBvcmlnaW5hbCBlbGVtZW50IGFuZCBpcyBub3QgdXNlZCBhZ2Fpbi4gV2hlbiBhbiBlbGVtZW50 +IGlzIHNwbGl0LCBuZXcgcGVybWFuZW50IGlkZW50aWZpZXJzIGFyZSBhc3NpZ25lZCB0byB0aGUg +cmVzdWx0YW50IHBhcnRzLjwvdWRvbT4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0 +cj4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmw+TWV0YVNvdXJjZUlEPC9hdHRybGFi +bD4NCiAgICAgICAgPGF0dHJkZWY+TWV0YVNvdXJjZUlEIGlzIGEgdW5pcXVlIGlkZW50aWZpZXIg +dGhhdCBsaW5rcyB0aGUgZWxlbWVudCB0byB0aGUgbWV0YWRhdGEgdGFibGVzLjwvYXR0cmRlZj4N +CiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0 +aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2F0dHJkZWZzPg0K +ICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPHVkb20+TWV0YVNvdXJjZUlEIGlzIGEgdW5p +cXVlIGlkZW50aWZpZXIgdGhhdCBsaW5rcyB0aGUgZWxlbWVudCB0byB0aGUgbWV0YWRhdGEgdGFi +bGVzLiBUaGlzIElEIGlzIGdlbmVyYXRlZCBhbmQgYXNzaWduZWQgYXV0b21hdGljYWxseSBieSB0 +aGUgZGF0YWJhc2UgYW5kIHJlbWFpbnMgd2l0aCB0aGUgb2JqZWN0IHBlcm1hbmVudGx5LjwvdWRv +bT4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAg +ICAgICA8YXR0cmxhYmw+U291cmNlRGF0YURlc2M8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRl +Zj5Tb3VyY2VEYXRhRGVzYyBpcyBhIHNwYWNlIHByb3ZpZGVkIGZvciBhIGJyaWVmIGRlc2NyaXB0 +aW9uIG9mIHRoZSB0eXBlIG9mIGJhc2UgZGF0YSB1c2VkIHRvIHVwZGF0ZSBvciBjaGFuZ2UgdGhl +IGN1cnJlbnQgV0JELjwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRh +cmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERh +dGFzZXQgKFdCRCk8L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPHVk +b20+VGhlIFdCRCBJbi1TdGF0ZSBTdGV3YXJkIGNvbXBsZXRlcyB0aGlzIGZpZWxkIGFzIHBhcnQg +b2YgdGhlIG1ldGFkYXRhIGZvcm0uPC91ZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAg +PC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5Tb3VyY2VPcmlnaW5hdG9y +PC9hdHRybGFibD4NCiAgICAgICAgPGF0dHJkZWY+U291cmNlT3JpZ2luYXRvciBpcyB0aGUgZGVz +Y3JpcHRpb24gb2YgdGhlIGFnZW5jeSB0aGF0IGNyZWF0ZWQgdGhlIGJhc2UgZGF0YSB1c2VkIHRv +IGltcHJvdmUgdGhlIFdCRC48L2F0dHJkZWY+DQogICAgICAgIDxhdHRyZGVmcz5GZWRlcmFsIFN0 +YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFy +eSBEYXRhc2V0IChXQkQpPC9hdHRyZGVmcz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAg +IDx1ZG9tPlRoZSBXQkQgSW4tU3RhdGUgU3Rld2FyZCBjb21wbGV0ZXMgdGhpcyBmaWVsZCBhcyBw +YXJ0IG9mIHRoZSBtZXRhZGF0YSBmb3JtPC91ZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAg +ICAgPC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5Tb3VyY2VGZWF0dXJl +SUQ8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5Tb3VyY2VGZWF0dXJlSUQgaXMgYSBsb25n +LCB1bmlxdWUgY29kZS48L2F0dHJkZWY+DQogICAgICAgIDxhdHRyZGVmcz5GZWRlcmFsIFN0YW5k +YXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBE +YXRhc2V0IChXQkQpPC9hdHRyZGVmcz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDx1 +ZG9tPlRoaXMgY29kZSBpZGVudGlmaWVzIHRoZSBwYXJlbnQgb2YgdGhlIGZlYXR1cmUgaWYgdGhl +IGZlYXR1cmUgaXMgdGhlIHJlc3VsdCBvZiBhIHNwbGl0IG9yIG1lcmdlLCBhbmQgaXQgaXMgYXV0 +b21hdGljYWxseSBnZW5lcmF0ZWQgYW5kIGFzc2lnbmVkLjwvdWRvbT4NCiAgICAgICAgPC9hdHRy +ZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmw+TG9h +ZERhdGU8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5Mb2FkRGF0ZSByZXByZXNlbnRzIHRo +ZSBkYXRlIHdoZW4gdGhlIGRhdGEgd2VyZSBsb2FkZWQgaW50byB0aGUgb2ZmaWNpYWwgVVNHUyBX +QkQgQXJjU0RFIGRhdGFiYXNlLiBUaGUgZmllbGQgaXMgdGhlIGVmZmVjdGl2ZSBkYXRlIGZvciBh +bGwgZmVhdHVyZSBlZGl0cywgYW5kIGl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkLjwvYXR0 +cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVz +IGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2F0dHJk +ZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPHJkb20+DQogICAgICAgICAgICA8 +cmRvbW1pbj4xMjowMDowMCBBTTwvcmRvbW1pbj4NCiAgICAgICAgICAgIDxyZG9tbWF4PjUvMjIv +MjAxNSA5OjE4OjU0IEFNPC9yZG9tbWF4Pg0KICAgICAgICAgIDwvcmRvbT4NCiAgICAgICAgPC9h +dHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmw+ +U0hBUEVfTGVuZ3RoPC9hdHRybGFibD4NCiAgICAgICAgPGF0dHJkZWY+TGVuZ3RoIG9mIGZlYXR1 +cmUgaW4gaW50ZXJuYWwgdW5pdHMuPC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRlZnM+RXNyaTwv +YXR0cmRlZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8cmRvbT4NCiAgICAgICAg +ICAgIDxyZG9tbWluPjAuMDA5Njk2NjgxMzU2MjA0NDI8L3Jkb21taW4+DQogICAgICAgICAgICA8 +cmRvbW1heD4xNTYuMTA2Mzk0ODkzNTY0PC9yZG9tbWF4Pg0KICAgICAgICAgIDwvcmRvbT4NCiAg +ICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICA8L2RldGFpbGVkPg0KICAgIDxk +ZXRhaWxlZD4NCiAgICAgIDxlbnR0eXA+DQogICAgICAgIDxlbnR0eXBsPldCREhVMiwgV0JESFU0 +LCBXQkRIVTYsIFdCREhVOCwgV0JESFUxMCwgV0JESFUxMiwgV0JESFUxNCwgV0JESFUxNiwgTldJ +U0RyYWluYWdlQXJlYSwgTm9uQ29udHJpYnV0aW5nRHJhaW5hZ2VBcmVhPC9lbnR0eXBsPg0KICAg +ICAgICA8ZW50dHlwZD5UaGUgZm9sbG93aW5nIGF0dHJpYnV0ZSBmaWVsZCBpcyBjb21tb24gdG8g +YWxsIHBvbHlnb24gZmVhdHVyZSBjbGFzc2VzIHdpdGhpbiB0aGUgV0JEIDwvZW50dHlwZD4NCiAg +ICAgICAgPGVudHR5cGRzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUg +TmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQ8L2VudHR5cGRzPg0KICAgICAgPC9l +bnR0eXA+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsPlNoYXBlX0FyZWE8L2F0dHJs +YWJsPg0KICAgICAgICA8YXR0cmRlZj5BcmVhIG9mIGZlYXR1cmUgaW4gaW50ZXJuYWwgdW5pdHMg +c3F1YXJlZC48L2F0dHJkZWY+DQogICAgICAgIDxhdHRyZGVmcz5Fc3JpPC9hdHRyZGVmcz4NCiAg +ICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDxyZG9tPg0KICAgICAgICAgICAgPHJkb21taW4+ +MS40ODc3NjM1MTc5MzM5RS0wNjwvcmRvbW1pbj4NCiAgICAgICAgICAgIDxyZG9tbWF4PjkuNzky +OTkzMTAyMjk4MDg8L3Jkb21tYXg+DQogICAgICAgICAgPC9yZG9tPg0KICAgICAgICA8L2F0dHJk +b212Pg0KICAgICAgPC9hdHRyPg0KICAgIDwvZGV0YWlsZWQ+DQogICAgPGRldGFpbGVkPg0KICAg +ICAgPGVudHR5cD4NCiAgICAgICAgPGVudHR5cGw+V0JESFUyLCBXQkRIVTQsIFdCREhVNiwgV0JE +SFU4LCBXQkRIVTEwLCBXQkRIVTEyLCBXQkRIVTE0LCBXQkRIVTE2PC9lbnR0eXBsPg0KICAgICAg +ICA8ZW50dHlwZD5UaGUgZm9sbG93aW5nIGF0dHJpYnV0ZSBmaWVsZHMgYXJlIGNvbW1vbiB0byB0 +aGUgV0JEIGh5ZHJvbG9naWMgdW5pdCBwb2x5Z29uIGRhdGFzZXRzPC9lbnR0eXBkPg0KICAgICAg +ICA8ZW50dHlwZHM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRp +b25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldDwvZW50dHlwZHM+DQogICAgICA8L2VudHR5 +cD4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmw+R05JU19JRDwvYXR0cmxhYmw+DQog +ICAgICAgIDxhdHRyZGVmPkdOSVNfSUQgaXMgYSBwcmVhc3NpZ25lZCBudW1lcmljIGZpZWxkIHRo +YXQgdXNlcyBhIHVuaXF1ZSBudW1iZXIgdG8gcmVsYXRlIHRoZSBuYW1lIG9mIHRoZSBoeWRyb2xv +Z2ljIHVuaXQgdG8gdGhlIEdOSVMgbmFtZXMgZGF0YWJhc2UuPC9hdHRyZGVmPg0KICAgICAgICA8 +YXR0cmRlZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25h +bCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvYXR0cmRlZnM+DQogICAgICAgIDxh +dHRyZG9tdj4NCiAgICAgICAgICA8Y29kZXNldGQ+DQogICAgICAgICAgICA8Y29kZXNldG4+R2Vv +Z3JhcGhpYyBOYW1lcyBJbmZvcm1hdGlvbiBTeXN0ZW0gKEdOSVMpPC9jb2Rlc2V0bj4NCiAgICAg +ICAgICAgIDxjb2Rlc2V0cz5HTklTIChodHRwOi8vZ25pcy51c2dzLmdvdi8pPC9jb2Rlc2V0cz4N +CiAgICAgICAgICA8L2NvZGVzZXRkPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRy +Pg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5BcmVhQWNyZXM8L2F0dHJsYWJsPg0K +ICAgICAgICA8YXR0cmRlZj5UaGUgYXJlYSBvZiBlYWNoIGh5ZHJvbG9naWMgdW5pdCBpbmNsdWRp +bmcgbm9uLWNvbnRyaWJ1dGluZyBhcmVhcyBzdG9yZWQgaW4gYWNyZXMNCkFyZWFBY3JlcyBpcyBj +b21tb24gdG8gYWxsIHBvbHlnb24gZmVhdHVyZSBjbGFzc2VzIGFuZCBpcyBjYWxjdWxhdGVkIGF0 +IHRoZSAxMi1kaWdpdCBoeWRyb2xvZ2ljIHVuaXQgZnJvbSB0aGUgaW50cmluc2ljIGFyZWEgdmFs +dWUgbWFpbnRhaW5lZCBieSB0aGUgR0lTIHNvZnR3YXJlOyB0aGVyZWZvcmUsIGFjcmVhZ2UgdmFs +dWVzIG1heSB2YXJ5IGZyb20gdXNlciBjYWxjdWxhdGlvbnMsIGRlcGVuZGluZyBvbiB0aGUgcHJv +amVjdGlvbiBvZiB0aGUgZGF0YS4gTm9ydGggQW1lcmljYW4gQWxiZXJzIEVxdWFsIEFyZWEgQ29u +aWMsIE5vcnRoIEFtZXJpY2FuIERhdHVtIDE5ODMgaXMgdGhlIHJlcXVpcmVkIHByb2plY3Rpb24g +dG8gdXNlIGZvciBjYWxjdWxhdGlvbi4gSWYgdGhlIHVuaXRzIG9mIHRoZSBhcmVhIGZpZWxkIGFy +ZSBzdG9yZWQgaW4gc3F1YXJlIG1ldGVycywgdGhlbiB1c2UgdGhlIGNvbnZlcnNpb24gZmFjdG9y +IDAuMDAwMjQ3MS4gRm9yIGV4YW1wbGUsIDQwLDQ2OSw0NDYgc3F1YXJlIG1ldGVycyBtdWx0aXBs +aWVkIGJ5IDAuMDAwMjQ3MSA9MTAsMDAwIGFjcmVzPC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRl +ZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBXYXRl +cnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvYXR0cmRlZnM+DQogICAgICAgIDxhdHRyZG9t +dj4NCiAgICAgICAgICA8cmRvbT4NCiAgICAgICAgICAgIDxyZG9tbWluPjA8L3Jkb21taW4+DQog +ICAgICAgICAgICA8cmRvbW1heD41MDAwMDAwMDwvcmRvbW1heD4NCiAgICAgICAgICAgIDxhdHRy +dW5pdD5hY3JlczwvYXR0cnVuaXQ+DQogICAgICAgICAgPC9yZG9tPg0KICAgICAgICA8L2F0dHJk +b212Pg0KICAgICAgPC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5BcmVh +U3FLbTwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRyZGVmPlRoZSBhcmVhIG9mIGVhY2ggaHlkcm9s +b2dpYyB1bml0IGluY2x1ZGluZyBub24tY29udHJpYnV0aW5nIGFyZWFzIHN0b3JlZCBpbiBzcXVh +cmUga2lsb21ldGVycy4NCkFyZWFTcUttIGlzIGNhbGN1bGF0ZWQgYXQgdGhlIDEyLWRpZ2l0IGh5 +ZHJvbG9naWMgdW5pdCBmcm9tIHRoZSBpbnRyaW5zaWMgYXJlYSB2YWx1ZSBtYWludGFpbmVkIGJ5 +IHRoZSBHSVMgc29mdHdhcmU7IHRoZXJlZm9yZSwgdGhlIHNxdWFyZSBraWxvbWV0ZXIgdmFsdWVz +IG1heSB2YXJ5IGZyb20gdXNlciBjYWxjdWxhdGlvbnMsIGRlcGVuZGluZyBvbiB0aGUgcHJvamVj +dGlvbiBvZiB0aGUgZGF0YS4gTm9ydGggQW1lcmljYW4gQWxiZXJzIEVxdWFsIEFyZWEgQ29uaWMs +IE5vcnRoIEFtZXJpY2FuIERhdHVtIDE5ODMgaXMgdGhlIGRlZmF1bHQgcHJvamVjdGlvbi48L2F0 +dHJkZWY+DQogICAgICAgIDxhdHRyZGVmcz5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJl +cyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0IChXQkQpPC9hdHRy +ZGVmcz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDxyZG9tPg0KICAgICAgICAgICAg +PHJkb21taW4+MDwvcmRvbW1pbj4NCiAgICAgICAgICAgIDxyZG9tbWF4PjEwMDAwMDwvcmRvbW1h +eD4NCiAgICAgICAgICAgIDxhdHRydW5pdD5zcXVhcmUga2lsb21ldGVyczwvYXR0cnVuaXQ+DQog +ICAgICAgICAgPC9yZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0KICAg +ICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5TdGF0ZXM8L2F0dHJsYWJsPg0KICAgICAgICA8 +YXR0cmRlZj5UaGUgU3RhdGVzIG9yIG91dGx5aW5nIGFyZWEgYXR0cmlidXRlIGlkZW50aWZpZXMg +dGhlIFN0YXRlKHMpIG9yIG91dGx5aW5nIGFyZWFzIHRoYXQgdGhlIGh5ZHJvbG9naWMgdW5pdCBm +YWxscyB3aXRoaW4gb3IgdG91Y2hlcy4gV2lsbCBiZSBwb3B1bGF0ZWQgd2l0aCB0aGUgMiBjaGFy +YWN0ZXIgc3RhdGUgYWJicmV2aWF0aW9uIG9yIG91dGx5aW5nIGFyZWEgYXR0cmlidXRlIGZvciBl +YWNoIGFyZWEgdGhhdCB0aGUgdW5pdCBmYWxscyB3aXRoaW4gaW4gYWxwaGFiZXRpY2FsIG9yZGVy +LjwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9j +ZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8 +L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPGNvZGVzZXRkPg0KICAg +ICAgICAgICAgPGNvZGVzZXRuPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0 +aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2NvZGVzZXRuPg0K +ICAgICAgICAgICAgPGNvZGVzZXRzPlNlY3Rpb24gNjogR2Vvc3BhdGlhbCBEYXRhIFN0cnVjdHVy +ZSBhbmQgQXR0cmlidXRlcyBodHRwOi8vcHVicy51c2dzLmdvdi90bS8xMS9hMy8pPC9jb2Rlc2V0 +cz4NCiAgICAgICAgICA8L2NvZGVzZXRkPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9h +dHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5OYW1lPC9hdHRybGFibD4NCiAg +ICAgICAgPGF0dHJkZWY+TmFtZSByZWZlcnMgdG8gdGhlIEdOSVMgbmFtZSBmb3IgdGhlIGdlb2dy +YXBoaWMgYXJlYSBpbiB3aGljaCB0aGUgaHlkcm9sb2dpYyB1bml0IGlzIGxvY2F0ZWQuPC9hdHRy +ZGVmPg0KICAgICAgICA8YXR0cmRlZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMg +Zm9yIHRoZSBOYXRpb25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvYXR0cmRl +ZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8Y29kZXNldGQ+DQogICAgICAgICAg +ICA8Y29kZXNldG4+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRp +b25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvY29kZXNldG4+DQogICAgICAg +ICAgICA8Y29kZXNldHM+U2VjdGlvbiA2OiBHZW9zcGF0aWFsIERhdGEgU3RydWN0dXJlIGFuZCBB +dHRyaWJ1dGVzIChodHRwOi8vcHVicy51c2dzLmdvdi90bS8xMS9hMy8pPC9jb2Rlc2V0cz4NCiAg +ICAgICAgICA8L2NvZGVzZXRkPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0K +ICAgIDwvZGV0YWlsZWQ+DQogICAgPGRldGFpbGVkPg0KICAgICAgPGVudHR5cD4NCiAgICAgICAg +PGVudHR5cGw+V0JESFUxMCwgV0JESFUxMiwgV0JESFUxNCwgV0JESFUxNjwvZW50dHlwbD4NCiAg +ICAgICAgPGVudHR5cGQ+VGhlIGZvbGxvd2luZyBhdHRyaWJ1dGUgZmllbGRzIGFyZSBjb21tb24g +dG8gdGhlIDEwLWRpZ2l0LCAxMi1kaWdpdCwgMTQtZGlnaXQgYW5kIDE2LWRpZ2l0IFdCRCBwb2x5 +Z29uIGRhdGFzZXRzPC9lbnR0eXBkPg0KICAgICAgICA8ZW50dHlwZHM+RmVkZXJhbCBTdGFuZGFy +ZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0 +YXNldDwvZW50dHlwZHM+DQogICAgICA8L2VudHR5cD4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8 +YXR0cmxhYmw+SFVUeXBlPC9hdHRybGFibD4NCiAgICAgICAgPGF0dHJkZWY+VGhlIDEyLWRpZ2l0 +IGh5ZHJvbG9naWMgdW5pdCB0eXBlIGF0dHJpYnV0ZSBpcyB0aGUgc2luZ2xlLWxldHRlciBhYmJy +ZXZpYXRpb24gZm9yIFdhdGVyc2hlZCB0eXBlIGZyb20gdGhlIGxpc3Qgb2Ygb2ZmaWNpYWwgbmFt +ZXMgcHJvdmlkZWQgaW4gdGhlIFdCRCBTdGFuZGFyZHMuPC9hdHRyZGVmPg0KICAgICAgICA8YXR0 +cmRlZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBX +YXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvYXR0cmRlZnM+DQogICAgICAgIDxhdHRy +ZG9tdj4NCiAgICAgICAgICA8Y29kZXNldGQ+DQogICAgICAgICAgICA8Y29kZXNldG4+RmVkZXJh +bCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBXYXRlcnNoZWQgQm91 +bmRhcnkgRGF0YXNldCAoV0JEKTwvY29kZXNldG4+DQogICAgICAgICAgICA8Y29kZXNldHM+U2Vj +dGlvbiA2OiBHZW9zcGF0aWFsIERhdGEgU3RydWN0dXJlIGFuZCBBdHRyaWJ1dGVzIChodHRwOi8v +cHVicy51c2dzLmdvdi90bS8xMS9hMy8pPC9jb2Rlc2V0cz4NCiAgICAgICAgICA8L2NvZGVzZXRk +Pg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAg +ICAgIDxhdHRybGFibD5IVU1vZDwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRyZGVmPlRoZSBoeWRy +b2xvZ2ljIHVuaXQgbW9kaWZpY2F0aW9uIGF0dHJpYnV0ZSBpcyBhIHR3by1jaGFyYWN0ZXIsIHVw +cGVyY2FzZSBhYmJyZXZpYXRpb24ocykgZm9yIGVpdGhlciAoMSkgdGhlIHR5cGUgb2YgbW9kaWZp +Y2F0aW9uIHRvIG5hdHVyYWwgb3ZlcmxhbmQgZmxvdyB0aGF0IGFsdGVycyB0aGUgbmF0dXJhbCBk +ZWxpbmVhdGlvbiBvZiBhIGh5ZHJvbG9naWMgdW5pdCBvciAoMikgdGhlIHNwZWNpYWwgY29uZGl0 +aW9ucyBHRi1ncm91bmR3YXRlciBmbG93LCBHTC1nbGFjaWVyLCBJRi1pY2UgZmllbGQsIEtBLWth +cnN0LCBhbmQgTkMtbm9uY29udHJpYnV0aW5nIGFyZWEuIFRoZSB2YWx1ZSBvZiB0aGUgSFVNb2Qg +ZmllbGQgaGVscHMgdG8gaW5kaWNhdGUgd2hlcmUgdGhlIG1vZGlmaWNhdGlvbiB0byB0aGUgaHlk +cm9sb2dpYyB1bml0IGlzIGxvY2F0ZWQuIElmIG1vcmUgdGhhbiBvbmUgYWJicmV2aWF0aW9uIGlz +IHVzZWQsIHRoZSB3aWxsIGJlIHNlcGFyYXRlZCBieSBjb21tYXMgd2l0aG91dCBzcGFjZXMgYW5k +IGxpc3RlZCBmcm9tIG1vc3QgdG8gbGVhc3QgcHJlZG9taW5hbnQuPC9hdHRyZGVmPg0KICAgICAg +ICA8YXR0cmRlZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRp +b25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvYXR0cmRlZnM+DQogICAgICAg +IDxhdHRyZG9tdj4NCiAgICAgICAgICA8Y29kZXNldGQ+DQogICAgICAgICAgICA8Y29kZXNldG4+ +RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBXYXRlcnNo +ZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvY29kZXNldG4+DQogICAgICAgICAgICA8Y29kZXNl +dHM+U2VjdGlvbiA2OiBHZW9zcGF0aWFsIERhdGEgU3RydWN0dXJlIGFuZCBBdHRyaWJ1dGVzICho +dHRwOi8vcHVicy51c2dzLmdvdi90bS8xMS9hMy8pPC9jb2Rlc2V0cz4NCiAgICAgICAgICA8L2Nv +ZGVzZXRkPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0KICAgIDwvZGV0YWls +ZWQ+DQogICAgPGRldGFpbGVkPg0KICAgICAgPGVudHR5cD4NCiAgICAgICAgPGVudHR5cGw+V0JE +SFUxMiwgV0JESFUxNCwgV0JESFUxNiwgTldJU0RyYWluYWdlQXJlYSBhbmQgTm9uQ29udHJpYnV0 +aW5nRHJhaW5hZ2VBcmVhPC9lbnR0eXBsPg0KICAgICAgICA8ZW50dHlwZD5UaGUgZm9sbG93aW5n +IGF0dHJpYnV0ZSBmaWVsZHMgYXJlIGNvbW1vbiB0byB0aGUgMTItZGlnaXQsIDE0LWRpZ2l0IGFu +ZCAxNi1kaWdpdCBXQkQgcG9seWdvbiBkYXRhc2V0cyBhcyB3ZWxsIGFzIHRoZSBOV0lTRHJhaW5h +Z2VBcmVhLCBhbmQgTm9uQ29udHJpYnV0aW5nRHJhaW5hZ2VBcmVhIHBvbHlnb24gZGF0YXNldHM8 +L2VudHR5cGQ+DQogICAgICAgIDxlbnR0eXBkcz5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2Vk +dXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0PC9lbnR0eXBk +cz4NCiAgICAgIDwvZW50dHlwPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5Ob25D +b250cmlidXRpbmdBcmVhQWNyZXM8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5UaGUgbm9u +Y29udHJpYnV0aW5nIGFyZWEgYXR0cmlidXRlIHJlcHJlc2VudHMgdGhlIGFyZWEsIGluIGFjcmVz +LCBvZiBoeWRyb2xvZ2ljIHVuaXRzIHRoYXQgZG8gbm90IGNvbnRyaWJ1dGUgdG8gZG93bnN0cmVh +bSBhY2N1bXVsYXRpb24gb2Ygc3RyZWFtZmxvdyB1bmRlciBub3JtYWwgZmxvdyBjb25kaXRpb25z +LjwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9j +ZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8 +L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPHJkb20+DQogICAgICAg +ICAgICA8cmRvbW1pbj4wPC9yZG9tbWluPg0KICAgICAgICAgICAgPHJkb21tYXg+NTAwMDAwMDA8 +L3Jkb21tYXg+DQogICAgICAgICAgPC9yZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAg +PC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5Ob25Db250cmlidXRpbmdB +cmVhU3FLbTwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRyZGVmPlRoZSBub25jb250cmlidXRpbmcg +YXJlYSBhdHRyaWJ1dGUgcmVwcmVzZW50cyB0aGUgYXJlYSwgaW4gc3F1YXJlIGtpbG9tZXRlcnMs +IG9mIGh5ZHJvbG9naWMgdW5pdHMgdGhhdCBkbyBub3QgY29udHJpYnV0ZSB0byBkb3duc3RyZWFt +IGFjY3VtdWxhdGlvbiBvZiBzdHJlYW1mbG93IHVuZGVyIG5vcm1hbCBmbG93IGNvbmRpdGlvbnMu +PC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRlZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2Nl +ZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwv +YXR0cmRlZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8cmRvbT4NCiAgICAgICAg +ICAgIDxyZG9tbWluPjA8L3Jkb21taW4+DQogICAgICAgICAgICA8cmRvbW1heD4xMDAwMDA8L3Jk +b21tYXg+DQogICAgICAgICAgPC9yZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9h +dHRyPg0KICAgIDwvZGV0YWlsZWQ+DQogICAgPG92ZXJ2aWV3Pg0KICAgICAgPGVhb3Zlcj5UaGUg +V2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgaXMgYSBjb21wcmVoZW5zaXZlIHNldCBvZiBkaWdp +dGFsIHNwYXRpYWwgZGF0YSB0aGF0IHJlcHJlc2VudHMgdGhlIHN1cmZhY2UgZHJhaW5hZ2VzIGFy +ZWFzIG9mIHRoZSBVbml0ZWQgU3RhdGVzLiBUaGUgaW5mb3JtYXRpb24gaW5jbHVkZWQgd2l0aCB0 +aGUgZmVhdHVyZXMgaW5jbHVkZXMgYSBmZWF0dXJlIGRhdGUsIGEgdW5pcXVlIGNvbW1vbiBpZGVu +dGlmaWVyLCBuYW1lLCB0aGUgZmVhdHVyZSBsZW5ndGggb3IgYXJlYSwgYW5kIG90aGVyIGNoYXJh +Y3RlcmlzdGljcy4gTmFtZXMgYW5kIHRoZWlyIGlkZW50aWZpZXJzIGFyZSBhc3NpZ25lZCBmcm9t +IHRoZSBHZW9ncmFwaGljIE5hbWVzIEluZm9ybWF0aW9uIFN5c3RlbS4gVGhlIGRhdGEgYWxzbyBj +b250YWlucyByZWxhdGlvbnMgdGhhdCBlbmNvZGUgbWV0YWRhdGEuIFRoZSBuYW1lcyBhbmQgZGVm +aW5pdGlvbnMgb2YgYWxsIHRoZXNlIGZlYXR1cmUgYXR0cmlidXRlcyBhcmUgaW4gdGhlIEZlZGVy +YWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJv +dW5kYXJ5IERhdGFzZXQgKFdCRCkuIFRoZSBkb2N1bWVudCBpcyBhdmFpbGFibGUgb25saW5lIGF0 +IGh0dHA6Ly9wdWJzLnVzZ3MuZ292L3RtLzExL2EzLy48L2Vhb3Zlcj4NCiAgICAgIDxlYWRldGNp +dD5UaGUgbmFtZXMgYW5kIGRlZmluaXRpb25zIG9mIGFsbCBmaWVsZHMgd2l0aGluIHRoZSBXQkQg +YXR0cmlidXRpb24gYXJlIGluIHRoZSBVLlMuIEdlb2xvZ2ljYWwgU3VydmV5LCBGZWRlcmFsIFN0 +YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFy +eSBEYXRhc2V0IChXQkQpLiBUaGUgZG9jdW1lbnQgaXMgYXZhaWxhYmxlIG9ubGluZSBhdCBodHRw +Oi8vcHVicy51c2dzLmdvdi90bS8xMS9hMy8uIEluZm9ybWF0aW9uIGFib3V0IHRoZSBhdHRyaWJ1 +dGUgdGFibGVzIGFuZCBmaWVsZHMgYXJlIGluIFNlY3Rpb24gNjogR2Vvc3BhdGlhbCBEYXRhIFN0 +cnVjdHVyZSBhbmQgQXR0cmlidXRlczwvZWFkZXRjaXQ+DQogICAgPC9vdmVydmlldz4NCiAgPC9l +YWluZm8+DQogIDxkaXN0aW5mbz4NCiAgICA8ZGlzdHJpYj4NCiAgICAgIDxjbnRpbmZvPg0KICAg +ICAgICA8Y250b3JncD4NCiAgICAgICAgICA8Y250b3JnPlUuUy4gR2VvbG9naWNhbCBTdXJ2ZXk8 +L2NudG9yZz4NCiAgICAgICAgPC9jbnRvcmdwPg0KICAgICAgICA8Y250YWRkcj4NCiAgICAgICAg +ICA8YWRkcnR5cGU+TWFpbGluZzwvYWRkcnR5cGU+DQogICAgICAgICAgPGFkZHJlc3M+VS5TLiBH +ZW9sb2dpY2FsIFN1cnZleSwgTmF0aW9uYWwgR2Vvc3BhdGlhbCBUZWNobmljYWwgT3BlcmF0aW9u +cyBDZW50ZXIsIFAuTy4gQm94IDI1MDQ2PC9hZGRyZXNzPg0KICAgICAgICAgIDxjaXR5PkRlbnZl +cjwvY2l0eT4NCiAgICAgICAgICA8c3RhdGU+Q088L3N0YXRlPg0KICAgICAgICAgIDxwb3N0YWw+ +ODAyMjU8L3Bvc3RhbD4NCiAgICAgICAgPC9jbnRhZGRyPg0KICAgICAgICA8Y250dm9pY2U+MS04 +NzctMjc1LTg3NDc8L2NudHZvaWNlPg0KICAgICAgICA8Y250ZW1haWw+YnBnZW9AdXNncy5nb3Y8 +L2NudGVtYWlsPg0KICAgICAgPC9jbnRpbmZvPg0KICAgIDwvZGlzdHJpYj4NCiAgICA8ZGlzdGxp +YWI+VGhlIGRpc3RyaWJ1dG9yIHNoYWxsIG5vdCBiZSBoZWxkIGxpYWJsZSBmb3IgaW1wcm9wZXIg +b3IgaW5jb3JyZWN0IHVzZSBvZiB0aGlzIGRhdGEsIGJhc2VkIG9uIHRoZSBkZXNjcmlwdGlvbiBv +ZiBhcHByb3ByaWF0ZS9pbmFwcHJvcHJpYXRlIHVzZXMgZGVzY3JpYmVkIGluIHRoaXMgbWV0YWRh +dGEgZG9jdW1lbnQuIEl0IGlzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRoYXQgdGhpcyBkYXRhIGlz +IGRpcmVjdGx5IGFjcXVpcmVkIGZyb20gdGhlIGRpc3RyaWJ1dG9yIGFuZCBub3QgaW5kaXJlY3Rs +eSB0aHJvdWdoIG90aGVyIHNvdXJjZXMgd2hpY2ggbWF5IGhhdmUgY2hhbmdlZCB0aGUgZGF0YSBp +biBzb21lIHdheS4gVGhlIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0IGlzIHB1YmxpYyBpbmZv +cm1hdGlvbiBhbmQgbWF5IGJlIGludGVycHJldGVkIGJ5IGFsbCBvcmdhbml6YXRpb25zLCBhZ2Vu +Y2llcywgdW5pdHMgb2YgZ292ZXJubWVudCwgb3Igb3RoZXJzIGJhc2VkIG9uIG5lZWRzOyBob3dl +dmVyLCB0aGV5IGFyZSByZXNwb25zaWJsZSBmb3IgdGhlIGFwcHJvcHJpYXRlIGFwcGxpY2F0aW9u +IG9mIHRoZSBkYXRhLiBGZWRlcmFsLCBTdGF0ZSwgb3IgbG9jYWwgcmVndWxhdG9yeSBib2RpZXMg +YXJlIG5vdCB0byByZWFzc2lnbiB0byB0aGUgVS5TLiBEZXBhcnRtZW50IG9mIEFncmljdWx0dXJl +LU5hdHVyYWwgUmVzb3VyY2VzIENvbnNlcnZhdGlvbiBTZXJ2aWNlIG9yIHRoZSBVLlMuIEdlb2xv +Z2ljYWwgU3VydmV5IGFueSBhdXRob3JpdHkgZm9yIHRoZSBkZWNpc2lvbnMgdGhleSBtYWtlLiAg +UGhvdG9ncmFwaGljIG9yIGRpZ2l0YWwgZW5sYXJnZW1lbnQgb2YgdGhlc2UgbWFwcyB0byBzY2Fs +ZXMgZ3JlYXRlciB0aGFuIHRoYXQgYXQgd2hpY2ggdGhleSB3ZXJlIG9yaWdpbmFsbHkgZGVsaW5l +YXRlZCBjYW4gcmVzdWx0IGluIG1pc3JlcHJlc2VudGF0aW9uIG9mIHRoZSBkYXRhLiAgSWYgZW5s +YXJnZWQsIHRoZSBtYXBzIHdpbGwgbm90IGluY2x1ZGUgdGhlIGZpbmUgZGV0YWlsIHRoYXQgd291 +bGQgYmUgYXBwcm9wcmlhdGUgZm9yIG1hcHBpbmcgYXQgdGhlIHNtYWxsIHNjYWxlLiAgRGlnaXRh +bCBkYXRhIGZpbGVzIGFyZSBwZXJpb2RpY2FsbHkgdXBkYXRlZC4gRmlsZXMgYXJlIGRhdGVkLCBh +bmQgdXNlcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBvYnRhaW5pbmcgdGhlIGxhdGVzdCB2ZXJzaW9u +IG9mIHRoZSBkYXRhIGZyb20gdGhlIHNvdXJjZSBkaXN0cmlidXRvci48L2Rpc3RsaWFiPg0KICAg +IDxzdGRvcmRlcj4NCiAgICAgIDxkaWdmb3JtPg0KICAgICAgICA8ZGlndGluZm8+DQogICAgICAg +ICAgPGZvcm1uYW1lPlZlY3RvciBEaWdpdGFsIERhdGEgU2V0IChQb2x5Z29uKTwvZm9ybW5hbWU+ +DQogICAgICAgIDwvZGlndGluZm8+DQogICAgICAgIDxkaWd0b3B0Pg0KICAgICAgICAgIDxvbmxp +bm9wdD4NCiAgICAgICAgICAgIDxjb21wdXRlcj4NCiAgICAgICAgICAgICAgPG5ldHdvcmthPg0K +ICAgICAgICAgICAgICAgIDxuZXR3b3Jrcj5mdHA6Ly9yb2NreWZ0cC5jci51c2dzLmdvdi92ZGVs +aXZlcnkvRGF0YXNldHMvU3RhZ2VkL0h5ZHJvZ3JhcGh5L1dCRC9OYXRpb25hbC9HREIvTmF0aW9u +YWxfV0JELnppcDwvbmV0d29ya3I+DQogICAgICAgICAgICAgIDwvbmV0d29ya2E+DQogICAgICAg +ICAgICA8L2NvbXB1dGVyPg0KICAgICAgICAgIDwvb25saW5vcHQ+DQogICAgICAgIDwvZGlndG9w +dD4NCiAgICAgIDwvZGlnZm9ybT4NCiAgICAgIDxmZWVzPk5vbmUuIE5vIGZlZXMgYXJlIGFwcGxp +Y2FibGUgZm9yIG9idGFpbmluZyB0aGUgZGF0YSBzZXQuPC9mZWVzPg0KICAgIDwvc3Rkb3JkZXI+ +DQogIDwvZGlzdGluZm8+DQogIDxtZXRhaW5mbz4NCiAgICA8bWV0ZD4yMDE2MDcyNzwvbWV0ZD4N +CiAgICA8bWV0Yz4NCiAgICAgIDxjbnRpbmZvPg0KICAgICAgICA8Y250cGVycD4NCiAgICAgICAg +ICA8Y250cGVyPldCRCBQb2ludCBvZiBDb250YWN0PC9jbnRwZXI+DQogICAgICAgICAgPGNudG9y +Zz5VLlMuIEdlb2xvZ2ljYWwgU3VydmV5PC9jbnRvcmc+DQogICAgICAgIDwvY250cGVycD4NCiAg +ICAgICAgPGNudGFkZHI+DQogICAgICAgICAgPGFkZHJ0eXBlPk1haWxpbmc8L2FkZHJ0eXBlPg0K +ICAgICAgICAgIDxhZGRyZXNzPlUuUy4gR2VvbG9naWNhbCBTdXJ2ZXksIE5hdGlvbmFsIEdlb3Nw +YXRpYWwgVGVjaG5pY2FsIE9wZXJhdGlvbnMgQ2VudGVyLCBQLk8uIEJveCAyNTA0NjwvYWRkcmVz +cz4NCiAgICAgICAgICA8Y2l0eT5EZW52ZXI8L2NpdHk+DQogICAgICAgICAgPHN0YXRlPkNPPC9z +dGF0ZT4NCiAgICAgICAgICA8cG9zdGFsPjgwMjI1PC9wb3N0YWw+DQogICAgICAgIDwvY250YWRk +cj4NCiAgICAgICAgPGNudHZvaWNlPjEtODc3LTI3NS04NzQ3PC9jbnR2b2ljZT4NCiAgICAgICAg +PGNudGVtYWlsPmJwZ2VvQHVzZ3MuZ292PC9jbnRlbWFpbD4NCiAgICAgIDwvY250aW5mbz4NCiAg +ICA8L21ldGM+DQogICAgPG1ldHN0ZG4+RkdEQyBDb250ZW50IFN0YW5kYXJkIGZvciBEaWdpdGFs +IEdlb3NwYXRpYWwgTWV0YWRhdGE8L21ldHN0ZG4+DQogICAgPG1ldHN0ZHY+RkdEQy1TVEQtMDAx +LTE5OTg8L21ldHN0ZHY+DQogIDwvbWV0YWluZm8+DQogIDxFc3JpPg0KICAgIDxTeW5jRGF0ZT4y +MDE3MDExMDwvU3luY0RhdGU+DQogICAgPFN5bmNUaW1lPjEwNTgwNjAwPC9TeW5jVGltZT4NCiAg +ICA8TW9kRGF0ZT4yMDE3MDExMDwvTW9kRGF0ZT4NCiAgICA8TW9kVGltZT4xMDU4MDYwMDwvTW9k +VGltZT4NCiAgPC9Fc3JpPg0KPC9tZXRhZGF0YT4=datasetEPSG6.5(3.0.1)0
diff --git a/book/tutorials/decision_trees/02.input/shape/jordan.shx b/book/tutorials/decision_trees/02.input/shape/jordan.shx new file mode 100644 index 0000000..49ce782 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/jordan.shx differ diff --git a/book/tutorials/decision_trees/02.input/shape/jordan_merged.cpg b/book/tutorials/decision_trees/02.input/shape/jordan_merged.cpg new file mode 100644 index 0000000..cd89cb9 --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/jordan_merged.cpg @@ -0,0 +1 @@ +ISO-8859-1 \ No newline at end of file diff --git a/book/tutorials/decision_trees/02.input/shape/jordan_merged.dbf b/book/tutorials/decision_trees/02.input/shape/jordan_merged.dbf new file mode 100644 index 0000000..6a8b5da Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/jordan_merged.dbf differ diff --git a/book/tutorials/decision_trees/02.input/shape/jordan_merged.prj b/book/tutorials/decision_trees/02.input/shape/jordan_merged.prj new file mode 100644 index 0000000..5ded4bc --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/jordan_merged.prj @@ -0,0 +1 @@ +GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/book/tutorials/decision_trees/02.input/shape/jordan_merged.shp b/book/tutorials/decision_trees/02.input/shape/jordan_merged.shp new file mode 100644 index 0000000..a6cd6fe Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/jordan_merged.shp differ diff --git a/book/tutorials/decision_trees/02.input/shape/jordan_merged.shx b/book/tutorials/decision_trees/02.input/shape/jordan_merged.shx new file mode 100644 index 0000000..ab558d9 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/jordan_merged.shx differ diff --git a/book/tutorials/decision_trees/02.input/shape/lake_bear.cpg b/book/tutorials/decision_trees/02.input/shape/lake_bear.cpg new file mode 100644 index 0000000..3ad133c --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/lake_bear.cpg @@ -0,0 +1 @@ +UTF-8 \ No newline at end of file diff --git a/book/tutorials/decision_trees/02.input/shape/lake_bear.dbf b/book/tutorials/decision_trees/02.input/shape/lake_bear.dbf new file mode 100644 index 0000000..fcdce20 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/lake_bear.dbf differ diff --git a/book/tutorials/decision_trees/02.input/shape/lake_bear.prj b/book/tutorials/decision_trees/02.input/shape/lake_bear.prj new file mode 100644 index 0000000..5ded4bc --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/lake_bear.prj @@ -0,0 +1 @@ +GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/book/tutorials/decision_trees/02.input/shape/lake_bear.sbn b/book/tutorials/decision_trees/02.input/shape/lake_bear.sbn new file mode 100644 index 0000000..368af0e Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/lake_bear.sbn differ diff --git a/book/tutorials/decision_trees/02.input/shape/lake_bear.sbx b/book/tutorials/decision_trees/02.input/shape/lake_bear.sbx new file mode 100644 index 0000000..486b3ba Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/lake_bear.sbx differ diff --git a/book/tutorials/decision_trees/02.input/shape/lake_bear.shp b/book/tutorials/decision_trees/02.input/shape/lake_bear.shp new file mode 100644 index 0000000..44610dd Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/lake_bear.shp differ diff --git a/book/tutorials/decision_trees/02.input/shape/lake_bear.shp.CYB-TURING-AG1.24688.25756.sr.lock b/book/tutorials/decision_trees/02.input/shape/lake_bear.shp.CYB-TURING-AG1.24688.25756.sr.lock new file mode 100644 index 0000000..e69de29 diff --git a/book/tutorials/decision_trees/02.input/shape/lake_bear.shp.CYB-TURING-AG1.25812.25756.sr.lock b/book/tutorials/decision_trees/02.input/shape/lake_bear.shp.CYB-TURING-AG1.25812.25756.sr.lock new file mode 100644 index 0000000..e69de29 diff --git a/book/tutorials/decision_trees/02.input/shape/lake_bear.shp.CYB-TURING-AG1.29092.25756.sr.lock b/book/tutorials/decision_trees/02.input/shape/lake_bear.shp.CYB-TURING-AG1.29092.25756.sr.lock new file mode 100644 index 0000000..e69de29 diff --git a/book/tutorials/decision_trees/02.input/shape/lake_bear.shp.CYB-TURING-AG1.50100.25756.sr.lock b/book/tutorials/decision_trees/02.input/shape/lake_bear.shp.CYB-TURING-AG1.50100.25756.sr.lock new file mode 100644 index 0000000..e69de29 diff --git a/book/tutorials/decision_trees/02.input/shape/lake_bear.shp.xml b/book/tutorials/decision_trees/02.input/shape/lake_bear.shp.xml new file mode 100644 index 0000000..d9d6104 --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/lake_bear.shp.xml @@ -0,0 +1,6 @@ +2014062511092100FALSE202405090151140020240509015114001.0file://\\CYB-TURING-AG1\E$\OneDrive\OneDrive - The University of Alabama\02.projects\02.nidis\02.code\ewri\02.inputs\shape\lake_bear.shpLocal Area Networklake_bear0020.000GeographicGCS_North_American_1983Angular Unit: Degree (0.017453)<GeographicCoordinateSystem xsi:type='typens:GeographicCoordinateSystem' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.1.0'><WKT>GEOGCS[&quot;GCS_North_American_1983&quot;,DATUM[&quot;D_North_American_1983&quot;,SPHEROID[&quot;GRS_1980&quot;,6378137.0,298.257222101]],PRIMEM[&quot;Greenwich&quot;,0.0],UNIT[&quot;Degree&quot;,0.0174532925199433],AUTHORITY[&quot;EPSG&quot;,4269]]</WKT><XOrigin>-400</XOrigin><YOrigin>-400</YOrigin><XYScale>11258999068426.238</XYScale><ZOrigin>-100000</ZOrigin><ZScale>10000</ZScale><MOrigin>-100000</MOrigin><MScale>10000</MScale><XYTolerance>8.983152841195215e-09</XYTolerance><ZTolerance>0.001</ZTolerance><MTolerance>0.001</MTolerance><HighPrecision>true</HighPrecision><LeftLongitude>-180</LeftLongitude><WKID>4269</WKID><LatestWKID>4269</LatestWKID></GeographicCoordinateSystem>ExportFeatures NHDWaterbody "E:\OneDrive\OneDrive - The University of Alabama\02.projects\02.nidis\02.code\ewri\02.inputs\shape\lake_bear.shp" # NOT_USE_ALIAS "Permanent_Identifier "Permanent_Identifier" true true false 40 Text 0 0,First,#,NHDWaterbody,Permanent_Identifier,0,40;FDate "FDate" true true false 8 Date 0 0,First,#,NHDWaterbody,FDate,-1,-1;Resolution "Resolution" true true false 4 Long 0 0,First,#,NHDWaterbody,Resolution,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0,First,#,NHDWaterbody,GNIS_ID,0,10;GNIS_Name "GNIS_Name" true true false 65 Text 0 0,First,#,NHDWaterbody,GNIS_Name,0,65;AreaSqKm "AreaSqKm" true true false 8 Double 0 0,First,#,NHDWaterbody,AreaSqKm,-1,-1;Elevation "Elevation" true true false 8 Double 0 0,First,#,NHDWaterbody,Elevation,-1,-1;ReachCode "ReachCode" true true false 14 Text 0 0,First,#,NHDWaterbody,ReachCode,0,14;FType "FType" true true false 4 Long 0 0,First,#,NHDWaterbody,FType,-1,-1;FCode "FCode" true true false 4 Long 0 0,First,#,NHDWaterbody,FCode,-1,-1;VisibilityFilter "VisibilityFilter" true true false 4 Long 0 0,First,#,NHDWaterbody,VisibilityFilter,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0,First,#,NHDWaterbody,Shape_Length,-1,-1;Shape_Area "Shape_Area" false true true 8 Double 0 0,First,#,NHDWaterbody,Shape_Area,-1,-1;NHDPlusID "NHDPlusID" true true false 8 Double 0 0,First,#,NHDWaterbody,NHDPlusID,-1,-1;VPUID "VPUID" true true false 8 Text 0 0,First,#,NHDWaterbody,VPUID,0,8" #Microsoft Windows XP Version 5.1 (Build 2600) Service Pack 2; ESRI ArcCatalog 9.3.1.1850enThe National Hydrography Dataset (NHD) is a feature-based database that interconnects and uniquely identifies the stream segments or reaches that make up the nation's surface water drainage system. NHD data was originally developed at 1:100,000-scale and exists at that scale for the whole country. This high-resolution NHD, generally developed at 1:24,000/1:12,000 scale, adds detail to the original 1:100,000-scale NHD. (Data for Alaska, Puerto Rico and the Virgin Islands was developed at high-resolution, not 1:100,000 scale.) Local resolution NHD is being developed where partners and data exist. The NHD contains reach codes for networked features, flow direction, names, and centerline representations for areal water bodies. Reaches are also defined on waterbodies and the approximate shorelines of the Great Lakes, the Atlantic and Pacific Oceans and the Gulf of Mexico. The NHD also incorporates the National Spatial Data Infrastructure framework criteria established by the Federal Geographic Data Committee.The NHD is a national framework for assigning reach addresses to water-related entities, such as industrial discharges, drinking water supplies, fish habitat areas, wild and scenic rivers. Reach addresses establish the locations of these entities relative to one another within the NHD surface water drainage network, much like addresses on streets. Once linked to the NHD by their reach addresses, the upstream/downstream relationships of these water-related entities--and any associated information about them--can be analyzed using software tools ranging from spreadsheets to geographic information systems (GIS). GIS can also be used to combine NHD-based network analysis with other data layers, such as soils, land use and population, to help understand and display their respective effects upon one another. Furthermore, because the NHD provides a nationally consistent framework for addressing and analysis, water-related information linked to reach addresses by one organization (national, state, local) can be shared with other organizations and easily integrated into many different types of applications to the benefit of all.U.S. Geological Survey in cooperation with U.S. Environmental Protection Agency, USDA Forest Service, and other Federal, State and local partners (see dataset specific metadata under Data_Set_Credit for details).See dataset specific metadata.NHDWaterbodyNHDWaterbodyvector digital data\\igskbthisusy01\nhdgeo\oracle_export\GDBExtractServer\Template\NHD_File_Template_High_92v210.gdbUnknownReston, VirginiaU.S. Geological SurveySee dataset specific metadata.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.In workIrregular-200-56.8344239143.1655760U.S. Department of the Interior, U.S. Geological Survey, 1999, Standards for National Hydrography Dataset (http://mapping.usgs.gov/standards/)FWHydrographyHydrographyStream / RiverLake / PondCanal / DitchReservoirSpring / SeepSwamp / MarshArtificial PathReach CodeUSU.S. Department of Commerce, 1977, Countries, dependencies, areas of special sovereignty, and their principal administrative divisions (Federal Information Processing Standards 10-3): Washington, D.C., National Institute of Standards and Technology.NoneNone. Acknowledgment of the originating agencies would +be appreciated in products derived from these data.File Geodatabase Feature ClassEarth Science Information Center, U.S. Geological Survey1 888 ASK USGSask@usgs.gov0800-1600 Eastern TimeIn addition to the address above there are other ESIC offices throughout the country. A full list of these offices is at URL: http://mapping.usgs.gov/esic/esic_index.htmlSee dataset specific metadata.Microsoft Windows 10 Version 10.0 (Build 19045) ; Esri ArcGIS 13.1.3.41833lake_bearenFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timeREQUIRED: The person responsible for the metadata information.Earth Science Information Center, U.S. Geological Surveymailing addressRestonVA20192
507 National Center
USA
1 888 ASK USGSnhd@usgs.gov0800-1600 Eastern TimeIn addition to the address above there are other ESIC offices throughout the country. A full list of these offices is at URL: http://mapping.usgs.gov/esic/esic_index.html
20100427
ISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable DataEarth Science Information Center, U.S. Geological Survey1 888 275 8747ask@usgs.gov0800-1600 Eastern TimeIn addition to the address above there are other ESIC offices throughout the country. A full list of these offices is at URL: http://mapping.usgs.gov/esic/esic_index.htmlArcGIS Geodatabase8.3tar and uncompress002file://\\igskbthisusy01\nhdgeo\oracle_export\GDBExtractServer\Template\NHD_File_Template_High_92v210.gdbLocal Area NetworkFile Geodatabase Feature ClassShapefile0.000VectorSimpleFALSE0FALSETRUEGCS_North_American_1983Decimal degrees0.0000000.000000North American Datum of 1983Geodetic Reference System 806378137.000000298.257222Explicit elevation coordinate included with horizontal coordinates0.000025National Geodetic Vertical Datum of 1929metersGCS_North_American_1983EPSG6.5(3.0.1)0lake_bearFeature Class0ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.FDateFDateDate800ResolutionResolutionInteger10100GNIS_IDGNIS_IDString1000GNIS_NameGNIS_NameString6500AreaSqKmAreaSqKmDouble1900FIDFIDOID400Internal feature number.EsriSequential unique whole numbers that are automatically generated.ElevationElevationDouble1900Permanent_Permanent_String4000ReachCodeReachCodeString1400FTypeFTypeInteger10100FCodeFCodeInteger10100Shape_AreaShape_AreaDouble1900Area of feature in internal units squared.ESRIPositive real numbers that are automatically generated.Estuary493Resolution0ResolutionResolution DomainCoded ValueDefault valueDuplicateIntegerElevationElevationRangeElevation Range DomainRangeDefault valueDefault valueDoubleFCodeEstuary FCodeEstuary FCode DomainCoded ValueDefault valueDuplicateInteger49300VisibilityFilter0VisibilityFilter DomainVisibility Filter DomainCoded ValueDefault valueDuplicateIntegerFCode36100Playa FCodeCoded ValueDefault valueDuplicateIntegerLakePond390Resolution0ResolutionResolution DomainCoded ValueDefault valueDuplicateIntegerElevationElevationRangeElevation Range DomainRangeDefault valueDefault valueDoubleFCodeLakePond FCodeLake Pond FCode DomainCoded ValueDefault valueDuplicateInteger39004VisibilityFilter0VisibilityFilter DomainVisibility Filter DomainCoded ValueDefault valueDuplicateIntegerFCode37800Ice Mass FCodeCoded ValueDefault valueDuplicateIntegerIce Mass378Resolution0ResolutionResolution DomainCoded ValueDefault valueDuplicateIntegerElevationElevationRangeElevation Range DomainRangeDefault valueDefault valueDoubleFCodeIce Mass FCodeIce Mass FCode DomainCoded ValueDefault valueDuplicateInteger37800VisibilityFilter0VisibilityFilter DomainVisibility Filter DomainCoded ValueDefault valueDuplicateIntegerFCode46600SwampMarsh FCodeCoded ValueDefault valueDuplicateIntegerSwampMarsh466Resolution0ResolutionResolution DomainCoded ValueDefault valueDuplicateIntegerElevationElevationRangeElevation Range DomainRangeDefault valueDefault valueDoubleFCodeSwampMarsh FCodeSwamp Marsh FCode DomainCoded ValueDefault valueDuplicateInteger46600VisibilityFilter0VisibilityFilter DomainVisibility Filter DomainCoded ValueDefault valueDuplicateIntegerFCode49300Estuary FCodeCoded ValueDefault valueDuplicateIntegerReservoir436Resolution0ResolutionResolution DomainCoded ValueDefault valueDuplicateIntegerElevationElevationRangeElevation Range DomainRangeDefault valueDefault valueDoubleFCodeReservoir FCodeReservoir FCode DomainCoded ValueDefault valueDuplicateInteger43600VisibilityFilter0VisibilityFilter DomainVisibility Filter DomainCoded ValueDefault valueDuplicateIntegerFCode39004LakePond FCodeCoded ValueDefault valueDuplicateIntegerVisibilityVisibilityInteger10100Shape_LengShape_LengDouble1900Playa361Resolution0ResolutionResolution DomainCoded ValueDefault valueDuplicateIntegerElevationElevationRangeElevation Range DomainRangeDefault valueDefault valueDoubleFCodePlaya FCodePlaya FCode DomainCoded ValueDefault valueDuplicateInteger36100VisibilityFilter0VisibilityFilter DomainVisibility Filter DomainCoded ValueDefault valueDuplicateIntegerFCode43600Reservoir FCodeCoded ValueDefault valueDuplicateIntegerNHDPlusIDNHDPlusIDDouble1900VPUIDVPUIDString800NHDWaterbodyToMetaRelationshipThe National Hydrography Dataset is a comprehensive set of digital spatial data that encodes information about naturally occurring and constructed bodies of water, paths through which water flows, and related entities. The information encoded about features includes a feature date, classification by type, other characteristics, a unique common identifier, the feature length or area, and (rarely) elevation of the surface of water pools and a description of the stage of the elevation. For reaches, encoded information includes a reach code. Names and their identifiers in the Geographic Names Information System, are assigned to most feature types. The direction of flow is encoded for networked features. The data also contains relations that encode metadata, and information that supports the exchange of future updates and improvements to the data. The names and definitions of all feature types, characteristics, and values are in the Standards for National Hydrography Dataset: Reston, Virginia, U.S. Geological Survey, 1999. The document is available online through http://mapping.usgs.gov/standards/.The names and definitions of all feature types, characteristics, and values are in U.S. Geological Survey, 1999, Standards for National Hydrography Dataset High Resolution: Reston, Virginia, U.S. Geological Survey. The document is available online through http://mapping.usgs.gov/standards/. Information about tables and fields in the data are available from the user documentation for the National Hydrography Dataset at http://nhd.usgs.gov. The National Map - Hydrography Fact Sheet is also available at: http://erg.usgs.gov/isb/pubs/factsheets/fs06002.html.20240509Statements of attribute accuracy are based on accuracy statements made for U.S. Geological Survey Digital Line Graph (DLG) data, which is estimated to be 98.5 percent. One or more of the following methods were used to test attribute accuracy: manual comparison of the source with hardcopy plots; symbolized display of the DLG on an interactive computer graphic system; selected attributes that could not be visually verified on plots or on screen were interactively queried and verified on screen. In addition, software validated feature types and characteristics against a master set of types and characteristics, checked that combinations of types and characteristics were valid, and that types and characteristics were valid for the delineation of the feature. Feature types, characteristics, and other attributes conform to the Standards for National Hydrography Dataset (USGS, 1999) as of the date they were loaded into the database. All names were validated against a current extract from the Geographic Names Information System (GNIS). The entry and identifier for the names match those in the GNIS. The association of each name to reaches has been interactively checked, however, operator error could in some cases apply a name to a wrong reach. +This statement is generally true for the most common sources of NHD data. Other sources and methods may have been used to create or update NHD data. In some cases, additional information may be found in the NHDMetadata table.Points, nodes, lines, and areas conform to topological rules. Lines intersect only at nodes, and all nodes anchor the ends of lines. Lines do not overshoot or undershoot other lines where they are supposed to meet. There are no duplicate lines. Lines bound areas and lines identify the areas to the left and right of the lines. Gaps and overlaps among areas do not exist. All areas close.The completeness of the data reflects the content of the sources, which most often are the published USGS topographic quadrangle and/or the USDA Forest Service Primary Base Series (PBS) map. The USGS topographic quadrangle is usually supplemented by Digital Orthophoto Quadrangles (DOQs). Features found on the ground may have been eliminated or generalized on the source map because of scale and legibility constraints. In general, streams longer than one mile (approximately 1.6 kilometers) were collected. Most streams that flow from a lake were collected regardless of their length. Only definite channels were collected so not all swamp/marsh features have stream/rivers delineated through them. Lake/ponds having an area greater than 6 acres were collected. Note, however, that these general rules were applied unevenly among maps during compilation. Reaches codes are defined on all features of type stream/river, canal/ditch, artificial path, coastline, and connector. Waterbody reach codes are defined on all lake/pond and most reservoir features. Names were applied from the GNIS database. Detailed capture conditions are provided for every feature type in the Standards for National Hydrography Dataset available online through http://mapping.usgs.gov/standards/. +This statement is generally true for the most common sources of NHD data. Other sources and methods may have been used to create or update NHD data. In some cases, additional information may be found in the NHDMetadata table.Statements of horizontal positional accuracy are based on accuracy statements made for U.S. Geological Survey topographic quadrangle maps. These maps were compiled to meet National Map Accuracy Standards. For horizontal accuracy, this standard is met if at least 90 percent of points tested are within 0.02 inch (at map scale) of the true position. Additional offsets to positions may have been introduced where feature density is high to improve the legibility of map symbols. In addition, the digitizing of maps is estimated to contain a horizontal positional error of less than or equal to 0.003 inch standard error (at map scale) in the two component directions relative to the source maps. Visual comparison between the map graphic (including digital scans of the graphic) and plots or digital displays of points, lines, and areas, is used as control to assess the positional accuracy of digital data. Digital map elements along the adjoining edges of data sets are aligned if they are within a 0.02 inch tolerance (at map scale). Features with like dimensionality (for example, features that all are delineated with lines), with or without like characteristics, that are within the tolerance are aligned by moving the features equally to a common point. Features outside the tolerance are not moved; instead, a feature of type connector is added to join the features. +This statement is generally true for the most common sources of NHD data. Other sources and methods may have been used to create or update NHD data. In some cases, additional information may be found in the NHDMetadata table.Statements of vertical positional accuracy for elevation of water surfaces are based on accuracy statements made for U.S. Geological Survey topographic quadrangle maps. These maps were compiled to meet National Map Accuracy Standards. For vertical accuracy, this standard is met if at least 90 percent of well-defined points tested are within one-half contour interval of the correct value. Elevations of water surface printed on the published map meet this standard; the contour intervals of the maps vary. These elevations were transcribed into the digital data; the accuracy of this transcription was checked by visual comparison between the data and the map. +This statement is generally true for the most common sources of NHD data. Other sources and methods may have been used to create or update NHD data. In some cases, additional information may be found in the NHDMetadata table.The processes used to create and maintain high-resolution NHD data can be found in the table called "NHDMetadata". Because NHD data can be downloaded using several user-defined areas, the process descriptions can vary for each download. The NHDMetadata table contains a list of all the process descriptions that apply to a particular download. These process descriptions are linked using the DuuID to the NHDFeatureToMetadata table which contains the com_ids of all the features within the download. In addition, another table, the NHDSourceCitation, can also be linked through the DuuID to determine the sources used to create or update NHD data.UnknownDataset copied.\\F880\oracle_export\GDBExtractServer\Template\NHD_Template_High.mdb20071130Metadata imported.D:\Workspace\v107\Metadata\nhdwaterbody.xml2010042116531400Dataset copied.\\IGSKBTHIWS531\D\ExtractTest\oracle_export\GDBExtractServer\Template\NHD_File_Template_High_92v200.gdb2010052016122000Dataset copied.\\igskbthisusy01\nhdgeo\oracle_export\GDBExtractServer\Template\NHD_Template_High_92v210.mdb2012022113582600
diff --git a/book/tutorials/decision_trees/02.input/shape/lake_bear.shx b/book/tutorials/decision_trees/02.input/shape/lake_bear.shx new file mode 100644 index 0000000..d962c70 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/lake_bear.shx differ diff --git a/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.cpg b/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.cpg new file mode 100644 index 0000000..3ad133c --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.cpg @@ -0,0 +1 @@ +UTF-8 \ No newline at end of file diff --git a/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.dbf b/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.dbf new file mode 100644 index 0000000..72b92be Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.dbf differ diff --git a/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.prj b/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.prj new file mode 100644 index 0000000..5ded4bc --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.prj @@ -0,0 +1 @@ +GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.sbn b/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.sbn new file mode 100644 index 0000000..32ea98d Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.sbn differ diff --git a/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.sbx b/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.sbx new file mode 100644 index 0000000..18c710e Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.sbx differ diff --git a/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.shp b/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.shp new file mode 100644 index 0000000..78274a3 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.shp differ diff --git a/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.shp.CYB-TURING-AG1.24688.25756.sr.lock b/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.shp.CYB-TURING-AG1.24688.25756.sr.lock new file mode 100644 index 0000000..e69de29 diff --git a/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.shp.CYB-TURING-AG1.25812.25756.sr.lock b/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.shp.CYB-TURING-AG1.25812.25756.sr.lock new file mode 100644 index 0000000..e69de29 diff --git a/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.shp.CYB-TURING-AG1.29092.25756.sr.lock b/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.shp.CYB-TURING-AG1.29092.25756.sr.lock new file mode 100644 index 0000000..e69de29 diff --git a/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.shp.CYB-TURING-AG1.50100.25756.sr.lock b/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.shp.CYB-TURING-AG1.50100.25756.sr.lock new file mode 100644 index 0000000..e69de29 diff --git a/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.shp.xml b/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.shp.xml new file mode 100644 index 0000000..5ead183 --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.shp.xml @@ -0,0 +1,6 @@ +2014062511092100FALSE202405090135360020240509013536001.0file://\\CYB-TURING-AG1\E$\OneDrive\OneDrive - The University of Alabama\02.projects\02.nidis\02.code\ewri\02.inputs\shape\lake_jordan_weber.shpLocal Area Networklake_jordan_weber0020.000GeographicGCS_North_American_1983Angular Unit: Degree (0.017453)<GeographicCoordinateSystem xsi:type='typens:GeographicCoordinateSystem' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.1.0'><WKT>GEOGCS[&quot;GCS_North_American_1983&quot;,DATUM[&quot;D_North_American_1983&quot;,SPHEROID[&quot;GRS_1980&quot;,6378137.0,298.257222101]],PRIMEM[&quot;Greenwich&quot;,0.0],UNIT[&quot;Degree&quot;,0.0174532925199433],AUTHORITY[&quot;EPSG&quot;,4269]]</WKT><XOrigin>-400</XOrigin><YOrigin>-400</YOrigin><XYScale>11258999068426.238</XYScale><ZOrigin>-100000</ZOrigin><ZScale>10000</ZScale><MOrigin>-100000</MOrigin><MScale>10000</MScale><XYTolerance>8.983152841195215e-09</XYTolerance><ZTolerance>0.001</ZTolerance><MTolerance>0.001</MTolerance><HighPrecision>true</HighPrecision><LeftLongitude>-180</LeftLongitude><WKID>4269</WKID><LatestWKID>4269</LatestWKID></GeographicCoordinateSystem>PairwiseClip NHDWaterbody_down "Jordan-Weber Watershed" "E:\OneDrive\OneDrive - The University of Alabama\02.projects\02.nidis\02.code\ewri\02.inputs\shape\lake_jordan_weber.shp" #Microsoft Windows XP Version 5.1 (Build 2600) Service Pack 2; ESRI ArcCatalog 9.3.1.1850enThe National Hydrography Dataset (NHD) is a feature-based database that interconnects and uniquely identifies the stream segments or reaches that make up the nation's surface water drainage system. NHD data was originally developed at 1:100,000-scale and exists at that scale for the whole country. This high-resolution NHD, generally developed at 1:24,000/1:12,000 scale, adds detail to the original 1:100,000-scale NHD. (Data for Alaska, Puerto Rico and the Virgin Islands was developed at high-resolution, not 1:100,000 scale.) Local resolution NHD is being developed where partners and data exist. The NHD contains reach codes for networked features, flow direction, names, and centerline representations for areal water bodies. Reaches are also defined on waterbodies and the approximate shorelines of the Great Lakes, the Atlantic and Pacific Oceans and the Gulf of Mexico. The NHD also incorporates the National Spatial Data Infrastructure framework criteria established by the Federal Geographic Data Committee.The NHD is a national framework for assigning reach addresses to water-related entities, such as industrial discharges, drinking water supplies, fish habitat areas, wild and scenic rivers. Reach addresses establish the locations of these entities relative to one another within the NHD surface water drainage network, much like addresses on streets. Once linked to the NHD by their reach addresses, the upstream/downstream relationships of these water-related entities--and any associated information about them--can be analyzed using software tools ranging from spreadsheets to geographic information systems (GIS). GIS can also be used to combine NHD-based network analysis with other data layers, such as soils, land use and population, to help understand and display their respective effects upon one another. Furthermore, because the NHD provides a nationally consistent framework for addressing and analysis, water-related information linked to reach addresses by one organization (national, state, local) can be shared with other organizations and easily integrated into many different types of applications to the benefit of all.U.S. Geological Survey in cooperation with U.S. Environmental Protection Agency, USDA Forest Service, and other Federal, State and local partners (see dataset specific metadata under Data_Set_Credit for details).See dataset specific metadata.NHDWaterbodyNHDWaterbodyvector digital data\\igskbthisusy01\nhdgeo\oracle_export\GDBExtractServer\Template\NHD_File_Template_High_92v210.gdbUnknownReston, VirginiaU.S. Geological SurveySee dataset specific metadata.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.In workIrregular-200-56.8344239143.1655760U.S. Department of the Interior, U.S. Geological Survey, 1999, Standards for National Hydrography Dataset (http://mapping.usgs.gov/standards/)FWHydrographyHydrographyStream / RiverLake / PondCanal / DitchReservoirSpring / SeepSwamp / MarshArtificial PathReach CodeUSU.S. Department of Commerce, 1977, Countries, dependencies, areas of special sovereignty, and their principal administrative divisions (Federal Information Processing Standards 10-3): Washington, D.C., National Institute of Standards and Technology.NoneNone. Acknowledgment of the originating agencies would +be appreciated in products derived from these data.File Geodatabase Feature ClassEarth Science Information Center, U.S. Geological Survey1 888 ASK USGSask@usgs.gov0800-1600 Eastern TimeIn addition to the address above there are other ESIC offices throughout the country. A full list of these offices is at URL: http://mapping.usgs.gov/esic/esic_index.htmlSee dataset specific metadata.Microsoft Windows 10 Version 10.0 (Build 19045) ; Esri ArcGIS 13.1.3.41833lake_jordan_weberenFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timeREQUIRED: The person responsible for the metadata information.Earth Science Information Center, U.S. Geological Surveymailing addressRestonVA20192
507 National Center
USA
1 888 ASK USGSnhd@usgs.gov0800-1600 Eastern TimeIn addition to the address above there are other ESIC offices throughout the country. A full list of these offices is at URL: http://mapping.usgs.gov/esic/esic_index.html
20100427
ISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable DataEarth Science Information Center, U.S. Geological Survey1 888 275 8747ask@usgs.gov0800-1600 Eastern TimeIn addition to the address above there are other ESIC offices throughout the country. A full list of these offices is at URL: http://mapping.usgs.gov/esic/esic_index.htmlArcGIS Geodatabase8.3tar and uncompress002file://\\igskbthisusy01\nhdgeo\oracle_export\GDBExtractServer\Template\NHD_File_Template_High_92v210.gdbLocal Area NetworkFile Geodatabase Feature ClassShapefile0.000VectorSimpleFALSE0FALSETRUEGCS_North_American_1983Decimal degrees0.0000000.000000North American Datum of 1983Geodetic Reference System 806378137.000000298.257222Explicit elevation coordinate included with horizontal coordinates0.000025National Geodetic Vertical Datum of 1929metersGCS_North_American_1983EPSG6.5(3.0.1)0lake_jordan_weberFeature Class0ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.FDateFDateDate800ResolutionResolutionInteger10100GNIS_IDGNIS_IDString1000GNIS_NameGNIS_NameString6500AreaSqKmAreaSqKmDouble1900FIDFIDOID400Internal feature number.EsriSequential unique whole numbers that are automatically generated.ElevationElevationDouble1900Permanent_Permanent_String4000ReachCodeReachCodeString1400FTypeFTypeInteger10100FCodeFCodeInteger10100Shape_AreaShape_AreaDouble1900Area of feature in internal units squared.ESRIPositive real numbers that are automatically generated.Estuary493Resolution0ResolutionResolution DomainCoded ValueDefault valueDuplicateIntegerElevationElevationRangeElevation Range DomainRangeDefault valueDefault valueDoubleFCodeEstuary FCodeEstuary FCode DomainCoded ValueDefault valueDuplicateInteger49300VisibilityFilter0VisibilityFilter DomainVisibility Filter DomainCoded ValueDefault valueDuplicateIntegerFCode36100Playa FCodeCoded ValueDefault valueDuplicateIntegerLakePond390Resolution0ResolutionResolution DomainCoded ValueDefault valueDuplicateIntegerElevationElevationRangeElevation Range DomainRangeDefault valueDefault valueDoubleFCodeLakePond FCodeLake Pond FCode DomainCoded ValueDefault valueDuplicateInteger39004VisibilityFilter0VisibilityFilter DomainVisibility Filter DomainCoded ValueDefault valueDuplicateIntegerFCode37800Ice Mass FCodeCoded ValueDefault valueDuplicateIntegerIce Mass378Resolution0ResolutionResolution DomainCoded ValueDefault valueDuplicateIntegerElevationElevationRangeElevation Range DomainRangeDefault valueDefault valueDoubleFCodeIce Mass FCodeIce Mass FCode DomainCoded ValueDefault valueDuplicateInteger37800VisibilityFilter0VisibilityFilter DomainVisibility Filter DomainCoded ValueDefault valueDuplicateIntegerFCode46600SwampMarsh FCodeCoded ValueDefault valueDuplicateIntegerSwampMarsh466Resolution0ResolutionResolution DomainCoded ValueDefault valueDuplicateIntegerElevationElevationRangeElevation Range DomainRangeDefault valueDefault valueDoubleFCodeSwampMarsh FCodeSwamp Marsh FCode DomainCoded ValueDefault valueDuplicateInteger46600VisibilityFilter0VisibilityFilter DomainVisibility Filter DomainCoded ValueDefault valueDuplicateIntegerFCode49300Estuary FCodeCoded ValueDefault valueDuplicateIntegerReservoir436Resolution0ResolutionResolution DomainCoded ValueDefault valueDuplicateIntegerElevationElevationRangeElevation Range DomainRangeDefault valueDefault valueDoubleFCodeReservoir FCodeReservoir FCode DomainCoded ValueDefault valueDuplicateInteger43600VisibilityFilter0VisibilityFilter DomainVisibility Filter DomainCoded ValueDefault valueDuplicateIntegerFCode39004LakePond FCodeCoded ValueDefault valueDuplicateIntegerVisibilityVisibilityInteger10100Shape_LengShape_LengDouble1900Playa361Resolution0ResolutionResolution DomainCoded ValueDefault valueDuplicateIntegerElevationElevationRangeElevation Range DomainRangeDefault valueDefault valueDoubleFCodePlaya FCodePlaya FCode DomainCoded ValueDefault valueDuplicateInteger36100VisibilityFilter0VisibilityFilter DomainVisibility Filter DomainCoded ValueDefault valueDuplicateIntegerFCode43600Reservoir FCodeCoded ValueDefault valueDuplicateIntegerNHDPlusIDNHDPlusIDDouble1900VPUIDVPUIDString800NHDWaterbodyToMetaRelationshipThe National Hydrography Dataset is a comprehensive set of digital spatial data that encodes information about naturally occurring and constructed bodies of water, paths through which water flows, and related entities. The information encoded about features includes a feature date, classification by type, other characteristics, a unique common identifier, the feature length or area, and (rarely) elevation of the surface of water pools and a description of the stage of the elevation. For reaches, encoded information includes a reach code. Names and their identifiers in the Geographic Names Information System, are assigned to most feature types. The direction of flow is encoded for networked features. The data also contains relations that encode metadata, and information that supports the exchange of future updates and improvements to the data. The names and definitions of all feature types, characteristics, and values are in the Standards for National Hydrography Dataset: Reston, Virginia, U.S. Geological Survey, 1999. The document is available online through http://mapping.usgs.gov/standards/.The names and definitions of all feature types, characteristics, and values are in U.S. Geological Survey, 1999, Standards for National Hydrography Dataset High Resolution: Reston, Virginia, U.S. Geological Survey. The document is available online through http://mapping.usgs.gov/standards/. Information about tables and fields in the data are available from the user documentation for the National Hydrography Dataset at http://nhd.usgs.gov. The National Map - Hydrography Fact Sheet is also available at: http://erg.usgs.gov/isb/pubs/factsheets/fs06002.html.20240509Statements of attribute accuracy are based on accuracy statements made for U.S. Geological Survey Digital Line Graph (DLG) data, which is estimated to be 98.5 percent. One or more of the following methods were used to test attribute accuracy: manual comparison of the source with hardcopy plots; symbolized display of the DLG on an interactive computer graphic system; selected attributes that could not be visually verified on plots or on screen were interactively queried and verified on screen. In addition, software validated feature types and characteristics against a master set of types and characteristics, checked that combinations of types and characteristics were valid, and that types and characteristics were valid for the delineation of the feature. Feature types, characteristics, and other attributes conform to the Standards for National Hydrography Dataset (USGS, 1999) as of the date they were loaded into the database. All names were validated against a current extract from the Geographic Names Information System (GNIS). The entry and identifier for the names match those in the GNIS. The association of each name to reaches has been interactively checked, however, operator error could in some cases apply a name to a wrong reach. +This statement is generally true for the most common sources of NHD data. Other sources and methods may have been used to create or update NHD data. In some cases, additional information may be found in the NHDMetadata table.Points, nodes, lines, and areas conform to topological rules. Lines intersect only at nodes, and all nodes anchor the ends of lines. Lines do not overshoot or undershoot other lines where they are supposed to meet. There are no duplicate lines. Lines bound areas and lines identify the areas to the left and right of the lines. Gaps and overlaps among areas do not exist. All areas close.The completeness of the data reflects the content of the sources, which most often are the published USGS topographic quadrangle and/or the USDA Forest Service Primary Base Series (PBS) map. The USGS topographic quadrangle is usually supplemented by Digital Orthophoto Quadrangles (DOQs). Features found on the ground may have been eliminated or generalized on the source map because of scale and legibility constraints. In general, streams longer than one mile (approximately 1.6 kilometers) were collected. Most streams that flow from a lake were collected regardless of their length. Only definite channels were collected so not all swamp/marsh features have stream/rivers delineated through them. Lake/ponds having an area greater than 6 acres were collected. Note, however, that these general rules were applied unevenly among maps during compilation. Reaches codes are defined on all features of type stream/river, canal/ditch, artificial path, coastline, and connector. Waterbody reach codes are defined on all lake/pond and most reservoir features. Names were applied from the GNIS database. Detailed capture conditions are provided for every feature type in the Standards for National Hydrography Dataset available online through http://mapping.usgs.gov/standards/. +This statement is generally true for the most common sources of NHD data. Other sources and methods may have been used to create or update NHD data. In some cases, additional information may be found in the NHDMetadata table.Statements of horizontal positional accuracy are based on accuracy statements made for U.S. Geological Survey topographic quadrangle maps. These maps were compiled to meet National Map Accuracy Standards. For horizontal accuracy, this standard is met if at least 90 percent of points tested are within 0.02 inch (at map scale) of the true position. Additional offsets to positions may have been introduced where feature density is high to improve the legibility of map symbols. In addition, the digitizing of maps is estimated to contain a horizontal positional error of less than or equal to 0.003 inch standard error (at map scale) in the two component directions relative to the source maps. Visual comparison between the map graphic (including digital scans of the graphic) and plots or digital displays of points, lines, and areas, is used as control to assess the positional accuracy of digital data. Digital map elements along the adjoining edges of data sets are aligned if they are within a 0.02 inch tolerance (at map scale). Features with like dimensionality (for example, features that all are delineated with lines), with or without like characteristics, that are within the tolerance are aligned by moving the features equally to a common point. Features outside the tolerance are not moved; instead, a feature of type connector is added to join the features. +This statement is generally true for the most common sources of NHD data. Other sources and methods may have been used to create or update NHD data. In some cases, additional information may be found in the NHDMetadata table.Statements of vertical positional accuracy for elevation of water surfaces are based on accuracy statements made for U.S. Geological Survey topographic quadrangle maps. These maps were compiled to meet National Map Accuracy Standards. For vertical accuracy, this standard is met if at least 90 percent of well-defined points tested are within one-half contour interval of the correct value. Elevations of water surface printed on the published map meet this standard; the contour intervals of the maps vary. These elevations were transcribed into the digital data; the accuracy of this transcription was checked by visual comparison between the data and the map. +This statement is generally true for the most common sources of NHD data. Other sources and methods may have been used to create or update NHD data. In some cases, additional information may be found in the NHDMetadata table.The processes used to create and maintain high-resolution NHD data can be found in the table called "NHDMetadata". Because NHD data can be downloaded using several user-defined areas, the process descriptions can vary for each download. The NHDMetadata table contains a list of all the process descriptions that apply to a particular download. These process descriptions are linked using the DuuID to the NHDFeatureToMetadata table which contains the com_ids of all the features within the download. In addition, another table, the NHDSourceCitation, can also be linked through the DuuID to determine the sources used to create or update NHD data.UnknownDataset copied.\\F880\oracle_export\GDBExtractServer\Template\NHD_Template_High.mdb20071130Metadata imported.D:\Workspace\v107\Metadata\nhdwaterbody.xml2010042116531400Dataset copied.\\IGSKBTHIWS531\D\ExtractTest\oracle_export\GDBExtractServer\Template\NHD_File_Template_High_92v200.gdb2010052016122000Dataset copied.\\igskbthisusy01\nhdgeo\oracle_export\GDBExtractServer\Template\NHD_Template_High_92v210.mdb2012022113582600
diff --git a/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.shx b/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.shx new file mode 100644 index 0000000..dccb8e2 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/lake_jordan_weber.shx differ diff --git a/book/tutorials/decision_trees/02.input/shape/river_bear.cpg b/book/tutorials/decision_trees/02.input/shape/river_bear.cpg new file mode 100644 index 0000000..3ad133c --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/river_bear.cpg @@ -0,0 +1 @@ +UTF-8 \ No newline at end of file diff --git a/book/tutorials/decision_trees/02.input/shape/river_bear.dbf b/book/tutorials/decision_trees/02.input/shape/river_bear.dbf new file mode 100644 index 0000000..b0cd7bd Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/river_bear.dbf differ diff --git a/book/tutorials/decision_trees/02.input/shape/river_bear.prj b/book/tutorials/decision_trees/02.input/shape/river_bear.prj new file mode 100644 index 0000000..5ded4bc --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/river_bear.prj @@ -0,0 +1 @@ +GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/book/tutorials/decision_trees/02.input/shape/river_bear.sbn b/book/tutorials/decision_trees/02.input/shape/river_bear.sbn new file mode 100644 index 0000000..16e4615 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/river_bear.sbn differ diff --git a/book/tutorials/decision_trees/02.input/shape/river_bear.sbx b/book/tutorials/decision_trees/02.input/shape/river_bear.sbx new file mode 100644 index 0000000..918a56d Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/river_bear.sbx differ diff --git a/book/tutorials/decision_trees/02.input/shape/river_bear.shp b/book/tutorials/decision_trees/02.input/shape/river_bear.shp new file mode 100644 index 0000000..0a5311a Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/river_bear.shp differ diff --git a/book/tutorials/decision_trees/02.input/shape/river_bear.shp.xml b/book/tutorials/decision_trees/02.input/shape/river_bear.shp.xml new file mode 100644 index 0000000..5e4333d --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/river_bear.shp.xml @@ -0,0 +1 @@ +20181206110553001.0FALSECreateFeatureclass E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot NHDFlowline_Temp POLYLINE E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp ENABLED ENABLED "GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]];-400 -400 11258999068426.2;-100000 10000;-1023.7418235 4194304001953.12;8.98315284119521E-09;0.001;0.001;IsHighPrecision" # 0 0 0Append E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,ComID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,FDate,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_Name,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,LengthKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,ReachCode,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAreaComI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,FCode,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,Shape_Leng,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,ComID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,FDate,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_Name,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,LengthKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,ReachCode,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAreaComI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,FCode,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,Shape_Leng,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,ComID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,FDate,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_Name,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,LengthKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,ReachCode,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAreaComI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,FCode,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,Shape_Leng,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,ComID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,FDate,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_Name,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,LengthKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,ReachCode,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAreaComI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,FCode,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,Shape_Leng,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Select E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp E:\NHDPlusV21\NHDPlusV21_National_Flattened.gdb\NHDSnapshot\NHDFlowline_Network "FLOWDIR = 'With Digitized'"JoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/PlusFlowlineVAA ComID StreamLeve;StreamOrde;StreamCalc;FromNode;ToNode;Hydroseq;LevelPathI;Pathlength;TerminalPa;ArbolateSu;Divergence;StartFlag;TerminalFl;DnLevel;UpLevelPat;UpHydroseq;DnLevelPat;DnMinorHyd;DnDrainCou;DnHydroseq;FromMeas;ToMeas;RtnDiv;VPUIn;VPUOut;AreaSqKM;TotDASqKM;DivDASqKM;Tidal;TOTMA;WBAreaType;PathTimeMAJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/HeadWaterNodeArea ComID HWNodeSqKMJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/Elevslope COMID MAXELEVRAW;MINELEVRAW;MAXELEVSMO;MINELEVSMO;SLOPE;ELEVFIXED;HWTYPE;SLOPELENKMJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_MA ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_MA QA_MA DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_MA VA_MA DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_MA QC_MA DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_MA VC_MA DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_MA QE_MA DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_MA VE_MA DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_01 ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_01 QA_01 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_01 VA_01 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_01 QC_01 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_01 VC_01 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_01 QE_01 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_01 VE_01 DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_02 ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_02 QA_02 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_02 VA_02 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_02 QC_02 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_02 VC_02 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_02 QE_02 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_02 VE_02 DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_03 ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_03 QA_03 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_03 VA_03 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_03 QC_03 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_03 VC_03 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_03 QE_03 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_03 VE_03 DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_04 ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_04 QA_04 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_04 VA_04 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_04 QC_04 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_04 VC_04 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_04 QE_04 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_04 VE_04 DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_05 ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_05 QA_05 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_05 VA_05 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_05 QC_05 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_05 VC_05 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_05 QE_05 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_05 VE_05 DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_06 ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_06 QA_06 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_06 VA_06 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_06 QC_06 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_06 VC_06 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_06 QE_06 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_06 VE_06 DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_07 ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_07 QA_07 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_07 VA_07 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_07 QC_07 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_07 VC_07 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_07 QE_07 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_07 VE_07 DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_08 ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_08 QA_08 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_08 VA_08 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_08 QC_08 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_08 VC_08 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_08 QE_08 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_08 VE_08 DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_09 ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_09 QA_09 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_09 VA_09 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_09 QC_09 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_09 VC_09 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_09 QE_09 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_09 VE_09 DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_10 ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_10 QA_10 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_10 VA_10 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_10 QC_10 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_10 VC_10 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_10 QE_10 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_10 VE_10 DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_11 ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_11 QA_11 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_11 VA_11 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_11 QC_11 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_11 VC_11 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_11 QE_11 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_11 VE_11 DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_12 ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_12 QA_12 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_12 VA_12 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_12 QC_12 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_12 VC_12 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_12 QE_12 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_12 VE_12 DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/PlusFlowlineLakeMorphology_Temp ComID LakeFract;SurfArea;RAreaHLoadJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDPlusBurnComponents/BurnLineEvent COMID InRPUAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network InRPU RPUID RPUID TEXT 8 NULLABLE falseAddField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network VPUID TEXT # # 8 VPUID NULLABLE NON_REQUIRED #CalculateField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network VPUID !VPUTemp! PYTHON #DeleteField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network VPUTempDeleteField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network SHAPE_LENG;GNIS_NBRAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network ENABLED ENABLED_CHAR ENABLED_CHAR TEXT 6 NULLABLE falseDeleteField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network ENABLED_CHARClip NHDFlowline_Network WBDHU8 "E:\OneDrive\OneDrive - The University of Alabama\01.dissertation\04.data\01.gsl\01.map\02.modified_data\my_basin_v_00\my_basin_v_00.gdb\NHDFlowline_16_up_temp" #ExportFeatures NHDFlowline_16_up_temp "E:\OneDrive\OneDrive - The University of Alabama\01.dissertation\04.data\01.gsl\01.map\02.modified_data\my_basin_v_00\my_basin_v_00.gdb\NHDFlowline_16_up" # NOT_USE_ALIAS "COMID "COMID" true true false 4 Long 0 0,First,#,NHDFlowline_16_up_temp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0,First,#,NHDFlowline_16_up_temp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0,First,#,NHDFlowline_16_up_temp,RESOLUTION,0,7;GNIS_ID "GNIS_ID" true true false 10 Text 0 0,First,#,NHDFlowline_16_up_temp,GNIS_ID,0,10;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0,First,#,NHDFlowline_16_up_temp,GNIS_NAME,0,65;LENGTHKM "LENGTHKM" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0,First,#,NHDFlowline_16_up_temp,REACHCODE,0,14;FLOWDIR "FLOWDIR" true true false 15 Text 0 0,First,#,NHDFlowline_16_up_temp,FLOWDIR,0,15;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0,First,#,NHDFlowline_16_up_temp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0,First,#,NHDFlowline_16_up_temp,FTYPE,0,24;FCODE "FCODE" true true false 4 Long 0 0,First,#,NHDFlowline_16_up_temp,FCODE,-1,-1;StreamLeve "StreamLeve" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,StreamLeve,-1,-1;StreamOrde "StreamOrde" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,StreamOrde,-1,-1;StreamCalc "StreamCalc" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,StreamCalc,-1,-1;FromNode "FromNode" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,FromNode,-1,-1;ToNode "ToNode" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,ToNode,-1,-1;Hydroseq "Hydroseq" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,Hydroseq,-1,-1;LevelPathI "LevelPathI" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,LevelPathI,-1,-1;Pathlength "Pathlength" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,Pathlength,-1,-1;TerminalPa "TerminalPa" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,TerminalPa,-1,-1;ArbolateSu "ArbolateSu" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,ArbolateSu,-1,-1;Divergence "Divergence" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,Divergence,-1,-1;StartFlag "StartFlag" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,StartFlag,-1,-1;TerminalFl "TerminalFl" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,TerminalFl,-1,-1;DnLevel "DnLevel" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,DnLevel,-1,-1;UpLevelPat "UpLevelPat" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,UpLevelPat,-1,-1;UpHydroseq "UpHydroseq" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,UpHydroseq,-1,-1;DnLevelPat "DnLevelPat" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,DnLevelPat,-1,-1;DnMinorHyd "DnMinorHyd" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,DnMinorHyd,-1,-1;DnDrainCou "DnDrainCou" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,DnDrainCou,-1,-1;DnHydroseq "DnHydroseq" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,DnHydroseq,-1,-1;FromMeas "FromMeas" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,FromMeas,-1,-1;ToMeas "ToMeas" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,ToMeas,-1,-1;RtnDiv "RtnDiv" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,RtnDiv,-1,-1;VPUIn "VPUIn" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VPUIn,-1,-1;VPUOut "VPUOut" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VPUOut,-1,-1;AreaSqKM "AreaSqKM" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,AreaSqKM,-1,-1;TotDASqKM "TotDASqKM" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,TotDASqKM,-1,-1;DivDASqKM "DivDASqKM" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,DivDASqKM,-1,-1;Tidal "Tidal" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,Tidal,-1,-1;TOTMA "TOTMA" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,TOTMA,-1,-1;WBAreaType "WBAreaType" true true false 24 Text 0 0,First,#,NHDFlowline_16_up_temp,WBAreaType,0,24;PathTimeMA "PathTimeMA" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,PathTimeMA,-1,-1;HWNodeSqKM "HWNodeSqKM" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,HWNodeSqKM,-1,-1;MAXELEVRAW "MAXELEVRAW" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,MAXELEVRAW,-1,-1;MINELEVRAW "MINELEVRAW" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,MINELEVRAW,-1,-1;MAXELEVSMO "MAXELEVSMO" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,MAXELEVSMO,-1,-1;MINELEVSMO "MINELEVSMO" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,MINELEVSMO,-1,-1;SLOPE "SLOPE" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,SLOPE,-1,-1;ELEVFIXED "ELEVFIXED" true true false 1 Text 0 0,First,#,NHDFlowline_16_up_temp,ELEVFIXED,0,1;HWTYPE "HWTYPE" true true false 1 Text 0 0,First,#,NHDFlowline_16_up_temp,HWTYPE,0,1;SLOPELENKM "SLOPELENKM" true true false 4 Float 0 0,First,#,NHDFlowline_16_up_temp,SLOPELENKM,-1,-1;QA_MA "QA_MA" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QA_MA,-1,-1;VA_MA "VA_MA" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VA_MA,-1,-1;QC_MA "QC_MA" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QC_MA,-1,-1;VC_MA "VC_MA" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VC_MA,-1,-1;QE_MA "QE_MA" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QE_MA,-1,-1;VE_MA "VE_MA" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VE_MA,-1,-1;QA_01 "QA_01" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QA_01,-1,-1;VA_01 "VA_01" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VA_01,-1,-1;QC_01 "QC_01" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QC_01,-1,-1;VC_01 "VC_01" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VC_01,-1,-1;QE_01 "QE_01" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QE_01,-1,-1;VE_01 "VE_01" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VE_01,-1,-1;QA_02 "QA_02" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QA_02,-1,-1;VA_02 "VA_02" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VA_02,-1,-1;QC_02 "QC_02" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QC_02,-1,-1;VC_02 "VC_02" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VC_02,-1,-1;QE_02 "QE_02" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QE_02,-1,-1;VE_02 "VE_02" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VE_02,-1,-1;QA_03 "QA_03" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QA_03,-1,-1;VA_03 "VA_03" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VA_03,-1,-1;QC_03 "QC_03" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QC_03,-1,-1;VC_03 "VC_03" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VC_03,-1,-1;QE_03 "QE_03" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QE_03,-1,-1;VE_03 "VE_03" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VE_03,-1,-1;QA_04 "QA_04" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QA_04,-1,-1;VA_04 "VA_04" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VA_04,-1,-1;QC_04 "QC_04" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QC_04,-1,-1;VC_04 "VC_04" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VC_04,-1,-1;QE_04 "QE_04" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QE_04,-1,-1;VE_04 "VE_04" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VE_04,-1,-1;QA_05 "QA_05" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QA_05,-1,-1;VA_05 "VA_05" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VA_05,-1,-1;QC_05 "QC_05" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QC_05,-1,-1;VC_05 "VC_05" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VC_05,-1,-1;QE_05 "QE_05" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QE_05,-1,-1;VE_05 "VE_05" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VE_05,-1,-1;QA_06 "QA_06" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QA_06,-1,-1;VA_06 "VA_06" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VA_06,-1,-1;QC_06 "QC_06" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QC_06,-1,-1;VC_06 "VC_06" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VC_06,-1,-1;QE_06 "QE_06" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QE_06,-1,-1;VE_06 "VE_06" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VE_06,-1,-1;QA_07 "QA_07" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QA_07,-1,-1;VA_07 "VA_07" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VA_07,-1,-1;QC_07 "QC_07" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QC_07,-1,-1;VC_07 "VC_07" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VC_07,-1,-1;QE_07 "QE_07" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QE_07,-1,-1;VE_07 "VE_07" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VE_07,-1,-1;QA_08 "QA_08" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QA_08,-1,-1;VA_08 "VA_08" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VA_08,-1,-1;QC_08 "QC_08" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QC_08,-1,-1;VC_08 "VC_08" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VC_08,-1,-1;QE_08 "QE_08" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QE_08,-1,-1;VE_08 "VE_08" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VE_08,-1,-1;QA_09 "QA_09" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QA_09,-1,-1;VA_09 "VA_09" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VA_09,-1,-1;QC_09 "QC_09" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QC_09,-1,-1;VC_09 "VC_09" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VC_09,-1,-1;QE_09 "QE_09" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QE_09,-1,-1;VE_09 "VE_09" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VE_09,-1,-1;QA_10 "QA_10" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QA_10,-1,-1;VA_10 "VA_10" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VA_10,-1,-1;QC_10 "QC_10" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QC_10,-1,-1;VC_10 "VC_10" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VC_10,-1,-1;QE_10 "QE_10" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QE_10,-1,-1;VE_10 "VE_10" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VE_10,-1,-1;QA_11 "QA_11" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QA_11,-1,-1;VA_11 "VA_11" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VA_11,-1,-1;QC_11 "QC_11" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QC_11,-1,-1;VC_11 "VC_11" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VC_11,-1,-1;QE_11 "QE_11" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QE_11,-1,-1;VE_11 "VE_11" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VE_11,-1,-1;QA_12 "QA_12" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QA_12,-1,-1;VA_12 "VA_12" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VA_12,-1,-1;QC_12 "QC_12" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QC_12,-1,-1;VC_12 "VC_12" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VC_12,-1,-1;QE_12 "QE_12" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,QE_12,-1,-1;VE_12 "VE_12" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,VE_12,-1,-1;LakeFract "LakeFract" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,LakeFract,-1,-1;SurfArea "SurfArea" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,SurfArea,-1,-1;RAreaHLoad "RAreaHLoad" true true false 8 Double 0 0,First,#,NHDFlowline_16_up_temp,RAreaHLoad,-1,-1;RPUID "RPUID" true true false 8 Text 0 0,First,#,NHDFlowline_16_up_temp,RPUID,0,8;VPUID "VPUID" true true false 8 Text 0 0,First,#,NHDFlowline_16_up_temp,VPUID,0,8;Enabled "Enabled" true true false 2 Short 0 0,First,#,NHDFlowline_16_up_temp,Enabled,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0,First,#,NHDFlowline_16_up_temp,Shape_Length,-1,-1" #ExportFeatures NHDFlowline_16_up "E:\OneDrive\OneDrive - The University of Alabama\02.projects\02.nidis\02.code\ewri\02.inputs\shape\river_bear.shp" # NOT_USE_ALIAS "COMID "COMID" true true false 4 Long 0 0,First,#,NHDFlowline_16_up,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0,First,#,NHDFlowline_16_up,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0,First,#,NHDFlowline_16_up,RESOLUTION,0,7;GNIS_ID "GNIS_ID" true true false 10 Text 0 0,First,#,NHDFlowline_16_up,GNIS_ID,0,10;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0,First,#,NHDFlowline_16_up,GNIS_NAME,0,65;LENGTHKM "LENGTHKM" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0,First,#,NHDFlowline_16_up,REACHCODE,0,14;FLOWDIR "FLOWDIR" true true false 15 Text 0 0,First,#,NHDFlowline_16_up,FLOWDIR,0,15;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0,First,#,NHDFlowline_16_up,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0,First,#,NHDFlowline_16_up,FTYPE,0,24;FCODE "FCODE" true true false 4 Long 0 0,First,#,NHDFlowline_16_up,FCODE,-1,-1;StreamLeve "StreamLeve" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,StreamLeve,-1,-1;StreamOrde "StreamOrde" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,StreamOrde,-1,-1;StreamCalc "StreamCalc" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,StreamCalc,-1,-1;FromNode "FromNode" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,FromNode,-1,-1;ToNode "ToNode" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,ToNode,-1,-1;Hydroseq "Hydroseq" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,Hydroseq,-1,-1;LevelPathI "LevelPathI" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,LevelPathI,-1,-1;Pathlength "Pathlength" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,Pathlength,-1,-1;TerminalPa "TerminalPa" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,TerminalPa,-1,-1;ArbolateSu "ArbolateSu" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,ArbolateSu,-1,-1;Divergence "Divergence" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,Divergence,-1,-1;StartFlag "StartFlag" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,StartFlag,-1,-1;TerminalFl "TerminalFl" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,TerminalFl,-1,-1;DnLevel "DnLevel" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,DnLevel,-1,-1;UpLevelPat "UpLevelPat" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,UpLevelPat,-1,-1;UpHydroseq "UpHydroseq" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,UpHydroseq,-1,-1;DnLevelPat "DnLevelPat" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,DnLevelPat,-1,-1;DnMinorHyd "DnMinorHyd" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,DnMinorHyd,-1,-1;DnDrainCou "DnDrainCou" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,DnDrainCou,-1,-1;DnHydroseq "DnHydroseq" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,DnHydroseq,-1,-1;FromMeas "FromMeas" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,FromMeas,-1,-1;ToMeas "ToMeas" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,ToMeas,-1,-1;RtnDiv "RtnDiv" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,RtnDiv,-1,-1;VPUIn "VPUIn" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VPUIn,-1,-1;VPUOut "VPUOut" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VPUOut,-1,-1;AreaSqKM "AreaSqKM" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,AreaSqKM,-1,-1;TotDASqKM "TotDASqKM" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,TotDASqKM,-1,-1;DivDASqKM "DivDASqKM" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,DivDASqKM,-1,-1;Tidal "Tidal" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,Tidal,-1,-1;TOTMA "TOTMA" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,TOTMA,-1,-1;WBAreaType "WBAreaType" true true false 24 Text 0 0,First,#,NHDFlowline_16_up,WBAreaType,0,24;PathTimeMA "PathTimeMA" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,PathTimeMA,-1,-1;HWNodeSqKM "HWNodeSqKM" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,HWNodeSqKM,-1,-1;MAXELEVRAW "MAXELEVRAW" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,MAXELEVRAW,-1,-1;MINELEVRAW "MINELEVRAW" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,MINELEVRAW,-1,-1;MAXELEVSMO "MAXELEVSMO" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,MAXELEVSMO,-1,-1;MINELEVSMO "MINELEVSMO" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,MINELEVSMO,-1,-1;SLOPE "SLOPE" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,SLOPE,-1,-1;ELEVFIXED "ELEVFIXED" true true false 1 Text 0 0,First,#,NHDFlowline_16_up,ELEVFIXED,0,1;HWTYPE "HWTYPE" true true false 1 Text 0 0,First,#,NHDFlowline_16_up,HWTYPE,0,1;SLOPELENKM "SLOPELENKM" true true false 4 Float 0 0,First,#,NHDFlowline_16_up,SLOPELENKM,-1,-1;QA_MA "QA_MA" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QA_MA,-1,-1;VA_MA "VA_MA" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VA_MA,-1,-1;QC_MA "QC_MA" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QC_MA,-1,-1;VC_MA "VC_MA" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VC_MA,-1,-1;QE_MA "QE_MA" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QE_MA,-1,-1;VE_MA "VE_MA" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VE_MA,-1,-1;QA_01 "QA_01" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QA_01,-1,-1;VA_01 "VA_01" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VA_01,-1,-1;QC_01 "QC_01" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QC_01,-1,-1;VC_01 "VC_01" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VC_01,-1,-1;QE_01 "QE_01" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QE_01,-1,-1;VE_01 "VE_01" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VE_01,-1,-1;QA_02 "QA_02" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QA_02,-1,-1;VA_02 "VA_02" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VA_02,-1,-1;QC_02 "QC_02" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QC_02,-1,-1;VC_02 "VC_02" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VC_02,-1,-1;QE_02 "QE_02" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QE_02,-1,-1;VE_02 "VE_02" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VE_02,-1,-1;QA_03 "QA_03" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QA_03,-1,-1;VA_03 "VA_03" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VA_03,-1,-1;QC_03 "QC_03" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QC_03,-1,-1;VC_03 "VC_03" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VC_03,-1,-1;QE_03 "QE_03" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QE_03,-1,-1;VE_03 "VE_03" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VE_03,-1,-1;QA_04 "QA_04" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QA_04,-1,-1;VA_04 "VA_04" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VA_04,-1,-1;QC_04 "QC_04" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QC_04,-1,-1;VC_04 "VC_04" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VC_04,-1,-1;QE_04 "QE_04" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QE_04,-1,-1;VE_04 "VE_04" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VE_04,-1,-1;QA_05 "QA_05" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QA_05,-1,-1;VA_05 "VA_05" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VA_05,-1,-1;QC_05 "QC_05" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QC_05,-1,-1;VC_05 "VC_05" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VC_05,-1,-1;QE_05 "QE_05" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QE_05,-1,-1;VE_05 "VE_05" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VE_05,-1,-1;QA_06 "QA_06" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QA_06,-1,-1;VA_06 "VA_06" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VA_06,-1,-1;QC_06 "QC_06" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QC_06,-1,-1;VC_06 "VC_06" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VC_06,-1,-1;QE_06 "QE_06" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QE_06,-1,-1;VE_06 "VE_06" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VE_06,-1,-1;QA_07 "QA_07" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QA_07,-1,-1;VA_07 "VA_07" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VA_07,-1,-1;QC_07 "QC_07" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QC_07,-1,-1;VC_07 "VC_07" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VC_07,-1,-1;QE_07 "QE_07" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QE_07,-1,-1;VE_07 "VE_07" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VE_07,-1,-1;QA_08 "QA_08" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QA_08,-1,-1;VA_08 "VA_08" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VA_08,-1,-1;QC_08 "QC_08" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QC_08,-1,-1;VC_08 "VC_08" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VC_08,-1,-1;QE_08 "QE_08" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QE_08,-1,-1;VE_08 "VE_08" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VE_08,-1,-1;QA_09 "QA_09" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QA_09,-1,-1;VA_09 "VA_09" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VA_09,-1,-1;QC_09 "QC_09" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QC_09,-1,-1;VC_09 "VC_09" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VC_09,-1,-1;QE_09 "QE_09" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QE_09,-1,-1;VE_09 "VE_09" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VE_09,-1,-1;QA_10 "QA_10" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QA_10,-1,-1;VA_10 "VA_10" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VA_10,-1,-1;QC_10 "QC_10" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QC_10,-1,-1;VC_10 "VC_10" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VC_10,-1,-1;QE_10 "QE_10" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QE_10,-1,-1;VE_10 "VE_10" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VE_10,-1,-1;QA_11 "QA_11" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QA_11,-1,-1;VA_11 "VA_11" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VA_11,-1,-1;QC_11 "QC_11" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QC_11,-1,-1;VC_11 "VC_11" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VC_11,-1,-1;QE_11 "QE_11" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QE_11,-1,-1;VE_11 "VE_11" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VE_11,-1,-1;QA_12 "QA_12" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QA_12,-1,-1;VA_12 "VA_12" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VA_12,-1,-1;QC_12 "QC_12" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QC_12,-1,-1;VC_12 "VC_12" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VC_12,-1,-1;QE_12 "QE_12" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,QE_12,-1,-1;VE_12 "VE_12" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,VE_12,-1,-1;LakeFract "LakeFract" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,LakeFract,-1,-1;SurfArea "SurfArea" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,SurfArea,-1,-1;RAreaHLoad "RAreaHLoad" true true false 8 Double 0 0,First,#,NHDFlowline_16_up,RAreaHLoad,-1,-1;RPUID "RPUID" true true false 8 Text 0 0,First,#,NHDFlowline_16_up,RPUID,0,8;VPUID "VPUID" true true false 8 Text 0 0,First,#,NHDFlowline_16_up,VPUID,0,8;Enabled "Enabled" true true false 2 Short 0 0,First,#,NHDFlowline_16_up,Enabled,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0,First,#,NHDFlowline_16_up,Shape_Length,-1,-1" #river_bear002file://\\CYB-TURING-AG1\E$\OneDrive\OneDrive - The University of Alabama\02.projects\02.nidis\02.code\ewri\02.inputs\shape\river_bear.shpLocal Area Network0.000GeographicGCS_North_American_1983Angular Unit: Degree (0.017453)<GeographicCoordinateSystem xsi:type='typens:GeographicCoordinateSystem' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.1.0'><WKT>GEOGCS[&quot;GCS_North_American_1983&quot;,DATUM[&quot;D_North_American_1983&quot;,SPHEROID[&quot;GRS_1980&quot;,6378137.0,298.257222101]],PRIMEM[&quot;Greenwich&quot;,0.0],UNIT[&quot;Degree&quot;,0.0174532925199433],AUTHORITY[&quot;EPSG&quot;,4269]]</WKT><XOrigin>-400</XOrigin><YOrigin>-400</YOrigin><XYScale>11258999068426.238</XYScale><ZOrigin>-100000</ZOrigin><ZScale>10000</ZScale><MOrigin>-100000</MOrigin><MScale>10000</MScale><XYTolerance>8.983152841195215e-09</XYTolerance><ZTolerance>0.001</ZTolerance><MTolerance>0.001</MTolerance><HighPrecision>true</HighPrecision><LeftLongitude>-180</LeftLongitude><WKID>4269</WKID><LatestWKID>4269</LatestWKID></GeographicCoordinateSystem>20240509005342002024050900534200Microsoft Windows 10 Version 10.0 (Build 19045) ; Esri ArcGIS 13.1.3.41833river_bearShapefile0.000datasetEPSG6.5(3.0.1)0SimpleFALSE0FALSETRUEriver_bearFeature Class0FIDFIDOID400Internal feature number.EsriSequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.EsriCoordinates defining the features.COMIDCOMIDInteger10100FDATEFDATEDate800RESOLUTIONRESOLUTIONString700GNIS_IDGNIS_IDString1000GNIS_NAMEGNIS_NAMEString6500LENGTHKMLENGTHKMDouble1900REACHCODEREACHCODEString1400FLOWDIRFLOWDIRString1500WBAREACOMIWBAREACOMIInteger10100FTYPEFTYPEString2400FCODEFCODEInteger10100StreamLeveStreamLeveDouble1900StreamOrdeStreamOrdeDouble1900StreamCalcStreamCalcDouble1900FromNodeFromNodeDouble1900ToNodeToNodeDouble1900HydroseqHydroseqDouble1900LevelPathILevelPathIDouble1900PathlengthPathlengthDouble1900TerminalPaTerminalPaDouble1900ArbolateSuArbolateSuDouble1900DivergenceDivergenceDouble1900StartFlagStartFlagDouble1900TerminalFlTerminalFlDouble1900DnLevelDnLevelDouble1900UpLevelPatUpLevelPatDouble1900UpHydroseqUpHydroseqDouble1900DnLevelPatDnLevelPatDouble1900DnMinorHydDnMinorHydDouble1900DnDrainCouDnDrainCouDouble1900DnHydroseqDnHydroseqDouble1900FromMeasFromMeasDouble1900ToMeasToMeasDouble1900RtnDivRtnDivDouble1900VPUInVPUInDouble1900VPUOutVPUOutDouble1900AreaSqKMAreaSqKMDouble1900TotDASqKMTotDASqKMDouble1900DivDASqKMDivDASqKMDouble1900TidalTidalDouble1900TOTMATOTMADouble1900WBAreaTypeWBAreaTypeString2400PathTimeMAPathTimeMADouble1900HWNodeSqKMHWNodeSqKMDouble1900MAXELEVRAWMAXELEVRAWDouble1900MINELEVRAWMINELEVRAWDouble1900MAXELEVSMOMAXELEVSMODouble1900MINELEVSMOMINELEVSMODouble1900SLOPESLOPEDouble1900ELEVFIXEDELEVFIXEDString100HWTYPEHWTYPEString100SLOPELENKMSLOPELENKMSingle1300QA_MAQA_MADouble1900VA_MAVA_MADouble1900QC_MAQC_MADouble1900VC_MAVC_MADouble1900QE_MAQE_MADouble1900VE_MAVE_MADouble1900QA_01QA_01Double1900VA_01VA_01Double1900QC_01QC_01Double1900VC_01VC_01Double1900QE_01QE_01Double1900VE_01VE_01Double1900QA_02QA_02Double1900VA_02VA_02Double1900QC_02QC_02Double1900VC_02VC_02Double1900QE_02QE_02Double1900VE_02VE_02Double1900QA_03QA_03Double1900VA_03VA_03Double1900QC_03QC_03Double1900VC_03VC_03Double1900QE_03QE_03Double1900VE_03VE_03Double1900QA_04QA_04Double1900VA_04VA_04Double1900QC_04QC_04Double1900VC_04VC_04Double1900QE_04QE_04Double1900VE_04VE_04Double1900QA_05QA_05Double1900VA_05VA_05Double1900QC_05QC_05Double1900VC_05VC_05Double1900QE_05QE_05Double1900VE_05VE_05Double1900QA_06QA_06Double1900VA_06VA_06Double1900QC_06QC_06Double1900VC_06VC_06Double1900QE_06QE_06Double1900VE_06VE_06Double1900QA_07QA_07Double1900VA_07VA_07Double1900QC_07QC_07Double1900VC_07VC_07Double1900QE_07QE_07Double1900VE_07VE_07Double1900QA_08QA_08Double1900VA_08VA_08Double1900QC_08QC_08Double1900VC_08VC_08Double1900QE_08QE_08Double1900VE_08VE_08Double1900QA_09QA_09Double1900VA_09VA_09Double1900QC_09QC_09Double1900VC_09VC_09Double1900QE_09QE_09Double1900VE_09VE_09Double1900QA_10QA_10Double1900VA_10VA_10Double1900QC_10QC_10Double1900VC_10VC_10Double1900QE_10QE_10Double1900VE_10VE_10Double1900QA_11QA_11Double1900VA_11VA_11Double1900QC_11QC_11Double1900VC_11VC_11Double1900QE_11QE_11Double1900VE_11VE_11Double1900QA_12QA_12Double1900VA_12VA_12Double1900QC_12QC_12Double1900VC_12VC_12Double1900QE_12QE_12Double1900VE_12VE_12Double1900LakeFractLakeFractDouble1900SurfAreaSurfAreaDouble1900RAreaHLoadRAreaHLoadDouble1900RPUIDRPUIDString800VPUIDVPUIDString800ENABLEDEnabledInteger550Shape_LengShape_LengDouble190020240509 diff --git a/book/tutorials/decision_trees/02.input/shape/river_bear.shx b/book/tutorials/decision_trees/02.input/shape/river_bear.shx new file mode 100644 index 0000000..547ec02 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/river_bear.shx differ diff --git a/book/tutorials/decision_trees/02.input/shape/river_jordan_weber.dbf b/book/tutorials/decision_trees/02.input/shape/river_jordan_weber.dbf new file mode 100644 index 0000000..b3d107b Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/river_jordan_weber.dbf differ diff --git a/book/tutorials/decision_trees/02.input/shape/river_jordan_weber.prj b/book/tutorials/decision_trees/02.input/shape/river_jordan_weber.prj new file mode 100644 index 0000000..5ded4bc --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/river_jordan_weber.prj @@ -0,0 +1 @@ +GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/book/tutorials/decision_trees/02.input/shape/river_jordan_weber.sbn b/book/tutorials/decision_trees/02.input/shape/river_jordan_weber.sbn new file mode 100644 index 0000000..a81205f Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/river_jordan_weber.sbn differ diff --git a/book/tutorials/decision_trees/02.input/shape/river_jordan_weber.shp b/book/tutorials/decision_trees/02.input/shape/river_jordan_weber.shp new file mode 100644 index 0000000..dfb8a78 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/river_jordan_weber.shp differ diff --git a/book/tutorials/decision_trees/02.input/shape/river_jordan_weber.shp.xml b/book/tutorials/decision_trees/02.input/shape/river_jordan_weber.shp.xml new file mode 100644 index 0000000..6dbc3f1 --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/river_jordan_weber.shp.xml @@ -0,0 +1 @@ +20181206110553001.0FALSECreateFeatureclass E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot NHDFlowline_Temp POLYLINE E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp ENABLED ENABLED "GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]];-400 -400 11258999068426.2;-100000 10000;-1023.7418235 4194304001953.12;8.98315284119521E-09;0.001;0.001;IsHighPrecision" # 0 0 0Append E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusNE/NHDPlus01/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMA/NHDPlus02/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03N/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03S/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSA/NHDPlus03W/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGL/NHDPlus04/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus05/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus06/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus07/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus08/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusSR/NHDPlus09/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10U/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus10L/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusMS/NHDPlus11/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusTX/NHDPlus12/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,ComID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,FDate,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_Name,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,LengthKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,ReachCode,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAreaComI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,FCode,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,Shape_Leng,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusRG/NHDPlus13/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,ComID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,FDate,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_Name,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,LengthKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,ReachCode,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAreaComI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,FCode,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,Shape_Leng,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus14/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,ComID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,FDate,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_Name,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,LengthKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,ReachCode,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAreaComI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,FCode,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,Shape_Leng,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCO/NHDPlus15/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,ComID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,FDate,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_Name,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,LengthKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,ReachCode,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAreaComI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,FCode,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,Shape_Leng,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusGB/NHDPlus16/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusPN/NHDPlus17/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Append E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp NO_TEST "COMID "COMID" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,RESOLUTION,-1,-1;GNIS_ID "GNIS_ID" true true false 10 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_ID,-1,-1;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NAME,-1,-1;LENGTHKM "LENGTHKM" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,REACHCODE,-1,-1;FLOWDIR "FLOWDIR" true true false 15 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,FLOWDIR,-1,-1;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,FTYPE,-1,-1;FCODE "FCODE" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,FCODE,-1,-1;SHAPE_LENG "SHAPE_LENG" true true false 8 Double 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,SHAPE_LENG,-1,-1;ENABLED "ENABLED" true true false 6 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,ENABLED,-1,-1;GNIS_NBR "GNIS_NBR" true true false 4 Long 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,GNIS_NBR,-1,-1;VPUTemp "VPUTemp" true true false 8 Text 0 0 ,First,#,E:/NHDPlusV21/NHDPlusCA/NHDPlus18/NHDSnapshot/Hydrography/NHDFlowline.shp,VPUTemp,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#" #Select E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Temp E:\NHDPlusV21\NHDPlusV21_National_Flattened.gdb\NHDSnapshot\NHDFlowline_Network "FLOWDIR = 'With Digitized'"JoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/PlusFlowlineVAA ComID StreamLeve;StreamOrde;StreamCalc;FromNode;ToNode;Hydroseq;LevelPathI;Pathlength;TerminalPa;ArbolateSu;Divergence;StartFlag;TerminalFl;DnLevel;UpLevelPat;UpHydroseq;DnLevelPat;DnMinorHyd;DnDrainCou;DnHydroseq;FromMeas;ToMeas;RtnDiv;VPUIn;VPUOut;AreaSqKM;TotDASqKM;DivDASqKM;Tidal;TOTMA;WBAreaType;PathTimeMAJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/HeadWaterNodeArea ComID HWNodeSqKMJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/Elevslope COMID MAXELEVRAW;MINELEVRAW;MAXELEVSMO;MINELEVSMO;SLOPE;ELEVFIXED;HWTYPE;SLOPELENKMJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_MA ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_MA QA_MA DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_MA VA_MA DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_MA QC_MA DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_MA VC_MA DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_MA QE_MA DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_MA VE_MA DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_01 ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_01 QA_01 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_01 VA_01 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_01 QC_01 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_01 VC_01 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_01 QE_01 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_01 VE_01 DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_02 ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_02 QA_02 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_02 VA_02 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_02 QC_02 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_02 VC_02 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_02 QE_02 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_02 VE_02 DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_03 ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_03 QA_03 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_03 VA_03 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_03 QC_03 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_03 VC_03 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_03 QE_03 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_03 VE_03 DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_04 ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_04 QA_04 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_04 VA_04 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_04 QC_04 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_04 VC_04 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_04 QE_04 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_04 VE_04 DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_05 ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_05 QA_05 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_05 VA_05 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_05 QC_05 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_05 VC_05 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_05 QE_05 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_05 VE_05 DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_06 ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_06 QA_06 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_06 VA_06 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_06 QC_06 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_06 VC_06 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_06 QE_06 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_06 VE_06 DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_07 ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_07 QA_07 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_07 VA_07 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_07 QC_07 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_07 VC_07 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_07 QE_07 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_07 VE_07 DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_08 ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_08 QA_08 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_08 VA_08 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_08 QC_08 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_08 VC_08 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_08 QE_08 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_08 VE_08 DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_09 ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_09 QA_09 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_09 VA_09 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_09 QC_09 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_09 VC_09 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_09 QE_09 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_09 VE_09 DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_10 ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_10 QA_10 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_10 VA_10 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_10 QC_10 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_10 VC_10 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_10 QE_10 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_10 VE_10 DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_11 ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_11 QA_11 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_11 VA_11 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_11 QC_11 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_11 VC_11 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_11 QE_11 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_11 VE_11 DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/EROM_12 ComID Q0001A;V0001A;Q0001C;V0001C;Q0001E;V0001EAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001A QA_12 QA_12 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001A VA_12 VA_12 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001C QC_12 QC_12 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001C VC_12 VC_12 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network Q0001E QE_12 QE_12 DOUBLE 8 NULLABLE falseAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network V0001E VE_12 VE_12 DOUBLE 8 NULLABLE falseJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/PlusFlowlineLakeMorphology_Temp ComID LakeFract;SurfArea;RAreaHLoadJoinField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network COMID E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDPlusBurnComponents/BurnLineEvent COMID InRPUAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network InRPU RPUID RPUID TEXT 8 NULLABLE falseAddField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network VPUID TEXT # # 8 VPUID NULLABLE NON_REQUIRED #CalculateField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network VPUID !VPUTemp! PYTHON #DeleteField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network VPUTempDeleteField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network SHAPE_LENG;GNIS_NBRAlterField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network ENABLED ENABLED_CHAR ENABLED_CHAR TEXT 6 NULLABLE falseDeleteField E:/NHDPlusV21/NHDPlusV21_National_Flattened.gdb/NHDSnapshot/NHDFlowline_Network ENABLED_CHARClip NHDFlowline_Network wbdhu_16_down "E:\OneDrive\OneDrive - The University of Alabama\01.dissertation\04.data\01.gsl\01.map\02.modified_data\my_basin_v_00\my_basin_v_00.gdb\NHDFlowline_16_down_temp" #ExportFeatures NHDFlowline_16_down_temp "E:\OneDrive\OneDrive - The University of Alabama\01.dissertation\04.data\01.gsl\01.map\02.modified_data\my_basin_v_00\my_basin_v_00.gdb\NHDFlowline_16_down" # NOT_USE_ALIAS "COMID "COMID" true true false 4 Long 0 0,First,#,NHDFlowline_16_down_temp,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0,First,#,NHDFlowline_16_down_temp,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0,First,#,NHDFlowline_16_down_temp,RESOLUTION,0,7;GNIS_ID "GNIS_ID" true true false 10 Text 0 0,First,#,NHDFlowline_16_down_temp,GNIS_ID,0,10;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0,First,#,NHDFlowline_16_down_temp,GNIS_NAME,0,65;LENGTHKM "LENGTHKM" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0,First,#,NHDFlowline_16_down_temp,REACHCODE,0,14;FLOWDIR "FLOWDIR" true true false 15 Text 0 0,First,#,NHDFlowline_16_down_temp,FLOWDIR,0,15;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0,First,#,NHDFlowline_16_down_temp,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0,First,#,NHDFlowline_16_down_temp,FTYPE,0,24;FCODE "FCODE" true true false 4 Long 0 0,First,#,NHDFlowline_16_down_temp,FCODE,-1,-1;StreamLeve "StreamLeve" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,StreamLeve,-1,-1;StreamOrde "StreamOrde" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,StreamOrde,-1,-1;StreamCalc "StreamCalc" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,StreamCalc,-1,-1;FromNode "FromNode" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,FromNode,-1,-1;ToNode "ToNode" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,ToNode,-1,-1;Hydroseq "Hydroseq" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,Hydroseq,-1,-1;LevelPathI "LevelPathI" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,LevelPathI,-1,-1;Pathlength "Pathlength" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,Pathlength,-1,-1;TerminalPa "TerminalPa" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,TerminalPa,-1,-1;ArbolateSu "ArbolateSu" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,ArbolateSu,-1,-1;Divergence "Divergence" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,Divergence,-1,-1;StartFlag "StartFlag" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,StartFlag,-1,-1;TerminalFl "TerminalFl" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,TerminalFl,-1,-1;DnLevel "DnLevel" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,DnLevel,-1,-1;UpLevelPat "UpLevelPat" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,UpLevelPat,-1,-1;UpHydroseq "UpHydroseq" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,UpHydroseq,-1,-1;DnLevelPat "DnLevelPat" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,DnLevelPat,-1,-1;DnMinorHyd "DnMinorHyd" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,DnMinorHyd,-1,-1;DnDrainCou "DnDrainCou" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,DnDrainCou,-1,-1;DnHydroseq "DnHydroseq" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,DnHydroseq,-1,-1;FromMeas "FromMeas" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,FromMeas,-1,-1;ToMeas "ToMeas" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,ToMeas,-1,-1;RtnDiv "RtnDiv" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,RtnDiv,-1,-1;VPUIn "VPUIn" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VPUIn,-1,-1;VPUOut "VPUOut" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VPUOut,-1,-1;AreaSqKM "AreaSqKM" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,AreaSqKM,-1,-1;TotDASqKM "TotDASqKM" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,TotDASqKM,-1,-1;DivDASqKM "DivDASqKM" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,DivDASqKM,-1,-1;Tidal "Tidal" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,Tidal,-1,-1;TOTMA "TOTMA" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,TOTMA,-1,-1;WBAreaType "WBAreaType" true true false 24 Text 0 0,First,#,NHDFlowline_16_down_temp,WBAreaType,0,24;PathTimeMA "PathTimeMA" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,PathTimeMA,-1,-1;HWNodeSqKM "HWNodeSqKM" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,HWNodeSqKM,-1,-1;MAXELEVRAW "MAXELEVRAW" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,MAXELEVRAW,-1,-1;MINELEVRAW "MINELEVRAW" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,MINELEVRAW,-1,-1;MAXELEVSMO "MAXELEVSMO" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,MAXELEVSMO,-1,-1;MINELEVSMO "MINELEVSMO" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,MINELEVSMO,-1,-1;SLOPE "SLOPE" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,SLOPE,-1,-1;ELEVFIXED "ELEVFIXED" true true false 1 Text 0 0,First,#,NHDFlowline_16_down_temp,ELEVFIXED,0,1;HWTYPE "HWTYPE" true true false 1 Text 0 0,First,#,NHDFlowline_16_down_temp,HWTYPE,0,1;SLOPELENKM "SLOPELENKM" true true false 4 Float 0 0,First,#,NHDFlowline_16_down_temp,SLOPELENKM,-1,-1;QA_MA "QA_MA" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QA_MA,-1,-1;VA_MA "VA_MA" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VA_MA,-1,-1;QC_MA "QC_MA" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QC_MA,-1,-1;VC_MA "VC_MA" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VC_MA,-1,-1;QE_MA "QE_MA" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QE_MA,-1,-1;VE_MA "VE_MA" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VE_MA,-1,-1;QA_01 "QA_01" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QA_01,-1,-1;VA_01 "VA_01" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VA_01,-1,-1;QC_01 "QC_01" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QC_01,-1,-1;VC_01 "VC_01" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VC_01,-1,-1;QE_01 "QE_01" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QE_01,-1,-1;VE_01 "VE_01" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VE_01,-1,-1;QA_02 "QA_02" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QA_02,-1,-1;VA_02 "VA_02" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VA_02,-1,-1;QC_02 "QC_02" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QC_02,-1,-1;VC_02 "VC_02" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VC_02,-1,-1;QE_02 "QE_02" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QE_02,-1,-1;VE_02 "VE_02" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VE_02,-1,-1;QA_03 "QA_03" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QA_03,-1,-1;VA_03 "VA_03" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VA_03,-1,-1;QC_03 "QC_03" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QC_03,-1,-1;VC_03 "VC_03" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VC_03,-1,-1;QE_03 "QE_03" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QE_03,-1,-1;VE_03 "VE_03" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VE_03,-1,-1;QA_04 "QA_04" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QA_04,-1,-1;VA_04 "VA_04" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VA_04,-1,-1;QC_04 "QC_04" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QC_04,-1,-1;VC_04 "VC_04" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VC_04,-1,-1;QE_04 "QE_04" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QE_04,-1,-1;VE_04 "VE_04" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VE_04,-1,-1;QA_05 "QA_05" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QA_05,-1,-1;VA_05 "VA_05" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VA_05,-1,-1;QC_05 "QC_05" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QC_05,-1,-1;VC_05 "VC_05" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VC_05,-1,-1;QE_05 "QE_05" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QE_05,-1,-1;VE_05 "VE_05" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VE_05,-1,-1;QA_06 "QA_06" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QA_06,-1,-1;VA_06 "VA_06" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VA_06,-1,-1;QC_06 "QC_06" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QC_06,-1,-1;VC_06 "VC_06" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VC_06,-1,-1;QE_06 "QE_06" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QE_06,-1,-1;VE_06 "VE_06" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VE_06,-1,-1;QA_07 "QA_07" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QA_07,-1,-1;VA_07 "VA_07" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VA_07,-1,-1;QC_07 "QC_07" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QC_07,-1,-1;VC_07 "VC_07" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VC_07,-1,-1;QE_07 "QE_07" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QE_07,-1,-1;VE_07 "VE_07" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VE_07,-1,-1;QA_08 "QA_08" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QA_08,-1,-1;VA_08 "VA_08" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VA_08,-1,-1;QC_08 "QC_08" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QC_08,-1,-1;VC_08 "VC_08" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VC_08,-1,-1;QE_08 "QE_08" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QE_08,-1,-1;VE_08 "VE_08" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VE_08,-1,-1;QA_09 "QA_09" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QA_09,-1,-1;VA_09 "VA_09" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VA_09,-1,-1;QC_09 "QC_09" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QC_09,-1,-1;VC_09 "VC_09" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VC_09,-1,-1;QE_09 "QE_09" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QE_09,-1,-1;VE_09 "VE_09" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VE_09,-1,-1;QA_10 "QA_10" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QA_10,-1,-1;VA_10 "VA_10" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VA_10,-1,-1;QC_10 "QC_10" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QC_10,-1,-1;VC_10 "VC_10" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VC_10,-1,-1;QE_10 "QE_10" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QE_10,-1,-1;VE_10 "VE_10" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VE_10,-1,-1;QA_11 "QA_11" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QA_11,-1,-1;VA_11 "VA_11" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VA_11,-1,-1;QC_11 "QC_11" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QC_11,-1,-1;VC_11 "VC_11" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VC_11,-1,-1;QE_11 "QE_11" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QE_11,-1,-1;VE_11 "VE_11" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VE_11,-1,-1;QA_12 "QA_12" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QA_12,-1,-1;VA_12 "VA_12" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VA_12,-1,-1;QC_12 "QC_12" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QC_12,-1,-1;VC_12 "VC_12" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VC_12,-1,-1;QE_12 "QE_12" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,QE_12,-1,-1;VE_12 "VE_12" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,VE_12,-1,-1;LakeFract "LakeFract" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,LakeFract,-1,-1;SurfArea "SurfArea" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,SurfArea,-1,-1;RAreaHLoad "RAreaHLoad" true true false 8 Double 0 0,First,#,NHDFlowline_16_down_temp,RAreaHLoad,-1,-1;RPUID "RPUID" true true false 8 Text 0 0,First,#,NHDFlowline_16_down_temp,RPUID,0,8;VPUID "VPUID" true true false 8 Text 0 0,First,#,NHDFlowline_16_down_temp,VPUID,0,8;Enabled "Enabled" true true false 2 Short 0 0,First,#,NHDFlowline_16_down_temp,Enabled,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0,First,#,NHDFlowline_16_down_temp,Shape_Length,-1,-1" #ExportFeatures NHDFlowline_16_down "E:\OneDrive\OneDrive - The University of Alabama\02.projects\02.nidis\02.code\ewri\02.inputs\shape\river_jordan_weber.shp" # NOT_USE_ALIAS "COMID "COMID" true true false 4 Long 0 0,First,#,NHDFlowline_16_down,COMID,-1,-1;FDATE "FDATE" true true false 8 Date 0 0,First,#,NHDFlowline_16_down,FDATE,-1,-1;RESOLUTION "RESOLUTION" true true false 7 Text 0 0,First,#,NHDFlowline_16_down,RESOLUTION,0,7;GNIS_ID "GNIS_ID" true true false 10 Text 0 0,First,#,NHDFlowline_16_down,GNIS_ID,0,10;GNIS_NAME "GNIS_NAME" true true false 65 Text 0 0,First,#,NHDFlowline_16_down,GNIS_NAME,0,65;LENGTHKM "LENGTHKM" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,LENGTHKM,-1,-1;REACHCODE "REACHCODE" true true false 14 Text 0 0,First,#,NHDFlowline_16_down,REACHCODE,0,14;FLOWDIR "FLOWDIR" true true false 15 Text 0 0,First,#,NHDFlowline_16_down,FLOWDIR,0,15;WBAREACOMI "WBAREACOMI" true true false 4 Long 0 0,First,#,NHDFlowline_16_down,WBAREACOMI,-1,-1;FTYPE "FTYPE" true true false 24 Text 0 0,First,#,NHDFlowline_16_down,FTYPE,0,24;FCODE "FCODE" true true false 4 Long 0 0,First,#,NHDFlowline_16_down,FCODE,-1,-1;StreamLeve "StreamLeve" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,StreamLeve,-1,-1;StreamOrde "StreamOrde" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,StreamOrde,-1,-1;StreamCalc "StreamCalc" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,StreamCalc,-1,-1;FromNode "FromNode" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,FromNode,-1,-1;ToNode "ToNode" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,ToNode,-1,-1;Hydroseq "Hydroseq" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,Hydroseq,-1,-1;LevelPathI "LevelPathI" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,LevelPathI,-1,-1;Pathlength "Pathlength" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,Pathlength,-1,-1;TerminalPa "TerminalPa" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,TerminalPa,-1,-1;ArbolateSu "ArbolateSu" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,ArbolateSu,-1,-1;Divergence "Divergence" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,Divergence,-1,-1;StartFlag "StartFlag" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,StartFlag,-1,-1;TerminalFl "TerminalFl" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,TerminalFl,-1,-1;DnLevel "DnLevel" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,DnLevel,-1,-1;UpLevelPat "UpLevelPat" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,UpLevelPat,-1,-1;UpHydroseq "UpHydroseq" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,UpHydroseq,-1,-1;DnLevelPat "DnLevelPat" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,DnLevelPat,-1,-1;DnMinorHyd "DnMinorHyd" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,DnMinorHyd,-1,-1;DnDrainCou "DnDrainCou" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,DnDrainCou,-1,-1;DnHydroseq "DnHydroseq" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,DnHydroseq,-1,-1;FromMeas "FromMeas" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,FromMeas,-1,-1;ToMeas "ToMeas" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,ToMeas,-1,-1;RtnDiv "RtnDiv" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,RtnDiv,-1,-1;VPUIn "VPUIn" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VPUIn,-1,-1;VPUOut "VPUOut" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VPUOut,-1,-1;AreaSqKM "AreaSqKM" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,AreaSqKM,-1,-1;TotDASqKM "TotDASqKM" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,TotDASqKM,-1,-1;DivDASqKM "DivDASqKM" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,DivDASqKM,-1,-1;Tidal "Tidal" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,Tidal,-1,-1;TOTMA "TOTMA" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,TOTMA,-1,-1;WBAreaType "WBAreaType" true true false 24 Text 0 0,First,#,NHDFlowline_16_down,WBAreaType,0,24;PathTimeMA "PathTimeMA" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,PathTimeMA,-1,-1;HWNodeSqKM "HWNodeSqKM" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,HWNodeSqKM,-1,-1;MAXELEVRAW "MAXELEVRAW" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,MAXELEVRAW,-1,-1;MINELEVRAW "MINELEVRAW" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,MINELEVRAW,-1,-1;MAXELEVSMO "MAXELEVSMO" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,MAXELEVSMO,-1,-1;MINELEVSMO "MINELEVSMO" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,MINELEVSMO,-1,-1;SLOPE "SLOPE" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,SLOPE,-1,-1;ELEVFIXED "ELEVFIXED" true true false 1 Text 0 0,First,#,NHDFlowline_16_down,ELEVFIXED,0,1;HWTYPE "HWTYPE" true true false 1 Text 0 0,First,#,NHDFlowline_16_down,HWTYPE,0,1;SLOPELENKM "SLOPELENKM" true true false 4 Float 0 0,First,#,NHDFlowline_16_down,SLOPELENKM,-1,-1;QA_MA "QA_MA" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QA_MA,-1,-1;VA_MA "VA_MA" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VA_MA,-1,-1;QC_MA "QC_MA" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QC_MA,-1,-1;VC_MA "VC_MA" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VC_MA,-1,-1;QE_MA "QE_MA" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QE_MA,-1,-1;VE_MA "VE_MA" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VE_MA,-1,-1;QA_01 "QA_01" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QA_01,-1,-1;VA_01 "VA_01" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VA_01,-1,-1;QC_01 "QC_01" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QC_01,-1,-1;VC_01 "VC_01" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VC_01,-1,-1;QE_01 "QE_01" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QE_01,-1,-1;VE_01 "VE_01" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VE_01,-1,-1;QA_02 "QA_02" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QA_02,-1,-1;VA_02 "VA_02" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VA_02,-1,-1;QC_02 "QC_02" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QC_02,-1,-1;VC_02 "VC_02" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VC_02,-1,-1;QE_02 "QE_02" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QE_02,-1,-1;VE_02 "VE_02" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VE_02,-1,-1;QA_03 "QA_03" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QA_03,-1,-1;VA_03 "VA_03" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VA_03,-1,-1;QC_03 "QC_03" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QC_03,-1,-1;VC_03 "VC_03" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VC_03,-1,-1;QE_03 "QE_03" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QE_03,-1,-1;VE_03 "VE_03" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VE_03,-1,-1;QA_04 "QA_04" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QA_04,-1,-1;VA_04 "VA_04" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VA_04,-1,-1;QC_04 "QC_04" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QC_04,-1,-1;VC_04 "VC_04" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VC_04,-1,-1;QE_04 "QE_04" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QE_04,-1,-1;VE_04 "VE_04" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VE_04,-1,-1;QA_05 "QA_05" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QA_05,-1,-1;VA_05 "VA_05" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VA_05,-1,-1;QC_05 "QC_05" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QC_05,-1,-1;VC_05 "VC_05" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VC_05,-1,-1;QE_05 "QE_05" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QE_05,-1,-1;VE_05 "VE_05" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VE_05,-1,-1;QA_06 "QA_06" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QA_06,-1,-1;VA_06 "VA_06" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VA_06,-1,-1;QC_06 "QC_06" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QC_06,-1,-1;VC_06 "VC_06" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VC_06,-1,-1;QE_06 "QE_06" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QE_06,-1,-1;VE_06 "VE_06" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VE_06,-1,-1;QA_07 "QA_07" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QA_07,-1,-1;VA_07 "VA_07" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VA_07,-1,-1;QC_07 "QC_07" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QC_07,-1,-1;VC_07 "VC_07" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VC_07,-1,-1;QE_07 "QE_07" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QE_07,-1,-1;VE_07 "VE_07" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VE_07,-1,-1;QA_08 "QA_08" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QA_08,-1,-1;VA_08 "VA_08" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VA_08,-1,-1;QC_08 "QC_08" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QC_08,-1,-1;VC_08 "VC_08" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VC_08,-1,-1;QE_08 "QE_08" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QE_08,-1,-1;VE_08 "VE_08" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VE_08,-1,-1;QA_09 "QA_09" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QA_09,-1,-1;VA_09 "VA_09" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VA_09,-1,-1;QC_09 "QC_09" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QC_09,-1,-1;VC_09 "VC_09" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VC_09,-1,-1;QE_09 "QE_09" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QE_09,-1,-1;VE_09 "VE_09" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VE_09,-1,-1;QA_10 "QA_10" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QA_10,-1,-1;VA_10 "VA_10" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VA_10,-1,-1;QC_10 "QC_10" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QC_10,-1,-1;VC_10 "VC_10" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VC_10,-1,-1;QE_10 "QE_10" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QE_10,-1,-1;VE_10 "VE_10" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VE_10,-1,-1;QA_11 "QA_11" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QA_11,-1,-1;VA_11 "VA_11" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VA_11,-1,-1;QC_11 "QC_11" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QC_11,-1,-1;VC_11 "VC_11" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VC_11,-1,-1;QE_11 "QE_11" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QE_11,-1,-1;VE_11 "VE_11" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VE_11,-1,-1;QA_12 "QA_12" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QA_12,-1,-1;VA_12 "VA_12" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VA_12,-1,-1;QC_12 "QC_12" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QC_12,-1,-1;VC_12 "VC_12" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VC_12,-1,-1;QE_12 "QE_12" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,QE_12,-1,-1;VE_12 "VE_12" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,VE_12,-1,-1;LakeFract "LakeFract" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,LakeFract,-1,-1;SurfArea "SurfArea" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,SurfArea,-1,-1;RAreaHLoad "RAreaHLoad" true true false 8 Double 0 0,First,#,NHDFlowline_16_down,RAreaHLoad,-1,-1;RPUID "RPUID" true true false 8 Text 0 0,First,#,NHDFlowline_16_down,RPUID,0,8;VPUID "VPUID" true true false 8 Text 0 0,First,#,NHDFlowline_16_down,VPUID,0,8;Enabled "Enabled" true true false 2 Short 0 0,First,#,NHDFlowline_16_down,Enabled,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0,First,#,NHDFlowline_16_down,Shape_Length,-1,-1" #river_jordan_weber002file://\\CYB-TURING-AG1\E$\OneDrive\OneDrive - The University of Alabama\02.projects\02.nidis\02.code\ewri\02.inputs\shape\river_jordan_weber.shpLocal Area Network0.000GeographicGCS_North_American_1983Angular Unit: Degree (0.017453)<GeographicCoordinateSystem xsi:type='typens:GeographicCoordinateSystem' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.1.0'><WKT>GEOGCS[&quot;GCS_North_American_1983&quot;,DATUM[&quot;D_North_American_1983&quot;,SPHEROID[&quot;GRS_1980&quot;,6378137.0,298.257222101]],PRIMEM[&quot;Greenwich&quot;,0.0],UNIT[&quot;Degree&quot;,0.0174532925199433],AUTHORITY[&quot;EPSG&quot;,4269]]</WKT><XOrigin>-400</XOrigin><YOrigin>-400</YOrigin><XYScale>11258999068426.238</XYScale><ZOrigin>-100000</ZOrigin><ZScale>10000</ZScale><MOrigin>-100000</MOrigin><MScale>10000</MScale><XYTolerance>8.983152841195215e-09</XYTolerance><ZTolerance>0.001</ZTolerance><MTolerance>0.001</MTolerance><HighPrecision>true</HighPrecision><LeftLongitude>-180</LeftLongitude><WKID>4269</WKID><LatestWKID>4269</LatestWKID></GeographicCoordinateSystem>20240509011905002024050901190500Microsoft Windows 10 Version 10.0 (Build 19045) ; Esri ArcGIS 13.1.3.41833river_jordan_weberShapefile0.000datasetEPSG6.5(3.0.1)0SimpleFALSE0FALSETRUEriver_jordan_weberFeature Class0FIDFIDOID400Internal feature number.EsriSequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.EsriCoordinates defining the features.COMIDCOMIDInteger10100FDATEFDATEDate800RESOLUTIONRESOLUTIONString700GNIS_IDGNIS_IDString1000GNIS_NAMEGNIS_NAMEString6500LENGTHKMLENGTHKMDouble1900REACHCODEREACHCODEString1400FLOWDIRFLOWDIRString1500WBAREACOMIWBAREACOMIInteger10100FTYPEFTYPEString2400FCODEFCODEInteger10100StreamLeveStreamLeveDouble1900StreamOrdeStreamOrdeDouble1900StreamCalcStreamCalcDouble1900FromNodeFromNodeDouble1900ToNodeToNodeDouble1900HydroseqHydroseqDouble1900LevelPathILevelPathIDouble1900PathlengthPathlengthDouble1900TerminalPaTerminalPaDouble1900ArbolateSuArbolateSuDouble1900DivergenceDivergenceDouble1900StartFlagStartFlagDouble1900TerminalFlTerminalFlDouble1900DnLevelDnLevelDouble1900UpLevelPatUpLevelPatDouble1900UpHydroseqUpHydroseqDouble1900DnLevelPatDnLevelPatDouble1900DnMinorHydDnMinorHydDouble1900DnDrainCouDnDrainCouDouble1900DnHydroseqDnHydroseqDouble1900FromMeasFromMeasDouble1900ToMeasToMeasDouble1900RtnDivRtnDivDouble1900VPUInVPUInDouble1900VPUOutVPUOutDouble1900AreaSqKMAreaSqKMDouble1900TotDASqKMTotDASqKMDouble1900DivDASqKMDivDASqKMDouble1900TidalTidalDouble1900TOTMATOTMADouble1900WBAreaTypeWBAreaTypeString2400PathTimeMAPathTimeMADouble1900HWNodeSqKMHWNodeSqKMDouble1900MAXELEVRAWMAXELEVRAWDouble1900MINELEVRAWMINELEVRAWDouble1900MAXELEVSMOMAXELEVSMODouble1900MINELEVSMOMINELEVSMODouble1900SLOPESLOPEDouble1900ELEVFIXEDELEVFIXEDString100HWTYPEHWTYPEString100SLOPELENKMSLOPELENKMSingle1300QA_MAQA_MADouble1900VA_MAVA_MADouble1900QC_MAQC_MADouble1900VC_MAVC_MADouble1900QE_MAQE_MADouble1900VE_MAVE_MADouble1900QA_01QA_01Double1900VA_01VA_01Double1900QC_01QC_01Double1900VC_01VC_01Double1900QE_01QE_01Double1900VE_01VE_01Double1900QA_02QA_02Double1900VA_02VA_02Double1900QC_02QC_02Double1900VC_02VC_02Double1900QE_02QE_02Double1900VE_02VE_02Double1900QA_03QA_03Double1900VA_03VA_03Double1900QC_03QC_03Double1900VC_03VC_03Double1900QE_03QE_03Double1900VE_03VE_03Double1900QA_04QA_04Double1900VA_04VA_04Double1900QC_04QC_04Double1900VC_04VC_04Double1900QE_04QE_04Double1900VE_04VE_04Double1900QA_05QA_05Double1900VA_05VA_05Double1900QC_05QC_05Double1900VC_05VC_05Double1900QE_05QE_05Double1900VE_05VE_05Double1900QA_06QA_06Double1900VA_06VA_06Double1900QC_06QC_06Double1900VC_06VC_06Double1900QE_06QE_06Double1900VE_06VE_06Double1900QA_07QA_07Double1900VA_07VA_07Double1900QC_07QC_07Double1900VC_07VC_07Double1900QE_07QE_07Double1900VE_07VE_07Double1900QA_08QA_08Double1900VA_08VA_08Double1900QC_08QC_08Double1900VC_08VC_08Double1900QE_08QE_08Double1900VE_08VE_08Double1900QA_09QA_09Double1900VA_09VA_09Double1900QC_09QC_09Double1900VC_09VC_09Double1900QE_09QE_09Double1900VE_09VE_09Double1900QA_10QA_10Double1900VA_10VA_10Double1900QC_10QC_10Double1900VC_10VC_10Double1900QE_10QE_10Double1900VE_10VE_10Double1900QA_11QA_11Double1900VA_11VA_11Double1900QC_11QC_11Double1900VC_11VC_11Double1900QE_11QE_11Double1900VE_11VE_11Double1900QA_12QA_12Double1900VA_12VA_12Double1900QC_12QC_12Double1900VC_12VC_12Double1900QE_12QE_12Double1900VE_12VE_12Double1900LakeFractLakeFractDouble1900SurfAreaSurfAreaDouble1900RAreaHLoadRAreaHLoadDouble1900RPUIDRPUIDString800VPUIDVPUIDString800ENABLEDEnabledInteger550Shape_LengShape_LengDouble190020240509 diff --git a/book/tutorials/decision_trees/02.input/shape/river_jordan_weber.shx b/book/tutorials/decision_trees/02.input/shape/river_jordan_weber.shx new file mode 100644 index 0000000..66d92b9 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/river_jordan_weber.shx differ diff --git a/book/tutorials/decision_trees/02.input/shape/weber.cpg b/book/tutorials/decision_trees/02.input/shape/weber.cpg new file mode 100644 index 0000000..3ad133c --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/weber.cpg @@ -0,0 +1 @@ +UTF-8 \ No newline at end of file diff --git a/book/tutorials/decision_trees/02.input/shape/weber.dbf b/book/tutorials/decision_trees/02.input/shape/weber.dbf new file mode 100644 index 0000000..cd67d15 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/weber.dbf differ diff --git a/book/tutorials/decision_trees/02.input/shape/weber.prj b/book/tutorials/decision_trees/02.input/shape/weber.prj new file mode 100644 index 0000000..5ded4bc --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/weber.prj @@ -0,0 +1 @@ +GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/book/tutorials/decision_trees/02.input/shape/weber.sbn b/book/tutorials/decision_trees/02.input/shape/weber.sbn new file mode 100644 index 0000000..24053ec Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/weber.sbn differ diff --git a/book/tutorials/decision_trees/02.input/shape/weber.sbx b/book/tutorials/decision_trees/02.input/shape/weber.sbx new file mode 100644 index 0000000..d5b5be4 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/weber.sbx differ diff --git a/book/tutorials/decision_trees/02.input/shape/weber.shp b/book/tutorials/decision_trees/02.input/shape/weber.shp new file mode 100644 index 0000000..9acfda5 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/weber.shp differ diff --git a/book/tutorials/decision_trees/02.input/shape/weber.shp.xml b/book/tutorials/decision_trees/02.input/shape/weber.shp.xml new file mode 100644 index 0000000..b81b070 --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/weber.shp.xml @@ -0,0 +1,2553 @@ +U.S. Geological Survey (USGS)U.S. Department of Agriculture - Natural Resource Conservation Service (NRCS)U.S. Environmental Protection Agency (EPA)Other Federal, State, and local partners (see dataset specific metadata for details http://nhd.usgs.gov/wbd_metadata.html)20151216National Watershed Boundary Dataset (WBD)Vector Digital Data Setftp://rockyftp.cr.usgs.gov/vdelivery/Datasets/Staged/Hydrography/WBD/National/GDB/National_WBD.zipThe Watershed Boundary Dataset (WBD) is a comprehensive aggregated collection of hydrologic unit data consistent with the national criteria for delineation and resolution. It defines the areal extent of surface water drainage to a point except in coastal or lake front areas where there could be multiple outlets as stated by the "Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)" “Standard” (http://pubs.usgs.gov/tm/11/a3/). Watershed boundaries are determined solely upon science-based hydrologic principles, not favoring any administrative boundaries or special projects, nor particular program or agency. This dataset represents the hydrologic unit boundaries to the 12-digit (6th level) for the entire United States. Some areas may also include additional subdivisions representing the 14- and 16-digit hydrologic unit (HU). At a minimum, the HUs are delineated at 1:24,000-scale in the conterminous United States, 1:25,000-scale in Hawaii, Pacific basin and the Caribbean, and 1:63,360-scale in Alaska, meeting the National Map Accuracy Standards (NMAS). Higher resolution boundaries are being developed where partners and data exist and will be incorporated back into the WBD. WBD data are delivered as a dataset of polygons and corresponding lines that define the boundary of the polygon. WBD polygon attributes include hydrologic unit codes (HUC), size (in the form of acres and square kilometers), name, downstream hydrologic unit code, type of watershed, non-contributing areas, and flow modifications. The HUC describes where the unit is in the country and the level of the unit. WBD line attributes contain the highest level of hydrologic unit for each boundary, line source information and flow modifications.The intent of defining Hydrologic Units (HU) within the Watershed Boundary Dataset is to establish a base-line drainage boundary framework, accounting for all land and surface areas. Hydrologic units are intended to be used as a tool for water-resource management and planning activities particularly for site-specific and localized studies requiring a level of detail provided by large-scale map information. The WBD complements the National Hydrography Dataset (NHD) and supports numerous programmatic missions and activities including: watershed management, rehabilitation and enhancement, aquatic species conservation strategies, flood plain management and flood prevention, water-quality initiatives and programs, dam safety programs, fire assessment and management, resource inventory and assessment, water data analysis and water census.The WBD was produced and is maintained through a cooperative process involving state, federal and local partners. Process information for a specific state or region can be found within the state specific metadata located at http://nhd.usgs.gov/wbd_metdata.html. This metadata file has information for WBD features contained in the WBD feature dataset. This includes information about the 2-, 4-, 6-, 8-, 10-, 12-, 14-, 16-digit polygons and WBD_Line dataset. Users accessing the WBD via shapefile will need to search for the attribution related to that specific dataset.19802016publication dateCompleteAs needed-179.229655487179.85667473571.4395725902-14.4246950943ISO 19115 Topic CategoryinlandWatersWatershed Boundary DatasetWBDHydrologic UnitsHydrologic Unit CodeHUCRegionSub-regionBasinSub-basinWatershedSubwatershed2-digit4-digit6-digit8-digit10-digit12-digit14-digit16-digitU.S. Department of Commerce, 1977, Countries, dependencies, areas of special sovereignty, and their principal administrative divisions (Federal Information Processing Standards 10-3): Washington, D.C., National Institute of Standards and Technology.USUnited StatesNoneThe distributor shall not be held liable for improper or incorrect use of this data, based on the description of appropriate/inappropriate uses described in this metadata document. It is strongly recommended that this data is directly acquired from the distributor and not indirectly through other sources which may have changed the data in some way. These data should not be used at scales greater than 1:24,000 for the purpose of identifying hydrographic watershed boundary feature locations in the United States. The Watershed Boundary Dataset is public information and may be interpreted by all organizations, agencies, units of government, or others based on needs; however, they are responsible for the appropriate application of the data. Photographic or digital enlargement of these maps to scales greater than that at which they were originally delineated can result in misrepresentation of the data. If enlarged, the maps will not include the fine detail that would be appropriate for mapping at the small scale. Digital data files are periodically updated and users are responsible for obtaining the latest version of the data from the source distributor. Acknowledgment of the origination agencies would be appreciated in products derived from these data.U.S. Geological SurveyMailing
U.S. Geological Survey, National Geospatial Technical Operations Center, P.O. Box 25046
DenverCO80225
1-877-275-8747bpgeo@usgs.gov
ftp://rockyftp.cr.usgs.gov/vdelivery/Datasets/Staged/Hydrography/WBD/National/GDB/National_WBD.jpgThumbnail JPG imageJPEGFunding for the Watershed Boundary Dataset (WBD) was provided by the USDA-NRCS, USGS and EPA along with other federal, state and local agenciesies. Representatives from many agencies contributed a substantial amount of time and salary towards quality review and updating of the dataset in order to meet the WBD Standards. Acknowledgment of the originating agencies would be appreciated in products derived from these data. See dataset specific metadata for further informationEnvironment as of Metadata Creation: Microsoft Windows 7 Version 6.1 (Build 7601) Service Pack 1; Esri ArcGIS 10.2.2 (Build 3552) Service Pack N/A (Build N/A)
All attempts were made to verify 100% of the initially required attributes using 24K digital raster graphics (DRGs) as the base. Additional datasets, like the Geographic Names Information System (GNIS) and NHD, may also have been used to verify attribution. The accuracy of this data is dependent on the level of detail of the source material and the interpretation procedures for capturing that source. Other sources and methods may have been used to create or update WBD data. In some cases, additional information may be found in the WBD Metadata table.Lines, polygons and nodes conform to topological rules. Lines intersect only at nodes, and all nodes anchor the ends of lines. Lines do not overshoot or undershoot other lines where they are supposed to meet. There are no duplicate lines. Lines bound polygons. Gaps and overlaps among polygons do not exist. All polygons close.The WBD contains completed polygons at every level for the United States. All required fields within the polygon and line datasets are populated. Some of these fields may be populated with a zeor "0". The lines coincident with the international boundary are assigned a HULevel value of 0. These cannot be attributed until the adjacent international units are added at which point the highest level of hydrologic unit can be determined. A detailed description of delineation methods and full attribute definitions can be found in the WBD Standards. Users are advised to carefully read the metadata record for additional details.The WBD was produced using a variety of digital spatial data including but not limited to Digital Raster Graphics (DRGs), aerial imagery and digital elevation models (DEM). It is assumed these data are mapped at approximately 1:24,000-scale and contain a minimum inherent error of +/- 40 feet. It should be noted that the WBD is undergoing continuous update as source data improves and as hydrologic interpretations are refined. While general rules of hydrology were used in delineation, locations of boundaries may be subjective in some cases. Additional information may be found in the WBD Metadata table.A formal accuracy assessment of the vertical positional information in the data set has either not been conducted, or is not applicable.U.S. Geological SurveyUnknown7.5 Minute Topographic Quadrangle SheetsPaper MapReston, VirginiaU.S. Geological Survey24000Digital and/or Hardcopy Resources18842006Publication dateUSGSTopoBase information for hydrologic unit delineation.U.S. Geological Survey1999U.S. Geological Survey Digital Raster Graphic (DRG)Raster Digital DataUnknownU.S. Geological Surveyhttp://datagateway.nrcs.usda.gov24000Digital and/or Hardcopy ResourcesUnknown1999Publication dateUSGSDRGBase information for hydrologic unit delineation.U.S. Geological SurveyUnknownDigital Orthophoto QuadsRaster Digital DataUnknownU.S. Geological Surveyhttp://datagateway.nrcs.usda.gov24000Digital and/or Hardcopy ResourcesUnknown20100325USGSDOQAerial imagery used for reference in watershed boundary delineationU.S. Geological Survey1994250K Hydrologic Unit BoundariesVector Digital DataReston, VirginiaU.S. Geological Surveyhttp://water.usgs.gov/lookup/getspatial?huc250k250000Digital and/or Hardcopy ResourcesUnknown1994Publication dateHUC250KReference dataset for the 2-, 4-, 6- and 8-digit hydrologic unitsU.S. Geological Survey2016National Hydrography DatasetVector Digital DataDenver, COU.S. Geological Surveyhttp://nhd.usgs.gov/data.html24000Digital and/or Hardcopy ResourcesunknownPublication dateNHDHydrography data used for reference in watershed boundary delineation processThe original hydrologic unit boundaries were hand-digitized on a digitizing table from the USGS 7.5 minute quadrangles. This process occurred over a span of approximately 20 years from 1980 to 2000.2000The original dataset was reviewed by USGS personnel using on-screen techniques with DRGs as the base map. All hydrologic units within the dataset that were less than 3,000 acres were dissolved out.2003The new WBD (2005-2011) was reviewed on-screen by USGS, EPA, or NRCS personnel using DRGs and DOQss as base maps. Hydrologic Units that were less than 10,000 acres (for the 12-digit units) and 40,000 acres (for the 10-digit units) were reviewed and if possible were dissolved out. Along the coastal areas, standard watersheds that fell within the federal guideline's size criteria (12-digit: 10,000-40,000 acres, 10-digit: 40,000-250,000 acres) were delineated. If possible the remaining frontals were left as their own units. Frontals that did not meet the size criteria were grouped together with other frontals within the overall 8-digit or 10-digit unit. Hydrologic units that were greater than 40,000 acres (12-digit units) and 250,000 acres (10-digit units) were reviewed. If possible these units where then subdivided into smaller units that met the size criteria. In some cases, additional breaks within the unit would not have made sense or have been very useful. For example: When the majority of the unit was made up by a major waterbody feature such as a lake or reservoir and the surrounding tributaries were too small to delineate as their own unit. In these instances the unit was left big.2011From 2005 to 2011, hydrologic units from surrounding states were used to edgematch watershed boundaries as they were developed.2011From 2005 to 2011, original dataset attribution was reviewed and revised to reflect the updates and changes made to the dataset. These revisions to the attribution were also made to ensure that the dataset met the Federal Standards for Delineation of Hydrologic Unit Boundaries. The NHD was used during this process to help with the naming and downstream coding of each unit. In some instances there were name discrepancies between the NHD and what was printed on the DRGs. In these instances the DRGs were used instead of the NHD.2011First draft of metadata created by NRCS using METADATA Editor in ArcCatalog ver. 9.1 sp.1 hu12_geo8320070124The following edits (2012 - present) were completed during national quality control review performed by the WBD national technical edit team in the USGS Utah Water Science Center. Updates may not affect all hydrologic units. + Edits by USGS Water Science Center in Salt Lake City, Utah. + 1. Reviewed all the ToHUC codes within the 12-digit polygons and made updates as necessary. All updates were coordinated and approved by WBD state stewards. + 2. Updated Linesource code (misspellings, removed extra spaces etc.) where needed to match Federal Standards + 3. Updated and corrected errors in the HU_Mod fields where needed to match Federal Standards. + 4. Updated State field for Canada (CN) and Mexico (MX) based on the new version of the Standards + 5. Reviewed all the Names related to each 10-digit and 12-digit polygon and made updates as necessary. All updates were coordinated and approved by the WBD State stewards + 6. Checked and updated HU_Level field where HU_Level = 99 or = null + 7. Updated the 8-digit outer boundary for units flowing into ocean units by extending the boundary offshore to the 3 nautical mile limit provided by NOAA. All updates were coordinated and approved by the WBD state stewards2016The following are 8-digit updates (from 2009-2016) that were approved by the WBD National Technical Coordinators as required by the WBD Standards. These may include name/code updates or boundary updates that were implemented in the WBD at some point during the creation or maintenance of the data. + Alaska: + Legacy 19020401 Anchorage boundary has changed by about 20% of its area. + 19020203 (Prince William Sound) + Added a new subbasin unit for Prince William Sound. + Adjusted huc8 boundaries between 19020104, 19020201 and 19020202 to better reflect surface water flow and to assist with delineating the Prince William Sound as a new unit. + Legacy 19020302 Upper Kenai Peninsula has changed by about 20% of its area. + Legacy 19030304 Wood River was subdivided which has created a reduced area for the 19030304 Wood River and put Igushik River into its own hydrologic unit with a new code of 19030306. + Legacy 19030402 Farewell Lake was divided into 19030406 Middle Flork Kuskokwim River and 19030407 South Fork Kuskokwim River. + Legacy 19040204 Black River was subdivided. 19040204 will remain the Black River, and a new unit 19040206 Grass River is broken out. + 19040502: + The outlet for subbasin 19040502 was moved downstream from the current break across Tanana River at a confluence with a minor tributary to the more prominent confluence with Robertson River. This edit resulted in the addition of 2 subwatersheds to 19040502 and the removal of 2 watersheds from 19040503. + Legacy 19040504 Delta River linework changed significantly. + The legacy 19040504 had 3 separate outlets; Delta River, Delta Creek and Little Delta River. + The boundary was adjusted so that 19040504 contained just the Delta River as a standard unit. + The Delta Creek and Little Delta River where moved into 19040507. + Legacy 19040507 Tanana Flats Linework changed significantly. + 19040606 - Legacy boundary for 19040606 had the outlet at a location across the Huslia River downstream from the outlet of the South Fork Huslia River. The boundary was adjusted downstream to the major confluence where the Huslia River drains into the Koyukuk River, thus creating a standard HUC8 for the Huslia River. + 1905: + 19050202, 19050203, 19050301, 19050304, 19050403 + 19050202’s boundary was adjusted so that this unit contained all frontal drainage areas flowing into the southern portion of Kotzebue Sound. + 19050203’s boundary was adjusted to that the unit included Eschscholtz Bay and all of the drainage areas flowing into it. + 19050301’s boundary was adjusted so that this unit has one outlet and includes Selawik Lake. The frontal drainages flowing into Hotham Inlet were moved into unit 19050304. + 19050304’s boundary was adjusted so that the unit included Hotham Inlet and the frontal drainages flowing into it. + 19050403’s boundary was adjusted to a buffer distance of 1000 meters off shore. + 19050500 - Kotzebue Sound: + Added a new HUC8 unit to AK WBD for Kotzebue Sound. Inner coastal units that ended at the shore line were extended offshore to a 1000 meter buffer distance. + Legacy 19060204 Ikpikpuk River absorbed Inaru River from Legacy 19060202 + Legacy unit 19060202 contained 2 different stream systems flowing into 2 different bodies of water. + The Inaru River flows into Admiralty Bay while the Kugrua River and the other small frontal drainages flows into the Chukchi Sea. + The boundary was adjusted so that flow into Admiralty Bay/Dease Inlet was separate from flow into Chukchi Sea. The Inaru River, Admiralty Bay/Dease Inlet and all associated frontal drainages were added to subbasin 19060204. + New Subbasin 19060206 is being named Admiralty Bay-Dease Inlet. This area use to be part of Subbasin 19060204 + 19020800 Cook Inlet is a new hydrologic unit as recommended by the Alaska in state stakeholders. + + 2011 - These updates where proposed by Forest Service partners within the Tongass National Forest. When major changes are made to the HUC8 container (i.e. the container is subdivided into multiple units) the national protocol has been to retire the old HUC8 code and name and assign new codes and names to the updates units + 19010202 (Kuiu-Kupreanof-Mitkof-Etolin-Zarembo-Wrangell) is being retired and 2 new HUC8 units were formed. + Kuiu Island, Mitkof Island and Kupreanof Island were split out into their own 8-digit unit + HUC8 - 19010210 + HU8_Name – Kuiu-Kupreanof-Mitkof Islands + Zarembo Island, Wrangell Island and Etolin Island were subdivided into their own 8 digit unit + HUC8 – 19010209 + HU8_Name – Etolin-Zarembo-Wrangell Islands + + 19010203 (Baranof-Chichagof Islands)19010203 was retired. 19010203 was subdivided 3 new units; 2 island units and 1 channel unit. + Chichagof Island was split out into its own 8-digit unit + HUC8 – 19010211 + HU8_Name – Chichagof Island + Baranof and Kruzof Islands were subdivided into their own 8-digit unit + HUC8 – 19010212 + HU8_Name – Baranof Island + Created a new water hydrologic unit for the channel between Chichagof Island and Baranof/Kruzof Islands. This new water unit would become a HUC10 unit within the "Water" subbasin 19010500. + HUC10 – 1901050011 + HUC10_Name - Peril Strait + Because of the varying width of the channel the boundary was graduated from a 1,000 meter buffer to 100 meter buffer from the Low Tide Shoreline. The Low Tide Shoreline was provided by the Forest Service. + A 1,000 meter buffer was used in the open channel to match the buffer distance used within the rest of SE AK WBD. There is a narrow portion of the channel where the boundary was gradually reduced from the 1,000 meter buffer to a 100 meter buffer. + + 2014 - Updated Alaska’s region 1904 based on a request from NHD program and approved by state partners. 1904 was subdivided 3 new 4-digit hydrologic units. + The new units are + 1907 – Upper Yukon River + 190701 – Headwaters Yukon River + 1908 – Middle Yukon River + 1909 – Lower Yukon River + + 2016 - Updates to AK 8-digit units based on harmonization effort with Canada + 19070504 (Eagle Creek-Yukon River) is being subdivided 2 new 8-digit hydrologic units. Original code and name are being retired. + HUC8 - 19070505 (Tatonduk River-Yukon River) + HUC8 - 19070506 (Charley River-Yukon River) + + 19060503 (Beaufort Lagoon) is being subdivided 3 new 8-digit hydrologic units. Original code and name are being retired. + HUC8 - 19060504 (Kongakuat River-Beaufort Lagoon) + HUC8 - 19060505 (Firth River) + HUC8 - 19060506 (Babbage River) is completely within Canada Yukon Territory + + Arizona: + Legacy 15010009 Fort Pierce Wash name changed to Fort Pearce Wash to account for misspell. + Legacy 15010007 Hualapai Wash name should change as the wash is now in the adjacent Subbasin. Changed to Red Lake + + California: + Legacy 18010109 Gualala-Salmon had an area the size of several 12-digit HUs that has been aggregated into the adjacent legacy 18050005 Tomales-Drake Bays as a result of coastal implementation. This is approved by the in-state WBD Steward and T3.Legacy 18030012 and new 18030012 Tulare-Buena Vista Lakes changed to Tulare Lake Bed as the boundary has changed so significantly that Buena Vista Lakes are no longer in the adjusted hydrologic unit. + Legacy 18040001 and new 18040007 name changed from Upper Chowchilla-Upper Fresno to Fresno River as the Chowchilla is no longer in the adjusted hydrologic unit. + Legacy 18040002 and new 18040002 name changed from Middle San Joaquin-Lower Merced-Lower Stanislaus to Lower San Joaquin River as Merced and Stanislaus Rivers are no longer in the adjusted hydrologic unit. + Legacy 18050006 San Francisco-Coastal South will absorb 4 coastal 12-digit HUs from legacy 18060001 San Lorenzo-Soquel as a result of coastal implementation. This is approved by the in-state WBD Steward and the WBD National Technical Coordinators (NTC) + Legacy 18060006 Central Coastal will absorb an area the size of 6 12-digit HU’s from legacy 18060012 Carmel which all drains directly to the Pacific Ocean. This is approved by the in-state WBD Steward and the WBD National Technical Coordinators (NTC) + Portions of legacy 18060011, 18060012, and part of 19060001 will become a new subbasin accounting for all of these frontal pieces. It will be coded 18060015 and named Monterey Bay. This is approved by the in-state WBD Steward and the WBD National Technical Coordinators (NTC) + Legacy 18060013 Santa Barbara Coastal had an area the size of one 12-digit HU which will be aggregated with legacy 18070101 Ventura as a result of coastal implementation. This is approved by the in-state WBD Steward and the WBD National Technical Coordinators (NTC) + Legacy 18070104 Santa Monica Bay had an area the size of several 12-digit HUs which will be aggregated with legacy 18070106 San Gabriel as a result of coastal implementation. This is approved by the in-state WBD Steward and WBD National Technical Coordinators (NTC) + Legacy 18100200 has now been subdivide into 18100201, 18100202, 18100203, and 18100204. + The legacy name for 180100200 has been retained as the Salton Sea for new code 18100204. New names for the other subdivisions have been reviewed and accepted as follows: + 18100201 Whitewater River + 18100202 Carrizo Creek + 18100203 San Felipe Creek + Legacy 18040002 and new 18040051 name Middle San Joaquin-Lower Merced-Lower Stanislaus was change to Rock Creek-French Camp Slough. + Legacy 18020124 Honcut Headwaters name and code have been retired. It was absorbed in to legacy 18020106 Lower Feather to form the new 18020159. WBD National Technical Coordinators (NTC) recommends the name retain the combined legacy names of Honcut Headwaters-Lower Feather. + Legacy 18020120 Upper Butte and legacy 18020105 Lower Butte have been retired. + The two hydrologic units were combined in to the new accepted code and name of 18020158 Butte Creek. + Legacy 18020119 Mill-Big Chico, 18020103 Sacramento-Lower Thomes, and 18020114 Upper Elder Thomes have been retired. The accepted names and codes for the newly delineated hydrologic units to replace those areas are 18020157 Big Chico Creek-Sacramento River, 18020156 Thomes Creek-Sacramento River, and 18020155 Paynes Creek-Sacramento River. + The following legacy names and codes have been retired: 18020113 Cottonwood Headwaters, 18020102 Lower Cottonwood, 18020101 Sacramento-Lower Cow-Lower Clear, 18020118 Upper Cow-Battle, and 18020112 Sacramento-Upper Clear. The accepted codes for the newly delineated hydrologic units that replace those areas will be 18020151-18020154. + The approved names are: + 18020151 Cow Creek + 18020152 Cottonwood Creek + 18020153 Battle Creek + 18020154 Clear Creek-Sacramento River + 18010111 code and name have been retired and the area has been subdivided. A portion is in 18010109 Gualala-Salmon, and the other portion in 18050005 Tomales-Drake Bays + 18020107 code and name have been retired and the area is now included with 18020125 Upper Yuba + 18020108 code and name have been retired and the area is now included with 18020126 Upper Bear + 18020110 code and name have been retired and the area is now included with 18020116 Upper Cache + 18030008 code and name have been retired and the area is now included with 18030012 Tulare Lake Bed + 18030011 code and name have been retired and the area has been subdivided. A portion is in 18030012 Tulare Lake Bed, and the other portion in 18030009 Upper Dry + 18040004 code and name have been retired and the area is now part of 18040011 Upper Calaveras California + 18040005 code and name have been retired and the area is now part of 18040003 San Joaquin Delta, 18040012, 18040012 Upper Mokelumne, and 18040003 Upper Cosumnes + 18020109 code and name have been retired and the area is now part of 18020163 Lower Sacramento + 18020117 code and name have been retired and the area is now part of 18020162 Upper Putah + 18060001 code and name have been retired, and the areas are now subdivided between 18050006 San Francisco Coastal South and 18060015 Monterey Bay + 18060011 code and name have been retired and now is subdivided between 18060015 Monterey Bay and 18060005 Salinas + 18060012 code and name have been retired and the area is now part of 18060006 Central Coast and 18060015 Monterey Bay + + Colorado: + Legacy 14010006 Parachute-Roan name and code have been retired. This area has been combined with 14010005 Colorado Headwaters-Plateau. + + Connecticut: + 01100007 code and name have been retired and the area is now part of 0110004 Quinnipiac + + Delaware: + 02060007 code and name have been retired and this area now included with 02080110 Tangier + 02060008 code and name have been retired and this area now included with 02080109 Nanticoke + 02060009 code and name have been retired and this area is now part of 02080111 Pokomoke-Western Lower Delmarva and 02080110 Tangier + 02060010 code and name have been retired and this area is now part of 02040303 Chincoteague + + Florida: + Legacy 03090202 Everglades has been modified as follows: + The largest part of 03090202 Everglades carries the legacy code and name. + Subdivided out new Subbasin 03090206 Florida Southeast Coast + Combined additional smaller portions of 03090202 with adjacent Subbasins. + + Louisiana: + 2009 - USGS Water Science Center, Salt Lake City, UT. Recoded all HUC12 codes and DS codes for 08080100 Atchafalaya to 08080101 Atchafalaya. 08080101 is the correct code. During the development of the WBD the 12-digit hydrologic units were miscoded as 08080100. + + Maine + Updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details. + + Massachusetts: + 01070002 is retained for the headwaters of this original code, but ¾ of the original area is now coded 01070006. The area now coded 01070006 retained the original name for the area of legacy 01070002 and is called Merrimack, whereas 01070002 is not called Winnipesaukee River (other state documentation supporting this decision) + + New Hampshire: + Legacy 01070002 Merrimack was subdivided in to 01070002 Merrimack to the North and 01070006 Merrimack River to the South. The technical team requests that the portion to the South retain the legacy code and name of 01070002, Merrimack, and that the northern hydrologic unit receive the code and name 01070006 Winnipesaukee River. There is no Merrimack River in the northern portion and the southern portion most closely resembles the legacy delineation. + + Additional updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details + + New York: + Legacy 04150307 English-Salmon was subdivided into 04150307 Salmon and 04150308 Chateaugay-English. The Technical Team accepts this change. + + 2010- Edits were made to Lake Champlain Basin moving it from Region 02 to Region 04. Update to delineation data in Lake Champlain area on the US side and Canadian side. All lines within Canada are draft delineations only. These boundaries were based on Canada's 1:50,000 National Hydrography Network Work Units or were delineated using either 1:50,000 scale topos or CDED elevation data. These boundaries have not been fully reviewed or approved by either the Canadian federal or provincial agencies and are subject to change. Border polygons are based off of these internal boundaries within Canada and so are also subject to change within Canada. Edits made by USGS Salt Lake City, Water Science Center: to the Lake Champlain and surrounding subbasins to remove all shoreline representations from the WBD. The codes, DS codes and names where updated where necessary. + + 02010004 name and code have been retired, and this area was subdivided, part is in 04150404 Ausable River and part in 04150408 Lake Champlain. + 02010006 name and code have been retired and this area was subdivided. Part is in 04150406 Saranac River and part is in 04150408 Lake Champlain. + 02010001 name and code have been retired and this area was subdivided into 04150401 Mettawee River and 04150408 Lake Champlain + + The new Lake Champlain unit 04150408 is made up of parts of original HUC250K units 02010001, 02010002, 02010003, 02010004, 02010005, 02010006 and 02010007 + + Additional updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details + + North Carolina: + Legacy subbasin 03030001 and legacy subbasin 03020106 have been combined and recommended for acceptance as a new 6-digit Basin 030203 Onslow Bay. + Legacy Subbasin 03030001 New has been recoded and renamed to 03020302 New River. The technical team accepts the new code and name. + Legacy Subbasin 03020106 Bogue-Core Sounds has been recoded and renamed to 03020301 White Oak River. The technical team accepts the new code and name. + 03040207 code and name are still in use, but the portion that stretches along the coast has been broken out to a new 03040208 Coastal Carolina + + North Dakota: + Legacy 10160007 East Missouri Coteau, changed to North Fork Snake as that is a better hydrologic representation of the hydrologic unit. + Legacy 10170103 South Big Sioux Coteau name changed to Lake Thompson + Legacy 10170201 Middle Big Sioux Coteau name changed to Upper Big Sioux + Legacy 10170202 Upper Big Sioux name changed to Middle Big Sioux + Because legacy 10170203 Lower Big Sioux should stay the same, it doesn’t make sense not to have a middle and an upper. Although the boundaries have significantly relocated, it seem like most viable option is to retain the Upper, Middle, Lower naming convention. + + Additional updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details + + Oregon: + Legacy 17100304 Coos was subdivided into 17100304 Coos to the north and 17100306 Sixes to the south. The Technical team accepts this change. + + South Carolina: + Legacy 03040207 Carolina Coastal-Sampit was subdivided into a southern portion called 03040207 Carolina Coastal-Sampit and a northern portion newly coded and named 03040208 Coastal Carolina. The technical team recognizes this as an acceptable solution, however, future coastal delineations may require additional modification. + Legacy 03050202 South Carolina Coastal has now been subdivided into subbasins 03050202 South Carolina Coastal and 03050209 Bulls Bay with an additional portion of 03050202 being aggregated in with legacy 03050201 + Legacy 03050208 Broad-St. Helena has had the following modifications which the NTC concurs with: + 03050208 Broad-St. Helena code and name retained into a much smaller unit capturing only the Broad-St. Helena Rivers + Subdivided into new 03060110 Calibogue Sound-Wright River, and now part of the adjacent Subregion to the south. + Subdivided into new 03050210 St. Helena Island portion combined with 03050207 Salkehatchie. + Legacy 03050205 name is changed to Four Hole Swamp (from Edisto...this name was flipped with the hydrologic unit the water feature resides in). The WBD National Technical Team recommended that this name not be reused as it has been historically assigned to 03050206, but all in state interagency folks felt strongly that it should be reused as that is by far the predominant feature for the HU. Reports since 2005 reflect this. + Legacy 03050206 name is changed to Edisto River to reflect the major hydrologic feature. + + South Dakota: + 2009 - Edits made by in-state data steward; all of sub-basin 10160010 (now retired) was recoded to 10160011 (Lower James); In addition to the recoding of this 8-digit level unit in the James Basin, this group of edits primarily consisted of minor corrections to linework and 12-digit downstream codes, populating ncontrb_A fields of selected 12-digit units, and tweaking selected 5th- and 6th-level unit names to facilitate merging with GNIS. + + Texas: + Legacy13070008 Lower Pecos was subdivided into a northern and southern portion. The northern portion retains the 13070008 code but name should be Pecos. The new subdivided 13070012 hydrologic unit should carry the legacy name Lower Pecos. + Legacy 13090002 Lower Rio Grande is missing from the current WBD. + + Vermont: + Updated 01110000 from Region 01 to Region 04 and is now 04150500 (St. Francois River). Craig Johnston (USGS) pointed out that this unit contains the St. Francois River which flows up into Canada and then dumps into the St Lawrence River. Region 01 is Maine Coastal drainage's while region 04 is St. Lawrence drainage's, so this unit really belongs in region 04. + + 2010- Edits were made to Lake Champlain Basin moving it from Region 02 to Region 04. Update to delineation data in Lake Champlain area on the US side and Canadian side. All lines within Canada are draft delineations only. These boundaries were based on Canada's 1:50,000 National Hydrography Network Work Units or were delineated using either 1:50,000 scale topos or CDED elevation data. These boundaries have not been fully reviewed or approved by either the Canadian federal or provincial agencies and are subject to change. Border polygons are based off of these internal boundaries within Canada and so are also subject to change within Canada. Edits made by USGS Salt Lake City, Water Science Center: to the Lake Champlain and surrounding subbasins to remove all shoreline representations from the WBD. The codes, DS codes and names where updated where necessary. + + 02010001 name and code have been retired and this area was subdivided into 04150401 Mettawee River and 04150408 Lake Champlain. + 02010002 name and code have been retired and this area was subdivided into 04150402 Otter Creek and 04150408 Lake Champlain. + 02010003 name and code have been retired and this area was subdivided into 04150403 Winooski River and 04150408 Lake Champlain. + 02010005 name and code have been retired and this area was subdivided into 04150405 Lamoille River and 04150408 Lake Champlain. + 02010007 name and code have been retired and this area was subdivided into 04150407 Missiquoi River and 04150408 Lake Champlain. + + The new Lake Champlain unit 04150408 is made up of parts of original HUC250K units 02010001, 02010002, 02010003, 02010004, 02010005, 02010006 and 02010007. + + Additional updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details + + Wisconsin: + Legacy 07090001Upper Rock keeps the same code and name but the original hydrologic unit delineation changed significantly. + Legacy 07090002 Crawfish keeps the same code and is renamed to Middle Rock. The original hydrologic unit delineation changed significantly.2016Below is a list of updates (from 2011 to 2016) resulting from harmonization work with Canada. + Alaska: + Legacy 19010101 Southeast Mainland name and code were retired and the area subdivided into four units. New codes and names are as follows and accepted by the National Technical Team and approved with Canadian and Alaska partners (USFS): + 19010104 Bradfield Canal + 19010105 Burroughs Bay + 19010106 Headwaters Portland Canal + 19010107 Outlet Portland Canal + Legacy 19010201 Mainland had a portion broken out. 19010201 will be preserved and the small piece broekn out in order to harmonize with Canada. The smaller piece will have the new code 19010205 and the name will be Lower Iskut. + Revised again 5/31/11: 19010201 Mainland was broken into three new units + 19010206 Holkham Bay + 19010207 Stikine River + 19010208 Thomas Bay + Legacy 19010301 Lynn Canal now has the Taku River broken out to accommodate Canada. Taku River will be code 19010304. The National Technical Coordinators (NTC) accepts this. Revised again 5/31/11:(AK group consulted along with Pete Steeves, Kim Jones, Stephen Daw, Karen Hanson): + 19070101 Atlin Lake was broken out of the legacy Lynn Canal 19010301 and is part of the newly accepted Subregion 1907 + Legacy 19010302 Glacier Bay was subdivided along the ridge separating out the ocean flow. The unit broken out is: + 19010406 Palma Bay (this unit also includes a portion of the original 19010401) + Note: Legacy 19010302 Glacier Bay will be retained although the area is now smaller. Other options didn’t make as much sense. + + Legacy 19010303 Chilkat-Skagway Rivers was subdivided into: + 19070102 Bennett Lake + 19070103 Tagish Lake + 19070104 Takhini River + Note: 19010303 Chilkat-Sakgway Rivers is retained + + Legacy 19010401 Yakutat Bay name and code retired and the area subdivided into 4 new units. New codes and names are as follows + 19010403 Tatshenshini River + 19010404 Alsek River + 19010405 Yakutat Bay-Gulf of Alaska + 19010406 Palma Bay (This new unit also includes a portion of the original 19010302) + + Idaho and Washington - + 2013 - The Columbia River Basin and Puget Sound Coastal area was updated to include the harmonized 8-, 10, and 12-digit hydrologic units within Canada. This harmonized data was created with contributions from US and Canadian Federal, State, Provincial and local partners. The British Columbia 20K Fresh Water Atlas watershed data and DEM data were used to create the units within Canada. Border units were updated through a review/agreement process with local and state/provincial partners using the best available data (DEM, DRG, Imagery, Field Verification). + During the harmonization effort there were some 8-digit updates that were agreed to. + Legacy 17010101 Upper Kootenai name will change to Middle Kootenai to coordinate with Canada since there is an Upper Kootenay solely in Canada. + Legacy 17010101 Upper Kootenai boundary changed slightly. The WBD Technical Team recommends retaining the legacy name and code. + A new subbasin was created as a result of the international border harmonization which slightly goes into the U.S. (the portion of 17010101 referenced above). The WBD Technical Team recommends coding this unit with the next down sequential code which would be 17010106 and using the name that Canada refers to this hydrologic unit as “Elk”. + 17110001 legacy name “Fraser” is being changed to “Sumas River” to match with Canada, and because the Fraser River doesn’t flow through this unit. + + Montana: + 1001 flows into Canada and the Saskatchewan River and not into the Missouri River as originally thought. As such this 4-digit hydrologic units was moved from region 10 to 09. + 0904 - Saskatchewan River + 090400- Upper South Saskatchewan River (This matches the Canadian FDA at the WSCSDA level (sub drainage area)). + 10010001 name and code have been retired, and this area is now 09040002 Belly + 10010002 name and code have been retired, and this area is now 09040001 St. Marys + + Minnesota: + 2014 - Rainy River Basin was updated to include the harmonized 8-, 10- and 12-digit hydrologic units with Canada. This harmonized data was created over a 6 month time period with cooperation from Federal, State, Provincial and Local Partners. + Some of the boundaries within MN were updated using the MN LiDAR data. The MN LiDAR was also used in the creation of boundaries within Canada when the LiDAR data overlapped into Canada. The other boundaries within Canada were generated using the province of Ontario’s 20K DEM and Hydrography data. + There were some 8-digit updates as a result of the harmonization effort. + 09030004 Upper Rainy has been retired + 09030004 is now a part of 09030008 the Lower Rainy + 2 new 8-digit units were broken out in Canada + 09030010 – Big Turtle River-Rainy Lake + 09030011 – Shoal Lake + + North Dakota: + Legacy 09020313 Pembina was subdivided into two new units. + The legacy name and code were retired. + The new codes and names are: + 09020315 Upper Pembina River + 09020316 Lower Pembina River + + 2014- Souris River Basin was updated to include the harmonized 8-, 10- and 12-digit hydrologic units with Canada. This harmonized data was created over a 6 month time period with cooperation from Federal, State, Provincial and Local Partners. + There were some 8-digit updates as a result of the harmonization effort. + Legacy 09010001 Upper Souris has now been subdivided. That code and name have been retired and the new units are: + 09010006 Long Creek + 09010007 Headwaters Souris River + 09010008 Moose Mountain Creek-Souris River + + North Dakota and Minnesotta: Red River Basin + Legacy 09020311 Lower Red name is being changed to Middle Red in order to harmonize with Canada. Lower Red is the Basin name for this entire area but the impact to change at that level isn’t known so won’t change. + + 2016 - Red River Basin was updated to include the harmonized 8-, 10-, and 12-digit hydrologic units within Canada. Some of the boundaries within MN and ND were updated using Lidar data. Lidar data was also used in the development of hydrological units within Canada. Where Lidar data did not exist the province of Manitoba provided either 1:20,000 scale or 1:50,000 scale digital elevation data for boundary delineations. + + Maine + All HUC8 boundaries were updated with the Harmonized US/CAN border into Canada. + Coding was updated as needed. + 01010001 was subdivided into 6 new units. + 01010001 code retired + 01010001 HUC8 name retired (Upper St. John) + New codes and HUC8 names + 01010006 – Headwaters Saint John River + 01010007 – Big Black River-Saint John River + 01010008 – St. Francis River-Saint John River + 01010009 – Little River-Saint John River + 01010010 – Becaguimec Stream-Saint John River (This unit now contains a portion of the original 01010005) + 01010011 – Keswick River-Saint John River + + 01010004 - Boundary within Canada was updated with harmonized boundary. + 01010005 - Boundary was updated with US/CAN harmonized boundary. A small portion of 01010005 was moved into the new 01010010 so that 01010005 is a standard HUC 8 unit for the Meduxnekeag River. + 01020001 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. + 01030001 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. + 01030002 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. + 01040001 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. + 01050001 - Boundary was updated with US/CAN harmonized boundary. This boundary was developed during the initial St. Croix pilot and includes updates within the US as well as Canada. Coding left as is + 01050002 - The harmonized boundary for 01050004 required updates to 01050002. + A portion of 01050002 was moved to 01050004 to accommodate the new harmonized boundary. + This required re-coding of the entire 01050002. + 01050004 - Boundary was updated with US/CAN harmonized boundary. A portion of 01050002 was moved into this unit. Codes were updated to reflect this boundary change. + + 04150600 – Chaudiere River + This is a new unit that was created when the WBD boundary was moved from the international boundary on to the ridgelines + Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. + 04150500 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + + + New Hampshire + 01040001 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. + 04150500 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + + New York + 04150301 - Subdivided into 2 new units + 04150301 code retired + 04150301 HUC8 name retired (Upper St. Lawrence) + New Codes and HUC8 names + 04150309 – Headwaters St. Lawrence River + 04150310 – Raisin River-St. Lawrence River + + 04150306 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + 04150307 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + 04150308 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + 04150408 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + 04150409 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + + Vermont + 04150407 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + 04150408 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + 04150409 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + 04150500 - Boundary was updated with US/CAN harmonized boundary. Coding left as is + + + Great Lakes + The boundaries for Lake Ontario (0415200), Lake Erie (04120200), Lake Huron (04080300) and Lake Superior (04020300) were updated using the new inland lakes coastal method. All updates were coordinated with the WBD state steward for each adjacent state. The area within Wisconsin was excluded per the state partner’s request. All surrounding 8-digits (units touching the lakes) were reviewed and updated as well. 2016Mexico Harmonization (2010-2014) + + 2010 - Harmonization with Texas and Mexico; HUC12 polygons and line rework by USGS Water Science Center, Salt Lake City, UT. + + 2014 - Harmonized 8-, 10 and 12-digit units for all border 8-digit units with Mexico were incorporated into the WBD. These datasets were developed through a coordinated effort between the USGS and INEGI along with input from State and local partners. Due to the harmonization effort some 8-digit boundaries may have been adjusted. In addition to this the 10- and 12-digit boundaries along the border might have also been adjusted based on the availability of better base information within Mexico provided by INEGI.2014The following section describes updates to the WBD data model (2012-2016). + + July 2012 + National responsibility for stewardship and maintenance of the WBD transferred from NRCS to the USGS. As a result the WBD data model was updated and the data was incorporated into the NHD database. + WBD model updated based on input from NRCS, USGS, NHD program and user community. + WBD polygon dataset subdivided into individual polygon datasets for each level of hydrologic units. + Two additional datasets added for the next 2 levels of subdivisions (14- and 16-digit) but are not required for each state to populate these. + Attribute tables for polygons and lines were updated with some fields being added, renamed or removed. See below for a list of changes. + + WBD Line attribute table changes: + Old Model: + HU_LEVEL + LINESOURCE + META_ID – removed – Feature level metadata functionality is added to track updates in the new model + LEFT_HUC_8 – removed + RIGHT_HUC_8 – removed + + New Model: + Permanent_Identifier – New field for feature level metadata + Source_FeatureID – New field for feature level metadata + Meta_SourceID – New field for feature level metadata + Source_DataDesc – New field for feature level metadata + Source_Originator – New field for feature level metadata + HU_Level + HU_Class – New field populated with the number of digits of the hydrologic unit + LoadDate – New field for feature level metadata + LineSource + + WBD Polygon attribute table changes: + Codes and names moved from single polygon dataset to the appropriate hydrologic unit dataset for each level + Old Model: + HUC_8 – moved to 8-digit polygon dataset + HUC_10 – moved to 10-digit polygon dataset + HUC_12 – moved to 12-digit polygon dataset + ACRES – re-named to AREA_ACRES + NCONTRB_A + HU_10_GNIS – Replaced with Gaz_ID + HU_12_GNIS – Replaced with Gaz_ID + HU_10_DS – Removed from new model + HU_10_NAME – moved to 10-digit polygon dataset + HU_10_MOD – moved to 10-digit polygon dataset + HU_10_TYPE – moved to 10-digit polygon dataset + HU_12_DS – moved to 12-digit polygon dataset + HU_12_NAME – moved to 12-digit polygon dataset + HU_12_MOD – moved to 12-digit polygon dataset + HU_12_TYPE – moved to 12-digit polygon dataset + META_ID - removed – Feature level metadata functionality is added to track updates in the new model + STATES + + New Model: + Fields included in all levels of hydrologic unit polygon datasets. + Gaz_ID – Old model was the GNIS field + Area_Acres - Renamed + Area_SqKm – New field + States + LoadDate- New field + HUC_"#digit" - For Example: HUC12 + HU_"#digit"_Name - For Example: HU_12_Name + + Fields included with the 10-, 12-, 14- and 16- digit polygon datasets. + HU_"#digit"_Type - For Example HU_12_Type + HU_"#digit"_Mod - For Example HU_12_Mod + + Fields included with the 12-, 14- and 16- digit polygon datasets. + NContrb_Acres + NContrb_SqKm – New field + + Tables + New Model: + ExternalIDCrosswalk + FeaturetoHUMod + FeatureToMetadata + Meta_ProcessDetail + Meta_SourceDetail + ProcessingParameters + UpdateStatus + WBD_Attributes + WBD_Nav + + October 2012 + Changes to the WBD data model include the elimination of the underscore "_" in field and table names, switching to camelCase. Other changes to the WBD data model include the elimination of the WBDPoint table, the WBDPointEvent table, and the WBDAtributes table. Fields have been added to the WBDHU12 polygon feature dataset that allow metadata record linking and also include the downstream attribute. NWIS drainage area line and polygon feature classes have been added also. + + New Model: + WBD line dataset + TNMID – Use to be PermanentID + HULevel + HUClass – New field populated with the number of digits of the hydrologic unit + HUMod + LineSource + LoadDate – New field for feature level metadata + (Source_FeatureID, Meta_SourceID, Source_DataDesc, Source_Originator fields removed from WBDLine dataset) + + WBD polygon dataset + Fields included in all levels of hydrologic unit polygon datasets. + TNMID – New field for feature level metadata + MetaSourceID – New field for feature level metadata + SourceDataDesc – New field for feature level metadata + SourceOriginator – New field for feature level metadata + SourceFeatureID – New field for feature level metadata + LoadDate – New field for feature level metadata + GNIS_ID = replaces Gaz_ID + AreaAcres + AreaSqKm + States + LoadDate + HUC"digit" - for example: HUC12 + Name + + Fields included with the 10-, 12-, 14- and 16- digit polygon datasets. + HUType + HUMod + + Fields included with the 12-, 14- and 16- digit polygon datasets. + NContrbAcres + NContrbSqKm + + Field included with the 12-digit polygon dataset. + ToHUC – This attribute was included in the original WBD data model as HU_12_DS and represents the code of the next unit downstream. The values for this field were populated for the last version of the dataset in the old model by linking the 2 tables by the 12-digit code and calculating the value over. + + NWISDrainageArea polygon dataset added as a place holder for when these datasets are generated. + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + ReferenceTNMID + SiteID + AgencyCode + SiteNumber + StationName + TotalDrainageArea + ContributingDrainageArea + + NWISBoundary line dataset added as a place holder for when these datasets are generated. + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + ReferenceTNMID + + NonContributingDrainageArea polygon dataset added as a place holder for when these datasets are generated. + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + + 2013 + Changes to the WBD data model include updates to the field for the NonContributingDrainageArea polygon dataset, NWISBoundary line dataset and the NWISDrainageArea polygon dataset. This includes the addition of new fields and the re-naming of some of the existing fields. + + NWISDrainageArea polygon dataset: + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + ReferenceTNMIDNHDPointEvent – Renamed from ReferenceTNMID + AgencyCode + SiteNumber + StationName + ContributingDrainageAreaAcres – Originally called ContributingDrainageArea + TotalDrainageAreaAcres – Originally called TotalDrainageArea + ContributingDrainageAreaSqKm – New field + TotalDrainageAreaSqKm – New field + SiteID - Removed + + NWISBoundary line dataset: + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + ReferenceTNMIDPointEvent – Originally called ReferenceTNMID + SiteNumber – New field + + NonContributingDrainageArea polygon dataset + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + NonContributingSqKm – New field + NonContributingAcres – New field + ReferenceTNMID12digitHU – New field + + Tables + ExternalCrosswalk - Originally called ExternalIDCrosswalk + FeatureToHUMod - removed + FeatureToMetadata + HUMod - NewField + MetaProcessDetail - Previous version called Meta_ProcessDetail + MetaSourceDetail - Previous version called Meta_SourceDetail + ProcessingParameters + UpdateStatus + WBD_Attributes - removed + WBDNavigation - Originally WBD_Nav + + 2014 + + + 2015 + Changes to the WBD data model include updates or additions to the fields for the NonContributingDrainageArea polygon dataset, NWISBoundary line dataset and the NWISDrainageArea polygon dataset. The majority of these are due to the length of the original name for the field. A new line dataset was created for Non Contributing Area called NonContributingDrainageLine NWISBoundary was re-named NWISDrainageLine + + NWISDrainageArea polygon dataset: + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + AreaSqKm – New Field + AgencyCode + SiteNumber + StationName + TotalAreaSqMi – New Field + NWISTotalAreaSqMi – New Field + ContributingAreaSqMi – New Field + NWISContributingAreaSqMi – New Field + ReferenceTNMIDNHDPointEvent + Remarks – New Field + ContributingDrainageAreaAcres – Removed + TotalDrainageAreaAcres – Removed + ContributingDrainageAreaSqKm – Removed + TotalDrainageAreaSqKm – Removed + + NWISDrainageLine line dataset + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + LengthKm – New Field + LineSource – New Field + Agency Code – New Field + SiteNumber + ReferenceTNMIDPointEvent – Removed + + NonContributingDrainageArea polygon dataset + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + AreaSqKm – New Field + NonContributingAreaSqKm – Re-named from NonContributingSqKm + Remarks – New Field + NonContributingAcres - Removed + ReferenceTNMID12digitHU - Removed + + NonContributingDrainageLine line dataset – New dataset + Attribute Fields: + TNMID + MetaSourceID + SourceDataDesc + SourceOriginator + SourceFeatureID + LoadDate + LengthKm + LineSource + + 2016 + + WBDLine dataset + TNMID + HULevel - removed + HUDigit - Originally called HUClass + HUMod + LineSource + MetaSourceID + LoadDate + + WBD polygon datasets + Fields included with the 12-, 14- and 16- digit polygon datasets. + NonContributingAreaAcres - previous version was NonContributingAcres + NonContributingAreaSqKm - previous version was NonContributingSqKm2016Additional information about the processes used to create and maintain the WBD after June of 2012 can be found in the table called METAPROCESSDETAIL. The process descriptions are linked using the TNMID to the FEATURETOMETADATA table. In addition the METASOURCEDETAIL table can also be linked to determine the sources used to create or update the WBD data.2012VectorSimpleFALSE0FALSEFALSE0.01979403240.0223945998Decimal secondsNorth American Datum of 1983Geodetic Reference System 806378137.0298.257222101weberPolygon feature class representing the 2-digit hydrologic unit boundaries (previously referred to as Regions) and are part of the WBD delivery.Federal Standards and Procedures for the National Watershed Boundary DatasetFeature Class0FIDFIDOID400Internal feature number.EsriSequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.EsriCoordinates defining the features.TNMIDTNMIDString4000LoadDateLoadDateDate800AreaSqKmAreaSqKmDouble1900AreaAcresAreaAcresDouble1900NameNameString12000StatesStatesString5000HUC8HUC8String800Shape_LengShape_LengDouble1900Shape_AreaShape_AreaDouble1900Area of feature in internal units squared.EsriPositive real numbers that are automatically generated.WBDHU4Polygon feature class representing the 4-digit hydrologic unit boundaries (previously referred to as Subregions) that are part of the WBD delivery.Federal Standards and Procedures for the National Watershed Boundary DatasetHUC4The HUC4 field is a unique 4-digit hydrologic unit code.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes http://pubs.usgs.gov/tm/11/a3/)WBDHU6Polygon feature class representing the 6-digit hydrologic unit boundaries (previously referred to as Basins) and are part of the WBD delivery.Federal Standards and Procedures for the National Watershed Boundary DatasetHUC6The HUC6 field is a unique 6-digit hydrologic unit code.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)WBDHU8Polygon feature class representing the 8-digit hydrologic unit boundaries (previously referred to as Subbasins) and are part of the WBD delivery.Federal Standards and Procedures for the National Watershed Boundary DatasetHUC8The HUC8 field is a unique 8-digit hydrologic unit code.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes http://pubs.usgs.gov/tm/11/a3/)WBDHU10Polygon feature class representing the 10-digit hydrologic unit boundaries (previously referred to as Watersheds).Federal Standards and Procedures for the National Watershed Boundary DatasetHUC10The HUC10 field is a unique 10-digit hydrologic unit code.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Provide Codeset Definition Reference (Citatation/URL)WBDHU12Polygon feature class representing the 12-digit hydrologic unit boundaries (previously referred to as Subwatersheds).Federal Standards and Procedures for the National Watershed Boundary DatasetHUC12The HUC12 field is a unique 12-digit hydrologic unit code.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)ToHUCThe 12-digit hydrologic unit ToHUC code attribute is the code for the 12-digit hydrologic unit that is downstream from and naturally receives + the majority of the flow from another 12-digit hydrologic unit.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)WBDHU14Polygon feature class representing the 14-digit hydrologic unit boundaries.Federal Standards and Procedures for the National Watershed Boundary DatasetHUC14The HUC14 field is a unique 14-digit hydrologic unit code.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)WBDHU16Polygon feature class representing the 16-digit hydrologic unit boundaries.Federal Standards and Procedures for the National Watershed Boundary DatasetHUC16The HUC16 field is a unique 16-digit hydrologic unit code.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes http://pubs.usgs.gov/tm/11/a3/)WBDLineLine feature class defining the hydrologic unit boundariesFederal Standards and Procedures for the National Watershed Boundary DatasetHUDigitHUDigit is a domain-based field that indicates the minimum number of digits used to represent the hydrologic unit bounded by the line.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)HUModTwo-character, uppercase abbreviation used to track either a modification to natural overland flow that alters the location of the hydrologic unit boundary or special conditions that are applied to a specific boundary line segment. The value identifies the type of modification, from the list provided, that has been applied to the boundary segment. If more than one abbreviation is used, the list is separated by commas without spaces and organized from most to least predominant. +Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)LineSourceLineSource represents the code for the base data used for delineating hydrologic unit boundaries. + If more than one code is used,then the list is separated by a comma with no spaces with the most recent LineSource listed first in the sequence.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)NWISDrainageAreaPolygon features representing PROVISIONAL contributing drainage area for select gage locations in the U.S. Geological Survey National Water Information System +Federal Standards and Procedures for the National Watershed Boundary DatasetAreaSqKmArea of the gaged watershedFederal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Calculated polygon area, square kilometersAgencyCodeSite Agency codeU.S. Geological Survey National Water Information SystemU.S. Geological Survey National Water Information System http://help.waterdata.usgs.gov/SiteNumberU.S. Geological Survey unique site identifierU.S. Geological Survey National Water Information SystemUnique code identifying a measurement site in the National Water Information System databaseStationNameSite NameU.S. Geological Survey National Water Information SystemCommon name associated with site in the National Water Information System databaseTotalAreaSqMiTotal drainage areaFederal Standards and Procedures for the National Watershed Boundary DatasetTotal area of the polygon, square milesNWISTotalAreaSqMiTotal drainage area reported in U.S. Geological Survey National Water Information SystemU.S. Geological Survey National Water Information SystemTotal area in square milesContributingAreaSqMiTotal contributing drainage area, square milesFederal Standards and Procedures for the National Watershed Boundary DatasetTotal contributing area, square milesNWISContributingAreaSqMiContributing drainage area reported in U.S. Geological Survey National Water Information SystemU.S. Geological Survey National Water Information SystemTotal contributing area, square milesReferenceTNMIDNHDPointEventUnique identifier for NHD point event representing gageFederal Standards and Procedures for the National Watershed Boundary DatasetUnique identifier that is automatically generatedRemarksRemarksFederal Standards and Procedures for the National Watershed Boundary DatasetFree text holding remarks from reviewers and/or dataset originatorNWISDrainageLineLine features representing the boundary of the contributing gaged drainage areaFederal Standards and Procedures for the National Watershed Boundary DatasetLengthKmLength of the lineFederal Standards and Procedures for the National Watershed Boundary DatasetCalculated line length, kilometersLineSourceCode identifying the base data used for delineating hydrologic unit boundariesFederal Standards and Procedures for the National Watershed Boundary DatasetFederal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)AgencyCodeSite Agency codeU.S. Geological Survey National Water Information SystemU.S. Geological Survey National Water Information System http://help.waterdata.usgs.gov/SiteNumberU.S. Geological Survey unique site identifierU.S. Geological Survey National Water Information SystemUnique code identifying a measurement site in the National Water Information System databaseWBDLine, WBDHU2, WBDHU4, WBDHU6, WBDHU8, WBDHU10, WBDHU12, WBDHU14, WBDHU16, NWISDrainageArea, NWISDrainageLine, NonContributingDrainageArea, NonContributingDrainageLineThe following attribute fields are common to all feature classes within the WBD Federal Standards and Procedures for the National Watershed Boundary DatasetOBJECTIDInternal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeFeature geometry.ESRICoordinates defining the features.TNMIDTNMID (short for The National Map Identification) is a unique 40-character field that identifies each element in the database exclusively.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)TNMID is an automatically assigned code that stays with each element. When an element is updated or changed, TNMID links the element to the metadata record and documents the change. TNMID is also used to maintain relationship classes in the normalized data model. When an element is deleted or split, TNMID stays with the original element and is not used again. When an element is split, new permanent identifiers are assigned to the resultant parts.MetaSourceIDMetaSourceID is a unique identifier that links the element to the metadata tables.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)MetaSourceID is a unique identifier that links the element to the metadata tables. This ID is generated and assigned automatically by the database and remains with the object permanently.SourceDataDescSourceDataDesc is a space provided for a brief description of the type of base data used to update or change the current WBD.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)The WBD In-State Steward completes this field as part of the metadata form.SourceOriginatorSourceOriginator is the description of the agency that created the base data used to improve the WBD.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)The WBD In-State Steward completes this field as part of the metadata formSourceFeatureIDSourceFeatureID is a long, unique code.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)This code identifies the parent of the feature if the feature is the result of a split or merge, and it is automatically generated and assigned.LoadDateLoadDate represents the date when the data were loaded into the official USGS WBD ArcSDE database. The field is the effective date for all feature edits, and it is automatically generated.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)12:00:00 AM5/22/2015 9:18:54 AMSHAPE_LengthLength of feature in internal units.Esri0.00969668135620442156.106394893564WBDHU2, WBDHU4, WBDHU6, WBDHU8, WBDHU10, WBDHU12, WBDHU14, WBDHU16, NWISDrainageArea, NonContributingDrainageAreaThe following attribute field is common to all polygon feature classes within the WBD Federal Standards and Procedures for the National Watershed Boundary DatasetShape_AreaArea of feature in internal units squared.Esri1.4877635179339E-069.79299310229808WBDHU2, WBDHU4, WBDHU6, WBDHU8, WBDHU10, WBDHU12, WBDHU14, WBDHU16The following attribute fields are common to the WBD hydrologic unit polygon datasetsFederal Standards and Procedures for the National Watershed Boundary DatasetGNIS_IDGNIS_ID is a preassigned numeric field that uses a unique number to relate the name of the hydrologic unit to the GNIS names database.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Geographic Names Information System (GNIS)GNIS (http://gnis.usgs.gov/)AreaAcresThe area of each hydrologic unit including non-contributing areas stored in acres +AreaAcres is common to all polygon feature classes and is calculated at the 12-digit hydrologic unit from the intrinsic area value maintained by the GIS software; therefore, acreage values may vary from user calculations, depending on the projection of the data. North American Albers Equal Area Conic, North American Datum 1983 is the required projection to use for calculation. If the units of the area field are stored in square meters, then use the conversion factor 0.0002471. For example, 40,469,446 square meters multiplied by 0.0002471 =10,000 acresFederal Standards and Procedures for the National Watershed Boundary Dataset (WBD)050000000acresAreaSqKmThe area of each hydrologic unit including non-contributing areas stored in square kilometers. +AreaSqKm is calculated at the 12-digit hydrologic unit from the intrinsic area value maintained by the GIS software; therefore, the square kilometer values may vary from user calculations, depending on the projection of the data. North American Albers Equal Area Conic, North American Datum 1983 is the default projection.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)0100000square kilometersStatesThe States or outlying area attribute identifies the State(s) or outlying areas that the hydrologic unit falls within or touches. Will be populated with the 2 character state abbreviation or outlying area attribute for each area that the unit falls within in alphabetical order.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes http://pubs.usgs.gov/tm/11/a3/)NameName refers to the GNIS name for the geographic area in which the hydrologic unit is located.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)WBDHU10, WBDHU12, WBDHU14, WBDHU16The following attribute fields are common to the 10-digit, 12-digit, 14-digit and 16-digit WBD polygon datasetsFederal Standards and Procedures for the National Watershed Boundary DatasetHUTypeThe 12-digit hydrologic unit type attribute is the single-letter abbreviation for Watershed type from the list of official names provided in the WBD Standards.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)HUModThe hydrologic unit modification attribute is a two-character, uppercase abbreviation(s) for either (1) the type of modification to natural overland flow that alters the natural delineation of a hydrologic unit or (2) the special conditions GF-groundwater flow, GL-glacier, IF-ice field, KA-karst, and NC-noncontributing area. The value of the HUMod field helps to indicate where the modification to the hydrologic unit is located. If more than one abbreviation is used, the will be separated by commas without spaces and listed from most to least predominant.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)Section 6: Geospatial Data Structure and Attributes (http://pubs.usgs.gov/tm/11/a3/)WBDHU12, WBDHU14, WBDHU16, NWISDrainageArea and NonContributingDrainageAreaThe following attribute fields are common to the 12-digit, 14-digit and 16-digit WBD polygon datasets as well as the NWISDrainageArea, and NonContributingDrainageArea polygon datasetsFederal Standards and Procedures for the National Watershed Boundary DatasetNonContributingAreaAcresThe noncontributing area attribute represents the area, in acres, of hydrologic units that do not contribute to downstream accumulation of streamflow under normal flow conditions.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)050000000NonContributingAreaSqKmThe noncontributing area attribute represents the area, in square kilometers, of hydrologic units that do not contribute to downstream accumulation of streamflow under normal flow conditions.Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)0100000The Watershed Boundary Dataset is a comprehensive set of digital spatial data that represents the surface drainages areas of the United States. The information included with the features includes a feature date, a unique common identifier, name, the feature length or area, and other characteristics. Names and their identifiers are assigned from the Geographic Names Information System. The data also contains relations that encode metadata. The names and definitions of all these feature attributes are in the Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD). The document is available online at http://pubs.usgs.gov/tm/11/a3/.The names and definitions of all fields within the WBD attribution are in the U.S. Geological Survey, Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD). The document is available online at http://pubs.usgs.gov/tm/11/a3/. Information about the attribute tables and fields are in Section 6: Geospatial Data Structure and AttributesU.S. Geological SurveyMailing
U.S. Geological Survey, National Geospatial Technical Operations Center, P.O. Box 25046
DenverCO80225
1-877-275-8747bpgeo@usgs.gov
The distributor shall not be held liable for improper or incorrect use of this data, based on the description of appropriate/inappropriate uses described in this metadata document. It is strongly recommended that this data is directly acquired from the distributor and not indirectly through other sources which may have changed the data in some way. The Watershed Boundary Dataset is public information and may be interpreted by all organizations, agencies, units of government, or others based on needs; however, they are responsible for the appropriate application of the data. Federal, State, or local regulatory bodies are not to reassign to the U.S. Department of Agriculture-Natural Resources Conservation Service or the U.S. Geological Survey any authority for the decisions they make. Photographic or digital enlargement of these maps to scales greater than that at which they were originally delineated can result in misrepresentation of the data. If enlarged, the maps will not include the fine detail that would be appropriate for mapping at the small scale. Digital data files are periodically updated. Files are dated, and users are responsible for obtaining the latest version of the data from the source distributor.Vector Digital Data Set (Polygon)ftp://rockyftp.cr.usgs.gov/vdelivery/Datasets/Staged/Hydrography/WBD/National/GDB/National_WBD.zipNone. No fees are applicable for obtaining the data set.
20160727WBD Point of ContactU.S. Geological SurveyMailing
U.S. Geological Survey, National Geospatial Technical Operations Center, P.O. Box 25046
DenverCO80225
1-877-275-8747bpgeo@usgs.gov
FGDC Content Standard for Digital Geospatial MetadataFGDC-STD-001-1998
weberfile://\\CYB-TURING-AG1\E$\OneDrive\OneDrive - The University of Alabama\02.projects\02.nidis\02.code\ewri\02.inputs\shape\weber.shpLocal Area Network0020.000GeographicGCS_North_American_1983Angular Unit: Degree (0.017453)<GeographicCoordinateSystem xsi:type='typens:GeographicCoordinateSystem' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.1.0'><WKT>GEOGCS[&quot;GCS_North_American_1983&quot;,DATUM[&quot;D_North_American_1983&quot;,SPHEROID[&quot;GRS_1980&quot;,6378137.0,298.257222101]],PRIMEM[&quot;Greenwich&quot;,0.0],UNIT[&quot;Degree&quot;,0.0174532925199433],AUTHORITY[&quot;EPSG&quot;,4269]]</WKT><XOrigin>-400</XOrigin><YOrigin>-400</YOrigin><XYScale>11258999068426.238</XYScale><ZOrigin>-100000</ZOrigin><ZScale>10000</ZScale><MOrigin>-100000</MOrigin><MScale>10000</MScale><XYTolerance>8.983152841195215e-09</XYTolerance><ZTolerance>0.001</ZTolerance><MTolerance>0.001</MTolerance><HighPrecision>true</HighPrecision><LeftLongitude>-180</LeftLongitude><WKID>4269</WKID><LatestWKID>4269</LatestWKID></GeographicCoordinateSystem>ExportFeatures WBDHU8 "E:\OneDrive\OneDrive - The University of Alabama\01.dissertation\04.data\01.gsl\01.map\02.modified_data\my_basin_v_00\my_basin_v_00.gdb\WBDHU8_ExportFeatures" # NOT_USE_ALIAS "TNMID "tnmid" true true false 40 Text 0 0,First,#,WBDHU8,TNMID,0,40;LoadDate "loaddate" true true false 8 Date 0 0,First,#,WBDHU8,LoadDate,-1,-1;AreaAcres "areaacres" true true false 8 Double 0 0,First,#,WBDHU8,AreaAcres,-1,-1;AreaSqKm "areasqkm" true true false 8 Double 0 0,First,#,WBDHU8,AreaSqKm,-1,-1;States "states" true true false 50 Text 0 0,First,#,WBDHU8,States,0,50;HUC8 "huc8" true true false 8 Text 0 0,First,#,WBDHU8,HUC8,0,8;Name "name" true true false 120 Text 0 0,First,#,WBDHU8,Name,0,120;Shape_Area "shape_Area" false true true 8 Double 0 0,First,#,WBDHU8,Shape_Area,-1,-1" #ExportFeatures "Jordan-Weber Watershed" "E:\OneDrive\OneDrive - The University of Alabama\01.dissertation\04.data\01.gsl\01.map\02.modified_data\my_basin_v_00\my_basin_v_00.gdb\Weber_Watershed" # NOT_USE_ALIAS "TNMID "tnmid" true true false 40 Text 0 0,First,#,Jordan-Weber Watershed,TNMID,0,40;LoadDate "loaddate" true true false 8 Date 0 0,First,#,Jordan-Weber Watershed,LoadDate,-1,-1;AreaAcres "areaacres" true true false 8 Double 0 0,First,#,Jordan-Weber Watershed,AreaAcres,-1,-1;AreaSqKm "areasqkm" true true false 8 Double 0 0,First,#,Jordan-Weber Watershed,AreaSqKm,-1,-1;States "states" true true false 50 Text 0 0,First,#,Jordan-Weber Watershed,States,0,50;HUC8 "huc8" true true false 8 Text 0 0,First,#,Jordan-Weber Watershed,HUC8,0,8;Name "name" true true false 120 Text 0 0,First,#,Jordan-Weber Watershed,Name,0,120;Shape_Length "Shape_Length" false true true 8 Double 0 0,First,#,Jordan-Weber Watershed,Shape_Length,-1,-1;Shape_Area "Shape_Area" false true true 8 Double 0 0,First,#,Jordan-Weber Watershed,Shape_Area,-1,-1" #ExportFeatures "Weber Watershed" "E:\OneDrive\OneDrive - The University of Alabama\02.projects\02.nidis\02.code\ewri\02.inputs\shape\weber.shp" # NOT_USE_ALIAS "TNMID "tnmid" true true false 40 Text 0 0,First,#,Weber Watershed,TNMID,0,40;LoadDate "loaddate" true true false 8 Date 0 0,First,#,Weber Watershed,LoadDate,-1,-1;AreaAcres "areaacres" true true false 8 Double 0 0,First,#,Weber Watershed,AreaAcres,-1,-1;AreaSqKm "areasqkm" true true false 8 Double 0 0,First,#,Weber Watershed,AreaSqKm,-1,-1;States "states" true true false 50 Text 0 0,First,#,Weber Watershed,States,0,50;HUC8 "huc8" true true false 8 Text 0 0,First,#,Weber Watershed,HUC8,0,8;Name "name" true true false 120 Text 0 0,First,#,Weber Watershed,Name,0,120;Shape_Length "Shape_Length" false true true 8 Double 0 0,First,#,Weber Watershed,Shape_Length,-1,-1;Shape_Area "Shape_Area" false true true 8 Double 0 0,First,#,Weber Watershed,Shape_Area,-1,-1" #202405082225260020240508222526001.0250000240002017031411230000ISO 19139 Metadata Implementation SpecificationFALSEWBD Point of ContactU.S. Geological Survey1-877-275-8747U.S. Geological Survey, National Geospatial Technical Operations Center, P.O. Box 25046DenverCO80225bpgeo@usgs.gov20240508ArcGIS Metadata1.0U.S. Geological Survey1-877-275-8747U.S. Geological Survey, National Geospatial Technical Operations Center, P.O. Box 25046DenverCO80225bpgeo@usgs.govNone. No fees are applicable for obtaining the data set.Vector Digital Data Set (Polygon)ftp://rockyftp.cr.usgs.gov/vdelivery/Datasets/Staged/Hydrography/WBD/National/GDB/National_WBD.zipftp://rockyftp.cr.usgs.gov/vdelivery/Datasets/Staged/Hydrography/WBD/National/GDB/National_WBD.zip0.000ShapefileNational Watershed Boundary Dataset (WBD)2015-12-16U.S. Department of Agriculture - Natural Resource Conservation Service (NRCS)U.S. Geological Survey (USGS)Other Federal, State, and local partners (see dataset specific metadata for details http://nhd.usgs.gov/wbd_metadata.html)U.S. Environmental Protection Agency (EPA)Vector Digital Data SetThe Watershed Boundary Dataset (WBD) is a comprehensive aggregated collection of hydrologic unit data consistent with the national criteria for delineation and resolution. It defines the areal extent of surface water drainage to a point except in coastal or lake front areas where there could be multiple outlets as stated by the "Federal Standards and Procedures for the National Watershed Boundary Dataset (WBD)" “Standard” (http://pubs.usgs.gov/tm/11/a3/). Watershed boundaries are determined solely upon science-based hydrologic principles, not favoring any administrative boundaries or special projects, nor particular program or agency. This dataset represents the hydrologic unit boundaries to the 12-digit (6th level) for the entire United States. Some areas may also include additional subdivisions representing the 14- and 16-digit hydrologic unit (HU). At a minimum, the HUs are delineated at 1:24,000-scale in the conterminous United States, 1:25,000-scale in Hawaii, Pacific basin and the Caribbean, and 1:63,360-scale in Alaska, meeting the National Map Accuracy Standards (NMAS). Higher resolution boundaries are being developed where partners and data exist and will be incorporated back into the WBD. WBD data are delivered as a dataset of polygons and corresponding lines that define the boundary of the polygon. WBD polygon attributes include hydrologic unit codes (HUC), size (in the form of acres and square kilometers), name, downstream hydrologic unit code, type of watershed, non-contributing areas, and flow modifications. The HUC describes where the unit is in the country and the level of the unit. WBD line attributes contain the highest level of hydrologic unit for each boundary, line source information and flow modifications.The intent of defining Hydrologic Units (HU) within the Watershed Boundary Dataset is to establish a base-line drainage boundary framework, accounting for all land and surface areas. Hydrologic units are intended to be used as a tool for water-resource management and planning activities particularly for site-specific and localized studies requiring a level of detail provided by large-scale map information. The WBD complements the National Hydrography Dataset (NHD) and supports numerous programmatic missions and activities including: watershed management, rehabilitation and enhancement, aquatic species conservation strategies, flood plain management and flood prevention, water-quality initiatives and programs, dam safety programs, fire assessment and management, resource inventory and assessment, water data analysis and water census.Funding for the Watershed Boundary Dataset (WBD) was provided by the USDA-NRCS, USGS and EPA along with other federal, state and local agenciesies. Representatives from many agencies contributed a substantial amount of time and salary towards quality review and updating of the dataset in order to meet the WBD Standards. Acknowledgment of the originating agencies would be appreciated in products derived from these data. See dataset specific metadata for further informationU.S. Geological Survey1-877-275-8747U.S. Geological Survey, National Geospatial Technical Operations Center, P.O. Box 25046DenverCO80225bpgeo@usgs.govftp://rockyftp.cr.usgs.gov/vdelivery/Datasets/Staged/Hydrography/WBD/National/GDB/National_WBD.jpgThumbnail JPG imageJPEGUSUnited StatesU.S. Department of Commerce, 1977, Countries, dependencies, areas of special sovereignty, and their principal administrative divisions (Federal Information Processing Standards 10-3): Washington, D.C., National Institute of Standards and Technology.16-digitHydrologic Unit CodeRegion4-digitHUCWatershed Boundary Dataset2-digitBasin10-digitHydrologic UnitsSub-basinWatershedWBD6-digitinlandWatersSub-regionSubwatershed12-digit14-digit8-digitISO 19115 Topic Category16-digitHydrologic Unit CodeRegionUS4-digitHUCUnited StatesWatershed Boundary Dataset2-digitBasin10-digitHydrologic UnitsSub-basinWatershedWBD6-digitinlandWatersSub-regionSubwatershed12-digit14-digit8-digitThe distributor shall not be held liable for improper or incorrect use of this data, based on the description of appropriate/inappropriate uses described in this metadata document. It is strongly recommended that this data is directly acquired from the distributor and not indirectly through other sources which may have changed the data in some way. The Watershed Boundary Dataset is public information and may be interpreted by all organizations, agencies, units of government, or others based on needs; however, they are responsible for the appropriate application of the data. Federal, State, or local regulatory bodies are not to reassign to the U.S. Department of Agriculture-Natural Resources Conservation Service or the U.S. Geological Survey any authority for the decisions they make. Photographic or digital enlargement of these maps to scales greater than that at which they were originally delineated can result in misrepresentation of the data. If enlarged, the maps will not include the fine detail that would be appropriate for mapping at the small scale. Digital data files are periodically updated. Files are dated, and users are responsible for obtaining the latest version of the data from the source distributor.The distributor shall not be held liable for improper or incorrect use of this data, based on the description of appropriate/inappropriate uses described in this metadata document. It is strongly recommended that this data is directly acquired from the distributor and not indirectly through other sources which may have changed the data in some way. These data should not be used at scales greater than 1:24,000 for the purpose of identifying hydrographic watershed boundary feature locations in the United States. The Watershed Boundary Dataset is public information and may be interpreted by all organizations, agencies, units of government, or others based on needs; however, they are responsible for the appropriate application of the data. Photographic or digital enlargement of these maps to scales greater than that at which they were originally delineated can result in misrepresentation of the data. If enlarged, the maps will not include the fine detail that would be appropriate for mapping at the small scale. Digital data files are periodically updated and users are responsible for obtaining the latest version of the data from the source distributor. Acknowledgment of the origination agencies would be appreciated in products derived from these data.Microsoft Windows 10 Version 10.0 (Build 19045) ; Esri ArcGIS 13.1.3.41833publication date1980-01-012016-01-01-179.229655487179.856674735-14.424695094371.4395725902The WBD was produced and is maintained through a cooperative process involving state, federal and local partners. Process information for a specific state or region can be found within the state specific metadata located at http://nhd.usgs.gov/wbd_metdata.html. This metadata file has information for WBD features contained in the WBD feature dataset. This includes information about the 2-, 4-, 6-, 8-, 10-, 12-, 14-, 16-digit polygons and WBD_Line dataset. Users accessing the WBD via shapefile will need to search for the attribution related to that specific dataset.Lines, polygons and nodes conform to topological rules. Lines intersect only at nodes, and all nodes anchor the ends of lines. Lines do not overshoot or undershoot other lines where they are supposed to meet. There are no duplicate lines. Lines bound polygons. Gaps and overlaps among polygons do not exist. All polygons close.Lines, polygons and nodes conform to topological rules. Lines intersect only at nodes, and all nodes anchor the ends of lines. Lines do not overshoot or undershoot other lines where they are supposed to meet. There are no duplicate lines. Lines bound polygons. Gaps and overlaps among polygons do not exist. All polygons close.The WBD contains completed polygons at every level for the United States. All required fields within the polygon and line datasets are populated. Some of these fields may be populated with a zeor "0". The lines coincident with the international boundary are assigned a HULevel value of 0. These cannot be attributed until the adjacent international units are added at which point the highest level of hydrologic unit can be determined. A detailed description of delineation methods and full attribute definitions can be found in the WBD Standards. Users are advised to carefully read the metadata record for additional details.All attempts were made to verify 100% of the initially required attributes using 24K digital raster graphics (DRGs) as the base. Additional datasets, like the Geographic Names Information System (GNIS) and NHD, may also have been used to verify attribution. The accuracy of this data is dependent on the level of detail of the source material and the interpretation procedures for capturing that source. Other sources and methods may have been used to create or update WBD data. In some cases, additional information may be found in the WBD Metadata table.The WBD was produced using a variety of digital spatial data including but not limited to Digital Raster Graphics (DRGs), aerial imagery and digital elevation models (DEM). It is assumed these data are mapped at approximately 1:24,000-scale and contain a minimum inherent error of +/- 40 feet. It should be noted that the WBD is undergoing continuous update as source data improves and as hydrologic interpretations are refined. While general rules of hydrology were used in delineation, locations of boundaries may be subjective in some cases. Additional information may be found in the WBD Metadata table.A formal accuracy assessment of the vertical positional information in the data set has either not been conducted, or is not applicable.The original dataset was reviewed by USGS personnel using on-screen techniques with DRGs as the base map. All hydrologic units within the dataset that were less than 3,000 acres were dissolved out.2003-01-01First draft of metadata created by NRCS using METADATA Editor in ArcCatalog ver. 9.1 sp.1 hu12_geo832007-01-24Below is a list of updates (from 2011 to 2016) resulting from harmonization work with Canada. Alaska: Legacy 19010101 Southeast Mainland name and code were retired and the area subdivided into four units. New codes and names are as follows and accepted by the National Technical Team and approved with Canadian and Alaska partners (USFS): 19010104 Bradfield Canal 19010105 Burroughs Bay 19010106 Headwaters Portland Canal 19010107 Outlet Portland Canal Legacy 19010201 Mainland had a portion broken out. 19010201 will be preserved and the small piece broekn out in order to harmonize with Canada. The smaller piece will have the new code 19010205 and the name will be Lower Iskut. Revised again 5/31/11: 19010201 Mainland was broken into three new units 19010206 Holkham Bay 19010207 Stikine River 19010208 Thomas Bay Legacy 19010301 Lynn Canal now has the Taku River broken out to accommodate Canada. Taku River will be code 19010304. The National Technical Coordinators (NTC) accepts this. Revised again 5/31/11:(AK group consulted along with Pete Steeves, Kim Jones, Stephen Daw, Karen Hanson): 19070101 Atlin Lake was broken out of the legacy Lynn Canal 19010301 and is part of the newly accepted Subregion 1907 Legacy 19010302 Glacier Bay was subdivided along the ridge separating out the ocean flow. The unit broken out is: 19010406 Palma Bay (this unit also includes a portion of the original 19010401) Note: Legacy 19010302 Glacier Bay will be retained although the area is now smaller. Other options didn’t make as much sense. Legacy 19010303 Chilkat-Skagway Rivers was subdivided into: 19070102 Bennett Lake 19070103 Tagish Lake 19070104 Takhini River Note: 19010303 Chilkat-Sakgway Rivers is retained Legacy 19010401 Yakutat Bay name and code retired and the area subdivided into 4 new units. New codes and names are as follows 19010403 Tatshenshini River 19010404 Alsek River 19010405 Yakutat Bay-Gulf of Alaska 19010406 Palma Bay (This new unit also includes a portion of the original 19010302) Idaho and Washington - 2013 - The Columbia River Basin and Puget Sound Coastal area was updated to include the harmonized 8-, 10, and 12-digit hydrologic units within Canada. This harmonized data was created with contributions from US and Canadian Federal, State, Provincial and local partners. The British Columbia 20K Fresh Water Atlas watershed data and DEM data were used to create the units within Canada. Border units were updated through a review/agreement process with local and state/provincial partners using the best available data (DEM, DRG, Imagery, Field Verification). During the harmonization effort there were some 8-digit updates that were agreed to. Legacy 17010101 Upper Kootenai name will change to Middle Kootenai to coordinate with Canada since there is an Upper Kootenay solely in Canada. Legacy 17010101 Upper Kootenai boundary changed slightly. The WBD Technical Team recommends retaining the legacy name and code. A new subbasin was created as a result of the international border harmonization which slightly goes into the U.S. (the portion of 17010101 referenced above). The WBD Technical Team recommends coding this unit with the next down sequential code which would be 17010106 and using the name that Canada refers to this hydrologic unit as “Elk”. 17110001 legacy name “Fraser” is being changed to “Sumas River” to match with Canada, and because the Fraser River doesn’t flow through this unit. Montana: 1001 flows into Canada and the Saskatchewan River and not into the Missouri River as originally thought. As such this 4-digit hydrologic units was moved from region 10 to 09. 0904 - Saskatchewan River 090400- Upper South Saskatchewan River (This matches the Canadian FDA at the WSCSDA level (sub drainage area)). 10010001 name and code have been retired, and this area is now 09040002 Belly 10010002 name and code have been retired, and this area is now 09040001 St. Marys Minnesota: 2014 - Rainy River Basin was updated to include the harmonized 8-, 10- and 12-digit hydrologic units with Canada. This harmonized data was created over a 6 month time period with cooperation from Federal, State, Provincial and Local Partners. Some of the boundaries within MN were updated using the MN LiDAR data. The MN LiDAR was also used in the creation of boundaries within Canada when the LiDAR data overlapped into Canada. The other boundaries within Canada were generated using the province of Ontario’s 20K DEM and Hydrography data. There were some 8-digit updates as a result of the harmonization effort. 09030004 Upper Rainy has been retired 09030004 is now a part of 09030008 the Lower Rainy 2 new 8-digit units were broken out in Canada 09030010 – Big Turtle River-Rainy Lake 09030011 – Shoal Lake North Dakota: Legacy 09020313 Pembina was subdivided into two new units. The legacy name and code were retired. The new codes and names are: 09020315 Upper Pembina River 09020316 Lower Pembina River 2014- Souris River Basin was updated to include the harmonized 8-, 10- and 12-digit hydrologic units with Canada. This harmonized data was created over a 6 month time period with cooperation from Federal, State, Provincial and Local Partners. There were some 8-digit updates as a result of the harmonization effort. Legacy 09010001 Upper Souris has now been subdivided. That code and name have been retired and the new units are: 09010006 Long Creek 09010007 Headwaters Souris River 09010008 Moose Mountain Creek-Souris River North Dakota and Minnesotta: Red River Basin Legacy 09020311 Lower Red name is being changed to Middle Red in order to harmonize with Canada. Lower Red is the Basin name for this entire area but the impact to change at that level isn’t known so won’t change. 2016 - Red River Basin was updated to include the harmonized 8-, 10-, and 12-digit hydrologic units within Canada. Some of the boundaries within MN and ND were updated using Lidar data. Lidar data was also used in the development of hydrological units within Canada. Where Lidar data did not exist the province of Manitoba provided either 1:20,000 scale or 1:50,000 scale digital elevation data for boundary delineations. Maine All HUC8 boundaries were updated with the Harmonized US/CAN border into Canada. Coding was updated as needed. 01010001 was subdivided into 6 new units. 01010001 code retired 01010001 HUC8 name retired (Upper St. John) New codes and HUC8 names 01010006 – Headwaters Saint John River 01010007 – Big Black River-Saint John River 01010008 – St. Francis River-Saint John River 01010009 – Little River-Saint John River 01010010 – Becaguimec Stream-Saint John River (This unit now contains a portion of the original 01010005) 01010011 – Keswick River-Saint John River 01010004 - Boundary within Canada was updated with harmonized boundary. 01010005 - Boundary was updated with US/CAN harmonized boundary. A small portion of 01010005 was moved into the new 01010010 so that 01010005 is a standard HUC 8 unit for the Meduxnekeag River. 01020001 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. 01030001 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. 01030002 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. 01040001 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. 01050001 - Boundary was updated with US/CAN harmonized boundary. This boundary was developed during the initial St. Croix pilot and includes updates within the US as well as Canada. Coding left as is 01050002 - The harmonized boundary for 01050004 required updates to 01050002. A portion of 01050002 was moved to 01050004 to accommodate the new harmonized boundary. This required re-coding of the entire 01050002. 01050004 - Boundary was updated with US/CAN harmonized boundary. A portion of 01050002 was moved into this unit. Codes were updated to reflect this boundary change. 04150600 – Chaudiere River This is a new unit that was created when the WBD boundary was moved from the international boundary on to the ridgelines Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. 04150500 - Boundary was updated with US/CAN harmonized boundary. Coding left as is New Hampshire 01040001 - Original WBD boundary between the US and Canada used the international boundary. However when this boundary was compared to the 1:24,000 scale DRGs in the US and 1:20,000 hypsography in Canada the international boundary and ridgelines were not coincident. The Boundary was updated to the ridgeline. Coding not updated. 04150500 - Boundary was updated with US/CAN harmonized boundary. Coding left as is New York 04150301 - Subdivided into 2 new units 04150301 code retired 04150301 HUC8 name retired (Upper St. Lawrence) New Codes and HUC8 names 04150309 – Headwaters St. Lawrence River 04150310 – Raisin River-St. Lawrence River 04150306 - Boundary was updated with US/CAN harmonized boundary. Coding left as is 04150307 - Boundary was updated with US/CAN harmonized boundary. Coding left as is 04150308 - Boundary was updated with US/CAN harmonized boundary. Coding left as is 04150408 - Boundary was updated with US/CAN harmonized boundary. Coding left as is 04150409 - Boundary was updated with US/CAN harmonized boundary. Coding left as is Vermont 04150407 - Boundary was updated with US/CAN harmonized boundary. Coding left as is 04150408 - Boundary was updated with US/CAN harmonized boundary. Coding left as is 04150409 - Boundary was updated with US/CAN harmonized boundary. Coding left as is 04150500 - Boundary was updated with US/CAN harmonized boundary. Coding left as is Great Lakes The boundaries for Lake Ontario (0415200), Lake Erie (04120200), Lake Huron (04080300) and Lake Superior (04020300) were updated using the new inland lakes coastal method. All updates were coordinated with the WBD state steward for each adjacent state. The area within Wisconsin was excluded per the state partner’s request. All surrounding 8-digits (units touching the lakes) were reviewed and updated as well.2016-01-01Mexico Harmonization (2010-2014) 2010 - Harmonization with Texas and Mexico; HUC12 polygons and line rework by USGS Water Science Center, Salt Lake City, UT. 2014 - Harmonized 8-, 10 and 12-digit units for all border 8-digit units with Mexico were incorporated into the WBD. These datasets were developed through a coordinated effort between the USGS and INEGI along with input from State and local partners. Due to the harmonization effort some 8-digit boundaries may have been adjusted. In addition to this the 10- and 12-digit boundaries along the border might have also been adjusted based on the availability of better base information within Mexico provided by INEGI.2014-01-01The following edits (2012 - present) were completed during national quality control review performed by the WBD national technical edit team in the USGS Utah Water Science Center. Updates may not affect all hydrologic units. Edits by USGS Water Science Center in Salt Lake City, Utah. 1. Reviewed all the ToHUC codes within the 12-digit polygons and made updates as necessary. All updates were coordinated and approved by WBD state stewards. 2. Updated Linesource code (misspellings, removed extra spaces etc.) where needed to match Federal Standards 3. Updated and corrected errors in the HU_Mod fields where needed to match Federal Standards. 4. Updated State field for Canada (CN) and Mexico (MX) based on the new version of the Standards 5. Reviewed all the Names related to each 10-digit and 12-digit polygon and made updates as necessary. All updates were coordinated and approved by the WBD State stewards 6. Checked and updated HU_Level field where HU_Level = 99 or = null 7. Updated the 8-digit outer boundary for units flowing into ocean units by extending the boundary offshore to the 3 nautical mile limit provided by NOAA. All updates were coordinated and approved by the WBD state stewards2016-01-01The following are 8-digit updates (from 2009-2016) that were approved by the WBD National Technical Coordinators as required by the WBD Standards. These may include name/code updates or boundary updates that were implemented in the WBD at some point during the creation or maintenance of the data. Alaska: Legacy 19020401 Anchorage boundary has changed by about 20% of its area. 19020203 (Prince William Sound) Added a new subbasin unit for Prince William Sound. Adjusted huc8 boundaries between 19020104, 19020201 and 19020202 to better reflect surface water flow and to assist with delineating the Prince William Sound as a new unit. Legacy 19020302 Upper Kenai Peninsula has changed by about 20% of its area. Legacy 19030304 Wood River was subdivided which has created a reduced area for the 19030304 Wood River and put Igushik River into its own hydrologic unit with a new code of 19030306. Legacy 19030402 Farewell Lake was divided into 19030406 Middle Flork Kuskokwim River and 19030407 South Fork Kuskokwim River. Legacy 19040204 Black River was subdivided. 19040204 will remain the Black River, and a new unit 19040206 Grass River is broken out. 19040502: The outlet for subbasin 19040502 was moved downstream from the current break across Tanana River at a confluence with a minor tributary to the more prominent confluence with Robertson River. This edit resulted in the addition of 2 subwatersheds to 19040502 and the removal of 2 watersheds from 19040503. Legacy 19040504 Delta River linework changed significantly. The legacy 19040504 had 3 separate outlets; Delta River, Delta Creek and Little Delta River. The boundary was adjusted so that 19040504 contained just the Delta River as a standard unit. The Delta Creek and Little Delta River where moved into 19040507. Legacy 19040507 Tanana Flats Linework changed significantly. 19040606 - Legacy boundary for 19040606 had the outlet at a location across the Huslia River downstream from the outlet of the South Fork Huslia River. The boundary was adjusted downstream to the major confluence where the Huslia River drains into the Koyukuk River, thus creating a standard HUC8 for the Huslia River. 1905: 19050202, 19050203, 19050301, 19050304, 19050403 19050202’s boundary was adjusted so that this unit contained all frontal drainage areas flowing into the southern portion of Kotzebue Sound. 19050203’s boundary was adjusted to that the unit included Eschscholtz Bay and all of the drainage areas flowing into it. 19050301’s boundary was adjusted so that this unit has one outlet and includes Selawik Lake. The frontal drainages flowing into Hotham Inlet were moved into unit 19050304. 19050304’s boundary was adjusted so that the unit included Hotham Inlet and the frontal drainages flowing into it. 19050403’s boundary was adjusted to a buffer distance of 1000 meters off shore. 19050500 - Kotzebue Sound: Added a new HUC8 unit to AK WBD for Kotzebue Sound. Inner coastal units that ended at the shore line were extended offshore to a 1000 meter buffer distance. Legacy 19060204 Ikpikpuk River absorbed Inaru River from Legacy 19060202 Legacy unit 19060202 contained 2 different stream systems flowing into 2 different bodies of water. The Inaru River flows into Admiralty Bay while the Kugrua River and the other small frontal drainages flows into the Chukchi Sea. The boundary was adjusted so that flow into Admiralty Bay/Dease Inlet was separate from flow into Chukchi Sea. The Inaru River, Admiralty Bay/Dease Inlet and all associated frontal drainages were added to subbasin 19060204. New Subbasin 19060206 is being named Admiralty Bay-Dease Inlet. This area use to be part of Subbasin 19060204 19020800 Cook Inlet is a new hydrologic unit as recommended by the Alaska in state stakeholders. 2011 - These updates where proposed by Forest Service partners within the Tongass National Forest. When major changes are made to the HUC8 container (i.e. the container is subdivided into multiple units) the national protocol has been to retire the old HUC8 code and name and assign new codes and names to the updates units 19010202 (Kuiu-Kupreanof-Mitkof-Etolin-Zarembo-Wrangell) is being retired and 2 new HUC8 units were formed. Kuiu Island, Mitkof Island and Kupreanof Island were split out into their own 8-digit unit HUC8 - 19010210 HU8_Name – Kuiu-Kupreanof-Mitkof Islands Zarembo Island, Wrangell Island and Etolin Island were subdivided into their own 8 digit unit HUC8 – 19010209 HU8_Name – Etolin-Zarembo-Wrangell Islands 19010203 (Baranof-Chichagof Islands)19010203 was retired. 19010203 was subdivided 3 new units; 2 island units and 1 channel unit. Chichagof Island was split out into its own 8-digit unit HUC8 – 19010211 HU8_Name – Chichagof Island Baranof and Kruzof Islands were subdivided into their own 8-digit unit HUC8 – 19010212 HU8_Name – Baranof Island Created a new water hydrologic unit for the channel between Chichagof Island and Baranof/Kruzof Islands. This new water unit would become a HUC10 unit within the "Water" subbasin 19010500. HUC10 – 1901050011 HUC10_Name - Peril Strait Because of the varying width of the channel the boundary was graduated from a 1,000 meter buffer to 100 meter buffer from the Low Tide Shoreline. The Low Tide Shoreline was provided by the Forest Service. A 1,000 meter buffer was used in the open channel to match the buffer distance used within the rest of SE AK WBD. There is a narrow portion of the channel where the boundary was gradually reduced from the 1,000 meter buffer to a 100 meter buffer. 2014 - Updated Alaska’s region 1904 based on a request from NHD program and approved by state partners. 1904 was subdivided 3 new 4-digit hydrologic units. The new units are 1907 – Upper Yukon River 190701 – Headwaters Yukon River 1908 – Middle Yukon River 1909 – Lower Yukon River 2016 - Updates to AK 8-digit units based on harmonization effort with Canada 19070504 (Eagle Creek-Yukon River) is being subdivided 2 new 8-digit hydrologic units. Original code and name are being retired. HUC8 - 19070505 (Tatonduk River-Yukon River) HUC8 - 19070506 (Charley River-Yukon River) 19060503 (Beaufort Lagoon) is being subdivided 3 new 8-digit hydrologic units. Original code and name are being retired. HUC8 - 19060504 (Kongakuat River-Beaufort Lagoon) HUC8 - 19060505 (Firth River) HUC8 - 19060506 (Babbage River) is completely within Canada Yukon Territory Arizona: Legacy 15010009 Fort Pierce Wash name changed to Fort Pearce Wash to account for misspell. Legacy 15010007 Hualapai Wash name should change as the wash is now in the adjacent Subbasin. Changed to Red Lake California: Legacy 18010109 Gualala-Salmon had an area the size of several 12-digit HUs that has been aggregated into the adjacent legacy 18050005 Tomales-Drake Bays as a result of coastal implementation. This is approved by the in-state WBD Steward and T3.Legacy 18030012 and new 18030012 Tulare-Buena Vista Lakes changed to Tulare Lake Bed as the boundary has changed so significantly that Buena Vista Lakes are no longer in the adjusted hydrologic unit. Legacy 18040001 and new 18040007 name changed from Upper Chowchilla-Upper Fresno to Fresno River as the Chowchilla is no longer in the adjusted hydrologic unit. Legacy 18040002 and new 18040002 name changed from Middle San Joaquin-Lower Merced-Lower Stanislaus to Lower San Joaquin River as Merced and Stanislaus Rivers are no longer in the adjusted hydrologic unit. Legacy 18050006 San Francisco-Coastal South will absorb 4 coastal 12-digit HUs from legacy 18060001 San Lorenzo-Soquel as a result of coastal implementation. This is approved by the in-state WBD Steward and the WBD National Technical Coordinators (NTC) Legacy 18060006 Central Coastal will absorb an area the size of 6 12-digit HU’s from legacy 18060012 Carmel which all drains directly to the Pacific Ocean. This is approved by the in-state WBD Steward and the WBD National Technical Coordinators (NTC) Portions of legacy 18060011, 18060012, and part of 19060001 will become a new subbasin accounting for all of these frontal pieces. It will be coded 18060015 and named Monterey Bay. This is approved by the in-state WBD Steward and the WBD National Technical Coordinators (NTC) Legacy 18060013 Santa Barbara Coastal had an area the size of one 12-digit HU which will be aggregated with legacy 18070101 Ventura as a result of coastal implementation. This is approved by the in-state WBD Steward and the WBD National Technical Coordinators (NTC) Legacy 18070104 Santa Monica Bay had an area the size of several 12-digit HUs which will be aggregated with legacy 18070106 San Gabriel as a result of coastal implementation. This is approved by the in-state WBD Steward and WBD National Technical Coordinators (NTC) Legacy 18100200 has now been subdivide into 18100201, 18100202, 18100203, and 18100204. The legacy name for 180100200 has been retained as the Salton Sea for new code 18100204. New names for the other subdivisions have been reviewed and accepted as follows: 18100201 Whitewater River 18100202 Carrizo Creek 18100203 San Felipe Creek Legacy 18040002 and new 18040051 name Middle San Joaquin-Lower Merced-Lower Stanislaus was change to Rock Creek-French Camp Slough. Legacy 18020124 Honcut Headwaters name and code have been retired. It was absorbed in to legacy 18020106 Lower Feather to form the new 18020159. WBD National Technical Coordinators (NTC) recommends the name retain the combined legacy names of Honcut Headwaters-Lower Feather. Legacy 18020120 Upper Butte and legacy 18020105 Lower Butte have been retired. The two hydrologic units were combined in to the new accepted code and name of 18020158 Butte Creek. Legacy 18020119 Mill-Big Chico, 18020103 Sacramento-Lower Thomes, and 18020114 Upper Elder Thomes have been retired. The accepted names and codes for the newly delineated hydrologic units to replace those areas are 18020157 Big Chico Creek-Sacramento River, 18020156 Thomes Creek-Sacramento River, and 18020155 Paynes Creek-Sacramento River. The following legacy names and codes have been retired: 18020113 Cottonwood Headwaters, 18020102 Lower Cottonwood, 18020101 Sacramento-Lower Cow-Lower Clear, 18020118 Upper Cow-Battle, and 18020112 Sacramento-Upper Clear. The accepted codes for the newly delineated hydrologic units that replace those areas will be 18020151-18020154. The approved names are: 18020151 Cow Creek 18020152 Cottonwood Creek 18020153 Battle Creek 18020154 Clear Creek-Sacramento River 18010111 code and name have been retired and the area has been subdivided. A portion is in 18010109 Gualala-Salmon, and the other portion in 18050005 Tomales-Drake Bays 18020107 code and name have been retired and the area is now included with 18020125 Upper Yuba 18020108 code and name have been retired and the area is now included with 18020126 Upper Bear 18020110 code and name have been retired and the area is now included with 18020116 Upper Cache 18030008 code and name have been retired and the area is now included with 18030012 Tulare Lake Bed 18030011 code and name have been retired and the area has been subdivided. A portion is in 18030012 Tulare Lake Bed, and the other portion in 18030009 Upper Dry 18040004 code and name have been retired and the area is now part of 18040011 Upper Calaveras California 18040005 code and name have been retired and the area is now part of 18040003 San Joaquin Delta, 18040012, 18040012 Upper Mokelumne, and 18040003 Upper Cosumnes 18020109 code and name have been retired and the area is now part of 18020163 Lower Sacramento 18020117 code and name have been retired and the area is now part of 18020162 Upper Putah 18060001 code and name have been retired, and the areas are now subdivided between 18050006 San Francisco Coastal South and 18060015 Monterey Bay 18060011 code and name have been retired and now is subdivided between 18060015 Monterey Bay and 18060005 Salinas 18060012 code and name have been retired and the area is now part of 18060006 Central Coast and 18060015 Monterey Bay Colorado: Legacy 14010006 Parachute-Roan name and code have been retired. This area has been combined with 14010005 Colorado Headwaters-Plateau. Connecticut: 01100007 code and name have been retired and the area is now part of 0110004 Quinnipiac Delaware: 02060007 code and name have been retired and this area now included with 02080110 Tangier 02060008 code and name have been retired and this area now included with 02080109 Nanticoke 02060009 code and name have been retired and this area is now part of 02080111 Pokomoke-Western Lower Delmarva and 02080110 Tangier 02060010 code and name have been retired and this area is now part of 02040303 Chincoteague Florida: Legacy 03090202 Everglades has been modified as follows: The largest part of 03090202 Everglades carries the legacy code and name. Subdivided out new Subbasin 03090206 Florida Southeast Coast Combined additional smaller portions of 03090202 with adjacent Subbasins. Louisiana: 2009 - USGS Water Science Center, Salt Lake City, UT. Recoded all HUC12 codes and DS codes for 08080100 Atchafalaya to 08080101 Atchafalaya. 08080101 is the correct code. During the development of the WBD the 12-digit hydrologic units were miscoded as 08080100. Maine Updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details. Massachusetts: 01070002 is retained for the headwaters of this original code, but ¾ of the original area is now coded 01070006. The area now coded 01070006 retained the original name for the area of legacy 01070002 and is called Merrimack, whereas 01070002 is not called Winnipesaukee River (other state documentation supporting this decision) New Hampshire: Legacy 01070002 Merrimack was subdivided in to 01070002 Merrimack to the North and 01070006 Merrimack River to the South. The technical team requests that the portion to the South retain the legacy code and name of 01070002, Merrimack, and that the northern hydrologic unit receive the code and name 01070006 Winnipesaukee River. There is no Merrimack River in the northern portion and the southern portion most closely resembles the legacy delineation. Additional updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details New York: Legacy 04150307 English-Salmon was subdivided into 04150307 Salmon and 04150308 Chateaugay-English. The Technical Team accepts this change. 2010- Edits were made to Lake Champlain Basin moving it from Region 02 to Region 04. Update to delineation data in Lake Champlain area on the US side and Canadian side. All lines within Canada are draft delineations only. These boundaries were based on Canada's 1:50,000 National Hydrography Network Work Units or were delineated using either 1:50,000 scale topos or CDED elevation data. These boundaries have not been fully reviewed or approved by either the Canadian federal or provincial agencies and are subject to change. Border polygons are based off of these internal boundaries within Canada and so are also subject to change within Canada. Edits made by USGS Salt Lake City, Water Science Center: to the Lake Champlain and surrounding subbasins to remove all shoreline representations from the WBD. The codes, DS codes and names where updated where necessary. 02010004 name and code have been retired, and this area was subdivided, part is in 04150404 Ausable River and part in 04150408 Lake Champlain. 02010006 name and code have been retired and this area was subdivided. Part is in 04150406 Saranac River and part is in 04150408 Lake Champlain. 02010001 name and code have been retired and this area was subdivided into 04150401 Mettawee River and 04150408 Lake Champlain The new Lake Champlain unit 04150408 is made up of parts of original HUC250K units 02010001, 02010002, 02010003, 02010004, 02010005, 02010006 and 02010007 Additional updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details North Carolina: Legacy subbasin 03030001 and legacy subbasin 03020106 have been combined and recommended for acceptance as a new 6-digit Basin 030203 Onslow Bay. Legacy Subbasin 03030001 New has been recoded and renamed to 03020302 New River. The technical team accepts the new code and name. Legacy Subbasin 03020106 Bogue-Core Sounds has been recoded and renamed to 03020301 White Oak River. The technical team accepts the new code and name. 03040207 code and name are still in use, but the portion that stretches along the coast has been broken out to a new 03040208 Coastal Carolina North Dakota: Legacy 10160007 East Missouri Coteau, changed to North Fork Snake as that is a better hydrologic representation of the hydrologic unit. Legacy 10170103 South Big Sioux Coteau name changed to Lake Thompson Legacy 10170201 Middle Big Sioux Coteau name changed to Upper Big Sioux Legacy 10170202 Upper Big Sioux name changed to Middle Big Sioux Because legacy 10170203 Lower Big Sioux should stay the same, it doesn’t make sense not to have a middle and an upper. Although the boundaries have significantly relocated, it seem like most viable option is to retain the Upper, Middle, Lower naming convention. Additional updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details Oregon: Legacy 17100304 Coos was subdivided into 17100304 Coos to the north and 17100306 Sixes to the south. The Technical team accepts this change. South Carolina: Legacy 03040207 Carolina Coastal-Sampit was subdivided into a southern portion called 03040207 Carolina Coastal-Sampit and a northern portion newly coded and named 03040208 Coastal Carolina. The technical team recognizes this as an acceptable solution, however, future coastal delineations may require additional modification. Legacy 03050202 South Carolina Coastal has now been subdivided into subbasins 03050202 South Carolina Coastal and 03050209 Bulls Bay with an additional portion of 03050202 being aggregated in with legacy 03050201 Legacy 03050208 Broad-St. Helena has had the following modifications which the NTC concurs with: 03050208 Broad-St. Helena code and name retained into a much smaller unit capturing only the Broad-St. Helena Rivers Subdivided into new 03060110 Calibogue Sound-Wright River, and now part of the adjacent Subregion to the south. Subdivided into new 03050210 St. Helena Island portion combined with 03050207 Salkehatchie. Legacy 03050205 name is changed to Four Hole Swamp (from Edisto...this name was flipped with the hydrologic unit the water feature resides in). The WBD National Technical Team recommended that this name not be reused as it has been historically assigned to 03050206, but all in state interagency folks felt strongly that it should be reused as that is by far the predominant feature for the HU. Reports since 2005 reflect this. Legacy 03050206 name is changed to Edisto River to reflect the major hydrologic feature. South Dakota: 2009 - Edits made by in-state data steward; all of sub-basin 10160010 (now retired) was recoded to 10160011 (Lower James); In addition to the recoding of this 8-digit level unit in the James Basin, this group of edits primarily consisted of minor corrections to linework and 12-digit downstream codes, populating ncontrb_A fields of selected 12-digit units, and tweaking selected 5th- and 6th-level unit names to facilitate merging with GNIS. Texas: Legacy13070008 Lower Pecos was subdivided into a northern and southern portion. The northern portion retains the 13070008 code but name should be Pecos. The new subdivided 13070012 hydrologic unit should carry the legacy name Lower Pecos. Legacy 13090002 Lower Rio Grande is missing from the current WBD. Vermont: Updated 01110000 from Region 01 to Region 04 and is now 04150500 (St. Francois River). Craig Johnston (USGS) pointed out that this unit contains the St. Francois River which flows up into Canada and then dumps into the St Lawrence River. Region 01 is Maine Coastal drainage's while region 04 is St. Lawrence drainage's, so this unit really belongs in region 04. 2010- Edits were made to Lake Champlain Basin moving it from Region 02 to Region 04. Update to delineation data in Lake Champlain area on the US side and Canadian side. All lines within Canada are draft delineations only. These boundaries were based on Canada's 1:50,000 National Hydrography Network Work Units or were delineated using either 1:50,000 scale topos or CDED elevation data. These boundaries have not been fully reviewed or approved by either the Canadian federal or provincial agencies and are subject to change. Border polygons are based off of these internal boundaries within Canada and so are also subject to change within Canada. Edits made by USGS Salt Lake City, Water Science Center: to the Lake Champlain and surrounding subbasins to remove all shoreline representations from the WBD. The codes, DS codes and names where updated where necessary. 02010001 name and code have been retired and this area was subdivided into 04150401 Mettawee River and 04150408 Lake Champlain. 02010002 name and code have been retired and this area was subdivided into 04150402 Otter Creek and 04150408 Lake Champlain. 02010003 name and code have been retired and this area was subdivided into 04150403 Winooski River and 04150408 Lake Champlain. 02010005 name and code have been retired and this area was subdivided into 04150405 Lamoille River and 04150408 Lake Champlain. 02010007 name and code have been retired and this area was subdivided into 04150407 Missiquoi River and 04150408 Lake Champlain. The new Lake Champlain unit 04150408 is made up of parts of original HUC250K units 02010001, 02010002, 02010003, 02010004, 02010005, 02010006 and 02010007. Additional updates at the 8-digit occurred as a result of the US/Canada harmonization effort. See process section on Canadian harmonization for these details Wisconsin: Legacy 07090001Upper Rock keeps the same code and name but the original hydrologic unit delineation changed significantly. Legacy 07090002 Crawfish keeps the same code and is renamed to Middle Rock. The original hydrologic unit delineation changed significantly.2016-01-01The following section describes updates to the WBD data model (2012-2016). July 2012 National responsibility for stewardship and maintenance of the WBD transferred from NRCS to the USGS. As a result the WBD data model was updated and the data was incorporated into the NHD database. WBD model updated based on input from NRCS, USGS, NHD program and user community. WBD polygon dataset subdivided into individual polygon datasets for each level of hydrologic units. Two additional datasets added for the next 2 levels of subdivisions (14- and 16-digit) but are not required for each state to populate these. Attribute tables for polygons and lines were updated with some fields being added, renamed or removed. See below for a list of changes. WBD Line attribute table changes: Old Model: HU_LEVEL LINESOURCE META_ID – removed – Feature level metadata functionality is added to track updates in the new model LEFT_HUC_8 – removed RIGHT_HUC_8 – removed New Model: Permanent_Identifier – New field for feature level metadata Source_FeatureID – New field for feature level metadata Meta_SourceID – New field for feature level metadata Source_DataDesc – New field for feature level metadata Source_Originator – New field for feature level metadata HU_Level HU_Class – New field populated with the number of digits of the hydrologic unit LoadDate – New field for feature level metadata LineSource WBD Polygon attribute table changes: Codes and names moved from single polygon dataset to the appropriate hydrologic unit dataset for each level Old Model: HUC_8 – moved to 8-digit polygon dataset HUC_10 – moved to 10-digit polygon dataset HUC_12 – moved to 12-digit polygon dataset ACRES – re-named to AREA_ACRES NCONTRB_A HU_10_GNIS – Replaced with Gaz_ID HU_12_GNIS – Replaced with Gaz_ID HU_10_DS – Removed from new model HU_10_NAME – moved to 10-digit polygon dataset HU_10_MOD – moved to 10-digit polygon dataset HU_10_TYPE – moved to 10-digit polygon dataset HU_12_DS – moved to 12-digit polygon dataset HU_12_NAME – moved to 12-digit polygon dataset HU_12_MOD – moved to 12-digit polygon dataset HU_12_TYPE – moved to 12-digit polygon dataset META_ID - removed – Feature level metadata functionality is added to track updates in the new model STATES New Model: Fields included in all levels of hydrologic unit polygon datasets. Gaz_ID – Old model was the GNIS field Area_Acres - Renamed Area_SqKm – New field States LoadDate- New field HUC_"#digit" - For Example: HUC12 HU_"#digit"_Name - For Example: HU_12_Name Fields included with the 10-, 12-, 14- and 16- digit polygon datasets. HU_"#digit"_Type - For Example HU_12_Type HU_"#digit"_Mod - For Example HU_12_Mod Fields included with the 12-, 14- and 16- digit polygon datasets. NContrb_Acres NContrb_SqKm – New field Tables New Model: ExternalIDCrosswalk FeaturetoHUMod FeatureToMetadata Meta_ProcessDetail Meta_SourceDetail ProcessingParameters UpdateStatus WBD_Attributes WBD_Nav October 2012 Changes to the WBD data model include the elimination of the underscore "_" in field and table names, switching to camelCase. Other changes to the WBD data model include the elimination of the WBDPoint table, the WBDPointEvent table, and the WBDAtributes table. Fields have been added to the WBDHU12 polygon feature dataset that allow metadata record linking and also include the downstream attribute. NWIS drainage area line and polygon feature classes have been added also. New Model: WBD line dataset TNMID – Use to be PermanentID HULevel HUClass – New field populated with the number of digits of the hydrologic unit HUMod LineSource LoadDate – New field for feature level metadata (Source_FeatureID, Meta_SourceID, Source_DataDesc, Source_Originator fields removed from WBDLine dataset) WBD polygon dataset Fields included in all levels of hydrologic unit polygon datasets. TNMID – New field for feature level metadata MetaSourceID – New field for feature level metadata SourceDataDesc – New field for feature level metadata SourceOriginator – New field for feature level metadata SourceFeatureID – New field for feature level metadata LoadDate – New field for feature level metadata GNIS_ID = replaces Gaz_ID AreaAcres AreaSqKm States LoadDate HUC"digit" - for example: HUC12 Name Fields included with the 10-, 12-, 14- and 16- digit polygon datasets. HUType HUMod Fields included with the 12-, 14- and 16- digit polygon datasets. NContrbAcres NContrbSqKm Field included with the 12-digit polygon dataset. ToHUC – This attribute was included in the original WBD data model as HU_12_DS and represents the code of the next unit downstream. The values for this field were populated for the last version of the dataset in the old model by linking the 2 tables by the 12-digit code and calculating the value over. NWISDrainageArea polygon dataset added as a place holder for when these datasets are generated. Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate ReferenceTNMID SiteID AgencyCode SiteNumber StationName TotalDrainageArea ContributingDrainageArea NWISBoundary line dataset added as a place holder for when these datasets are generated. Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate ReferenceTNMID NonContributingDrainageArea polygon dataset added as a place holder for when these datasets are generated. Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate 2013 Changes to the WBD data model include updates to the field for the NonContributingDrainageArea polygon dataset, NWISBoundary line dataset and the NWISDrainageArea polygon dataset. This includes the addition of new fields and the re-naming of some of the existing fields. NWISDrainageArea polygon dataset: Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate ReferenceTNMIDNHDPointEvent – Renamed from ReferenceTNMID AgencyCode SiteNumber StationName ContributingDrainageAreaAcres – Originally called ContributingDrainageArea TotalDrainageAreaAcres – Originally called TotalDrainageArea ContributingDrainageAreaSqKm – New field TotalDrainageAreaSqKm – New field SiteID - Removed NWISBoundary line dataset: Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate ReferenceTNMIDPointEvent – Originally called ReferenceTNMID SiteNumber – New field NonContributingDrainageArea polygon dataset Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate NonContributingSqKm – New field NonContributingAcres – New field ReferenceTNMID12digitHU – New field Tables ExternalCrosswalk - Originally called ExternalIDCrosswalk FeatureToHUMod - removed FeatureToMetadata HUMod - NewField MetaProcessDetail - Previous version called Meta_ProcessDetail MetaSourceDetail - Previous version called Meta_SourceDetail ProcessingParameters UpdateStatus WBD_Attributes - removed WBDNavigation - Originally WBD_Nav 2014 2015 Changes to the WBD data model include updates or additions to the fields for the NonContributingDrainageArea polygon dataset, NWISBoundary line dataset and the NWISDrainageArea polygon dataset. The majority of these are due to the length of the original name for the field. A new line dataset was created for Non Contributing Area called NonContributingDrainageLine NWISBoundary was re-named NWISDrainageLine NWISDrainageArea polygon dataset: Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate AreaSqKm – New Field AgencyCode SiteNumber StationName TotalAreaSqMi – New Field NWISTotalAreaSqMi – New Field ContributingAreaSqMi – New Field NWISContributingAreaSqMi – New Field ReferenceTNMIDNHDPointEvent Remarks – New Field ContributingDrainageAreaAcres – Removed TotalDrainageAreaAcres – Removed ContributingDrainageAreaSqKm – Removed TotalDrainageAreaSqKm – Removed NWISDrainageLine line dataset Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate LengthKm – New Field LineSource – New Field Agency Code – New Field SiteNumber ReferenceTNMIDPointEvent – Removed NonContributingDrainageArea polygon dataset Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate AreaSqKm – New Field NonContributingAreaSqKm – Re-named from NonContributingSqKm Remarks – New Field NonContributingAcres - Removed ReferenceTNMID12digitHU - Removed NonContributingDrainageLine line dataset – New dataset Attribute Fields: TNMID MetaSourceID SourceDataDesc SourceOriginator SourceFeatureID LoadDate LengthKm LineSource 2016 WBDLine dataset TNMID HULevel - removed HUDigit - Originally called HUClass HUMod LineSource MetaSourceID LoadDate WBD polygon datasets Fields included with the 12-, 14- and 16- digit polygon datasets. NonContributingAreaAcres - previous version was NonContributingAcres NonContributingAreaSqKm - previous version was NonContributingSqKm2016-01-01The original hydrologic unit boundaries were hand-digitized on a digitizing table from the USGS 7.5 minute quadrangles. This process occurred over a span of approximately 20 years from 1980 to 2000.2000-01-01From 2005 to 2011, original dataset attribution was reviewed and revised to reflect the updates and changes made to the dataset. These revisions to the attribution were also made to ensure that the dataset met the Federal Standards for Delineation of Hydrologic Unit Boundaries. The NHD was used during this process to help with the naming and downstream coding of each unit. In some instances there were name discrepancies between the NHD and what was printed on the DRGs. In these instances the DRGs were used instead of the NHD.2011-01-01Additional information about the processes used to create and maintain the WBD after June of 2012 can be found in the table called METAPROCESSDETAIL. The process descriptions are linked using the TNMID to the FEATURETOMETADATA table. In addition the METASOURCEDETAIL table can also be linked to determine the sources used to create or update the WBD data.2012-01-01The new WBD (2005-2011) was reviewed on-screen by USGS, EPA, or NRCS personnel using DRGs and DOQss as base maps. Hydrologic Units that were less than 10,000 acres (for the 12-digit units) and 40,000 acres (for the 10-digit units) were reviewed and if possible were dissolved out. Along the coastal areas, standard watersheds that fell within the federal guideline's size criteria (12-digit: 10,000-40,000 acres, 10-digit: 40,000-250,000 acres) were delineated. If possible the remaining frontals were left as their own units. Frontals that did not meet the size criteria were grouped together with other frontals within the overall 8-digit or 10-digit unit. Hydrologic units that were greater than 40,000 acres (12-digit units) and 250,000 acres (10-digit units) were reviewed. If possible these units where then subdivided into smaller units that met the size criteria. In some cases, additional breaks within the unit would not have made sense or have been very useful. For example: When the majority of the unit was made up by a major waterbody feature such as a lake or reservoir and the surrounding tributaries were too small to delineate as their own unit. In these instances the unit was left big.2011-01-01From 2005 to 2011, hydrologic units from surrounding states were used to edgematch watershed boundaries as they were developed.2011-01-01Hydrography data used for reference in watershed boundary delineation process24000National Hydrography DatasetNHD2016-01-01U.S. Geological SurveyU.S. Geological SurveyDenver, COVector Digital Datahttp://nhd.usgs.gov/data.htmlPublication dateAerial imagery used for reference in watershed boundary delineation24000Digital Orthophoto QuadsUSGSDOQU.S. Geological SurveyU.S. Geological SurveyUnknownRaster Digital Datahttp://datagateway.nrcs.usda.gov20100325Reference dataset for the 2-, 4-, 6- and 8-digit hydrologic units250000250K Hydrologic Unit BoundariesHUC250K1994-01-01U.S. Geological SurveyReston, VirginiaU.S. Geological SurveyVector Digital Datahttp://water.usgs.gov/lookup/getspatial?huc250kPublication date1994-01-01Base information for hydrologic unit delineation.240007.5 Minute Topographic Quadrangle SheetsUSGSTopoU.S. Geological SurveyReston, VirginiaU.S. Geological SurveyPaper MapPublication date1884-01-012006-01-01Base information for hydrologic unit delineation.24000U.S. Geological Survey Digital Raster Graphic (DRG)USGSDRG1999-01-01U.S. Geological SurveyU.S. Geological SurveyUnknownRaster Digital Datahttp://datagateway.nrcs.usda.govPublication date1999-01-01original metadataPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxtZXRhZGF0YT4NCiAgPGlk +aW5mbz4NCiAgICA8Y2l0YXRpb24+DQogICAgICA8Y2l0ZWluZm8+DQogICAgICAgIDxvcmlnaW4+ +VS5TLiBHZW9sb2dpY2FsIFN1cnZleSAoVVNHUyk8L29yaWdpbj4NCiAgICAgICAgPG9yaWdpbj5V +LlMuIERlcGFydG1lbnQgb2YgQWdyaWN1bHR1cmUgLSBOYXR1cmFsIFJlc291cmNlIENvbnNlcnZh +dGlvbiBTZXJ2aWNlIChOUkNTKTwvb3JpZ2luPg0KICAgICAgICA8b3JpZ2luPlUuUy4gRW52aXJv +bm1lbnRhbCBQcm90ZWN0aW9uIEFnZW5jeSAoRVBBKTwvb3JpZ2luPg0KICAgICAgICA8b3JpZ2lu +Pk90aGVyIEZlZGVyYWwsIFN0YXRlLCBhbmQgbG9jYWwgcGFydG5lcnMgKHNlZSBkYXRhc2V0IHNw +ZWNpZmljIG1ldGFkYXRhIGZvciBkZXRhaWxzIGh0dHA6Ly9uaGQudXNncy5nb3Yvd2JkX21ldGFk +YXRhLmh0bWwpPC9vcmlnaW4+DQogICAgICAgIDxwdWJkYXRlPjIwMTUxMjE2PC9wdWJkYXRlPg0K +ICAgICAgICA8dGl0bGU+TmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8 +L3RpdGxlPg0KICAgICAgICA8Z2VvZm9ybT5WZWN0b3IgRGlnaXRhbCBEYXRhIFNldDwvZ2VvZm9y +bT4NCiAgICAgICAgPG9ubGluaz5mdHA6Ly9yb2NreWZ0cC5jci51c2dzLmdvdi92ZGVsaXZlcnkv +RGF0YXNldHMvU3RhZ2VkL0h5ZHJvZ3JhcGh5L1dCRC9OYXRpb25hbC9HREIvTmF0aW9uYWxfV0JE +LnppcDwvb25saW5rPg0KICAgICAgPC9jaXRlaW5mbz4NCiAgICA8L2NpdGF0aW9uPg0KICAgIDxk +ZXNjcmlwdD4NCiAgICAgIDxhYnN0cmFjdD5UaGUgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQg +KFdCRCkgaXMgYSBjb21wcmVoZW5zaXZlIGFnZ3JlZ2F0ZWQgY29sbGVjdGlvbiBvZiBoeWRyb2xv +Z2ljIHVuaXQgZGF0YSBjb25zaXN0ZW50IHdpdGggdGhlIG5hdGlvbmFsIGNyaXRlcmlhIGZvciBk +ZWxpbmVhdGlvbiBhbmQgcmVzb2x1dGlvbi4gSXQgZGVmaW5lcyB0aGUgYXJlYWwgZXh0ZW50IG9m +IHN1cmZhY2Ugd2F0ZXIgZHJhaW5hZ2UgdG8gYSBwb2ludCBleGNlcHQgaW4gY29hc3RhbCBvciBs +YWtlIGZyb250IGFyZWFzIHdoZXJlIHRoZXJlIGNvdWxkIGJlIG11bHRpcGxlIG91dGxldHMgYXMg +c3RhdGVkIGJ5IHRoZSAiRmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBO +YXRpb25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKSIg4oCcU3RhbmRhcmTigJ0g +KGh0dHA6Ly9wdWJzLnVzZ3MuZ292L3RtLzExL2EzLykuIFdhdGVyc2hlZCBib3VuZGFyaWVzIGFy +ZSBkZXRlcm1pbmVkIHNvbGVseSB1cG9uIHNjaWVuY2UtYmFzZWQgaHlkcm9sb2dpYyBwcmluY2lw +bGVzLCBub3QgZmF2b3JpbmcgYW55IGFkbWluaXN0cmF0aXZlIGJvdW5kYXJpZXMgb3Igc3BlY2lh +bCBwcm9qZWN0cywgbm9yIHBhcnRpY3VsYXIgcHJvZ3JhbSBvciBhZ2VuY3kuIFRoaXMgZGF0YXNl +dCByZXByZXNlbnRzIHRoZSBoeWRyb2xvZ2ljIHVuaXQgYm91bmRhcmllcyB0byB0aGUgMTItZGln +aXQgKDZ0aCBsZXZlbCkgZm9yIHRoZSBlbnRpcmUgVW5pdGVkIFN0YXRlcy4gIFNvbWUgYXJlYXMg +bWF5IGFsc28gaW5jbHVkZSBhZGRpdGlvbmFsIHN1YmRpdmlzaW9ucyByZXByZXNlbnRpbmcgdGhl +IDE0LSBhbmQgMTYtZGlnaXQgaHlkcm9sb2dpYyB1bml0IChIVSkuIEF0IGEgbWluaW11bSwgdGhl +IEhVcyBhcmUgZGVsaW5lYXRlZCBhdCAxOjI0LDAwMC1zY2FsZSBpbiB0aGUgY29udGVybWlub3Vz +IFVuaXRlZCBTdGF0ZXMsIDE6MjUsMDAwLXNjYWxlIGluIEhhd2FpaSwgUGFjaWZpYyBiYXNpbiBh +bmQgdGhlIENhcmliYmVhbiwgYW5kIDE6NjMsMzYwLXNjYWxlIGluIEFsYXNrYSwgbWVldGluZyB0 +aGUgTmF0aW9uYWwgTWFwIEFjY3VyYWN5IFN0YW5kYXJkcyAoTk1BUykuIEhpZ2hlciByZXNvbHV0 +aW9uIGJvdW5kYXJpZXMgYXJlIGJlaW5nIGRldmVsb3BlZCB3aGVyZSBwYXJ0bmVycyBhbmQgZGF0 +YSBleGlzdCBhbmQgd2lsbCBiZSBpbmNvcnBvcmF0ZWQgYmFjayBpbnRvIHRoZSBXQkQuIFdCRCBk +YXRhIGFyZSBkZWxpdmVyZWQgYXMgYSBkYXRhc2V0IG9mIHBvbHlnb25zIGFuZCBjb3JyZXNwb25k +aW5nIGxpbmVzIHRoYXQgZGVmaW5lIHRoZSBib3VuZGFyeSBvZiB0aGUgcG9seWdvbi4gICBXQkQg +cG9seWdvbiBhdHRyaWJ1dGVzIGluY2x1ZGUgaHlkcm9sb2dpYyB1bml0IGNvZGVzIChIVUMpLCBz +aXplIChpbiB0aGUgZm9ybSBvZiBhY3JlcyBhbmQgc3F1YXJlIGtpbG9tZXRlcnMpLCBuYW1lLCBk +b3duc3RyZWFtIGh5ZHJvbG9naWMgdW5pdCBjb2RlLCB0eXBlIG9mIHdhdGVyc2hlZCwgbm9uLWNv +bnRyaWJ1dGluZyBhcmVhcywgYW5kIGZsb3cgbW9kaWZpY2F0aW9ucy4gVGhlIEhVQyBkZXNjcmli +ZXMgd2hlcmUgdGhlIHVuaXQgaXMgaW4gdGhlIGNvdW50cnkgYW5kIHRoZSBsZXZlbCBvZiB0aGUg +dW5pdC4gV0JEIGxpbmUgYXR0cmlidXRlcyBjb250YWluIHRoZSBoaWdoZXN0IGxldmVsIG9mIGh5 +ZHJvbG9naWMgdW5pdCBmb3IgZWFjaCBib3VuZGFyeSwgbGluZSBzb3VyY2UgaW5mb3JtYXRpb24g +YW5kIGZsb3cgbW9kaWZpY2F0aW9ucy48L2Fic3RyYWN0Pg0KICAgICAgPHB1cnBvc2U+VGhlIGlu +dGVudCBvZiBkZWZpbmluZyBIeWRyb2xvZ2ljIFVuaXRzIChIVSkgd2l0aGluIHRoZSBXYXRlcnNo +ZWQgQm91bmRhcnkgRGF0YXNldCBpcyB0byBlc3RhYmxpc2ggYSBiYXNlLWxpbmUgZHJhaW5hZ2Ug +Ym91bmRhcnkgZnJhbWV3b3JrLCBhY2NvdW50aW5nIGZvciBhbGwgbGFuZCBhbmQgc3VyZmFjZSBh +cmVhcy4gSHlkcm9sb2dpYyB1bml0cyBhcmUgaW50ZW5kZWQgdG8gYmUgdXNlZCBhcyBhIHRvb2wg +Zm9yIHdhdGVyLXJlc291cmNlIG1hbmFnZW1lbnQgYW5kIHBsYW5uaW5nIGFjdGl2aXRpZXMgcGFy +dGljdWxhcmx5IGZvciBzaXRlLXNwZWNpZmljIGFuZCBsb2NhbGl6ZWQgc3R1ZGllcyByZXF1aXJp +bmcgYSBsZXZlbCBvZiBkZXRhaWwgcHJvdmlkZWQgYnkgbGFyZ2Utc2NhbGUgbWFwIGluZm9ybWF0 +aW9uLiBUaGUgV0JEIGNvbXBsZW1lbnRzIHRoZSBOYXRpb25hbCBIeWRyb2dyYXBoeSBEYXRhc2V0 +IChOSEQpIGFuZCBzdXBwb3J0cyBudW1lcm91cyBwcm9ncmFtbWF0aWMgbWlzc2lvbnMgYW5kIGFj +dGl2aXRpZXMgaW5jbHVkaW5nOiB3YXRlcnNoZWQgbWFuYWdlbWVudCwgcmVoYWJpbGl0YXRpb24g +YW5kIGVuaGFuY2VtZW50LCBhcXVhdGljIHNwZWNpZXMgY29uc2VydmF0aW9uIHN0cmF0ZWdpZXMs +IGZsb29kIHBsYWluIG1hbmFnZW1lbnQgYW5kIGZsb29kIHByZXZlbnRpb24sIHdhdGVyLXF1YWxp +dHkgaW5pdGlhdGl2ZXMgYW5kIHByb2dyYW1zLCBkYW0gc2FmZXR5IHByb2dyYW1zLCBmaXJlIGFz +c2Vzc21lbnQgYW5kIG1hbmFnZW1lbnQsIHJlc291cmNlIGludmVudG9yeSBhbmQgYXNzZXNzbWVu +dCwgd2F0ZXIgZGF0YSBhbmFseXNpcyBhbmQgd2F0ZXIgY2Vuc3VzLjwvcHVycG9zZT4NCiAgICAg +IDxzdXBwbGluZj5UaGUgV0JEIHdhcyBwcm9kdWNlZCBhbmQgaXMgbWFpbnRhaW5lZCB0aHJvdWdo +IGEgY29vcGVyYXRpdmUgcHJvY2VzcyBpbnZvbHZpbmcgc3RhdGUsIGZlZGVyYWwgYW5kIGxvY2Fs +IHBhcnRuZXJzLiBQcm9jZXNzIGluZm9ybWF0aW9uIGZvciBhIHNwZWNpZmljIHN0YXRlIG9yIHJl +Z2lvbiBjYW4gYmUgZm91bmQgd2l0aGluIHRoZSBzdGF0ZSBzcGVjaWZpYyBtZXRhZGF0YSBsb2Nh +dGVkIGF0IGh0dHA6Ly9uaGQudXNncy5nb3Yvd2JkX21ldGRhdGEuaHRtbC4gVGhpcyBtZXRhZGF0 +YSBmaWxlIGhhcyBpbmZvcm1hdGlvbiBmb3IgV0JEIGZlYXR1cmVzIGNvbnRhaW5lZCBpbiB0aGUg +V0JEIGZlYXR1cmUgZGF0YXNldC4gVGhpcyBpbmNsdWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUg +Mi0sIDQtLCA2LSwgOC0sIDEwLSwgMTItLCAxNC0sIDE2LWRpZ2l0IHBvbHlnb25zIGFuZCBXQkRf +TGluZSBkYXRhc2V0LiBVc2VycyBhY2Nlc3NpbmcgdGhlIFdCRCB2aWEgc2hhcGVmaWxlIHdpbGwg +bmVlZCB0byBzZWFyY2ggZm9yIHRoZSBhdHRyaWJ1dGlvbiByZWxhdGVkIHRvIHRoYXQgc3BlY2lm +aWMgZGF0YXNldC48L3N1cHBsaW5mPg0KICAgIDwvZGVzY3JpcHQ+DQogICAgPHRpbWVwZXJkPg0K +ICAgICAgPHRpbWVpbmZvPg0KICAgICAgICA8cm5nZGF0ZXM+DQogICAgICAgICAgPGJlZ2RhdGU+ +MTk4MDwvYmVnZGF0ZT4NCiAgICAgICAgICA8ZW5kZGF0ZT4yMDE2PC9lbmRkYXRlPg0KICAgICAg +ICA8L3JuZ2RhdGVzPg0KICAgICAgPC90aW1laW5mbz4NCiAgICAgIDxjdXJyZW50PnB1YmxpY2F0 +aW9uIGRhdGU8L2N1cnJlbnQ+DQogICAgPC90aW1lcGVyZD4NCiAgICA8c3RhdHVzPg0KICAgICAg +PHByb2dyZXNzPkNvbXBsZXRlPC9wcm9ncmVzcz4NCiAgICAgIDx1cGRhdGU+QXMgbmVlZGVkPC91 +cGRhdGU+DQogICAgPC9zdGF0dXM+DQogICAgPHNwZG9tPg0KICAgICAgPGJvdW5kaW5nPg0KICAg +ICAgICA8d2VzdGJjPi0xNzkuMjI5NjU1NDg3PC93ZXN0YmM+DQogICAgICAgIDxlYXN0YmM+MTc5 +Ljg1NjY3NDczNTwvZWFzdGJjPg0KICAgICAgICA8bm9ydGhiYz43MS40Mzk1NzI1OTAyPC9ub3J0 +aGJjPg0KICAgICAgICA8c291dGhiYz4tMTQuNDI0Njk1MDk0Mzwvc291dGhiYz4NCiAgICAgIDwv +Ym91bmRpbmc+DQogICAgPC9zcGRvbT4NCiAgICA8a2V5d29yZHM+DQogICAgICA8dGhlbWU+DQog +ICAgICAgIDx0aGVtZWt0PklTTyAxOTExNSBUb3BpYyBDYXRlZ29yeTwvdGhlbWVrdD4NCiAgICAg +ICAgPHRoZW1la2V5PmlubGFuZFdhdGVyczwvdGhlbWVrZXk+DQogICAgICAgIDx0aGVtZWtleT5X +YXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldDwvdGhlbWVrZXk+DQogICAgICAgIDx0aGVtZWtleT5X +QkQ8L3RoZW1la2V5Pg0KICAgICAgICA8dGhlbWVrZXk+SHlkcm9sb2dpYyBVbml0czwvdGhlbWVr +ZXk+DQogICAgICAgIDx0aGVtZWtleT5IeWRyb2xvZ2ljIFVuaXQgQ29kZTwvdGhlbWVrZXk+DQog +ICAgICAgIDx0aGVtZWtleT5IVUM8L3RoZW1la2V5Pg0KICAgICAgICA8dGhlbWVrZXk+UmVnaW9u +PC90aGVtZWtleT4NCiAgICAgICAgPHRoZW1la2V5PlN1Yi1yZWdpb248L3RoZW1la2V5Pg0KICAg +ICAgICA8dGhlbWVrZXk+QmFzaW48L3RoZW1la2V5Pg0KICAgICAgICA8dGhlbWVrZXk+U3ViLWJh +c2luPC90aGVtZWtleT4NCiAgICAgICAgPHRoZW1la2V5PldhdGVyc2hlZDwvdGhlbWVrZXk+DQog +ICAgICAgIDx0aGVtZWtleT5TdWJ3YXRlcnNoZWQ8L3RoZW1la2V5Pg0KICAgICAgICA8dGhlbWVr +ZXk+Mi1kaWdpdDwvdGhlbWVrZXk+DQogICAgICAgIDx0aGVtZWtleT40LWRpZ2l0PC90aGVtZWtl +eT4NCiAgICAgICAgPHRoZW1la2V5PjYtZGlnaXQ8L3RoZW1la2V5Pg0KICAgICAgICA8dGhlbWVr +ZXk+OC1kaWdpdDwvdGhlbWVrZXk+DQogICAgICAgIDx0aGVtZWtleT4xMC1kaWdpdDwvdGhlbWVr +ZXk+DQogICAgICAgIDx0aGVtZWtleT4xMi1kaWdpdDwvdGhlbWVrZXk+DQogICAgICAgIDx0aGVt +ZWtleT4xNC1kaWdpdDwvdGhlbWVrZXk+DQogICAgICAgIDx0aGVtZWtleT4xNi1kaWdpdDwvdGhl +bWVrZXk+DQogICAgICA8L3RoZW1lPg0KICAgICAgPHBsYWNlPg0KICAgICAgICA8cGxhY2VrdD5V +LlMuIERlcGFydG1lbnQgb2YgQ29tbWVyY2UsIDE5NzcsIENvdW50cmllcywgZGVwZW5kZW5jaWVz +LCBhcmVhcyBvZiBzcGVjaWFsIHNvdmVyZWlnbnR5LCBhbmQgdGhlaXIgcHJpbmNpcGFsIGFkbWlu +aXN0cmF0aXZlIGRpdmlzaW9ucyAoRmVkZXJhbCBJbmZvcm1hdGlvbiBQcm9jZXNzaW5nIFN0YW5k +YXJkcyAxMC0zKTogV2FzaGluZ3RvbiwgRC5DLiwgTmF0aW9uYWwgSW5zdGl0dXRlIG9mIFN0YW5k +YXJkcyBhbmQgVGVjaG5vbG9neS48L3BsYWNla3Q+DQogICAgICAgIDxwbGFjZWtleT5VUzwvcGxh +Y2VrZXk+DQogICAgICAgIDxwbGFjZWtleT5Vbml0ZWQgU3RhdGVzPC9wbGFjZWtleT4NCiAgICAg +IDwvcGxhY2U+DQogICAgPC9rZXl3b3Jkcz4NCiAgICA8YWNjY29uc3Q+Tm9uZTwvYWNjY29uc3Q+ +DQogICAgPHVzZWNvbnN0PlRoZSBkaXN0cmlidXRvciBzaGFsbCBub3QgYmUgaGVsZCBsaWFibGUg +Zm9yIGltcHJvcGVyIG9yIGluY29ycmVjdCB1c2Ugb2YgdGhpcyBkYXRhLCBiYXNlZCBvbiB0aGUg +ZGVzY3JpcHRpb24gb2YgYXBwcm9wcmlhdGUvaW5hcHByb3ByaWF0ZSB1c2VzIGRlc2NyaWJlZCBp +biB0aGlzIG1ldGFkYXRhIGRvY3VtZW50LiBJdCBpcyBzdHJvbmdseSByZWNvbW1lbmRlZCB0aGF0 +IHRoaXMgZGF0YSBpcyBkaXJlY3RseSBhY3F1aXJlZCBmcm9tIHRoZSBkaXN0cmlidXRvciBhbmQg +bm90IGluZGlyZWN0bHkgdGhyb3VnaCBvdGhlciBzb3VyY2VzIHdoaWNoIG1heSBoYXZlIGNoYW5n +ZWQgdGhlIGRhdGEgaW4gc29tZSB3YXkuIFRoZXNlIGRhdGEgc2hvdWxkIG5vdCBiZSB1c2VkIGF0 +IHNjYWxlcyBncmVhdGVyIHRoYW4gMToyNCwwMDAgZm9yIHRoZSBwdXJwb3NlIG9mIGlkZW50aWZ5 +aW5nIGh5ZHJvZ3JhcGhpYyB3YXRlcnNoZWQgYm91bmRhcnkgZmVhdHVyZSBsb2NhdGlvbnMgaW4g +dGhlIFVuaXRlZCBTdGF0ZXMuIFRoZSBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCBpcyBwdWJs +aWMgaW5mb3JtYXRpb24gYW5kIG1heSBiZSBpbnRlcnByZXRlZCBieSBhbGwgb3JnYW5pemF0aW9u +cywgYWdlbmNpZXMsIHVuaXRzIG9mIGdvdmVybm1lbnQsIG9yIG90aGVycyBiYXNlZCBvbiBuZWVk +czsgaG93ZXZlciwgdGhleSBhcmUgcmVzcG9uc2libGUgZm9yIHRoZSBhcHByb3ByaWF0ZSBhcHBs +aWNhdGlvbiBvZiB0aGUgZGF0YS4gUGhvdG9ncmFwaGljIG9yIGRpZ2l0YWwgZW5sYXJnZW1lbnQg +b2YgdGhlc2UgbWFwcyB0byBzY2FsZXMgZ3JlYXRlciB0aGFuIHRoYXQgYXQgd2hpY2ggdGhleSB3 +ZXJlIG9yaWdpbmFsbHkgZGVsaW5lYXRlZCBjYW4gcmVzdWx0IGluIG1pc3JlcHJlc2VudGF0aW9u +IG9mIHRoZSBkYXRhLiAgSWYgZW5sYXJnZWQsIHRoZSBtYXBzIHdpbGwgbm90IGluY2x1ZGUgdGhl +IGZpbmUgZGV0YWlsIHRoYXQgd291bGQgYmUgYXBwcm9wcmlhdGUgZm9yIG1hcHBpbmcgYXQgdGhl +IHNtYWxsIHNjYWxlLiAgRGlnaXRhbCBkYXRhIGZpbGVzIGFyZSBwZXJpb2RpY2FsbHkgdXBkYXRl +ZCBhbmQgdXNlcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBvYnRhaW5pbmcgdGhlIGxhdGVzdCB2ZXJz +aW9uIG9mIHRoZSBkYXRhIGZyb20gdGhlIHNvdXJjZSBkaXN0cmlidXRvci4gQWNrbm93bGVkZ21l +bnQgb2YgdGhlIG9yaWdpbmF0aW9uIGFnZW5jaWVzIHdvdWxkIGJlIGFwcHJlY2lhdGVkIGluIHBy +b2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGVzZSBkYXRhLjwvdXNlY29uc3Q+DQogICAgPHB0Y29udGFj +Pg0KICAgICAgPGNudGluZm8+DQogICAgICAgIDxjbnRvcmdwPg0KICAgICAgICAgIDxjbnRvcmc+ +VS5TLiBHZW9sb2dpY2FsIFN1cnZleTwvY250b3JnPg0KICAgICAgICA8L2NudG9yZ3A+DQogICAg +ICAgIDxjbnRhZGRyPg0KICAgICAgICAgIDxhZGRydHlwZT5NYWlsaW5nPC9hZGRydHlwZT4NCiAg +ICAgICAgICA8YWRkcmVzcz5VLlMuIEdlb2xvZ2ljYWwgU3VydmV5LCBOYXRpb25hbCBHZW9zcGF0 +aWFsIFRlY2huaWNhbCBPcGVyYXRpb25zIENlbnRlciwgUC5PLiBCb3ggMjUwNDY8L2FkZHJlc3M+ +DQogICAgICAgICAgPGNpdHk+RGVudmVyPC9jaXR5Pg0KICAgICAgICAgIDxzdGF0ZT5DTzwvc3Rh +dGU+DQogICAgICAgICAgPHBvc3RhbD44MDIyNTwvcG9zdGFsPg0KICAgICAgICA8L2NudGFkZHI+ +DQogICAgICAgIDxjbnR2b2ljZT4xLTg3Ny0yNzUtODc0NzwvY250dm9pY2U+DQogICAgICAgIDxj +bnRlbWFpbD5icGdlb0B1c2dzLmdvdjwvY250ZW1haWw+DQogICAgICA8L2NudGluZm8+DQogICAg +PC9wdGNvbnRhYz4NCiAgICA8YnJvd3NlPg0KICAgICAgPGJyb3dzZW4+ZnRwOi8vcm9ja3lmdHAu +Y3IudXNncy5nb3YvdmRlbGl2ZXJ5L0RhdGFzZXRzL1N0YWdlZC9IeWRyb2dyYXBoeS9XQkQvTmF0 +aW9uYWwvR0RCL05hdGlvbmFsX1dCRC5qcGc8L2Jyb3dzZW4+DQogICAgICA8YnJvd3NlZD5UaHVt +Ym5haWwgSlBHIGltYWdlPC9icm93c2VkPg0KICAgICAgPGJyb3dzZXQ+SlBFRzwvYnJvd3NldD4N +CiAgICA8L2Jyb3dzZT4NCiAgICA8ZGF0YWNyZWQ+RnVuZGluZyBmb3IgdGhlIFdhdGVyc2hlZCBC +b3VuZGFyeSBEYXRhc2V0IChXQkQpIHdhcyBwcm92aWRlZCBieSB0aGUgVVNEQS1OUkNTLCBVU0dT +IGFuZCBFUEEgYWxvbmcgd2l0aCBvdGhlciBmZWRlcmFsLCBzdGF0ZSBhbmQgbG9jYWwgYWdlbmNp +ZXNpZXMuIFJlcHJlc2VudGF0aXZlcyBmcm9tIG1hbnkgYWdlbmNpZXMgY29udHJpYnV0ZWQgYSBz +dWJzdGFudGlhbCBhbW91bnQgb2YgdGltZSBhbmQgc2FsYXJ5IHRvd2FyZHMgcXVhbGl0eSByZXZp +ZXcgYW5kIHVwZGF0aW5nIG9mIHRoZSBkYXRhc2V0IGluIG9yZGVyIHRvIG1lZXQgdGhlIFdCRCBT +dGFuZGFyZHMuIEFja25vd2xlZGdtZW50IG9mIHRoZSBvcmlnaW5hdGluZyBhZ2VuY2llcyB3b3Vs +ZCBiZSBhcHByZWNpYXRlZCBpbiBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhlc2UgZGF0YS4gU2Vl +IGRhdGFzZXQgc3BlY2lmaWMgbWV0YWRhdGEgZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb248L2RhdGFj +cmVkPg0KICAgIDxuYXRpdmU+RW52aXJvbm1lbnQgYXMgb2YgTWV0YWRhdGEgQ3JlYXRpb246IE1p +Y3Jvc29mdCBXaW5kb3dzIDcgVmVyc2lvbiA2LjEgKEJ1aWxkIDc2MDEpIFNlcnZpY2UgUGFjayAx +OyBFc3JpIEFyY0dJUyAxMC4yLjIgKEJ1aWxkIDM1NTIpIFNlcnZpY2UgUGFjayBOL0EgKEJ1aWxk +IE4vQSk8L25hdGl2ZT4NCiAgPC9pZGluZm8+DQogIDxkYXRhcXVhbD4NCiAgICA8YXR0cmFjYz4N +CiAgICAgIDxhdHRyYWNjcj5BbGwgYXR0ZW1wdHMgd2VyZSBtYWRlIHRvIHZlcmlmeSAxMDAlIG9m +IHRoZSBpbml0aWFsbHkgcmVxdWlyZWQgYXR0cmlidXRlcyB1c2luZyAyNEsgZGlnaXRhbCByYXN0 +ZXIgZ3JhcGhpY3MgKERSR3MpIGFzIHRoZSBiYXNlLiBBZGRpdGlvbmFsIGRhdGFzZXRzLCBsaWtl +IHRoZSBHZW9ncmFwaGljIE5hbWVzIEluZm9ybWF0aW9uIFN5c3RlbSAoR05JUykgYW5kIE5IRCwg +bWF5IGFsc28gaGF2ZSBiZWVuIHVzZWQgdG8gdmVyaWZ5IGF0dHJpYnV0aW9uLiBUaGUgYWNjdXJh +Y3kgb2YgdGhpcyBkYXRhIGlzIGRlcGVuZGVudCBvbiB0aGUgbGV2ZWwgb2YgZGV0YWlsIG9mIHRo +ZSBzb3VyY2UgbWF0ZXJpYWwgYW5kIHRoZSBpbnRlcnByZXRhdGlvbiBwcm9jZWR1cmVzIGZvciBj +YXB0dXJpbmcgdGhhdCBzb3VyY2UuIE90aGVyIHNvdXJjZXMgYW5kIG1ldGhvZHMgbWF5IGhhdmUg +YmVlbiB1c2VkIHRvIGNyZWF0ZSBvciB1cGRhdGUgV0JEIGRhdGEuICBJbiBzb21lIGNhc2VzLCBh +ZGRpdGlvbmFsIGluZm9ybWF0aW9uIG1heSBiZSBmb3VuZCBpbiB0aGUgV0JEIE1ldGFkYXRhIHRh +YmxlLjwvYXR0cmFjY3I+DQogICAgPC9hdHRyYWNjPg0KICAgIDxsb2dpYz5MaW5lcywgcG9seWdv +bnMgYW5kIG5vZGVzIGNvbmZvcm0gdG8gdG9wb2xvZ2ljYWwgcnVsZXMuICBMaW5lcyBpbnRlcnNl +Y3Qgb25seSBhdCBub2RlcywgYW5kIGFsbCBub2RlcyBhbmNob3IgdGhlIGVuZHMgb2YgbGluZXMu +ICBMaW5lcyBkbyBub3Qgb3ZlcnNob290IG9yIHVuZGVyc2hvb3Qgb3RoZXIgbGluZXMgd2hlcmUg +dGhleSBhcmUgc3VwcG9zZWQgdG8gbWVldC4gIFRoZXJlIGFyZSBubyBkdXBsaWNhdGUgbGluZXMu +ICBMaW5lcyBib3VuZCBwb2x5Z29ucy4gIEdhcHMgYW5kIG92ZXJsYXBzIGFtb25nIHBvbHlnb25z +IGRvIG5vdCBleGlzdC4gIEFsbCBwb2x5Z29ucyBjbG9zZS48L2xvZ2ljPg0KICAgIDxjb21wbGV0 +ZT5UaGUgV0JEIGNvbnRhaW5zIGNvbXBsZXRlZCBwb2x5Z29ucyBhdCBldmVyeSBsZXZlbCBmb3Ig +dGhlIFVuaXRlZCBTdGF0ZXMuIEFsbCByZXF1aXJlZCBmaWVsZHMgd2l0aGluIHRoZSBwb2x5Z29u +IGFuZCBsaW5lIGRhdGFzZXRzIGFyZSBwb3B1bGF0ZWQuIFNvbWUgb2YgdGhlc2UgZmllbGRzIG1h +eSBiZSBwb3B1bGF0ZWQgd2l0aCBhIHplb3IgIjAiLiBUaGUgbGluZXMgY29pbmNpZGVudCB3aXRo +IHRoZSBpbnRlcm5hdGlvbmFsIGJvdW5kYXJ5IGFyZSBhc3NpZ25lZCBhIEhVTGV2ZWwgdmFsdWUg +b2YgMC4gVGhlc2UgY2Fubm90IGJlIGF0dHJpYnV0ZWQgdW50aWwgdGhlIGFkamFjZW50IGludGVy +bmF0aW9uYWwgdW5pdHMgYXJlIGFkZGVkIGF0IHdoaWNoIHBvaW50IHRoZSBoaWdoZXN0IGxldmVs +IG9mIGh5ZHJvbG9naWMgdW5pdCBjYW4gYmUgZGV0ZXJtaW5lZC4gQSBkZXRhaWxlZCBkZXNjcmlw +dGlvbiBvZiBkZWxpbmVhdGlvbiBtZXRob2RzIGFuZCBmdWxsIGF0dHJpYnV0ZSBkZWZpbml0aW9u +cyBjYW4gYmUgZm91bmQgaW4gdGhlIFdCRCBTdGFuZGFyZHMuIFVzZXJzIGFyZSBhZHZpc2VkIHRv +IGNhcmVmdWxseSByZWFkIHRoZSBtZXRhZGF0YSByZWNvcmQgZm9yIGFkZGl0aW9uYWwgZGV0YWls +cy48L2NvbXBsZXRlPg0KICAgIDxwb3NhY2M+DQogICAgICA8aG9yaXpwYT4NCiAgICAgICAgPGhv +cml6cGFyPlRoZSBXQkQgd2FzIHByb2R1Y2VkIHVzaW5nIGEgdmFyaWV0eSBvZiBkaWdpdGFsIHNw +YXRpYWwgZGF0YSBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIERpZ2l0YWwgUmFzdGVyIEdy +YXBoaWNzIChEUkdzKSwgYWVyaWFsIGltYWdlcnkgYW5kIGRpZ2l0YWwgZWxldmF0aW9uIG1vZGVs +cyAoREVNKS4gSXQgaXMgYXNzdW1lZCB0aGVzZSBkYXRhIGFyZSBtYXBwZWQgYXQgYXBwcm94aW1h +dGVseSAxOjI0LDAwMC1zY2FsZSBhbmQgY29udGFpbiBhIG1pbmltdW0gaW5oZXJlbnQgZXJyb3Ig +b2YgKy8tIDQwIGZlZXQuIEl0IHNob3VsZCBiZSBub3RlZCB0aGF0IHRoZSBXQkQgaXMgdW5kZXJn +b2luZyBjb250aW51b3VzIHVwZGF0ZSBhcyBzb3VyY2UgZGF0YSBpbXByb3ZlcyBhbmQgYXMgaHlk +cm9sb2dpYyBpbnRlcnByZXRhdGlvbnMgYXJlIHJlZmluZWQuIFdoaWxlIGdlbmVyYWwgcnVsZXMg +b2YgaHlkcm9sb2d5IHdlcmUgdXNlZCBpbiBkZWxpbmVhdGlvbiwgbG9jYXRpb25zIG9mIGJvdW5k +YXJpZXMgbWF5IGJlIHN1YmplY3RpdmUgaW4gc29tZSBjYXNlcy4gQWRkaXRpb25hbCBpbmZvcm1h +dGlvbiBtYXkgYmUgZm91bmQgaW4gdGhlIFdCRCBNZXRhZGF0YSB0YWJsZS48L2hvcml6cGFyPg0K +ICAgICAgPC9ob3JpenBhPg0KICAgICAgPHZlcnRhY2M+DQogICAgICAgIDx2ZXJ0YWNjcj5BIGZv +cm1hbCBhY2N1cmFjeSBhc3Nlc3NtZW50IG9mIHRoZSB2ZXJ0aWNhbCBwb3NpdGlvbmFsIGluZm9y +bWF0aW9uIGluIHRoZSBkYXRhIHNldCBoYXMgZWl0aGVyIG5vdCBiZWVuIGNvbmR1Y3RlZCwgb3Ig +aXMgbm90IGFwcGxpY2FibGUuPC92ZXJ0YWNjcj4NCiAgICAgIDwvdmVydGFjYz4NCiAgICA8L3Bv +c2FjYz4NCiAgICA8bGluZWFnZT4NCiAgICAgIDxzcmNpbmZvPg0KICAgICAgICA8c3JjY2l0ZT4N +CiAgICAgICAgICA8Y2l0ZWluZm8+DQogICAgICAgICAgICA8b3JpZ2luPlUuUy4gR2VvbG9naWNh +bCBTdXJ2ZXk8L29yaWdpbj4NCiAgICAgICAgICAgIDxwdWJkYXRlPlVua25vd248L3B1YmRhdGU+ +DQogICAgICAgICAgICA8dGl0bGU+Ny41IE1pbnV0ZSBUb3BvZ3JhcGhpYyBRdWFkcmFuZ2xlIFNo +ZWV0czwvdGl0bGU+DQogICAgICAgICAgICA8Z2VvZm9ybT5QYXBlciBNYXA8L2dlb2Zvcm0+DQog +ICAgICAgICAgICA8cHViaW5mbz4NCiAgICAgICAgICAgICAgPHB1YnBsYWNlPlJlc3RvbiwgVmly +Z2luaWE8L3B1YnBsYWNlPg0KICAgICAgICAgICAgICA8cHVibGlzaD5VLlMuIEdlb2xvZ2ljYWwg +U3VydmV5PC9wdWJsaXNoPg0KICAgICAgICAgICAgPC9wdWJpbmZvPg0KICAgICAgICAgIDwvY2l0 +ZWluZm8+DQogICAgICAgIDwvc3JjY2l0ZT4NCiAgICAgICAgPHNyY3NjYWxlPjI0MDAwPC9zcmNz +Y2FsZT4NCiAgICAgICAgPHR5cGVzcmM+RGlnaXRhbCBhbmQvb3IgSGFyZGNvcHkgUmVzb3VyY2Vz +PC90eXBlc3JjPg0KICAgICAgICA8c3JjdGltZT4NCiAgICAgICAgICA8dGltZWluZm8+DQogICAg +ICAgICAgICA8cm5nZGF0ZXM+DQogICAgICAgICAgICAgIDxiZWdkYXRlPjE4ODQ8L2JlZ2RhdGU+ +DQogICAgICAgICAgICAgIDxlbmRkYXRlPjIwMDY8L2VuZGRhdGU+DQogICAgICAgICAgICA8L3Ju +Z2RhdGVzPg0KICAgICAgICAgIDwvdGltZWluZm8+DQogICAgICAgICAgPHNyY2N1cnI+UHVibGlj +YXRpb24gZGF0ZTwvc3JjY3Vycj4NCiAgICAgICAgPC9zcmN0aW1lPg0KICAgICAgICA8c3JjY2l0 +ZWE+VVNHU1RvcG88L3NyY2NpdGVhPg0KICAgICAgICA8c3JjY29udHI+QmFzZSBpbmZvcm1hdGlv +biBmb3IgaHlkcm9sb2dpYyB1bml0IGRlbGluZWF0aW9uLjwvc3JjY29udHI+DQogICAgICA8L3Ny +Y2luZm8+DQogICAgICA8c3JjaW5mbz4NCiAgICAgICAgPHNyY2NpdGU+DQogICAgICAgICAgPGNp +dGVpbmZvPg0KICAgICAgICAgICAgPG9yaWdpbj5VLlMuIEdlb2xvZ2ljYWwgU3VydmV5PC9vcmln +aW4+DQogICAgICAgICAgICA8cHViZGF0ZT4xOTk5PC9wdWJkYXRlPg0KICAgICAgICAgICAgPHRp +dGxlPlUuUy4gR2VvbG9naWNhbCBTdXJ2ZXkgRGlnaXRhbCBSYXN0ZXIgR3JhcGhpYyAoRFJHKTwv +dGl0bGU+DQogICAgICAgICAgICA8Z2VvZm9ybT5SYXN0ZXIgRGlnaXRhbCBEYXRhPC9nZW9mb3Jt +Pg0KICAgICAgICAgICAgPHB1YmluZm8+DQogICAgICAgICAgICAgIDxwdWJwbGFjZT5Vbmtub3du +PC9wdWJwbGFjZT4NCiAgICAgICAgICAgICAgPHB1Ymxpc2g+VS5TLiBHZW9sb2dpY2FsIFN1cnZl +eTwvcHVibGlzaD4NCiAgICAgICAgICAgIDwvcHViaW5mbz4NCiAgICAgICAgICAgIDxvbmxpbms+ +aHR0cDovL2RhdGFnYXRld2F5Lm5yY3MudXNkYS5nb3Y8L29ubGluaz4NCiAgICAgICAgICA8L2Np +dGVpbmZvPg0KICAgICAgICA8L3NyY2NpdGU+DQogICAgICAgIDxzcmNzY2FsZT4yNDAwMDwvc3Jj +c2NhbGU+DQogICAgICAgIDx0eXBlc3JjPkRpZ2l0YWwgYW5kL29yIEhhcmRjb3B5IFJlc291cmNl +czwvdHlwZXNyYz4NCiAgICAgICAgPHNyY3RpbWU+DQogICAgICAgICAgPHRpbWVpbmZvPg0KICAg +ICAgICAgICAgPHJuZ2RhdGVzPg0KICAgICAgICAgICAgICA8YmVnZGF0ZT5Vbmtub3duPC9iZWdk +YXRlPg0KICAgICAgICAgICAgICA8ZW5kZGF0ZT4xOTk5PC9lbmRkYXRlPg0KICAgICAgICAgICAg +PC9ybmdkYXRlcz4NCiAgICAgICAgICA8L3RpbWVpbmZvPg0KICAgICAgICAgIDxzcmNjdXJyPlB1 +YmxpY2F0aW9uIGRhdGU8L3NyY2N1cnI+DQogICAgICAgIDwvc3JjdGltZT4NCiAgICAgICAgPHNy +Y2NpdGVhPlVTR1NEUkc8L3NyY2NpdGVhPg0KICAgICAgICA8c3JjY29udHI+QmFzZSBpbmZvcm1h +dGlvbiBmb3IgaHlkcm9sb2dpYyB1bml0IGRlbGluZWF0aW9uLjwvc3JjY29udHI+DQogICAgICA8 +L3NyY2luZm8+DQogICAgICA8c3JjaW5mbz4NCiAgICAgICAgPHNyY2NpdGU+DQogICAgICAgICAg +PGNpdGVpbmZvPg0KICAgICAgICAgICAgPG9yaWdpbj5VLlMuIEdlb2xvZ2ljYWwgU3VydmV5PC9v +cmlnaW4+DQogICAgICAgICAgICA8cHViZGF0ZT5Vbmtub3duPC9wdWJkYXRlPg0KICAgICAgICAg +ICAgPHRpdGxlPkRpZ2l0YWwgT3J0aG9waG90byBRdWFkczwvdGl0bGU+DQogICAgICAgICAgICA8 +Z2VvZm9ybT5SYXN0ZXIgRGlnaXRhbCBEYXRhPC9nZW9mb3JtPg0KICAgICAgICAgICAgPHB1Ymlu +Zm8+DQogICAgICAgICAgICAgIDxwdWJwbGFjZT5Vbmtub3duPC9wdWJwbGFjZT4NCiAgICAgICAg +ICAgICAgPHB1Ymxpc2g+VS5TLiBHZW9sb2dpY2FsIFN1cnZleTwvcHVibGlzaD4NCiAgICAgICAg +ICAgIDwvcHViaW5mbz4NCiAgICAgICAgICAgIDxvbmxpbms+aHR0cDovL2RhdGFnYXRld2F5Lm5y +Y3MudXNkYS5nb3Y8L29ubGluaz4NCiAgICAgICAgICA8L2NpdGVpbmZvPg0KICAgICAgICA8L3Ny +Y2NpdGU+DQogICAgICAgIDxzcmNzY2FsZT4yNDAwMDwvc3Jjc2NhbGU+DQogICAgICAgIDx0eXBl +c3JjPkRpZ2l0YWwgYW5kL29yIEhhcmRjb3B5IFJlc291cmNlczwvdHlwZXNyYz4NCiAgICAgICAg +PHNyY3RpbWU+DQogICAgICAgICAgPHRpbWVpbmZvPg0KICAgICAgICAgICAgPHNuZ2RhdGU+DQog +ICAgICAgICAgICAgIDxjYWxkYXRlPlVua25vd248L2NhbGRhdGU+DQogICAgICAgICAgICA8L3Nu +Z2RhdGU+DQogICAgICAgICAgPC90aW1laW5mbz4NCiAgICAgICAgICA8c3JjY3Vycj4yMDEwMDMy +NTwvc3JjY3Vycj4NCiAgICAgICAgPC9zcmN0aW1lPg0KICAgICAgICA8c3JjY2l0ZWE+VVNHU0RP +UTwvc3JjY2l0ZWE+DQogICAgICAgIDxzcmNjb250cj5BZXJpYWwgaW1hZ2VyeSB1c2VkIGZvciBy +ZWZlcmVuY2UgaW4gd2F0ZXJzaGVkIGJvdW5kYXJ5IGRlbGluZWF0aW9uPC9zcmNjb250cj4NCiAg +ICAgIDwvc3JjaW5mbz4NCiAgICAgIDxzcmNpbmZvPg0KICAgICAgICA8c3JjY2l0ZT4NCiAgICAg +ICAgICA8Y2l0ZWluZm8+DQogICAgICAgICAgICA8b3JpZ2luPlUuUy4gR2VvbG9naWNhbCBTdXJ2 +ZXk8L29yaWdpbj4NCiAgICAgICAgICAgIDxwdWJkYXRlPjE5OTQ8L3B1YmRhdGU+DQogICAgICAg +ICAgICA8dGl0bGU+MjUwSyBIeWRyb2xvZ2ljIFVuaXQgQm91bmRhcmllczwvdGl0bGU+DQogICAg +ICAgICAgICA8Z2VvZm9ybT5WZWN0b3IgRGlnaXRhbCBEYXRhPC9nZW9mb3JtPg0KICAgICAgICAg +ICAgPHB1YmluZm8+DQogICAgICAgICAgICAgIDxwdWJwbGFjZT5SZXN0b24sIFZpcmdpbmlhPC9w +dWJwbGFjZT4NCiAgICAgICAgICAgICAgPHB1Ymxpc2g+VS5TLiBHZW9sb2dpY2FsIFN1cnZleTwv +cHVibGlzaD4NCiAgICAgICAgICAgIDwvcHViaW5mbz4NCiAgICAgICAgICAgIDxvbmxpbms+aHR0 +cDovL3dhdGVyLnVzZ3MuZ292L2xvb2t1cC9nZXRzcGF0aWFsP2h1YzI1MGs8L29ubGluaz4NCiAg +ICAgICAgICA8L2NpdGVpbmZvPg0KICAgICAgICA8L3NyY2NpdGU+DQogICAgICAgIDxzcmNzY2Fs +ZT4yNTAwMDA8L3NyY3NjYWxlPg0KICAgICAgICA8dHlwZXNyYz5EaWdpdGFsIGFuZC9vciBIYXJk +Y29weSBSZXNvdXJjZXM8L3R5cGVzcmM+DQogICAgICAgIDxzcmN0aW1lPg0KICAgICAgICAgIDx0 +aW1laW5mbz4NCiAgICAgICAgICAgIDxybmdkYXRlcz4NCiAgICAgICAgICAgICAgPGJlZ2RhdGU+ +VW5rbm93bjwvYmVnZGF0ZT4NCiAgICAgICAgICAgICAgPGVuZGRhdGU+MTk5NDwvZW5kZGF0ZT4N +CiAgICAgICAgICAgIDwvcm5nZGF0ZXM+DQogICAgICAgICAgPC90aW1laW5mbz4NCiAgICAgICAg +ICA8c3JjY3Vycj5QdWJsaWNhdGlvbiBkYXRlPC9zcmNjdXJyPg0KICAgICAgICA8L3NyY3RpbWU+ +DQogICAgICAgIDxzcmNjaXRlYT5IVUMyNTBLPC9zcmNjaXRlYT4NCiAgICAgICAgPHNyY2NvbnRy +PlJlZmVyZW5jZSBkYXRhc2V0IGZvciB0aGUgMi0sIDQtLCA2LSBhbmQgOC1kaWdpdCBoeWRyb2xv +Z2ljIHVuaXRzPC9zcmNjb250cj4NCiAgICAgIDwvc3JjaW5mbz4NCiAgICAgIDxzcmNpbmZvPg0K +ICAgICAgICA8c3JjY2l0ZT4NCiAgICAgICAgICA8Y2l0ZWluZm8+DQogICAgICAgICAgICA8b3Jp +Z2luPlUuUy4gR2VvbG9naWNhbCBTdXJ2ZXk8L29yaWdpbj4NCiAgICAgICAgICAgIDxwdWJkYXRl +PjIwMTY8L3B1YmRhdGU+DQogICAgICAgICAgICA8dGl0bGU+TmF0aW9uYWwgSHlkcm9ncmFwaHkg +RGF0YXNldDwvdGl0bGU+DQogICAgICAgICAgICA8Z2VvZm9ybT5WZWN0b3IgRGlnaXRhbCBEYXRh +PC9nZW9mb3JtPg0KICAgICAgICAgICAgPHB1YmluZm8+DQogICAgICAgICAgICAgIDxwdWJwbGFj +ZT5EZW52ZXIsIENPPC9wdWJwbGFjZT4NCiAgICAgICAgICAgICAgPHB1Ymxpc2g+VS5TLiBHZW9s +b2dpY2FsIFN1cnZleTwvcHVibGlzaD4NCiAgICAgICAgICAgIDwvcHViaW5mbz4NCiAgICAgICAg +ICAgIDxvbmxpbms+aHR0cDovL25oZC51c2dzLmdvdi9kYXRhLmh0bWw8L29ubGluaz4NCiAgICAg +ICAgICA8L2NpdGVpbmZvPg0KICAgICAgICA8L3NyY2NpdGU+DQogICAgICAgIDxzcmNzY2FsZT4y +NDAwMDwvc3Jjc2NhbGU+DQogICAgICAgIDx0eXBlc3JjPkRpZ2l0YWwgYW5kL29yIEhhcmRjb3B5 +IFJlc291cmNlczwvdHlwZXNyYz4NCiAgICAgICAgPHNyY3RpbWU+DQogICAgICAgICAgPHRpbWVp +bmZvPg0KICAgICAgICAgICAgPHNuZ2RhdGU+DQogICAgICAgICAgICAgIDxjYWxkYXRlPnVua25v +d248L2NhbGRhdGU+DQogICAgICAgICAgICA8L3NuZ2RhdGU+DQogICAgICAgICAgPC90aW1laW5m +bz4NCiAgICAgICAgICA8c3JjY3Vycj5QdWJsaWNhdGlvbiBkYXRlPC9zcmNjdXJyPg0KICAgICAg +ICA8L3NyY3RpbWU+DQogICAgICAgIDxzcmNjaXRlYT5OSEQ8L3NyY2NpdGVhPg0KICAgICAgICA8 +c3JjY29udHI+SHlkcm9ncmFwaHkgZGF0YSB1c2VkIGZvciByZWZlcmVuY2UgaW4gd2F0ZXJzaGVk +IGJvdW5kYXJ5IGRlbGluZWF0aW9uIHByb2Nlc3M8L3NyY2NvbnRyPg0KICAgICAgPC9zcmNpbmZv +Pg0KICAgICAgPHByb2NzdGVwPg0KICAgICAgICA8cHJvY2Rlc2M+VGhlIG9yaWdpbmFsIGh5ZHJv +bG9naWMgdW5pdCBib3VuZGFyaWVzIHdlcmUgaGFuZC1kaWdpdGl6ZWQgb24gYSBkaWdpdGl6aW5n +IHRhYmxlIGZyb20gdGhlIFVTR1MgNy41IG1pbnV0ZSBxdWFkcmFuZ2xlcy4gVGhpcyBwcm9jZXNz +IG9jY3VycmVkIG92ZXIgYSBzcGFuIG9mIGFwcHJveGltYXRlbHkgMjAgeWVhcnMgZnJvbSAxOTgw +IHRvIDIwMDAuPC9wcm9jZGVzYz4NCiAgICAgICAgPHByb2NkYXRlPjIwMDA8L3Byb2NkYXRlPg0K +ICAgICAgPC9wcm9jc3RlcD4NCiAgICAgIDxwcm9jc3RlcD4NCiAgICAgICAgPHByb2NkZXNjPlRo +ZSBvcmlnaW5hbCBkYXRhc2V0IHdhcyByZXZpZXdlZCBieSBVU0dTIHBlcnNvbm5lbCB1c2luZyBv +bi1zY3JlZW4gdGVjaG5pcXVlcyB3aXRoIERSR3MgYXMgdGhlIGJhc2UgbWFwLiBBbGwgaHlkcm9s +b2dpYyB1bml0cyB3aXRoaW4gdGhlIGRhdGFzZXQgdGhhdCB3ZXJlIGxlc3MgdGhhbiAzLDAwMCBh +Y3JlcyB3ZXJlIGRpc3NvbHZlZCBvdXQuPC9wcm9jZGVzYz4NCiAgICAgICAgPHByb2NkYXRlPjIw +MDM8L3Byb2NkYXRlPg0KICAgICAgPC9wcm9jc3RlcD4NCiAgICAgIDxwcm9jc3RlcD4NCiAgICAg +ICAgPHByb2NkZXNjPlRoZSBuZXcgV0JEICgyMDA1LTIwMTEpIHdhcyByZXZpZXdlZCBvbi1zY3Jl +ZW4gYnkgVVNHUywgRVBBLCBvciBOUkNTIHBlcnNvbm5lbCB1c2luZyBEUkdzIGFuZCBET1FzcyBh +cyBiYXNlIG1hcHMuIEh5ZHJvbG9naWMgVW5pdHMgdGhhdCB3ZXJlIGxlc3MgdGhhbiAxMCwwMDAg +YWNyZXMgKGZvciB0aGUgMTItZGlnaXQgdW5pdHMpIGFuZCA0MCwwMDAgYWNyZXMgKGZvciB0aGUg +MTAtZGlnaXQgdW5pdHMpIHdlcmUgcmV2aWV3ZWQgYW5kIGlmIHBvc3NpYmxlIHdlcmUgZGlzc29s +dmVkIG91dC4gQWxvbmcgdGhlIGNvYXN0YWwgYXJlYXMsIHN0YW5kYXJkIHdhdGVyc2hlZHMgdGhh +dCBmZWxsIHdpdGhpbiB0aGUgZmVkZXJhbCBndWlkZWxpbmUncyBzaXplIGNyaXRlcmlhICgxMi1k +aWdpdDogMTAsMDAwLTQwLDAwMCBhY3JlcywgMTAtZGlnaXQ6IDQwLDAwMC0yNTAsMDAwIGFjcmVz +KSB3ZXJlIGRlbGluZWF0ZWQuIElmIHBvc3NpYmxlIHRoZSByZW1haW5pbmcgZnJvbnRhbHMgd2Vy +ZSBsZWZ0IGFzIHRoZWlyIG93biB1bml0cy4gRnJvbnRhbHMgdGhhdCBkaWQgbm90IG1lZXQgdGhl +IHNpemUgY3JpdGVyaWEgd2VyZSBncm91cGVkIHRvZ2V0aGVyIHdpdGggb3RoZXIgZnJvbnRhbHMg +d2l0aGluIHRoZSBvdmVyYWxsIDgtZGlnaXQgb3IgMTAtZGlnaXQgdW5pdC4gSHlkcm9sb2dpYyB1 +bml0cyB0aGF0IHdlcmUgZ3JlYXRlciB0aGFuIDQwLDAwMCBhY3JlcyAoMTItZGlnaXQgdW5pdHMp +IGFuZCAyNTAsMDAwIGFjcmVzICgxMC1kaWdpdCB1bml0cykgd2VyZSByZXZpZXdlZC4gSWYgcG9z +c2libGUgdGhlc2UgdW5pdHMgd2hlcmUgdGhlbiBzdWJkaXZpZGVkIGludG8gc21hbGxlciB1bml0 +cyB0aGF0IG1ldCB0aGUgc2l6ZSBjcml0ZXJpYS4gSW4gc29tZSBjYXNlcywgYWRkaXRpb25hbCBi +cmVha3Mgd2l0aGluIHRoZSB1bml0IHdvdWxkIG5vdCBoYXZlIG1hZGUgc2Vuc2Ugb3IgaGF2ZSBi +ZWVuIHZlcnkgdXNlZnVsLiBGb3IgZXhhbXBsZTogV2hlbiB0aGUgbWFqb3JpdHkgb2YgdGhlIHVu +aXQgd2FzIG1hZGUgdXAgYnkgYSBtYWpvciB3YXRlcmJvZHkgZmVhdHVyZSBzdWNoIGFzIGEgbGFr +ZSBvciByZXNlcnZvaXIgYW5kIHRoZSBzdXJyb3VuZGluZyB0cmlidXRhcmllcyB3ZXJlIHRvbyBz +bWFsbCB0byBkZWxpbmVhdGUgYXMgdGhlaXIgb3duIHVuaXQuIEluIHRoZXNlIGluc3RhbmNlcyB0 +aGUgdW5pdCB3YXMgbGVmdCBiaWcuPC9wcm9jZGVzYz4NCiAgICAgICAgPHByb2NkYXRlPjIwMTE8 +L3Byb2NkYXRlPg0KICAgICAgPC9wcm9jc3RlcD4NCiAgICAgIDxwcm9jc3RlcD4NCiAgICAgICAg +PHByb2NkZXNjPkZyb20gMjAwNSB0byAyMDExLCBoeWRyb2xvZ2ljIHVuaXRzIGZyb20gc3Vycm91 +bmRpbmcgc3RhdGVzIHdlcmUgdXNlZCB0byBlZGdlbWF0Y2ggd2F0ZXJzaGVkIGJvdW5kYXJpZXMg +YXMgdGhleSB3ZXJlIGRldmVsb3BlZC48L3Byb2NkZXNjPg0KICAgICAgICA8cHJvY2RhdGU+MjAx +MTwvcHJvY2RhdGU+DQogICAgICA8L3Byb2NzdGVwPg0KICAgICAgPHByb2NzdGVwPg0KICAgICAg +ICA8cHJvY2Rlc2M+RnJvbSAyMDA1IHRvIDIwMTEsIG9yaWdpbmFsIGRhdGFzZXQgYXR0cmlidXRp +b24gd2FzIHJldmlld2VkIGFuZCByZXZpc2VkIHRvIHJlZmxlY3QgdGhlIHVwZGF0ZXMgYW5kIGNo +YW5nZXMgbWFkZSB0byB0aGUgZGF0YXNldC4gVGhlc2UgcmV2aXNpb25zIHRvIHRoZSBhdHRyaWJ1 +dGlvbiB3ZXJlIGFsc28gbWFkZSB0byBlbnN1cmUgdGhhdCB0aGUgZGF0YXNldCBtZXQgdGhlIEZl +ZGVyYWwgU3RhbmRhcmRzIGZvciBEZWxpbmVhdGlvbiBvZiBIeWRyb2xvZ2ljIFVuaXQgQm91bmRh +cmllcy4gVGhlIE5IRCB3YXMgdXNlZCBkdXJpbmcgdGhpcyBwcm9jZXNzIHRvIGhlbHAgd2l0aCB0 +aGUgbmFtaW5nIGFuZCBkb3duc3RyZWFtIGNvZGluZyBvZiBlYWNoIHVuaXQuIEluIHNvbWUgaW5z +dGFuY2VzIHRoZXJlIHdlcmUgbmFtZSBkaXNjcmVwYW5jaWVzIGJldHdlZW4gdGhlIE5IRCBhbmQg +d2hhdCB3YXMgcHJpbnRlZCBvbiB0aGUgRFJHcy4gSW4gdGhlc2UgaW5zdGFuY2VzIHRoZSBEUkdz +IHdlcmUgdXNlZCBpbnN0ZWFkIG9mIHRoZSBOSEQuPC9wcm9jZGVzYz4NCiAgICAgICAgPHByb2Nk +YXRlPjIwMTE8L3Byb2NkYXRlPg0KICAgICAgPC9wcm9jc3RlcD4NCiAgICAgIDxwcm9jc3RlcD4N +CiAgICAgICAgPHByb2NkZXNjPkZpcnN0IGRyYWZ0IG9mIG1ldGFkYXRhIGNyZWF0ZWQgYnkgTlJD +UyB1c2luZyBNRVRBREFUQSBFZGl0b3IgaW4gQXJjQ2F0YWxvZyB2ZXIuIDkuMSBzcC4xIGh1MTJf +Z2VvODM8L3Byb2NkZXNjPg0KICAgICAgICA8cHJvY2RhdGU+MjAwNzAxMjQ8L3Byb2NkYXRlPg0K +ICAgICAgPC9wcm9jc3RlcD4NCiAgICAgIDxwcm9jc3RlcD4NCiAgICAgICAgPHByb2NkZXNjPlRo +ZSBmb2xsb3dpbmcgZWRpdHMgKDIwMTIgLSBwcmVzZW50KSB3ZXJlIGNvbXBsZXRlZCBkdXJpbmcg +bmF0aW9uYWwgcXVhbGl0eSBjb250cm9sIHJldmlldyBwZXJmb3JtZWQgYnkgdGhlIFdCRCBuYXRp +b25hbCB0ZWNobmljYWwgZWRpdCB0ZWFtIGluIHRoZSBVU0dTIFV0YWggV2F0ZXIgU2NpZW5jZSBD +ZW50ZXIuIFVwZGF0ZXMgbWF5IG5vdCBhZmZlY3QgYWxsIGh5ZHJvbG9naWMgdW5pdHMuDQoJCUVk +aXRzIGJ5IFVTR1MgV2F0ZXIgU2NpZW5jZSBDZW50ZXIgaW4gU2FsdCBMYWtlIENpdHksIFV0YWgu +IA0KCQkxLiBSZXZpZXdlZCBhbGwgdGhlIFRvSFVDIGNvZGVzIHdpdGhpbiB0aGUgMTItZGlnaXQg +cG9seWdvbnMgYW5kIG1hZGUgdXBkYXRlcyBhcyBuZWNlc3NhcnkuIEFsbCB1cGRhdGVzIHdlcmUg +Y29vcmRpbmF0ZWQgYW5kIGFwcHJvdmVkIGJ5IFdCRCBzdGF0ZSBzdGV3YXJkcy4NCgkJMi4gVXBk +YXRlZCBMaW5lc291cmNlIGNvZGUgKG1pc3NwZWxsaW5ncywgcmVtb3ZlZCBleHRyYSBzcGFjZXMg +ZXRjLikgd2hlcmUgbmVlZGVkIHRvIG1hdGNoIEZlZGVyYWwgU3RhbmRhcmRzIA0KCQkzLiBVcGRh +dGVkIGFuZCBjb3JyZWN0ZWQgZXJyb3JzIGluIHRoZSBIVV9Nb2QgZmllbGRzIHdoZXJlIG5lZWRl +ZCB0byBtYXRjaCBGZWRlcmFsIFN0YW5kYXJkcy4gDQoJCTQuIFVwZGF0ZWQgU3RhdGUgZmllbGQg +Zm9yIENhbmFkYSAoQ04pIGFuZCBNZXhpY28gKE1YKSBiYXNlZCBvbiB0aGUgbmV3IHZlcnNpb24g +b2YgdGhlIFN0YW5kYXJkcyANCgkJNS4gUmV2aWV3ZWQgYWxsIHRoZSBOYW1lcyByZWxhdGVkIHRv +IGVhY2ggMTAtZGlnaXQgYW5kIDEyLWRpZ2l0IHBvbHlnb24gYW5kIG1hZGUgdXBkYXRlcyBhcyBu +ZWNlc3NhcnkuIEFsbCB1cGRhdGVzIHdlcmUgY29vcmRpbmF0ZWQgYW5kIGFwcHJvdmVkIGJ5IHRo +ZSBXQkQgU3RhdGUgc3Rld2FyZHMNCgkJNi4gQ2hlY2tlZCBhbmQgdXBkYXRlZCBIVV9MZXZlbCBm +aWVsZCB3aGVyZSBIVV9MZXZlbCA9IDk5IG9yID0gbnVsbCANCgkJNy4gVXBkYXRlZCB0aGUgOC1k +aWdpdCBvdXRlciBib3VuZGFyeSBmb3IgdW5pdHMgZmxvd2luZyBpbnRvIG9jZWFuIHVuaXRzIGJ5 +IGV4dGVuZGluZyB0aGUgYm91bmRhcnkgb2Zmc2hvcmUgdG8gdGhlIDMgbmF1dGljYWwgbWlsZSBs +aW1pdCBwcm92aWRlZCBieSBOT0FBLiBBbGwgdXBkYXRlcyB3ZXJlIGNvb3JkaW5hdGVkIGFuZCBh +cHByb3ZlZCBieSB0aGUgV0JEIHN0YXRlIHN0ZXdhcmRzPC9wcm9jZGVzYz4NCiAgICAgICAgPHBy +b2NkYXRlPjIwMTY8L3Byb2NkYXRlPg0KICAgICAgPC9wcm9jc3RlcD4NCiAgICAgIDxwcm9jc3Rl +cD4NCiAgICAgICAgPHByb2NkZXNjPlRoZSBmb2xsb3dpbmcgYXJlIDgtZGlnaXQgdXBkYXRlcyAo +ZnJvbSAyMDA5LTIwMTYpIHRoYXQgd2VyZSBhcHByb3ZlZCBieSB0aGUgV0JEIE5hdGlvbmFsIFRl +Y2huaWNhbCBDb29yZGluYXRvcnMgYXMgcmVxdWlyZWQgYnkgdGhlIFdCRCBTdGFuZGFyZHMuIFRo +ZXNlIG1heSBpbmNsdWRlIG5hbWUvY29kZSB1cGRhdGVzIG9yIGJvdW5kYXJ5IHVwZGF0ZXMgdGhh +dCB3ZXJlIGltcGxlbWVudGVkIGluIHRoZSBXQkQgYXQgc29tZSBwb2ludCBkdXJpbmcgdGhlIGNy +ZWF0aW9uIG9yIG1haW50ZW5hbmNlIG9mIHRoZSBkYXRhLiANCglBbGFza2E6DQoJCUxlZ2FjeSAx +OTAyMDQwMSBBbmNob3JhZ2UgYm91bmRhcnkgaGFzIGNoYW5nZWQgYnkgYWJvdXQgMjAlIG9mIGl0 +cyBhcmVhLg0KCQkxOTAyMDIwMyAoUHJpbmNlIFdpbGxpYW0gU291bmQpDQoJCUFkZGVkIGEgbmV3 +IHN1YmJhc2luIHVuaXQgZm9yIFByaW5jZSBXaWxsaWFtIFNvdW5kLg0KCQlBZGp1c3RlZCBodWM4 +IGJvdW5kYXJpZXMgYmV0d2VlbiAxOTAyMDEwNCwgMTkwMjAyMDEgYW5kIDE5MDIwMjAyIHRvIGJl +dHRlciByZWZsZWN0IHN1cmZhY2Ugd2F0ZXIgZmxvdyBhbmQgdG8gYXNzaXN0IHdpdGggZGVsaW5l +YXRpbmcgdGhlIFByaW5jZSBXaWxsaWFtIFNvdW5kIGFzIGEgbmV3IHVuaXQuDQoJCUxlZ2FjeSAx +OTAyMDMwMiBVcHBlciBLZW5haSBQZW5pbnN1bGEgaGFzIGNoYW5nZWQgYnkgYWJvdXQgMjAlIG9m +IGl0cyBhcmVhLg0KCQlMZWdhY3kgMTkwMzAzMDQgV29vZCBSaXZlciB3YXMgc3ViZGl2aWRlZCB3 +aGljaCBoYXMgY3JlYXRlZCBhIHJlZHVjZWQgYXJlYSBmb3IgdGhlIDE5MDMwMzA0IFdvb2QgUml2 +ZXIgYW5kIHB1dCBJZ3VzaGlrIFJpdmVyIGludG8gaXRzIG93biBoeWRyb2xvZ2ljIHVuaXQgd2l0 +aCBhIG5ldyBjb2RlIG9mIDE5MDMwMzA2LiANCgkJTGVnYWN5IDE5MDMwNDAyIEZhcmV3ZWxsIExh +a2Ugd2FzIGRpdmlkZWQgaW50byAxOTAzMDQwNiBNaWRkbGUgRmxvcmsgS3Vza29rd2ltIFJpdmVy +IGFuZCAxOTAzMDQwNyBTb3V0aCBGb3JrIEt1c2tva3dpbSBSaXZlci4gDQoJCUxlZ2FjeSAxOTA0 +MDIwNCBCbGFjayBSaXZlciB3YXMgc3ViZGl2aWRlZC4gMTkwNDAyMDQgd2lsbCByZW1haW4gdGhl +IEJsYWNrIFJpdmVyLCBhbmQgYSBuZXcgdW5pdCAxOTA0MDIwNiBHcmFzcyBSaXZlciBpcyBicm9r +ZW4gb3V0LiANCgkJMTkwNDA1MDI6DQoJCVRoZSBvdXRsZXQgZm9yIHN1YmJhc2luIDE5MDQwNTAy +IHdhcyBtb3ZlZCBkb3duc3RyZWFtIGZyb20gdGhlIGN1cnJlbnQgYnJlYWsgYWNyb3NzIFRhbmFu +YSBSaXZlciBhdCBhIGNvbmZsdWVuY2Ugd2l0aCBhIG1pbm9yIHRyaWJ1dGFyeSB0byB0aGUgbW9y +ZSBwcm9taW5lbnQgY29uZmx1ZW5jZSB3aXRoIFJvYmVydHNvbiBSaXZlci4gVGhpcyBlZGl0IHJl +c3VsdGVkIGluIHRoZSBhZGRpdGlvbiBvZiAyIHN1YndhdGVyc2hlZHMgdG8gMTkwNDA1MDIgYW5k +IHRoZSByZW1vdmFsIG9mIDIgd2F0ZXJzaGVkcyBmcm9tIDE5MDQwNTAzLg0KCQlMZWdhY3kgMTkw +NDA1MDQgRGVsdGEgUml2ZXIgbGluZXdvcmsgY2hhbmdlZCBzaWduaWZpY2FudGx5Lg0KCQlUaGUg +bGVnYWN5IDE5MDQwNTA0IGhhZCAzIHNlcGFyYXRlIG91dGxldHM7IERlbHRhIFJpdmVyLCBEZWx0 +YSBDcmVlayBhbmQgTGl0dGxlIERlbHRhIFJpdmVyLg0KCQlUaGUgYm91bmRhcnkgd2FzIGFkanVz +dGVkIHNvIHRoYXQgMTkwNDA1MDQgY29udGFpbmVkIGp1c3QgdGhlIERlbHRhIFJpdmVyIGFzIGEg +c3RhbmRhcmQgdW5pdC4NCgkJVGhlIERlbHRhIENyZWVrIGFuZCBMaXR0bGUgRGVsdGEgUml2ZXIg +d2hlcmUgbW92ZWQgaW50byAxOTA0MDUwNy4NCgkJTGVnYWN5IDE5MDQwNTA3IFRhbmFuYSBGbGF0 +cyBMaW5ld29yayBjaGFuZ2VkIHNpZ25pZmljYW50bHkuDQoJCTE5MDQwNjA2IC0gTGVnYWN5IGJv +dW5kYXJ5IGZvciAxOTA0MDYwNiBoYWQgdGhlIG91dGxldCBhdCBhIGxvY2F0aW9uIGFjcm9zcyB0 +aGUgSHVzbGlhIFJpdmVyIGRvd25zdHJlYW0gZnJvbSB0aGUgb3V0bGV0IG9mIHRoZSBTb3V0aCBG +b3JrIEh1c2xpYSBSaXZlci4gVGhlIGJvdW5kYXJ5IHdhcyBhZGp1c3RlZCBkb3duc3RyZWFtIHRv +IHRoZSBtYWpvciBjb25mbHVlbmNlIHdoZXJlIHRoZSBIdXNsaWEgUml2ZXIgZHJhaW5zIGludG8g +dGhlIEtveXVrdWsgUml2ZXIsIHRodXMgY3JlYXRpbmcgYSBzdGFuZGFyZCBIVUM4IGZvciB0aGUg +SHVzbGlhIFJpdmVyLg0KCQkxOTA1Og0KCQkxOTA1MDIwMiwgMTkwNTAyMDMsIDE5MDUwMzAxLCAx +OTA1MDMwNCwgMTkwNTA0MDMNCgkJMTkwNTAyMDLigJlzIGJvdW5kYXJ5IHdhcyBhZGp1c3RlZCBz +byB0aGF0IHRoaXMgdW5pdCBjb250YWluZWQgYWxsIGZyb250YWwgZHJhaW5hZ2UgYXJlYXMgZmxv +d2luZyBpbnRvIHRoZSBzb3V0aGVybiBwb3J0aW9uIG9mIEtvdHplYnVlIFNvdW5kLg0KCQkxOTA1 +MDIwM+KAmXMgYm91bmRhcnkgd2FzIGFkanVzdGVkIHRvIHRoYXQgdGhlIHVuaXQgaW5jbHVkZWQg +RXNjaHNjaG9sdHogQmF5IGFuZCBhbGwgb2YgdGhlIGRyYWluYWdlIGFyZWFzIGZsb3dpbmcgaW50 +byBpdC4NCgkJMTkwNTAzMDHigJlzIGJvdW5kYXJ5IHdhcyBhZGp1c3RlZCBzbyB0aGF0IHRoaXMg +dW5pdCBoYXMgb25lIG91dGxldCBhbmQgaW5jbHVkZXMgU2VsYXdpayBMYWtlLiBUaGUgZnJvbnRh +bCBkcmFpbmFnZXMgZmxvd2luZyBpbnRvIEhvdGhhbSBJbmxldCB3ZXJlIG1vdmVkIGludG8gdW5p +dCAxOTA1MDMwNC4NCgkJMTkwNTAzMDTigJlzIGJvdW5kYXJ5IHdhcyBhZGp1c3RlZCBzbyB0aGF0 +IHRoZSB1bml0IGluY2x1ZGVkIEhvdGhhbSBJbmxldCBhbmQgdGhlIGZyb250YWwgZHJhaW5hZ2Vz +IGZsb3dpbmcgaW50byBpdC4NCgkJMTkwNTA0MDPigJlzIGJvdW5kYXJ5IHdhcyBhZGp1c3RlZCB0 +byBhIGJ1ZmZlciBkaXN0YW5jZSBvZiAxMDAwIG1ldGVycyBvZmYgc2hvcmUuDQoJCTE5MDUwNTAw +IC0gS290emVidWUgU291bmQ6DQoJCUFkZGVkIGEgbmV3IEhVQzggIHVuaXQgdG8gQUsgV0JEIGZv +ciBLb3R6ZWJ1ZSBTb3VuZC4gSW5uZXIgY29hc3RhbCB1bml0cyB0aGF0IGVuZGVkIGF0IHRoZSBz +aG9yZSBsaW5lIHdlcmUgZXh0ZW5kZWQgb2Zmc2hvcmUgdG8gYSAxMDAwIG1ldGVyIGJ1ZmZlciBk +aXN0YW5jZS4NCgkJTGVnYWN5IDE5MDYwMjA0IElrcGlrcHVrIFJpdmVyIGFic29yYmVkIEluYXJ1 +IFJpdmVyIGZyb20gTGVnYWN5IDE5MDYwMjAyDQoJCUxlZ2FjeSB1bml0IDE5MDYwMjAyIGNvbnRh +aW5lZCAyIGRpZmZlcmVudCBzdHJlYW0gc3lzdGVtcyBmbG93aW5nIGludG8gMiBkaWZmZXJlbnQg +Ym9kaWVzIG9mIHdhdGVyLg0KCQlUaGUgSW5hcnUgUml2ZXIgZmxvd3MgaW50byBBZG1pcmFsdHkg +QmF5IHdoaWxlIHRoZSBLdWdydWEgUml2ZXIgYW5kIHRoZSBvdGhlciBzbWFsbCBmcm9udGFsIGRy +YWluYWdlcyBmbG93cyBpbnRvIHRoZSBDaHVrY2hpIFNlYS4NCgkJVGhlIGJvdW5kYXJ5IHdhcyBh +ZGp1c3RlZCBzbyB0aGF0IGZsb3cgaW50byBBZG1pcmFsdHkgQmF5L0RlYXNlIElubGV0IHdhcyBz +ZXBhcmF0ZSBmcm9tIGZsb3cgaW50byBDaHVrY2hpIFNlYS4gVGhlIEluYXJ1IFJpdmVyLCBBZG1p +cmFsdHkgQmF5L0RlYXNlIElubGV0IGFuZCBhbGwgYXNzb2NpYXRlZCBmcm9udGFsIGRyYWluYWdl +cyB3ZXJlIGFkZGVkIHRvIHN1YmJhc2luIDE5MDYwMjA0Lg0KCQlOZXcgU3ViYmFzaW4gMTkwNjAy +MDYgaXMgYmVpbmcgbmFtZWQgQWRtaXJhbHR5IEJheS1EZWFzZSBJbmxldC4gVGhpcyBhcmVhIHVz +ZSB0byBiZSBwYXJ0IG9mIFN1YmJhc2luIDE5MDYwMjA0DQoJCTE5MDIwODAwIENvb2sgSW5sZXQg +aXMgYSBuZXcgaHlkcm9sb2dpYyB1bml0IGFzIHJlY29tbWVuZGVkIGJ5IHRoZSBBbGFza2EgaW4g +c3RhdGUgc3Rha2Vob2xkZXJzLg0KDQogICAgICAgIDIwMTEgLSBUaGVzZSB1cGRhdGVzIHdoZXJl +IHByb3Bvc2VkIGJ5IEZvcmVzdCBTZXJ2aWNlIHBhcnRuZXJzIHdpdGhpbiB0aGUgVG9uZ2FzcyBO +YXRpb25hbCBGb3Jlc3QuIFdoZW4gbWFqb3IgY2hhbmdlcyBhcmUgbWFkZSB0byB0aGUgSFVDOCBj +b250YWluZXIgKGkuZS4gdGhlIGNvbnRhaW5lciBpcyBzdWJkaXZpZGVkIGludG8gbXVsdGlwbGUg +dW5pdHMpIHRoZSBuYXRpb25hbCBwcm90b2NvbCBoYXMgYmVlbiB0byByZXRpcmUgdGhlIG9sZCBI +VUM4IGNvZGUgYW5kIG5hbWUgYW5kIGFzc2lnbiBuZXcgY29kZXMgYW5kIG5hbWVzIHRvIHRoZSB1 +cGRhdGVzIHVuaXRzDQoJCTE5MDEwMjAyIChLdWl1LUt1cHJlYW5vZi1NaXRrb2YtRXRvbGluLVph +cmVtYm8tV3JhbmdlbGwpIGlzIGJlaW5nIHJldGlyZWQgYW5kIDIgbmV3IEhVQzggdW5pdHMgd2Vy +ZSBmb3JtZWQuDQoJCUt1aXUgSXNsYW5kLCBNaXRrb2YgSXNsYW5kIGFuZCBLdXByZWFub2YgSXNs +YW5kIHdlcmUgc3BsaXQgb3V0IGludG8gdGhlaXIgb3duIDgtZGlnaXQgdW5pdA0KCQlIVUM4IC0g +MTkwMTAyMTANCgkJSFU4X05hbWUg4oCTIEt1aXUtS3VwcmVhbm9mLU1pdGtvZiBJc2xhbmRzDQoJ +CVphcmVtYm8gSXNsYW5kLCBXcmFuZ2VsbCBJc2xhbmQgYW5kIEV0b2xpbiBJc2xhbmQgd2VyZSBz +dWJkaXZpZGVkIGludG8gdGhlaXIgb3duIDggZGlnaXQgdW5pdA0KCQlIVUM4IOKAkyAxOTAxMDIw +OQ0KCQlIVThfTmFtZSDigJMgRXRvbGluLVphcmVtYm8tV3JhbmdlbGwgSXNsYW5kcw0KDQoJCTE5 +MDEwMjAzIChCYXJhbm9mLUNoaWNoYWdvZiBJc2xhbmRzKTE5MDEwMjAzIHdhcyByZXRpcmVkLiAx +OTAxMDIwMyB3YXMgc3ViZGl2aWRlZCAzIG5ldyB1bml0czsgMiBpc2xhbmQgdW5pdHMgYW5kIDEg +Y2hhbm5lbCB1bml0Lg0KCQlDaGljaGFnb2YgSXNsYW5kIHdhcyBzcGxpdCBvdXQgaW50byBpdHMg +b3duIDgtZGlnaXQgdW5pdA0KCQlIVUM4IOKAkyAxOTAxMDIxMQ0KCQlIVThfTmFtZSDigJMgQ2hp +Y2hhZ29mIElzbGFuZA0KCQlCYXJhbm9mIGFuZCBLcnV6b2YgSXNsYW5kcyB3ZXJlIHN1YmRpdmlk +ZWQgaW50byB0aGVpciBvd24gOC1kaWdpdCB1bml0DQoJCUhVQzgg4oCTIDE5MDEwMjEyDQoJCUhV +OF9OYW1lIOKAkyBCYXJhbm9mIElzbGFuZA0KCQlDcmVhdGVkIGEgbmV3IHdhdGVyIGh5ZHJvbG9n +aWMgdW5pdCBmb3IgdGhlIGNoYW5uZWwgYmV0d2VlbiBDaGljaGFnb2YgSXNsYW5kIGFuZCBCYXJh +bm9mL0tydXpvZiBJc2xhbmRzLiBUaGlzIG5ldyB3YXRlciB1bml0IHdvdWxkIGJlY29tZSBhIEhV +QzEwIHVuaXQgd2l0aGluIHRoZSAiV2F0ZXIiIHN1YmJhc2luIDE5MDEwNTAwLg0KCQlIVUMxMCDi +gJMgMTkwMTA1MDAxMQ0KCQlIVUMxMF9OYW1lIC0gUGVyaWwgU3RyYWl0DQoJCUJlY2F1c2Ugb2Yg +dGhlIHZhcnlpbmcgd2lkdGggb2YgdGhlIGNoYW5uZWwgdGhlIGJvdW5kYXJ5IHdhcyBncmFkdWF0 +ZWQgZnJvbSBhIDEsMDAwIG1ldGVyIGJ1ZmZlciB0byAxMDAgbWV0ZXIgYnVmZmVyIGZyb20gdGhl +IExvdyBUaWRlIFNob3JlbGluZS4gVGhlIExvdyBUaWRlIFNob3JlbGluZSB3YXMgcHJvdmlkZWQg +YnkgdGhlIEZvcmVzdCBTZXJ2aWNlLiANCgkJQSAxLDAwMCBtZXRlciBidWZmZXIgd2FzIHVzZWQg +aW4gdGhlIG9wZW4gY2hhbm5lbCB0byBtYXRjaCB0aGUgYnVmZmVyIGRpc3RhbmNlIHVzZWQgd2l0 +aGluIHRoZSByZXN0IG9mIFNFIEFLIFdCRC4gVGhlcmUgaXMgYSBuYXJyb3cgcG9ydGlvbiBvZiB0 +aGUgY2hhbm5lbCB3aGVyZSB0aGUgYm91bmRhcnkgd2FzIGdyYWR1YWxseSByZWR1Y2VkIGZyb20g +dGhlIDEsMDAwIG1ldGVyIGJ1ZmZlciB0byBhIDEwMCBtZXRlciBidWZmZXIuDQoJCQ0KCQkyMDE0 +IC0gVXBkYXRlZCBBbGFza2HigJlzIHJlZ2lvbiAxOTA0IGJhc2VkIG9uIGEgcmVxdWVzdCBmcm9t +IE5IRCBwcm9ncmFtIGFuZCBhcHByb3ZlZCBieSBzdGF0ZSBwYXJ0bmVycy4gMTkwNCB3YXMgc3Vi +ZGl2aWRlZCAzIG5ldyA0LWRpZ2l0IGh5ZHJvbG9naWMgdW5pdHMuIA0KCQlUaGUgbmV3IHVuaXRz +IGFyZQ0KCQkxOTA3IOKAkyBVcHBlciBZdWtvbiBSaXZlcg0KCQkxOTA3MDEg4oCTIEhlYWR3YXRl +cnMgWXVrb24gUml2ZXINCgkJMTkwOCDigJMgTWlkZGxlIFl1a29uIFJpdmVyDQoJCTE5MDkg4oCT +IExvd2VyIFl1a29uIFJpdmVyDQoJCQ0KCQkyMDE2IC0gVXBkYXRlcyB0byBBSyA4LWRpZ2l0IHVu +aXRzIGJhc2VkIG9uIGhhcm1vbml6YXRpb24gZWZmb3J0IHdpdGggQ2FuYWRhDQoJCTE5MDcwNTA0 +IChFYWdsZSBDcmVlay1ZdWtvbiBSaXZlcikgaXMgYmVpbmcgc3ViZGl2aWRlZCAyIG5ldyA4LWRp +Z2l0IGh5ZHJvbG9naWMgdW5pdHMuIE9yaWdpbmFsIGNvZGUgYW5kIG5hbWUgYXJlIGJlaW5nIHJl +dGlyZWQuDQoJCUhVQzggLSAxOTA3MDUwNSAoVGF0b25kdWsgUml2ZXItWXVrb24gUml2ZXIpDQoJ +CUhVQzggLSAxOTA3MDUwNiAoQ2hhcmxleSBSaXZlci1ZdWtvbiBSaXZlcikNCgkJDQoJCTE5MDYw +NTAzIChCZWF1Zm9ydCBMYWdvb24pIGlzIGJlaW5nIHN1YmRpdmlkZWQgMyBuZXcgOC1kaWdpdCBo +eWRyb2xvZ2ljIHVuaXRzLiBPcmlnaW5hbCBjb2RlIGFuZCBuYW1lIGFyZSBiZWluZyByZXRpcmVk +Lg0KCQlIVUM4IC0gMTkwNjA1MDQgKEtvbmdha3VhdCBSaXZlci1CZWF1Zm9ydCBMYWdvb24pDQoJ +CUhVQzggLSAxOTA2MDUwNSAoRmlydGggUml2ZXIpDQoJCUhVQzggLSAxOTA2MDUwNiAoQmFiYmFn +ZSBSaXZlcikgaXMgY29tcGxldGVseSB3aXRoaW4gQ2FuYWRhIFl1a29uIFRlcnJpdG9yeQ0KCQkJ +DQoJQXJpem9uYToNCgkJTGVnYWN5IDE1MDEwMDA5IEZvcnQgUGllcmNlIFdhc2ggbmFtZSBjaGFu +Z2VkIHRvIEZvcnQgUGVhcmNlIFdhc2ggdG8gYWNjb3VudCBmb3IgbWlzc3BlbGwuDQoJCUxlZ2Fj +eSAxNTAxMDAwNyBIdWFsYXBhaSBXYXNoIG5hbWUgc2hvdWxkIGNoYW5nZSBhcyB0aGUgd2FzaCBp +cyBub3cgaW4gdGhlIGFkamFjZW50IFN1YmJhc2luLiBDaGFuZ2VkIHRvIFJlZCBMYWtlIA0KCQ0K +CUNhbGlmb3JuaWE6DQoJCUxlZ2FjeSAxODAxMDEwOSBHdWFsYWxhLVNhbG1vbiBoYWQgYW4gYXJl +YSB0aGUgc2l6ZSBvZiBzZXZlcmFsIDEyLWRpZ2l0IEhVcyB0aGF0IGhhcyBiZWVuIGFnZ3JlZ2F0 +ZWQgaW50byB0aGUgYWRqYWNlbnQgbGVnYWN5IDE4MDUwMDA1IFRvbWFsZXMtRHJha2UgQmF5cyBh +cyBhIHJlc3VsdCBvZiBjb2FzdGFsIGltcGxlbWVudGF0aW9uLiBUaGlzIGlzIGFwcHJvdmVkIGJ5 +IHRoZSBpbi1zdGF0ZSBXQkQgU3Rld2FyZCBhbmQgVDMuTGVnYWN5IDE4MDMwMDEyIGFuZCBuZXcg +MTgwMzAwMTIgVHVsYXJlLUJ1ZW5hIFZpc3RhIExha2VzIGNoYW5nZWQgdG8gVHVsYXJlIExha2Ug +QmVkIGFzIHRoZSBib3VuZGFyeSBoYXMgY2hhbmdlZCBzbyBzaWduaWZpY2FudGx5IHRoYXQgQnVl +bmEgVmlzdGEgTGFrZXMgYXJlIG5vIGxvbmdlciBpbiB0aGUgYWRqdXN0ZWQgaHlkcm9sb2dpYyB1 +bml0Lg0KCQlMZWdhY3kgMTgwNDAwMDEgYW5kIG5ldyAxODA0MDAwNyBuYW1lIGNoYW5nZWQgZnJv +bSBVcHBlciBDaG93Y2hpbGxhLVVwcGVyIEZyZXNubyB0byBGcmVzbm8gUml2ZXIgYXMgdGhlIENo +b3djaGlsbGEgaXMgbm8gbG9uZ2VyIGluIHRoZSBhZGp1c3RlZCBoeWRyb2xvZ2ljIHVuaXQuDQoJ +CUxlZ2FjeSAxODA0MDAwMiBhbmQgbmV3IDE4MDQwMDAyIG5hbWUgY2hhbmdlZCBmcm9tIE1pZGRs +ZSBTYW4gSm9hcXVpbi1Mb3dlciBNZXJjZWQtTG93ZXIgU3RhbmlzbGF1cyB0byBMb3dlciBTYW4g +Sm9hcXVpbiBSaXZlciBhcyBNZXJjZWQgYW5kIFN0YW5pc2xhdXMgUml2ZXJzIGFyZSBubyBsb25n +ZXIgaW4gdGhlIGFkanVzdGVkIGh5ZHJvbG9naWMgdW5pdC4NCgkJTGVnYWN5IDE4MDUwMDA2IFNh +biBGcmFuY2lzY28tQ29hc3RhbCBTb3V0aCB3aWxsIGFic29yYiA0IGNvYXN0YWwgMTItZGlnaXQg +SFVzIGZyb20gbGVnYWN5IDE4MDYwMDAxIFNhbiBMb3JlbnpvLVNvcXVlbCBhcyBhIHJlc3VsdCBv +ZiBjb2FzdGFsIGltcGxlbWVudGF0aW9uLiBUaGlzIGlzIGFwcHJvdmVkIGJ5IHRoZSBpbi1zdGF0 +ZSBXQkQgU3Rld2FyZCBhbmQgdGhlIFdCRCBOYXRpb25hbCBUZWNobmljYWwgQ29vcmRpbmF0b3Jz +IChOVEMpDQoJCUxlZ2FjeSAxODA2MDAwNiBDZW50cmFsIENvYXN0YWwgd2lsbCBhYnNvcmIgYW4g +YXJlYSB0aGUgc2l6ZSBvZiA2IDEyLWRpZ2l0IEhV4oCZcyBmcm9tIGxlZ2FjeSAxODA2MDAxMiBD +YXJtZWwgd2hpY2ggYWxsIGRyYWlucyBkaXJlY3RseSB0byB0aGUgUGFjaWZpYyBPY2Vhbi4gVGhp +cyBpcyBhcHByb3ZlZCBieSB0aGUgaW4tc3RhdGUgV0JEIFN0ZXdhcmQgYW5kIHRoZSBXQkQgTmF0 +aW9uYWwgVGVjaG5pY2FsIENvb3JkaW5hdG9ycyAoTlRDKQ0KCQlQb3J0aW9ucyBvZiBsZWdhY3kg +MTgwNjAwMTEsIDE4MDYwMDEyLCBhbmQgcGFydCBvZiAxOTA2MDAwMSB3aWxsIGJlY29tZSBhIG5l +dyBzdWJiYXNpbiBhY2NvdW50aW5nIGZvciBhbGwgb2YgdGhlc2UgZnJvbnRhbCBwaWVjZXMuIEl0 +IHdpbGwgYmUgY29kZWQgMTgwNjAwMTUgYW5kIG5hbWVkIE1vbnRlcmV5IEJheS4gVGhpcyBpcyBh +cHByb3ZlZCBieSB0aGUgaW4tc3RhdGUgV0JEIFN0ZXdhcmQgYW5kIHRoZSBXQkQgTmF0aW9uYWwg +VGVjaG5pY2FsIENvb3JkaW5hdG9ycyAoTlRDKQ0KCQlMZWdhY3kgMTgwNjAwMTMgU2FudGEgQmFy +YmFyYSBDb2FzdGFsIGhhZCBhbiBhcmVhIHRoZSBzaXplIG9mIG9uZSAxMi1kaWdpdCBIVSB3aGlj +aCB3aWxsIGJlIGFnZ3JlZ2F0ZWQgd2l0aCBsZWdhY3kgMTgwNzAxMDEgVmVudHVyYSBhcyBhIHJl +c3VsdCBvZiBjb2FzdGFsIGltcGxlbWVudGF0aW9uLiBUaGlzIGlzIGFwcHJvdmVkIGJ5IHRoZSBp +bi1zdGF0ZSBXQkQgU3Rld2FyZCBhbmQgdGhlIFdCRCBOYXRpb25hbCBUZWNobmljYWwgQ29vcmRp +bmF0b3JzIChOVEMpDQoJCUxlZ2FjeSAxODA3MDEwNCBTYW50YSBNb25pY2EgQmF5IGhhZCBhbiBh +cmVhIHRoZSBzaXplIG9mIHNldmVyYWwgMTItZGlnaXQgSFVzIHdoaWNoIHdpbGwgYmUgYWdncmVn +YXRlZCB3aXRoIGxlZ2FjeSAxODA3MDEwNiBTYW4gR2FicmllbCBhcyBhIHJlc3VsdCBvZiBjb2Fz +dGFsIGltcGxlbWVudGF0aW9uLiBUaGlzIGlzIGFwcHJvdmVkIGJ5IHRoZSBpbi1zdGF0ZSBXQkQg +U3Rld2FyZCBhbmQgV0JEIE5hdGlvbmFsIFRlY2huaWNhbCBDb29yZGluYXRvcnMgKE5UQykNCgkJ +TGVnYWN5IDE4MTAwMjAwIGhhcyBub3cgYmVlbiBzdWJkaXZpZGUgaW50byAxODEwMDIwMSwgMTgx +MDAyMDIsIDE4MTAwMjAzLCBhbmQgMTgxMDAyMDQuIA0KCQlUaGUgbGVnYWN5IG5hbWUgZm9yIDE4 +MDEwMDIwMCBoYXMgYmVlbiByZXRhaW5lZCBhcyB0aGUgU2FsdG9uIFNlYSBmb3IgbmV3ICBjb2Rl +IDE4MTAwMjA0LiBOZXcgbmFtZXMgZm9yIHRoZSBvdGhlciBzdWJkaXZpc2lvbnMgaGF2ZSBiZWVu +IHJldmlld2VkIGFuZCBhY2NlcHRlZCBhcyBmb2xsb3dzOg0KCQkJMTgxMDAyMDEgV2hpdGV3YXRl +ciBSaXZlcg0KCQkJMTgxMDAyMDIgQ2Fycml6byBDcmVlaw0KCQkJMTgxMDAyMDMgU2FuIEZlbGlw +ZSBDcmVlaw0KCQlMZWdhY3kgMTgwNDAwMDIgYW5kIG5ldyAxODA0MDA1MSBuYW1lIE1pZGRsZSBT +YW4gSm9hcXVpbi1Mb3dlciBNZXJjZWQtTG93ZXIgU3RhbmlzbGF1cyB3YXMgY2hhbmdlIHRvIFJv +Y2sgQ3JlZWstRnJlbmNoIENhbXAgU2xvdWdoLg0KCQlMZWdhY3kgMTgwMjAxMjQgSG9uY3V0IEhl +YWR3YXRlcnMgbmFtZSBhbmQgY29kZSBoYXZlIGJlZW4gcmV0aXJlZC4gIEl0IHdhcyBhYnNvcmJl +ZCBpbiB0byBsZWdhY3kgMTgwMjAxMDYgTG93ZXIgRmVhdGhlciB0byBmb3JtIHRoZSBuZXcgMTgw +MjAxNTkuIFdCRCBOYXRpb25hbCBUZWNobmljYWwgQ29vcmRpbmF0b3JzIChOVEMpIHJlY29tbWVu +ZHMgdGhlIG5hbWUgcmV0YWluIHRoZSBjb21iaW5lZCBsZWdhY3kgbmFtZXMgb2YgSG9uY3V0IEhl +YWR3YXRlcnMtTG93ZXIgRmVhdGhlci4NCgkJTGVnYWN5IDE4MDIwMTIwIFVwcGVyIEJ1dHRlIGFu +ZCBsZWdhY3kgMTgwMjAxMDUgTG93ZXIgQnV0dGUgaGF2ZSBiZWVuIHJldGlyZWQuDQoJCVRoZSB0 +d28gaHlkcm9sb2dpYyB1bml0cyB3ZXJlIGNvbWJpbmVkIGluIHRvIHRoZSBuZXcgYWNjZXB0ZWQg +Y29kZSBhbmQgbmFtZSBvZiAxODAyMDE1OCBCdXR0ZSBDcmVlay4NCgkJTGVnYWN5IDE4MDIwMTE5 +IE1pbGwtQmlnIENoaWNvLCAxODAyMDEwMyBTYWNyYW1lbnRvLUxvd2VyIFRob21lcywgYW5kIDE4 +MDIwMTE0IFVwcGVyIEVsZGVyIFRob21lcyBoYXZlIGJlZW4gcmV0aXJlZC4gIFRoZSBhY2NlcHRl +ZCBuYW1lcyBhbmQgY29kZXMgZm9yIHRoZSBuZXdseSBkZWxpbmVhdGVkIGh5ZHJvbG9naWMgdW5p +dHMgdG8gcmVwbGFjZSB0aG9zZSBhcmVhcyBhcmUgMTgwMjAxNTcgQmlnIENoaWNvIENyZWVrLVNh +Y3JhbWVudG8gUml2ZXIsIDE4MDIwMTU2IFRob21lcyBDcmVlay1TYWNyYW1lbnRvIFJpdmVyLCBh +bmQgMTgwMjAxNTUgUGF5bmVzIENyZWVrLVNhY3JhbWVudG8gUml2ZXIuDQoJCVRoZSBmb2xsb3dp +bmcgbGVnYWN5IG5hbWVzIGFuZCBjb2RlcyBoYXZlIGJlZW4gcmV0aXJlZDogMTgwMjAxMTMgQ290 +dG9ud29vZCBIZWFkd2F0ZXJzLCAxODAyMDEwMiBMb3dlciBDb3R0b253b29kLCAxODAyMDEwMSBT +YWNyYW1lbnRvLUxvd2VyIENvdy1Mb3dlciBDbGVhciwgMTgwMjAxMTggVXBwZXIgQ293LUJhdHRs +ZSwgYW5kIDE4MDIwMTEyIFNhY3JhbWVudG8tVXBwZXIgQ2xlYXIuICBUaGUgYWNjZXB0ZWQgY29k +ZXMgZm9yIHRoZSBuZXdseSBkZWxpbmVhdGVkIGh5ZHJvbG9naWMgdW5pdHMgdGhhdCByZXBsYWNl +IHRob3NlIGFyZWFzIHdpbGwgYmUgMTgwMjAxNTEtMTgwMjAxNTQuICANCgkJCVRoZSBhcHByb3Zl +ZCBuYW1lcyBhcmU6DQoJCQkxODAyMDE1MSBDb3cgQ3JlZWsNCgkJCTE4MDIwMTUyIENvdHRvbndv +b2QgQ3JlZWsNCgkJCTE4MDIwMTUzIEJhdHRsZSBDcmVlaw0KCQkJMTgwMjAxNTQgQ2xlYXIgQ3Jl +ZWstU2FjcmFtZW50byBSaXZlciANCgkJMTgwMTAxMTEgY29kZSBhbmQgbmFtZSBoYXZlIGJlZW4g +cmV0aXJlZCBhbmQgdGhlIGFyZWEgaGFzIGJlZW4gc3ViZGl2aWRlZC4gQSBwb3J0aW9uIGlzIGlu +IDE4MDEwMTA5IEd1YWxhbGEtU2FsbW9uLCBhbmQgdGhlIG90aGVyIHBvcnRpb24gaW4gMTgwNTAw +MDUgVG9tYWxlcy1EcmFrZSBCYXlzDQoJCTE4MDIwMTA3IGNvZGUgYW5kIG5hbWUgaGF2ZSBiZWVu +IHJldGlyZWQgYW5kIHRoZSBhcmVhIGlzIG5vdyBpbmNsdWRlZCB3aXRoIDE4MDIwMTI1IFVwcGVy +IFl1YmENCgkJMTgwMjAxMDggY29kZSBhbmQgbmFtZSBoYXZlIGJlZW4gcmV0aXJlZCBhbmQgdGhl +IGFyZWEgaXMgbm93IGluY2x1ZGVkIHdpdGggMTgwMjAxMjYgVXBwZXIgQmVhcg0KCQkxODAyMDEx +MCBjb2RlIGFuZCBuYW1lIGhhdmUgYmVlbiByZXRpcmVkIGFuZCB0aGUgYXJlYSBpcyBub3cgaW5j +bHVkZWQgd2l0aCAxODAyMDExNiBVcHBlciBDYWNoZQ0KCQkxODAzMDAwOCBjb2RlIGFuZCBuYW1l +IGhhdmUgYmVlbiByZXRpcmVkIGFuZCB0aGUgYXJlYSBpcyBub3cgaW5jbHVkZWQgd2l0aCAxODAz +MDAxMiBUdWxhcmUgTGFrZSBCZWQNCgkJMTgwMzAwMTEgY29kZSBhbmQgbmFtZSBoYXZlIGJlZW4g +cmV0aXJlZCBhbmQgdGhlIGFyZWEgaGFzIGJlZW4gc3ViZGl2aWRlZC4gQSBwb3J0aW9uIGlzIGlu +IDE4MDMwMDEyIFR1bGFyZSBMYWtlIEJlZCwgYW5kIHRoZSBvdGhlciBwb3J0aW9uIGluIDE4MDMw +MDA5IFVwcGVyIERyeSANCgkJMTgwNDAwMDQgY29kZSBhbmQgbmFtZSBoYXZlIGJlZW4gcmV0aXJl +ZCBhbmQgdGhlIGFyZWEgaXMgbm93IHBhcnQgb2YgMTgwNDAwMTEgVXBwZXIgQ2FsYXZlcmFzIENh +bGlmb3JuaWENCgkJMTgwNDAwMDUgY29kZSBhbmQgbmFtZSBoYXZlIGJlZW4gcmV0aXJlZCBhbmQg +dGhlIGFyZWEgaXMgbm93IHBhcnQgb2YgMTgwNDAwMDMgU2FuIEpvYXF1aW4gRGVsdGEsIDE4MDQw +MDEyLCAxODA0MDAxMiBVcHBlciBNb2tlbHVtbmUsIGFuZCAxODA0MDAwMyBVcHBlciBDb3N1bW5l +cw0KCQkxODAyMDEwOSBjb2RlIGFuZCBuYW1lIGhhdmUgYmVlbiByZXRpcmVkIGFuZCB0aGUgYXJl +YSBpcyBub3cgcGFydCBvZiAxODAyMDE2MyBMb3dlciBTYWNyYW1lbnRvDQoJCTE4MDIwMTE3IGNv +ZGUgYW5kIG5hbWUgaGF2ZSBiZWVuIHJldGlyZWQgYW5kIHRoZSBhcmVhIGlzIG5vdyBwYXJ0IG9m +IDE4MDIwMTYyIFVwcGVyIFB1dGFoDQoJCTE4MDYwMDAxIGNvZGUgYW5kIG5hbWUgaGF2ZSBiZWVu +IHJldGlyZWQsIGFuZCB0aGUgYXJlYXMgYXJlIG5vdyBzdWJkaXZpZGVkIGJldHdlZW4gMTgwNTAw +MDYgU2FuIEZyYW5jaXNjbyBDb2FzdGFsIFNvdXRoIGFuZCAxODA2MDAxNSBNb250ZXJleSBCYXkN +CgkJMTgwNjAwMTEgY29kZSBhbmQgbmFtZSBoYXZlIGJlZW4gcmV0aXJlZCBhbmQgbm93IGlzIHN1 +YmRpdmlkZWQgYmV0d2VlbiAxODA2MDAxNSBNb250ZXJleSBCYXkgYW5kIDE4MDYwMDA1IFNhbGlu +YXMNCgkJMTgwNjAwMTIgY29kZSBhbmQgbmFtZSBoYXZlIGJlZW4gcmV0aXJlZCBhbmQgdGhlIGFy +ZWEgaXMgbm93IHBhcnQgb2YgMTgwNjAwMDYgQ2VudHJhbCBDb2FzdCBhbmQgMTgwNjAwMTUgTW9u +dGVyZXkgQmF5DQoNCglDb2xvcmFkbzoNCgkJTGVnYWN5IDE0MDEwMDA2IFBhcmFjaHV0ZS1Sb2Fu +IG5hbWUgYW5kIGNvZGUgaGF2ZSBiZWVuIHJldGlyZWQuIFRoaXMgYXJlYSBoYXMgYmVlbiBjb21i +aW5lZCB3aXRoIDE0MDEwMDA1IENvbG9yYWRvIEhlYWR3YXRlcnMtUGxhdGVhdS4NCg0KCUNvbm5l +Y3RpY3V0Og0KCQkwMTEwMDAwNyBjb2RlIGFuZCBuYW1lIGhhdmUgYmVlbiByZXRpcmVkIGFuZCB0 +aGUgYXJlYSBpcyBub3cgcGFydCBvZiAwMTEwMDA0IFF1aW5uaXBpYWMNCg0KCURlbGF3YXJlOg0K +CQkwMjA2MDAwNyBjb2RlIGFuZCBuYW1lIGhhdmUgYmVlbiByZXRpcmVkIGFuZCB0aGlzIGFyZWEg +bm93IGluY2x1ZGVkIHdpdGggMDIwODAxMTAgVGFuZ2llcg0KCQkwMjA2MDAwOCBjb2RlIGFuZCBu +YW1lIGhhdmUgYmVlbiByZXRpcmVkIGFuZCB0aGlzIGFyZWEgbm93IGluY2x1ZGVkIHdpdGggMDIw +ODAxMDkgTmFudGljb2tlDQoJCTAyMDYwMDA5IGNvZGUgYW5kIG5hbWUgaGF2ZSBiZWVuIHJldGly +ZWQgYW5kIHRoaXMgYXJlYSBpcyBub3cgcGFydCBvZiAwMjA4MDExMSBQb2tvbW9rZS1XZXN0ZXJu +IExvd2VyIERlbG1hcnZhIGFuZCAwMjA4MDExMCBUYW5naWVyDQoJCTAyMDYwMDEwIGNvZGUgYW5k +IG5hbWUgaGF2ZSBiZWVuIHJldGlyZWQgYW5kIHRoaXMgYXJlYSBpcyBub3cgcGFydCBvZiAwMjA0 +MDMwMyBDaGluY290ZWFndWUNCg0KCUZsb3JpZGE6DQoJCUxlZ2FjeSAwMzA5MDIwMiBFdmVyZ2xh +ZGVzIGhhcyBiZWVuIG1vZGlmaWVkIGFzIGZvbGxvd3M6DQoJCVRoZSBsYXJnZXN0IHBhcnQgb2Yg +MDMwOTAyMDIgRXZlcmdsYWRlcyBjYXJyaWVzIHRoZSBsZWdhY3kgY29kZSBhbmQgbmFtZS4NCgkJ +U3ViZGl2aWRlZCBvdXQgbmV3IFN1YmJhc2luIDAzMDkwMjA2IEZsb3JpZGEgU291dGhlYXN0IENv +YXN0DQoJCUNvbWJpbmVkIGFkZGl0aW9uYWwgc21hbGxlciBwb3J0aW9ucyBvZiAwMzA5MDIwMiB3 +aXRoIGFkamFjZW50IFN1YmJhc2lucy4NCg0KCUxvdWlzaWFuYToNCgkJMjAwOSAtIFVTR1MgV2F0 +ZXIgU2NpZW5jZSBDZW50ZXIsIFNhbHQgTGFrZSBDaXR5LCBVVC4gUmVjb2RlZCBhbGwgSFVDMTIg +Y29kZXMgYW5kIERTIGNvZGVzIGZvciAwODA4MDEwMCBBdGNoYWZhbGF5YSB0byAwODA4MDEwMSBB +dGNoYWZhbGF5YS4gMDgwODAxMDEgaXMgdGhlIGNvcnJlY3QgY29kZS4gRHVyaW5nIHRoZSBkZXZl +bG9wbWVudCBvZiB0aGUgV0JEIHRoZSAxMi1kaWdpdCBoeWRyb2xvZ2ljIHVuaXRzIHdlcmUgbWlz +Y29kZWQgYXMgMDgwODAxMDAuDQogICAgICAgIA0KCU1haW5lDQoJCVVwZGF0ZXMgYXQgdGhlIDgt +ZGlnaXQgb2NjdXJyZWQgYXMgYSByZXN1bHQgb2YgdGhlIFVTL0NhbmFkYSBoYXJtb25pemF0aW9u +IGVmZm9ydC4gU2VlIHByb2Nlc3Mgc2VjdGlvbiBvbiBDYW5hZGlhbiBoYXJtb25pemF0aW9uIGZv +ciB0aGVzZSBkZXRhaWxzLg0KCQ0KCU1hc3NhY2h1c2V0dHM6DQoJCTAxMDcwMDAyIGlzIHJldGFp +bmVkIGZvciB0aGUgaGVhZHdhdGVycyBvZiB0aGlzIG9yaWdpbmFsIGNvZGUsIGJ1dCDCviBvZiB0 +aGUgb3JpZ2luYWwgYXJlYSBpcyBub3cgY29kZWQgMDEwNzAwMDYuIFRoZSBhcmVhIG5vdyBjb2Rl +ZCAwMTA3MDAwNiByZXRhaW5lZCB0aGUgb3JpZ2luYWwgbmFtZSBmb3IgdGhlIGFyZWEgb2YgbGVn +YWN5IDAxMDcwMDAyIGFuZCBpcyBjYWxsZWQgTWVycmltYWNrLCB3aGVyZWFzIDAxMDcwMDAyIGlz +IG5vdCBjYWxsZWQgV2lubmlwZXNhdWtlZSBSaXZlciAob3RoZXIgc3RhdGUgZG9jdW1lbnRhdGlv +biBzdXBwb3J0aW5nIHRoaXMgZGVjaXNpb24pDQoNCglOZXcgSGFtcHNoaXJlOg0KCQlMZWdhY3kg +MDEwNzAwMDIgTWVycmltYWNrIHdhcyBzdWJkaXZpZGVkIGluIHRvIDAxMDcwMDAyIE1lcnJpbWFj +ayB0byB0aGUgTm9ydGggYW5kIDAxMDcwMDA2IE1lcnJpbWFjayBSaXZlciB0byB0aGUgU291dGgu +ICBUaGUgdGVjaG5pY2FsIHRlYW0gcmVxdWVzdHMgdGhhdCB0aGUgcG9ydGlvbiB0byB0aGUgU291 +dGggcmV0YWluIHRoZSBsZWdhY3kgY29kZSBhbmQgbmFtZSBvZiAwMTA3MDAwMiwgTWVycmltYWNr +LCBhbmQgdGhhdCB0aGUgbm9ydGhlcm4gaHlkcm9sb2dpYyB1bml0IHJlY2VpdmUgdGhlIGNvZGUg +YW5kIG5hbWUgMDEwNzAwMDYgV2lubmlwZXNhdWtlZSBSaXZlci4gIFRoZXJlIGlzIG5vIE1lcnJp +bWFjayBSaXZlciBpbiB0aGUgbm9ydGhlcm4gcG9ydGlvbiBhbmQgdGhlIHNvdXRoZXJuIHBvcnRp +b24gbW9zdCBjbG9zZWx5IHJlc2VtYmxlcyB0aGUgbGVnYWN5IGRlbGluZWF0aW9uLg0KCQ0KCQlB +ZGRpdGlvbmFsIHVwZGF0ZXMgYXQgdGhlIDgtZGlnaXQgb2NjdXJyZWQgYXMgYSByZXN1bHQgb2Yg +dGhlIFVTL0NhbmFkYSBoYXJtb25pemF0aW9uIGVmZm9ydC4gU2VlIHByb2Nlc3Mgc2VjdGlvbiBv +biBDYW5hZGlhbiBoYXJtb25pemF0aW9uIGZvciB0aGVzZSBkZXRhaWxzDQoNCglOZXcgWW9yazoN +CgkJTGVnYWN5IDA0MTUwMzA3IEVuZ2xpc2gtU2FsbW9uIHdhcyBzdWJkaXZpZGVkIGludG8gMDQx +NTAzMDcgU2FsbW9uIGFuZCAwNDE1MDMwOCBDaGF0ZWF1Z2F5LUVuZ2xpc2guIFRoZSBUZWNobmlj +YWwgVGVhbSBhY2NlcHRzIHRoaXMgY2hhbmdlLg0KCQ0KCQkyMDEwLSBFZGl0cyB3ZXJlIG1hZGUg +dG8gTGFrZSBDaGFtcGxhaW4gQmFzaW4gbW92aW5nIGl0IGZyb20gUmVnaW9uIDAyIHRvIFJlZ2lv +biAwNC4gVXBkYXRlIHRvIGRlbGluZWF0aW9uIGRhdGEgaW4gTGFrZSBDaGFtcGxhaW4gYXJlYSBv +biB0aGUgVVMgc2lkZSBhbmQgQ2FuYWRpYW4gc2lkZS4gQWxsIGxpbmVzIHdpdGhpbiBDYW5hZGEg +YXJlIGRyYWZ0IGRlbGluZWF0aW9ucyBvbmx5LiBUaGVzZSBib3VuZGFyaWVzIHdlcmUgYmFzZWQg +b24gQ2FuYWRhJ3MgMTo1MCwwMDAgTmF0aW9uYWwgSHlkcm9ncmFwaHkgTmV0d29yayBXb3JrIFVu +aXRzIG9yIHdlcmUgZGVsaW5lYXRlZCB1c2luZyBlaXRoZXIgMTo1MCwwMDAgc2NhbGUgdG9wb3Mg +b3IgQ0RFRCBlbGV2YXRpb24gZGF0YS4gVGhlc2UgYm91bmRhcmllcyBoYXZlIG5vdCBiZWVuIGZ1 +bGx5IHJldmlld2VkIG9yIGFwcHJvdmVkIGJ5IGVpdGhlciB0aGUgQ2FuYWRpYW4gZmVkZXJhbCBv +ciBwcm92aW5jaWFsIGFnZW5jaWVzIGFuZCBhcmUgc3ViamVjdCB0byBjaGFuZ2UuICBCb3JkZXIg +cG9seWdvbnMgYXJlIGJhc2VkIG9mZiBvZiB0aGVzZSBpbnRlcm5hbCBib3VuZGFyaWVzIHdpdGhp +biBDYW5hZGEgYW5kIHNvIGFyZSBhbHNvIHN1YmplY3QgdG8gY2hhbmdlIHdpdGhpbiBDYW5hZGEu +IEVkaXRzIG1hZGUgYnkgVVNHUyBTYWx0IExha2UgQ2l0eSwgV2F0ZXIgU2NpZW5jZSBDZW50ZXI6 +IHRvIHRoZSBMYWtlIENoYW1wbGFpbiBhbmQgc3Vycm91bmRpbmcgc3ViYmFzaW5zIHRvIHJlbW92 +ZSBhbGwgc2hvcmVsaW5lIHJlcHJlc2VudGF0aW9ucyBmcm9tIHRoZSBXQkQuIFRoZSBjb2Rlcywg +RFMgY29kZXMgYW5kIG5hbWVzIHdoZXJlIHVwZGF0ZWQgd2hlcmUgbmVjZXNzYXJ5Lg0KDQoJCTAy +MDEwMDA0IG5hbWUgYW5kIGNvZGUgaGF2ZSBiZWVuIHJldGlyZWQsIGFuZCB0aGlzIGFyZWEgd2Fz +IHN1YmRpdmlkZWQsIHBhcnQgaXMgaW4gMDQxNTA0MDQgQXVzYWJsZSBSaXZlciBhbmQgcGFydCBp +biAwNDE1MDQwOCBMYWtlIENoYW1wbGFpbi4NCgkJMDIwMTAwMDYgbmFtZSBhbmQgY29kZSBoYXZl +IGJlZW4gcmV0aXJlZCBhbmQgdGhpcyBhcmVhIHdhcyBzdWJkaXZpZGVkLiBQYXJ0IGlzIGluIDA0 +MTUwNDA2IFNhcmFuYWMgUml2ZXIgYW5kIHBhcnQgaXMgaW4gMDQxNTA0MDggTGFrZSBDaGFtcGxh +aW4uDQoJCTAyMDEwMDAxIG5hbWUgYW5kIGNvZGUgaGF2ZSBiZWVuIHJldGlyZWQgYW5kIHRoaXMg +YXJlYSB3YXMgc3ViZGl2aWRlZCBpbnRvIDA0MTUwNDAxIE1ldHRhd2VlIFJpdmVyIGFuZCAwNDE1 +MDQwOCBMYWtlIENoYW1wbGFpbg0KCQ0KCQlUaGUgbmV3IExha2UgQ2hhbXBsYWluIHVuaXQgMDQx +NTA0MDggaXMgbWFkZSB1cCBvZiBwYXJ0cyBvZiBvcmlnaW5hbCBIVUMyNTBLIHVuaXRzIDAyMDEw +MDAxLCAwMjAxMDAwMiwgMDIwMTAwMDMsIDAyMDEwMDA0LCAwMjAxMDAwNSwgMDIwMTAwMDYgYW5k +IDAyMDEwMDA3DQoJDQoJCUFkZGl0aW9uYWwgdXBkYXRlcyBhdCB0aGUgOC1kaWdpdCBvY2N1cnJl +ZCBhcyBhIHJlc3VsdCBvZiB0aGUgVVMvQ2FuYWRhIGhhcm1vbml6YXRpb24gZWZmb3J0LiBTZWUg +cHJvY2VzcyBzZWN0aW9uIG9uIENhbmFkaWFuIGhhcm1vbml6YXRpb24gZm9yIHRoZXNlIGRldGFp +bHMNCg0KCU5vcnRoIENhcm9saW5hOg0KCQlMZWdhY3kgc3ViYmFzaW4gMDMwMzAwMDEgYW5kIGxl +Z2FjeSBzdWJiYXNpbiAwMzAyMDEwNiBoYXZlIGJlZW4gY29tYmluZWQgYW5kIHJlY29tbWVuZGVk +IGZvciBhY2NlcHRhbmNlIGFzIGEgbmV3IDYtZGlnaXQgQmFzaW4gMDMwMjAzIE9uc2xvdyBCYXku +ICANCgkJTGVnYWN5IFN1YmJhc2luIDAzMDMwMDAxIE5ldyBoYXMgYmVlbiByZWNvZGVkIGFuZCBy +ZW5hbWVkIHRvIDAzMDIwMzAyIE5ldyBSaXZlci4gVGhlIHRlY2huaWNhbCB0ZWFtIGFjY2VwdHMg +dGhlIG5ldyBjb2RlIGFuZCBuYW1lLg0KCQlMZWdhY3kgU3ViYmFzaW4gMDMwMjAxMDYgQm9ndWUt +Q29yZSBTb3VuZHMgaGFzIGJlZW4gcmVjb2RlZCBhbmQgcmVuYW1lZCB0byAwMzAyMDMwMSBXaGl0 +ZSBPYWsgUml2ZXIuIFRoZSB0ZWNobmljYWwgdGVhbSBhY2NlcHRzIHRoZSBuZXcgY29kZSBhbmQg +bmFtZS4NCgkJMDMwNDAyMDcgY29kZSBhbmQgbmFtZSBhcmUgc3RpbGwgaW4gdXNlLCBidXQgdGhl +IHBvcnRpb24gdGhhdCBzdHJldGNoZXMgYWxvbmcgdGhlIGNvYXN0IGhhcyBiZWVuIGJyb2tlbiBv +dXQgdG8gYSBuZXcgMDMwNDAyMDggQ29hc3RhbCBDYXJvbGluYQ0KDQoJTm9ydGggRGFrb3RhOg0K +CQlMZWdhY3kgMTAxNjAwMDcgRWFzdCBNaXNzb3VyaSBDb3RlYXUsIGNoYW5nZWQgdG8gTm9ydGgg +Rm9yayBTbmFrZSBhcyB0aGF0IGlzIGEgYmV0dGVyIGh5ZHJvbG9naWMgcmVwcmVzZW50YXRpb24g +b2YgdGhlIGh5ZHJvbG9naWMgdW5pdC4NCgkJTGVnYWN5IDEwMTcwMTAzIFNvdXRoIEJpZyBTaW91 +eCBDb3RlYXUgbmFtZSBjaGFuZ2VkIHRvIExha2UgVGhvbXBzb24NCgkJTGVnYWN5IDEwMTcwMjAx +IE1pZGRsZSBCaWcgU2lvdXggQ290ZWF1IG5hbWUgY2hhbmdlZCB0byBVcHBlciBCaWcgU2lvdXgN +CgkJTGVnYWN5IDEwMTcwMjAyIFVwcGVyIEJpZyBTaW91eCBuYW1lIGNoYW5nZWQgdG8gTWlkZGxl +IEJpZyBTaW91eA0KCQlCZWNhdXNlIGxlZ2FjeSAxMDE3MDIwMyBMb3dlciBCaWcgU2lvdXggc2hv +dWxkIHN0YXkgdGhlIHNhbWUsIGl0IGRvZXNu4oCZdCBtYWtlIHNlbnNlIG5vdCB0byBoYXZlIGEg +bWlkZGxlIGFuZCBhbiB1cHBlci4gQWx0aG91Z2ggdGhlIGJvdW5kYXJpZXMgaGF2ZSBzaWduaWZp +Y2FudGx5IHJlbG9jYXRlZCwgaXQgc2VlbSBsaWtlIG1vc3QgdmlhYmxlIG9wdGlvbiBpcyB0byBy +ZXRhaW4gdGhlIFVwcGVyLCBNaWRkbGUsIExvd2VyIG5hbWluZyBjb252ZW50aW9uLg0KDQoJCUFk +ZGl0aW9uYWwgdXBkYXRlcyBhdCB0aGUgOC1kaWdpdCBvY2N1cnJlZCBhcyBhIHJlc3VsdCBvZiB0 +aGUgVVMvQ2FuYWRhIGhhcm1vbml6YXRpb24gZWZmb3J0LiBTZWUgcHJvY2VzcyBzZWN0aW9uIG9u +IENhbmFkaWFuIGhhcm1vbml6YXRpb24gZm9yIHRoZXNlIGRldGFpbHMNCg0KCU9yZWdvbjogDQoJ +CUxlZ2FjeSAxNzEwMDMwNCBDb29zIHdhcyBzdWJkaXZpZGVkIGludG8gMTcxMDAzMDQgQ29vcyB0 +byB0aGUgbm9ydGggYW5kIDE3MTAwMzA2IFNpeGVzIHRvIHRoZSBzb3V0aC4gVGhlIFRlY2huaWNh +bCB0ZWFtIGFjY2VwdHMgdGhpcyBjaGFuZ2UuDQoNCglTb3V0aCBDYXJvbGluYToNCgkJTGVnYWN5 +IDAzMDQwMjA3IENhcm9saW5hIENvYXN0YWwtU2FtcGl0IHdhcyBzdWJkaXZpZGVkIGludG8gYSBz +b3V0aGVybiBwb3J0aW9uIGNhbGxlZCAwMzA0MDIwNyBDYXJvbGluYSBDb2FzdGFsLVNhbXBpdCBh +bmQgYSBub3J0aGVybiBwb3J0aW9uIG5ld2x5IGNvZGVkIGFuZCBuYW1lZCAwMzA0MDIwOCBDb2Fz +dGFsIENhcm9saW5hLiBUaGUgdGVjaG5pY2FsIHRlYW0gcmVjb2duaXplcyB0aGlzIGFzIGFuIGFj +Y2VwdGFibGUgc29sdXRpb24sIGhvd2V2ZXIsIGZ1dHVyZSBjb2FzdGFsIGRlbGluZWF0aW9ucyBt +YXkgcmVxdWlyZSBhZGRpdGlvbmFsIG1vZGlmaWNhdGlvbi4NCgkJTGVnYWN5IDAzMDUwMjAyIFNv +dXRoIENhcm9saW5hIENvYXN0YWwgaGFzIG5vdyBiZWVuIHN1YmRpdmlkZWQgaW50byBzdWJiYXNp +bnMgMDMwNTAyMDIgU291dGggQ2Fyb2xpbmEgQ29hc3RhbCBhbmQgMDMwNTAyMDkgQnVsbHMgQmF5 +IHdpdGggYW4gYWRkaXRpb25hbCBwb3J0aW9uIG9mIDAzMDUwMjAyIGJlaW5nIGFnZ3JlZ2F0ZWQg +aW4gd2l0aCBsZWdhY3kgMDMwNTAyMDEgDQoJCUxlZ2FjeSAwMzA1MDIwOCBCcm9hZC1TdC4gSGVs +ZW5hIGhhcyBoYWQgdGhlIGZvbGxvd2luZyBtb2RpZmljYXRpb25zIHdoaWNoIHRoZSBOVEMgY29u +Y3VycyB3aXRoOg0KCQkwMzA1MDIwOCBCcm9hZC1TdC4gSGVsZW5hIGNvZGUgYW5kIG5hbWUgcmV0 +YWluZWQgaW50byBhIG11Y2ggc21hbGxlciB1bml0IGNhcHR1cmluZyBvbmx5IHRoZSBCcm9hZC1T +dC4gSGVsZW5hIFJpdmVycw0KCQkJU3ViZGl2aWRlZCBpbnRvIG5ldyAwMzA2MDExMCBDYWxpYm9n +dWUgU291bmQtV3JpZ2h0IFJpdmVyLCBhbmQgbm93IHBhcnQgb2YgdGhlIGFkamFjZW50IFN1YnJl +Z2lvbiB0byB0aGUgc291dGguDQoJCQlTdWJkaXZpZGVkIGludG8gbmV3IDAzMDUwMjEwIFN0LiBI +ZWxlbmEgSXNsYW5kIHBvcnRpb24gY29tYmluZWQgd2l0aCAwMzA1MDIwNyBTYWxrZWhhdGNoaWUu +DQoJCUxlZ2FjeSAwMzA1MDIwNSBuYW1lIGlzIGNoYW5nZWQgdG8gRm91ciBIb2xlIFN3YW1wIChm +cm9tIEVkaXN0by4uLnRoaXMgbmFtZSB3YXMgZmxpcHBlZCB3aXRoIHRoZSBoeWRyb2xvZ2ljIHVu +aXQgdGhlIHdhdGVyIGZlYXR1cmUgcmVzaWRlcyBpbikuIFRoZSBXQkQgTmF0aW9uYWwgVGVjaG5p +Y2FsIFRlYW0gcmVjb21tZW5kZWQgdGhhdCB0aGlzIG5hbWUgbm90IGJlIHJldXNlZCBhcyBpdCBo +YXMgYmVlbiBoaXN0b3JpY2FsbHkgYXNzaWduZWQgdG8gMDMwNTAyMDYsIGJ1dCBhbGwgaW4gc3Rh +dGUgaW50ZXJhZ2VuY3kgZm9sa3MgZmVsdCBzdHJvbmdseSB0aGF0IGl0IHNob3VsZCBiZSByZXVz +ZWQgYXMgdGhhdCBpcyBieSBmYXIgdGhlIHByZWRvbWluYW50IGZlYXR1cmUgZm9yIHRoZSBIVS4g +UmVwb3J0cyBzaW5jZSAyMDA1IHJlZmxlY3QgdGhpcy4NCgkJTGVnYWN5IDAzMDUwMjA2IG5hbWUg +aXMgY2hhbmdlZCB0byBFZGlzdG8gUml2ZXIgdG8gcmVmbGVjdCB0aGUgbWFqb3IgaHlkcm9sb2dp +YyBmZWF0dXJlLg0KDQoJU291dGggRGFrb3RhOg0KCQkyMDA5IC0gRWRpdHMgbWFkZSBieSBpbi1z +dGF0ZSBkYXRhIHN0ZXdhcmQ7IGFsbCBvZiBzdWItYmFzaW4gMTAxNjAwMTAgKG5vdyByZXRpcmVk +KSB3YXMgcmVjb2RlZCB0byAxMDE2MDAxMSAoTG93ZXIgSmFtZXMpOyBJbiBhZGRpdGlvbiB0byB0 +aGUgcmVjb2Rpbmcgb2YgdGhpcyA4LWRpZ2l0IGxldmVsIHVuaXQgaW4gdGhlIEphbWVzIEJhc2lu +LCB0aGlzIGdyb3VwIG9mIGVkaXRzIHByaW1hcmlseSBjb25zaXN0ZWQgb2YgbWlub3IgY29ycmVj +dGlvbnMgdG8gbGluZXdvcmsgYW5kIDEyLWRpZ2l0IGRvd25zdHJlYW0gY29kZXMsIHBvcHVsYXRp +bmcgbmNvbnRyYl9BIGZpZWxkcyBvZiBzZWxlY3RlZCAxMi1kaWdpdCB1bml0cywgYW5kIHR3ZWFr +aW5nIHNlbGVjdGVkIDV0aC0gYW5kIDZ0aC1sZXZlbCB1bml0IG5hbWVzIHRvIGZhY2lsaXRhdGUg +bWVyZ2luZyB3aXRoIEdOSVMuDQoJCQ0KCVRleGFzOg0KCQlMZWdhY3kxMzA3MDAwOCBMb3dlciBQ +ZWNvcyB3YXMgc3ViZGl2aWRlZCBpbnRvIGEgbm9ydGhlcm4gYW5kIHNvdXRoZXJuIHBvcnRpb24u +IFRoZSBub3J0aGVybiBwb3J0aW9uIHJldGFpbnMgdGhlIDEzMDcwMDA4IGNvZGUgYnV0IG5hbWUg +c2hvdWxkIGJlIFBlY29zLiBUaGUgbmV3IHN1YmRpdmlkZWQgMTMwNzAwMTIgaHlkcm9sb2dpYyB1 +bml0IHNob3VsZCBjYXJyeSB0aGUgbGVnYWN5IG5hbWUgTG93ZXIgUGVjb3MuDQoJCUxlZ2FjeSAx +MzA5MDAwMiBMb3dlciBSaW8gR3JhbmRlIGlzIG1pc3NpbmcgZnJvbSB0aGUgY3VycmVudCBXQkQu +DQoNCglWZXJtb250Og0KCQlVcGRhdGVkIDAxMTEwMDAwIGZyb20gUmVnaW9uIDAxIHRvIFJlZ2lv +biAwNCBhbmQgaXMgbm93IDA0MTUwNTAwIChTdC4gRnJhbmNvaXMgUml2ZXIpLiBDcmFpZyBKb2hu +c3RvbiAoVVNHUykgcG9pbnRlZCBvdXQgdGhhdCB0aGlzIHVuaXQgY29udGFpbnMgdGhlIFN0LiBG +cmFuY29pcyBSaXZlciB3aGljaCBmbG93cyB1cCBpbnRvIENhbmFkYSBhbmQgdGhlbiBkdW1wcyBp +bnRvIHRoZSBTdCBMYXdyZW5jZSBSaXZlci4gUmVnaW9uIDAxIGlzIE1haW5lIENvYXN0YWwgZHJh +aW5hZ2UncyB3aGlsZSByZWdpb24gMDQgaXMgU3QuIExhd3JlbmNlIGRyYWluYWdlJ3MsIHNvIHRo +aXMgdW5pdCByZWFsbHkgYmVsb25ncyBpbiByZWdpb24gMDQuIA0KCQ0KCQkyMDEwLSBFZGl0cyB3 +ZXJlIG1hZGUgdG8gTGFrZSBDaGFtcGxhaW4gQmFzaW4gbW92aW5nIGl0IGZyb20gUmVnaW9uIDAy +IHRvIFJlZ2lvbiAwNC4gVXBkYXRlIHRvIGRlbGluZWF0aW9uIGRhdGEgaW4gTGFrZSBDaGFtcGxh +aW4gYXJlYSBvbiB0aGUgVVMgc2lkZSBhbmQgQ2FuYWRpYW4gc2lkZS4gQWxsIGxpbmVzIHdpdGhp +biBDYW5hZGEgYXJlIGRyYWZ0IGRlbGluZWF0aW9ucyBvbmx5LiBUaGVzZSBib3VuZGFyaWVzIHdl +cmUgYmFzZWQgb24gQ2FuYWRhJ3MgMTo1MCwwMDAgTmF0aW9uYWwgSHlkcm9ncmFwaHkgTmV0d29y +ayBXb3JrIFVuaXRzIG9yIHdlcmUgZGVsaW5lYXRlZCB1c2luZyBlaXRoZXIgMTo1MCwwMDAgc2Nh +bGUgdG9wb3Mgb3IgQ0RFRCBlbGV2YXRpb24gZGF0YS4gVGhlc2UgYm91bmRhcmllcyBoYXZlIG5v +dCBiZWVuIGZ1bGx5IHJldmlld2VkIG9yIGFwcHJvdmVkIGJ5IGVpdGhlciB0aGUgQ2FuYWRpYW4g +ZmVkZXJhbCBvciBwcm92aW5jaWFsIGFnZW5jaWVzIGFuZCBhcmUgc3ViamVjdCB0byBjaGFuZ2Uu +ICBCb3JkZXIgcG9seWdvbnMgYXJlIGJhc2VkIG9mZiBvZiB0aGVzZSBpbnRlcm5hbCBib3VuZGFy +aWVzIHdpdGhpbiBDYW5hZGEgYW5kIHNvIGFyZSBhbHNvIHN1YmplY3QgdG8gY2hhbmdlIHdpdGhp +biBDYW5hZGEuIEVkaXRzIG1hZGUgYnkgVVNHUyBTYWx0IExha2UgQ2l0eSwgV2F0ZXIgU2NpZW5j +ZSBDZW50ZXI6IHRvIHRoZSBMYWtlIENoYW1wbGFpbiBhbmQgc3Vycm91bmRpbmcgc3ViYmFzaW5z +IHRvIHJlbW92ZSBhbGwgc2hvcmVsaW5lIHJlcHJlc2VudGF0aW9ucyBmcm9tIHRoZSBXQkQuIFRo +ZSBjb2RlcywgRFMgY29kZXMgYW5kIG5hbWVzIHdoZXJlIHVwZGF0ZWQgd2hlcmUgbmVjZXNzYXJ5 +Lg0KDQoJCTAyMDEwMDAxIG5hbWUgYW5kIGNvZGUgaGF2ZSBiZWVuIHJldGlyZWQgYW5kIHRoaXMg +YXJlYSB3YXMgc3ViZGl2aWRlZCBpbnRvIDA0MTUwNDAxIE1ldHRhd2VlIFJpdmVyIGFuZCAwNDE1 +MDQwOCBMYWtlIENoYW1wbGFpbi4NCgkJMDIwMTAwMDIgbmFtZSBhbmQgY29kZSBoYXZlIGJlZW4g +cmV0aXJlZCBhbmQgdGhpcyBhcmVhIHdhcyBzdWJkaXZpZGVkIGludG8gMDQxNTA0MDIgT3R0ZXIg +Q3JlZWsgYW5kIDA0MTUwNDA4IExha2UgQ2hhbXBsYWluLg0KCQkwMjAxMDAwMyBuYW1lIGFuZCBj +b2RlIGhhdmUgYmVlbiByZXRpcmVkIGFuZCB0aGlzIGFyZWEgd2FzIHN1YmRpdmlkZWQgaW50byAw +NDE1MDQwMyBXaW5vb3NraSBSaXZlciBhbmQgMDQxNTA0MDggTGFrZSBDaGFtcGxhaW4uDQoJCTAy +MDEwMDA1IG5hbWUgYW5kIGNvZGUgaGF2ZSBiZWVuIHJldGlyZWQgYW5kIHRoaXMgYXJlYSB3YXMg +c3ViZGl2aWRlZCBpbnRvIDA0MTUwNDA1IExhbW9pbGxlIFJpdmVyIGFuZCAwNDE1MDQwOCBMYWtl +IENoYW1wbGFpbi4NCgkJMDIwMTAwMDcgbmFtZSBhbmQgY29kZSBoYXZlIGJlZW4gcmV0aXJlZCBh +bmQgdGhpcyBhcmVhIHdhcyBzdWJkaXZpZGVkIGludG8gMDQxNTA0MDcgTWlzc2lxdW9pIFJpdmVy +IGFuZCAwNDE1MDQwOCBMYWtlIENoYW1wbGFpbi4gDQoJDQoJCVRoZSBuZXcgTGFrZSBDaGFtcGxh +aW4gdW5pdCAwNDE1MDQwOCBpcyBtYWRlIHVwIG9mIHBhcnRzIG9mIG9yaWdpbmFsIEhVQzI1MEsg +dW5pdHMgMDIwMTAwMDEsIDAyMDEwMDAyLCAwMjAxMDAwMywgMDIwMTAwMDQsIDAyMDEwMDA1LCAw +MjAxMDAwNiBhbmQgMDIwMTAwMDcuDQoJDQoJCUFkZGl0aW9uYWwgdXBkYXRlcyBhdCB0aGUgOC1k +aWdpdCBvY2N1cnJlZCBhcyBhIHJlc3VsdCBvZiB0aGUgVVMvQ2FuYWRhIGhhcm1vbml6YXRpb24g +ZWZmb3J0LiBTZWUgcHJvY2VzcyBzZWN0aW9uIG9uIENhbmFkaWFuIGhhcm1vbml6YXRpb24gZm9y +IHRoZXNlIGRldGFpbHMNCg0KCVdpc2NvbnNpbjoNCgkJTGVnYWN5IDA3MDkwMDAxVXBwZXIgUm9j +ayBrZWVwcyB0aGUgc2FtZSBjb2RlIGFuZCBuYW1lIGJ1dCB0aGUgb3JpZ2luYWwgaHlkcm9sb2dp +YyB1bml0IGRlbGluZWF0aW9uIGNoYW5nZWQgc2lnbmlmaWNhbnRseS4NCgkJTGVnYWN5IDA3MDkw +MDAyIENyYXdmaXNoIGtlZXBzIHRoZSBzYW1lIGNvZGUgYW5kIGlzIHJlbmFtZWQgdG8gTWlkZGxl +IFJvY2suIFRoZSBvcmlnaW5hbCBoeWRyb2xvZ2ljIHVuaXQgZGVsaW5lYXRpb24gY2hhbmdlZCBz +aWduaWZpY2FudGx5LjwvcHJvY2Rlc2M+DQogICAgICAgIDxwcm9jZGF0ZT4yMDE2PC9wcm9jZGF0 +ZT4NCiAgICAgIDwvcHJvY3N0ZXA+DQogICAgICA8cHJvY3N0ZXA+DQogICAgICAgIDxwcm9jZGVz +Yz5CZWxvdyBpcyBhIGxpc3Qgb2YgdXBkYXRlcyAoZnJvbSAyMDExIHRvIDIwMTYpIHJlc3VsdGlu +ZyBmcm9tIGhhcm1vbml6YXRpb24gd29yayB3aXRoIENhbmFkYS4NCglBbGFza2E6DQoJCUxlZ2Fj +eSAxOTAxMDEwMSBTb3V0aGVhc3QgTWFpbmxhbmQgbmFtZSBhbmQgY29kZSB3ZXJlIHJldGlyZWQg +YW5kIHRoZSBhcmVhIHN1YmRpdmlkZWQgaW50byBmb3VyIHVuaXRzLiBOZXcgY29kZXMgYW5kIG5h +bWVzIGFyZSBhcyBmb2xsb3dzIGFuZCBhY2NlcHRlZCBieSB0aGUgTmF0aW9uYWwgVGVjaG5pY2Fs +IFRlYW0gYW5kIGFwcHJvdmVkIHdpdGggQ2FuYWRpYW4gYW5kIEFsYXNrYSBwYXJ0bmVycyAoVVNG +Uyk6DQoJCQkxOTAxMDEwNCBCcmFkZmllbGQgQ2FuYWwNCgkJCTE5MDEwMTA1IEJ1cnJvdWdocyBC +YXkNCgkJCTE5MDEwMTA2IEhlYWR3YXRlcnMgUG9ydGxhbmQgQ2FuYWwNCgkJCTE5MDEwMTA3IE91 +dGxldCBQb3J0bGFuZCBDYW5hbA0KCQlMZWdhY3kgMTkwMTAyMDEgTWFpbmxhbmQgaGFkIGEgcG9y +dGlvbiBicm9rZW4gb3V0LiAxOTAxMDIwMSB3aWxsIGJlIHByZXNlcnZlZCBhbmQgdGhlIHNtYWxs +IHBpZWNlIGJyb2VrbiBvdXQgaW4gb3JkZXIgdG8gaGFybW9uaXplIHdpdGggQ2FuYWRhLiBUaGUg +c21hbGxlciBwaWVjZSB3aWxsIGhhdmUgdGhlIG5ldyBjb2RlIDE5MDEwMjA1IGFuZCB0aGUgbmFt +ZSB3aWxsIGJlIExvd2VyIElza3V0Lg0KCQlSZXZpc2VkIGFnYWluIDUvMzEvMTE6IDE5MDEwMjAx +IE1haW5sYW5kIHdhcyBicm9rZW4gaW50byB0aHJlZSBuZXcgdW5pdHMNCgkJCTE5MDEwMjA2IEhv +bGtoYW0gQmF5DQoJCQkxOTAxMDIwNyBTdGlraW5lIFJpdmVyDQoJCQkxOTAxMDIwOCBUaG9tYXMg +QmF5DQoJCUxlZ2FjeSAxOTAxMDMwMSBMeW5uIENhbmFsIG5vdyBoYXMgdGhlIFRha3UgUml2ZXIg +YnJva2VuIG91dCB0byBhY2NvbW1vZGF0ZSBDYW5hZGEuIFRha3UgUml2ZXIgd2lsbCBiZSBjb2Rl +IDE5MDEwMzA0LiBUaGUgTmF0aW9uYWwgVGVjaG5pY2FsIENvb3JkaW5hdG9ycyAoTlRDKSBhY2Nl +cHRzIHRoaXMuIFJldmlzZWQgYWdhaW4gNS8zMS8xMTooQUsgZ3JvdXAgY29uc3VsdGVkIGFsb25n +IHdpdGggUGV0ZSBTdGVldmVzLCBLaW0gSm9uZXMsIFN0ZXBoZW4gRGF3LCBLYXJlbiBIYW5zb24p +OiANCgkJMTkwNzAxMDEgQXRsaW4gTGFrZSB3YXMgYnJva2VuIG91dCBvZiB0aGUgbGVnYWN5IEx5 +bm4gQ2FuYWwgMTkwMTAzMDEgYW5kIGlzIHBhcnQgb2YgdGhlIG5ld2x5IGFjY2VwdGVkIFN1YnJl +Z2lvbiAxOTA3DQoJCUxlZ2FjeSAxOTAxMDMwMiBHbGFjaWVyIEJheSB3YXMgc3ViZGl2aWRlZCBh +bG9uZyB0aGUgcmlkZ2Ugc2VwYXJhdGluZyBvdXQgdGhlIG9jZWFuIGZsb3cuIFRoZSB1bml0IGJy +b2tlbiBvdXQgaXM6DQoJCTE5MDEwNDA2IFBhbG1hIEJheSAodGhpcyB1bml0IGFsc28gaW5jbHVk +ZXMgYSBwb3J0aW9uIG9mIHRoZSBvcmlnaW5hbCAxOTAxMDQwMSkNCgkJTm90ZTogTGVnYWN5IDE5 +MDEwMzAyIEdsYWNpZXIgQmF5IHdpbGwgYmUgcmV0YWluZWQgYWx0aG91Z2ggdGhlIGFyZWEgaXMg +bm93IHNtYWxsZXIuIE90aGVyIG9wdGlvbnMgZGlkbuKAmXQgbWFrZSBhcyBtdWNoIHNlbnNlLg0K +CQkNCgkJTGVnYWN5IDE5MDEwMzAzIENoaWxrYXQtU2thZ3dheSBSaXZlcnMgd2FzIHN1YmRpdmlk +ZWQgaW50bzoNCgkJCTE5MDcwMTAyIEJlbm5ldHQgTGFrZQ0KCQkJMTkwNzAxMDMgVGFnaXNoIExh +a2UNCgkJCTE5MDcwMTA0IFRha2hpbmkgUml2ZXINCgkJTm90ZTogMTkwMTAzMDMgQ2hpbGthdC1T +YWtnd2F5IFJpdmVycyBpcyByZXRhaW5lZA0KCQkNCgkJTGVnYWN5IDE5MDEwNDAxIFlha3V0YXQg +QmF5IG5hbWUgYW5kIGNvZGUgcmV0aXJlZCBhbmQgdGhlIGFyZWEgc3ViZGl2aWRlZCBpbnRvIDQg +bmV3IHVuaXRzLiBOZXcgY29kZXMgYW5kIG5hbWVzIGFyZSBhcyBmb2xsb3dzDQoJCQkxOTAxMDQw +MyBUYXRzaGVuc2hpbmkgUml2ZXINCgkJCTE5MDEwNDA0IEFsc2VrIFJpdmVyDQoJCQkxOTAxMDQw +NSBZYWt1dGF0IEJheS1HdWxmIG9mIEFsYXNrYQ0KCQkJMTkwMTA0MDYgUGFsbWEgQmF5IChUaGlz +IG5ldyB1bml0IGFsc28gaW5jbHVkZXMgYSBwb3J0aW9uIG9mIHRoZSBvcmlnaW5hbCAxOTAxMDMw +MikNCgkJCQkNCglJZGFobyBhbmQgV2FzaGluZ3RvbiAtIA0KCQkyMDEzIC0gVGhlIENvbHVtYmlh +IFJpdmVyIEJhc2luIGFuZCBQdWdldCBTb3VuZCBDb2FzdGFsIGFyZWEgd2FzIHVwZGF0ZWQgdG8g +aW5jbHVkZSB0aGUgaGFybW9uaXplZCA4LSwgMTAsIGFuZCAxMi1kaWdpdCBoeWRyb2xvZ2ljIHVu +aXRzIHdpdGhpbiBDYW5hZGEuIFRoaXMgaGFybW9uaXplZCBkYXRhIHdhcyBjcmVhdGVkIHdpdGgg +Y29udHJpYnV0aW9ucyBmcm9tIFVTIGFuZCBDYW5hZGlhbiBGZWRlcmFsLCBTdGF0ZSwgUHJvdmlu +Y2lhbCBhbmQgbG9jYWwgcGFydG5lcnMuIFRoZSBCcml0aXNoIENvbHVtYmlhIDIwSyBGcmVzaCBX +YXRlciBBdGxhcyB3YXRlcnNoZWQgZGF0YSBhbmQgREVNIGRhdGEgd2VyZSB1c2VkIHRvIGNyZWF0 +ZSB0aGUgdW5pdHMgd2l0aGluIENhbmFkYS4gQm9yZGVyIHVuaXRzIHdlcmUgdXBkYXRlZCB0aHJv +dWdoIGEgcmV2aWV3L2FncmVlbWVudCBwcm9jZXNzIHdpdGggbG9jYWwgYW5kIHN0YXRlL3Byb3Zp +bmNpYWwgcGFydG5lcnMgdXNpbmcgdGhlIGJlc3QgYXZhaWxhYmxlIGRhdGEgKERFTSwgRFJHLCBJ +bWFnZXJ5LCBGaWVsZCBWZXJpZmljYXRpb24pLiANCgkJRHVyaW5nIHRoZSBoYXJtb25pemF0aW9u +IGVmZm9ydCB0aGVyZSB3ZXJlIHNvbWUgOC1kaWdpdCB1cGRhdGVzIHRoYXQgd2VyZSBhZ3JlZWQg +dG8uDQoJCQlMZWdhY3kgMTcwMTAxMDEgVXBwZXIgS29vdGVuYWkgbmFtZSB3aWxsIGNoYW5nZSB0 +byBNaWRkbGUgS29vdGVuYWkgdG8gY29vcmRpbmF0ZSB3aXRoIENhbmFkYSBzaW5jZSB0aGVyZSBp +cyBhbiBVcHBlciBLb290ZW5heSBzb2xlbHkgaW4gQ2FuYWRhLiANCgkJCUxlZ2FjeSAxNzAxMDEw +MSBVcHBlciBLb290ZW5haSBib3VuZGFyeSBjaGFuZ2VkIHNsaWdodGx5LiBUaGUgV0JEIFRlY2hu +aWNhbCBUZWFtIHJlY29tbWVuZHMgcmV0YWluaW5nIHRoZSBsZWdhY3kgbmFtZSBhbmQgY29kZS4N +CgkJQSBuZXcgc3ViYmFzaW4gd2FzIGNyZWF0ZWQgYXMgYSByZXN1bHQgb2YgdGhlIGludGVybmF0 +aW9uYWwgYm9yZGVyIGhhcm1vbml6YXRpb24gd2hpY2ggc2xpZ2h0bHkgZ29lcyBpbnRvIHRoZSBV +LlMuICh0aGUgcG9ydGlvbiBvZiAxNzAxMDEwMSByZWZlcmVuY2VkIGFib3ZlKS4gVGhlIFdCRCBU +ZWNobmljYWwgVGVhbSByZWNvbW1lbmRzIGNvZGluZyB0aGlzIHVuaXQgd2l0aCB0aGUgbmV4dCBk +b3duIHNlcXVlbnRpYWwgY29kZSB3aGljaCB3b3VsZCBiZSAxNzAxMDEwNiBhbmQgdXNpbmcgdGhl +IG5hbWUgdGhhdCBDYW5hZGEgcmVmZXJzIHRvIHRoaXMgaHlkcm9sb2dpYyB1bml0IGFzIOKAnEVs +a+KAnS4NCgkJMTcxMTAwMDEgbGVnYWN5IG5hbWUg4oCcRnJhc2Vy4oCdIGlzIGJlaW5nIGNoYW5n +ZWQgdG8g4oCcU3VtYXMgUml2ZXLigJ0gdG8gbWF0Y2ggd2l0aCBDYW5hZGEsIGFuZCBiZWNhdXNl +IHRoZSBGcmFzZXIgUml2ZXIgZG9lc27igJl0IGZsb3cgdGhyb3VnaCB0aGlzIHVuaXQuDQoNCglN +b250YW5hOg0KCQkxMDAxIGZsb3dzIGludG8gQ2FuYWRhIGFuZCB0aGUgU2Fza2F0Y2hld2FuIFJp +dmVyIGFuZCBub3QgaW50byB0aGUgTWlzc291cmkgUml2ZXIgYXMgb3JpZ2luYWxseSB0aG91Z2h0 +LiBBcyBzdWNoIHRoaXMgNC1kaWdpdCBoeWRyb2xvZ2ljIHVuaXRzIHdhcyBtb3ZlZCBmcm9tIHJl +Z2lvbiAxMCB0byAwOS4NCgkJMDkwNCAtIFNhc2thdGNoZXdhbiBSaXZlcg0KCQkwOTA0MDAtIFVw +cGVyIFNvdXRoIFNhc2thdGNoZXdhbiBSaXZlciAoVGhpcyBtYXRjaGVzIHRoZSBDYW5hZGlhbiBG +REEgYXQgdGhlIFdTQ1NEQSBsZXZlbCAoc3ViIGRyYWluYWdlIGFyZWEpKS4NCgkJMTAwMTAwMDEg +bmFtZSBhbmQgY29kZSBoYXZlIGJlZW4gcmV0aXJlZCwgYW5kIHRoaXMgYXJlYSBpcyBub3cgMDkw +NDAwMDIgQmVsbHkNCgkJMTAwMTAwMDIgbmFtZSBhbmQgY29kZSBoYXZlIGJlZW4gcmV0aXJlZCwg +YW5kIHRoaXMgYXJlYSBpcyBub3cgMDkwNDAwMDEgU3QuIE1hcnlzDQoNCglNaW5uZXNvdGE6DQoJ +CTIwMTQgLSBSYWlueSBSaXZlciBCYXNpbiB3YXMgdXBkYXRlZCB0byBpbmNsdWRlIHRoZSBoYXJt +b25pemVkIDgtLCAxMC0gYW5kIDEyLWRpZ2l0IGh5ZHJvbG9naWMgdW5pdHMgd2l0aCBDYW5hZGEu +IFRoaXMgaGFybW9uaXplZCBkYXRhIHdhcyBjcmVhdGVkIG92ZXIgYSA2IG1vbnRoIHRpbWUgcGVy +aW9kIHdpdGggY29vcGVyYXRpb24gZnJvbSBGZWRlcmFsLCBTdGF0ZSwgUHJvdmluY2lhbCBhbmQg +TG9jYWwgUGFydG5lcnMuIA0KCQlTb21lIG9mIHRoZSBib3VuZGFyaWVzIHdpdGhpbiBNTiB3ZXJl +IHVwZGF0ZWQgdXNpbmcgdGhlIE1OIExpREFSIGRhdGEuIFRoZSBNTiBMaURBUiB3YXMgYWxzbyB1 +c2VkIGluIHRoZSBjcmVhdGlvbiBvZiBib3VuZGFyaWVzIHdpdGhpbiBDYW5hZGEgd2hlbiB0aGUg +TGlEQVIgZGF0YSBvdmVybGFwcGVkIGludG8gQ2FuYWRhLiBUaGUgb3RoZXIgYm91bmRhcmllcyB3 +aXRoaW4gQ2FuYWRhIHdlcmUgZ2VuZXJhdGVkIHVzaW5nIHRoZSBwcm92aW5jZSBvZiBPbnRhcmlv +4oCZcyAyMEsgREVNIGFuZCBIeWRyb2dyYXBoeSBkYXRhLg0KCQlUaGVyZSB3ZXJlIHNvbWUgOC1k +aWdpdCB1cGRhdGVzIGFzIGEgcmVzdWx0IG9mIHRoZSBoYXJtb25pemF0aW9uIGVmZm9ydC4NCgkJ +MDkwMzAwMDQgVXBwZXIgUmFpbnkgaGFzIGJlZW4gcmV0aXJlZA0KCQkwOTAzMDAwNCBpcyBub3cg +YSBwYXJ0IG9mIDA5MDMwMDA4IHRoZSBMb3dlciBSYWlueQ0KCQkyIG5ldyA4LWRpZ2l0IHVuaXRz +IHdlcmUgYnJva2VuIG91dCBpbiBDYW5hZGENCgkJCTA5MDMwMDEwIOKAkyBCaWcgVHVydGxlIFJp +dmVyLVJhaW55IExha2UNCgkJCTA5MDMwMDExIOKAkyBTaG9hbCBMYWtlDQoJCQkNCglOb3J0aCBE +YWtvdGE6DQoJCUxlZ2FjeSAwOTAyMDMxMyBQZW1iaW5hIHdhcyBzdWJkaXZpZGVkIGludG8gdHdv +IG5ldyB1bml0cy4gDQoJCVRoZSBsZWdhY3kgbmFtZSBhbmQgY29kZSB3ZXJlIHJldGlyZWQuIA0K +CQlUaGUgbmV3IGNvZGVzIGFuZCBuYW1lcyBhcmU6DQoJCQkwOTAyMDMxNSBVcHBlciBQZW1iaW5h +IFJpdmVyDQoJCQkwOTAyMDMxNiBMb3dlciBQZW1iaW5hIFJpdmVyDQoNCgkJMjAxNC0gU291cmlz +IFJpdmVyIEJhc2luIHdhcyB1cGRhdGVkIHRvIGluY2x1ZGUgdGhlIGhhcm1vbml6ZWQgOC0sIDEw +LSBhbmQgMTItZGlnaXQgaHlkcm9sb2dpYyB1bml0cyB3aXRoIENhbmFkYS4gVGhpcyBoYXJtb25p +emVkIGRhdGEgd2FzIGNyZWF0ZWQgb3ZlciBhIDYgbW9udGggdGltZSBwZXJpb2Qgd2l0aCBjb29w +ZXJhdGlvbiBmcm9tIEZlZGVyYWwsIFN0YXRlLCBQcm92aW5jaWFsIGFuZCBMb2NhbCBQYXJ0bmVy +cy4NCgkJVGhlcmUgd2VyZSBzb21lIDgtZGlnaXQgdXBkYXRlcyBhcyBhIHJlc3VsdCBvZiB0aGUg +aGFybW9uaXphdGlvbiBlZmZvcnQuDQoJCUxlZ2FjeSAwOTAxMDAwMSBVcHBlciBTb3VyaXMgaGFz +IG5vdyBiZWVuIHN1YmRpdmlkZWQuIFRoYXQgY29kZSBhbmQgbmFtZSBoYXZlIGJlZW4gcmV0aXJl +ZCBhbmQgdGhlIG5ldyB1bml0cyBhcmU6DQoJCQkwOTAxMDAwNiBMb25nIENyZWVrDQoJCQkwOTAx +MDAwNyBIZWFkd2F0ZXJzIFNvdXJpcyBSaXZlcg0KCQkJMDkwMTAwMDggTW9vc2UgTW91bnRhaW4g +Q3JlZWstU291cmlzIFJpdmVyDQoNCglOb3J0aCBEYWtvdGEgYW5kIE1pbm5lc290dGE6IFJlZCBS +aXZlciBCYXNpbg0KCQlMZWdhY3kgMDkwMjAzMTEgTG93ZXIgUmVkIG5hbWUgaXMgYmVpbmcgY2hh +bmdlZCB0byBNaWRkbGUgUmVkIGluIG9yZGVyIHRvIGhhcm1vbml6ZSB3aXRoIENhbmFkYS4gTG93 +ZXIgUmVkIGlzIHRoZSBCYXNpbiBuYW1lIGZvciB0aGlzIGVudGlyZSBhcmVhIGJ1dCB0aGUgaW1w +YWN0IHRvIGNoYW5nZSBhdCB0aGF0IGxldmVsIGlzbuKAmXQga25vd24gc28gd29u4oCZdCBjaGFu +Z2UuDQoJCQ0KCQkyMDE2IC0gUmVkIFJpdmVyIEJhc2luIHdhcyB1cGRhdGVkIHRvIGluY2x1ZGUg +dGhlIGhhcm1vbml6ZWQgOC0sIDEwLSwgYW5kIDEyLWRpZ2l0IGh5ZHJvbG9naWMgdW5pdHMgd2l0 +aGluIENhbmFkYS4gU29tZSBvZiB0aGUgYm91bmRhcmllcyB3aXRoaW4gTU4gYW5kIE5EIHdlcmUg +dXBkYXRlZCB1c2luZyBMaWRhciBkYXRhLiBMaWRhciBkYXRhIHdhcyBhbHNvIHVzZWQgaW4gdGhl +IGRldmVsb3BtZW50IG9mIGh5ZHJvbG9naWNhbCB1bml0cyB3aXRoaW4gQ2FuYWRhLiBXaGVyZSBM +aWRhciBkYXRhIGRpZCBub3QgZXhpc3QgdGhlIHByb3ZpbmNlIG9mIE1hbml0b2JhIHByb3ZpZGVk +IGVpdGhlciAxOjIwLDAwMCBzY2FsZSBvciAxOjUwLDAwMCBzY2FsZSBkaWdpdGFsIGVsZXZhdGlv +biBkYXRhIGZvciBib3VuZGFyeSBkZWxpbmVhdGlvbnMuDQoNCglNYWluZQ0KCQlBbGwgSFVDOCBi +b3VuZGFyaWVzIHdlcmUgdXBkYXRlZCB3aXRoIHRoZSBIYXJtb25pemVkIFVTL0NBTiBib3JkZXIg +aW50byBDYW5hZGEuDQoJCUNvZGluZyB3YXMgdXBkYXRlZCBhcyBuZWVkZWQuDQoJCTAxMDEwMDAx +IHdhcyBzdWJkaXZpZGVkIGludG8gNiBuZXcgdW5pdHMuDQoJCTAxMDEwMDAxIGNvZGUgcmV0aXJl +ZA0KCQkwMTAxMDAwMSBIVUM4IG5hbWUgcmV0aXJlZCAoVXBwZXIgU3QuIEpvaG4pDQoJCU5ldyBj +b2RlcyBhbmQgSFVDOCBuYW1lcw0KCQkJMDEwMTAwMDYg4oCTIEhlYWR3YXRlcnMgU2FpbnQgSm9o +biBSaXZlcg0KCQkJMDEwMTAwMDcg4oCTIEJpZyBCbGFjayBSaXZlci1TYWludCBKb2huIFJpdmVy +DQoJCQkwMTAxMDAwOCDigJMgU3QuIEZyYW5jaXMgUml2ZXItU2FpbnQgSm9obiBSaXZlcg0KCQkJ +MDEwMTAwMDkg4oCTIExpdHRsZSBSaXZlci1TYWludCBKb2huIFJpdmVyDQoJCQkwMTAxMDAxMCDi +gJMgQmVjYWd1aW1lYyBTdHJlYW0tU2FpbnQgSm9obiBSaXZlciAoVGhpcyB1bml0IG5vdyBjb250 +YWlucyBhIHBvcnRpb24gb2YgdGhlIG9yaWdpbmFsIDAxMDEwMDA1KQ0KCQkJMDEwMTAwMTEg4oCT +IEtlc3dpY2sgUml2ZXItU2FpbnQgSm9obiBSaXZlcg0KDQoJCTAxMDEwMDA0IC0gQm91bmRhcnkg +d2l0aGluIENhbmFkYSB3YXMgdXBkYXRlZCB3aXRoIGhhcm1vbml6ZWQgYm91bmRhcnkuDQoJCTAx +MDEwMDA1IC0gQm91bmRhcnkgd2FzIHVwZGF0ZWQgd2l0aCBVUy9DQU4gaGFybW9uaXplZCBib3Vu +ZGFyeS4gQSBzbWFsbCBwb3J0aW9uIG9mIDAxMDEwMDA1IHdhcyBtb3ZlZCBpbnRvIHRoZSBuZXcg +MDEwMTAwMTAgc28gdGhhdCAwMTAxMDAwNSBpcyBhIHN0YW5kYXJkIEhVQyA4IHVuaXQgZm9yIHRo +ZSBNZWR1eG5la2VhZyBSaXZlci4NCgkJMDEwMjAwMDEgLSBPcmlnaW5hbCBXQkQgYm91bmRhcnkg +YmV0d2VlbiB0aGUgVVMgYW5kIENhbmFkYSB1c2VkIHRoZSBpbnRlcm5hdGlvbmFsIGJvdW5kYXJ5 +LiBIb3dldmVyIHdoZW4gdGhpcyBib3VuZGFyeSB3YXMgY29tcGFyZWQgdG8gdGhlIDE6MjQsMDAw +IHNjYWxlIERSR3MgaW4gdGhlIFVTIGFuZCAxOjIwLDAwMCBoeXBzb2dyYXBoeSBpbiBDYW5hZGEg +dGhlIGludGVybmF0aW9uYWwgYm91bmRhcnkgYW5kIHJpZGdlbGluZXMgd2VyZSBub3QgY29pbmNp +ZGVudC4gVGhlIEJvdW5kYXJ5IHdhcyB1cGRhdGVkIHRvIHRoZSByaWRnZWxpbmUuICAgQ29kaW5n +IG5vdCB1cGRhdGVkLg0KCQkwMTAzMDAwMSAtIE9yaWdpbmFsIFdCRCBib3VuZGFyeSBiZXR3ZWVu +IHRoZSBVUyBhbmQgQ2FuYWRhIHVzZWQgdGhlIGludGVybmF0aW9uYWwgYm91bmRhcnkuIEhvd2V2 +ZXIgd2hlbiB0aGlzIGJvdW5kYXJ5IHdhcyBjb21wYXJlZCB0byB0aGUgMToyNCwwMDAgc2NhbGUg +RFJHcyBpbiB0aGUgVVMgYW5kIDE6MjAsMDAwIGh5cHNvZ3JhcGh5IGluIENhbmFkYSB0aGUgaW50 +ZXJuYXRpb25hbCBib3VuZGFyeSBhbmQgcmlkZ2VsaW5lcyB3ZXJlIG5vdCBjb2luY2lkZW50LiBU +aGUgQm91bmRhcnkgd2FzIHVwZGF0ZWQgdG8gdGhlIHJpZGdlbGluZS4gIENvZGluZyBub3QgdXBk +YXRlZC4NCgkJMDEwMzAwMDIgLSBPcmlnaW5hbCBXQkQgYm91bmRhcnkgYmV0d2VlbiB0aGUgVVMg +YW5kIENhbmFkYSB1c2VkIHRoZSBpbnRlcm5hdGlvbmFsIGJvdW5kYXJ5LiBIb3dldmVyIHdoZW4g +dGhpcyBib3VuZGFyeSB3YXMgY29tcGFyZWQgdG8gdGhlIDE6MjQsMDAwIHNjYWxlIERSR3MgaW4g +dGhlIFVTIGFuZCAxOjIwLDAwMCBoeXBzb2dyYXBoeSBpbiBDYW5hZGEgdGhlIGludGVybmF0aW9u +YWwgYm91bmRhcnkgYW5kIHJpZGdlbGluZXMgd2VyZSBub3QgY29pbmNpZGVudC4gVGhlIEJvdW5k +YXJ5IHdhcyB1cGRhdGVkIHRvIHRoZSByaWRnZWxpbmUuICBDb2Rpbmcgbm90IHVwZGF0ZWQuDQoJ +CTAxMDQwMDAxIC0gT3JpZ2luYWwgV0JEIGJvdW5kYXJ5IGJldHdlZW4gdGhlIFVTIGFuZCBDYW5h +ZGEgdXNlZCB0aGUgaW50ZXJuYXRpb25hbCBib3VuZGFyeS4gSG93ZXZlciB3aGVuIHRoaXMgYm91 +bmRhcnkgd2FzIGNvbXBhcmVkIHRvIHRoZSAxOjI0LDAwMCBzY2FsZSBEUkdzIGluIHRoZSBVUyBh +bmQgMToyMCwwMDAgaHlwc29ncmFwaHkgaW4gQ2FuYWRhIHRoZSBpbnRlcm5hdGlvbmFsIGJvdW5k +YXJ5IGFuZCByaWRnZWxpbmVzIHdlcmUgbm90IGNvaW5jaWRlbnQuIFRoZSBCb3VuZGFyeSB3YXMg +dXBkYXRlZCB0byB0aGUgcmlkZ2VsaW5lLiAgQ29kaW5nIG5vdCB1cGRhdGVkLg0KCQkwMTA1MDAw +MSAtIEJvdW5kYXJ5IHdhcyB1cGRhdGVkIHdpdGggVVMvQ0FOIGhhcm1vbml6ZWQgYm91bmRhcnku +ICBUaGlzIGJvdW5kYXJ5IHdhcyBkZXZlbG9wZWQgZHVyaW5nIHRoZSBpbml0aWFsIFN0LiBDcm9p +eCBwaWxvdCBhbmQgaW5jbHVkZXMgdXBkYXRlcyB3aXRoaW4gdGhlIFVTIGFzIHdlbGwgYXMgQ2Fu +YWRhLiBDb2RpbmcgbGVmdCBhcyBpcw0KCQkwMTA1MDAwMiAtIFRoZSBoYXJtb25pemVkIGJvdW5k +YXJ5IGZvciAwMTA1MDAwNCByZXF1aXJlZCB1cGRhdGVzIHRvIDAxMDUwMDAyLiANCgkJQSBwb3J0 +aW9uIG9mIDAxMDUwMDAyIHdhcyBtb3ZlZCB0byAwMTA1MDAwNCB0byBhY2NvbW1vZGF0ZSB0aGUg +bmV3IGhhcm1vbml6ZWQgYm91bmRhcnkuDQoJCVRoaXMgcmVxdWlyZWQgcmUtY29kaW5nIG9mIHRo +ZSBlbnRpcmUgMDEwNTAwMDIuDQoJCTAxMDUwMDA0IC0gQm91bmRhcnkgd2FzIHVwZGF0ZWQgd2l0 +aCBVUy9DQU4gaGFybW9uaXplZCBib3VuZGFyeS4gQSBwb3J0aW9uIG9mIDAxMDUwMDAyIHdhcyBt +b3ZlZCBpbnRvIHRoaXMgdW5pdC4gIENvZGVzIHdlcmUgdXBkYXRlZCB0byByZWZsZWN0IHRoaXMg +Ym91bmRhcnkgY2hhbmdlLg0KDQoJCTA0MTUwNjAwIOKAkyBDaGF1ZGllcmUgUml2ZXINCgkJVGhp +cyBpcyBhIG5ldyB1bml0IHRoYXQgd2FzIGNyZWF0ZWQgd2hlbiB0aGUgV0JEIGJvdW5kYXJ5IHdh +cyBtb3ZlZCBmcm9tIHRoZSBpbnRlcm5hdGlvbmFsIGJvdW5kYXJ5IG9uIHRvIHRoZSByaWRnZWxp +bmVzDQoJCU9yaWdpbmFsIFdCRCBib3VuZGFyeSBiZXR3ZWVuIHRoZSBVUyBhbmQgQ2FuYWRhIHVz +ZWQgdGhlIGludGVybmF0aW9uYWwgYm91bmRhcnkuIEhvd2V2ZXIgd2hlbiB0aGlzIGJvdW5kYXJ5 +IHdhcyBjb21wYXJlZCB0byB0aGUgMToyNCwwMDAgc2NhbGUgRFJHcyBpbiB0aGUgVVMgYW5kIDE6 +MjAsMDAwIGh5cHNvZ3JhcGh5IGluIENhbmFkYSB0aGUgaW50ZXJuYXRpb25hbCBib3VuZGFyeSBh +bmQgcmlkZ2VsaW5lcyB3ZXJlIG5vdCBjb2luY2lkZW50LiBUaGUgQm91bmRhcnkgd2FzIHVwZGF0 +ZWQgdG8gdGhlIHJpZGdlbGluZS4NCgkJMDQxNTA1MDAgLSBCb3VuZGFyeSB3YXMgdXBkYXRlZCB3 +aXRoIFVTL0NBTiBoYXJtb25pemVkIGJvdW5kYXJ5LiBDb2RpbmcgbGVmdCBhcyBpcw0KCQ0KCQ0K +CU5ldyBIYW1wc2hpcmUNCgkJMDEwNDAwMDEgLSBPcmlnaW5hbCBXQkQgYm91bmRhcnkgYmV0d2Vl +biB0aGUgVVMgYW5kIENhbmFkYSB1c2VkIHRoZSBpbnRlcm5hdGlvbmFsIGJvdW5kYXJ5LiBIb3dl +dmVyIHdoZW4gdGhpcyBib3VuZGFyeSB3YXMgY29tcGFyZWQgdG8gdGhlIDE6MjQsMDAwIHNjYWxl +IERSR3MgaW4gdGhlIFVTIGFuZCAxOjIwLDAwMCBoeXBzb2dyYXBoeSBpbiBDYW5hZGEgdGhlIGlu +dGVybmF0aW9uYWwgYm91bmRhcnkgYW5kIHJpZGdlbGluZXMgd2VyZSBub3QgY29pbmNpZGVudC4g +VGhlIEJvdW5kYXJ5IHdhcyB1cGRhdGVkIHRvIHRoZSByaWRnZWxpbmUuICBDb2Rpbmcgbm90IHVw +ZGF0ZWQuDQoJCTA0MTUwNTAwIC0gQm91bmRhcnkgd2FzIHVwZGF0ZWQgd2l0aCBVUy9DQU4gaGFy +bW9uaXplZCBib3VuZGFyeS4gQ29kaW5nIGxlZnQgYXMgaXMNCgkNCglOZXcgWW9yaw0KCQkwNDE1 +MDMwMSAtIFN1YmRpdmlkZWQgaW50byAyIG5ldyB1bml0cw0KCQkwNDE1MDMwMSBjb2RlIHJldGly +ZWQgDQoJCTA0MTUwMzAxIEhVQzggbmFtZSByZXRpcmVkIChVcHBlciBTdC4gTGF3cmVuY2UpDQoJ +CU5ldyBDb2RlcyBhbmQgSFVDOCBuYW1lcw0KCQkJMDQxNTAzMDkg4oCTIEhlYWR3YXRlcnMgU3Qu +IExhd3JlbmNlIFJpdmVyDQoJCQkwNDE1MDMxMCDigJMgUmFpc2luIFJpdmVyLVN0LiBMYXdyZW5j +ZSBSaXZlcg0KDQoJCTA0MTUwMzA2IC0gQm91bmRhcnkgd2FzIHVwZGF0ZWQgd2l0aCBVUy9DQU4g +aGFybW9uaXplZCBib3VuZGFyeS4gQ29kaW5nIGxlZnQgYXMgaXMNCgkJMDQxNTAzMDcgLSBCb3Vu +ZGFyeSB3YXMgdXBkYXRlZCB3aXRoIFVTL0NBTiBoYXJtb25pemVkIGJvdW5kYXJ5LiBDb2Rpbmcg +bGVmdCBhcyBpcw0KCQkwNDE1MDMwOCAtIEJvdW5kYXJ5IHdhcyB1cGRhdGVkIHdpdGggVVMvQ0FO +IGhhcm1vbml6ZWQgYm91bmRhcnkuIENvZGluZyBsZWZ0IGFzIGlzDQoJCTA0MTUwNDA4IC0gQm91 +bmRhcnkgd2FzIHVwZGF0ZWQgd2l0aCBVUy9DQU4gaGFybW9uaXplZCBib3VuZGFyeS4gQ29kaW5n +IGxlZnQgYXMgaXMNCgkJMDQxNTA0MDkgLSBCb3VuZGFyeSB3YXMgdXBkYXRlZCB3aXRoIFVTL0NB +TiBoYXJtb25pemVkIGJvdW5kYXJ5LiBDb2RpbmcgbGVmdCBhcyBpcw0KCQkNCglWZXJtb250DQoJ +CTA0MTUwNDA3IC0gQm91bmRhcnkgd2FzIHVwZGF0ZWQgd2l0aCBVUy9DQU4gaGFybW9uaXplZCBi +b3VuZGFyeS4gQ29kaW5nIGxlZnQgYXMgaXMNCgkJMDQxNTA0MDggLSBCb3VuZGFyeSB3YXMgdXBk +YXRlZCB3aXRoIFVTL0NBTiBoYXJtb25pemVkIGJvdW5kYXJ5LiBDb2RpbmcgbGVmdCBhcyBpcw0K +CQkwNDE1MDQwOSAtIEJvdW5kYXJ5IHdhcyB1cGRhdGVkIHdpdGggVVMvQ0FOIGhhcm1vbml6ZWQg +Ym91bmRhcnkuIENvZGluZyBsZWZ0IGFzIGlzDQoJCTA0MTUwNTAwIC0gQm91bmRhcnkgd2FzIHVw +ZGF0ZWQgd2l0aCBVUy9DQU4gaGFybW9uaXplZCBib3VuZGFyeS4gQ29kaW5nIGxlZnQgYXMgaXMN +Cg0KDQoJR3JlYXQgTGFrZXMNCgkJVGhlIGJvdW5kYXJpZXMgZm9yIExha2UgT250YXJpbyAoMDQx +NTIwMCksIExha2UgRXJpZSAoMDQxMjAyMDApLCBMYWtlIEh1cm9uICgwNDA4MDMwMCkgYW5kIExh +a2UgU3VwZXJpb3IgKDA0MDIwMzAwKSB3ZXJlIHVwZGF0ZWQgdXNpbmcgdGhlIG5ldyBpbmxhbmQg +bGFrZXMgY29hc3RhbCBtZXRob2QuIEFsbCB1cGRhdGVzIHdlcmUgY29vcmRpbmF0ZWQgd2l0aCB0 +aGUgV0JEIHN0YXRlIHN0ZXdhcmQgZm9yIGVhY2ggYWRqYWNlbnQgc3RhdGUuIFRoZSBhcmVhIHdp +dGhpbiBXaXNjb25zaW4gd2FzIGV4Y2x1ZGVkIHBlciB0aGUgc3RhdGUgcGFydG5lcuKAmXMgcmVx +dWVzdC4gQWxsIHN1cnJvdW5kaW5nIDgtZGlnaXRzICh1bml0cyB0b3VjaGluZyB0aGUgbGFrZXMp +IHdlcmUgcmV2aWV3ZWQgYW5kIHVwZGF0ZWQgYXMgd2VsbC4gPC9wcm9jZGVzYz4NCiAgICAgICAg +PHByb2NkYXRlPjIwMTY8L3Byb2NkYXRlPg0KICAgICAgPC9wcm9jc3RlcD4NCiAgICAgIDxwcm9j +c3RlcD4NCiAgICAgICAgPHByb2NkZXNjPk1leGljbyBIYXJtb25pemF0aW9uICgyMDEwLTIwMTQp +DQoJDQoJMjAxMCAtIEhhcm1vbml6YXRpb24gd2l0aCBUZXhhcyBhbmQgTWV4aWNvOyBIVUMxMiBw +b2x5Z29ucyBhbmQgbGluZSByZXdvcmsgYnkgVVNHUyBXYXRlciBTY2llbmNlIENlbnRlciwgU2Fs +dCBMYWtlIENpdHksIFVULg0KCQ0KCTIwMTQgLSBIYXJtb25pemVkIDgtLCAxMCBhbmQgMTItZGln +aXQgdW5pdHMgZm9yIGFsbCBib3JkZXIgOC1kaWdpdCB1bml0cyB3aXRoIE1leGljbyB3ZXJlIGlu +Y29ycG9yYXRlZCBpbnRvIHRoZSBXQkQuIFRoZXNlIGRhdGFzZXRzIHdlcmUgZGV2ZWxvcGVkIHRo +cm91Z2ggYSBjb29yZGluYXRlZCBlZmZvcnQgYmV0d2VlbiB0aGUgVVNHUyBhbmQgSU5FR0kgYWxv +bmcgd2l0aCBpbnB1dCBmcm9tIFN0YXRlIGFuZCBsb2NhbCBwYXJ0bmVycy4gRHVlIHRvIHRoZSBo +YXJtb25pemF0aW9uIGVmZm9ydCBzb21lIDgtZGlnaXQgYm91bmRhcmllcyBtYXkgaGF2ZSBiZWVu +IGFkanVzdGVkLiBJbiBhZGRpdGlvbiB0byB0aGlzIHRoZSAxMC0gYW5kIDEyLWRpZ2l0IGJvdW5k +YXJpZXMgYWxvbmcgdGhlIGJvcmRlciBtaWdodCBoYXZlIGFsc28gYmVlbiBhZGp1c3RlZCBiYXNl +ZCBvbiB0aGUgYXZhaWxhYmlsaXR5IG9mIGJldHRlciBiYXNlIGluZm9ybWF0aW9uIHdpdGhpbiBN +ZXhpY28gcHJvdmlkZWQgYnkgSU5FR0kuPC9wcm9jZGVzYz4NCiAgICAgICAgPHByb2NkYXRlPjIw +MTQ8L3Byb2NkYXRlPg0KICAgICAgPC9wcm9jc3RlcD4NCiAgICAgIDxwcm9jc3RlcD4NCiAgICAg +ICAgPHByb2NkZXNjPlRoZSBmb2xsb3dpbmcgc2VjdGlvbiBkZXNjcmliZXMgdXBkYXRlcyB0byB0 +aGUgV0JEIGRhdGEgbW9kZWwgKDIwMTItMjAxNikuDQoJCQ0KCUp1bHkgMjAxMiANCglOYXRpb25h +bCByZXNwb25zaWJpbGl0eSBmb3Igc3Rld2FyZHNoaXAgYW5kIG1haW50ZW5hbmNlIG9mIHRoZSBX +QkQgdHJhbnNmZXJyZWQgZnJvbSBOUkNTIHRvIHRoZSBVU0dTLiBBcyBhIHJlc3VsdCB0aGUgV0JE +IGRhdGEgbW9kZWwgd2FzIHVwZGF0ZWQgYW5kIHRoZSBkYXRhIHdhcyBpbmNvcnBvcmF0ZWQgaW50 +byB0aGUgTkhEIGRhdGFiYXNlLg0KCVdCRCBtb2RlbCB1cGRhdGVkIGJhc2VkIG9uIGlucHV0IGZy +b20gTlJDUywgVVNHUywgTkhEIHByb2dyYW0gYW5kIHVzZXIgY29tbXVuaXR5Lg0KCVdCRCBwb2x5 +Z29uIGRhdGFzZXQgc3ViZGl2aWRlZCBpbnRvIGluZGl2aWR1YWwgcG9seWdvbiBkYXRhc2V0cyBm +b3IgZWFjaCBsZXZlbCBvZiBoeWRyb2xvZ2ljIHVuaXRzLiAgDQoJVHdvIGFkZGl0aW9uYWwgZGF0 +YXNldHMgYWRkZWQgZm9yIHRoZSBuZXh0IDIgbGV2ZWxzIG9mIHN1YmRpdmlzaW9ucyAoMTQtIGFu +ZCAxNi1kaWdpdCkgYnV0IGFyZSBub3QgcmVxdWlyZWQgZm9yIGVhY2ggc3RhdGUgdG8gcG9wdWxh +dGUgdGhlc2UuDQoJQXR0cmlidXRlIHRhYmxlcyBmb3IgcG9seWdvbnMgYW5kIGxpbmVzIHdlcmUg +dXBkYXRlZCB3aXRoIHNvbWUgZmllbGRzIGJlaW5nIGFkZGVkLCByZW5hbWVkIG9yIHJlbW92ZWQu +IFNlZSBiZWxvdyBmb3IgYSBsaXN0IG9mIGNoYW5nZXMuDQoNCglXQkQgTGluZSBhdHRyaWJ1dGUg +dGFibGUgY2hhbmdlczogDQoJT2xkIE1vZGVsOg0KCQlIVV9MRVZFTCANCgkJTElORVNPVVJDRQ0K +CQlNRVRBX0lEIOKAkyByZW1vdmVkIOKAkyBGZWF0dXJlIGxldmVsIG1ldGFkYXRhIGZ1bmN0aW9u +YWxpdHkgaXMgYWRkZWQgdG8gdHJhY2sgdXBkYXRlcyBpbiB0aGUgbmV3IG1vZGVsDQoJCUxFRlRf +SFVDXzgg4oCTIHJlbW92ZWQNCgkJUklHSFRfSFVDXzgg4oCTIHJlbW92ZWQNCg0KCU5ldyBNb2Rl +bDoNCgkJUGVybWFuZW50X0lkZW50aWZpZXIg4oCTIE5ldyBmaWVsZCBmb3IgZmVhdHVyZSBsZXZl +bCBtZXRhZGF0YQ0KCQlTb3VyY2VfRmVhdHVyZUlEIOKAkyBOZXcgZmllbGQgZm9yIGZlYXR1cmUg +bGV2ZWwgbWV0YWRhdGEgDQoJCU1ldGFfU291cmNlSUQg4oCTIE5ldyBmaWVsZCBmb3IgZmVhdHVy +ZSBsZXZlbCBtZXRhZGF0YQ0KCQlTb3VyY2VfRGF0YURlc2Mg4oCTIE5ldyBmaWVsZCBmb3IgZmVh +dHVyZSBsZXZlbCBtZXRhZGF0YQ0KCQlTb3VyY2VfT3JpZ2luYXRvciDigJMgTmV3IGZpZWxkIGZv +ciBmZWF0dXJlIGxldmVsIG1ldGFkYXRhDQoJCUhVX0xldmVsDQoJCUhVX0NsYXNzIOKAkyBOZXcg +ZmllbGQgcG9wdWxhdGVkIHdpdGggdGhlIG51bWJlciBvZiBkaWdpdHMgb2YgdGhlIGh5ZHJvbG9n +aWMgdW5pdA0KCQlMb2FkRGF0ZSDigJMgTmV3IGZpZWxkIGZvciBmZWF0dXJlIGxldmVsIG1ldGFk +YXRhDQoJCUxpbmVTb3VyY2UNCg0KCVdCRCBQb2x5Z29uIGF0dHJpYnV0ZSB0YWJsZSBjaGFuZ2Vz +Og0KCUNvZGVzIGFuZCBuYW1lcyBtb3ZlZCBmcm9tIHNpbmdsZSBwb2x5Z29uIGRhdGFzZXQgdG8g +dGhlIGFwcHJvcHJpYXRlIGh5ZHJvbG9naWMgdW5pdCBkYXRhc2V0IGZvciBlYWNoIGxldmVsDQoJ +T2xkIE1vZGVsOg0KCQlIVUNfOCDigJMgbW92ZWQgdG8gOC1kaWdpdCBwb2x5Z29uIGRhdGFzZXQN +CgkJSFVDXzEwIOKAkyBtb3ZlZCB0byAxMC1kaWdpdCBwb2x5Z29uIGRhdGFzZXQNCgkJSFVDXzEy +IOKAkyBtb3ZlZCB0byAxMi1kaWdpdCBwb2x5Z29uIGRhdGFzZXQNCgkJQUNSRVMg4oCTIHJlLW5h +bWVkIHRvIEFSRUFfQUNSRVMNCgkJTkNPTlRSQl9BDQoJCUhVXzEwX0dOSVMg4oCTIFJlcGxhY2Vk +IHdpdGggR2F6X0lEDQoJCUhVXzEyX0dOSVMg4oCTIFJlcGxhY2VkIHdpdGggR2F6X0lEDQoJCUhV +XzEwX0RTIOKAkyBSZW1vdmVkIGZyb20gbmV3IG1vZGVsDQoJCUhVXzEwX05BTUUg4oCTIG1vdmVk +IHRvIDEwLWRpZ2l0IHBvbHlnb24gZGF0YXNldA0KCQlIVV8xMF9NT0Qg4oCTIG1vdmVkIHRvIDEw +LWRpZ2l0IHBvbHlnb24gZGF0YXNldA0KCQlIVV8xMF9UWVBFIOKAkyBtb3ZlZCB0byAxMC1kaWdp +dCBwb2x5Z29uIGRhdGFzZXQNCgkJSFVfMTJfRFMg4oCTIG1vdmVkIHRvIDEyLWRpZ2l0IHBvbHln +b24gZGF0YXNldA0KCQlIVV8xMl9OQU1FIOKAkyBtb3ZlZCB0byAxMi1kaWdpdCBwb2x5Z29uIGRh +dGFzZXQNCgkJSFVfMTJfTU9EIOKAkyBtb3ZlZCB0byAxMi1kaWdpdCBwb2x5Z29uIGRhdGFzZXQN +CgkJSFVfMTJfVFlQRSDigJMgbW92ZWQgdG8gMTItZGlnaXQgcG9seWdvbiBkYXRhc2V0DQoJCU1F +VEFfSUQgLSByZW1vdmVkIOKAkyBGZWF0dXJlIGxldmVsIG1ldGFkYXRhIGZ1bmN0aW9uYWxpdHkg +aXMgYWRkZWQgdG8gdHJhY2sgdXBkYXRlcyBpbiB0aGUgbmV3IG1vZGVsDQoJCVNUQVRFUw0KDQoJ +TmV3IE1vZGVsOg0KCUZpZWxkcyBpbmNsdWRlZCBpbiBhbGwgbGV2ZWxzIG9mIGh5ZHJvbG9naWMg +dW5pdCBwb2x5Z29uIGRhdGFzZXRzLg0KCQlHYXpfSUQg4oCTIE9sZCBtb2RlbCB3YXMgdGhlIEdO +SVMgZmllbGQNCgkJQXJlYV9BY3JlcyAtIFJlbmFtZWQNCgkJQXJlYV9TcUttIOKAkyBOZXcgZmll +bGQNCgkJU3RhdGVzDQoJCUxvYWREYXRlLSBOZXcgZmllbGQNCgkJSFVDXyIjZGlnaXQiIC0gRm9y +IEV4YW1wbGU6IEhVQzEyDQoJCUhVXyIjZGlnaXQiX05hbWUgLSBGb3IgRXhhbXBsZTogSFVfMTJf +TmFtZQ0KDQoJRmllbGRzIGluY2x1ZGVkIHdpdGggdGhlIDEwLSwgMTItLCAxNC0gYW5kIDE2LSBk +aWdpdCBwb2x5Z29uIGRhdGFzZXRzLg0KCQlIVV8iI2RpZ2l0Il9UeXBlIC0gRm9yIEV4YW1wbGUg +SFVfMTJfVHlwZQ0KCQlIVV8iI2RpZ2l0Il9Nb2QgLSBGb3IgRXhhbXBsZSBIVV8xMl9Nb2QNCg0K +CUZpZWxkcyBpbmNsdWRlZCB3aXRoIHRoZSAxMi0sIDE0LSBhbmQgMTYtIGRpZ2l0IHBvbHlnb24g +ZGF0YXNldHMuDQoJCU5Db250cmJfQWNyZXMNCgkJTkNvbnRyYl9TcUttIOKAkyBOZXcgZmllbGQN +CgkJDQogICAgVGFibGVzIA0KCU5ldyBNb2RlbDoNCgkJRXh0ZXJuYWxJRENyb3Nzd2Fsaw0KCQlG +ZWF0dXJldG9IVU1vZA0KCQlGZWF0dXJlVG9NZXRhZGF0YQ0KCQlNZXRhX1Byb2Nlc3NEZXRhaWwN +CgkJTWV0YV9Tb3VyY2VEZXRhaWwNCgkJUHJvY2Vzc2luZ1BhcmFtZXRlcnMNCgkJVXBkYXRlU3Rh +dHVzDQoJCVdCRF9BdHRyaWJ1dGVzDQoJCVdCRF9OYXYNCgkNCglPY3RvYmVyIDIwMTIJDQoJQ2hh +bmdlcyB0byB0aGUgV0JEIGRhdGEgbW9kZWwgaW5jbHVkZSB0aGUgZWxpbWluYXRpb24gb2YgdGhl +IHVuZGVyc2NvcmUgIl8iIGluIGZpZWxkIGFuZCB0YWJsZSBuYW1lcywgc3dpdGNoaW5nIHRvIGNh +bWVsQ2FzZS4gT3RoZXIgY2hhbmdlcyB0byB0aGUgV0JEIGRhdGEgbW9kZWwgaW5jbHVkZSB0aGUg +ZWxpbWluYXRpb24gb2YgdGhlIFdCRFBvaW50IHRhYmxlLCB0aGUgV0JEUG9pbnRFdmVudCB0YWJs +ZSwgYW5kIHRoZSBXQkRBdHJpYnV0ZXMgdGFibGUuICBGaWVsZHMgaGF2ZSBiZWVuIGFkZGVkIHRv +IHRoZSBXQkRIVTEyIHBvbHlnb24gZmVhdHVyZSBkYXRhc2V0IHRoYXQgYWxsb3cgbWV0YWRhdGEg +cmVjb3JkIGxpbmtpbmcgYW5kIGFsc28gaW5jbHVkZSB0aGUgZG93bnN0cmVhbSBhdHRyaWJ1dGUu +ICBOV0lTIGRyYWluYWdlIGFyZWEgbGluZSBhbmQgcG9seWdvbiBmZWF0dXJlIGNsYXNzZXMgaGF2 +ZSBiZWVuIGFkZGVkIGFsc28uDQoJCQ0KCU5ldyBNb2RlbDoNCglXQkQgbGluZSBkYXRhc2V0DQoJ +CVROTUlEIOKAkyBVc2UgdG8gYmUgUGVybWFuZW50SUQNCgkJSFVMZXZlbA0KCQlIVUNsYXNzIOKA +kyBOZXcgZmllbGQgcG9wdWxhdGVkIHdpdGggdGhlIG51bWJlciBvZiBkaWdpdHMgb2YgdGhlIGh5 +ZHJvbG9naWMgdW5pdA0KCQlIVU1vZA0KCQlMaW5lU291cmNlDQoJCUxvYWREYXRlIOKAkyBOZXcg +ZmllbGQgZm9yIGZlYXR1cmUgbGV2ZWwgbWV0YWRhdGENCgkJKFNvdXJjZV9GZWF0dXJlSUQsIE1l +dGFfU291cmNlSUQsIFNvdXJjZV9EYXRhRGVzYywgU291cmNlX09yaWdpbmF0b3IgZmllbGRzIHJl +bW92ZWQgZnJvbSBXQkRMaW5lIGRhdGFzZXQpDQoJCQ0KCVdCRCBwb2x5Z29uIGRhdGFzZXQNCglG +aWVsZHMgaW5jbHVkZWQgaW4gYWxsIGxldmVscyBvZiBoeWRyb2xvZ2ljIHVuaXQgcG9seWdvbiBk +YXRhc2V0cy4NCgkJVE5NSUQg4oCTIE5ldyBmaWVsZCBmb3IgZmVhdHVyZSBsZXZlbCBtZXRhZGF0 +YSANCgkJTWV0YVNvdXJjZUlEIOKAkyBOZXcgZmllbGQgZm9yIGZlYXR1cmUgbGV2ZWwgbWV0YWRh +dGENCgkJU291cmNlRGF0YURlc2Mg4oCTIE5ldyBmaWVsZCBmb3IgZmVhdHVyZSBsZXZlbCBtZXRh +ZGF0YQ0KCQlTb3VyY2VPcmlnaW5hdG9yIOKAkyBOZXcgZmllbGQgZm9yIGZlYXR1cmUgbGV2ZWwg +bWV0YWRhdGENCgkJU291cmNlRmVhdHVyZUlEIOKAkyBOZXcgZmllbGQgZm9yIGZlYXR1cmUgbGV2 +ZWwgbWV0YWRhdGENCgkJTG9hZERhdGUg4oCTIE5ldyBmaWVsZCBmb3IgZmVhdHVyZSBsZXZlbCBt +ZXRhZGF0YQ0KCQlHTklTX0lEID0gcmVwbGFjZXMgR2F6X0lEIA0KCQlBcmVhQWNyZXMgDQoJCUFy +ZWFTcUttIA0KCQlTdGF0ZXMNCgkJTG9hZERhdGUNCgkJSFVDImRpZ2l0IiAtIGZvciBleGFtcGxl +OiBIVUMxMiANCgkJTmFtZQ0KCQkNCglGaWVsZHMgaW5jbHVkZWQgd2l0aCB0aGUgMTAtLCAxMi0s +IDE0LSBhbmQgMTYtIGRpZ2l0IHBvbHlnb24gZGF0YXNldHMuDQoJCUhVVHlwZQ0KCQlIVU1vZA0K +DQoJRmllbGRzIGluY2x1ZGVkIHdpdGggdGhlIDEyLSwgMTQtIGFuZCAxNi0gZGlnaXQgcG9seWdv +biBkYXRhc2V0cy4NCgkJTkNvbnRyYkFjcmVzDQoJCU5Db250cmJTcUttIA0KDQoJRmllbGQgaW5j +bHVkZWQgd2l0aCB0aGUgMTItZGlnaXQgcG9seWdvbiBkYXRhc2V0LiANCgkJVG9IVUMg4oCTIFRo +aXMgYXR0cmlidXRlIHdhcyBpbmNsdWRlZCBpbiB0aGUgb3JpZ2luYWwgV0JEIGRhdGEgbW9kZWwg +YXMgSFVfMTJfRFMgYW5kIHJlcHJlc2VudHMgdGhlIGNvZGUgb2YgdGhlIG5leHQgdW5pdCBkb3du +c3RyZWFtLiBUaGUgdmFsdWVzIGZvciB0aGlzIGZpZWxkIHdlcmUgcG9wdWxhdGVkIGZvciB0aGUg +bGFzdCB2ZXJzaW9uIG9mIHRoZSBkYXRhc2V0IGluIHRoZSBvbGQgbW9kZWwgYnkgbGlua2luZyB0 +aGUgMiB0YWJsZXMgYnkgdGhlIDEyLWRpZ2l0IGNvZGUgYW5kIGNhbGN1bGF0aW5nIHRoZSB2YWx1 +ZSBvdmVyLg0KDQoJTldJU0RyYWluYWdlQXJlYSBwb2x5Z29uIGRhdGFzZXQgYWRkZWQgYXMgYSBw +bGFjZSBob2xkZXIgZm9yIHdoZW4gdGhlc2UgZGF0YXNldHMgYXJlIGdlbmVyYXRlZC4NCglBdHRy +aWJ1dGUgRmllbGRzOg0KCQlUTk1JRA0KCQlNZXRhU291cmNlSUQNCgkJU291cmNlRGF0YURlc2MN +CgkJU291cmNlT3JpZ2luYXRvcg0KCQlTb3VyY2VGZWF0dXJlSUQNCgkJTG9hZERhdGUNCgkJUmVm +ZXJlbmNlVE5NSUQNCgkJU2l0ZUlEDQoJCUFnZW5jeUNvZGUNCgkJU2l0ZU51bWJlcg0KCQlTdGF0 +aW9uTmFtZQ0KCQlUb3RhbERyYWluYWdlQXJlYQ0KCQlDb250cmlidXRpbmdEcmFpbmFnZUFyZWEN +Cg0KCU5XSVNCb3VuZGFyeSBsaW5lIGRhdGFzZXQgYWRkZWQgYXMgYSBwbGFjZSBob2xkZXIgZm9y +IHdoZW4gdGhlc2UgZGF0YXNldHMgYXJlIGdlbmVyYXRlZC4NCglBdHRyaWJ1dGUgRmllbGRzOg0K +CQlUTk1JRA0KCQlNZXRhU291cmNlSUQNCgkJU291cmNlRGF0YURlc2MNCgkJU291cmNlT3JpZ2lu +YXRvcg0KCQlTb3VyY2VGZWF0dXJlSUQNCgkJTG9hZERhdGUNCgkJUmVmZXJlbmNlVE5NSUQNCg0K +CU5vbkNvbnRyaWJ1dGluZ0RyYWluYWdlQXJlYSBwb2x5Z29uIGRhdGFzZXQgYWRkZWQgYXMgYSBw +bGFjZSBob2xkZXIgZm9yIHdoZW4gdGhlc2UgZGF0YXNldHMgYXJlIGdlbmVyYXRlZC4NCglBdHRy +aWJ1dGUgRmllbGRzOg0KCQlUTk1JRA0KCQlNZXRhU291cmNlSUQNCgkJU291cmNlRGF0YURlc2MN +CgkJU291cmNlT3JpZ2luYXRvcg0KCQlTb3VyY2VGZWF0dXJlSUQNCgkJTG9hZERhdGUNCiAgICAg +IA0KCTIwMTMgDQoJQ2hhbmdlcyB0byB0aGUgV0JEIGRhdGEgbW9kZWwgaW5jbHVkZSB1cGRhdGVz +IHRvIHRoZSBmaWVsZCBmb3IgdGhlIE5vbkNvbnRyaWJ1dGluZ0RyYWluYWdlQXJlYSBwb2x5Z29u +IGRhdGFzZXQsIE5XSVNCb3VuZGFyeSBsaW5lIGRhdGFzZXQgYW5kIHRoZSBOV0lTRHJhaW5hZ2VB +cmVhIHBvbHlnb24gZGF0YXNldC4gVGhpcyBpbmNsdWRlcyB0aGUgYWRkaXRpb24gb2YgbmV3IGZp +ZWxkcyBhbmQgdGhlIHJlLW5hbWluZyBvZiBzb21lIG9mIHRoZSBleGlzdGluZyBmaWVsZHMuDQoJ +CQ0KCU5XSVNEcmFpbmFnZUFyZWEgcG9seWdvbiBkYXRhc2V0OiANCglBdHRyaWJ1dGUgRmllbGRz +Og0KCQlUTk1JRA0KCQlNZXRhU291cmNlSUQNCgkJU291cmNlRGF0YURlc2MNCgkJU291cmNlT3Jp +Z2luYXRvcg0KCQlTb3VyY2VGZWF0dXJlSUQNCgkJTG9hZERhdGUNCgkJUmVmZXJlbmNlVE5NSURO +SERQb2ludEV2ZW50IOKAkyBSZW5hbWVkIGZyb20gUmVmZXJlbmNlVE5NSUQNCgkJQWdlbmN5Q29k +ZQ0KCQlTaXRlTnVtYmVyDQoJCVN0YXRpb25OYW1lDQoJCUNvbnRyaWJ1dGluZ0RyYWluYWdlQXJl +YUFjcmVzIOKAkyBPcmlnaW5hbGx5IGNhbGxlZCBDb250cmlidXRpbmdEcmFpbmFnZUFyZWENCgkJ +VG90YWxEcmFpbmFnZUFyZWFBY3JlcyDigJMgT3JpZ2luYWxseSBjYWxsZWQgVG90YWxEcmFpbmFn +ZUFyZWENCgkJQ29udHJpYnV0aW5nRHJhaW5hZ2VBcmVhU3FLbSDigJMgTmV3IGZpZWxkDQoJCVRv +dGFsRHJhaW5hZ2VBcmVhU3FLbSDigJMgTmV3IGZpZWxkDQoJCVNpdGVJRCAtIFJlbW92ZWQNCg0K +CU5XSVNCb3VuZGFyeSBsaW5lIGRhdGFzZXQ6IA0KCUF0dHJpYnV0ZSBGaWVsZHM6DQoJCVROTUlE +DQoJCU1ldGFTb3VyY2VJRA0KCQlTb3VyY2VEYXRhRGVzYw0KCQlTb3VyY2VPcmlnaW5hdG9yDQoJ +CVNvdXJjZUZlYXR1cmVJRA0KCQlMb2FkRGF0ZQ0KCQlSZWZlcmVuY2VUTk1JRFBvaW50RXZlbnQg +4oCTIE9yaWdpbmFsbHkgY2FsbGVkIFJlZmVyZW5jZVROTUlEDQoJCVNpdGVOdW1iZXIg4oCTIE5l +dyBmaWVsZA0KDQoJTm9uQ29udHJpYnV0aW5nRHJhaW5hZ2VBcmVhIHBvbHlnb24gZGF0YXNldCAN +CgkJQXR0cmlidXRlIEZpZWxkczoNCgkJVE5NSUQNCgkJTWV0YVNvdXJjZUlEDQoJCVNvdXJjZURh +dGFEZXNjDQoJCVNvdXJjZU9yaWdpbmF0b3INCgkJU291cmNlRmVhdHVyZUlEDQoJCUxvYWREYXRl +DQoJCU5vbkNvbnRyaWJ1dGluZ1NxS20g4oCTIE5ldyBmaWVsZA0KCQlOb25Db250cmlidXRpbmdB +Y3JlcyDigJMgTmV3IGZpZWxkDQoJCVJlZmVyZW5jZVROTUlEMTJkaWdpdEhVIOKAkyBOZXcgZmll +bGQNCgkJDQoJVGFibGVzDQoJCUV4dGVybmFsQ3Jvc3N3YWxrIC0gT3JpZ2luYWxseSBjYWxsZWQg +RXh0ZXJuYWxJRENyb3Nzd2Fsaw0KCQlGZWF0dXJlVG9IVU1vZCAtIHJlbW92ZWQNCgkJRmVhdHVy +ZVRvTWV0YWRhdGENCgkJSFVNb2QgLSBOZXdGaWVsZA0KCQlNZXRhUHJvY2Vzc0RldGFpbCAtIFBy +ZXZpb3VzIHZlcnNpb24gY2FsbGVkIE1ldGFfUHJvY2Vzc0RldGFpbA0KCQlNZXRhU291cmNlRGV0 +YWlsIC0gUHJldmlvdXMgdmVyc2lvbiBjYWxsZWQgTWV0YV9Tb3VyY2VEZXRhaWwNCgkJUHJvY2Vz +c2luZ1BhcmFtZXRlcnMNCgkJVXBkYXRlU3RhdHVzDQoJCVdCRF9BdHRyaWJ1dGVzIC0gcmVtb3Zl +ZA0KCQlXQkROYXZpZ2F0aW9uIC0gT3JpZ2luYWxseSBXQkRfTmF2DQoJCQ0KCTIwMTQNCgkNCgkN +CgkyMDE1DQoJQ2hhbmdlcyB0byB0aGUgV0JEIGRhdGEgbW9kZWwgaW5jbHVkZSB1cGRhdGVzIG9y +IGFkZGl0aW9ucyB0byB0aGUgZmllbGRzIGZvciB0aGUgTm9uQ29udHJpYnV0aW5nRHJhaW5hZ2VB +cmVhIHBvbHlnb24gZGF0YXNldCwgTldJU0JvdW5kYXJ5IGxpbmUgZGF0YXNldCBhbmQgdGhlIE5X +SVNEcmFpbmFnZUFyZWEgcG9seWdvbiBkYXRhc2V0LiBUaGUgbWFqb3JpdHkgb2YgdGhlc2UgYXJl +IGR1ZSB0byB0aGUgbGVuZ3RoIG9mIHRoZSBvcmlnaW5hbCBuYW1lIGZvciB0aGUgZmllbGQuIEEg +bmV3IGxpbmUgZGF0YXNldCB3YXMgY3JlYXRlZCBmb3IgTm9uIENvbnRyaWJ1dGluZyBBcmVhIGNh +bGxlZCBOb25Db250cmlidXRpbmdEcmFpbmFnZUxpbmUgTldJU0JvdW5kYXJ5IHdhcyByZS1uYW1l +ZCBOV0lTRHJhaW5hZ2VMaW5lDQoJCQ0KCU5XSVNEcmFpbmFnZUFyZWEgcG9seWdvbiBkYXRhc2V0 +OiANCglBdHRyaWJ1dGUgRmllbGRzOg0KCQlUTk1JRA0KCQlNZXRhU291cmNlSUQNCgkJU291cmNl +RGF0YURlc2MNCgkJU291cmNlT3JpZ2luYXRvcg0KCQlTb3VyY2VGZWF0dXJlSUQNCgkJTG9hZERh +dGUNCgkJQXJlYVNxS20g4oCTIE5ldyBGaWVsZA0KCQlBZ2VuY3lDb2RlDQoJCVNpdGVOdW1iZXIN +CgkJU3RhdGlvbk5hbWUNCgkJVG90YWxBcmVhU3FNaSDigJMgTmV3IEZpZWxkDQoJCU5XSVNUb3Rh +bEFyZWFTcU1pIOKAkyBOZXcgRmllbGQNCgkJQ29udHJpYnV0aW5nQXJlYVNxTWkg4oCTIE5ldyBG +aWVsZA0KCQlOV0lTQ29udHJpYnV0aW5nQXJlYVNxTWkg4oCTIE5ldyBGaWVsZA0KCQlSZWZlcmVu +Y2VUTk1JRE5IRFBvaW50RXZlbnQgDQoJCVJlbWFya3Mg4oCTIE5ldyBGaWVsZA0KCQlDb250cmli +dXRpbmdEcmFpbmFnZUFyZWFBY3JlcyDigJMgUmVtb3ZlZA0KCQlUb3RhbERyYWluYWdlQXJlYUFj +cmVzIOKAkyBSZW1vdmVkDQoJCUNvbnRyaWJ1dGluZ0RyYWluYWdlQXJlYVNxS20g4oCTIFJlbW92 +ZWQNCgkJVG90YWxEcmFpbmFnZUFyZWFTcUttIOKAkyBSZW1vdmVkDQoNCglOV0lTRHJhaW5hZ2VM +aW5lIGxpbmUgZGF0YXNldCANCglBdHRyaWJ1dGUgRmllbGRzOg0KCQlUTk1JRA0KCQlNZXRhU291 +cmNlSUQNCgkJU291cmNlRGF0YURlc2MNCgkJU291cmNlT3JpZ2luYXRvcg0KCQlTb3VyY2VGZWF0 +dXJlSUQNCgkJTG9hZERhdGUNCgkJTGVuZ3RoS20g4oCTIE5ldyBGaWVsZA0KCQlMaW5lU291cmNl +IOKAkyBOZXcgRmllbGQNCgkJQWdlbmN5IENvZGUg4oCTIE5ldyBGaWVsZA0KCQlTaXRlTnVtYmVy +IA0KCQlSZWZlcmVuY2VUTk1JRFBvaW50RXZlbnQg4oCTIFJlbW92ZWQNCg0KCU5vbkNvbnRyaWJ1 +dGluZ0RyYWluYWdlQXJlYSBwb2x5Z29uIGRhdGFzZXQgDQoJQXR0cmlidXRlIEZpZWxkczoNCgkJ +VE5NSUQNCgkJTWV0YVNvdXJjZUlEDQoJCVNvdXJjZURhdGFEZXNjDQoJCVNvdXJjZU9yaWdpbmF0 +b3INCgkJU291cmNlRmVhdHVyZUlEDQoJCUxvYWREYXRlDQoJCUFyZWFTcUttIOKAkyBOZXcgRmll +bGQNCgkJTm9uQ29udHJpYnV0aW5nQXJlYVNxS20g4oCTIFJlLW5hbWVkIGZyb20gTm9uQ29udHJp +YnV0aW5nU3FLbQ0KCQlSZW1hcmtzIOKAkyBOZXcgRmllbGQNCgkJTm9uQ29udHJpYnV0aW5nQWNy +ZXMgLSBSZW1vdmVkDQoJCVJlZmVyZW5jZVROTUlEMTJkaWdpdEhVIC0gUmVtb3ZlZA0KDQoJTm9u +Q29udHJpYnV0aW5nRHJhaW5hZ2VMaW5lIGxpbmUgZGF0YXNldCDigJMgTmV3IGRhdGFzZXQNCgkJ +QXR0cmlidXRlIEZpZWxkczoNCgkJVE5NSUQNCgkJTWV0YVNvdXJjZUlEDQoJCVNvdXJjZURhdGFE +ZXNjDQoJCVNvdXJjZU9yaWdpbmF0b3INCgkJU291cmNlRmVhdHVyZUlEDQoJCUxvYWREYXRlDQoJ +CUxlbmd0aEttDQoJCUxpbmVTb3VyY2UNCg0KCTIwMTYNCgkNCglXQkRMaW5lIGRhdGFzZXQNCgkJ +VE5NSUQNCgkJSFVMZXZlbCAtIHJlbW92ZWQNCgkJSFVEaWdpdCAtIE9yaWdpbmFsbHkgY2FsbGVk +IEhVQ2xhc3MNCgkJSFVNb2QNCgkJTGluZVNvdXJjZQ0KCQlNZXRhU291cmNlSUQNCgkJTG9hZERh +dGUNCgkNCglXQkQgcG9seWdvbiBkYXRhc2V0cw0KCUZpZWxkcyBpbmNsdWRlZCB3aXRoIHRoZSAx +Mi0sIDE0LSBhbmQgMTYtIGRpZ2l0IHBvbHlnb24gZGF0YXNldHMuDQoJCU5vbkNvbnRyaWJ1dGlu +Z0FyZWFBY3JlcyAtIHByZXZpb3VzIHZlcnNpb24gd2FzIE5vbkNvbnRyaWJ1dGluZ0FjcmVzDQoJ +CU5vbkNvbnRyaWJ1dGluZ0FyZWFTcUttIC0gcHJldmlvdXMgdmVyc2lvbiB3YXMgTm9uQ29udHJp +YnV0aW5nU3FLbTwvcHJvY2Rlc2M+DQogICAgICAgIDxwcm9jZGF0ZT4yMDE2PC9wcm9jZGF0ZT4N +CiAgICAgIDwvcHJvY3N0ZXA+DQogICAgICA8cHJvY3N0ZXA+DQogICAgICAgIDxwcm9jZGVzYz5B +ZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwcm9jZXNzZXMgdXNlZCB0byBjcmVhdGUg +YW5kIG1haW50YWluIHRoZSBXQkQgYWZ0ZXIgSnVuZSBvZiAyMDEyIGNhbiBiZSBmb3VuZCBpbiB0 +aGUgdGFibGUgY2FsbGVkIE1FVEFQUk9DRVNTREVUQUlMLiBUaGUgcHJvY2VzcyBkZXNjcmlwdGlv +bnMgYXJlIGxpbmtlZCB1c2luZyB0aGUgVE5NSUQgdG8gdGhlIEZFQVRVUkVUT01FVEFEQVRBIHRh +YmxlLiBJbiBhZGRpdGlvbiB0aGUgTUVUQVNPVVJDRURFVEFJTCB0YWJsZSBjYW4gYWxzbyBiZSBs +aW5rZWQgdG8gZGV0ZXJtaW5lIHRoZSBzb3VyY2VzIHVzZWQgdG8gY3JlYXRlIG9yIHVwZGF0ZSB0 +aGUgV0JEIGRhdGEuPC9wcm9jZGVzYz4NCiAgICAgICAgPHByb2NkYXRlPjIwMTI8L3Byb2NkYXRl +Pg0KICAgICAgPC9wcm9jc3RlcD4NCiAgICA8L2xpbmVhZ2U+DQogIDwvZGF0YXF1YWw+DQogIDxz +cGRvaW5mbz4NCiAgICA8ZGlyZWN0PlZlY3RvcjwvZGlyZWN0Pg0KICA8L3NwZG9pbmZvPg0KICA8 +c3ByZWY+DQogICAgPGhvcml6c3lzPg0KICAgICAgPGdlb2dyYXBoPg0KICAgICAgICA8bGF0cmVz +PjAuMDE5Nzk0MDMyNDwvbGF0cmVzPg0KICAgICAgICA8bG9uZ3Jlcz4wLjAyMjM5NDU5OTg8L2xv +bmdyZXM+DQogICAgICAgIDxnZW9ndW5pdD5EZWNpbWFsIHNlY29uZHM8L2dlb2d1bml0Pg0KICAg +ICAgPC9nZW9ncmFwaD4NCiAgICAgIDxnZW9kZXRpYz4NCiAgICAgICAgPGhvcml6ZG4+Tm9ydGgg +QW1lcmljYW4gRGF0dW0gb2YgMTk4MzwvaG9yaXpkbj4NCiAgICAgICAgPGVsbGlwcz5HZW9kZXRp +YyBSZWZlcmVuY2UgU3lzdGVtIDgwPC9lbGxpcHM+DQogICAgICAgIDxzZW1pYXhpcz42Mzc4MTM3 +LjA8L3NlbWlheGlzPg0KICAgICAgICA8ZGVuZmxhdD4yOTguMjU3MjIyMTAxPC9kZW5mbGF0Pg0K +ICAgICAgPC9nZW9kZXRpYz4NCiAgICA8L2hvcml6c3lzPg0KICA8L3NwcmVmPg0KICA8ZWFpbmZv +Pg0KICAgIDxkZXRhaWxlZCBOYW1lPSJXQkRIVTgiPg0KICAgICAgPGVudHR5cD4NCiAgICAgICAg +PGVudHR5cGw+V0JESFUyPC9lbnR0eXBsPg0KICAgICAgICA8ZW50dHlwZD5Qb2x5Z29uIGZlYXR1 +cmUgY2xhc3MgcmVwcmVzZW50aW5nIHRoZSAyLWRpZ2l0IGh5ZHJvbG9naWMgdW5pdCBib3VuZGFy +aWVzIChwcmV2aW91c2x5IHJlZmVycmVkIHRvIGFzIFJlZ2lvbnMpIGFuZCBhcmUgcGFydCBvZiB0 +aGUgV0JEIGRlbGl2ZXJ5LjwvZW50dHlwZD4NCiAgICAgICAgPGVudHR5cGRzPkZlZGVyYWwgU3Rh +bmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5 +IERhdGFzZXQ8L2VudHR5cGRzPg0KICAgICAgICA8ZW50dHlwdCBTeW5jPSJUUlVFIj5GZWF0dXJl +IENsYXNzPC9lbnR0eXB0Pg0KICAgICAgICA8ZW50dHlwYyBTeW5jPSJUUlVFIj4wPC9lbnR0eXBj +Pg0KICAgICAgPC9lbnR0eXA+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsIFN5bmM9 +IlRSVUUiPk9CSkVDVElEPC9hdHRybGFibD4NCiAgICAgICAgPGF0dGFsaWFzIFN5bmM9IlRSVUUi +Pk9CSkVDVElEPC9hdHRhbGlhcz4NCiAgICAgICAgPGF0dHJ0eXBlIFN5bmM9IlRSVUUiPk9JRDwv +YXR0cnR5cGU+DQogICAgICAgIDxhdHR3aWR0aCBTeW5jPSJUUlVFIj40PC9hdHR3aWR0aD4NCiAg +ICAgICAgPGF0cHJlY2lzIFN5bmM9IlRSVUUiPjA8L2F0cHJlY2lzPg0KICAgICAgICA8YXR0c2Nh +bGUgU3luYz0iVFJVRSI+MDwvYXR0c2NhbGU+DQogICAgICAgIDxhdHRyZGVmIFN5bmM9IlRSVUUi +PkludGVybmFsIGZlYXR1cmUgbnVtYmVyLjwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzIFN5 +bmM9IlRSVUUiPkVzcmk8L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAg +PHVkb20gU3luYz0iVFJVRSI+U2VxdWVudGlhbCB1bmlxdWUgd2hvbGUgbnVtYmVycyB0aGF0IGFy +ZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZC48L3Vkb20+DQogICAgICAgIDwvYXR0cmRvbXY+DQog +ICAgICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsIFN5bmM9IlRSVUUi +PlNoYXBlPC9hdHRybGFibD4NCiAgICAgICAgPGF0dGFsaWFzIFN5bmM9IlRSVUUiPlNIQVBFPC9h +dHRhbGlhcz4NCiAgICAgICAgPGF0dHJ0eXBlIFN5bmM9IlRSVUUiPkdlb21ldHJ5PC9hdHRydHlw +ZT4NCiAgICAgICAgPGF0dHdpZHRoIFN5bmM9IlRSVUUiPjA8L2F0dHdpZHRoPg0KICAgICAgICA8 +YXRwcmVjaXMgU3luYz0iVFJVRSI+MDwvYXRwcmVjaXM+DQogICAgICAgIDxhdHRzY2FsZSBTeW5j +PSJUUlVFIj4wPC9hdHRzY2FsZT4NCiAgICAgICAgPGF0dHJkZWYgU3luYz0iVFJVRSI+RmVhdHVy +ZSBnZW9tZXRyeS48L2F0dHJkZWY+DQogICAgICAgIDxhdHRyZGVmcyBTeW5jPSJUUlVFIj5Fc3Jp +PC9hdHRyZGVmcz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDx1ZG9tIFN5bmM9IlRS +VUUiPkNvb3JkaW5hdGVzIGRlZmluaW5nIHRoZSBmZWF0dXJlcy48L3Vkb20+DQogICAgICAgIDwv +YXR0cmRvbXY+DQogICAgICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJs +IFN5bmM9IlRSVUUiPlROTUlEPC9hdHRybGFibD4NCiAgICAgICAgPGF0dGFsaWFzIFN5bmM9IlRS +VUUiPlROTUlEPC9hdHRhbGlhcz4NCiAgICAgICAgPGF0dHJ0eXBlIFN5bmM9IlRSVUUiPlN0cmlu +ZzwvYXR0cnR5cGU+DQogICAgICAgIDxhdHR3aWR0aCBTeW5jPSJUUlVFIj40MDwvYXR0d2lkdGg+ +DQogICAgICAgIDxhdHByZWNpcyBTeW5jPSJUUlVFIj4wPC9hdHByZWNpcz4NCiAgICAgICAgPGF0 +dHNjYWxlIFN5bmM9IlRSVUUiPjA8L2F0dHNjYWxlPg0KICAgICAgPC9hdHRyPg0KICAgICAgPGF0 +dHI+DQogICAgICAgIDxhdHRybGFibCBTeW5jPSJUUlVFIj5NZXRhU291cmNlSUQ8L2F0dHJsYWJs +Pg0KICAgICAgICA8YXR0YWxpYXMgU3luYz0iVFJVRSI+TWV0YVNvdXJjZUlEPC9hdHRhbGlhcz4N +CiAgICAgICAgPGF0dHJ0eXBlIFN5bmM9IlRSVUUiPlN0cmluZzwvYXR0cnR5cGU+DQogICAgICAg +IDxhdHR3aWR0aCBTeW5jPSJUUlVFIj40MDwvYXR0d2lkdGg+DQogICAgICAgIDxhdHByZWNpcyBT +eW5jPSJUUlVFIj4wPC9hdHByZWNpcz4NCiAgICAgICAgPGF0dHNjYWxlIFN5bmM9IlRSVUUiPjA8 +L2F0dHNjYWxlPg0KICAgICAgPC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFi +bCBTeW5jPSJUUlVFIj5Tb3VyY2VEYXRhRGVzYzwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRhbGlh +cyBTeW5jPSJUUlVFIj5Tb3VyY2VEYXRhRGVzYzwvYXR0YWxpYXM+DQogICAgICAgIDxhdHRydHlw +ZSBTeW5jPSJUUlVFIj5TdHJpbmc8L2F0dHJ0eXBlPg0KICAgICAgICA8YXR0d2lkdGggU3luYz0i +VFJVRSI+MTAwPC9hdHR3aWR0aD4NCiAgICAgICAgPGF0cHJlY2lzIFN5bmM9IlRSVUUiPjA8L2F0 +cHJlY2lzPg0KICAgICAgICA8YXR0c2NhbGUgU3luYz0iVFJVRSI+MDwvYXR0c2NhbGU+DQogICAg +ICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsIFN5bmM9IlRSVUUiPlNv +dXJjZU9yaWdpbmF0b3I8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0YWxpYXMgU3luYz0iVFJVRSI+ +U291cmNlT3JpZ2luYXRvcjwvYXR0YWxpYXM+DQogICAgICAgIDxhdHRydHlwZSBTeW5jPSJUUlVF +Ij5TdHJpbmc8L2F0dHJ0eXBlPg0KICAgICAgICA8YXR0d2lkdGggU3luYz0iVFJVRSI+MTMwPC9h +dHR3aWR0aD4NCiAgICAgICAgPGF0cHJlY2lzIFN5bmM9IlRSVUUiPjA8L2F0cHJlY2lzPg0KICAg +ICAgICA8YXR0c2NhbGUgU3luYz0iVFJVRSI+MDwvYXR0c2NhbGU+DQogICAgICA8L2F0dHI+DQog +ICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsIFN5bmM9IlRSVUUiPlNvdXJjZUZlYXR1cmVJ +RDwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRhbGlhcyBTeW5jPSJUUlVFIj5Tb3VyY2VGZWF0dXJl +SUQ8L2F0dGFsaWFzPg0KICAgICAgICA8YXR0cnR5cGUgU3luYz0iVFJVRSI+U3RyaW5nPC9hdHRy +dHlwZT4NCiAgICAgICAgPGF0dHdpZHRoIFN5bmM9IlRSVUUiPjQwPC9hdHR3aWR0aD4NCiAgICAg +ICAgPGF0cHJlY2lzIFN5bmM9IlRSVUUiPjA8L2F0cHJlY2lzPg0KICAgICAgICA8YXR0c2NhbGUg +U3luYz0iVFJVRSI+MDwvYXR0c2NhbGU+DQogICAgICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAg +ICAgICAgPGF0dHJsYWJsIFN5bmM9IlRSVUUiPkxvYWREYXRlPC9hdHRybGFibD4NCiAgICAgICAg +PGF0dGFsaWFzIFN5bmM9IlRSVUUiPkxvYWREYXRlPC9hdHRhbGlhcz4NCiAgICAgICAgPGF0dHJ0 +eXBlIFN5bmM9IlRSVUUiPkRhdGU8L2F0dHJ0eXBlPg0KICAgICAgICA8YXR0d2lkdGggU3luYz0i +VFJVRSI+ODwvYXR0d2lkdGg+DQogICAgICAgIDxhdHByZWNpcyBTeW5jPSJUUlVFIj4wPC9hdHBy +ZWNpcz4NCiAgICAgICAgPGF0dHNjYWxlIFN5bmM9IlRSVUUiPjA8L2F0dHNjYWxlPg0KICAgICAg +PC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibCBTeW5jPSJUUlVFIj5BcmVh +U3FLbTwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRhbGlhcyBTeW5jPSJUUlVFIj5BcmVhU3FLbTwv +YXR0YWxpYXM+DQogICAgICAgIDxhdHRydHlwZSBTeW5jPSJUUlVFIj5Eb3VibGU8L2F0dHJ0eXBl +Pg0KICAgICAgICA8YXR0d2lkdGggU3luYz0iVFJVRSI+ODwvYXR0d2lkdGg+DQogICAgICAgIDxh +dHByZWNpcyBTeW5jPSJUUlVFIj4wPC9hdHByZWNpcz4NCiAgICAgICAgPGF0dHNjYWxlIFN5bmM9 +IlRSVUUiPjA8L2F0dHNjYWxlPg0KICAgICAgPC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAg +IDxhdHRybGFibCBTeW5jPSJUUlVFIj5BcmVhQWNyZXM8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0 +YWxpYXMgU3luYz0iVFJVRSI+QXJlYUFjcmVzPC9hdHRhbGlhcz4NCiAgICAgICAgPGF0dHJ0eXBl +IFN5bmM9IlRSVUUiPkRvdWJsZTwvYXR0cnR5cGU+DQogICAgICAgIDxhdHR3aWR0aCBTeW5jPSJU +UlVFIj44PC9hdHR3aWR0aD4NCiAgICAgICAgPGF0cHJlY2lzIFN5bmM9IlRSVUUiPjA8L2F0cHJl +Y2lzPg0KICAgICAgICA8YXR0c2NhbGUgU3luYz0iVFJVRSI+MDwvYXR0c2NhbGU+DQogICAgICA8 +L2F0dHI+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsIFN5bmM9IlRSVUUiPkdOSVNf +SUQ8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0YWxpYXMgU3luYz0iVFJVRSI+R05JU19JRDwvYXR0 +YWxpYXM+DQogICAgICAgIDxhdHRydHlwZSBTeW5jPSJUUlVFIj5JbnRlZ2VyPC9hdHRydHlwZT4N +CiAgICAgICAgPGF0dHdpZHRoIFN5bmM9IlRSVUUiPjQ8L2F0dHdpZHRoPg0KICAgICAgICA8YXRw +cmVjaXMgU3luYz0iVFJVRSI+MDwvYXRwcmVjaXM+DQogICAgICAgIDxhdHRzY2FsZSBTeW5jPSJU +UlVFIj4wPC9hdHRzY2FsZT4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8 +YXR0cmxhYmwgU3luYz0iVFJVRSI+TmFtZTwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRhbGlhcyBT +eW5jPSJUUlVFIj5OYW1lPC9hdHRhbGlhcz4NCiAgICAgICAgPGF0dHJ0eXBlIFN5bmM9IlRSVUUi +PlN0cmluZzwvYXR0cnR5cGU+DQogICAgICAgIDxhdHR3aWR0aCBTeW5jPSJUUlVFIj4xMjA8L2F0 +dHdpZHRoPg0KICAgICAgICA8YXRwcmVjaXMgU3luYz0iVFJVRSI+MDwvYXRwcmVjaXM+DQogICAg +ICAgIDxhdHRzY2FsZSBTeW5jPSJUUlVFIj4wPC9hdHRzY2FsZT4NCiAgICAgIDwvYXR0cj4NCiAg +ICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmwgU3luYz0iVFJVRSI+U3RhdGVzPC9hdHRybGFi +bD4NCiAgICAgICAgPGF0dGFsaWFzIFN5bmM9IlRSVUUiPlN0YXRlczwvYXR0YWxpYXM+DQogICAg +ICAgIDxhdHRydHlwZSBTeW5jPSJUUlVFIj5TdHJpbmc8L2F0dHJ0eXBlPg0KICAgICAgICA8YXR0 +d2lkdGggU3luYz0iVFJVRSI+NTA8L2F0dHdpZHRoPg0KICAgICAgICA8YXRwcmVjaXMgU3luYz0i +VFJVRSI+MDwvYXRwcmVjaXM+DQogICAgICAgIDxhdHRzY2FsZSBTeW5jPSJUUlVFIj4wPC9hdHRz +Y2FsZT4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmwgU3lu +Yz0iVFJVRSI+SFVDODwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRhbGlhcyBTeW5jPSJUUlVFIj5I +VUM4PC9hdHRhbGlhcz4NCiAgICAgICAgPGF0dHJ0eXBlIFN5bmM9IlRSVUUiPlN0cmluZzwvYXR0 +cnR5cGU+DQogICAgICAgIDxhdHR3aWR0aCBTeW5jPSJUUlVFIj44PC9hdHR3aWR0aD4NCiAgICAg +ICAgPGF0cHJlY2lzIFN5bmM9IlRSVUUiPjA8L2F0cHJlY2lzPg0KICAgICAgICA8YXR0c2NhbGUg +U3luYz0iVFJVRSI+MDwvYXR0c2NhbGU+DQogICAgICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAg +ICAgICAgPGF0dHJsYWJsIFN5bmM9IlRSVUUiPlNoYXBlX0xlbmd0aDwvYXR0cmxhYmw+DQogICAg +ICAgIDxhdHRhbGlhcyBTeW5jPSJUUlVFIj5TSEFQRV9MRU5HVEg8L2F0dGFsaWFzPg0KICAgICAg +ICA8YXR0cnR5cGUgU3luYz0iVFJVRSI+RG91YmxlPC9hdHRydHlwZT4NCiAgICAgICAgPGF0dHdp +ZHRoIFN5bmM9IlRSVUUiPjg8L2F0dHdpZHRoPg0KICAgICAgICA8YXRwcmVjaXMgU3luYz0iVFJV +RSI+MDwvYXRwcmVjaXM+DQogICAgICAgIDxhdHRzY2FsZSBTeW5jPSJUUlVFIj4wPC9hdHRzY2Fs +ZT4NCiAgICAgICAgPGF0dHJkZWYgU3luYz0iVFJVRSI+TGVuZ3RoIG9mIGZlYXR1cmUgaW4gaW50 +ZXJuYWwgdW5pdHMuPC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRlZnMgU3luYz0iVFJVRSI+RXNy +aTwvYXR0cmRlZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8dWRvbSBTeW5jPSJU +UlVFIj5Qb3NpdGl2ZSByZWFsIG51bWJlcnMgdGhhdCBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0 +ZWQuPC91ZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0KICAgICAgPGF0 +dHI+DQogICAgICAgIDxhdHRybGFibCBTeW5jPSJUUlVFIj5TaGFwZV9BcmVhPC9hdHRybGFibD4N +CiAgICAgICAgPGF0dGFsaWFzIFN5bmM9IlRSVUUiPlNIQVBFX0FSRUE8L2F0dGFsaWFzPg0KICAg +ICAgICA8YXR0cnR5cGUgU3luYz0iVFJVRSI+RG91YmxlPC9hdHRydHlwZT4NCiAgICAgICAgPGF0 +dHdpZHRoIFN5bmM9IlRSVUUiPjg8L2F0dHdpZHRoPg0KICAgICAgICA8YXRwcmVjaXMgU3luYz0i +VFJVRSI+MDwvYXRwcmVjaXM+DQogICAgICAgIDxhdHRzY2FsZSBTeW5jPSJUUlVFIj4wPC9hdHRz +Y2FsZT4NCiAgICAgICAgPGF0dHJkZWYgU3luYz0iVFJVRSI+QXJlYSBvZiBmZWF0dXJlIGluIGlu +dGVybmFsIHVuaXRzIHNxdWFyZWQuPC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRlZnMgU3luYz0i +VFJVRSI+RXNyaTwvYXR0cmRlZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8dWRv +bSBTeW5jPSJUUlVFIj5Qb3NpdGl2ZSByZWFsIG51bWJlcnMgdGhhdCBhcmUgYXV0b21hdGljYWxs +eSBnZW5lcmF0ZWQuPC91ZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0K +ICAgIDwvZGV0YWlsZWQ+DQogICAgPGRldGFpbGVkPg0KICAgICAgPGVudHR5cD4NCiAgICAgICAg +PGVudHR5cGw+V0JESFU0PC9lbnR0eXBsPg0KICAgICAgICA8ZW50dHlwZD5Qb2x5Z29uIGZlYXR1 +cmUgY2xhc3MgcmVwcmVzZW50aW5nIHRoZSA0LWRpZ2l0IGh5ZHJvbG9naWMgdW5pdCBib3VuZGFy +aWVzIChwcmV2aW91c2x5IHJlZmVycmVkIHRvIGFzIFN1YnJlZ2lvbnMpIHRoYXQgYXJlIHBhcnQg +b2YgdGhlIFdCRCBkZWxpdmVyeS48L2VudHR5cGQ+DQogICAgICAgIDxlbnR0eXBkcz5GZWRlcmFs +IFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3Vu +ZGFyeSBEYXRhc2V0PC9lbnR0eXBkcz4NCiAgICAgIDwvZW50dHlwPg0KICAgICAgPGF0dHI+DQog +ICAgICAgIDxhdHRybGFibD5IVUM0PC9hdHRybGFibD4NCiAgICAgICAgPGF0dHJkZWY+VGhlIEhV +QzQgZmllbGQgaXMgYSB1bmlxdWUgNC1kaWdpdCBoeWRyb2xvZ2ljIHVuaXQgY29kZS48L2F0dHJk +ZWY+DQogICAgICAgIDxhdHRyZGVmcz5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBm +b3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0IChXQkQpPC9hdHRyZGVm +cz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDxjb2Rlc2V0ZD4NCiAgICAgICAgICAg +IDxjb2Rlc2V0bj5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlv +bmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0IChXQkQpPC9jb2Rlc2V0bj4NCiAgICAgICAg +ICAgIDxjb2Rlc2V0cz5TZWN0aW9uIDY6IEdlb3NwYXRpYWwgRGF0YSBTdHJ1Y3R1cmUgYW5kIEF0 +dHJpYnV0ZXMgaHR0cDovL3B1YnMudXNncy5nb3YvdG0vMTEvYTMvKTwvY29kZXNldHM+DQogICAg +ICAgICAgPC9jb2Rlc2V0ZD4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAg +ICA8L2RldGFpbGVkPg0KICAgIDxkZXRhaWxlZD4NCiAgICAgIDxlbnR0eXA+DQogICAgICAgIDxl +bnR0eXBsPldCREhVNjwvZW50dHlwbD4NCiAgICAgICAgPGVudHR5cGQ+UG9seWdvbiBmZWF0dXJl +IGNsYXNzIHJlcHJlc2VudGluZyB0aGUgNi1kaWdpdCBoeWRyb2xvZ2ljIHVuaXQgYm91bmRhcmll +cyAocHJldmlvdXNseSByZWZlcnJlZCB0byBhcyBCYXNpbnMpIGFuZCBhcmUgcGFydCBvZiB0aGUg +V0JEIGRlbGl2ZXJ5LjwvZW50dHlwZD4NCiAgICAgICAgPGVudHR5cGRzPkZlZGVyYWwgU3RhbmRh +cmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERh +dGFzZXQ8L2VudHR5cGRzPg0KICAgICAgPC9lbnR0eXA+DQogICAgICA8YXR0cj4NCiAgICAgICAg +PGF0dHJsYWJsPkhVQzY8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5UaGUgSFVDNiBmaWVs +ZCBpcyBhIHVuaXF1ZSA2LWRpZ2l0IGh5ZHJvbG9naWMgdW5pdCBjb2RlLjwvYXR0cmRlZj4NCiAg +ICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUg +TmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2F0dHJkZWZzPg0KICAg +ICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPGNvZGVzZXRkPg0KICAgICAgICAgICAgPGNvZGVz +ZXRuPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0 +ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2NvZGVzZXRuPg0KICAgICAgICAgICAgPGNv +ZGVzZXRzPlNlY3Rpb24gNjogR2Vvc3BhdGlhbCBEYXRhIFN0cnVjdHVyZSBhbmQgQXR0cmlidXRl +cyAoaHR0cDovL3B1YnMudXNncy5nb3YvdG0vMTEvYTMvKTwvY29kZXNldHM+DQogICAgICAgICAg +PC9jb2Rlc2V0ZD4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICA8L2Rl +dGFpbGVkPg0KICAgIDxkZXRhaWxlZD4NCiAgICAgIDxlbnR0eXA+DQogICAgICAgIDxlbnR0eXBs +PldCREhVODwvZW50dHlwbD4NCiAgICAgICAgPGVudHR5cGQ+UG9seWdvbiBmZWF0dXJlIGNsYXNz +IHJlcHJlc2VudGluZyB0aGUgOC1kaWdpdCBoeWRyb2xvZ2ljIHVuaXQgYm91bmRhcmllcyAocHJl +dmlvdXNseSByZWZlcnJlZCB0byBhcyBTdWJiYXNpbnMpIGFuZCBhcmUgcGFydCBvZiB0aGUgV0JE +IGRlbGl2ZXJ5LjwvZW50dHlwZD4NCiAgICAgICAgPGVudHR5cGRzPkZlZGVyYWwgU3RhbmRhcmRz +IGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFz +ZXQ8L2VudHR5cGRzPg0KICAgICAgPC9lbnR0eXA+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0 +dHJsYWJsPkhVQzg8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5UaGUgSFVDOCBmaWVsZCBp +cyBhIHVuaXF1ZSA4LWRpZ2l0IGh5ZHJvbG9naWMgdW5pdCBjb2RlLjwvYXR0cmRlZj4NCiAgICAg +ICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0 +aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2F0dHJkZWZzPg0KICAgICAg +ICA8YXR0cmRvbXY+DQogICAgICAgICAgPGNvZGVzZXRkPg0KICAgICAgICAgICAgPGNvZGVzZXRu +PkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJz +aGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2NvZGVzZXRuPg0KICAgICAgICAgICAgPGNvZGVz +ZXRzPlNlY3Rpb24gNjogR2Vvc3BhdGlhbCBEYXRhIFN0cnVjdHVyZSBhbmQgQXR0cmlidXRlcyBo +dHRwOi8vcHVicy51c2dzLmdvdi90bS8xMS9hMy8pPC9jb2Rlc2V0cz4NCiAgICAgICAgICA8L2Nv +ZGVzZXRkPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0KICAgIDwvZGV0YWls +ZWQ+DQogICAgPGRldGFpbGVkPg0KICAgICAgPGVudHR5cD4NCiAgICAgICAgPGVudHR5cGw+V0JE +SFUxMDwvZW50dHlwbD4NCiAgICAgICAgPGVudHR5cGQ+UG9seWdvbiBmZWF0dXJlIGNsYXNzIHJl +cHJlc2VudGluZyB0aGUgMTAtZGlnaXQgaHlkcm9sb2dpYyB1bml0IGJvdW5kYXJpZXMgKHByZXZp +b3VzbHkgcmVmZXJyZWQgdG8gYXMgV2F0ZXJzaGVkcykuPC9lbnR0eXBkPg0KICAgICAgICA8ZW50 +dHlwZHM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBX +YXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldDwvZW50dHlwZHM+DQogICAgICA8L2VudHR5cD4NCiAg +ICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmw+SFVDMTA8L2F0dHJsYWJsPg0KICAgICAgICA8 +YXR0cmRlZj5UaGUgSFVDMTAgZmllbGQgaXMgYSB1bmlxdWUgMTAtZGlnaXQgaHlkcm9sb2dpYyB1 +bml0IGNvZGUuPC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRlZnM+RmVkZXJhbCBTdGFuZGFyZHMg +YW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNl +dCAoV0JEKTwvYXR0cmRlZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8Y29kZXNl +dGQ+DQogICAgICAgICAgICA8Y29kZXNldG4+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVy +ZXMgZm9yIHRoZSBOYXRpb25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvY29k +ZXNldG4+DQogICAgICAgICAgICA8Y29kZXNldHM+UHJvdmlkZSBDb2Rlc2V0IERlZmluaXRpb24g +UmVmZXJlbmNlIChDaXRhdGF0aW9uL1VSTCk8L2NvZGVzZXRzPg0KICAgICAgICAgIDwvY29kZXNl +dGQ+DQogICAgICAgIDwvYXR0cmRvbXY+DQogICAgICA8L2F0dHI+DQogICAgPC9kZXRhaWxlZD4N +CiAgICA8ZGV0YWlsZWQ+DQogICAgICA8ZW50dHlwPg0KICAgICAgICA8ZW50dHlwbD5XQkRIVTEy +PC9lbnR0eXBsPg0KICAgICAgICA8ZW50dHlwZD5Qb2x5Z29uIGZlYXR1cmUgY2xhc3MgcmVwcmVz +ZW50aW5nIHRoZSAxMi1kaWdpdCBoeWRyb2xvZ2ljIHVuaXQgYm91bmRhcmllcyAocHJldmlvdXNs +eSByZWZlcnJlZCB0byBhcyBTdWJ3YXRlcnNoZWRzKS48L2VudHR5cGQ+DQogICAgICAgIDxlbnR0 +eXBkcz5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdh +dGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0PC9lbnR0eXBkcz4NCiAgICAgIDwvZW50dHlwPg0KICAg +ICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5IVUMxMjwvYXR0cmxhYmw+DQogICAgICAgIDxh +dHRyZGVmPlRoZSBIVUMxMiBmaWVsZCBpcyBhIHVuaXF1ZSAxMi1kaWdpdCBoeWRyb2xvZ2ljIHVu +aXQgY29kZS48L2F0dHJkZWY+DQogICAgICAgIDxhdHRyZGVmcz5GZWRlcmFsIFN0YW5kYXJkcyBh +bmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0 +IChXQkQpPC9hdHRyZGVmcz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDxjb2Rlc2V0 +ZD4NCiAgICAgICAgICAgIDxjb2Rlc2V0bj5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJl +cyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0IChXQkQpPC9jb2Rl +c2V0bj4NCiAgICAgICAgICAgIDxjb2Rlc2V0cz5TZWN0aW9uIDY6IEdlb3NwYXRpYWwgRGF0YSBT +dHJ1Y3R1cmUgYW5kIEF0dHJpYnV0ZXMgKGh0dHA6Ly9wdWJzLnVzZ3MuZ292L3RtLzExL2EzLyk8 +L2NvZGVzZXRzPg0KICAgICAgICAgIDwvY29kZXNldGQ+DQogICAgICAgIDwvYXR0cmRvbXY+DQog +ICAgICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsPlRvSFVDPC9hdHRy +bGFibD4NCiAgICAgICAgPGF0dHJkZWY+VGhlIDEyLWRpZ2l0IGh5ZHJvbG9naWMgdW5pdCBUb0hV +QyBjb2RlIGF0dHJpYnV0ZSBpcyB0aGUgY29kZSBmb3IgdGhlIDEyLWRpZ2l0IGh5ZHJvbG9naWMg +dW5pdCB0aGF0IGlzIGRvd25zdHJlYW0gZnJvbSBhbmQgbmF0dXJhbGx5IHJlY2VpdmVzIA0KCXRo +ZSBtYWpvcml0eSBvZiB0aGUgZmxvdyBmcm9tIGFub3RoZXIgMTItZGlnaXQgaHlkcm9sb2dpYyB1 +bml0LjwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQ +cm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdC +RCk8L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPGNvZGVzZXRkPg0K +ICAgICAgICAgICAgPGNvZGVzZXRuPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZv +ciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2NvZGVzZXRu +Pg0KICAgICAgICAgICAgPGNvZGVzZXRzPlNlY3Rpb24gNjogR2Vvc3BhdGlhbCBEYXRhIFN0cnVj +dHVyZSBhbmQgQXR0cmlidXRlcyAoaHR0cDovL3B1YnMudXNncy5nb3YvdG0vMTEvYTMvKTwvY29k +ZXNldHM+DQogICAgICAgICAgPC9jb2Rlc2V0ZD4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAg +IDwvYXR0cj4NCiAgICA8L2RldGFpbGVkPg0KICAgIDxkZXRhaWxlZD4NCiAgICAgIDxlbnR0eXA+ +DQogICAgICAgIDxlbnR0eXBsPldCREhVMTQ8L2VudHR5cGw+DQogICAgICAgIDxlbnR0eXBkPlBv +bHlnb24gZmVhdHVyZSBjbGFzcyByZXByZXNlbnRpbmcgdGhlIDE0LWRpZ2l0IGh5ZHJvbG9naWMg +dW5pdCBib3VuZGFyaWVzLjwvZW50dHlwZD4NCiAgICAgICAgPGVudHR5cGRzPkZlZGVyYWwgU3Rh +bmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5 +IERhdGFzZXQ8L2VudHR5cGRzPg0KICAgICAgPC9lbnR0eXA+DQogICAgICA8YXR0cj4NCiAgICAg +ICAgPGF0dHJsYWJsPkhVQzE0PC9hdHRybGFibD4NCiAgICAgICAgPGF0dHJkZWY+VGhlIEhVQzE0 +IGZpZWxkIGlzIGEgdW5pcXVlIDE0LWRpZ2l0IGh5ZHJvbG9naWMgdW5pdCBjb2RlLjwvYXR0cmRl +Zj4NCiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZv +ciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2F0dHJkZWZz +Pg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPGNvZGVzZXRkPg0KICAgICAgICAgICAg +PGNvZGVzZXRuPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9u +YWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2NvZGVzZXRuPg0KICAgICAgICAg +ICAgPGNvZGVzZXRzPlNlY3Rpb24gNjogR2Vvc3BhdGlhbCBEYXRhIFN0cnVjdHVyZSBhbmQgQXR0 +cmlidXRlcyAoaHR0cDovL3B1YnMudXNncy5nb3YvdG0vMTEvYTMvKTwvY29kZXNldHM+DQogICAg +ICAgICAgPC9jb2Rlc2V0ZD4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAg +ICA8L2RldGFpbGVkPg0KICAgIDxkZXRhaWxlZD4NCiAgICAgIDxlbnR0eXA+DQogICAgICAgIDxl +bnR0eXBsPldCREhVMTY8L2VudHR5cGw+DQogICAgICAgIDxlbnR0eXBkPlBvbHlnb24gZmVhdHVy +ZSBjbGFzcyByZXByZXNlbnRpbmcgdGhlIDE2LWRpZ2l0IGh5ZHJvbG9naWMgdW5pdCBib3VuZGFy +aWVzLjwvZW50dHlwZD4NCiAgICAgICAgPGVudHR5cGRzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQ +cm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQ8L2Vu +dHR5cGRzPg0KICAgICAgPC9lbnR0eXA+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJs +PkhVQzE2PC9hdHRybGFibD4NCiAgICAgICAgPGF0dHJkZWY+VGhlIEhVQzE2IGZpZWxkIGlzIGEg +dW5pcXVlIDE2LWRpZ2l0IGh5ZHJvbG9naWMgdW5pdCBjb2RlLjwvYXR0cmRlZj4NCiAgICAgICAg +PGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9u +YWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2F0dHJkZWZzPg0KICAgICAgICA8 +YXR0cmRvbXY+DQogICAgICAgICAgPGNvZGVzZXRkPg0KICAgICAgICAgICAgPGNvZGVzZXRuPkZl +ZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVk +IEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2NvZGVzZXRuPg0KICAgICAgICAgICAgPGNvZGVzZXRz +PlNlY3Rpb24gNjogR2Vvc3BhdGlhbCBEYXRhIFN0cnVjdHVyZSBhbmQgQXR0cmlidXRlcyBodHRw +Oi8vcHVicy51c2dzLmdvdi90bS8xMS9hMy8pPC9jb2Rlc2V0cz4NCiAgICAgICAgICA8L2NvZGVz +ZXRkPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0KICAgIDwvZGV0YWlsZWQ+ +DQogICAgPGRldGFpbGVkPg0KICAgICAgPGVudHR5cD4NCiAgICAgICAgPGVudHR5cGw+V0JETGlu +ZTwvZW50dHlwbD4NCiAgICAgICAgPGVudHR5cGQ+TGluZSBmZWF0dXJlIGNsYXNzIGRlZmluaW5n +IHRoZSBoeWRyb2xvZ2ljIHVuaXQgYm91bmRhcmllczwvZW50dHlwZD4NCiAgICAgICAgPGVudHR5 +cGRzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0 +ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQ8L2VudHR5cGRzPg0KICAgICAgPC9lbnR0eXA+DQogICAg +ICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsPkhVRGlnaXQ8L2F0dHJsYWJsPg0KICAgICAgICA8 +YXR0cmRlZj5IVURpZ2l0IGlzIGEgZG9tYWluLWJhc2VkIGZpZWxkIHRoYXQgaW5kaWNhdGVzIHRo +ZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgdXNlZCB0byByZXByZXNlbnQgdGhlIGh5ZHJvbG9n +aWMgdW5pdCBib3VuZGVkIGJ5IHRoZSBsaW5lLjwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZz +PkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJz +aGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+ +DQogICAgICAgICAgPGNvZGVzZXRkPg0KICAgICAgICAgICAgPGNvZGVzZXRuPkZlZGVyYWwgU3Rh +bmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5 +IERhdGFzZXQgKFdCRCk8L2NvZGVzZXRuPg0KICAgICAgICAgICAgPGNvZGVzZXRzPlNlY3Rpb24g +NjogR2Vvc3BhdGlhbCBEYXRhIFN0cnVjdHVyZSBhbmQgQXR0cmlidXRlcyAoaHR0cDovL3B1YnMu +dXNncy5nb3YvdG0vMTEvYTMvKTwvY29kZXNldHM+DQogICAgICAgICAgPC9jb2Rlc2V0ZD4NCiAg +ICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8 +YXR0cmxhYmw+SFVNb2Q8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5Ud28tY2hhcmFjdGVy +LCB1cHBlcmNhc2UgYWJicmV2aWF0aW9uIHVzZWQgdG8gdHJhY2sgZWl0aGVyIGEgbW9kaWZpY2F0 +aW9uIHRvIG5hdHVyYWwgb3ZlcmxhbmQgZmxvdyB0aGF0IGFsdGVycyB0aGUgbG9jYXRpb24gb2Yg +dGhlIGh5ZHJvbG9naWMgdW5pdCBib3VuZGFyeSBvciBzcGVjaWFsIGNvbmRpdGlvbnMgdGhhdCBh +cmUgYXBwbGllZCB0byBhIHNwZWNpZmljIGJvdW5kYXJ5IGxpbmUgc2VnbWVudC4gVGhlIHZhbHVl +IGlkZW50aWZpZXMgdGhlIHR5cGUgb2YgbW9kaWZpY2F0aW9uLCBmcm9tIHRoZSBsaXN0IHByb3Zp +ZGVkLCB0aGF0IGhhcyBiZWVuIGFwcGxpZWQgdG8gdGhlIGJvdW5kYXJ5IHNlZ21lbnQuIElmIG1v +cmUgdGhhbiBvbmUgYWJicmV2aWF0aW9uIGlzIHVzZWQsIHRoZSBsaXN0IGlzIHNlcGFyYXRlZCBi +eSBjb21tYXMgd2l0aG91dCBzcGFjZXMgYW5kIG9yZ2FuaXplZCBmcm9tIG1vc3QgdG8gbGVhc3Qg +cHJlZG9taW5hbnQuDQo8L2F0dHJkZWY+DQogICAgICAgIDxhdHRyZGVmcz5GZWRlcmFsIFN0YW5k +YXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBE +YXRhc2V0IChXQkQpPC9hdHRyZGVmcz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDxj +b2Rlc2V0ZD4NCiAgICAgICAgICAgIDxjb2Rlc2V0bj5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJv +Y2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0IChXQkQp +PC9jb2Rlc2V0bj4NCiAgICAgICAgICAgIDxjb2Rlc2V0cz5TZWN0aW9uIDY6IEdlb3NwYXRpYWwg +RGF0YSBTdHJ1Y3R1cmUgYW5kIEF0dHJpYnV0ZXMgKGh0dHA6Ly9wdWJzLnVzZ3MuZ292L3RtLzEx +L2EzLyk8L2NvZGVzZXRzPg0KICAgICAgICAgIDwvY29kZXNldGQ+DQogICAgICAgIDwvYXR0cmRv +bXY+DQogICAgICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsPkxpbmVT +b3VyY2U8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5MaW5lU291cmNlIHJlcHJlc2VudHMg +dGhlIGNvZGUgZm9yIHRoZSBiYXNlIGRhdGEgdXNlZCBmb3IgZGVsaW5lYXRpbmcgaHlkcm9sb2dp +YyB1bml0IGJvdW5kYXJpZXMuDQoJSWYgbW9yZSB0aGFuIG9uZSBjb2RlIGlzIHVzZWQsdGhlbiB0 +aGUgbGlzdCBpcyBzZXBhcmF0ZWQgYnkgYSBjb21tYSB3aXRoIG5vIHNwYWNlcyB3aXRoIHRoZSBt +b3N0IHJlY2VudCBMaW5lU291cmNlIGxpc3RlZCBmaXJzdCBpbiB0aGUgc2VxdWVuY2UuPC9hdHRy +ZGVmPg0KICAgICAgICA8YXR0cmRlZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMg +Zm9yIHRoZSBOYXRpb25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvYXR0cmRl +ZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8Y29kZXNldGQ+DQogICAgICAgICAg +ICA8Y29kZXNldG4+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRp +b25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvY29kZXNldG4+DQogICAgICAg +ICAgICA8Y29kZXNldHM+U2VjdGlvbiA2OiBHZW9zcGF0aWFsIERhdGEgU3RydWN0dXJlIGFuZCBB +dHRyaWJ1dGVzIChodHRwOi8vcHVicy51c2dzLmdvdi90bS8xMS9hMy8pPC9jb2Rlc2V0cz4NCiAg +ICAgICAgICA8L2NvZGVzZXRkPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0K +ICAgIDwvZGV0YWlsZWQ+DQogICAgPGRldGFpbGVkPg0KICAgICAgPGVudHR5cD4NCiAgICAgICAg +PGVudHR5cGw+TldJU0RyYWluYWdlQXJlYTwvZW50dHlwbD4NCiAgICAgICAgPGVudHR5cGQ+UG9s +eWdvbiBmZWF0dXJlcyByZXByZXNlbnRpbmcgUFJPVklTSU9OQUwgY29udHJpYnV0aW5nIGRyYWlu +YWdlIGFyZWEgZm9yIHNlbGVjdCBnYWdlIGxvY2F0aW9ucyBpbiB0aGUgVS5TLiBHZW9sb2dpY2Fs +IFN1cnZleSBOYXRpb25hbCBXYXRlciBJbmZvcm1hdGlvbiBTeXN0ZW0NCjwvZW50dHlwZD4NCiAg +ICAgICAgPGVudHR5cGRzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUg +TmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQ8L2VudHR5cGRzPg0KICAgICAgPC9l +bnR0eXA+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsPkFyZWFTcUttPC9hdHRybGFi +bD4NCiAgICAgICAgPGF0dHJkZWY+QXJlYSBvZiB0aGUgZ2FnZWQgd2F0ZXJzaGVkPC9hdHRyZGVm +Pg0KICAgICAgICA8YXR0cmRlZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9y +IHRoZSBOYXRpb25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvYXR0cmRlZnM+ +DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8dWRvbT5DYWxjdWxhdGVkIHBvbHlnb24g +YXJlYSwgc3F1YXJlIGtpbG9tZXRlcnM8L3Vkb20+DQogICAgICAgIDwvYXR0cmRvbXY+DQogICAg +ICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsPkFnZW5jeUNvZGU8L2F0 +dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5TaXRlIEFnZW5jeSBjb2RlPC9hdHRyZGVmPg0KICAg +ICAgICA8YXR0cmRlZnM+VS5TLiBHZW9sb2dpY2FsIFN1cnZleSBOYXRpb25hbCBXYXRlciBJbmZv +cm1hdGlvbiBTeXN0ZW08L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAg +PGNvZGVzZXRkPg0KICAgICAgICAgICAgPGNvZGVzZXRuPlUuUy4gR2VvbG9naWNhbCBTdXJ2ZXkg +TmF0aW9uYWwgV2F0ZXIgSW5mb3JtYXRpb24gU3lzdGVtPC9jb2Rlc2V0bj4NCiAgICAgICAgICAg +IDxjb2Rlc2V0cz4gaHR0cDovL2hlbHAud2F0ZXJkYXRhLnVzZ3MuZ292LzwvY29kZXNldHM+DQog +ICAgICAgICAgPC9jb2Rlc2V0ZD4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4N +CiAgICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmw+U2l0ZU51bWJlcjwvYXR0cmxhYmw+DQog +ICAgICAgIDxhdHRyZGVmPlUuUy4gR2VvbG9naWNhbCBTdXJ2ZXkgdW5pcXVlIHNpdGUgaWRlbnRp +ZmllcjwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPlUuUy4gR2VvbG9naWNhbCBTdXJ2ZXkg +TmF0aW9uYWwgV2F0ZXIgSW5mb3JtYXRpb24gU3lzdGVtPC9hdHRyZGVmcz4NCiAgICAgICAgPGF0 +dHJkb212Pg0KICAgICAgICAgIDx1ZG9tPlVuaXF1ZSBjb2RlIGlkZW50aWZ5aW5nIGEgbWVhc3Vy +ZW1lbnQgc2l0ZSBpbiB0aGUgTmF0aW9uYWwgV2F0ZXIgSW5mb3JtYXRpb24gU3lzdGVtIGRhdGFi +YXNlPC91ZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0KICAgICAgPGF0 +dHI+DQogICAgICAgIDxhdHRybGFibD5TdGF0aW9uTmFtZTwvYXR0cmxhYmw+DQogICAgICAgIDxh +dHRyZGVmPlNpdGUgTmFtZTwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPlUuUy4gR2VvbG9n +aWNhbCBTdXJ2ZXkgTmF0aW9uYWwgV2F0ZXIgSW5mb3JtYXRpb24gU3lzdGVtPC9hdHRyZGVmcz4N +CiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDx1ZG9tPkNvbW1vbiBuYW1lIGFzc29jaWF0 +ZWQgd2l0aCBzaXRlIGluIHRoZSBOYXRpb25hbCBXYXRlciBJbmZvcm1hdGlvbiBTeXN0ZW0gZGF0 +YWJhc2U8L3Vkb20+DQogICAgICAgIDwvYXR0cmRvbXY+DQogICAgICA8L2F0dHI+DQogICAgICA8 +YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsPlRvdGFsQXJlYVNxTWk8L2F0dHJsYWJsPg0KICAgICAg +ICA8YXR0cmRlZj5Ub3RhbCBkcmFpbmFnZSBhcmVhPC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRl +ZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBXYXRl +cnNoZWQgQm91bmRhcnkgRGF0YXNldDwvYXR0cmRlZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAg +ICAgICAgICA8dWRvbT5Ub3RhbCBhcmVhIG9mIHRoZSBwb2x5Z29uLCBzcXVhcmUgbWlsZXM8L3Vk +b20+DQogICAgICAgIDwvYXR0cmRvbXY+DQogICAgICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAg +ICAgICAgPGF0dHJsYWJsPk5XSVNUb3RhbEFyZWFTcU1pPC9hdHRybGFibD4NCiAgICAgICAgPGF0 +dHJkZWY+VG90YWwgZHJhaW5hZ2UgYXJlYSByZXBvcnRlZCBpbiBVLlMuIEdlb2xvZ2ljYWwgU3Vy +dmV5IE5hdGlvbmFsIFdhdGVyIEluZm9ybWF0aW9uIFN5c3RlbTwvYXR0cmRlZj4NCiAgICAgICAg +PGF0dHJkZWZzPlUuUy4gR2VvbG9naWNhbCBTdXJ2ZXkgTmF0aW9uYWwgV2F0ZXIgSW5mb3JtYXRp +b24gU3lzdGVtPC9hdHRyZGVmcz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDx1ZG9t +PlRvdGFsIGFyZWEgaW4gc3F1YXJlIG1pbGVzPC91ZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0K +ICAgICAgPC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5Db250cmlidXRp +bmdBcmVhU3FNaTwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRyZGVmPlRvdGFsIGNvbnRyaWJ1dGlu +ZyBkcmFpbmFnZSBhcmVhLCBzcXVhcmUgbWlsZXM8L2F0dHJkZWY+DQogICAgICAgIDxhdHRyZGVm +cz5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVy +c2hlZCBCb3VuZGFyeSBEYXRhc2V0PC9hdHRyZGVmcz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAg +ICAgICAgIDx1ZG9tPlRvdGFsIGNvbnRyaWJ1dGluZyBhcmVhLCBzcXVhcmUgbWlsZXM8L3Vkb20+ +DQogICAgICAgIDwvYXR0cmRvbXY+DQogICAgICA8L2F0dHI+DQogICAgICA8YXR0cj4NCiAgICAg +ICAgPGF0dHJsYWJsPk5XSVNDb250cmlidXRpbmdBcmVhU3FNaTwvYXR0cmxhYmw+DQogICAgICAg +IDxhdHRyZGVmPkNvbnRyaWJ1dGluZyBkcmFpbmFnZSBhcmVhIHJlcG9ydGVkIGluIFUuUy4gR2Vv +bG9naWNhbCBTdXJ2ZXkgTmF0aW9uYWwgV2F0ZXIgSW5mb3JtYXRpb24gU3lzdGVtPC9hdHRyZGVm +Pg0KICAgICAgICA8YXR0cmRlZnM+VS5TLiBHZW9sb2dpY2FsIFN1cnZleSBOYXRpb25hbCBXYXRl +ciBJbmZvcm1hdGlvbiBTeXN0ZW08L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAg +ICAgICAgPHVkb20+VG90YWwgY29udHJpYnV0aW5nIGFyZWEsIHNxdWFyZSBtaWxlczwvdWRvbT4N +CiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAg +ICA8YXR0cmxhYmw+UmVmZXJlbmNlVE5NSUROSERQb2ludEV2ZW50PC9hdHRybGFibD4NCiAgICAg +ICAgPGF0dHJkZWY+VW5pcXVlIGlkZW50aWZpZXIgZm9yIE5IRCBwb2ludCBldmVudCByZXByZXNl +bnRpbmcgZ2FnZTwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRz +IGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFz +ZXQ8L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPHVkb20+VW5pcXVl +IGlkZW50aWZpZXIgdGhhdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZDwvdWRvbT4NCiAgICAg +ICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8YXR0 +cmxhYmw+UmVtYXJrczwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRyZGVmPlJlbWFya3M8L2F0dHJk +ZWY+DQogICAgICAgIDxhdHRyZGVmcz5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBm +b3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0PC9hdHRyZGVmcz4NCiAg +ICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDx1ZG9tPkZyZWUgdGV4dCBob2xkaW5nIHJlbWFy +a3MgZnJvbSByZXZpZXdlcnMgYW5kL29yIGRhdGFzZXQgb3JpZ2luYXRvcjwvdWRvbT4NCiAgICAg +ICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICA8L2RldGFpbGVkPg0KICAgIDxkZXRh +aWxlZD4NCiAgICAgIDxlbnR0eXA+DQogICAgICAgIDxlbnR0eXBsPk5XSVNEcmFpbmFnZUxpbmU8 +L2VudHR5cGw+DQogICAgICAgIDxlbnR0eXBkPkxpbmUgZmVhdHVyZXMgcmVwcmVzZW50aW5nIHRo +ZSBib3VuZGFyeSBvZiB0aGUgY29udHJpYnV0aW5nIGdhZ2VkIGRyYWluYWdlIGFyZWE8L2VudHR5 +cGQ+DQogICAgICAgIDxlbnR0eXBkcz5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBm +b3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0PC9lbnR0eXBkcz4NCiAg +ICAgIDwvZW50dHlwPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5MZW5ndGhLbTwv +YXR0cmxhYmw+DQogICAgICAgIDxhdHRyZGVmPkxlbmd0aCBvZiB0aGUgbGluZTwvYXR0cmRlZj4N +CiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0 +aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQ8L2F0dHJkZWZzPg0KICAgICAg +ICA8YXR0cmRvbXY+DQogICAgICAgICAgPHVkb20+Q2FsY3VsYXRlZCBsaW5lIGxlbmd0aCwga2ls +b21ldGVyczwvdWRvbT4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAg +IDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmw+TGluZVNvdXJjZTwvYXR0cmxhYmw+DQogICAgICAg +IDxhdHRyZGVmPkNvZGUgaWRlbnRpZnlpbmcgdGhlIGJhc2UgZGF0YSB1c2VkIGZvciBkZWxpbmVh +dGluZyBoeWRyb2xvZ2ljIHVuaXQgYm91bmRhcmllczwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJk +ZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0 +ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQ8L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQog +ICAgICAgICAgPGNvZGVzZXRkPg0KICAgICAgICAgICAgPGNvZGVzZXRuPkZlZGVyYWwgU3RhbmRh +cmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERh +dGFzZXQgKFdCRCk8L2NvZGVzZXRuPg0KICAgICAgICAgICAgPGNvZGVzZXRzPlNlY3Rpb24gNjog +R2Vvc3BhdGlhbCBEYXRhIFN0cnVjdHVyZSBhbmQgQXR0cmlidXRlcyAoaHR0cDovL3B1YnMudXNn +cy5nb3YvdG0vMTEvYTMvKTwvY29kZXNldHM+DQogICAgICAgICAgPC9jb2Rlc2V0ZD4NCiAgICAg +ICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8YXR0 +cmxhYmw+QWdlbmN5Q29kZTwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRyZGVmPlNpdGUgQWdlbmN5 +IGNvZGU8L2F0dHJkZWY+DQogICAgICAgIDxhdHRyZGVmcz5VLlMuIEdlb2xvZ2ljYWwgU3VydmV5 +IE5hdGlvbmFsIFdhdGVyIEluZm9ybWF0aW9uIFN5c3RlbTwvYXR0cmRlZnM+DQogICAgICAgIDxh +dHRyZG9tdj4NCiAgICAgICAgICA8Y29kZXNldGQ+DQogICAgICAgICAgICA8Y29kZXNldG4+VS5T +LiBHZW9sb2dpY2FsIFN1cnZleSBOYXRpb25hbCBXYXRlciBJbmZvcm1hdGlvbiBTeXN0ZW08L2Nv +ZGVzZXRuPg0KICAgICAgICAgICAgPGNvZGVzZXRzPiBodHRwOi8vaGVscC53YXRlcmRhdGEudXNn +cy5nb3YvPC9jb2Rlc2V0cz4NCiAgICAgICAgICA8L2NvZGVzZXRkPg0KICAgICAgICA8L2F0dHJk +b212Pg0KICAgICAgPC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5TaXRl +TnVtYmVyPC9hdHRybGFibD4NCiAgICAgICAgPGF0dHJkZWY+VS5TLiBHZW9sb2dpY2FsIFN1cnZl +eSB1bmlxdWUgc2l0ZSBpZGVudGlmaWVyPC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRlZnM+VS5T +LiBHZW9sb2dpY2FsIFN1cnZleSBOYXRpb25hbCBXYXRlciBJbmZvcm1hdGlvbiBTeXN0ZW08L2F0 +dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPHVkb20+VW5pcXVlIGNvZGUg +aWRlbnRpZnlpbmcgYSBtZWFzdXJlbWVudCBzaXRlIGluIHRoZSBOYXRpb25hbCBXYXRlciBJbmZv +cm1hdGlvbiBTeXN0ZW0gZGF0YWJhc2U8L3Vkb20+DQogICAgICAgIDwvYXR0cmRvbXY+DQogICAg +ICA8L2F0dHI+DQogICAgPC9kZXRhaWxlZD4NCiAgICA8ZGV0YWlsZWQ+DQogICAgICA8ZW50dHlw +Pg0KICAgICAgICA8ZW50dHlwbD5XQkRMaW5lLCBXQkRIVTIsIFdCREhVNCwgV0JESFU2LCBXQkRI +VTgsIFdCREhVMTAsIFdCREhVMTIsIFdCREhVMTQsIFdCREhVMTYsIE5XSVNEcmFpbmFnZUFyZWEs +IE5XSVNEcmFpbmFnZUxpbmUsIE5vbkNvbnRyaWJ1dGluZ0RyYWluYWdlQXJlYSwgTm9uQ29udHJp +YnV0aW5nRHJhaW5hZ2VMaW5lPC9lbnR0eXBsPg0KICAgICAgICA8ZW50dHlwZD5UaGUgZm9sbG93 +aW5nIGF0dHJpYnV0ZSBmaWVsZHMgYXJlIGNvbW1vbiB0byBhbGwgZmVhdHVyZSBjbGFzc2VzIHdp +dGhpbiB0aGUgV0JEIDwvZW50dHlwZD4NCiAgICAgICAgPGVudHR5cGRzPkZlZGVyYWwgU3RhbmRh +cmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERh +dGFzZXQ8L2VudHR5cGRzPg0KICAgICAgPC9lbnR0eXA+DQogICAgICA8YXR0cj4NCiAgICAgICAg +PGF0dHJsYWJsPk9CSkVDVElEPC9hdHRybGFibD4NCiAgICAgICAgPGF0dHJkZWY+SW50ZXJuYWwg +ZmVhdHVyZSBudW1iZXIuPC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRlZnM+RVNSSTwvYXR0cmRl +ZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8dWRvbT5TZXF1ZW50aWFsIHVuaXF1 +ZSB3aG9sZSBudW1iZXJzIHRoYXQgYXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkLjwvdWRvbT4N +CiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAg +ICA8YXR0cmxhYmw+U2hhcGU8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5GZWF0dXJlIGdl +b21ldHJ5LjwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPkVTUkk8L2F0dHJkZWZzPg0KICAg +ICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPHVkb20+Q29vcmRpbmF0ZXMgZGVmaW5pbmcgdGhl +IGZlYXR1cmVzLjwvdWRvbT4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAg +ICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmw+VE5NSUQ8L2F0dHJsYWJsPg0KICAgICAgICA8 +YXR0cmRlZj5UTk1JRCAoc2hvcnQgZm9yIFRoZSBOYXRpb25hbCBNYXAgSWRlbnRpZmljYXRpb24p +IGlzIGEgdW5pcXVlIDQwLWNoYXJhY3RlciBmaWVsZCB0aGF0IGlkZW50aWZpZXMgZWFjaCBlbGVt +ZW50IGluIHRoZSBkYXRhYmFzZSBleGNsdXNpdmVseS48L2F0dHJkZWY+DQogICAgICAgIDxhdHRy +ZGVmcz5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdh +dGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0IChXQkQpPC9hdHRyZGVmcz4NCiAgICAgICAgPGF0dHJk +b212Pg0KICAgICAgICAgIDx1ZG9tPlROTUlEIGlzIGFuIGF1dG9tYXRpY2FsbHkgYXNzaWduZWQg +Y29kZSB0aGF0IHN0YXlzIHdpdGggZWFjaCBlbGVtZW50LiBXaGVuIGFuIGVsZW1lbnQgaXMgdXBk +YXRlZCBvciBjaGFuZ2VkLCBUTk1JRCBsaW5rcyB0aGUgZWxlbWVudCB0byB0aGUgbWV0YWRhdGEg +cmVjb3JkIGFuZCBkb2N1bWVudHMgdGhlIGNoYW5nZS4gVE5NSUQgaXMgYWxzbyB1c2VkIHRvIG1h +aW50YWluIHJlbGF0aW9uc2hpcCBjbGFzc2VzIGluIHRoZSBub3JtYWxpemVkIGRhdGEgbW9kZWwu +IFdoZW4gYW4gZWxlbWVudCBpcyBkZWxldGVkIG9yIHNwbGl0LCBUTk1JRCBzdGF5cyB3aXRoIHRo +ZSBvcmlnaW5hbCBlbGVtZW50IGFuZCBpcyBub3QgdXNlZCBhZ2Fpbi4gV2hlbiBhbiBlbGVtZW50 +IGlzIHNwbGl0LCBuZXcgcGVybWFuZW50IGlkZW50aWZpZXJzIGFyZSBhc3NpZ25lZCB0byB0aGUg +cmVzdWx0YW50IHBhcnRzLjwvdWRvbT4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0 +cj4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmw+TWV0YVNvdXJjZUlEPC9hdHRybGFi +bD4NCiAgICAgICAgPGF0dHJkZWY+TWV0YVNvdXJjZUlEIGlzIGEgdW5pcXVlIGlkZW50aWZpZXIg +dGhhdCBsaW5rcyB0aGUgZWxlbWVudCB0byB0aGUgbWV0YWRhdGEgdGFibGVzLjwvYXR0cmRlZj4N +CiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0 +aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2F0dHJkZWZzPg0K +ICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPHVkb20+TWV0YVNvdXJjZUlEIGlzIGEgdW5p +cXVlIGlkZW50aWZpZXIgdGhhdCBsaW5rcyB0aGUgZWxlbWVudCB0byB0aGUgbWV0YWRhdGEgdGFi +bGVzLiBUaGlzIElEIGlzIGdlbmVyYXRlZCBhbmQgYXNzaWduZWQgYXV0b21hdGljYWxseSBieSB0 +aGUgZGF0YWJhc2UgYW5kIHJlbWFpbnMgd2l0aCB0aGUgb2JqZWN0IHBlcm1hbmVudGx5LjwvdWRv +bT4NCiAgICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAg +ICAgICA8YXR0cmxhYmw+U291cmNlRGF0YURlc2M8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRl +Zj5Tb3VyY2VEYXRhRGVzYyBpcyBhIHNwYWNlIHByb3ZpZGVkIGZvciBhIGJyaWVmIGRlc2NyaXB0 +aW9uIG9mIHRoZSB0eXBlIG9mIGJhc2UgZGF0YSB1c2VkIHRvIHVwZGF0ZSBvciBjaGFuZ2UgdGhl +IGN1cnJlbnQgV0JELjwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRh +cmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERh +dGFzZXQgKFdCRCk8L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPHVk +b20+VGhlIFdCRCBJbi1TdGF0ZSBTdGV3YXJkIGNvbXBsZXRlcyB0aGlzIGZpZWxkIGFzIHBhcnQg +b2YgdGhlIG1ldGFkYXRhIGZvcm0uPC91ZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAg +PC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5Tb3VyY2VPcmlnaW5hdG9y +PC9hdHRybGFibD4NCiAgICAgICAgPGF0dHJkZWY+U291cmNlT3JpZ2luYXRvciBpcyB0aGUgZGVz +Y3JpcHRpb24gb2YgdGhlIGFnZW5jeSB0aGF0IGNyZWF0ZWQgdGhlIGJhc2UgZGF0YSB1c2VkIHRv +IGltcHJvdmUgdGhlIFdCRC48L2F0dHJkZWY+DQogICAgICAgIDxhdHRyZGVmcz5GZWRlcmFsIFN0 +YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFy +eSBEYXRhc2V0IChXQkQpPC9hdHRyZGVmcz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAg +IDx1ZG9tPlRoZSBXQkQgSW4tU3RhdGUgU3Rld2FyZCBjb21wbGV0ZXMgdGhpcyBmaWVsZCBhcyBw +YXJ0IG9mIHRoZSBtZXRhZGF0YSBmb3JtPC91ZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAg +ICAgPC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5Tb3VyY2VGZWF0dXJl +SUQ8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5Tb3VyY2VGZWF0dXJlSUQgaXMgYSBsb25n +LCB1bmlxdWUgY29kZS48L2F0dHJkZWY+DQogICAgICAgIDxhdHRyZGVmcz5GZWRlcmFsIFN0YW5k +YXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBE +YXRhc2V0IChXQkQpPC9hdHRyZGVmcz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDx1 +ZG9tPlRoaXMgY29kZSBpZGVudGlmaWVzIHRoZSBwYXJlbnQgb2YgdGhlIGZlYXR1cmUgaWYgdGhl +IGZlYXR1cmUgaXMgdGhlIHJlc3VsdCBvZiBhIHNwbGl0IG9yIG1lcmdlLCBhbmQgaXQgaXMgYXV0 +b21hdGljYWxseSBnZW5lcmF0ZWQgYW5kIGFzc2lnbmVkLjwvdWRvbT4NCiAgICAgICAgPC9hdHRy +ZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmw+TG9h +ZERhdGU8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5Mb2FkRGF0ZSByZXByZXNlbnRzIHRo +ZSBkYXRlIHdoZW4gdGhlIGRhdGEgd2VyZSBsb2FkZWQgaW50byB0aGUgb2ZmaWNpYWwgVVNHUyBX +QkQgQXJjU0RFIGRhdGFiYXNlLiBUaGUgZmllbGQgaXMgdGhlIGVmZmVjdGl2ZSBkYXRlIGZvciBh +bGwgZmVhdHVyZSBlZGl0cywgYW5kIGl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkLjwvYXR0 +cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVz +IGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2F0dHJk +ZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPHJkb20+DQogICAgICAgICAgICA8 +cmRvbW1pbj4xMjowMDowMCBBTTwvcmRvbW1pbj4NCiAgICAgICAgICAgIDxyZG9tbWF4PjUvMjIv +MjAxNSA5OjE4OjU0IEFNPC9yZG9tbWF4Pg0KICAgICAgICAgIDwvcmRvbT4NCiAgICAgICAgPC9h +dHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmw+ +U0hBUEVfTGVuZ3RoPC9hdHRybGFibD4NCiAgICAgICAgPGF0dHJkZWY+TGVuZ3RoIG9mIGZlYXR1 +cmUgaW4gaW50ZXJuYWwgdW5pdHMuPC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRlZnM+RXNyaTwv +YXR0cmRlZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8cmRvbT4NCiAgICAgICAg +ICAgIDxyZG9tbWluPjAuMDA5Njk2NjgxMzU2MjA0NDI8L3Jkb21taW4+DQogICAgICAgICAgICA8 +cmRvbW1heD4xNTYuMTA2Mzk0ODkzNTY0PC9yZG9tbWF4Pg0KICAgICAgICAgIDwvcmRvbT4NCiAg +ICAgICAgPC9hdHRyZG9tdj4NCiAgICAgIDwvYXR0cj4NCiAgICA8L2RldGFpbGVkPg0KICAgIDxk +ZXRhaWxlZD4NCiAgICAgIDxlbnR0eXA+DQogICAgICAgIDxlbnR0eXBsPldCREhVMiwgV0JESFU0 +LCBXQkRIVTYsIFdCREhVOCwgV0JESFUxMCwgV0JESFUxMiwgV0JESFUxNCwgV0JESFUxNiwgTldJ +U0RyYWluYWdlQXJlYSwgTm9uQ29udHJpYnV0aW5nRHJhaW5hZ2VBcmVhPC9lbnR0eXBsPg0KICAg +ICAgICA8ZW50dHlwZD5UaGUgZm9sbG93aW5nIGF0dHJpYnV0ZSBmaWVsZCBpcyBjb21tb24gdG8g +YWxsIHBvbHlnb24gZmVhdHVyZSBjbGFzc2VzIHdpdGhpbiB0aGUgV0JEIDwvZW50dHlwZD4NCiAg +ICAgICAgPGVudHR5cGRzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUg +TmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQ8L2VudHR5cGRzPg0KICAgICAgPC9l +bnR0eXA+DQogICAgICA8YXR0cj4NCiAgICAgICAgPGF0dHJsYWJsPlNoYXBlX0FyZWE8L2F0dHJs +YWJsPg0KICAgICAgICA8YXR0cmRlZj5BcmVhIG9mIGZlYXR1cmUgaW4gaW50ZXJuYWwgdW5pdHMg +c3F1YXJlZC48L2F0dHJkZWY+DQogICAgICAgIDxhdHRyZGVmcz5Fc3JpPC9hdHRyZGVmcz4NCiAg +ICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDxyZG9tPg0KICAgICAgICAgICAgPHJkb21taW4+ +MS40ODc3NjM1MTc5MzM5RS0wNjwvcmRvbW1pbj4NCiAgICAgICAgICAgIDxyZG9tbWF4PjkuNzky +OTkzMTAyMjk4MDg8L3Jkb21tYXg+DQogICAgICAgICAgPC9yZG9tPg0KICAgICAgICA8L2F0dHJk +b212Pg0KICAgICAgPC9hdHRyPg0KICAgIDwvZGV0YWlsZWQ+DQogICAgPGRldGFpbGVkPg0KICAg +ICAgPGVudHR5cD4NCiAgICAgICAgPGVudHR5cGw+V0JESFUyLCBXQkRIVTQsIFdCREhVNiwgV0JE +SFU4LCBXQkRIVTEwLCBXQkRIVTEyLCBXQkRIVTE0LCBXQkRIVTE2PC9lbnR0eXBsPg0KICAgICAg +ICA8ZW50dHlwZD5UaGUgZm9sbG93aW5nIGF0dHJpYnV0ZSBmaWVsZHMgYXJlIGNvbW1vbiB0byB0 +aGUgV0JEIGh5ZHJvbG9naWMgdW5pdCBwb2x5Z29uIGRhdGFzZXRzPC9lbnR0eXBkPg0KICAgICAg +ICA8ZW50dHlwZHM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRp +b25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldDwvZW50dHlwZHM+DQogICAgICA8L2VudHR5 +cD4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8YXR0cmxhYmw+R05JU19JRDwvYXR0cmxhYmw+DQog +ICAgICAgIDxhdHRyZGVmPkdOSVNfSUQgaXMgYSBwcmVhc3NpZ25lZCBudW1lcmljIGZpZWxkIHRo +YXQgdXNlcyBhIHVuaXF1ZSBudW1iZXIgdG8gcmVsYXRlIHRoZSBuYW1lIG9mIHRoZSBoeWRyb2xv +Z2ljIHVuaXQgdG8gdGhlIEdOSVMgbmFtZXMgZGF0YWJhc2UuPC9hdHRyZGVmPg0KICAgICAgICA8 +YXR0cmRlZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25h +bCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvYXR0cmRlZnM+DQogICAgICAgIDxh +dHRyZG9tdj4NCiAgICAgICAgICA8Y29kZXNldGQ+DQogICAgICAgICAgICA8Y29kZXNldG4+R2Vv +Z3JhcGhpYyBOYW1lcyBJbmZvcm1hdGlvbiBTeXN0ZW0gKEdOSVMpPC9jb2Rlc2V0bj4NCiAgICAg +ICAgICAgIDxjb2Rlc2V0cz5HTklTIChodHRwOi8vZ25pcy51c2dzLmdvdi8pPC9jb2Rlc2V0cz4N +CiAgICAgICAgICA8L2NvZGVzZXRkPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRy +Pg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5BcmVhQWNyZXM8L2F0dHJsYWJsPg0K +ICAgICAgICA8YXR0cmRlZj5UaGUgYXJlYSBvZiBlYWNoIGh5ZHJvbG9naWMgdW5pdCBpbmNsdWRp +bmcgbm9uLWNvbnRyaWJ1dGluZyBhcmVhcyBzdG9yZWQgaW4gYWNyZXMNCkFyZWFBY3JlcyBpcyBj +b21tb24gdG8gYWxsIHBvbHlnb24gZmVhdHVyZSBjbGFzc2VzIGFuZCBpcyBjYWxjdWxhdGVkIGF0 +IHRoZSAxMi1kaWdpdCBoeWRyb2xvZ2ljIHVuaXQgZnJvbSB0aGUgaW50cmluc2ljIGFyZWEgdmFs +dWUgbWFpbnRhaW5lZCBieSB0aGUgR0lTIHNvZnR3YXJlOyB0aGVyZWZvcmUsIGFjcmVhZ2UgdmFs +dWVzIG1heSB2YXJ5IGZyb20gdXNlciBjYWxjdWxhdGlvbnMsIGRlcGVuZGluZyBvbiB0aGUgcHJv +amVjdGlvbiBvZiB0aGUgZGF0YS4gTm9ydGggQW1lcmljYW4gQWxiZXJzIEVxdWFsIEFyZWEgQ29u +aWMsIE5vcnRoIEFtZXJpY2FuIERhdHVtIDE5ODMgaXMgdGhlIHJlcXVpcmVkIHByb2plY3Rpb24g +dG8gdXNlIGZvciBjYWxjdWxhdGlvbi4gSWYgdGhlIHVuaXRzIG9mIHRoZSBhcmVhIGZpZWxkIGFy +ZSBzdG9yZWQgaW4gc3F1YXJlIG1ldGVycywgdGhlbiB1c2UgdGhlIGNvbnZlcnNpb24gZmFjdG9y +IDAuMDAwMjQ3MS4gRm9yIGV4YW1wbGUsIDQwLDQ2OSw0NDYgc3F1YXJlIG1ldGVycyBtdWx0aXBs +aWVkIGJ5IDAuMDAwMjQ3MSA9MTAsMDAwIGFjcmVzPC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRl +ZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBXYXRl +cnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvYXR0cmRlZnM+DQogICAgICAgIDxhdHRyZG9t +dj4NCiAgICAgICAgICA8cmRvbT4NCiAgICAgICAgICAgIDxyZG9tbWluPjA8L3Jkb21taW4+DQog +ICAgICAgICAgICA8cmRvbW1heD41MDAwMDAwMDwvcmRvbW1heD4NCiAgICAgICAgICAgIDxhdHRy +dW5pdD5hY3JlczwvYXR0cnVuaXQ+DQogICAgICAgICAgPC9yZG9tPg0KICAgICAgICA8L2F0dHJk +b212Pg0KICAgICAgPC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5BcmVh +U3FLbTwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRyZGVmPlRoZSBhcmVhIG9mIGVhY2ggaHlkcm9s +b2dpYyB1bml0IGluY2x1ZGluZyBub24tY29udHJpYnV0aW5nIGFyZWFzIHN0b3JlZCBpbiBzcXVh +cmUga2lsb21ldGVycy4NCkFyZWFTcUttIGlzIGNhbGN1bGF0ZWQgYXQgdGhlIDEyLWRpZ2l0IGh5 +ZHJvbG9naWMgdW5pdCBmcm9tIHRoZSBpbnRyaW5zaWMgYXJlYSB2YWx1ZSBtYWludGFpbmVkIGJ5 +IHRoZSBHSVMgc29mdHdhcmU7IHRoZXJlZm9yZSwgdGhlIHNxdWFyZSBraWxvbWV0ZXIgdmFsdWVz +IG1heSB2YXJ5IGZyb20gdXNlciBjYWxjdWxhdGlvbnMsIGRlcGVuZGluZyBvbiB0aGUgcHJvamVj +dGlvbiBvZiB0aGUgZGF0YS4gTm9ydGggQW1lcmljYW4gQWxiZXJzIEVxdWFsIEFyZWEgQ29uaWMs +IE5vcnRoIEFtZXJpY2FuIERhdHVtIDE5ODMgaXMgdGhlIGRlZmF1bHQgcHJvamVjdGlvbi48L2F0 +dHJkZWY+DQogICAgICAgIDxhdHRyZGVmcz5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2VkdXJl +cyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0IChXQkQpPC9hdHRy +ZGVmcz4NCiAgICAgICAgPGF0dHJkb212Pg0KICAgICAgICAgIDxyZG9tPg0KICAgICAgICAgICAg +PHJkb21taW4+MDwvcmRvbW1pbj4NCiAgICAgICAgICAgIDxyZG9tbWF4PjEwMDAwMDwvcmRvbW1h +eD4NCiAgICAgICAgICAgIDxhdHRydW5pdD5zcXVhcmUga2lsb21ldGVyczwvYXR0cnVuaXQ+DQog +ICAgICAgICAgPC9yZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0KICAg +ICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5TdGF0ZXM8L2F0dHJsYWJsPg0KICAgICAgICA8 +YXR0cmRlZj5UaGUgU3RhdGVzIG9yIG91dGx5aW5nIGFyZWEgYXR0cmlidXRlIGlkZW50aWZpZXMg +dGhlIFN0YXRlKHMpIG9yIG91dGx5aW5nIGFyZWFzIHRoYXQgdGhlIGh5ZHJvbG9naWMgdW5pdCBm +YWxscyB3aXRoaW4gb3IgdG91Y2hlcy4gV2lsbCBiZSBwb3B1bGF0ZWQgd2l0aCB0aGUgMiBjaGFy +YWN0ZXIgc3RhdGUgYWJicmV2aWF0aW9uIG9yIG91dGx5aW5nIGFyZWEgYXR0cmlidXRlIGZvciBl +YWNoIGFyZWEgdGhhdCB0aGUgdW5pdCBmYWxscyB3aXRoaW4gaW4gYWxwaGFiZXRpY2FsIG9yZGVy +LjwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9j +ZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8 +L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPGNvZGVzZXRkPg0KICAg +ICAgICAgICAgPGNvZGVzZXRuPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0 +aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8L2NvZGVzZXRuPg0K +ICAgICAgICAgICAgPGNvZGVzZXRzPlNlY3Rpb24gNjogR2Vvc3BhdGlhbCBEYXRhIFN0cnVjdHVy +ZSBhbmQgQXR0cmlidXRlcyBodHRwOi8vcHVicy51c2dzLmdvdi90bS8xMS9hMy8pPC9jb2Rlc2V0 +cz4NCiAgICAgICAgICA8L2NvZGVzZXRkPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9h +dHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5OYW1lPC9hdHRybGFibD4NCiAg +ICAgICAgPGF0dHJkZWY+TmFtZSByZWZlcnMgdG8gdGhlIEdOSVMgbmFtZSBmb3IgdGhlIGdlb2dy +YXBoaWMgYXJlYSBpbiB3aGljaCB0aGUgaHlkcm9sb2dpYyB1bml0IGlzIGxvY2F0ZWQuPC9hdHRy +ZGVmPg0KICAgICAgICA8YXR0cmRlZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMg +Zm9yIHRoZSBOYXRpb25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvYXR0cmRl +ZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8Y29kZXNldGQ+DQogICAgICAgICAg +ICA8Y29kZXNldG4+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRp +b25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvY29kZXNldG4+DQogICAgICAg +ICAgICA8Y29kZXNldHM+U2VjdGlvbiA2OiBHZW9zcGF0aWFsIERhdGEgU3RydWN0dXJlIGFuZCBB +dHRyaWJ1dGVzIChodHRwOi8vcHVicy51c2dzLmdvdi90bS8xMS9hMy8pPC9jb2Rlc2V0cz4NCiAg +ICAgICAgICA8L2NvZGVzZXRkPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0K +ICAgIDwvZGV0YWlsZWQ+DQogICAgPGRldGFpbGVkPg0KICAgICAgPGVudHR5cD4NCiAgICAgICAg +PGVudHR5cGw+V0JESFUxMCwgV0JESFUxMiwgV0JESFUxNCwgV0JESFUxNjwvZW50dHlwbD4NCiAg +ICAgICAgPGVudHR5cGQ+VGhlIGZvbGxvd2luZyBhdHRyaWJ1dGUgZmllbGRzIGFyZSBjb21tb24g +dG8gdGhlIDEwLWRpZ2l0LCAxMi1kaWdpdCwgMTQtZGlnaXQgYW5kIDE2LWRpZ2l0IFdCRCBwb2x5 +Z29uIGRhdGFzZXRzPC9lbnR0eXBkPg0KICAgICAgICA8ZW50dHlwZHM+RmVkZXJhbCBTdGFuZGFy +ZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0 +YXNldDwvZW50dHlwZHM+DQogICAgICA8L2VudHR5cD4NCiAgICAgIDxhdHRyPg0KICAgICAgICA8 +YXR0cmxhYmw+SFVUeXBlPC9hdHRybGFibD4NCiAgICAgICAgPGF0dHJkZWY+VGhlIDEyLWRpZ2l0 +IGh5ZHJvbG9naWMgdW5pdCB0eXBlIGF0dHJpYnV0ZSBpcyB0aGUgc2luZ2xlLWxldHRlciBhYmJy +ZXZpYXRpb24gZm9yIFdhdGVyc2hlZCB0eXBlIGZyb20gdGhlIGxpc3Qgb2Ygb2ZmaWNpYWwgbmFt +ZXMgcHJvdmlkZWQgaW4gdGhlIFdCRCBTdGFuZGFyZHMuPC9hdHRyZGVmPg0KICAgICAgICA8YXR0 +cmRlZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBX +YXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvYXR0cmRlZnM+DQogICAgICAgIDxhdHRy +ZG9tdj4NCiAgICAgICAgICA8Y29kZXNldGQ+DQogICAgICAgICAgICA8Y29kZXNldG4+RmVkZXJh +bCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBXYXRlcnNoZWQgQm91 +bmRhcnkgRGF0YXNldCAoV0JEKTwvY29kZXNldG4+DQogICAgICAgICAgICA8Y29kZXNldHM+U2Vj +dGlvbiA2OiBHZW9zcGF0aWFsIERhdGEgU3RydWN0dXJlIGFuZCBBdHRyaWJ1dGVzIChodHRwOi8v +cHVicy51c2dzLmdvdi90bS8xMS9hMy8pPC9jb2Rlc2V0cz4NCiAgICAgICAgICA8L2NvZGVzZXRk +Pg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAg +ICAgIDxhdHRybGFibD5IVU1vZDwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRyZGVmPlRoZSBoeWRy +b2xvZ2ljIHVuaXQgbW9kaWZpY2F0aW9uIGF0dHJpYnV0ZSBpcyBhIHR3by1jaGFyYWN0ZXIsIHVw +cGVyY2FzZSBhYmJyZXZpYXRpb24ocykgZm9yIGVpdGhlciAoMSkgdGhlIHR5cGUgb2YgbW9kaWZp +Y2F0aW9uIHRvIG5hdHVyYWwgb3ZlcmxhbmQgZmxvdyB0aGF0IGFsdGVycyB0aGUgbmF0dXJhbCBk +ZWxpbmVhdGlvbiBvZiBhIGh5ZHJvbG9naWMgdW5pdCBvciAoMikgdGhlIHNwZWNpYWwgY29uZGl0 +aW9ucyBHRi1ncm91bmR3YXRlciBmbG93LCBHTC1nbGFjaWVyLCBJRi1pY2UgZmllbGQsIEtBLWth +cnN0LCBhbmQgTkMtbm9uY29udHJpYnV0aW5nIGFyZWEuIFRoZSB2YWx1ZSBvZiB0aGUgSFVNb2Qg +ZmllbGQgaGVscHMgdG8gaW5kaWNhdGUgd2hlcmUgdGhlIG1vZGlmaWNhdGlvbiB0byB0aGUgaHlk +cm9sb2dpYyB1bml0IGlzIGxvY2F0ZWQuIElmIG1vcmUgdGhhbiBvbmUgYWJicmV2aWF0aW9uIGlz +IHVzZWQsIHRoZSB3aWxsIGJlIHNlcGFyYXRlZCBieSBjb21tYXMgd2l0aG91dCBzcGFjZXMgYW5k +IGxpc3RlZCBmcm9tIG1vc3QgdG8gbGVhc3QgcHJlZG9taW5hbnQuPC9hdHRyZGVmPg0KICAgICAg +ICA8YXR0cmRlZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRp +b25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvYXR0cmRlZnM+DQogICAgICAg +IDxhdHRyZG9tdj4NCiAgICAgICAgICA8Y29kZXNldGQ+DQogICAgICAgICAgICA8Y29kZXNldG4+ +RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2NlZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBXYXRlcnNo +ZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwvY29kZXNldG4+DQogICAgICAgICAgICA8Y29kZXNl +dHM+U2VjdGlvbiA2OiBHZW9zcGF0aWFsIERhdGEgU3RydWN0dXJlIGFuZCBBdHRyaWJ1dGVzICho +dHRwOi8vcHVicy51c2dzLmdvdi90bS8xMS9hMy8pPC9jb2Rlc2V0cz4NCiAgICAgICAgICA8L2Nv +ZGVzZXRkPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9hdHRyPg0KICAgIDwvZGV0YWls +ZWQ+DQogICAgPGRldGFpbGVkPg0KICAgICAgPGVudHR5cD4NCiAgICAgICAgPGVudHR5cGw+V0JE +SFUxMiwgV0JESFUxNCwgV0JESFUxNiwgTldJU0RyYWluYWdlQXJlYSBhbmQgTm9uQ29udHJpYnV0 +aW5nRHJhaW5hZ2VBcmVhPC9lbnR0eXBsPg0KICAgICAgICA8ZW50dHlwZD5UaGUgZm9sbG93aW5n +IGF0dHJpYnV0ZSBmaWVsZHMgYXJlIGNvbW1vbiB0byB0aGUgMTItZGlnaXQsIDE0LWRpZ2l0IGFu +ZCAxNi1kaWdpdCBXQkQgcG9seWdvbiBkYXRhc2V0cyBhcyB3ZWxsIGFzIHRoZSBOV0lTRHJhaW5h +Z2VBcmVhLCBhbmQgTm9uQ29udHJpYnV0aW5nRHJhaW5hZ2VBcmVhIHBvbHlnb24gZGF0YXNldHM8 +L2VudHR5cGQ+DQogICAgICAgIDxlbnR0eXBkcz5GZWRlcmFsIFN0YW5kYXJkcyBhbmQgUHJvY2Vk +dXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0PC9lbnR0eXBk +cz4NCiAgICAgIDwvZW50dHlwPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5Ob25D +b250cmlidXRpbmdBcmVhQWNyZXM8L2F0dHJsYWJsPg0KICAgICAgICA8YXR0cmRlZj5UaGUgbm9u +Y29udHJpYnV0aW5nIGFyZWEgYXR0cmlidXRlIHJlcHJlc2VudHMgdGhlIGFyZWEsIGluIGFjcmVz +LCBvZiBoeWRyb2xvZ2ljIHVuaXRzIHRoYXQgZG8gbm90IGNvbnRyaWJ1dGUgdG8gZG93bnN0cmVh +bSBhY2N1bXVsYXRpb24gb2Ygc3RyZWFtZmxvdyB1bmRlciBub3JtYWwgZmxvdyBjb25kaXRpb25z +LjwvYXR0cmRlZj4NCiAgICAgICAgPGF0dHJkZWZzPkZlZGVyYWwgU3RhbmRhcmRzIGFuZCBQcm9j +ZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgKFdCRCk8 +L2F0dHJkZWZzPg0KICAgICAgICA8YXR0cmRvbXY+DQogICAgICAgICAgPHJkb20+DQogICAgICAg +ICAgICA8cmRvbW1pbj4wPC9yZG9tbWluPg0KICAgICAgICAgICAgPHJkb21tYXg+NTAwMDAwMDA8 +L3Jkb21tYXg+DQogICAgICAgICAgPC9yZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAg +PC9hdHRyPg0KICAgICAgPGF0dHI+DQogICAgICAgIDxhdHRybGFibD5Ob25Db250cmlidXRpbmdB +cmVhU3FLbTwvYXR0cmxhYmw+DQogICAgICAgIDxhdHRyZGVmPlRoZSBub25jb250cmlidXRpbmcg +YXJlYSBhdHRyaWJ1dGUgcmVwcmVzZW50cyB0aGUgYXJlYSwgaW4gc3F1YXJlIGtpbG9tZXRlcnMs +IG9mIGh5ZHJvbG9naWMgdW5pdHMgdGhhdCBkbyBub3QgY29udHJpYnV0ZSB0byBkb3duc3RyZWFt +IGFjY3VtdWxhdGlvbiBvZiBzdHJlYW1mbG93IHVuZGVyIG5vcm1hbCBmbG93IGNvbmRpdGlvbnMu +PC9hdHRyZGVmPg0KICAgICAgICA8YXR0cmRlZnM+RmVkZXJhbCBTdGFuZGFyZHMgYW5kIFByb2Nl +ZHVyZXMgZm9yIHRoZSBOYXRpb25hbCBXYXRlcnNoZWQgQm91bmRhcnkgRGF0YXNldCAoV0JEKTwv +YXR0cmRlZnM+DQogICAgICAgIDxhdHRyZG9tdj4NCiAgICAgICAgICA8cmRvbT4NCiAgICAgICAg +ICAgIDxyZG9tbWluPjA8L3Jkb21taW4+DQogICAgICAgICAgICA8cmRvbW1heD4xMDAwMDA8L3Jk +b21tYXg+DQogICAgICAgICAgPC9yZG9tPg0KICAgICAgICA8L2F0dHJkb212Pg0KICAgICAgPC9h +dHRyPg0KICAgIDwvZGV0YWlsZWQ+DQogICAgPG92ZXJ2aWV3Pg0KICAgICAgPGVhb3Zlcj5UaGUg +V2F0ZXJzaGVkIEJvdW5kYXJ5IERhdGFzZXQgaXMgYSBjb21wcmVoZW5zaXZlIHNldCBvZiBkaWdp +dGFsIHNwYXRpYWwgZGF0YSB0aGF0IHJlcHJlc2VudHMgdGhlIHN1cmZhY2UgZHJhaW5hZ2VzIGFy +ZWFzIG9mIHRoZSBVbml0ZWQgU3RhdGVzLiBUaGUgaW5mb3JtYXRpb24gaW5jbHVkZWQgd2l0aCB0 +aGUgZmVhdHVyZXMgaW5jbHVkZXMgYSBmZWF0dXJlIGRhdGUsIGEgdW5pcXVlIGNvbW1vbiBpZGVu +dGlmaWVyLCBuYW1lLCB0aGUgZmVhdHVyZSBsZW5ndGggb3IgYXJlYSwgYW5kIG90aGVyIGNoYXJh +Y3RlcmlzdGljcy4gTmFtZXMgYW5kIHRoZWlyIGlkZW50aWZpZXJzIGFyZSBhc3NpZ25lZCBmcm9t +IHRoZSBHZW9ncmFwaGljIE5hbWVzIEluZm9ybWF0aW9uIFN5c3RlbS4gVGhlIGRhdGEgYWxzbyBj +b250YWlucyByZWxhdGlvbnMgdGhhdCBlbmNvZGUgbWV0YWRhdGEuIFRoZSBuYW1lcyBhbmQgZGVm +aW5pdGlvbnMgb2YgYWxsIHRoZXNlIGZlYXR1cmUgYXR0cmlidXRlcyBhcmUgaW4gdGhlIEZlZGVy +YWwgU3RhbmRhcmRzIGFuZCBQcm9jZWR1cmVzIGZvciB0aGUgTmF0aW9uYWwgV2F0ZXJzaGVkIEJv +dW5kYXJ5IERhdGFzZXQgKFdCRCkuIFRoZSBkb2N1bWVudCBpcyBhdmFpbGFibGUgb25saW5lIGF0 +IGh0dHA6Ly9wdWJzLnVzZ3MuZ292L3RtLzExL2EzLy48L2Vhb3Zlcj4NCiAgICAgIDxlYWRldGNp +dD5UaGUgbmFtZXMgYW5kIGRlZmluaXRpb25zIG9mIGFsbCBmaWVsZHMgd2l0aGluIHRoZSBXQkQg +YXR0cmlidXRpb24gYXJlIGluIHRoZSBVLlMuIEdlb2xvZ2ljYWwgU3VydmV5LCBGZWRlcmFsIFN0 +YW5kYXJkcyBhbmQgUHJvY2VkdXJlcyBmb3IgdGhlIE5hdGlvbmFsIFdhdGVyc2hlZCBCb3VuZGFy +eSBEYXRhc2V0IChXQkQpLiBUaGUgZG9jdW1lbnQgaXMgYXZhaWxhYmxlIG9ubGluZSBhdCBodHRw +Oi8vcHVicy51c2dzLmdvdi90bS8xMS9hMy8uIEluZm9ybWF0aW9uIGFib3V0IHRoZSBhdHRyaWJ1 +dGUgdGFibGVzIGFuZCBmaWVsZHMgYXJlIGluIFNlY3Rpb24gNjogR2Vvc3BhdGlhbCBEYXRhIFN0 +cnVjdHVyZSBhbmQgQXR0cmlidXRlczwvZWFkZXRjaXQ+DQogICAgPC9vdmVydmlldz4NCiAgPC9l +YWluZm8+DQogIDxkaXN0aW5mbz4NCiAgICA8ZGlzdHJpYj4NCiAgICAgIDxjbnRpbmZvPg0KICAg +ICAgICA8Y250b3JncD4NCiAgICAgICAgICA8Y250b3JnPlUuUy4gR2VvbG9naWNhbCBTdXJ2ZXk8 +L2NudG9yZz4NCiAgICAgICAgPC9jbnRvcmdwPg0KICAgICAgICA8Y250YWRkcj4NCiAgICAgICAg +ICA8YWRkcnR5cGU+TWFpbGluZzwvYWRkcnR5cGU+DQogICAgICAgICAgPGFkZHJlc3M+VS5TLiBH +ZW9sb2dpY2FsIFN1cnZleSwgTmF0aW9uYWwgR2Vvc3BhdGlhbCBUZWNobmljYWwgT3BlcmF0aW9u +cyBDZW50ZXIsIFAuTy4gQm94IDI1MDQ2PC9hZGRyZXNzPg0KICAgICAgICAgIDxjaXR5PkRlbnZl +cjwvY2l0eT4NCiAgICAgICAgICA8c3RhdGU+Q088L3N0YXRlPg0KICAgICAgICAgIDxwb3N0YWw+ +ODAyMjU8L3Bvc3RhbD4NCiAgICAgICAgPC9jbnRhZGRyPg0KICAgICAgICA8Y250dm9pY2U+MS04 +NzctMjc1LTg3NDc8L2NudHZvaWNlPg0KICAgICAgICA8Y250ZW1haWw+YnBnZW9AdXNncy5nb3Y8 +L2NudGVtYWlsPg0KICAgICAgPC9jbnRpbmZvPg0KICAgIDwvZGlzdHJpYj4NCiAgICA8ZGlzdGxp +YWI+VGhlIGRpc3RyaWJ1dG9yIHNoYWxsIG5vdCBiZSBoZWxkIGxpYWJsZSBmb3IgaW1wcm9wZXIg +b3IgaW5jb3JyZWN0IHVzZSBvZiB0aGlzIGRhdGEsIGJhc2VkIG9uIHRoZSBkZXNjcmlwdGlvbiBv +ZiBhcHByb3ByaWF0ZS9pbmFwcHJvcHJpYXRlIHVzZXMgZGVzY3JpYmVkIGluIHRoaXMgbWV0YWRh +dGEgZG9jdW1lbnQuIEl0IGlzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRoYXQgdGhpcyBkYXRhIGlz +IGRpcmVjdGx5IGFjcXVpcmVkIGZyb20gdGhlIGRpc3RyaWJ1dG9yIGFuZCBub3QgaW5kaXJlY3Rs +eSB0aHJvdWdoIG90aGVyIHNvdXJjZXMgd2hpY2ggbWF5IGhhdmUgY2hhbmdlZCB0aGUgZGF0YSBp +biBzb21lIHdheS4gVGhlIFdhdGVyc2hlZCBCb3VuZGFyeSBEYXRhc2V0IGlzIHB1YmxpYyBpbmZv +cm1hdGlvbiBhbmQgbWF5IGJlIGludGVycHJldGVkIGJ5IGFsbCBvcmdhbml6YXRpb25zLCBhZ2Vu +Y2llcywgdW5pdHMgb2YgZ292ZXJubWVudCwgb3Igb3RoZXJzIGJhc2VkIG9uIG5lZWRzOyBob3dl +dmVyLCB0aGV5IGFyZSByZXNwb25zaWJsZSBmb3IgdGhlIGFwcHJvcHJpYXRlIGFwcGxpY2F0aW9u +IG9mIHRoZSBkYXRhLiBGZWRlcmFsLCBTdGF0ZSwgb3IgbG9jYWwgcmVndWxhdG9yeSBib2RpZXMg +YXJlIG5vdCB0byByZWFzc2lnbiB0byB0aGUgVS5TLiBEZXBhcnRtZW50IG9mIEFncmljdWx0dXJl +LU5hdHVyYWwgUmVzb3VyY2VzIENvbnNlcnZhdGlvbiBTZXJ2aWNlIG9yIHRoZSBVLlMuIEdlb2xv +Z2ljYWwgU3VydmV5IGFueSBhdXRob3JpdHkgZm9yIHRoZSBkZWNpc2lvbnMgdGhleSBtYWtlLiAg +UGhvdG9ncmFwaGljIG9yIGRpZ2l0YWwgZW5sYXJnZW1lbnQgb2YgdGhlc2UgbWFwcyB0byBzY2Fs +ZXMgZ3JlYXRlciB0aGFuIHRoYXQgYXQgd2hpY2ggdGhleSB3ZXJlIG9yaWdpbmFsbHkgZGVsaW5l +YXRlZCBjYW4gcmVzdWx0IGluIG1pc3JlcHJlc2VudGF0aW9uIG9mIHRoZSBkYXRhLiAgSWYgZW5s +YXJnZWQsIHRoZSBtYXBzIHdpbGwgbm90IGluY2x1ZGUgdGhlIGZpbmUgZGV0YWlsIHRoYXQgd291 +bGQgYmUgYXBwcm9wcmlhdGUgZm9yIG1hcHBpbmcgYXQgdGhlIHNtYWxsIHNjYWxlLiAgRGlnaXRh +bCBkYXRhIGZpbGVzIGFyZSBwZXJpb2RpY2FsbHkgdXBkYXRlZC4gRmlsZXMgYXJlIGRhdGVkLCBh +bmQgdXNlcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBvYnRhaW5pbmcgdGhlIGxhdGVzdCB2ZXJzaW9u +IG9mIHRoZSBkYXRhIGZyb20gdGhlIHNvdXJjZSBkaXN0cmlidXRvci48L2Rpc3RsaWFiPg0KICAg +IDxzdGRvcmRlcj4NCiAgICAgIDxkaWdmb3JtPg0KICAgICAgICA8ZGlndGluZm8+DQogICAgICAg +ICAgPGZvcm1uYW1lPlZlY3RvciBEaWdpdGFsIERhdGEgU2V0IChQb2x5Z29uKTwvZm9ybW5hbWU+ +DQogICAgICAgIDwvZGlndGluZm8+DQogICAgICAgIDxkaWd0b3B0Pg0KICAgICAgICAgIDxvbmxp +bm9wdD4NCiAgICAgICAgICAgIDxjb21wdXRlcj4NCiAgICAgICAgICAgICAgPG5ldHdvcmthPg0K +ICAgICAgICAgICAgICAgIDxuZXR3b3Jrcj5mdHA6Ly9yb2NreWZ0cC5jci51c2dzLmdvdi92ZGVs +aXZlcnkvRGF0YXNldHMvU3RhZ2VkL0h5ZHJvZ3JhcGh5L1dCRC9OYXRpb25hbC9HREIvTmF0aW9u +YWxfV0JELnppcDwvbmV0d29ya3I+DQogICAgICAgICAgICAgIDwvbmV0d29ya2E+DQogICAgICAg +ICAgICA8L2NvbXB1dGVyPg0KICAgICAgICAgIDwvb25saW5vcHQ+DQogICAgICAgIDwvZGlndG9w +dD4NCiAgICAgIDwvZGlnZm9ybT4NCiAgICAgIDxmZWVzPk5vbmUuIE5vIGZlZXMgYXJlIGFwcGxp +Y2FibGUgZm9yIG9idGFpbmluZyB0aGUgZGF0YSBzZXQuPC9mZWVzPg0KICAgIDwvc3Rkb3JkZXI+ +DQogIDwvZGlzdGluZm8+DQogIDxtZXRhaW5mbz4NCiAgICA8bWV0ZD4yMDE2MDcyNzwvbWV0ZD4N +CiAgICA8bWV0Yz4NCiAgICAgIDxjbnRpbmZvPg0KICAgICAgICA8Y250cGVycD4NCiAgICAgICAg +ICA8Y250cGVyPldCRCBQb2ludCBvZiBDb250YWN0PC9jbnRwZXI+DQogICAgICAgICAgPGNudG9y +Zz5VLlMuIEdlb2xvZ2ljYWwgU3VydmV5PC9jbnRvcmc+DQogICAgICAgIDwvY250cGVycD4NCiAg +ICAgICAgPGNudGFkZHI+DQogICAgICAgICAgPGFkZHJ0eXBlPk1haWxpbmc8L2FkZHJ0eXBlPg0K +ICAgICAgICAgIDxhZGRyZXNzPlUuUy4gR2VvbG9naWNhbCBTdXJ2ZXksIE5hdGlvbmFsIEdlb3Nw +YXRpYWwgVGVjaG5pY2FsIE9wZXJhdGlvbnMgQ2VudGVyLCBQLk8uIEJveCAyNTA0NjwvYWRkcmVz +cz4NCiAgICAgICAgICA8Y2l0eT5EZW52ZXI8L2NpdHk+DQogICAgICAgICAgPHN0YXRlPkNPPC9z +dGF0ZT4NCiAgICAgICAgICA8cG9zdGFsPjgwMjI1PC9wb3N0YWw+DQogICAgICAgIDwvY250YWRk +cj4NCiAgICAgICAgPGNudHZvaWNlPjEtODc3LTI3NS04NzQ3PC9jbnR2b2ljZT4NCiAgICAgICAg +PGNudGVtYWlsPmJwZ2VvQHVzZ3MuZ292PC9jbnRlbWFpbD4NCiAgICAgIDwvY250aW5mbz4NCiAg +ICA8L21ldGM+DQogICAgPG1ldHN0ZG4+RkdEQyBDb250ZW50IFN0YW5kYXJkIGZvciBEaWdpdGFs +IEdlb3NwYXRpYWwgTWV0YWRhdGE8L21ldHN0ZG4+DQogICAgPG1ldHN0ZHY+RkdEQy1TVEQtMDAx +LTE5OTg8L21ldHN0ZHY+DQogIDwvbWV0YWluZm8+DQogIDxFc3JpPg0KICAgIDxTeW5jRGF0ZT4y +MDE3MDExMDwvU3luY0RhdGU+DQogICAgPFN5bmNUaW1lPjEwNTgwNjAwPC9TeW5jVGltZT4NCiAg +ICA8TW9kRGF0ZT4yMDE3MDExMDwvTW9kRGF0ZT4NCiAgICA8TW9kVGltZT4xMDU4MDYwMDwvTW9k +VGltZT4NCiAgPC9Fc3JpPg0KPC9tZXRhZGF0YT4=datasetEPSG6.5(3.0.1)0
diff --git a/book/tutorials/decision_trees/02.input/shape/weber.shx b/book/tutorials/decision_trees/02.input/shape/weber.shx new file mode 100644 index 0000000..c923825 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/weber.shx differ diff --git a/book/tutorials/decision_trees/02.input/shape/weber_merged.cpg b/book/tutorials/decision_trees/02.input/shape/weber_merged.cpg new file mode 100644 index 0000000..cd89cb9 --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/weber_merged.cpg @@ -0,0 +1 @@ +ISO-8859-1 \ No newline at end of file diff --git a/book/tutorials/decision_trees/02.input/shape/weber_merged.dbf b/book/tutorials/decision_trees/02.input/shape/weber_merged.dbf new file mode 100644 index 0000000..6a8b5da Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/weber_merged.dbf differ diff --git a/book/tutorials/decision_trees/02.input/shape/weber_merged.prj b/book/tutorials/decision_trees/02.input/shape/weber_merged.prj new file mode 100644 index 0000000..5ded4bc --- /dev/null +++ b/book/tutorials/decision_trees/02.input/shape/weber_merged.prj @@ -0,0 +1 @@ +GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/book/tutorials/decision_trees/02.input/shape/weber_merged.shp b/book/tutorials/decision_trees/02.input/shape/weber_merged.shp new file mode 100644 index 0000000..869f561 Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/weber_merged.shp differ diff --git a/book/tutorials/decision_trees/02.input/shape/weber_merged.shx b/book/tutorials/decision_trees/02.input/shape/weber_merged.shx new file mode 100644 index 0000000..81897ef Binary files /dev/null and b/book/tutorials/decision_trees/02.input/shape/weber_merged.shx differ diff --git a/book/tutorials/decision_trees/03.output/best_manuall_model.pkl b/book/tutorials/decision_trees/03.output/best_manuall_model.pkl new file mode 100644 index 0000000..308a189 Binary files /dev/null and b/book/tutorials/decision_trees/03.output/best_manuall_model.pkl differ diff --git a/book/tutorials/decision_trees/03.output/best_model_hyperparameters_xgboost.pkl b/book/tutorials/decision_trees/03.output/best_model_hyperparameters_xgboost.pkl new file mode 100644 index 0000000..5c4039a Binary files /dev/null and b/book/tutorials/decision_trees/03.output/best_model_hyperparameters_xgboost.pkl differ diff --git a/book/tutorials/decision_trees/03.output/best_model_xgboost.pkl b/book/tutorials/decision_trees/03.output/best_model_xgboost.pkl new file mode 100644 index 0000000..88f57a6 Binary files /dev/null and b/book/tutorials/decision_trees/03.output/best_model_xgboost.pkl differ diff --git a/book/tutorials/decision_trees/03.output/scaler_x.joblib b/book/tutorials/decision_trees/03.output/scaler_x.joblib new file mode 100644 index 0000000..295ded5 Binary files /dev/null and b/book/tutorials/decision_trees/03.output/scaler_x.joblib differ diff --git a/book/tutorials/decision_trees/03.output/scaler_x_manuall.joblib b/book/tutorials/decision_trees/03.output/scaler_x_manuall.joblib new file mode 100644 index 0000000..9ff0046 Binary files /dev/null and b/book/tutorials/decision_trees/03.output/scaler_x_manuall.joblib differ diff --git a/book/tutorials/decision_trees/03.output/scaler_y.joblib b/book/tutorials/decision_trees/03.output/scaler_y.joblib new file mode 100644 index 0000000..620e688 Binary files /dev/null and b/book/tutorials/decision_trees/03.output/scaler_y.joblib differ diff --git a/book/tutorials/decision_trees/03.output/scaler_y_manuall.joblib b/book/tutorials/decision_trees/03.output/scaler_y_manuall.joblib new file mode 100644 index 0000000..c17f1b5 Binary files /dev/null and b/book/tutorials/decision_trees/03.output/scaler_y_manuall.joblib differ diff --git a/book/tutorials/decision_trees/03.output/test_dataset.pkl b/book/tutorials/decision_trees/03.output/test_dataset.pkl new file mode 100644 index 0000000..44deddb Binary files /dev/null and b/book/tutorials/decision_trees/03.output/test_dataset.pkl differ diff --git a/book/tutorials/decision_trees/03.output/train_dataset.pkl b/book/tutorials/decision_trees/03.output/train_dataset.pkl new file mode 100644 index 0000000..eff0b91 Binary files /dev/null and b/book/tutorials/decision_trees/03.output/train_dataset.pkl differ diff --git a/book/tutorials/decision_trees/03.output/x_tes.pkl b/book/tutorials/decision_trees/03.output/x_tes.pkl new file mode 100644 index 0000000..bcc1453 Binary files /dev/null and b/book/tutorials/decision_trees/03.output/x_tes.pkl differ diff --git a/book/tutorials/decision_trees/03.output/y_test.pkl b/book/tutorials/decision_trees/03.output/y_test.pkl new file mode 100644 index 0000000..f4640f3 Binary files /dev/null and b/book/tutorials/decision_trees/03.output/y_test.pkl differ diff --git a/book/tutorials/decision_trees/devcon_xgboost.yaml b/book/tutorials/decision_trees/devcon_xgboost.yaml new file mode 100644 index 0000000..6988a30 --- /dev/null +++ b/book/tutorials/decision_trees/devcon_xgboost.yaml @@ -0,0 +1,273 @@ +name: devcon_xgboost +channels: + - conda-forge +dependencies: + - _libgcc_mutex=0.1=conda_forge + - _openmp_mutex=4.5=2_gnu + - _py-xgboost-mutex=2.0=cpu_0 + - alsa-lib=1.2.11=hd590300_1 + - attr=2.5.1=h166bdaf_1 + - attrs=23.2.0=pyh71513ae_0 + - aws-c-auth=0.7.20=h5f1c8d9_0 + - aws-c-cal=0.6.12=h2ba76a8_0 + - aws-c-common=0.9.17=h4ab18f5_0 + - aws-c-compression=0.2.18=h36a0aea_4 + - aws-c-event-stream=0.4.2=h161de36_10 + - aws-c-http=0.8.1=h63f54a0_13 + - aws-c-io=0.14.8=h96d4d28_0 + - aws-c-mqtt=0.10.4=hcc7299c_2 + - aws-c-s3=0.5.8=h10bd90f_3 + - aws-c-sdkutils=0.1.16=h36a0aea_0 + - aws-checksums=0.1.18=h36a0aea_4 + - aws-crt-cpp=0.26.8=h02fd9b4_10 + - aws-sdk-cpp=1.11.267=h51dfee4_8 + - azure-core-cpp=1.11.1=h91d86a7_1 + - azure-identity-cpp=1.6.0=hf1915f5_1 + - azure-storage-blobs-cpp=12.10.0=h00ab1b0_1 + - azure-storage-common-cpp=12.5.0=h94269e2_4 + - blosc=1.21.5=hc2324a3_1 + - branca=0.7.2=pyhd8ed1ab_0 + - brotli=1.1.0=hd590300_1 + - brotli-bin=1.1.0=hd590300_1 + - brotli-python=1.1.0=py312h30efb56_1 + - bzip2=1.0.8=hd590300_5 + - c-ares=1.28.1=hd590300_0 + - ca-certificates=2024.2.2=hbcca054_0 + - cairo=1.18.0=h3faef2a_0 + - certifi=2024.2.2=pyhd8ed1ab_0 + - cfitsio=4.4.0=hbdc6101_1 + - charset-normalizer=3.3.2=pyhd8ed1ab_0 + - click=8.1.7=unix_pyh707e725_0 + - click-plugins=1.1.1=py_0 + - cligj=0.7.2=pyhd8ed1ab_1 + - colorama=0.4.6=pyhd8ed1ab_0 + - contourpy=1.2.1=py312h8572e83_0 + - cycler=0.12.1=pyhd8ed1ab_0 + - dbus=1.13.6=h5008d03_3 + - expat=2.6.2=h59595ed_0 + - fiona=1.9.6=py312h66d9856_0 + - fmt=10.2.1=h00ab1b0_0 + - folium=0.16.0=pyhd8ed1ab_0 + - font-ttf-dejavu-sans-mono=2.37=hab24e00_0 + - font-ttf-inconsolata=3.000=h77eed37_0 + - font-ttf-source-code-pro=2.038=h77eed37_0 + - font-ttf-ubuntu=0.83=h77eed37_2 + - fontconfig=2.14.2=h14ed4e7_0 + - fonts-conda-ecosystem=1=0 + - fonts-conda-forge=1=0 + - fonttools=4.51.0=py312h98912ed_0 + - freetype=2.12.1=h267a509_2 + - freexl=2.0.0=h743c826_0 + - gdal=3.8.5=py312hca78659_5 + - geopandas=0.14.4=pyhd8ed1ab_0 + - geopandas-base=0.14.4=pyha770c72_0 + - geos=3.12.1=h59595ed_0 + - geotiff=1.7.1=h6cf1f90_16 + - gettext=0.22.5=h59595ed_2 + - gettext-tools=0.22.5=h59595ed_2 + - gflags=2.2.2=he1b5a44_1004 + - giflib=5.2.2=hd590300_0 + - glib=2.80.2=hf974151_0 + - glib-tools=2.80.2=hb6ce0ca_0 + - glog=0.7.0=hed5481d_0 + - graphite2=1.3.13=h59595ed_1003 + - gst-plugins-base=1.24.3=h9ad1361_0 + - gstreamer=1.24.3=haf2f30d_0 + - harfbuzz=8.4.0=h3d44ed6_0 + - hdf4=4.2.15=h2a13503_7 + - hdf5=1.14.3=nompi_h4f84152_101 + - icu=73.2=h59595ed_0 + - idna=3.7=pyhd8ed1ab_0 + - jinja2=3.1.4=pyhd8ed1ab_0 + - joblib=1.4.2=pyhd8ed1ab_0 + - json-c=0.17=h7ab15ed_0 + - kealib=1.5.3=h2f55d51_0 + - keyutils=1.6.1=h166bdaf_0 + - kiwisolver=1.4.5=py312h8572e83_1 + - krb5=1.21.2=h659d440_0 + - lame=3.100=h166bdaf_1003 + - lcms2=2.16=hb7c19ff_0 + - ld_impl_linux-64=2.40=h55db66e_0 + - lerc=4.0.0=h27087fc_0 + - libabseil=20240116.2=cxx17_h59595ed_0 + - libaec=1.1.3=h59595ed_0 + - libarchive=3.7.2=h2aa1ff5_1 + - libarrow=16.0.0=hefa796f_1_cpu + - libarrow-acero=16.0.0=hac33072_1_cpu + - libarrow-dataset=16.0.0=hac33072_1_cpu + - libarrow-substrait=16.0.0=h7e0c224_1_cpu + - libasprintf=0.22.5=h661eb56_2 + - libasprintf-devel=0.22.5=h661eb56_2 + - libblas=3.9.0=22_linux64_openblas + - libboost-headers=1.84.0=ha770c72_2 + - libbrotlicommon=1.1.0=hd590300_1 + - libbrotlidec=1.1.0=hd590300_1 + - libbrotlienc=1.1.0=hd590300_1 + - libcap=2.69=h0f662aa_0 + - libcblas=3.9.0=22_linux64_openblas + - libclang-cpp15=15.0.7=default_h127d8a8_5 + - libclang13=18.1.5=default_h5d6823c_0 + - libcrc32c=1.1.2=h9c3ff4c_0 + - libcups=2.3.3=h4637d8d_4 + - libcurl=8.7.1=hca28451_0 + - libdeflate=1.20=hd590300_0 + - libedit=3.1.20191231=he28a2e2_2 + - libev=4.33=hd590300_2 + - libevent=2.1.12=hf998b51_1 + - libexpat=2.6.2=h59595ed_0 + - libffi=3.4.2=h7f98852_5 + - libflac=1.4.3=h59595ed_0 + - libgcc-ng=13.2.0=h77fa898_7 + - libgcrypt=1.10.3=hd590300_0 + - libgdal=3.8.5=h77540a9_5 + - libgettextpo=0.22.5=h59595ed_2 + - libgettextpo-devel=0.22.5=h59595ed_2 + - libgfortran-ng=13.2.0=h69a702a_7 + - libgfortran5=13.2.0=hca663fb_7 + - libglib=2.80.2=hf974151_0 + - libgomp=13.2.0=h77fa898_7 + - libgoogle-cloud=2.23.0=h9be4e54_1 + - libgoogle-cloud-storage=2.23.0=hc7a4891_1 + - libgpg-error=1.49=h4f305b6_0 + - libgrpc=1.62.2=h15f2491_0 + - libiconv=1.17=hd590300_2 + - libjpeg-turbo=3.0.0=hd590300_1 + - libkml=1.3.0=h01aab08_1018 + - liblapack=3.9.0=22_linux64_openblas + - libllvm15=15.0.7=hb3ce162_4 + - libllvm18=18.1.5=hb77312f_0 + - libnetcdf=4.9.2=nompi_h9612171_113 + - libnghttp2=1.58.0=h47da74e_1 + - libnsl=2.0.1=hd590300_0 + - libogg=1.3.4=h7f98852_1 + - libopenblas=0.3.27=pthreads_h413a1c8_0 + - libopus=1.3.1=h7f98852_1 + - libparquet=16.0.0=h6a7eafb_1_cpu + - libpng=1.6.43=h2797004_0 + - libpq=16.3=ha72fbe1_0 + - libprotobuf=4.25.3=h08a7969_0 + - libre2-11=2023.09.01=h5a48ba9_2 + - librttopo=1.1.0=h8917695_15 + - libsndfile=1.2.2=hc60ed4a_1 + - libspatialindex=1.9.3=h9c3ff4c_4 + - libspatialite=5.1.0=h6f065fc_5 + - libsqlite=3.45.3=h2797004_0 + - libssh2=1.11.0=h0841786_0 + - libstdcxx-ng=13.2.0=hc0a3c3a_7 + - libsystemd0=255=h3516f8a_1 + - libthrift=0.19.0=hb90f79a_1 + - libtiff=4.6.0=h1dd3fc0_3 + - libutf8proc=2.8.0=h166bdaf_0 + - libuuid=2.38.1=h0b41bf4_0 + - libvorbis=1.3.7=h9c3ff4c_0 + - libwebp-base=1.4.0=hd590300_0 + - libxcb=1.15=h0b41bf4_0 + - libxcrypt=4.4.36=hd590300_1 + - libxgboost=2.0.3=cpu_h7afb2cf_4 + - libxkbcommon=1.7.0=h662e7e4_0 + - libxml2=2.12.6=h232c23b_2 + - libzip=1.10.1=h2629f0a_3 + - libzlib=1.2.13=hd590300_5 + - lz4-c=1.9.4=hcb278e6_0 + - lzo=2.10=hd590300_1001 + - mapclassify=2.6.1=pyhd8ed1ab_0 + - markupsafe=2.1.5=py312h98912ed_0 + - matplotlib=3.8.4=py312h7900ff3_0 + - matplotlib-base=3.8.4=py312he5832f3_0 + - minizip=4.0.5=h0ab5242_0 + - mpg123=1.32.6=h59595ed_0 + - munkres=1.1.4=pyh9f0ad1d_0 + - mysql-common=8.3.0=hf1915f5_4 + - mysql-libs=8.3.0=hca2cd23_4 + - ncurses=6.5=h59595ed_0 + - networkx=3.3=pyhd8ed1ab_1 + - nspr=4.35=h27087fc_0 + - nss=3.100=hca3bf56_0 + - numpy=1.26.4=py312heda63a1_0 + - openjpeg=2.5.2=h488ebb8_0 + - openssl=3.3.0=hd590300_0 + - orc=2.0.0=h17fec99_1 + - packaging=24.0=pyhd8ed1ab_0 + - pandas=2.2.2=py312hfb8ada1_0 + - pcre2=10.43=hcad00b1_0 + - pillow=10.3.0=py312hdcec9eb_0 + - pip=24.0=pyhd8ed1ab_0 + - pixman=0.43.2=h59595ed_0 + - ply=3.11=pyhd8ed1ab_2 + - poppler=24.04.0=hb6cd0d7_0 + - poppler-data=0.4.12=hd8ed1ab_0 + - postgresql=16.3=h8e811e2_0 + - proj=9.4.0=h1d62c97_1 + - pthread-stubs=0.4=h36c2ea0_1001 + - pulseaudio-client=17.0=hb77b528_0 + - py-xgboost=2.0.3=cpu_pyh995e691_4 + - py-xgboost-cpu=2.0.3=pyhb8f9a19_4 + - pyarrow=16.0.0=py312h8da182e_0 + - pyarrow-core=16.0.0=py312h5429d62_0_cpu + - pyparsing=3.1.2=pyhd8ed1ab_0 + - pyproj=3.6.1=py312hb591178_6 + - pyqt=5.15.9=py312h949fe66_5 + - pyqt5-sip=12.12.2=py312h30efb56_5 + - pysocks=1.7.1=pyha2e5f31_6 + - python=3.12.3=hab00c5b_0_cpython + - python-dateutil=2.9.0=pyhd8ed1ab_0 + - python-tzdata=2024.1=pyhd8ed1ab_0 + - python_abi=3.12=4_cp312 + - pytz=2024.1=pyhd8ed1ab_0 + - qt-main=5.15.8=hc9dc06e_21 + - re2=2023.09.01=h7f4b329_2 + - readline=8.2=h8228510_1 + - requests=2.31.0=pyhd8ed1ab_0 + - rtree=1.2.0=py312hb0aae1a_0 + - s2n=1.4.13=he19d79f_0 + - scikit-learn=1.4.2=py312h394d371_0 + - scipy=1.13.0=py312hc2bc53b_1 + - setuptools=69.5.1=pyhd8ed1ab_0 + - shapely=2.0.4=py312h9e6bd2c_0 + - sip=6.7.12=py312h30efb56_0 + - six=1.16.0=pyh6c4a22f_0 + - snappy=1.2.0=hdb0a2a9_1 + - spdlog=1.13.0=hd2e6256_0 + - sqlite=3.45.3=h2c6b66d_0 + - threadpoolctl=3.5.0=pyhc1e730c_0 + - tiledb=2.23.0=h27f064a_0 + - tk=8.6.13=noxft_h4845f30_101 + - toml=0.10.2=pyhd8ed1ab_0 + - tomli=2.0.1=pyhd8ed1ab_0 + - tornado=6.4=py312h98912ed_0 + - tqdm=4.66.4=pyhd8ed1ab_0 + - tzcode=2024a=h3f72095_0 + - tzdata=2024a=h0c530f3_0 + - uriparser=0.9.8=hac33072_0 + - urllib3=2.2.1=pyhd8ed1ab_0 + - wheel=0.43.0=pyhd8ed1ab_1 + - xcb-util=0.4.0=hd590300_1 + - xcb-util-image=0.4.0=h8ee46fc_1 + - xcb-util-keysyms=0.4.0=h8ee46fc_1 + - xcb-util-renderutil=0.3.9=hd590300_1 + - xcb-util-wm=0.4.1=h8ee46fc_1 + - xerces-c=3.2.5=hac6953d_0 + - xkeyboard-config=2.41=hd590300_0 + - xorg-kbproto=1.0.7=h7f98852_1002 + - xorg-libice=1.1.1=hd590300_0 + - xorg-libsm=1.2.4=h7391055_0 + - xorg-libx11=1.8.9=h8ee46fc_0 + - xorg-libxau=1.0.11=hd590300_0 + - xorg-libxdmcp=1.1.3=h7f98852_0 + - xorg-libxext=1.3.4=h0b41bf4_2 + - xorg-libxrender=0.9.11=hd590300_0 + - xorg-renderproto=0.11.1=h7f98852_1002 + - xorg-xextproto=7.3.0=h0b41bf4_1003 + - xorg-xf86vidmodeproto=2.3.1=h7f98852_1002 + - xorg-xproto=7.0.31=h7f98852_1007 + - xyzservices=2024.4.0=pyhd8ed1ab_0 + - xz=5.2.6=h166bdaf_0 + - zlib=1.2.13=hd590300_5 + - zstd=1.5.6=ha6fb4c9_0 + - pip: + - boto3==1.34.103 + - botocore==1.34.103 + - hydroeval==0.1.0 + - jmespath==1.0.1 + - s3transfer==0.10.1 +prefix: /home/jovyan/envs/devcon_xgboost