Getting Started with Angular: Your First App

From Get docs
Angular/docs/8/start


Getting Started with Angular: Your First App

Welcome to Angular!

This tutorial introduces you to the essentials of Angular by walking you through building a simple e-commerce site with a catalog, shopping cart, and check-out form. It uses the StackBlitz online development environment so you can get started right away.

This guide uses the StackBlitz Generator to show you a ready-made, simple application that you can examine and play with interactively. In actual development you will typically use the Angular CLI, a powerful command-line tool that lets you generate and modify applications. For more information, see the CLI Overview.

New to web development?

There are many resources to complement the Angular docs. Mozilla's MDN docs include both HTML and JavaScript introductions. TypeScript's docs include a 5-minute tutorial. Various online course platforms, such as Udemy and Codecademy, also cover web development basics.


Create a new project

Click here to create a new project in StackBlitz.

StackBlitz creates a starter Angular app with a top bar—containing the store name and checkout icon—and the title for a product list.

[[../File:data:image/png;base64,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|thumb|none|260x248px]]

StackBlitz tips

  • Log into StackBlitz so you can save and resume your work. If you have a GitHub account, you can log into StackBlitz with that account. In order to save your progress, first fork the project using the Fork button at the top left, then you'll be able to save your work to your own StackBlitz account by clicking the Save button.
  • To copy a code example from this tutorial, click the icon at the top right of the code example box, and then paste the code snippet from the clipboard into StackBlitz.
  • If the StackBlitz preview pane isn't showing what you expect, save and then click the refresh button.
  • StackBlitz is continually improving, so there may be slight differences in generated code, but the app's behavior will be the same.


Template syntax

Angular's template syntax extends HTML and JavaScript. This section introduces template syntax by enhancing the "Products" area.

To help you get going, the following steps use predefined product data and methods from the product-list.component.ts file.

  1. In the product-list folder, open the template file product-list.component.html.

  2. Modify the product list template to display a list of product names.

    1. Each product in the list displays the same way, one after another on the page. To iterate over the predefined list of products, put the *ngFor directive on a <div>, as follows:

      <h2>Products</h2>
      
      <div *ngFor="let product of products">
      </div>

      With *ngFor, the <div> repeats for each product in the list.

      *ngFor is a "structural directive". Structural directives shape or reshape the DOM's structure, typically by adding, removing, and manipulating the elements to which they are attached. Any directive with an asterisk, *, is a structural directive.

    2. To display the names of the products, use the interpolation syntax {{ }}. Interpolation renders a property's value as text. Inside the <div>, add an <h3> to display the interpolation of the product's name property:

      <h2>Products</h2>
      
      <div *ngFor="let product of products">
      
        <h3>
            {{ product.name }}
        </h3>
      
      </div>

      The preview pane immediately updates to display the name of each product in the list.

      [[../File:data:image/png;base64,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|thumb|none|259x271px]]

  3. To make each product name a link to product details, add the <a> element and set its title to be the product's name by using the property binding [ ] syntax, as follows:

    <h2>Products</h2>
    
    <div *ngFor="let product of products">
    
      <h3>
        <a [title]="product.name + ' details'">
          {{ product.name }}
        </a>
      </h3>
    
    </div>

    In the preview pane, hold the pointer over a product name to see the bound name property value, which is the product name plus the word "details". Interpolation {{ }} lets you render the property value as text; property binding [ ] lets you use the property value in a template expression.

    [[../File:data:image/png;base64,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Usn6NT0Oj+iYoKSRykxP1uJxA3eXBVlof0Np8kOE2jBMXWJyZ9Gs5SEpDIdqxTOcUt00BLdtklzQwtb6nW2K7gz4wWIURXWSUV+3J9gOA7LJom605IB1ajw91vV4WO0aB6lyST8rto6FdeuUV78pSHDYQCxSTqYqTO4828ydIy25s5PNnYt+Jndm1wzyxWy1UzwELsEgc73j5+5LeRhQuS+TsvEqEnEdKFZmhkAnrbvFKcU85QJQP14xkHUvl9cH16TDNsMbcudU4IONeWbnR3pfShiyhShsCO6Adl2ZemAldWByyRkDw3a7AhSpoM1gvJK7/ySVnqecZKMbTBnAkO/n8HaBzZ2FQoioGrmzTVw1gFl8kjt7VEzuPK9jLgz3ZsoSsjIojZE6mILPS1mQ3GXqgDUYg5xYCrZfz6gdz3ygluXS86YQgHZLpgHpZIK7Bqdz5/6YBLJ0+UGMWjzJnd2066GpkTsbylR8I0XF1GR3Yml2ls4tGql4eqCwTgyeRSFaCMwFRJPqYsbtLVNfKWZLTjLnzUJ1LiDo5+z6QLtePs6d2webubMvb83NAqx+uAP6WvwqWJyJG25z4xYQamf73byL7AAMpv5eg1D8SS20pUkmsgoo/tMBPF/CupmtDiuc1hu+bLsknJggBvJawlpxlu3cNDh7dxi6tXDq5DyQS07GFerLjTZmGdLKX5nS3txP1ipaZ6hTXJBjZ/aj3CYCp3Ln5s2Cbjc/KHuoxLyw14gzBfRSoLvxp/zmnYRO3uDxW3+7KP0Hr82deS1tvFePsrq7z5pDN++C1AH2I6EBGqABGqABGqABGqABEqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGqABGlzY4f89xPug0N6g8AAAAABJRU5ErkJggg==|thumb|none|259x271px]]

  1. Add the product descriptions. On the <p> element, use an *ngIf directive so that Angular only creates the <p> element if the current product has a description.

    <h2>Products</h2>
    
    <div *ngFor="let product of products">
    
      <h3>
        <a [title]="product.name + ' details'">
          {{ product.name }}
        </a>
      </h3>
    
      <p *ngIf="product.description">
        Description: {{ product.description }}
      </p>
    
    </div>

    The app now displays the name and description of each product in the list. Notice that the final product does not have a description paragraph. Because the product's description property is empty, Angular doesn't create the <p> element—including the word "Description".

    [[../File:data:image/png;base64,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|thumb|none|259x289px]]

  2. Add a button so users can share a product with friends. Bind the button's click event to the share() method (in product-list.component.ts). Event binding uses a set of parentheses, ( ), around the event, as in the following <button> element:

    <h2>Products</h2>
    
    <div *ngFor="let product of products">
    
      <h3>
        <a [title]="product.name + ' details'">
          {{ product.name }}
        </a>
      </h3>
    
      <p *ngIf="product.description">
        Description: {{ product.description }}
      </p>
    
      <button (click)="share()">
        Share
      </button>
    
    </div>

    Each product now has a "Share" button:

    [[../File:data:image/png;base64,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|thumb|none|259x376px]]

    Test the "Share" button:

    [[../File:data:image/png;base64,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|thumb|none|330x104px]]

The app now has a product list and sharing feature. In the process, you've learned to use five common features of Angular's template syntax:

  • *ngFor
  • *ngIf
  • Interpolation {{ }}
  • Property binding [ ]
  • Event binding ( )

For more information about the full capabilities of Angular's template syntax, see Template Syntax.

Components

Components define areas of responsibility in the user interface, or UI, that let you reuse sets of UI functionality. You've already built one with the product list component.

A component consists of three things:

  • A component class that handles data and functionality. In the previous section, the product data and the share() method in the component class handle data and functionality, respectively.
  • An HTML template that determines the UI. In the previous section, the product list's HTML template displays the name, description, and a "Share" button for each product.
  • Component-specific styles that define the look and feel. Though product list does not define any styles, this is where component CSS resides.

An Angular application comprises a tree of components, in which each Angular component has a specific purpose and responsibility.

Currently, the example app has three components:

[[../File:data:image/png;base64,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|thumb|none|324x527px]]

  • app-root (orange box) is the application shell. This is the first component to load and the parent of all other components. You can think of it as the base page.
  • app-top-bar (blue background) is the store name and checkout button.
  • app-product-list (purple box) is the product list that you modified in the previous section.

The next section expands the app's capabilities by adding a new component—a product alert—as a child of the product list component.

For more information about components and how they interact with templates, see Introduction to Components.

Input

Currently, the product list displays the name and description of each product. The product list component also defines a products property that contains imported data for each product from the products array in products.ts.

The next step is to create a new alert feature that takes a product as an input. The alert checks the product's price, and, if the price is greater than $700, displays a "Notify Me" button that lets users sign up for notifications when the product goes on sale.

  1. Create a new product alerts component.

    1. Right click on the app folder and use the Angular Generator to generate a new component named product-alerts.

      [[../File:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZcAAAFwCAMAAABD+cYFAAACBGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NDkwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjU0MjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgq/ipjwAAAACXBIWXMAAAsTAAALEwEAmpwYAAADAFBMVEUhISIMPWUgICFAQEAAAAAiIiM3Nz0bGxsxMTIMPmYXFxgjIyQeHh4dHR4hIiUlJSYWFhYGQGokJCUhIiQiHRMwMDATExQZGRkIP2kfHx8hISMyMjMiHxm+v78iISImJidPT08hHRY0NDUqKiw6OTwRERIcHBwZGRsVN1ccLD8PDxAsLCwEBAawsLAFPWVLS0wgJCpUVFS3uLgoKCkpKSobGx28vb0fFAB4eHkaMEnBwcFBQUEcKjtcXF08PT7ExMQRP2ZYWFhubm8WQGdJSUoeKTahoaG6urqRkZF1dXUAfcmkpKSOjo5ra2u1tbVjY2MKCgpycnKtrq43Nzd8fHyUlJVGRkaKiousrKxfX2Cys7MhHBAtLS7Nzc6YmJg1NTuGhoYAMV+bm5vKystlZWYYM1BoaGipqanHx8cnIiIMO2F/f38AO2RDQ0QKPmYGBgsOPmYhAwCBgYIAgtMAN2KmpqcAKFz9/v8Af84dQ2kUBAALCg6enp4AHyHR0dEBesWrq6sSVocMaKaEg4RIYIBTaYIkMj+NmaYcICIwJSEGbrADdLofNkwBfnCDkqEGLkYJNll0hJXl6Os9WXoYS3IwVHahqrOXoa0AACIsTG47ov40ZZNbcYl8i5sURmjeMC7oMS4RW48gFh6jPrYLY53v8vXW2t47mD4AAlJDKCIYFRDrRCANNln/xSRNk9EAGFdne5AgOlIvbqi2NycWHiNFgrnCPSL7vyRfJyMuKzQPUH4QX5bhQyEnQFnUQSKoNCU9c6O3wsyKLiR2KSVtc3sdAh3KLyw2jNoJR3SbLyYMaV4bOjgOHyIEHgA5m/Srt8MqSGTpsiQ7TTp+ynouTi0UGD4AAEoAAD1bSSIzgMXToSMzdjY4ijtIakEEEyH/yiR0XCJmL3EmNyctYDAUIBFTgVEUUkrBlSOKOJlrpmh2unKIPDKbeSN7NIhJODqhPS+YO6lfk12E1YCHaiOziiN5OzRTK1tdOThddbdCJ0iVPTCNO0Qjf1CogiM+QEX/ziQ3wLhyAAAgAElEQVR42uybz0/baBrHM8lrOY3zNtl0HW9qMfbYjlmFZFJDgAgWQ6yUJCI/CA6hYb0I0Sh0RKFdNBw2qUaVKo1SaU+Mehgh7WEOc5hDpB5ymMNIXHqv4LzHHuDW+QNW6/zkR0nHDu1ulfEXYvk1BL28nzzP8z7P+74mkyEt4lHN4m3FVConAPvVPybIz4nf/iPGiH9wLihEAUhJEOUNLp+UvTi9ZiBkSTc0uHxCXHgby/AOSSJ4w14+JS52EAynwrmgEV8+MXshHNNCVPZB1ODyic3HAACLvbAYXP5v8zHeDmFPLAaXDylED5f3SyMX3JAGWe3E/5iL9XcuktTymNTJhed1cuk4vvFxg0tTrHLlY4W92NbFhTdDaNfFZXxysgnkJiSqVYOL1cocHTWt47LZHB2R/XNBweIjoGeezBN/+dapgiHK5S/K5SpxkQuJnzPjTkfJC21y0KxFPH37g1VxUGP4+X/t569OThnVkEhGFamXC4EKxVJ0UXNeCWG1fHhYVkFWDw7rhy/LVRSeccEZpds1kiGb30zjrtu2ygwpk4NlLf8+PjkS8zORCBdi8HPWcnocPCJJx6NKxc2S+rhAkEkEadqvkYvd4/VXy/V6+Q4xeefw4Lt6/dtJt990hgXLh6n2qI+4XBjmUm45SPb2iNoOqc1bDmbYFPKPDA4YUjk6/fX4+Ne30tL86mbwdgcMyZ40Hp+KlCBJUinf+Lxq5wKdTMJCmUGvd1ziYl8EbDD1/LBWrx2i6KQffFf7RcjIXS6yg4utDzPNfoWE5Eoynt1eCSOFpMAyVCm+kkyWhkvJeC6vDA4YRXx7cnx68uY2BOsP9oIupvP8zcnp8clbBxfYW1tb2nXLerjYQTBR3ErkNdXHeMLPRRKSMHlYOziovSh7Xqg3hJgJt7ng8pgY298db3FBpKGlzcAzYXTBtzVVomTPytDm0yWpkA7ci2WoQfJkX3HHJ68UhsOSs1N7052PHPnzq9NjS6YYj6UKhXhOHxcPoHMpOZWlbL9d5+cJbCZRFB2Vhh8r1w7KPx3U1KvbTZraWBAutr+/BVtcsNJEBJggHdhwh0eLlGxeT1OAAluxgtvC4QOVvYhv3/xAWsmxVDy5WfB0DIa0vnkjb05NNJWz6bWX8DTg1JddC5dCIsOZvA0ud1Uid+Ck6seATWlxYUzbU/v7+7tdLrH1RJijV5+4w7Eml9GtLWlYit1bnxkbrCkZ+Youquk8GXJSyQza5aJkn62khyYmhtQvnVygl1OdmDYuKphFcUb1Y39vxH2VS7kMXtZeP2/7MZKi781OTU1tmdtcUqOr6XQk2uRSUrjb67HV0TWZTDyNBTKhgQIjOxNxlYuVIbl4ZpzpZAmhp/dnhyb6shcULmazeUkyE5rWxeAiwOnU8xaXn+rfHdRrL4Wi2PZjXN6qztTllo9q+LEiOz3WspcCGLatjyru4dskCaTReNfYB2Om7JRWGlxIRT7PhZ2fik30yYV3y+o0zlKBWufJPn8zf7lTf0HUVb0o33QCUzujDCnN8lyXS8FHYkKTy0o4x62PhrNheveJlBwNY+TAcWmkzfgFLqGF/rmgvBPY/V4e1Z5XEuPlMlSTfbTsuVsujxOo3XQuwe8MeJMLlB2tuL+aHi3sNq45KZ0eXR6suN/kwo4oisIyyQtcZoc60s0F5e0o5PXVLRtVsSpEqyhRhT3rYzgzreZYOGkRcdkiciLDWURRlFmOzlsHC4uVcUtJjlP/R3l7uRv3VT+2EVMjbEuJRlant57cb51/HL6vnoyzjeHHRxT1NTLC4jg7wrKKVWFZfMAqZIy9uBBvank+gp2FTjoitBXZ1pfvf9T1F7J7bfm37nXgll9wLlJoSZDP+QKWGutI0VkfM9bFPkwxBrO35DrvopuV5JZ015O1c+FtFE4YXK62mIsAekjXfAzC92y8uMzFZnC5Bjxd+QsAwL9o46/FBTHUQybRciYToT17sUaj0byFsvH9cVFNrXrT2ILUU2ZxuotlWjsXe2W6WMokEriGfePvcoE84ferGaaWvVOuhhyIwUWzH/MBqQTM+v0YhL6KjaarB3UtHXR6GzIhBheNYDxOLpFfhLq58F43Gclmg/+sH17RH8x8du9yUC7XdrQhF48YXLTJBGbCXv3zMd5GzmSL9FiFKL98tzsOeDb+iDqzAIknK/F4cm0d83xucNFU6LdRUqTC6+YCfdFcVgSVybuHtXc6MwaEDKDaLSgUC9IyrciyIizLtgYwhKIws8PlojCTi6IQg8tVK8n5LVLTOYvLfgzlMpJET76ufX+5LyEQic20uWBueu/JxrwEzAQPtpNNLhgKgBsD3gogHD4Ahg0uV4y8rVhCCb6PvJJwAiaSFb6vvb7UFRYE//YjXWlxcYHUCngECIVlx7zReIML5uOePaNBUYisREFkPSeimMHlnfkYmwsCT1/5Pm93Aha/W69dxkLf3/9GaHOhwMwuaIl3NrkgKLe3tzBvXw7cexrJpuf3NvBxxOByeeRhyEygfdZhoNnpJaq/XIotM9/s7//Y5oLxTHI+t9XQ7jRocnEAKS2BPFhOl0Lbq0mA04jZsJd3h95NoGjf9THIjxMX8koKFFdnh6ZikVZ8wUxjgQezD1TN3k+2uCDD4mZgowg25gEIqr/HQiO+6FwWey+Xzvv48QuJ/TAnYiOsEvJ0OOUmYi1NCJY4QyBmB3Am9pamlxeANzhRABVgRwwu16vzn+diI648x4cQXsjzvL17eI2LtTfrTM1vN+wFc9KSvbQqqFyGuaW1aCGs8EZ8+WBcCMpDXHm+sl1I7Ta98faew6GJeI7kEZc/E1gILIO1BRCqZAKbgWWXx+DS//r+5XyfcRGazr16SIFuLnKrV7zp3cykkHcRjOxBzDwetTih4ceuSPg9qAf2VYfBtHFB7D5vSxVfy7uZbX6vHSMIxIRgRMVrHuCEv/+65SLggY//iFzUwe8K6T5RmSCtW8Sow1yBxbudSpUsPngtLjcN9dCt/rioY53NKCnJRfDX4fJHQz301365hMI0mMnar8flz4Z66T+WvvwYBHS4FI5qOS/2Hi5/MtRDf+iTC+8uhqVwZPF6XD7TpbmmHn/2O9Djnf64QJ8lYQHRBOOF1+FyQ4d25h4/bGhubufG4KtPLh7VjZFA1HaOr18uFwDszD388h//UqWS2TG49Iz7SiIhhEteyH8kLjtzc18/7gB4fOPhl1+/+C97Z/eTRrrHcTr+JvQwTLFzthDqscMRwZTyUpAagkURDEhQ6ajI4qlGXoJEQY0BJhOJaWINd26lL66J7sUmErM5ib3Yf8CLvTZpN+1Vbzbx4lx2/4LzzKD13Vo8erTdb1TQAWOeD79Xfs9jYR6psMKlnH9xOcGRBRLhXs3Z6peTvdbyDoBJY4rjJlfmn87NzS0vzkXc/AM4jnMaOc6NroxzbnQz/heX8pbJR6A5Y71/AhZ3rrAiAEBYnDcLPa96FjORSCSXmRe4GLnI2rrbnctl1ta5yVwkspbjjMf8sisY9yvnIpYqSeys/bETsRR3uDgzzwvPXyz95OZNhBO4GLm1ucJ8JrK8/LKwkMksPJ1bXI64x4+mYrx6umasmEvF/eTPcxl3OxGW4sI2F3fm5bwbmQRS6tpPAhdu/RXLshvvY6tFlt1cL66usux8jjsSy+jdh1dNd0fPwkV8TlzG3ZncYrG4Yy+TztTc4txTQUuZsr1waxuxzAz7NMZuLBXZ10W2sMwWX2aOSAiujT678d0/rpa+u/9s9BJycaaWFktI21ycTuNia60dqbZ1scxl3Oh+t1yYYedjq+/WX7Mrxdh7ZEDPt+1rP5bRZ/dFf79aEl1SLpmXr1HmNfc8NSl8z+Ve829b8nvaa5dTPJdJLrLJsqsCl9w8u7I6+D6ycQyXZz/cv2pjM3fu//CspeK4L9Uqtefjx5wZIZpktgtIp/PmK3t5BKP21QueCyLFlnKb7EqMff6ihPxYKbW8unqUH+O5XLl9NsozcCF1oIfzivtON6+dun6cy80nW8tKFngu7szzVbbEsoUN3mo2IkUWBf7FCDf5dXC5c6NiLlpNryOgOicuKNYj7fku9XLhk55yKVRI5l5vbC4UlgZXC5uFpfXVUmFz4Wbq6LD/LXHRStRMl9nmOG4S9n/ct5xMRT4phbCg+iWXW1/PvS+x73NrqRw782Nk3Tk5/s1z4fuWJJgYq+RC+snbjq3s3YTlN6Iak1vKLTZFOM4d2VzMLXFHtjO/OS5mHw1mW8sj6UVwOdrV/c3oXn+Hivxx97v145ow35wfe+xLqHy2Zv2ZuJz13SNkNcbJa5PXhJujNfrvfVxwmviq4z75yORjAr563Zm43Dx/GffZC05O/3bCeBNF7H49IELYGI1TFLp3AfVLpuI8GQBULuJscxd3L0APf729iwXr3fqgJCga6aiBNZDQmAjXaw6DwavLW3FgApPrlec9PHbj14eV5snV5rSpL3zGfOyfFyDFL7vLiOnf/LkFwoZavexQFwDXmuqBFmnbmxsO2hROtqhMJpPqcXu7xOFTn/MA7m3lL/+qr9CPTccZJnDsE07JpeIO0s702+d1m5TsACB+/n3r49v/fPzdFewMtcEhi6HBYqAVavD6QU0RBCFCHzg/4EmgS8EY0mCgtak+au+fpgmCOkc2mISsr7QPo6NJUJznfPKJE7KkVColRSd6+rIzwna5yH778JY/Y33LMWszeB0gO8TFMBiEe2DxA40sSi7VSwgtiCklSGkYah1OuFy9Y33aaFO/Toeun+McrlKirZiLViEmxRfF5cCLE5+mZTIZ3SA/IbnCMeIAF+znP95s/fnxzRu0qMFkd1gnO8hlIJn0Ac+lbmogm27Lt0F/3gEmT7schuwqnlWoD/JNaUiMGHxwfodwnIVLhfvFKuJCT+9uDcNFGCYZDgnqlxwPRkkr8P1ckKbfvN2awBofVwctXn9NA3HQj2VHYm28H/O0Dj3xdtk90DETgtlBlZ63lwBjpmr98mhTvSuWjSb7gLqUXCrt8592/8uurNBW8+nBCoyeCAw5wuGwo8MGjUIKi6P0CqMogiYwonzeAi1tHwqAlb+r2Js+WT/8IUZRQ9puDgyldQe5eKPXWy0PLB5TcsTsmrFlB6An2VNl8ZDIjyVbWweHJF6PLtrUbqh1mQ1NmPQr4iJWyKRfyEUNTJDYToFkeuZJNvt9s5C1+gQuhERCANCE5gEJDbQSgKIwuhrMAzaoVuIkyPcmXhQwjA7n097rnf0Th+zFA8xg0Bv1Jbu7B+w+mz00EEwGklNwC9kLU2+qp3kuXlUtf2DrE/qScqno/f1j91eeYC2B0giUIwxOWjsT6qo6wmptpCV9PBdC0lKlcJhB0d57K9wL9xxmnZyGdofje5/crNaq+0V7t8c2Qp9tAuftqaqjf/oQlzzIO2KxoTByUkhVdnt31QCfIqhRfAmDXF/m0l4b5S+LLlfc3/53b1pFtVhbCZfdJ50q9VJDYmbVM0FscxGFzOXTFjSyaYFLIzDZIUPPGHTm85awym8wBHvB12PIGlyOkTZoHurXy/aufZkLJWnpPMyl1g+38JEZD1jsY1MjCX3PTBSCpSxYaYgm46Am6Sb/dN7eMjwYtOU7ldhl4qLV6Pkin9SR1xXyCs6H2TmE7HRccOR4SsWif8detM0drma+xDM1SzQCFyswtcP3ggPWjqZOR3/WXxXuDqm6O+jZ7q64IQBpj2pvpcLbi5ymKFp8iAvWCPlhBFwyMgwOg9draAPGbgbGOwy0DDq7HUBr6Z6gpsPQ0hBt8jb1aYhLxEVbXRe3OcTa6TSD0vkv3y+2fd6F/NEpuYjHYqWZkqe6XC1QYCuPYNhbDXWww6X7HlrIeOcIQLopgHJgf8JbBSqDK2AIQzpv2ssF2QsDEwA6qDkYXyiNKzQbGg4NT4XCAHU1IKfk0EBJQENhIlwDwqZ00N3RASaCBy2ogLlMfkwJbXFXXKFQ+sIKm0tHVnC+pZbUQE2L4lRcMIJJhMMBM1X2GdREuru8edxrD+1yqYPAQKIzC/J+L1rSDn/C0rvDpSV/0F46hLOkHa7ogXyMkneFZoeRZkMooJCkDBcRwqfwKKJ8liNF8H1LXCZqoIhLFl+k4IgrHqV91rStgn4yivtyXUuYcaDodKqWRDmabLtyHDmU1u1TMCwmpq/MxdKP3ExLhx+qqyxj+sf+aNxrBt+Ai0/JwvvtRQaOznLt0zl1XYzvfwnAJ8kwAv9Mx+FcBy8qysck4bgYVD6rq82Xhi/ngjUnXF39SvTzU/2NwnHo9O7rPWHfHsGI+acYtOSIi3ckbwlBvgdohc3ieWJoq/db/FmLDfzdnqzHvK8ThjdMVwuS6w6FbVptFaSW/Z8nmyriQmrCcS2omEBCbftyLsJ5fb0AClKTrqQzhlmZqbGypsK9yOfzfozxdRF6R7ya0orCNp9ZAe2MzRQ3gcnna3PU/Je984tJI1sDOJl+I4ZhOgS3MxkpHSowJohRhOqEDRAIRQkCIn8UC0iQAIkhRBNfxBgTE9OHTfbhpg+rb/twH24Tk+veNjFZe/vS9OEmxnSf+tDH+9BuYrOb3NykD809M1CrVruKutRrP5g5AiPR85vvO+d833fOYYiDd3ptYQ3iCw6QNdZPHknmFWZkxG5E/YbqqeNiTMriKTg0JtZUaMzX+tHamERPiw2EQRINJigAAsMlHz7BVQHMUKGkqyqySycN9ZMVdDLPqCghDEnPcYPLz62jSJtsOk/EAmV/Y75kbk+kW54Dx1grYSUwKdSFPkVGD6OsVopTY5R4EcNeBS7KkYQnFvP0QFLIxyynj4uJ3TFV1ZzoMYbD5xOrUFfgM+v3HPRb/v9yIekoGtbpDEamx+01NTau5HneBE4hek5BJMr2uU+vCBcxARbJCClH58b3s1AqDF7+z/gXrwwXOckiIeU8q2TlDXNB7xrlX7l8QX7+ff7Lr1y+RC7ys3Np+7gA0Um5EOfi1cIPFF+5HMJye2BP2PaTcMGxZz9+pu9m5bAP5098AZIjoL6tA16POlyUN+Zyc7k+sLW2Jyu38T/mgitfvH7147FheTWAlZURAOpPwNR9Z7V8ApyX2kacVBnxL4iLEhMH+TyLkU3l0tY7s7Fal+3tvw9cr1kW8R7Gccleibf1AS7t1Re//2bGcEKNH3GvE0aPG6y4MZisqHEpd0xWy3YiZITCLfj9fsGpUhOEmnbGwyaC4p3DQVBLuoOfr+o0xgX1kkXvJYCx2fryw8ba2ob4WH1+93abqB1KjmcoQslSDElQnQxBsdjeeF/97MXrN7+8ef3qmbLCKnn6sB+Ag35totIF2iKkcJrhlAwC0onJ0DdwkEtPlUppB3A0owd3Ogs2NVhcOUjxRpaTdcowmm0yF1JX0KGat7kLZRXfTC5Y70pN7j5Y3bjX1i4NMYHTmHkbB602ErpuVGmOrnywNcSzF29+QfJvcHcHAsVclDkcR+5Oz2FWMX9MroimQN/RKevUqG9xGo6CjD1i8Cb0QEdvmBGQ2SpYb1j648jyRQkgNErSQGDN5MKC2y8UGF5ViMQspmZyQc3L9gcztro204sqvpqIC4GiH/JDQvc0CIGlbAdo8jc+xFlYjnr1+2+bTlvAd817VJ7ShL00LOX16XL2wXyyOwjuiQK4Q7oKZFxiXoG8nLP3LYOllAVd0TWqzUC+2zXnhlzcZy+cXz5ZI3FkRavKkVfIyVZ50DLSXC47z+uyvfpA5KI2eweLkaH+sqd/fMwh9C1HQnHb7Kx1LyEGQxrzKlmc60f6shQwqD7Nh4kvRsS8vm5tZMgVHJyDhcUhGCp5jYhLLjsUNIbssfiioCvNdvTZ/b70sKU0ng9NwOhiKK5TEM20Y7zClBS50Lc8zeUik31zs27Itp9vDUhcEoMFKI9PFwZ1AOPIyAh9lgX3vnyY+yldedpl79fa7a6lT+3Y4AL02a+FfI7SqJBdnPaF6G57KNGfEfOUStpB17AlPQutoZClFHMs+kFnH8umhwTflKM4SNE03uT2xShxYWRN5tJ+88HGdzOym+wM4sJh18V+bmIwD9/ODRf6Opjq6BhUCyHL/vg+UXHbtbVV/we1xajiiLw+R2lOm4uUioHAXDhoX5hYLkVc01JeXxIYiLkiVchoJS5usCAuUwtzvoXE6CjoiSa3+7wYf0FckL6YyGZyufd89eUKGlLuvFx9OdPbXuMSBkefvxAyKGAU6Yu/7zCX+l4M/f32o7gsAMSmpjKWkrQnUFTrmtAvaUNeWszrC4PeZEnHIIr0xSUkF5OQdGWzU53ild3jYGt2XEwFyTDQyiodtADDN40Lzt5F7cr2yw3xvCE2L2L70heYnZvgIloDbfSH4tnQsGZs9uM0oj/iog1ACuKLAShOLfjsEZhbHIbhvwZAz4EvHaxobFy3K7OU9ujSy2WtdiGUjpf77fHuCS4UajYX0mhw+IWk05wICxF3a0P7vZ6PvuDsdyKT1e3nG1u3pUEl4hLKxTMOSMY1jEzuz2SyUSgHu47icoQdoyC+DHo+lcvCtczSUrwMjmICwj4/UFYIDkVFxSjnloqzkPB5IFgcz8ZjkA+MF5dhaBi4JscrzYlCPlzwgqUQzucNpuZxkbXfnvnmwcbGDwMz99rqfpREvwPAzJnFLXukUD9J0Pu271GbHS57TbSuccMhLphaSlBiAThe/F2GqgAjzlBScxDMxRd8C4FkLYsJjam5mmMGFbUX55pC01BcrCpNT1RKfxbNN7M/1tZ7fWZgZqa3t+5NJqrfFh2VFIVRemmuhZWz4ixL7vOPdV4T9sTTdXiaJKa3YmJGtBXD9RynxzGqi0AHhxGKcj4fTibDTmUXZbPKCD2HcTarTSz0hM3K2mznGkxorD+GIVEySrFobj8ZjWF6kbTtq1n6wN5W+Cd+fqV5T4yfrcoDs/QwwlhTDxW+z7df/+kCfMrN9ie3n11w/MArAj/0pbJD8Rd1bSI+Kk5Vn3/uvubsGea9noKLtfUYLuzFi1KuuoTxShVz8VzkDHlMIoBMf/Fio8jLxwUjqQa48NLMJJ7n+ZNxkTPMgVlJ5J36FBhZi6HFecHHpEZ/6bDI2vWa0693QSqMKlTXxpERmj8ZlwPOAhU/P3BHzIedn5e1XLxMtlovHxeZtfXUXEgzqelC9ZryelM0f3IutdUwFR1dqrUH8733mftbfzk7F0P9OB7L5Kb1MurLqbmQpnJkOkzSHZ5gUPCalSfjwvOkAlS8XKH3e2F9DeYH5rcePTozl5U9MRzL5VLqi+3UXJRmnaWQZxQ2Aw1Bj4LnT8KFZIxg07XSGDiC8/fXn6493Zm/u3JmO2b4z7tfJXn36+6xXDRXQ18kv2VBIVdUZZAPwon0hRkho+FIUKNi9J4e6H20jh4rA8zKmfXlp4d1ebw7eay+2K6EvohgxPgLfwsMMd3JuCiv5T3hHgWDgSXC/I1cfzq/s741f/esdsyw8s+f3759h55PHu9hMKBnrWgRD9Qfs2FXQl/kpBR/YU0pIQknjL8EY25AzYvK6ukZYe6g9mVnfWe+d+esXP719ueWyf/u7u4+eVxrYCYNTn3L+81Jp3PzvXNy0/l+U9OSuk7sH7YTX6ocWJqoEX2RQzI/IqepSN6sOll/jE+5PR5HFznSE+FohqxzOXM/2fD924e7754gefjT9xKXTUsmFigK//DEY6PLm8Lc0th7/f/YO9+fJvI8jlMc1oDCUvAoID1Z+WE8pZRZr5W5lZljXCsVejLAqYXCjvVwUmttZBxbNTatM8yGXup2S6fXZEpiwiWNmusY9gk/NLlnfXb7yH22/4DJ+oiQ+GBz3ym/Ci0eP6rI3X2STjvffmfSzKuf7/f9+bbz+bQNr97fWqBqqPhUrSEtGd22/KWq7k/Dv8lvHO7uGRhQbU4nVzR83tLV3nO/uwWqerrI5eXX0dEdc3n3bGEIuMvC3CKX+ukWw+XePkNLt47oG75huNRrGmx79OjU8rrxgWP7UikZPkmrbUtL77QNPQY1d/T2djTv6z3dfbrrVNGm9Fhjowoq+kPZ2faB0uJlLtF/7HB+qa9//ObZ1Nu3U29+mXu7zAXuhlqavmk3XJnWEoM//+2G6cyDKw1lK7+kDfQc/VStZ2B1KXwb/tJYdKK+p6f+RNnRnvr6nnzVZuPKqsaLUNdifvIXo3rtS23Jy/CO55f5ufn5Z8/eLcy9W/GXLm3L9fPt8M2j00SndrodcGlZTcxXUKw69qmaKv3XoG3ML40VJy9ehCqK7l88efKiagvxfnFe25FU4z198dN7qp2vw9SPLrx693h+fnT+1ZvRFS7QNfhGu6kZcOn7+YfetVxSfyT+VG2neqyxGFjjfnlbvKX1MVXDYlvx78E55NPkgMvc1Pz81Nzc/DIX04VHd0y/duiaD0/fNvVdMvX9ufNG3cGC/4X4Zcvr/KsKe/06/07jyl+mXslR5auphVRYKXN5MPig64fhqzeHPhu6/eBB59kvazN/L/7vjF+2z2V/rrkMjS68efv2zcLQYrQPuOiu3dJOt00fkxu02rpvhz6rq6gu33N2am9zAZH949HRx6PL+9O1l69N/1oPwkt5r60NPA8dHqj5Ys/ZGn/ZlzMujR+JS0oty5a2Hpa5nvzV8T1nR9ZwqSpS5chKD+e9/1w54/Ifh7rDRxTKPWWVlZrW3355YmDV8uUs3jmx4iPvP1dxikze0Ie3o9NHbI69VYTX9l1eVX761cqhus9//7mqUklhP85fGJ7a9lTFapmLNr96g8jmA9vBUpXq/1yWDF9TgWs3KzwVHKzIGZeSkuq9zcVJ29PBpCqhpiWM+KiWX1GUCy7V4PMf0peUlFdviYvtPaQwbKPLh2UUlgNNG3bfvGlCbjqtFLrMpab/UP9u2KH+nHCpzj+k17/Av9D3V1VvlovCZrPNeI+CuxIAACAASURBVCttNkX2wn92Omu1eIdTQ9vXFmJ04Aqapu341oapzKLDrJnX2FfByFz+slvWei8H41h1TXXrzJjH43/yQluzSS6KwuSsHxzim1EqshbKjEYxZ9Za2m4ptKZwqQMjNdFo1E1qCh3vHaZW6glnf1vj5nW8chWMzEWzSwpd+d29YzvmUl7T6jMaR8ZmR1xG/8TinUkFZQfKPpdTHMtZjw98DjYyl8pVLMkxo9Hl97lcRs+TLGBwuxkVGbcTx3AcQJC3GNhxON0kR8VouX5mYepNJ/CsUMRqtaqDGizVGUs7ZqmP/NJpF0USX2wtlFszi0ErZTArQ5nMxVa4KwLdWfg8B1xK9PgI4DJ+3Ai2T1JpSAoOQg0QVFqmOtkA3S+rgKBbBQXFUJq/2GZcgMus0gMO8WXOMm5GQi0B0m0naYahnZi8JcEOGN0YmQvYJzENSZOMHbOHdVQgGDQ30bjcDVs8BpOPIXF7qk+qgYH513jqTItHata5owOnJ1JgsHQuuyPRK3PBpUz/wgW++8drJkc8IzPyfeIFFW2na785Xwv9saO2rwtqvnT+yu/2F5390b5yKWxJgMWTrPS5PK7J55lcyAgqqMNkOCDygkjToiBIYpgXmTDPsVSMDPFEkI7yXEAI2ZkIFUwwTDRkt4NuHMkGxEiEpWkuIkhMiOf4SJgTBJGRkKYAR4IuIj0eEANC1J4JZjyi47ElYLvIxZkTLiX9rX6jyzsxi4NrPZ7KqwCdNV0evGOua4eJ6x1nzOcGTb1Q+yP36rxgS3qMLp/XNyN7zfPK9aMYyaK8+FBiWDVK6FCOo0wEBbPWQJyjAiwVDKlhsyUYQhA1zNIMbE64cSaeYIIoIaCiSKkJRBfmKLNASSyFqoUYajagXMAKX5aCVsJMxcYNKAJHM8prL4IJkPi2uGA5EYU59Jfymq/HXB7tzKQePOHLeRV6oRZT97Cuow66cO4+dMlce/UauTqTK5R+4C6zY4oxl9Gb4S84GbOE7WaYYREhwVqCEbUyYQ0yllicQ2PAXyYkO2M2sWoDl5zAlAaCwcKBq4Fxk45l0QhAF5ceigIqhZoMHCWwypCUUFr51yj/UxgRSMZkCBt07DieIQIAF1bQBekNucgaUrFB4Wg3TZO0Ands3Tkyproc+UtBfvnkyOyh1ta8cZf/r/0ly/fvt13oHIZP3D9JXIIqhuX79xk8TY6NjYwpkslCr8szY8vUXDBFCGqKDSF8ImoNimhEsEq0dZkLwwpmxMwiPIOBqQg2M3jIbEWCMALDSESignHOIhrUMKwzc1Yx4aZFoskaSKB8ArTTZASRYCGRHQuBxOxY9nEMMFF6J2eyKnsHhjPRcDhsZ7YKxlGoIEnnB/GX6hL9rOtbr8vl0/v9X9UscbkC1Tbd7oLbVFBTJwR1AS7NaVwKbT5XchboN5vfk8zgQsuDECFQ/HiKSyyKEhGJAS9eh2QuQY4iYmYYcLHjThzML1KCfB1Ti7AQp5nEEhddhKGZOGsRSTKARmIUn6D4n1jgdfGImoMF0p0FS4hQx2hsg3k/6fV5gFjxT3qVWWJdJvD93bt3LRztdruBSMRxtxsDD2chUI5uWSWCdgx4FWgD6ORtoTO1g5N8jF5HMzf+kqfVez0zfqB4vT5ff0lBahyDO2s7DWe7DPWltzqJrisXzt3s67Y5Vr8YtlnjrB8IuMkxf6Vi/QViCCQUZ+JmgyhzscQ4KhLjuQnULEUsMXBtpYccZ4DBHAS0E9BjaoQHegwNRdCgxEuizOUhF7MCzRADgEjGrEtKFj6BEEFWAF0QIqkWGDwzsFzC4sjGRaEcc7lc/lkP2PrWf2Iw8Abu/v1fkX/e5RNkPM5oMIZJJEgmDuQik3rC6UQ8QbtJhownSMAiEWcwjdyJppXfW16vA5Mbf5EzXoz7QSTi8niP15TnLeZVuHynCcz1TT2lVYcHiet3aqEzN35Mm2kVlU9Shxh9SUXGMBYGX/aomw6iATPgggZjasGEqEMxCgxUMRYJsjodrCNYncxFDtQFFEGRgD3UhKpRiUMAF4qjBbADnAv4S1CtM6gDicC/yTu7mLSyPIDj9ZxYAUelWxg6q9jxg6wVWnSKHbvqtVo/qrXV+lEdISJGUa+UtVeOrE2tU4xTuzHxUlETnKRJIe5GUh+amLhPPEziG+lmo6ZJP142vvRtfJ1kzwVU4NIuWq1D9l8pcDm0cn/8z//jnPv/l5bO2PKLiupts/lzHC74f8WTGF1uCo73+4O+wmPXx0Z+XMZmceQJN9wyM86ZjQ3zxNf0tMs1qdR5cUhltTPep5R32u7yLuhsHpfHujTjXXE9WNGZHXiQedYz7XEt6ryI8ayYLcegL9jyF14cfzL2/PtCX7E+v32Rn8n1V0AUZp+5zU+QpgTHlezHTn0+dn1qLUKOzIj1Po6N+dlo0ogtiFqxMDutt+EpnMJoSZL6ecJCle+m0EiapqyzFE1R9KyNxl94k9FEkkraYlXqjGzgSc9aSfw+enYBxz+zs+wQbuSPudgxFtIYmUtiPzshrK0/w9+lqWUOlhWk31zAX6UXdsQwyLPhRHhac+JHqU7fARuDXMiZakfsnXURMS5ktyDEONEKPuCafmHh6kvO59cbP/2V9C9/sxSeC5Tp9dt9kQASUt9WsRw5IeBJw/OWccvr45Ezl0bKyKbASEqpVLJ5lkVDaZFhhiqnaKWR/cPmyNgHysBpMVE0rSRNOKanlSb8QiK+YXpsfph9wj7CY0mKUpKJFJ1I7r0zJPFGPVXGkaF5y2AueB6bWmPna6w1oY69yfJiDnmWLEZLnNXpVL5gkI1hNrzIjrVoAv8suZxzaHrejryTGJkdTbrQpINhJpBmcxpN25BnU1eu5OrLL78cRZr/4g+F+4UVhJkZp4I2JUHIC8vD7H706JwWyjoxgcNGfOb37KwpYvbZRIYY47BHvjeZPhpjmOLIxLD1l/4QR2Vkbf1HI3ZWOIGwxTyD9BsLloWNGeShdB60yLjwKZ/EQCYYl20jDWvJRL8NaSbxMSvLhXE6GQeyb84grwN5LJbQ5AOrL/ycN/86mvWXi8HrOv7ubEe0/lKuwwaz3GRMPF4hTcZPcPnnyFTq+Pja+pORZ/2cEIR2Oh0bS2brDNJsbGrQjI/LnI8Lk4oPeJBt04H0k/gY5sIwS7qljQXkxVzsmMtGBH3hwzf/OYYVN05Fis/hYmLzlMeOhaPMoVye3Rsfv3dvZP359fF+rt2fQ4zX7kFzLjQ3iRizM8AFORjnnB25FpF+0YWm53xc5rzIO+2x23xcvBOIsTt05Rx94b1588XWkWNr28VyCJe1J1NPro9dx39zPMhENopy4vjFs+Bg7f3MJqPZXMRzlgbrC3Ii5wr2uvCrSwEuNLb1yPsznsdWkNfsQXgkxx/jE2/+/YW4xNg+JWVoXBm3zsaVI2PPUyPF+6SOtmKXnKZ01gkdjcNFJYnjSAu14HRZJ2ia1llWFnQ40mSXKsopnW2F0lEWdhB2Zhy2sBRq3BflkvJ9jMmfroWusC6vTY39uL4cFzE/hs+vjiLJ8kQdds6NFGVSUtg3pBeczFMz9svZFQfsvFPYv8ReIcmONbED8BOTjvUij1RfoCiZFRGMhgv/D7ElP/yjMMyQ9Metf2JLwm44xd6ZsAKwP0bS4SD9fqAvYt29keWmoCdkhPwYX/o5+iK+NTo6ekv8yTH+nhOYy9mvYkpOJ6Vwd4oc1Hswms2JiQf1WPzxS5R9eQhRaHcJkUwmgxllKpWqLCNQvDBiKTFC7HOZY68vDxGByyF8/PJDuII+LvKouBDJICG4HwvMAwDU9PoaGXfd8FX7hHdTuBMaISvLugT/f7kc93plMuhuCaq1CuUXerrbGrvaenp6blazfat5In5xCw7yRTIcu8BkQbLM1xpEntU4AM4LeIRQHotcTsZFP8C+iw5QqxkV72oMFKRo9aWlaf4eyUUNmIvoElF7FRA8rEdyQRIQA8CHfi5NbD1KaXZQPVie9Mh2xh+5JEn3ucSlfn0icoB9Sh2gi1EXgAAYSEBtUVWVWu3vKY65YB2paay7kSXubh4qySupqXhUVyEu+C6TyLrTWVOdISHib3bspcyIgvOZ50Ml/Dn3tczgUZ8a/lmSeb6A2ONy7YTkz9dyJVFzGdZqS+NT/NcUQx6BueyWDFdjLoKUkvvttdqWTkVX7cOWK/l3unoV8Wzp1pKH+IgiY7CrYe+6V4Hkiirj9yqq+EAbB2wR/3hSci6bHzWX3rqrrt1e7fgEh3HhFYAMRTfIqB8CV/I7r1QNgLL2puKBobYORR3Iqm+SlYH9thUw58iuvDpy4e9mXFlP5fTZE5HT0gNwua8vLQOBokgRuMhAsaIBDDSqEk5pazPyb4L4Su2j9vZOqaIJZFVqcwdvdOznmKHg9ytwPxI+KU8FCg/ApZZR7WL5GJdu0KAoBrLargu+fRetQOS3+2cUnT3ankwpjC1/jMsl/ctxIYio1iu/A50NYK+kK8ulVJ0WkAAXVWNdW4XivqpGXVNS1Xqhtaosj5BKshq7MprU3dXVQqGAF9Nc+vr68O0jaHCUnRzhBMsO1S8Ac5EAEB/VbymQ8Pf7dkGetDktvyog+Vex2YHJeXX1wxXFjb2KanFLPb4byINQkFNSO9yraBW3aWtirK5CGJe+x+nz82/n5/se90XCgj2cUQ6DdGGkHpzRcMnNa+4cjO7XhCHfByKrZU8Gfa4lzIFZHaJsGH9KzvZLEn0r9lXOhwW8rDMSeUrHt7EVVoZxSX87//L9h+0PWxgOV2UIoOrGcXeyv50A5PkvxoREZrcqWxA4CA+kL+I6Q3uUg0P/4Uv8PQl0poSEJIEQCfly0V1230WgSS5PKJQkQAFPcksaw1zSf9raeb3qfuVe3f5t66dwMCLQZNBoitpAZlKSSEBIRdIcdm7AU7umEXQIcqTJUEbkwOTouYjTwdUHh7NNAu6FuoFuxTApU/VNjiB034VQQsQul3Ti8at3bverrVfud+9ev+wLtZTpgtG03vib2jYACAJIRCKQkCyT8HgJvI6mtlHJXSgHEEhgdm60xgZzGW0tyj8GfwIkwP/t3cSSvrxcda+6d+a33avvXs8/DlUYQdI3RbXYwAhBTX3Vo6SS2qY77cNDYn5FY3HzEBisq2pvAGW9adrBXFG05y83t6u64hgcvQj7LmKaS9/8K1Zd3r9f9XHhWP1hzcPOCvBI39WpH7pt0Le39hZBcL8ovqoWPDTU3a8sLlVcVvfmimCUXFh/bPCLf8pY5LLtdu+8X93Cd9scLpA3WFekyb/Qrr58o769Qt+cDGoMTSCtEqi7VIZqwAfN+s7uSkNblN3P2PglPT395Lj4ro8/GxNcdtyrWy/fz//qdn/gckkCSfLLDwYUab2KRu0F/WVwBqgrmwzdQK2tMVzl3wZa/bDiYW/ZAbhIEiSH+72Dag4clsvpc38tLCyUno0FLh/ebf99Z+e3t6/dv86HRTAw5/YNAMT6gfphX6YWc+kAdVX59QBUadsMnYBt68y+MhplMOPncsj9yf8l7+xC2sj2AB7G/5DiRCeMa8K01RM7GkEdNB+bhIiGBMkHSSbbmBiTNhKcYEaCiIG8bLMhYJEW9m0ptPbRp7Lch3pL9xZ278K++HKV+7j2obuCcH2oUCjI7dO9Z0ZtuyZ+NG1Da/9gPieYOb/z/56cc5FgiX1hifq4tNp/uYllqavtyLHWfo6zkp8Wl5d//Pnyf3/87c/nP/3+7AgXCzik6FRKTMbEYCKVaCrnoV837CoHtPJOnIIrUSpddQqZYrFJz7wDlzqv5+9EQ4fS+o5nSSFFOPu9/2L53t56pLSg7O2moohPhwv17PenT3+S5el/bhOdVVWzREpIOYAOCSl+hkuFwapB/slRLXgTYMqlUhkI8KlUYp4mPzaXoYXVtc1D+ep0H/HWWRKUFg7kK7j5A6iOqAvT5wiFQg5ax6gYxChbxMl3r5/QmCuj0P2o+78dyfcf3X0upzBPX94lqh0yq+ydSZEAFpzDwLxsr3DcTOIZhnRy75YG4ADO+nVxnFwnl7Yh+9ryxrIsG8tryu678kBZKILCuS0iCYamLAdODlloxQgTr6NKdzwkiz9z6/LNH+xDVVGnOW2TxNIlI6cFPSL7VGpQI5VVB81I1cP2gJUFLWIRC32IbBQXgpq9i54/ffnsaPJyeI6EfLoIEVZGxSluBGFLjF8kKCuDb+n9A87IpQW0da4/dvHaZSTvWGi1ry6vKoaIYPCsIRic3uKZQ+l0+JnCA08VHU3iFw/L/Fa4KnXIW706Be01zIWp4iLk4PpU2gTQbboCmglVO74jYNTUDcScZXQQkGkUrGAxzVX9bOAjRpDk7Ud3ybvE7WMOpw6qILWG+a0DziKUrikxDJp6uGCXvXoga8t3ZC4EDdxMmMOj15KdaekZG+M8I1hxMfoRzxiotW7DYTCCubiU3k1H6hguZhzXzJRN4DBLqSzr9fJSzkAs+sRUBII5ny1TFIUkjFQkWx4RZKO4yIX+W7ON6FVQ+nHP+DctdXBpxe5l+UA2Nn6RuWDrVIymvLpstFQR4pCplKKpGGBD4+ejuXB7fCrWfjC5T+ciCOGEzdzvTk+PFX2WyXTBIZYg5Tc5J0GQrgbLxRmpct0mmBZF0wfdp/rUCLJBfTGqGb5pIZg6Pjlkv3OoL8trS/J+1QhGEpD0jWR9CTzPI4u+APh5gw5iZk9feDQTnVAf/p/TufAunyhMQCJdCkXFZI4HECZBNzeRSskmLovzA68vIEVDpXQGmEZyaZSwRr0eR6T1VMDsC7LYF/69vEnIxoRA0O7J8I6IuX0A+HwhB/NNvuwAxHPAzLeV4qBnz8zFPDnq8w3jZCwe92cMFZ4FoQIJp9PFy1xMUgymbBln0O8PJXvJc8iF1Oia2cFMHXbs2tLm2tLC5S67/T52+0PKaEZyuWmZyzhcSeULFQC3LwsyFxLavH7QvsVFUnrQJ/n9EbECgXS3vIV7hVeD4PWI+euTir64JQfm4hZjcgZ9Lit6pEYPBlsd/ZehhXvLG5v3Hz68s7qxfF8Ok0mWni72uflAxJzsi5mTGb7JGucN7tHFlAm5R0O5C+jQZdJg8idkCS0eEyd38DCQL/ubzFLR5usWfL3QMZlNl6ZEMzhTkCwXwCuOTaejvBgB+nzqixYlg3WFY5s4e1lbw3+bitsnmflF85TXHIuY+aDZDxnzZNEcANu0zit4Bc+Edzpw6cDvv5VXdtXMK2HRAWR7IQQGfynuoWJ5DRRiUAhO5fPg8EB/ZhAiecRlStP5S2rqPHJhm/XN9fiXNsbO3ltd29hYvfPQvl9GYbQXsgGDaXxGSGaTFyCRM4VNLJE0QHcybPgamtyDb+oqp9RhGDnz0WALNq/UY3CeTCsZM5Z8sZQrloI5bzAi/6AANOR5tGNUL/QYNZp6Ptp6ccG+dG/p2oJ9qJXYH001HicdhG2X5KKEHwdROH2BeSQrhwr11BjDY+uWnJVQkRxHIA5xFpWVk19RcbSVo8cHx+YmxibmJgbbiX5k4RqW7zfWjHGDVl2d6120DrV22bsuDg29HhqKpmmLdix/hUUIkgG1XL6iGYJB8gNK1VtPnZ/862NSf6NvX24YO1UfdwXwGlwatOY40zcXnwC27vVhyNa2qpOhdNBCKqaIOsPse/e+WOMWZa/6xiRqNVLHVOTkzgRWbUWxa9ZoSO4dEmCCvkI0f9h14AlGsS0Esn46WdoH4dJKa9a3n6yvE7WK2PudCUByAbmW0lOk5uhEPXHyGeuuW35O2fMH+cbb60+2dnd2t7j17Wos2gAO+zNZYHsy+RaaoZCyOrFStaUp0oh62ev+sFbWGIbB75xWoyAbuW/C582F2dt5sbKys7LyYnevqlZKg5B2uiTXNAKnYO0hWOi1EDBvwYHnPBDkeDAJTeVp6EUEo++xsNBzSn/ivfqVXxIXkuAwlZUdpNwSR70b5hK1WNrjaT9kIzB8HRmuAG2YAMYIEwYOss5An8Vj6G66gXTdc4AMo3Dypdrv10d+LV+AvpBGmcjW+q7MZZ2pweVrtRF423hwCoJBrxibyLk6MtCe6JCCMcHlyw0KV/38HAxH/aaKZIsxKvJjcSGqHpxnLtuyCXuy9Qrj2V1H1XaMbyMt4JeSQgX4NJ+JRJ3JRSmST4eSpZkpVyIyly6YynnwlGd8gjshGk6sH70Pl87Z19L5JXDBmrK19+LV7nFcLnaigZAY4XOQEsYhIvJ+v+gt+eR2v8MVgStiAWxFlOPD0mSiVC6c2J/oZHXNxnr6YqrZRw9+ffx3RR7/dusM/aIaXN78ZO5z4LKF1WX71fqebM3oGlwIloZKx7CQA3MQwJOeik/5HVF+3kpD3hWGcTEDBTEr5cNSMB73J/UnnXub+lv9wEA91/XN3nrwzx9/ljd5/fnHX787cDHHXnchzw1S/RcuCL/LkhZ0lmyLZMhPgcvWk52dnfWdlb11qopLalKnhlh6WoYiBOHGiFSQE5qgE6AfCq4ZGJcWwd1h9hm60wH8xsCJ7qVr6ftvDYZ69KWz89bjxw8ezN7+1z9+/u272f2MkpCvu+i9QSnXXWjxM2V1EgSgpeWE6+2fV7JK0cwINa/dISyc1Wp9Q4zQ16zLNJQLVpS9Ldn1b6282q6Ok81pwewUc6PgjEJHFNohXo5OSoGwaA66HCbJGTSUEwD/J+98f9JYszg+Gc7ExgHH4AqZWn24AtqiRIEpErxAoF6R8quooBgwBAiDMcZUY+JdQe1tstG2L+++2DS52ORmE7avTJuGvduVG01MTNpk/4Wb9O0m+2qTfbfPg7bVqv2BlW7dCTLjwAsmn3nOec5zvufM5J9zoPbGV/XZ6Pv8S0Pfg4fXIq5QVd4l/2wrv10u75Uf73OhOUDBDAKNShlNKxWRCPI7cYiLA12nPwIdOsPAIZ0eL0TTnmRu0pVxyk6Nnl8rSHiThH3tD2vopI5ykf71N+z5yWzst+OegVVMh7FxmlbULyVGAb9MdbG7uVxiBELJZKIZ5gbHJENBgOhQVFHfPpbLzV16X36i6cp3v/4dTKpqfvU+lyfl8rMDLgicXv1ETpseT44HhiAh5vQTFkCMzEd0F11Db3UXRFegEQNGs9kcCCQVx4YAB5Pj46uiRYa/zwkmDjyBKJiQwFF8y4yAZ5gmgas1F6pJ+pL4/H/98z8v6VPvJDkrryj7EM0QgwAyUnYJZLEQ6vGnZM+ysg/mJ5r4hod/+v1sVfn9dcylVFwv5kuPdw64RH0QJLoLX+Mo0V1YtGGiu7AYQ3UuSWJ44LC+g21UWVx4C3kkxxP0CNxZcTiQ9Qo0SRIIkMj6sZUGXQzSrRow4ctrRHSNuVBN3MuX/8ZUXp3kEelKXxQ1Q9YteZKloBi1CakZWlAL+KxgUrNdiKYRfqNY9YfyE01878N/9KlC1Y2X8vPtZ1tbOzvPS/t2DIHaf7eiu4B93QX0H+T3qW46F36b36cqKf6UI2vNOhw9xyeMmAupvvKlxmA2YvEvVfxmfXC0B64nHP4ZncJvmamqzPeMKxQs8+rlK+ajVx8PFgWY427xQ4vhDb/7w6+bhpChOi57W/mdrWfr21ul1+NFxLarorto0R/RXbDAHdZdVLi4sr5EwDJ4ChcRWhgwToDF7XAkdYTLoNXamp5zOKyTJq/DEcgAV3MuZGLYVAvP1tC3+UdlswDVcdne2i6uTRWfbBVfTJGUtHxyob6iu7ABtmMJvUaO7ZhBk5hQUYYRn9jFske4pDKG4dhYduAULmoTLJjT7omWTCpkyUZH43cvD7oHJq028MVdfGCcdDy7sCt6bU26v2gb6eq47Dx/vFV+8vzxs/U1wkW+lDCG93UXg8Yw0V14jRYwJzu9gZwxNOBNei69FRMTLv6o3n46l5gaVgM+h1tcXb4bytoWssNiIN7js/ZrxawoWs12pfzicmFkWmV18T7VtlbcxlAwmh26ElbKFe1+i8GpyQTS/mA7jK06XU6aDhrAnnYZZDBjUx1yCRUuttO5LIAMLlm92NhlXOn2aYdNNAZDfhsKWyVLq+4Mnl7HpMwF5nKW9bGn+bViqbSezx9chrwTO2vdEd1FG1Wp/yAhpO7I3HCfy/BpXIxil8ogxkN2Rw7kqhjmMoYjMY1KOoTtWDg7ApIBJUtdcC7KKusr26aop/n807Y3RW0s4jhBMTA3QnQXQUsdQgyFKroLfCA/oruocHHqR04bL3GrI946DZCIt5rjmem4v3siHkgFeH/ckbO7U4H4AqALPV4a66R81f1BTsi+fKTugsyT9frWceNJ8zGqy+/xeEI2ShNTREdHnbKBjH3W7poL9UOLf9QGkdBdv/1ijxdeSbfJP6sDfau7oN9zlQgMol4/rJ8Yir2buWMQjImDg4OkDZOrEkUzS9DI1RMjyRFTKRC1n/b861C+6Hipl9G1qel45yrZ+uvcZY6hT0qoMt3Qvb+uoSA2EDFyE0vLTRziaCLUpPEBklMXm8sZ/MvZrnI/mmFOrFzl0MH2RSuST+DSNvVpN/Gb/MQnZiq+pO6iRuq8z/iL8QwnfwoZ2rTfboARDoe79JsWUvSnNfU+I5eGhqaGhqb/eavwebi00fn8VGkt/+Kk5CwLIGNpmqwVH2rejewHja1oZDfxNeLC9PZ+00fUxb29/xdcMJTybmF3r7T24ri9gqGcXctxWnsurGA4wUSMtMDb3S6IsTQbg6hZBRwSUA240H193954dGez93bfxefSRk3t7RY2CmX8t7u99q40i4OJ5TkwIZheDuhMeOrIyGkEMBLHIVgnibf9ywbSV6EbnTeXy3TvT4/uLa6sLP5w5+rr8hWGxe6NYSlWXnEfrx87Qs5SNP919+ubwkQ2nuR38fvui6ljXIZTrTOKTk1rSn8dJCEXPctBNORMWcCv0Wn8x1KYHgAAIABJREFUjWnSjMBmMcB59yHp7ftlcX5x8cdH84vzK1dJPTKOXDiFlmOlHahRgRgZz2k7K9kr1KnjEcMpZr/q/paESGEnv12hc5zLhNudBJh0B4zgcjscogp8Vocx5VFlXZBJzUSXDd1DVod5+uPirjNwuf1ofuXm/Ss3yGODr/Y1ESxLoJHMKtXNMGIHKobA3kIesyCHFgkNLDSrv+o+ivknGxu7xXJpl3B5t+cFB+5kIqWKZH1ht8ZtbI+mks6UdzYR9zhTHmzEMJdIdHlMl7TKpefN5ZfFlfk71679sHjz5gMyXuSNM2Pjw3MQTc6trnpgNJzQe22A5ODy6pPO2VB49PyXgM+TS3ljY6e0W9zbKOzlp45xMQ5qHYPJrCwZCMaDAPrhZDYKLQdc4piLaiw+LBpT0W75Odux71cW7z+49+jGzcWVa99U+ipkxOicuSdt9trCxp6EOewURbsM0sYhp8/m0fsjQh1FKv150hWbHDE0Tf452JFzvAxvFE0el0Ez5BsMU9nRMv5tQVKtNupI/zFswXbXp4ovSoXC9klcvJDIZn2Qm0jHVQCreq9Vu88lBOl9Lg6LyxXUfFRv7+q5NPRt3p//2+2fNvvuL9777splYsca5UKQ5CslgPSjc+MABiO+dYbwgRaS2PrSzW2Ik9ECI2NMNOKkUjmiTLRUijjKREl5E8Wpm2OxGIVYGY8/Rkgq5fnKjoshpoOv9QN6OhsPc9nZ2CkWCrv5cqF0ApeAF9r1AQnkAipHLnbJ6h1NWShLyqOJJ2A63h+N96eXbRD7yBav1a/DNFz59v7NB9/fufPgx/mfm2jMhdNJhvRiAHPRdPCV/L5soJLfX4BY58igDzpi0a5+CdSpmiHW0zFj14ImIqiUtyBiFwYQKHsESeTSyEiLsqcFlDP27v7+7qVbSzDTDzra3jPAge5WrbfDXEqFbWzKNvb2CsWnbce4tK4CPxORgtfxX/bO/zWNNI/jMv0MWRzNhAlRbDaOFzXeWQej45ohISlKGrV+O79MpuaMDCoxIkHWRVia2IYNHEm3+enuh4WDS06Wg/SHgyMtBJajS8MKiffD/RX5O+55xm6/bOy1Nb3ULXkiM078kiGv58vn83nez+eBrWU08K94YoXA9L0KBArem8vO+N9dbGk5tup9t7689zj/MGn49sHUt1999f3k/R+mhq+jbkYfvGPy3RHi7jnUdyW2UDOpxGZtEOQoICEXBvCFRn0uoItzMFdkZ5Hh6MukomZwFF3j8VGgiilTBoeKJ+JrYPSZrOi9Drsd0Bt/j7zpjMsxpLvUYrXaX803vnPc2kfG2P7h8flIL6kuzjpY/RDv8K3or8craRfonCHB5Z+vzlfSmeioJZECi18WTF+80xB7gTg/M/W3Bw9u379/+8GDPyt5FVSa4JJfDKTj7rrE1auyeyPijqi5yBpXkpOJ+FKulvPDVgjGgz7wBVMJOSFIPk1Cjla2Ui5pHj4LmsitWrSSuBHJQLaChktJcKaRAyALvlAoI/lAe8kb9AxZX83Xt93YeYb8/eNyo3schsEbSdKdpH2A7R0l0Wgn68CEHvSsHj+j3rEfU2t6jfMPTv32m9tff33/h9910iKwYIrkhIqvGJMjkgkkrhasjeulEGQiwVoKViQ5NAL+OIwITnAK41IwlC6SVUsijbwtZ+JaNSvMo9+nBadWMIE5mgGTkJ73R2FOSPsy6Uo0q1esgssrE/rXFCnG8nbj4NlOY7vbdhY4UV8nEMYTWAzPKsJ4lkduPyo8SXlIPFPBv5e/32Ocn56a+us33z/88vOOu0/Q60rdiAZYnBE9cgfXE1LJ+4ieKEctumQmwE7rgEcDDrIESKUSMXZQk1qworMDDSZQxfE/CvVp6Bsp3fOUJRMq4nKLYWLol/Hkxw2ifBnTVReLJw9OTk0apl4kgyVQdeCzDt/CnMHsAUHUmz2UimcJ1uNBtQVVHx4dWVSd8JQ/LVUMuFbhiS6awBNfpDL5hXOLojfg+sewLEMrU2E0fly67/MB5l8+DheVcdKgei2YrGSkUNZTUPa3hIKg2vX1N33oI3ikv1KdUid8eT5XBdnpQ5m36FRpRtXn5dfM5VMuV1yuuFxxueJyxeWj2WNlY6+W48styYxXXD4oF2MZuVmobJfL7/9h6oU1xlAf1xr+5LgQjcbO0cnJUbnReO8qTw7ZnyMg14degcFS/c2FHCb7nItRVT4+wVPee4cnRz/3RSTOYIF1F5Siu3guqSTxRpad3BbPt7RkYaU2hJ+SzHo6gbOpdd5JgA35/RTVn1xIUmVoGv6HFpFk8BTfx+WC5+/29/eeneDjkdJiCIZW62jKoGX1QyypJWjdAA7mGbSMTsXadOjfzWqsGlZF0SRElkCrVakmCEjm4Qat09MIqD4lmoCnlIv+40I0m4b2WbvZbHb73w+orY6qg9DqPshew71z2Wmc4MayfYwO+woXgrHDuKVq89yA0RSQNxiwjICyNhpSBGQtahsFzBwN1ITDUpU3YTRLECOjEBaBAssoaFU0zMQyYNOhiwGq/7gMts9Od3d3T8/a5xWmDOS83ulYFIIFp8NDeXgEh/F4qEvnYiwrip2Tg4NDdDrAXJiha/JmsgKzuXSplAAhuMUt+MAMcVHm5Hg4mfZoZ/NcPjNgDm3W6yWQJDsEZSiJkJKTpQTL2F15LiyNoos03w87wr/GhZjEUHbPlMO54BMNpZs5MVbICKVrOFcxGCgcB+95CehF+rHjvf3W0eEJOu0d/NuINz9bKcVl7/yKt57Juedlby5TKs0ZIBTIR7mlylYgMxrLZUS3peitFeubkF9wQCmHuYhc0R8rgmFR4mSfPxD1p83avuMyiImcfqk0GcP5fH2lwDUoFsR5ecgVMgWlGwN2U1Bc63WzjYtwOWrtP20cHzVa+60dZSNnysZrMlwi7l4D8yu6i0TSBeENGA2sCNw8uJZkcXME5CTkNqq4E0NcuAV/KCahppXhXOD3CiNgZfqtHyObmEt7GzeY05/O51PCXOKrkcRy1l8IxG5y4B9zuwO+deayuTw+aO0dHT97dnC8f2jEc560dS6S7OguNBOK7sKg6C5CSR8siDDjXomELba1cD4czIKEudgVLsFUciESiazYSGuUy8A1ORmoMSqy77iglnLaRj+41XThMi2nYwWnfzkbvVcBqRAqTTtnxsJgvgCXXvKNG42PWy3UVvafkntK/jGSVAfvuGax7sIC8Re6C9Re7rhgQ4S5WDERc4EvVsst8BBJKkqMuogfSVnJZGOGKGovA/BZzb3oYPqRS7t9OogazNlPg+e41FdXV5NRCCEuy2sQ924GxmKxQr1nLmr9F5OPevL2Gyet1h72X1pK3h5k3Ae5qKK7CMtcXSe785I7aOMkf8wH9Q2YGfOruJJc4kZWvPlcjAPZK+a9OeDyILtz0tKKzLlmAgtyqO7fCI/qqb7jcrZ7Otlut28hLs3hLv2YL2te/5mLcHPBvTG+mO3ZHpuAR4/gx97iMI2jwz3kvDw96MjcWDAF85XabDEmBSMuQGO4uJVSBxMuaREqAoxHfGCKiOgVsyBKQkVtkUW5ksAKGUoQRdmSEBe1NbHmiuSCpv/fpmEX4dJuo8FlEp2bZBcui0BmO1zSi/WCqz496xR6zGJz3TD5r8mHf3rS232XG43j1uFR43EnPkYw1Ze6C+1L3UUV1AwAowUH3tMC7DirH15kbOtkTgegFWEPurTiJ1i8YWWI/uPS3j1VjLHT3Vtd8lpvep1W1oO4jPiXp8cKEvgCq2MFubcsNoO/+eOPD//z5B893ni53NhRvVxz0NFdwGz4msZsBiGnVnQXNGOmCJ4nSDNNMGYWHUme9/AeFeVhPR7W4GEJI8+zHpLFigueZ8y0py+wnIvD3FI8mN3TW13uTjM3wxIqUjsyD4nlWde8jl8fccUt6t7MF8zln1N3n/R658bytuq1YDIOedk6ugtdV90F+YYL8pXLfgkq/5LL501kjJ22m93kqaTOblDGBRuE7q2BjlLRetQ39PiXL8oFm2Xnb7HTpVJ9r6t477jlcHO4rWl2X+f7PNhKstbFxIgGL5CjKKbXPMRKXrgLcfmUy/k4/7CqSb5l+TXBWOHCwYrBP1xxeR8uKvLti+IJxnPhjljhcvfuX64YvCOXSyrYTr71aEDT8xcYe5lDvuLy1jKM/MqBC+ybQHz3HTpR58e/d3RrGfKKy5viMPqB/7J3PqFprFsAl8kZLE6sYS5RbK7VGzXyWgfrn9ghJYriG5UZRzT+J4pMgpMSQiDgpg4XIVAa6O5tfHSXxQt9YKFQcPXgbrLr4gpZhCQkIVl0k12yLe99Y5KXNv/6tO/e5t7mhEwm840i8/M73/nO951zRnvjst1oPD3cRcdPwqfOFu4VX055hKvnL1QPMJK3XL5q38X9d693P7RbrfbH3aX/giG0ptNCDfiXU4TpzZmhc7YLAfPELZev8fM3DtvNZvPDxk6zubH+/vhhEmY5ytVIIMH1CdMAiRMntUTkS/K2jNOjfNUDQUMWzJ2LJ5cIXTCgJQniRlQg+UNyWWoc/bvVai0dNlutnd3GcUELqxY4EeQiFSo1UDQY5SR7nYjCeQC7Qk5MryOV2gdgt9pkx8Bcyjkw0snDZwWoyeHhUF8AUo5EUuLfOxcl2UPcK77UONhp7Xx4/7rdbDXXt+X+QqgDJU6qwnBCisxN0slSaniQlrIWG4nXpoV0ADMnJM4CzhS6rezQ6ZyLoVkHTKSk7JxcoHpaTaoHE0khNWxKCzHzt1/h/7Z13pU91a1G/eWw1WztHh0cNJutDhcj5HmBo6qQpbJJNpSmJG4om+OSggerxQuRNGePUGWBHarwSabMCACMNI76FENlmQVnoZRF5+q5CMVwzqTACY4HmhvI5bpEdgRJksT/yfDEkRbRVEI9AH3a2G3vbDSODt63mm05oB3HFGnqIUREcGQgSpkmqCDoHRZIhH3a2gI/DqNOPjKR98YC4VkblKnBDEVnqFiMj4MHixScFoYBMwzXaciEUzCiJW6aHsMJxbIslxdOwDs6W3d5mQ2kske7AUNo+1LmvplyL+P+9nq7efh6ff3p0c7G0xf30XtZxMigPL54ZlmRijsoesBoLrNi4Um/OlOlcuPRAssyyfw47wTMQUVTlD5ATS9ScEczKFAMU01PuvWO3Kx9uERRqX78pukx/ery3trm2t7y6iXPHsdhIhMKDYHmskaVI2rpZgWWUFlmh+Zmsr1wUZDtdqO9s/PR2PqwfR9x0Q2z6ZrMRRDphWTeQSVgmGWCZd4nb6iallg6GZcXwCrUOOoYkiSlIUBVUpQFXSsxcgsyDhw5GgbAyfGV374uQndcsL39za0V9IPQXHKzNeEqFosu9LHxTrpRpNSOj8jWNMLsVAw83XSYAYDQmLen2X5jY+OoJc9f2h9lcwzXwGKYpqnqRC49GeHjk1QpZvLSwyWXKR2slH2cmGHFSqJkiiOd5raOu1wmxCVhoaR8NhF1LcQ5OiDEiaQQHM+aKvz0t19K/pyLZmtlZWVrTT5uXujKJCSKfDQY5SOgs+F6UPbLX7N+zG5HgzeyNWl/rJvvGT4yOASOsame5pUvlg7kGUyzffi0k5pBY/UJdaZUgsU6m5byEKmzfeU6K0lOajEmsmIQnExVFCbGq04w6gaZ9B10IQjHTeUcW49VCjRk62ycYetlK3nD9BjRIbK6KR8vWd93uTIIhQULCAGwSOMQr1LRmq9UkRiPg0kK3XEh50NZz5yf7c0P867x+qjVPnjXeHFSJVENJIBVMY9g10ZwK6kbgeGHUFP2EzWYUD0gVTCpAZvaLs/xcfu8AlfXbJoHD9xgx0CHXqMyDhBWQjkAQwTcgNx+n3NZRly29vbWOnTOjRWa+YC/BENKRCY1Q8NcMRqaEsVibHJmxivkDd6SoUsu2j7G6etp3O+osneN9fXGWblXnMQIWZ/2q+WVOgLDcVKtl08xghjppL3sx0j8xGaUs9IcB2CgVpxUqGUfAS6X4EOvwm7cfkvFMuopm2tbe/Kf1XMfzw3RGQ6sAYalg37EZYqGabBOlRVF5glEpgKdAmndcBmwMHmfv9zrJyeWGtufpRQ8cY2dFdbCTxfuP2s5p03P7j79vRGxfRe57Ln3V/dXVvbP9xdS6/ALMBLni0zMH0X9hYYgxU9xk+gEhDEtSXerxzLM3JMi1/u89LtZf8GX91c2jfv7a2j8X7swvhihYHAgLZaUYjMpmCgmUv7SrJ97WEzJXJB2644Lmr/k0SgVU9zKl7msrazJg8ve/iVciFp8KhxZ5GZYn79AV39OsAYnXeQmf5ZL2EylZ10zXdvJOmtPfpjvjcs9/d7WZsdU3tx0X5w7kpCnDAZDIQYRQ7geDga84UKh7BmLgtvDjIWFbu1+TKcacd8i+F/m+xi+3+Gyf2kMJVkDnQkHLQmDdwDUdndICzoMbDiuRFNNsI/c1HoWf3guCnx1b3NrX7N6+RNG9qUW0xAKsl+tIZFlOiDbnWQntlePkd36LXvhgms6Qn5vXBTE8vLesv5qP9fxwz+2OT/1bnbv6uuFC662ywLa744LesD638ed+kUu2LlMB0aPhxzOd8R0/Tsb8T8fl99NvsQFI+HzjUey27ckpRYXFsqC6ZrgDnwU+vFbLr3Kfb1WpbyrvrJdM5/SnC0c4Ip709FgylWOJYLBhBDomH44IfuycdmtfXZKqoeCE6PH/99y6V5+UD4b/eezq+vqPIQiD/jpWg+ptBSm/H6vf8bv98/wJrumk84SQNUp9TqgnweYx2UXNwFO3nKcyrX/lkv3auyn53959vzVyytvMMPYP3KgPDG9SNWTnCEc9oblX29B1mO4fjAoZPusgylpoU8XEzinjaSlhTuabKEcxBzp0rQRu+XSrdx9/PLVo7dvfr2Gi7/C87qTvSmkri855j0RQ4eLG7IUR7EQobJMLMZzQtZcymVZyccUSmWnKEWkPhtxy6VbNfbTX395+/J6LuN1r+1qLoTKFAKaCgmivPYQ7gMweWfNiXBfIKyBCp8Ctw2/7S9dc8Huvvr79f3FgAYY1YnddRkXG5FiRCqQoChhKCBSVWewwLJs3VRxZRQPBSpJ6265dM9F/+jVry/f/Ou6cX8MRk+HiItc0ERLqKfKyTgMp5IlgCAjTvOmTlSyywx2CKSp+I2I+f56Lvd+OJN7v/X4IscjP39zdVySETjf2dYbUtVHjRlOZAw9f6PGmslFjJFCnA5a2HR89g5XzySlfCLiibsWpgPlTOLPwuXej4/P5MeLYIyeT6YT55vcXeqMu4/f/u3Rs1+ujhPHCDt2NmyTNl/VxZ+ISwzVNAhcOcemmfFsrsr6oklWnIa8KIrCf9g7t940kiwAo/Yp2aLBWO0YRIinsbltMAg3eIDgbVowhMtwG3MxlwBCmLg9QsgyEVI2sA6OX3Y9flp5H+bFUqRoHubNL6tVojztH9iftNVgB9v4RiabIRmOsdVd6sY2X586dU5VnVNQpfPpXLjZycyQX0M/dl/5+PDkw9dj5WUwJMCZIUUXM60LdSxBPyQYYtnwq+Pxf2+44GJxGLSoTZ6Kdqq7NEKpW0xizwVobcsgF7sVM4TYtEiDUiIvKAyQ1Ji+2GHyBS7LjtfvXp/Jm6Mnl/ZZIoXHmzRQwq4sJJlpodOMkQgJVesZ59qUvudgd1u/uX3vFtIbFdixvOmKi6dS/Qc5dRhJqV5IaqmcJPFfYRCRIhLplcJuCqnw9pKvxN9fduw93umJY+fh8eXVOjJob+RAJhMbZDJdJASkDMknhRqelGHbZy22tRKFmEIiWi9MBchmFDLytviYXKz4VjqEJ3q+Xt1ZUx/gucP+souvgcu0Y+/wwXJPFk4GuFBQceVgDubmcG8RiABhnFlcAaShQQtlLod7MpVKLiVhJSkHCagKcIv3MJ4Xu7u+HDpmz4zyVVw4TzycsceiGj9n7bATFVdsEzKVsouPcdmSOjNvr4laXrOLV9MRfKwh0JjLJ9IXh6Ass9PLT67hslaMNWKu9SAX3rdk50NpjikV7ZX9JhdZ25+vtTc2PUU+lPWmt/YbG6GbE5ONuQyhL/cc2LYsOHZ2ruHi3YpCaNe9yjUgupV1lndrkS0v4H5MCmQSLEVn2+4GQ9JuTdW22nBjLuIxl2H05bujvxw9PDw6PLyey9ruqofLYBadZpjPlew+CUS4dUm9xNmLoU4HtC2PPRZuNhtI9Mm5dCdYvuiZlY/Tl5237w7eHr06en0lF1ePS3HCw+1DlUsJQY9KQC2BjKsOHXs1vuFsz7sBTPbK7fUSP4oLaRAL8sXPRw6rL/ccJ692Hh68Xj65Ypzs32BDRS+EfvFpA/N+prlRabviFU4theBGHWKBaHi3YdmIRQLOyEazNN+4efnl7VwubdgWMvBPJt2CFK7dmkYOtSqH/FL05Z7j/SvH4+U37wb1hTQ1/L5cmIVcZx1S5iazWEkkSou1Sl0CIX8SNnlz2+8FJ99pq3XBRMLvuTk6dSsXZLxon2aMcmi0M5FIJhisy69ZqrQNQ2xaI+SjqngD9sVx/NPyyZu9K/oxIQ4j3oYWjf91Ie5iVHbLdQIYcBcHUqp7DDahUY5PjGAkid/CBUnVrfPRHkJbd6tjDYZlPbkS22NO2mgk1EKgaRElNNCKRocBDbLJCETbKKHyHmXDbyIj8RVkt+IphW8hKJlwotT45lDvPUZcX46+Oz56e3y8t3d8dDx4rU1DUhpKSS2RBE2vUEgjozUIv0QE/oGbkEYjVPKkNaRIQ+Mrid9kXzTARfojbVKi6rjs8/beTLK5tx6GmgQQUWITfkJII5AEKQdnWw1GCYCMAJihRKCQg1EmEjKLkgrB4lEzAIiSt/QAtElrZmAFN4+e1lyMWz7608nJ4aOnTx89enryaPrmp100EOo4XeY3uObv47gsAfePMpw9y5R49fK8GEFta0NrlGndUwhFdUxVTsvVOXdcV2cLzhzQXqcPJGzdkmKAYidyXkU9lZOT4HNGpaBmks7qD8pNc8hnqju9UwpyhLmI7j+4t3Bv4cGC8Fp48P/+1bfriyuCNeZs3cXgfCUNcR4bM3rN7OetDa85Diq+7MzWNzt+a3nKn+ATIWhnw9l8brLdCZvT4YQ5BWu4uQINc5iPpVg+30kzPJ8IFvRohLmIZs/L78+FW6/s0obr5vdxZ+pv2rT5VNRag0yMyQaBDbBr5vV4IG0xBPN1DMXdzq4vmoNzfl7mnS9Dhdd2KmLGHE1Zo/gkKWwbDwXc4COIUdaXzyu3c5nPc5azMd0gFxpYM99uB8rRhAXUVk8t4S61dalEvRpjYM5fAjEbyPmxiUq3k+EI5HBrppmz+tsVay2VAHAmLHHMJR4Llyd+kI253N2+bPyihhXiei6eRMPHrIudCQYsVo824ORrUMNc8h5Q+dMAHswlDTbMxR/EXDwQabLWTQuzDuWEGEIJXxXbfUM9mPcnR83AjDCXFUjEQfNhfh9zmQ/0sAR6/ZiI8PunpuKroazAhYW0tamFVBZzYeQQNPu0lYQ7HISVPpcMn+ykC8n44n7CiLlY2FjUbWEgZK1vU2Mud/Yrl8T9TwtzMXOuU+GEdRcioSMz84F4KM+A2h6HqD0Ixpq5vmn1gNQSzvOxKGSxvpTCyWYacgGPUPGtGstmY5ZyvgXOvFpljlWc1kq+bEBozOXOcZjz23CQcoWtxk+lymqwy0HITG42t6rTWgqTGvWcQmVJEhKtxaZSF7CXm/SwdQXhW1Wg+rrMt/rtlHpuZsIikq/mchMwYVFKkpYlpY+1FNSbjEw80uPkUeNy8cNSmqAvXU+QEFLtbZNikCIJ6Ek9KBASg3ISnxMyMUCLRCYdKdK1iG0d0oNUyNtPGYUUffgAKUAiakE3wx9BjsdjHx9Pps4J6jd1E5/1vsluav5eUgshVVqv0i5u6m7BQN28/d1bhAPUyzmEKIoa7TiMSDS93JfpGz5R8nfh8keSC1ymHTt9cVzhWKKVpSUNdiiUYy6fMz725P1RXw4XBsCQZLdvp9DKp+EiN0xK9WMGt3FZ3nn17EyeP3vtWL6MRSF2lkrpHDTCOhFJC7tSKVqIs9MfVYobSV44dKaZMYM7cHn+8vtTeb53mQvSL/JbnJ3j2NIW0AiARLQQLZeRQuR86NHD/dmFf/6s9tBjBnfRlzMs3z8b4CKDUjEoBnfQlna1wOBhpUpQsQwes3pYhWnoAJOwnv/9RDR09zu+6csficvseS4vB7ggpc3Fg5JSAJRcwDa3ttotBitQUFXitnjt0J6ZsI/vz0Cs3/2Ov/XlancH3ewAfdLR5OfWl+ddwfblMhcaoltBWCLQFJQ4cJrV5aI3uKGuhqK7a5byhHx4Lu9/fiHe1t1dXX78+wc582guaKn+cppw4nRQcSHIgiTSL1Fffjo4OHj58s3BFVy8mIsGkXNYX3SgYUJcpLGLRwHxIl+dGr6GJdaX9y/mmDv3Yz/+9d//OpP/CLXdhcQLcM6s/Y+98/tJY9viOBnXxIbRDplTMfhrpgLaoIRfU+XoEQO1/CgwHvkNRUKQMNwQYg6GhHtF8cdLK+fRZxITX0yfTmxMo0aT3qcm/lF3D9CjrdxzS0/1Oq1L0Zkx8eUza++91v7utRT+z3a3FLSqfqwJ773yHO9+4O8Snb+USvu7tc293c3dyufrMaKrZ6oIIyPy+jgW9WWN2aAsObiY6lrgFmMWWfsJWb3+X1abrg0up017U2++KzGBx04TdENOQeP+ck6NkyZBgYFjBI0Tq9O+KIzh+NP8sASnBeUFZaKxp8nE2AguOn8pVWuV6pPqSXXv+rxfXtwm2I6EKjgF7inL3EQCCE0qq+gG17q1fYfBu3+VKoe+uC7c0MXB6YeLt2sXa+9P39X9hYZkIr4sF8rJY2jaYyNJjdDVlVzN+ejLAAAIt0lEQVQGjOiGTnI8P5ERdBny1ALggvKCloOGehp099z94+PX5xfEpbJ1/Md1Lnin37c461gaNKQWIbXkjK07PdnglNu2lIoNTmva9hfh/Itc+sWpg6G3r0/P184PD8+PmlwImS4KDON3RYGGkCtTTMqBMc+AYd4k7ff6u5bzxkx0IQ7WjW1dfMaSTqO/GgBz2uOi41KqlKrPKju7K5ubJ799HleSMBbwOAsMZArAeMqB3LwhnApbpgsJp1Xe/jBW7zMy8sV5mKFXQ4jLB2RHpwd1LiZwFiHsc0diZvBu+Hhuezzg432FqNELYa2qVxPieD6WyNtjvJsp87wv4fbF0uB0i48LWodVjl+soAmmRbyPkXUl37Ky3vH5o0ml9dwM9lVc2smPYW9Pj94dHBysfTh9fSFwYSHIg1BN3+3uiZTlc1xu2rENNmOHR7vAecG0HDJ6wDUxbdAudK9ulLuTgy7WlyBEyGVPWI01rHo8eS2jjBFKlhake0qMNtGskiaVtJIilDT7NVF723nLi6Oj92dnZ6/PzxpNxepckMtocnxaWwAVv53h7Cm7MWqyT4SBZtV5x7ywfazT2pYhEgYrFwVPsccjNi6SvoGXjx49evzo5cuugcnn+tbtRD69wD95dqNchtaOjtY+nJ2vHR5JXl1y4UGd470+M8T5QpqzMYaQ0uI2Ole7APKODERjVkbrBYh4wIC4hItx8XGR/PSwaehi4Kb3y9rncn72/mDt9b/PDt9KrvoL4qLTBpVpLmdxmMdVUbWT9zoWlr1z08Y6F5021zHCX3Kxi45L31WT3DkuH968OTs8evPmfG2owSXhg6AP1AVtPuBAM37414CD124U0PDl5OanwtODXoga5yHl4BlfEKzC8414sNgjNi63am1zeXXw/hBFlYfvDxpNLIjeEKMOMSMKC8OOGqJz+ZBcoUtH/Todq45b/dYQbfDL+w3D45aoNc6E5D2G4d48Q4R01N2vtyCm/f2hi7WL1+9eo5/NfDKxCpQGcFwGChytCdUaSvglB8DIbpCCXAGjRCeMkjJBXaGhRqCTUAOmARGUwRBV/8qhfwy9Wnsl+bO3iISi6rVKCFKoq1yvb0lSJEWQ9TMxJCEhcQyv35A4RTQuKQklhuLLYusr+iPsvYiRy49i91zuudxz+Vou+i/T9f1/uNxqcHWnuHyq67sOhjYh+2aHd9vk0qd4fGkDPxIX/eTuyaX98xoYvJFA/labfe1x6VPof3n+0X553nrwpdmrAvDvpf7YVV3fyvU8PzWeiCHz5UdpWkliFItjlAknaIqlJSZl+zF0e1z0v22ufBS3VUr7k/oWQxl6cWSXYHDq++Ei6Prq35VSC/0YN+t2F8sWoX6CjJZDN4UCbZmwQUuiByR241wuxW1bDS4EUQ8pBQAESeHSdDIvoxv3EgKT4kJISX0X/vKXuj5uQxjHaK9qfjsEIVf/cmhhLJ+xFKxgK4SgXTB/h0vDX3CpZHTVRKCXBKMVIDeteowzICGX5aSwmZlJ0L2mTuilvyculZZctP39w1jHhMORnXjgXWSgMGtwTXGzRvtUljO0W6v4b3PBRyzEgxBIdRaggWQ6oNsy09vvh1CHRoHTEPD5+6Cf8QMubi5NPYwgGm+l60NctEKPjzQ7G1PZFre96wxsZ62upeCoIzsfXc/9dXW+bzO/lNAX+m5wMUE4YY8EPLHiPGTK3EYGbGX/fNmj5b1PKZl5Q8u7GHus6BVjFeVr+rGd/f2TanVzqxWXmCOZTM71LJlB50gJ/rI9axW6vPq0MLZUuHkuyI0rwuxXaXBhIWFMJyfKTMRNJp0dqYg/oA2lJ5yGlNbfizEJPqNK8BZbVIqL3l9Kpa3jZyd7z7aOW+nHGvOLCiFAXDKLc5DLIi4LAhf/bXAp7dRquyd7x7XKVpOLHTq0Acj5GOgPmTmDSzi8bwCbwyKnIVkcBSfnnQZMInp/WamUqrUXldr+XisusZjVap2zZHOIS8K77oqn0Dg2a4MI4pK9DX+pVGs71Z+r+/sfubhh2JcDl1aXdvvcMYFLJoZWIUa0ZhwNF/tBl+Q4m5wQvb809ZZb+0+2WvnL4mw2O2hdTIJu0K0yLk5NZaOBJRfEOPCvJ29hfim9qFVXdmrPdppcgnbEJQCuCBNxjqY5w0Ikn9YiLpwq7teEi6aRLjClikCJ3l8EXd+Tyk6tsrl3TdeHjxjqPQqHo9PquJWB/IJNZx22RFVqg6GbjubbfS2/Zt6v1KqlndL+bp2LEsob4DduQ4BjeHtgw2E1cyGvYwZcgwzPy10T7kDQXdAWQNz+gjd1fXulla3jkxa6vmYeZhTUlFB4TVO/kYGUAsAxUBM3H7+UXjzbKe3u1hr+QoJ3YXwsYAVDwB8Nh22BDoO5XxeYBibnN5tHp3Ph6EzSY8a7cZH7y+Tx/snJCfrsI9u9fu6VpAXDaQLDaVK4I2mcQHckiuNo4sbj/RJaje0gn9naaqzHMBKAUtTFn50N6SfAiBqk9LJwhcmaglBc5PGLREJdaf8yKXl4w+uY9rjgA89/R/YH+jx58vPveqELCmZiMZylMZLF0ftiYgl0QSkJDH2EcpYsS9MszYoyffnf6io81EvumK6vked/+ViQgz7+ctGhSJPKn+1X3mVd32WTLcnNFxO8Y1xu0+73ke+53HO55/LDcfmBZBci4tKnGLg0xf9aejUbjIm2x5h4uGD655emb/X//izvJtSiJ+qFLa52BcRFxkXoc3dliMBvy4ivifcb1kp3gSs0TS8S8gCgJiRd8v+MWwAx98LKP8TihZeHVxIJ8NIL8LCLkTwvVgGZsYStu0AC3ALBoYaQQwTkWWybQx21WCyKWAITtKA5hlW9mmlIxYu4mFYAMHjgIECHTiBAS0CcvHVKsHUXyECIJczKF3wRkDyLoa6uh4skS1wDS6gudJBfnsWxRmUITcQw8bCLC4gJySOAmBZ9gKoqMLsA4wUA+E2/kjryA7QAAAAASUVORK5CYII=|thumb|none|407x368px]]

      The generator creates starter files for all three parts of the component:

      • product-alerts.component.ts
      • product-alerts.component.html
      • product-alerts.component.css
  2. Open product-alerts.component.ts.

    import { Component, OnInit } from '@angular/core';
    
    @Component({
      selector: 'app-product-alerts',
      templateUrl: './product-alerts.component.html',
      styleUrls: ['./product-alerts.component.css']
    })
    export class ProductAlertsComponent implements OnInit {
      constructor() { }
    
      ngOnInit() {
      }
    
    }
    1. Notice the @Component() decorator. This indicates that the following class is a component. It provides metadata about the component, including its selector, templates, and styles.

      • The selector identifies the component. The selector is the name you give the Angular component when it is rendered as an HTML element on the page. By convention, Angular component selectors begin with the prefix app-, followed by the component name.

      • The template and style filenames reference the HTML and CSS files that StackBlitz generates.

    2. The component definition also exports the class, ProductAlertsComponent, which handles functionality for the component.

  3. Set up the new product alerts component to receive a product as input:

    1. Import Input from @angular/core.

      import { Component, OnInit } from '@angular/core';
      import { Input } from '@angular/core';
    2. In the ProductAlertsComponent class definition, define a property named product with an @Input() decorator. The @Input() decorator indicates that the property value passes in from the component's parent, the product list component.

      export class ProductAlertsComponent implements OnInit {
        @Input() product;
        constructor() { }
      
        ngOnInit() {
        }
      
      }
  4. Define the view for the new product alert component.

    1. Open the product-alerts.component.html template and replace the placeholder paragraph with a "Notify Me" button that appears if the product price is over $700.
    <p *ngIf="product.price > 700">
      <button>Notify Me</button>
    </p>
  5. Display the new product alert component as a child of the product list.

    1. Open product-list.component.html.

    2. To include the new component, use its selector, app-product-alert, as you would an HTML element.

    3. Pass the current product as input to the component using property binding.

      <button (click)="share()">
        Share
      </button>
      
      <app-product-alerts
        [product]="product">
      </app-product-alerts>

The new product alert component takes a product as input from the product list. With that input, it shows or hides the "Notify Me" button, based on the price of the product. The Phone XL price is over $700, so the "Notify Me" button appears on that product.

[[../File:data:image/png;base64,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|thumb|none|259x406px]]

See Component Interaction for more information about passing data from a parent to child component, intercepting and acting upon a value from the parent, and detecting and acting on changes to input property values.

Output

To make the "Notify Me" button work, you need to configure two things:

  • the product alert component to emit an event when the user clicks "Notify Me"
  • the product list component to act on that event
  1. Open product-alerts.component.ts.

  2. Import Output and EventEmitter from @angular/core:

    import { Component } from '@angular/core';
    import { Input } from '@angular/core';
    import { Output, EventEmitter } from '@angular/core';
  3. In the component class, define a property named notify with an @Output() decorator and an instance of EventEmitter(). This allows the product alert component to emit an event when the value of the notify property changes.

    export class ProductAlertsComponent {
      @Input() product;
      @Output() notify = new EventEmitter();
    }
  4. In the product alert template, product-alerts.component.html, update the "Notify Me" button with an event binding to call the notify.emit() method.

    <p *ngIf="product.price > 700">
      <button (click)="notify.emit()">Notify Me</button>
    </p>
  5. Next, define the behavior that should happen when the user clicks the button. Recall that it's the parent, product list component—not the product alerts component—that acts when the child raises the event. In product-list.component.ts, define an onNotify() method, similar to the share() method:

    export class ProductListComponent {
      products = products;
    
      share() {
        window.alert('The product has been shared!');
      }
    
      onNotify() {
        window.alert('You will be notified when the product goes on sale');
      }
    }
  6. Finally, update the product list component to receive output from the product alerts component.

    In product-list.component.html, bind the app-product-alerts component (which is what displays the "Notify Me" button) to the onNotify() method of the product list component.

    <button (click)="share()">
      Share
    </button>
    
    <app-product-alerts
      [product]="product" 
      (notify)="onNotify()">
    </app-product-alerts>
  7. Try the "Notify Me" button:

    [[../File:data:image/png;base64,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|thumb|none|329x104px]]

See Component Interaction for more information about listening for events from child components, reading child properties or invoking child methods, and using a service for bi-directional communication between components.

Next steps

Congratulations! You've completed your first Angular app!

You have a basic online store catalog with a product list, "Share" button, and "Notify Me" button. You've learned about the foundation of Angular: components and template syntax. You've also learned how the component class and template interact, and how components communicate with each other.

To continue exploring Angular, choose either of the following options:

© 2010–2020 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://v8.angular.io/start