Objectives
Upon completion of this lesson, you will be able to:
- list the different methods for feature normalization
- know when to apply normalization to numeric features
- use min-max and z-score standardization
Motivation
Normalizing numeric features in machine learning involves rescaling the values of numeric features in the dataset to a standard range. This process is done to make sure that each feature contributes approximately proportionately to the final prediction. For algorithms that use a measure of Euclidean distance between two data points, normalization is critical. If one feature is in the range of 0-1 and another is in the range of 0-1000, the algorithm is likely to be dominated by the second feature.
The normalization of numeric features before applying any kind of distance-based machine learning algorithm is a critical step in feature engineering.
Feature Normalization Methods
The most common types of normalization are:
- Min-Max Normalization
- z-Score Standardization
- Mean Normalization
- Unit Vector Normalization
Normalization must be applied separately to each numeric feature. Different normalization methods could conceivably be used for different features. However, it is required that all featured are scaled to the same range.
Feature normalization only applies to numeric features. It is not defined for categorical values. Those must be encoded differently in order for distance measures to be meaningful.
Min-Max Normalization
Min-Max Normalization, or Feature Scaling, is a common technique that rescales a numeric feature to a fixed range of 0 to 1. It is important that all features be scaled to the same range.
The formula for min-max normalization of a feature value \(x_i\) for the vector \(x = (x_1, x_2, ..., x_n)\) is given below:
\[
\frac{x_i - min(x)}{max(x) - min(x)}
\]
Essentially, we find the minimum and maximum values for a feature (i.e., a column in the data), and for each feature value we subtract the minimum from the value and divide it by the range. This scales all values to a range from 0 to 1.
z-Score Standardization
Standardization (or z-score normalization) is another common method for feature normalization where the features are rescaled to have the properties of a standard normal distribution with µ=0 and σ=1. This is useful in cases where the model we are training makes some sort of assumptions about the distribution of your data and presumes a Gaussian (Normal) distribution. One example of a machine learning algorithm that assumes a normal distribution of numeric feature values is linear regression.
The formula for z-score standardization of a feature value \(x_i\) for the vector \(x = (x_1, x_2, ..., x_n)\) is given below:
\[
\frac{x_i - \mu(x)}{\sigma(x)}
\] In the formula, \(\mu(x)\) is the mean if the feature values in \(x\) and \(\sigma(x)\) is their standard distribution. The range resulting from z-score standardization is centered around 0 and ranges from -∞ to +∞ but is generally within two standard deviations from 0.
Mean Normalization
Mean Normalization is a variant of min-max normalization where we subtract the mean of the feature vector from the values rather than the minimum. The range will be centered around zero but may not be in the range of -1 to 1.
The formula for mean normalization of a feature value \(x_i\) for the vector \(x = (x_1, x_2, ..., x_n)\) is given below:
\[
\frac{x_i - \mu(x)}{max(x) - min(x)}
\]
In the formula, \(\mu(x)\) is the mean of the values in the feature vector \(x\).
Unit Vector Normalization
Unit Vector Normalization rescales the feature vector so that it has a length of one. This is also known as Vector Normalization or Euclidean Normalization.
Summary
In general, normalization improves the performance and stability of machine learning algorithms, making them less sensitive to the scale of features. This means the resulting model is less likely to be affected by the scale of the input features, and hence, it can make the learning process faster and more effective. This is particularly important for algorithms that use a distance function (like k-Nearest Neighbors (KNN) or k-Means), gradient descent optimization (like linear regression, neural networks), and algorithms that use regularization (like ridge or lasso regression).
Tutorial
The video below demonstrates the application of the min-max and z-score normalization schemes.
References
No references.
Errata
None collected yet. Let us know.
LS0tCnRpdGxlOiAiTm9ybWFsaXppbmcgTnVtZXJpYyBGZWF0dXJlcyBmb3IgTWFjaGluZSBMZWFybmluZyBBbGdvcml0aG1zIgpwYXJhbXM6CiAgY2F0ZWdvcnk6IDMKICBzdGFja3M6IDAKICBudW1iZXI6IDIwNgogIHRpbWU6IDQ1CiAgbGV2ZWw6IGJlZ2lubmVyCiAgdGFnczogcmVncmVzc2lvbixzdGF0aXN0aWNzCiAgZGVzY3JpcHRpb246ICJFeHBsYWlucyBob3cgdG8gbm9ybWFsaXplIGNvbnRpbnVvdXMgbnVtZXJpYyBmZWF0dXJlcyBmb3IKICAgICAgICAgICAgICAgIGRpc3RhbmNlLWJhc2VkIG1hY2hpbmUgbGVhcm5pbmcgYWxnb3JpdGhtcyBzdWNoIGFzIGtOTiwKICAgICAgICAgICAgICAgIGstbWVhbnMsIGFuZCBTVk0uIERlbW9uc3RyYXRlcyB0aGUgdXNlIG9mIG1pbi1tYXggYW5kIAogICAgICAgICAgICAgICAgei1zY29yZSBub3JtYWxpemF0aW9uIGFuZCBleHBsYWlucyBtZWFuLW5vcm1hbGl6YXRpb24gYW5kCiAgICAgICAgICAgICAgICB1bml0IHZlY3RvciBub3JtYWxpemF0aW9uLiIKZGF0ZTogIjxzbWFsbD5gciBTeXMuRGF0ZSgpYDwvc21hbGw+IgphdXRob3I6ICI8c21hbGw+TWFydGluIFNjaGVkbGJhdWVyPC9zbWFsbD4iCmVtYWlsOiAibS5zY2hlZGxiYXVlckBuZXUuZWR1IgphZmZpbGl0YXRpb246ICJOb3J0aGVhc3Rlcm4gVW5pdmVyc2l0eSIKb3V0cHV0OiAKICBib29rZG93bjo6aHRtbF9kb2N1bWVudDI6CiAgICB0b2M6IHRydWUKICAgIHRvY19mbG9hdDogdHJ1ZQogICAgY29sbGFwc2VkOiBmYWxzZQogICAgbnVtYmVyX3NlY3Rpb25zOiBmYWxzZQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQogICAgdGhlbWU6IHNwYWNlbGFiCiAgICBoaWdobGlnaHQ6IHRhbmdvCi0tLQoKLS0tCnRpdGxlOiAiPHNtYWxsPmByIHBhcmFtcyRjYXRlZ29yeWAuYHIgcGFyYW1zJG51bWJlcmA8L3NtYWxsPjxici8+PHNwYW4gc3R5bGU9J2NvbG9yOiAjMkU0MDUzOyBmb250LXNpemU6IDAuOWVtJz5gciBybWFya2Rvd246Om1ldGFkYXRhJHRpdGxlYDwvc3Bhbj4iCi0tLQoKYGBge3IgY29kZT14ZnVuOjpyZWFkX3V0ZjgocGFzdGUwKGhlcmU6OmhlcmUoKSwnL1IvX2luc2VydDJEQi5SJykpLCBpbmNsdWRlID0gRkFMU0V9CmBgYAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojIyBPYmplY3RpdmVzCgpVcG9uIGNvbXBsZXRpb24gb2YgdGhpcyBsZXNzb24sIHlvdSB3aWxsIGJlIGFibGUgdG86CgotICAgbGlzdCB0aGUgZGlmZmVyZW50IG1ldGhvZHMgZm9yIGZlYXR1cmUgbm9ybWFsaXphdGlvbgotICAga25vdyB3aGVuIHRvIGFwcGx5IG5vcm1hbGl6YXRpb24gdG8gbnVtZXJpYyBmZWF0dXJlcwotICAgdXNlIG1pbi1tYXggYW5kIHotc2NvcmUgc3RhbmRhcmRpemF0aW9uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMjIE1vdGl2YXRpb24geyNtb3Rpdn0KCk5vcm1hbGl6aW5nIG51bWVyaWMgZmVhdHVyZXMgaW4gbWFjaGluZSBsZWFybmluZyBpbnZvbHZlcyByZXNjYWxpbmcgdGhlIHZhbHVlcyBvZiBudW1lcmljIGZlYXR1cmVzIGluIHRoZSBkYXRhc2V0IHRvIGEgc3RhbmRhcmQgcmFuZ2UuIFRoaXMgcHJvY2VzcyBpcyBkb25lIHRvIG1ha2Ugc3VyZSB0aGF0IGVhY2ggZmVhdHVyZSBjb250cmlidXRlcyBhcHByb3hpbWF0ZWx5IHByb3BvcnRpb25hdGVseSB0byB0aGUgZmluYWwgcHJlZGljdGlvbi4gRm9yIGFsZ29yaXRobXMgdGhhdCB1c2UgYSBtZWFzdXJlIG9mIEV1Y2xpZGVhbiBkaXN0YW5jZSBiZXR3ZWVuIHR3byBkYXRhIHBvaW50cywgbm9ybWFsaXphdGlvbiBpcyBjcml0aWNhbC4gSWYgb25lIGZlYXR1cmUgaXMgaW4gdGhlIHJhbmdlIG9mIDAtMSBhbmQgYW5vdGhlciBpcyBpbiB0aGUgcmFuZ2Ugb2YgMC0xMDAwLCB0aGUgYWxnb3JpdGhtIGlzIGxpa2VseSB0byBiZSBkb21pbmF0ZWQgYnkgdGhlIHNlY29uZCBmZWF0dXJlLgoKVGhlIG5vcm1hbGl6YXRpb24gb2YgbnVtZXJpYyBmZWF0dXJlcyBiZWZvcmUgYXBwbHlpbmcgYW55IGtpbmQgb2YgZGlzdGFuY2UtYmFzZWQgbWFjaGluZSBsZWFybmluZyBhbGdvcml0aG0gaXMgYSBjcml0aWNhbCBzdGVwIGluIGZlYXR1cmUgZW5naW5lZXJpbmcuCgojIyBGZWF0dXJlIE5vcm1hbGl6YXRpb24gTWV0aG9kcwoKVGhlIG1vc3QgY29tbW9uIHR5cGVzIG9mIG5vcm1hbGl6YXRpb24gYXJlOgoKLSAgIE1pbi1NYXggTm9ybWFsaXphdGlvbgotICAgei1TY29yZSBTdGFuZGFyZGl6YXRpb24KLSAgIE1lYW4gTm9ybWFsaXphdGlvbgotICAgVW5pdCBWZWN0b3IgTm9ybWFsaXphdGlvbgoKTm9ybWFsaXphdGlvbiBtdXN0IGJlIGFwcGxpZWQgc2VwYXJhdGVseSB0byBlYWNoIG51bWVyaWMgZmVhdHVyZS4gRGlmZmVyZW50IG5vcm1hbGl6YXRpb24gbWV0aG9kcyBjb3VsZCBjb25jZWl2YWJseSBiZSB1c2VkIGZvciBkaWZmZXJlbnQgZmVhdHVyZXMuIEhvd2V2ZXIsIGl0IGlzIHJlcXVpcmVkIHRoYXQgYWxsIGZlYXR1cmVkIGFyZSBzY2FsZWQgdG8gdGhlIHNhbWUgcmFuZ2UuCgo+IEZlYXR1cmUgbm9ybWFsaXphdGlvbiAqKm9ubHkqKiBhcHBsaWVzIHRvIG51bWVyaWMgZmVhdHVyZXMuIEl0IGlzIG5vdCBkZWZpbmVkIGZvciBjYXRlZ29yaWNhbCB2YWx1ZXMuIFRob3NlIG11c3QgYmUgZW5jb2RlZCBkaWZmZXJlbnRseSBpbiBvcmRlciBmb3IgZGlzdGFuY2UgbWVhc3VyZXMgdG8gYmUgbWVhbmluZ2Z1bC4KCiMjIyBNaW4tTWF4IE5vcm1hbGl6YXRpb24KCipNaW4tTWF4IE5vcm1hbGl6YXRpb24qLCBvciAqRmVhdHVyZSBTY2FsaW5nKiwgaXMgYSBjb21tb24gdGVjaG5pcXVlIHRoYXQgcmVzY2FsZXMgYSBudW1lcmljIGZlYXR1cmUgdG8gYSBmaXhlZCByYW5nZSBvZiAwIHRvIDEuIEl0IGlzIGltcG9ydGFudCB0aGF0IGFsbCBmZWF0dXJlcyBiZSBzY2FsZWQgdG8gdGhlIHNhbWUgcmFuZ2UuCgpUaGUgZm9ybXVsYSBmb3IgbWluLW1heCBub3JtYWxpemF0aW9uIG9mIGEgZmVhdHVyZSB2YWx1ZSAkeF9pJCBmb3IgdGhlIHZlY3RvciAkeCA9ICh4XzEsIHhfMiwgLi4uLCB4X24pJCBpcyBnaXZlbiBiZWxvdzoKCiQkClxmcmFje3hfaSAtIG1pbih4KX17bWF4KHgpIC0gbWluKHgpfQokJAoKRXNzZW50aWFsbHksIHdlIGZpbmQgdGhlIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWVzIGZvciBhIGZlYXR1cmUgKCppLmUuKiwgYSBjb2x1bW4gaW4gdGhlIGRhdGEpLCBhbmQgZm9yIGVhY2ggZmVhdHVyZSB2YWx1ZSB3ZSBzdWJ0cmFjdCB0aGUgbWluaW11bSBmcm9tIHRoZSB2YWx1ZSBhbmQgZGl2aWRlIGl0IGJ5IHRoZSByYW5nZS4gVGhpcyBzY2FsZXMgYWxsIHZhbHVlcyB0byBhIHJhbmdlIGZyb20gMCB0byAxLgoKIyMjICp6Ki1TY29yZSBTdGFuZGFyZGl6YXRpb24KCipTdGFuZGFyZGl6YXRpb24qIChvciAqei1zY29yZSBub3JtYWxpemF0aW9uKikgaXMgYW5vdGhlciBjb21tb24gbWV0aG9kIGZvciBmZWF0dXJlIG5vcm1hbGl6YXRpb24gd2hlcmUgdGhlIGZlYXR1cmVzIGFyZSByZXNjYWxlZCB0byBoYXZlIHRoZSBwcm9wZXJ0aWVzIG9mIGEgc3RhbmRhcmQgbm9ybWFsIGRpc3RyaWJ1dGlvbiB3aXRoIMK1PTAgYW5kIM+DPTEuIFRoaXMgaXMgdXNlZnVsIGluIGNhc2VzIHdoZXJlIHRoZSBtb2RlbCB3ZSBhcmUgdHJhaW5pbmcgbWFrZXMgc29tZSBzb3J0IG9mIGFzc3VtcHRpb25zIGFib3V0IHRoZSBkaXN0cmlidXRpb24gb2YgeW91ciBkYXRhIGFuZCBwcmVzdW1lcyBhIEdhdXNzaWFuIChOb3JtYWwpIGRpc3RyaWJ1dGlvbi4gT25lIGV4YW1wbGUgb2YgYSBtYWNoaW5lIGxlYXJuaW5nIGFsZ29yaXRobSB0aGF0IGFzc3VtZXMgYSBub3JtYWwgZGlzdHJpYnV0aW9uIG9mIG51bWVyaWMgZmVhdHVyZSB2YWx1ZXMgaXMgbGluZWFyIHJlZ3Jlc3Npb24uCgpUaGUgZm9ybXVsYSBmb3IgKnoqLXNjb3JlIHN0YW5kYXJkaXphdGlvbiBvZiBhIGZlYXR1cmUgdmFsdWUgJHhfaSQgZm9yIHRoZSB2ZWN0b3IgJHggPSAoeF8xLCB4XzIsIC4uLiwgeF9uKSQgaXMgZ2l2ZW4gYmVsb3c6CgokJApcZnJhY3t4X2kgLSBcbXUoeCl9e1xzaWdtYSh4KX0KJCQgSW4gdGhlIGZvcm11bGEsICRcbXUoeCkkIGlzIHRoZSBtZWFuIGlmIHRoZSBmZWF0dXJlIHZhbHVlcyBpbiAkeCQgYW5kICRcc2lnbWEoeCkkIGlzIHRoZWlyIHN0YW5kYXJkIGRpc3RyaWJ1dGlvbi4gVGhlIHJhbmdlIHJlc3VsdGluZyBmcm9tICp6Ki1zY29yZSBzdGFuZGFyZGl6YXRpb24gaXMgY2VudGVyZWQgYXJvdW5kIDAgYW5kIHJhbmdlcyBmcm9tIC3iiJ4gdG8gK+KIniBidXQgaXMgZ2VuZXJhbGx5IHdpdGhpbiB0d28gc3RhbmRhcmQgZGV2aWF0aW9ucyBmcm9tIDAuCgojIyMgTWVhbiBOb3JtYWxpemF0aW9uCgoqTWVhbiBOb3JtYWxpemF0aW9uKiBpcyBhIHZhcmlhbnQgb2YgKm1pbi1tYXggbm9ybWFsaXphdGlvbiogd2hlcmUgd2Ugc3VidHJhY3QgdGhlIG1lYW4gb2YgdGhlIGZlYXR1cmUgdmVjdG9yIGZyb20gdGhlIHZhbHVlcyByYXRoZXIgdGhhbiB0aGUgbWluaW11bS4gVGhlIHJhbmdlIHdpbGwgYmUgY2VudGVyZWQgYXJvdW5kIHplcm8gYnV0IG1heSBub3QgYmUgaW4gdGhlIHJhbmdlIG9mIC0xIHRvIDEuCgpUaGUgZm9ybXVsYSBmb3IgbWVhbiBub3JtYWxpemF0aW9uIG9mIGEgZmVhdHVyZSB2YWx1ZSAkeF9pJCBmb3IgdGhlIHZlY3RvciAkeCA9ICh4XzEsIHhfMiwgLi4uLCB4X24pJCBpcyBnaXZlbiBiZWxvdzoKCiQkClxmcmFje3hfaSAtIFxtdSh4KX17bWF4KHgpIC0gbWluKHgpfQokJAoKSW4gdGhlIGZvcm11bGEsICRcbXUoeCkkIGlzIHRoZSBtZWFuIG9mIHRoZSB2YWx1ZXMgaW4gdGhlIGZlYXR1cmUgdmVjdG9yICR4JC4KCiMjIyBVbml0IFZlY3RvciBOb3JtYWxpemF0aW9uCgpVbml0IFZlY3RvciBOb3JtYWxpemF0aW9uIHJlc2NhbGVzIHRoZSBmZWF0dXJlIHZlY3RvciBzbyB0aGF0IGl0IGhhcyBhIGxlbmd0aCBvZiBvbmUuIFRoaXMgaXMgYWxzbyBrbm93biBhcyBWZWN0b3IgTm9ybWFsaXphdGlvbiBvciBFdWNsaWRlYW4gTm9ybWFsaXphdGlvbi4KCiMjIFN1bW1hcnkKCkluIGdlbmVyYWwsIG5vcm1hbGl6YXRpb24gaW1wcm92ZXMgdGhlIHBlcmZvcm1hbmNlIGFuZCBzdGFiaWxpdHkgb2YgbWFjaGluZSBsZWFybmluZyBhbGdvcml0aG1zLCBtYWtpbmcgdGhlbSBsZXNzIHNlbnNpdGl2ZSB0byB0aGUgc2NhbGUgb2YgZmVhdHVyZXMuIFRoaXMgbWVhbnMgdGhlIHJlc3VsdGluZyBtb2RlbCBpcyBsZXNzIGxpa2VseSB0byBiZSBhZmZlY3RlZCBieSB0aGUgc2NhbGUgb2YgdGhlIGlucHV0IGZlYXR1cmVzLCBhbmQgaGVuY2UsIGl0IGNhbiBtYWtlIHRoZSBsZWFybmluZyBwcm9jZXNzIGZhc3RlciBhbmQgbW9yZSBlZmZlY3RpdmUuIFRoaXMgaXMgcGFydGljdWxhcmx5IGltcG9ydGFudCBmb3IgYWxnb3JpdGhtcyB0aGF0IHVzZSBhIGRpc3RhbmNlIGZ1bmN0aW9uIChsaWtlIGstTmVhcmVzdCBOZWlnaGJvcnMgKEtOTikgb3Igay1NZWFucyksIGdyYWRpZW50IGRlc2NlbnQgb3B0aW1pemF0aW9uIChsaWtlIGxpbmVhciByZWdyZXNzaW9uLCBuZXVyYWwgbmV0d29ya3MpLCBhbmQgYWxnb3JpdGhtcyB0aGF0IHVzZSByZWd1bGFyaXphdGlvbiAobGlrZSByaWRnZSBvciBsYXNzbyByZWdyZXNzaW9uKS4KCiMjIFR1dG9yaWFsCgpUaGUgdmlkZW8gYmVsb3cgZGVtb25zdHJhdGVzIHRoZSBhcHBsaWNhdGlvbiBvZiB0aGUgbWluLW1heCBhbmQgKnoqLXNjb3JlIG5vcm1hbGl6YXRpb24gc2NoZW1lcy4KCmBgYHs9aHRtbH0KPGlmcmFtZSBzcmM9Imh0dHBzOi8vcGxheWVyLnZpbWVvLmNvbS92aWRlby84Mjk5NjMyMTg/aD1jNjM3ZjkxNWQ1JmFtcDt0aXRsZT0wJmFtcDtieWxpbmU9MCZhbXA7cG9ydHJhaXQ9MCZhbXA7c3BlZWQ9MCZhbXA7YmFkZ2U9MCZhbXA7YXV0b3BhdXNlPTAmYW1wO3BsYXllcl9pZD0wJmFtcDthcHBfaWQ9NTg0NzkiIHdpZHRoPSI2NDAiIGhlaWdodD0iMzYwIiBmcmFtZWJvcmRlcj0iMCIgYWxsb3c9ImF1dG9wbGF5OyBmdWxsc2NyZWVuOyBwaWN0dXJlLWluLXBpY3R1cmUiIGFsbG93ZnVsbHNjcmVlbiB0aXRsZT0iTm9ybWFsaXppbmcgRmVhdHVyZSBWYWx1ZXMiIGRhdGEtZXh0ZXJuYWw9IjEiPjwvaWZyYW1lPgpgYGAKIyMgKipTbGlkZSBEZWNrKio6IFtGZWF0dXJlIE5vcm1hbGl6YXRpb25dKHMtMy0yMDYtZmVhdHVyZS1ub3JtYWxpemF0aW9uLnBwdHgpCgojIyBGaWxlcyAmIFJlc291cmNlcwoKYGBge3IgemlwRmlsZXMsIGVjaG89RkFMU0V9CnppcE5hbWUgPSBzcHJpbnRmKCJMZXNzb25GaWxlcy0lcy0lcy56aXAiLCAKICAgICAgICAgICAgICAgICBwYXJhbXMkY2F0ZWdvcnksCiAgICAgICAgICAgICAgICAgcGFyYW1zJG51bWJlcikKCnRleHRBTGluayA9IHBhc3RlMCgiQWxsIEZpbGVzIGZvciBMZXNzb24gIiwgCiAgICAgICAgICAgICAgIHBhcmFtcyRjYXRlZ29yeSwiLiIscGFyYW1zJG51bWJlcikKCiMgZG93bmxvYWRGaWxlc0xpbmsoKSBpcyBpbmNsdWRlZCBmcm9tIF9pbnNlcnQyREIuUgprbml0cjo6cmF3X2h0bWwoZG93bmxvYWRGaWxlc0xpbmsoIi4iLCB6aXBOYW1lLCB0ZXh0QUxpbmspKQpgYGAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIyMgUmVmZXJlbmNlcwoKTm8gcmVmZXJlbmNlcy4KCiMjIEVycmF0YQoKTm9uZSBjb2xsZWN0ZWQgeWV0LiBMZXQgdXMga25vdy4KCmBgYHs9aHRtbH0KPHNjcmlwdCBzcmM9Imh0dHBzOi8vZm9ybS5qb3Rmb3JtLmNvbS9zdGF0aWMvZmVlZGJhY2syLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogIG5ldyBKb3Rmb3JtRmVlZGJhY2soewogICAgZm9ybUlkOiAiMjEyMTg3MDcyNzg0MTU3IiwKICAgIGJ1dHRvblRleHQ6ICJGZWVkYmFjayIsCiAgICBiYXNlOiAiaHR0cHM6Ly9mb3JtLmpvdGZvcm0uY29tLyIsCiAgICBiYWNrZ3JvdW5kOiAiI0Y1OTIwMiIsCiAgICBmb250Q29sb3I6ICIjRkZGRkZGIiwKICAgIGJ1dHRvblNpZGU6ICJsZWZ0IiwKICAgIGJ1dHRvbkFsaWduOiAiY2VudGVyIiwKICAgIHR5cGU6IGZhbHNlLAogICAgd2lkdGg6IDcwMCwKICAgIGhlaWdodDogNTAwLAogICAgaXNDYXJkRm9ybTogZmFsc2UKICB9KTsKPC9zY3JpcHQ+CmBgYApgYGB7ciBjb2RlPXhmdW46OnJlYWRfdXRmOChwYXN0ZTAoaGVyZTo6aGVyZSgpLCcvUi9fZGVwbG95S25pdC5SJykpLCBpbmNsdWRlID0gRkFMU0V9CmBgYAo=