<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.24 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-pslm-poweff-00" category="std" consensus="true" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <front>
    <title abbrev="POWEFF">Power and Energy Efficiency</title>
    <seriesInfo name="Internet-Draft" value="draft-pslm-poweff-00"/>
    <author initials="J." surname="Lindblad" fullname="Jan Lindblad">
      <organization>All For Eco</organization>
      <address>
        <email>jan.lindblad+ietf@for.eco</email>
      </address>
    </author>
    <author initials="S." surname="Mitrovic" fullname="Snezana Mitrovic">
      <organization>Cisco Systems</organization>
      <address>
        <email>snmitrov@cisco.com</email>
      </address>
    </author>
    <author initials="M." surname="Palmero" fullname="Marisol Palmero">
      <organization>Cisco Systems</organization>
      <address>
        <email>mpalmero@cisco.com</email>
      </address>
    </author>
    <author initials="G." surname="Salgueiro" fullname="Gonzalo Salgueiro">
      <organization>Cisco Systems</organization>
      <address>
        <email>gsalguei@cisco.com</email>
      </address>
    </author>
    <date year="2025" month="March" day="02"/>
    <area>operations</area>
    <workgroup>GREEN Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 50?>

<t>This document specifies a device YANG "dashboard" data model that allows devices to report which power measurement and control functions they offer.  This basic YANG model is applicable to any kind of device, regardless of whether the device itself has any support for YANG-based management interfaces or not.  The YANG model simply allows a device to describe what it can report, and which interfaces are available to request this data.  Devices that lack any on-board YANG-based management interfaces provide this information in form of a YANG instance data file.  This file may be readable from an on-board web server on the device, or hosted anywhere else.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/janlindblad/draft-pslm-poweff"/>.</t>
    </note>
  </front>
  <middle>
    <?line 54?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>As highlighted during the <eref target="https://datatracker.ietf.org/doc/html/draft-iab-ws-environmental-impacts-report-00">IAB workshop on environmental impacts</eref>, visibility is a very important first step. Paraphrasing Peter Drucker's mantra of "You cannot improve what you don't measure".  During the workshop the need for standardized metrics was established, to avoid proprietary, redundant and even contradictory metrics across vendors.</t>
      <t>POWEFF is considered a first step, part of the Sustainability Telemetry Specification referred as part of the Sustainability Insights <xref target="I-D.draft-almprs-sustainability-insights-02"/> IETF draft (a newer version may exist).  That is where the overall problem statement, solution principles and other components of the proposed solution can be found.  Specifically, this work is meant to fit in with the <xref target="I-D.draft-lindblad-tlm-philatelist-03"/> framework.</t>
      <t>This Power Consumption and Energy Efficiency Telemetry Specification (POWEFF) provides a way for a controller to understand what a device offers in terms of power related sensors and controls.  It also provides machine readable metadata for the sensors, such as which units of measurement are used, what is included in the reported data, the precision of the data, etc.  This is referred to as the device dashboard.</t>
      <t>This document also contains embryonic definitions of recommended datasets and attributes defining a common data model to report Power Consumption and Energy Efficiency on assets, with multuple implementation levels, that new devices may choose to implement.  Standardized calculations utilizing the specified datasets and attributes which will yield a power consumption value for any asset or network element, and standardized calculations utilizing the specified datasets and attributes which will yield the energy efficiency value for any asset or network element.</t>
      <section anchor="requirements-language">
        <name>Requirements language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?>
        </t>
      </section>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>Terminology and abbreviations used in this document:</t>
      <dl>
        <dt>Asset</dt>
        <dd>
          <t>Refers to hardware, software, applications, or services. An asset can be physical or virtual, as defined in the Asset Lifecycle Management and Operations <xref target="I-D.draft-palmero-ivy-ps-almo-01"/> IETF draft.</t>
        </dd>
        <dt>Scope 1</dt>
        <dd>
          <t>Emissions directly caused by actions of the organization, such as when fossil fuels are burned when the organization is operating a fossil vehicle. See <eref target="https://ghgprotocol.org/">Greenhouse Gas protocol</eref>.</t>
        </dd>
        <dt>Scope 2</dt>
        <dd>
          <t>Emissions indirectly caused by actions of the organization, but under control of the organization. For example, when electric energy is purchased, causing a provider utility to make emissions on behalf of the organization. See <eref target="https://ghgprotocol.org/">Greenhouse Gas protocol</eref>.</t>
        </dd>
        <dt>Scope 3</dt>
        <dd>
          <t>Emissions the organization indirectly causes others to make, but outside the organizations direct control. Examples include the energy customers consume when operating the organization's products, or when employees commute to work at the organization. See <eref target="https://ghgprotocol.org/">Greenhouse Gas protocol</eref>.</t>
        </dd>
        <dt>Scope 4</dt>
        <dd>
          <t>Refers to the term used in Greenhouse Gas (GHG) accounting and reporting to describe emissions that occur as a result of an organization's value chain activities, but are not directly controlled or owned by the organization. Scope 4 emissions are considered indirect emissions and are typically associated with activities that are upstream or downstream from a organization's operations. Such as when equipment provided by the organization enables a video conference, without which greater emissions from business travel would have happened.</t>
        </dd>
        <dt>CO2eq</dt>
        <dd>
          <t>Carbon dioxide equivalents, a measure of the disruptive force of greenhouse gas emissions.</t>
        </dd>
        <dt>Power</dt>
        <dd>
          <t>Refers to the (e.g. electrical or optical) energy per unit of time, supplied to operate an asset, such as a smartphone. It is usually measured in units of Watts.</t>
        </dd>
        <dt>Energy Efficiency</dt>
        <dd>
          <t>refers to the ability of an asset to perform its intended functions while minimizing energy consumption. It refers to the ratio between the useful output energy and input energy given by an asset. In a router or a switch, it is a measure of how efficiently the network element utilizes energy resources to transmit and process data or perform other network-related tasks. See <eref target="https://en.wikipedia.org/wiki/Energy_efficiency">Energy efficiency wikipedia</eref>.</t>
        </dd>
      </dl>
    </section>
    <section anchor="motivation">
      <name>Motivation</name>
      <t>The main objective of POWEFF is to enable Network Controllers to measure, report and control power and energy related metrics from networks with many and diverse devices, providing the necessary insights to improve the overall CO2eq emission for use cases of which the asset is part.  Basically emissions that address direct use-phase emissions of Scope 3, Category 11 "use of sold products".</t>
      <t>It includes emissions from the use of goods and services sold by the reporting company or vendor in the reporting year. A vendor’s Scope 3 emissions from use of sold products include the scope 1 and scope 2 emissions of end users. End users include both consumers and business customers that use final assets. It is important to note that Scope 3 category 11, reports around 75% of the total Scopes 1, 2 and 3 reported by a given asset. See <eref target="https://www.cisco.com/c/m/en_us/about/csr/esg-hub/environment/goals.html#scope-1-3-emissions">Cisco ESG Reporting Hub</eref>.</t>
      <t>Power and energy consumption Telemetry data available for different infrastructure vendors today is characterized by inconsistency and best effort:</t>
      <ul spacing="normal">
        <li>
          <t>Availability of primary data.  Data is often only available on a case by case basis</t>
        </li>
        <li>
          <t>Varying APIs.  Where Telemetry might be available, access methods, data contents and formats are specific to platforms or elements</t>
        </li>
        <li>
          <t>Limitations.  Some useful or essential data items are never collected by the relevant hardware or software</t>
        </li>
        <li>
          <t>Precision.  Data often contains significant margins of error, both from random noise and systematic errors</t>
        </li>
        <li>
          <t>Varying definitions.  Calculated values use differing inputs and algorithms, limiting the value of any possible comparison and aggregation</t>
        </li>
        <li>
          <t>Opacity.  Lack of transparency of how and what is being measured makes it very hard to ascertain fair comparisions.</t>
        </li>
      </ul>
      <section anchor="proposed-solution-outline">
        <name>Proposed Solution Outline</name>
        <t>Formulate a Power and Energy Efficiency Telemetry Specification to promote consistency:</t>
        <dl>
          <dt>Data</dt>
          <dd>
            <t>Definition of datasets and attributes that will define a common data model to report power and energy consumption on hardware and software assets</t>
          </dd>
          <dt>Calculation</dt>
          <dd>
            <t>Define a standardized calculation utilizing the specified datasets and attributes which will yield an energy consumption value for any asset.</t>
          </dd>
        </dl>
        <t>Implementing any Sustainability Solution at scale for customers with a broad range of equipment requires at minimum consistently available Power Consumption/Energy Efficiency Telemetry. Telemetry standardization will benefit numerous stakeholders, including Corporate Social Responsibility (CSR), who have a need for Power Consumption Telemetry data for a variety of purposes.</t>
      </section>
      <section anchor="use-cases">
        <name>Use Cases</name>
        <ul spacing="normal">
          <li>
            <t>Monitoring power and energy efficiency based on common metrics.</t>
          </li>
          <li>
            <t>Enhance reporting and provide a comprehensive overview for potentially improving power usage during the operational phase.</t>
          </li>
          <li>
            <t>Consumption per device, e.g. wireless environment.</t>
          </li>
          <li>
            <t>Capabilities to optimize energy consumption when assets are not in use, e.g. idle and allocated power.</t>
          </li>
          <li>
            <t>Hardware Lifecycle. Circular economy enables to restore product value at the end of life, there are several options, reuse, remanufacturing, recycling, repurpose, etc.</t>
          </li>
        </ul>
        <t>More elaborate use cases, e.g. define carbon footprint for network's usage, might also be derived from POWEFF model, even discussion and common understanding will be required.</t>
      </section>
    </section>
    <section anchor="information-model">
      <name>Information Model</name>
      <t>Implementors of this specification can choose the implementation level that is appropriate for their device at the current time.  As the implementation matures, higher implementation levels may be chosen over time.  Each implementation level is a superset of the previous level.</t>
      <section anchor="level-0-proprietary-dashboard-only">
        <name>Level 0, Proprietary Dashboard Only</name>
        <t>At level 0, the device implements only proprietary dashboards, without implmementing any dashboards with predefined content. This allows controllers to find the power sensors already present in the implementation, and read the associated metadata, but may not be well prepared to really understand the meaning of the data being read.  The dashboard may be provided by an on-board YANG-based management protocol, or delivered as a YANG instance data file from an on-board webserver, or delievered as a file by some other mechanism (e.g. web server elsewhere).</t>
        <t>For level 0, the Network Element implements the Philatelist YANG module ietf-tlm-philatelist-provider. This gives the controller one or more proprietary dashboard with whatever contents the implementor sees fit.</t>
      </section>
      <section anchor="level-1-current-total-power-draw">
        <name>Level 1, Current Total Power Draw</name>
        <t>At level 1, the device implements a very small, but well defined dashboard, and lists it using the Philatelist
ietf-tlm-philatelist-provider module. The level 1 dashboard consists of a single dashboard item. This dashboard item provides a way for the Network Controller to read the current total power draw of the Network Element.</t>
        <figure>
          <name>YANG tree diagram of the Level 1 Dashboard.</name>
          <sourcecode type="yang-tree"><![CDATA[
module: ietf-poweff-level-1
  +--rw poweff
     +--ro stats
        +--ro device-current-total-power-draw?   uint32
]]></sourcecode>
        </figure>
        <t>The following requirements MUST be fulfilled by the Network Element implementing the level 1 and higher dashboards.
+ The reported telemetry data MUST be correct with regards to what is included and not included for all reported telemetry data values
+ The metadata MUST be correct with regards to measurement units for all reported telemetry data values
+ The metadata MUST be correct with regards to apparent/real RMS power, for all reported power and energy data values
+ The power consumption values reported MUST NOT be underestimated over time in actual field use</t>
        <t>If Network Elements declaring conformance to the level 1, or higher, dashboard of this specification, do not actually fulfill the conditions required in this document, that may be construed as violating the <eref target="https://oeil.secure.europarl.europa.eu/oeil/popups/ficheprocedure.do?lang=en&amp;reference=2023/0085(COD)">EU Green Claims Directive (GCD), EU 2023/0085(COD)</eref></t>
      </section>
      <section anchor="level-2-add-energy-and-susbsystem-breakdown">
        <name>Level 2, Add Energy and Susbsystem Breakdown</name>
        <t>At level 2, on top of all level 1 reporting, the Network Element also reports the gross energy usage over time (the integral over time of the power draw), and the power draw can be further inspected for each major subsystem within the device.</t>
        <figure>
          <name>YANG tree diagram of the Level 2 Dashboard.</name>
          <sourcecode type="yang-tree"><![CDATA[
module: ietf-poweff-level-2

  augment /ietf-poweff-level-1:poweff/ietf-poweff-level-1:stats:
    +--ro device-total-energy-spent?         uint32
    +--ro device-total-energy-spent-since?   yang:date-and-time
    +--ro subsystem* [name]
       +--ro name                  subsys-name-t
       +--ro current-power-draw?   uint32
       +--ro children*             -> ../../subsystem/name
]]></sourcecode>
        </figure>
      </section>
      <section anchor="level-3-add-fundamental-power-control">
        <name>Level 3, Add Fundamental Power Control</name>
        <t>From this level onward, a YANG-based management protocol is required, since standards based configuration control of the device is required.</t>
        <t>At level 3, all the reporting functions of level 2 are required, and also basic control over device global power-save modes. The controller may choose one of several power saving modes for the Network Element. Network Element implementors or Standards Defining Organizations (SDOs) may also augment the mode selection with additional power saving modes.</t>
        <t>The basic principle for the power saving controls is for the Network Controller to specify how much degradation of the maximum possible delivered performace it could tolerate, and for the Network Element to decide on what power saving measures that can be taken, while still fulfilling expectations. The Network Element SHOULD also provide an estimate of how much power can be saved under the given conditions.</t>
        <t>This document specifies four power save modes and two power-save conditions that apply generally to the power save modes.</t>
        <dl>
          <dt>fully-powered</dt>
          <dd>
            <t>The subsystem is fully powered, i.e. does not take any power-saving measures that would risk lowering the performance below normal levels.</t>
          </dd>
          <dt>powered-off</dt>
          <dd>
            <t>The subsystem is completely powered off, i.e. it is drawing no or little power while also delivering zero performance.</t>
          </dd>
          <dt>napping</dt>
          <dd>
            <t>The subsystem is napping, i.e. is taking frequent but brief pauses in the service it provides. The Network Controller may specify a max-additional-latency. This determines the maximum tolerated length of the pauses with reduced performance. This means the maximum additional delay that this subsystem would incur on e.g. detecting incoming traffic or performing its function.</t>
          </dd>
          <dt>throttling</dt>
          <dd>
            <t>The subsystem is throttling, i.e. is running with reduced capacity in the service it provides. The Network Controller may specify a max-capacity-reduction. This determines the maximum tolerated reduction of performance.</t>
          </dd>
        </dl>
        <t>For example, if a Network Controller applied throttling with a max-capacity-reduction value at 50% onto a transport subsystem or service that consists of 3 underlaying links of equal capacity, the Network Element might decide to shut down one of the three links.</t>
        <t>For all the power-save modes (except the fully-powered mode, in which these have no effect) the two following general conditions also apply:</t>
        <dl>
          <dt>max-time-to-cancel-power-save</dt>
          <dd>
            <t>The maximum time the Controller allows the subsystem to recover full performance. The subsystem should not
engage in power-saving measures that take longer than this time to revert to full performance.</t>
          </dd>
          <dt>estimated-power-reduction</dt>
          <dd>
            <t>The subsystem's own estimate on how much of its own power draw that is reduced by the power-saving measures in effect.</t>
          </dd>
        </dl>
        <t>For example, if a Network Controller applied throttling with a max-capacity-reduction value at 50% onto a transport subsystem or service that consists of 3 underlaying links of equal capacity, the Network Element might decide to shut down one of the three links. The Network Element might then report an estimated-power-reduction of 33%.</t>
        <figure>
          <name>YANG tree diagram of the Level 3 Dashboard.</name>
          <sourcecode type="yang-tree"><![CDATA[
module: ietf-poweff-level-3

  augment /ietf-poweff-level-1:poweff:
    +--rw power-save
       +--rw subsystem* [name]
          +--rw name                   -> /poweff/stats/subsystem/name
          +--rw (selected-power-save-mode)?
          |  +--:(fully-powered)
          |  |  +--rw fully-powered?               empty
          |  +--:(powered-off)
          |  |  +--rw powered-off?                 empty
          |  +--:(napping)
          |  |  +--rw napping
          |  |     +--rw max-additional-latency?   microseconds
          |  +--:(throttling)
          |     +--rw throttling
          |        +--rw max-capacity-reduction?   percent
          +--rw max-time-to-cancel-power-save?     microseconds
          +--ro estimated-power-reduction?         uint32
]]></sourcecode>
        </figure>
      </section>
      <section anchor="level-4-add-service-attribution">
        <name>Level 4, Add Service Attribution</name>
        <t>At level 4, the Network Element also provides a list of services/tenants/clients/domains/functions that it delivers value towards, and attributes the Network Element's power draw to each of the services.  The list of services may include one "overhead/idle/other/unknown" entry that absorbs any overhead not attributable to a particular service. The power draw MAY be further subdivided for each service by using a dot notation.</t>
        <t>One service instance called '-idle-' may be present in the list and absorb any overhead/idle/other/unknown kind of power draw that the system would not allocate to any service. It is up to the implementor to decide what a 'service' means for this type of system. It may be any kind of service that it delivers user value towards.</t>
        <t>For example, if a system serves three customers, X, Y and Z, their power draw could be declared as follows:</t>
        <table>
          <thead>
            <tr>
              <th align="left">name</th>
              <th align="left">current-power-draw</th>
              <th align="left">children</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">X</td>
              <td align="left">45</td>
              <td align="left">vpn</td>
            </tr>
            <tr>
              <td align="left">X.vpn</td>
              <td align="left">39</td>
              <td align="left">eth1/16 eth2/33 eth3/11</td>
            </tr>
            <tr>
              <td align="left">X.vpn.eth1/16</td>
              <td align="left">14</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">X.vpn.eth2/33</td>
              <td align="left">12</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">X.vpn.eth3/11</td>
              <td align="left">9</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">Y</td>
              <td align="left">26</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">Z</td>
              <td align="left">19</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">-idle-</td>
              <td align="left">48</td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
        <t>The sum of the current-power-draw top level entries  (in this example: X, Y, Z and -idle-, with values 45 + 26 + 19 + 48 = 138) must match the value provided in ietf-poweff-level-1:device-current-total-power-draw</t>
        <t>The sub-service values (e.g. X.vpn, 39W) need to be lower than or equal to (but do not necessarily need to match) their parent level (e.g. X, 45W).</t>
        <t>Note: the name of the children have been abbreviated in the diagram above. In the actual payload, the full names would always be used, e.g. 'eth1/16' above would actually be communicated as 'X.vpn.eth1/16'.</t>
        <figure>
          <name>YANG tree diagram of the Level 4 Dashboard.</name>
          <sourcecode type="yang-tree"><![CDATA[
module: ietf-poweff-level-4

  augment /ietf-poweff-level-1:poweff/ietf-poweff-level-1:stats:
    +--ro service* [name]
       +--ro name                  string
       +--ro current-power-draw?   uint32
       +--ro children*             -> ../../service/name
]]></sourcecode>
        </figure>
      </section>
      <section anchor="level-5-add-service-level-power-control">
        <name>Level 5, Add Service Level Power Control</name>
        <t>At level 5, the device additionally implements power-save modes per delivered service. The structure is exactly the same as the level 3 structure, except that it is for services rather than subsystems. A service would be something that is relevant and meaningful from a customer's or user's perspective. It is up to the Network Element implementor to decide exactly what constitutes a service.</t>
        <figure>
          <name>YANG tree diagram of the Level 5 Dashboard.</name>
          <sourcecode type="yang-tree"><![CDATA[
module: ietf-poweff-level-5

  augment /ietf-poweff-level-1:poweff/ietf-poweff-level-3:power-save:
    +--rw service* [name]
       +--rw name                        -> /poweff/stats/service/name
       +--rw (selected-power-save-mode)?
       |  +--:(fully-powered)
       |  |  +--rw fully-powered?               empty
       |  +--:(powered-off)
       |  |  +--rw powered-off?                 empty
       |  +--:(napping)
       |  |  +--rw napping
       |  |     +--rw max-additional-latency?   microseconds
       |  +--:(throttling)
       |     +--rw throttling
       |        +--rw max-capacity-reduction?   percent
       +--rw max-time-to-cancel-power-save?     microseconds
       +--ro estimated-power-reduction?         uint32
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="yang-modules">
      <name>YANG Modules</name>
      <section anchor="module-ietf-poweff-typesyang">
        <name>Module ietf-poweff-types.yang</name>
        <sourcecode type="yang" markers="true"><![CDATA[
module ietf-poweff-types {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-poweff-types";
  prefix ietf-poweff-types;

  import ietf-tlm-philatelist-types {
    prefix ietf-tlm-philatelist-types;
  }

  organization
    "IETF GREEN (Getting Ready for Energy Efficient Networking)
     Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/green/>
     WG List:  <mailto:green@ietf.org>
     Editor:  Jan Lindblad
              <mailto:jan.lindblad+ietf@for.eco>
     Editor:  Snezana Mitrovic
              <mailto:snmitrov@cisco.com>
     Editor:  Marisol Palmero
              <mailto:mpalmero@cisco.com>";
  description
    "This YANG module defines basic quantities, measurement units
     and sensor types for the POWEFF framework.

     Copyright (c) 2021 IETF Trust and the persons identified as
     authors of the code. All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Simplified BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions  
  
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX
     (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
     for full legal notices.";
  
  revision 2024-04-16 {
    description
      "Restructured to use the Telemetry Philatelist framework";
    reference
      "RFC XXXX: ...";
  }

  typedef something { 
    // FIXME: Used when we haven't decided the type yet
    type string;
    description "FIXME";
  }
  typedef xpath {
    type string; 
    // FIXME: Proper type needed
    description "FIXME";
  }
  typedef sample-frequency {
    type string; 
    // FIXME: Proper type needed
    description "FIXME";
  }

  // ========== SENSOR-QUANTITY ==============================
  identity sq-voltage {
    base ietf-tlm-philatelist-types:sensor-quantity;
    description 
      "Sensor reports electric tension, voltage.
      ";
  }
  identity sq-current {
    base ietf-tlm-philatelist-types:sensor-quantity;
    description 
      "Sensor reports electric current.
      ";
  }
  identity sq-power {
    base ietf-tlm-philatelist-types:sensor-quantity;
    description 
      "Sensor reports power draw (energy per unit of time).
      ";
  }
  identity sq-power-apparent {
    base sq-power;
    description 
      "Sensor reports apparent power, i.e. average electrical
      current times voltage (in VA).
      ";
  }
  identity sq-power-true {
    base sq-power;
    description 
      "Sensor reports true power, i.e. integral over current
      and voltage at each instant in time.
      ";
  }
  identity sq-energy {
    base ietf-tlm-philatelist-types:sensor-quantity;
    description 
      "Sensor reports actual energy drawn by asset.
      ";
  }
  identity sq-co2-emission {
    base ietf-tlm-philatelist-types:sensor-quantity;
    description 
      "Sensor reports CO2 (carbon dioxide) emission by asset.
      ";
  }
  identity sq-co2eq-emission {
    base ietf-tlm-philatelist-types:sensor-quantity;
    description 
      "Sensor reports CO2 (carbon dioxide) equivalent
      emission by asset.
      ";
  }
  identity sq-temperature {
    base ietf-tlm-philatelist-types:sensor-quantity;
    description 
      "Sensor reports temperature of asset.
      ";
  }
  identity sq-time {
    base ietf-tlm-philatelist-types:sensor-quantity;
    description 
    "Sensor reports time duration.
    ";
  }

  // ========== SENSOR-UNIT ==============================
  identity su-volt {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-voltage;
    description 
    "Sensor unit volt, V.
    ";
  }
  identity su-ampere {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-current;
    description 
      "Sensor unit ampere, A.
      ";
  }
  identity su-watt {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-power;
    description 
      "Sensor unit watt, W.
      ";
  }
  identity su-voltampere {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-power;
    description 
      "Sensor unit Volt*Ampere, VA.
      ";
  }
  identity su-kw {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-power;
    description 
      "Sensor unit kilowatt, kW.
      ";
  }
  identity su-joule {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-energy;
    description 
      "Sensor unit joule, J.
      ";
  }
  identity su-wh {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-energy;
    description 
      "Sensor unit watthour, Wh.
      ";
  }
  identity su-kwh {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-energy;
    description 
      "Sensor unit kliowatthour, kWh.
      ";
  }
  identity su-kelvin {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-temperature;
    description 
      "Sensor unit kelvin, K.
      ";
  }
  identity su-celsius {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-temperature;
    description 
      "Sensor unit celsius, C.
      ";
  }
  identity su-farenheit {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-temperature;
    description 
      "Sensor unit farenheit, F.
      ";
  }
  identity su-gram {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-co2-emission;
    description 
      "Sensor unit gram, g.
      ";
  }
  identity su-kg {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-co2-emission;
    description 
      "Sensor unit kliogram, kg.
      ";
  }
  identity su-ton {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-co2-emission;
    description 
      "Sensor unit ton, t.
      ";
  }
  identity su-second {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-time;
    description 
      "Sensor unit second, s.
      ";
  }
  identity su-millisecond {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-time;
    description 
      "Sensor unit millisecond, ms.
      ";
  }
  identity su-microsecond {
    base ietf-tlm-philatelist-types:sensor-unit;
    base sq-time;
    description 
      "Sensor unit microsecond, us.
      ";
  }

  // ========== SENSOR-TYPE ==============================
  extension sensor-type {
    argument identity-name;
    description 
      "YANG Extension used to declare which sensor type
      (as in input/output, quantity and unit) it has in a
      standardized machine readable way.
      See ietf-tlm-philatelist-types:sensor-type.
      ";
  }
  identity st-v-in {
    base ietf-tlm-philatelist-types:sensor-type;
    base ietf-tlm-philatelist-types:sc-input;
    base sq-voltage;
    base su-volt;
    description 
      "Sensor reporting Voltage In to asset.
      ";
  }
  identity st-v-out {
    base ietf-tlm-philatelist-types:sensor-type;
    base ietf-tlm-philatelist-types:sc-output;
    base sq-voltage;
    base su-volt;
    description 
      "Sensor reporting Voltage Out of asset.
      ";
  }
  identity st-i-in {
    base ietf-tlm-philatelist-types:sensor-type;
    base ietf-tlm-philatelist-types:sc-input;
    base sq-current;
    base su-ampere;
    description 
      "Sensor reporting Current In to asset.
      ";
  }
  identity st-i-out {
    base ietf-tlm-philatelist-types:sensor-type;
    base ietf-tlm-philatelist-types:sc-output;
    base sq-current;
    base su-ampere;
    description 
      "Sensor reporting Current Out of asset.
      ";
  }
  identity st-p-in-apparent-watt {
    base ietf-tlm-philatelist-types:sensor-type;
    base ietf-tlm-philatelist-types:sc-input;
    base sq-power-apparent;
    base su-voltampere;
    description 
      "Sensor reporting Power In to asset as apparent (I*U)
      power.
      ";
  }
  identity st-p-out-apparent-watt {
    base ietf-tlm-philatelist-types:sensor-type;
    base ietf-tlm-philatelist-types:sc-output;
    base sq-power-apparent;
    base su-voltampere;
    description 
      "Sensor reporting Power Out of asset as apparent (I*U)
      power.
      ";
  }
  identity st-p-in-true-watt {
    base ietf-tlm-philatelist-types:sensor-type;
    base ietf-tlm-philatelist-types:sc-input;
    base sq-power-true;
    base su-watt;
    description 
      "Sensor reporting Power In to asset as true power.
      ";
  }
  identity st-p-out-true-watt {
    base ietf-tlm-philatelist-types:sensor-type;
    base ietf-tlm-philatelist-types:sc-output;
    base sq-power-true;
    base su-watt;
    description 
      "Sensor reporting Power Out of asset as true power.
      ";
  }
  identity st-p-allocated-watt {
    base ietf-tlm-philatelist-types:sensor-type;
    base ietf-tlm-philatelist-types:sc-allocated;
    base sq-power;
    base su-watt;
    description 
      "Sensor reporting Allocated Power for asset.
      ";
  }
  identity st-w-j {
    base ietf-tlm-philatelist-types:sensor-type;
    base sq-energy;
    base su-joule;
    description 
      "Sensor reporting energy draw of asset in J.
      ";
  }
  identity st-w-wh {
    base ietf-tlm-philatelist-types:sensor-type;
    base sq-energy;
    base su-wh;
    description 
      "Sensor reporting energy draw of asset in Wh.
      ";
  }
  identity st-w-kwh {
    base ietf-tlm-philatelist-types:sensor-type;
    base sq-energy;
    base su-kwh;
    description 
      "Sensor reporting energy draw of asset in kWh.
      ";
  }
  identity st-t-k {
    base ietf-tlm-philatelist-types:sensor-type;
    base sq-temperature;
    base su-kelvin;
    description 
      "Sensor reporting Temperature of asset in K.
      ";
  }
  identity st-t-c {
    base ietf-tlm-philatelist-types:sensor-type;
    base sq-temperature;
    base su-celsius;
    description 
      "Sensor reporting Temperature of asset in °C.
      ";
  }
  identity st-t-f {
    base ietf-tlm-philatelist-types:sensor-type;
    base sq-temperature;
    base su-farenheit;
    description 
      "Sensor reporting Temperature of asset in °F.
      ";
  }

  // ========== TSDB-PATH ======================================
  extension tsdb-path {
    argument tsdb-path;
    description 
      "YANG Extension for declaring the TSDB path that a given
      YANG leaf would have.
      ";
  }
  // ========== COLLECTION-METHOD ==============================
  // None defined here

  // ========== POWER-SAVE UNITS ===============================
  typedef microseconds {
    type uint32;
    units us;
    description 
      "Time unit, millionths of a second. 10^-6 seconds.
      ";
  }
  typedef percent {
    type uint32 {
      range 0..100;
    }
    units %;
    description 
      "Percent fraction, 1/100 of something.
      ";
  }
}
]]></sourcecode>
      </section>
      <section anchor="module-ietf-poweff-level-1yang">
        <name>Module ietf-poweff-level-1.yang</name>
        <sourcecode type="yang" markers="true"><![CDATA[
module ietf-poweff-level-1 {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-poweff-level-1";
  prefix ietf-poweff-level-1;

  import ietf-poweff-types {
    prefix ietf-poweff-types;
  }

  organization
    "IETF GREEN (Getting Ready for Energy Efficient Networking)
     Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/green/>
     WG List:  <mailto:green@ietf.org>
     Editor:  Jan Lindblad
              <mailto:jan.lindblad+ietf@for.eco>
     Editor:  Snezana Mitrovic
              <mailto:snmitrov@cisco.com>
     Editor:  Marisol Palmero
              <mailto:mpalmero@cisco.com>";
  description
    "This YANG module defines the POWEFF Level 1.

    Copyright (c) 2024 IETF Trust and the persons identified as
    authors of the code.  All rights reserved.

    Redistribution and use in source and binary forms, with or
    without modification, is permitted pursuant to, and subject to
    the license terms contained in, the Revised BSD License set
    forth in Section 4.c of the IETF Trust's Legal Provisions
    Relating to IETF Documents
    (https://trustee.ietf.org/license-info).

    This version of this YANG module is part of RFC XXXX
    (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
    for full legal notices.
      
    The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL',
    'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED',
    'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document
    are to be interpreted as described in BCP 14 (RFC 2119)
    (RFC 8174) when, and only when, they appear in all
    capitals, as shown here.
    ";
  
  revision 2024-04-16 {
    description
      "Initial revision of POWEFF Level 1";
    reference
      "RFC XXXX: ...";
  }

  container poweff {
    description 
      "Top level container for POWEFF.
      ";
    container stats {
      config false;
      description 
        "Statistics (read-only) branch of POWEFF.
        ";
      leaf device-current-total-power-draw {
        type uint32;
        units W;
        ietf-poweff-types:sensor-type 
          ietf-poweff-types:st-p-in-true-watt;
        ietf-poweff-types:tsdb-path 
          poweff.stats.device_current_total_power_draw;
        description 
          "The current power draw of the device that the
          management server pertains to, including power supplies. 
          Does not include power draw of external cooling systems
          that may be required to operate this system.

          The power draw MUST be reported in Watts, and MUST be the
          true RMS power. The reported value MUST NOT be lower than
          the actual power draw. Any violations of these conditions
          may be legally construed as greenwashing, as defined by
          EU Green Claims Directive (GCD), EU 2023/0085(COD).
          ";
      }
    }
  }
}
]]></sourcecode>
      </section>
      <section anchor="module-ietf-poweff-level-2yang">
        <name>Module ietf-poweff-level-2.yang</name>
        <sourcecode type="yang" markers="true"><![CDATA[
module ietf-poweff-level-2 {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-poweff-level-2";
  prefix ietf-poweff-level-2;

  import ietf-yang-types {
    prefix yang;
  }
  import ietf-poweff-types {
    prefix ietf-poweff-types;
  }
  import ietf-poweff-level-1 {
    prefix ietf-poweff-level-1;
  }

  organization
    "IETF GREEN (Getting Ready for Energy Efficient Networking)
     Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/green/>
     WG List:  <mailto:green@ietf.org>
     Editor:  Jan Lindblad
              <mailto:jan.lindblad+ietf@for.eco>
     Editor:  Snezana Mitrovic
              <mailto:snmitrov@cisco.com>
     Editor:  Marisol Palmero
              <mailto:mpalmero@cisco.com>";
  description
    "This YANG module defines the POWEFF Level 2.

    Copyright (c) 2024 IETF Trust and the persons identified as
    authors of the code.  All rights reserved.

    Redistribution and use in source and binary forms, with or
    without modification, is permitted pursuant to, and subject to
    the license terms contained in, the Revised BSD License set
    forth in Section 4.c of the IETF Trust's Legal Provisions
    Relating to IETF Documents
    (https://trustee.ietf.org/license-info).

    This version of this YANG module is part of RFC XXXX
    (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
    for full legal notices.
      
    The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL',
    'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED',
    'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document
    are to be interpreted as described in BCP 14 (RFC 2119)
    (RFC 8174) when, and only when, they appear in all
    capitals, as shown here.
    ";
  
  revision 2024-04-16 {
    description
      "Initial revision of POWEFF Level 2";
    reference
      "RFC XXXX: ...";
  }

  typedef subsys-name-t {
    type union {
      type enumeration {
        enum sys {
          description "The name of the top level object is 'sys'.";
        }
      }
      type string {
        pattern '[a-zA-Z]+[a-zA-Z0-9_/\.:-]*[a-zA-Z0-9_/]+';
      }
    }
    description 
      "Type for subsystem names. Must start with an ASCII
      alpabetic characters. The characters following may also be
      numeric characters, dash, underscore, forward slash. Parts of
      the name may be interpunctuated with a dot or colon. 
      Interpunctuation must not be the last character in the name.";
  }

  augment /ietf-poweff-level-1:poweff/ietf-poweff-level-1:stats {
    description 
      "Level 2 extends the Level 1 defintions with additional content.
      ";
    leaf device-total-energy-spent {
      type uint32;
      units J;
      ietf-poweff-types:sensor-type 
        ietf-poweff-types:st-w-j;
      ietf-poweff-types:tsdb-path 
        poweff.stats.device_total_energy_spent;
      description 
        "The total energy spent by the device since the point
        in time specified by ../device-total-energy-spent-since.
        This is the integral over time of the power draw as specified
        by ../ietf-poweff-level-1:device-current-total-power-draw.

        The energy used MUST be reported in Joule. The reported value 
        MUST NOT be lower than the actual energy used. 
        Any violations of these conditions
        may be legally construed as greenwashing, as defined by
        EU Green Claims Directive (GCD), EU 2023/0085(COD).";
    }
    leaf device-total-energy-spent-since {
      type yang:date-and-time;
      description 
        "The point in time at which the energy couting started.
        Typically at the most recent system initalization.";
    }
    list subsystem {
      key name;
      description 
        "List of subsystems, in a tree structure, as defined by the
        system implementor. There MUST be an entry called 'sys', 
        which MUST have a current-power-draw value equal to the 
        ../ietf-poweff-level-1:device-current-total-power-draw value.
        ";
      leaf name {
        type subsys-name-t;
        description 
          "The name of the subsystem. The name is built from the name
          of its ancestors joined with a dot (.). The root object of
          tree is called 'sys'.

          An example of a valid tree structure:
           - sys
           - sys.main-board
           - sys.main-board.cpu0
           - sys.main-board.cpu1
           - sys.linecard1
           - sys.linecard1.eth0/1
           - sys.psu0
           - sys.psu0.fan0
           - sys.psu0.fan1
          ";
      }
      leaf current-power-draw {
        type uint32;
        units W;
        ietf-poweff-types:sensor-type 
          ietf-poweff-types:st-p-in-true-watt;
        ietf-poweff-types:tsdb-path 
          poweff.stats.subsystem.current_power_draw;
        description 
          "Current power draw of the subsystem in Watts.
          This value MUST be larger than or equal to the sum of the
          power draw of all children listed in ../children, if any.";
      }
      leaf-list children {
        type leafref {
          path ../../subsystem/name;
        }
        description 
          "Children of this subsystem, each contributing to the power
          draw of this subsystem.";
      }
    }
  }
}
]]></sourcecode>
      </section>
      <section anchor="module-ietf-poweff-level-3yang">
        <name>Module ietf-poweff-level-3.yang</name>
        <sourcecode type="yang" markers="true"><![CDATA[
module ietf-poweff-level-3 {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-poweff-level-3";
  prefix ietf-poweff-level-3;

  import ietf-poweff-types {
    prefix ietf-poweff-types;
  }
  import ietf-poweff-level-1 {
    prefix ietf-poweff-level-1;
  }
  import ietf-poweff-level-2 {
    prefix ietf-poweff-level-2;
  }

  organization
    "IETF GREEN (Getting Ready for Energy Efficient Networking)
     Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/green/>
     WG List:  <mailto:green@ietf.org>
     Editor:  Jan Lindblad
              <mailto:jan.lindblad+ietf@for.eco>
     Editor:  Snezana Mitrovic
              <mailto:snmitrov@cisco.com>
     Editor:  Marisol Palmero
              <mailto:mpalmero@cisco.com>";
  description
    "This YANG module defines the POWEFF Level 3.

    Copyright (c) 2024 IETF Trust and the persons identified as
    authors of the code.  All rights reserved.

    Redistribution and use in source and binary forms, with or
    without modification, is permitted pursuant to, and subject to
    the license terms contained in, the Revised BSD License set
    forth in Section 4.c of the IETF Trust's Legal Provisions
    Relating to IETF Documents
    (https://trustee.ietf.org/license-info).

    This version of this YANG module is part of RFC XXXX
    (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
    for full legal notices.
      
    The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL',
    'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED',
    'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document
    are to be interpreted as described in BCP 14 (RFC 2119)
    (RFC 8174) when, and only when, they appear in all
    capitals, as shown here.
    ";
  
  revision 2024-04-16 {
    description
      "Initial revision of POWEFF Level 3";
    reference
      "RFC XXXX: ...";
  }

  augment /ietf-poweff-level-1:poweff {
    description 
      "Level 3 extends the Level 1 & 2 defintions with additional
      content.
      ";
    container power-save {
      description 
        "Container for power-save control functions that the
        Network Controller may use to ask this Network Element
        to employ zero or more power-saving techniques.
        ";

      list subsystem {
        key name;
        description 
          "List of subsystems that offer power-saving functions.
          ";
        leaf name {
          type leafref {
            path "/ietf-poweff-level-1:poweff/" +
            "ietf-poweff-level-1:stats/"+
            "ietf-poweff-level-2:subsystem/"+
            "ietf-poweff-level-2:name";
            require-instance false;
          }
          description 
            "Name of the subsystem that offers power-saving
            functionality. This name normally matches one of the
            names in the poweff/stats subsystem list, but it is
            possible that a subsystem is not listed there e.g.
            because it has not started yet, during the system
            initialization.
            ";
        }
        choice selected-power-save-mode {
          description 
            "Choice of power saving modes that the Controller
            may select. Additional power-saving modes may be
            augmented into this choice by implementors, but may
            not be known/understood by the controller.
            ";
          leaf fully-powered {
            type empty;
            description 
              "The subsystem is fully powered, i.e. does not take
              any power-saving measures that would risk lowering the
              performance below normal levels.
              ";
          }
          leaf powered-off {
            type empty;
            description 
              "The subsystem is completely powered off, i.e. it is
              drawing no or little power while also delivering zero
              performance.
              ";
          }
          container napping {
            description 
              "The subsystem is napping, i.e. is taking frequent but
              brief pauses in the service it provides.
              ";
            leaf max-additional-latency {
              type ietf-poweff-types:microseconds;
              description 
                "Determines the maximum tolerated length of the pauses
                with reduced performance. This means the maximum 
                additional delay that this subsystem would incur on 
                e.g. detecting incoming traffic or performing its 
                function.
                ";
            }
          }
          container throttling {
            description 
              "The subsystem is throttling, i.e. is running with
              reduced capacity in the service it provides.
              ";
            leaf max-capacity-reduction {
              type ietf-poweff-types:percent;
              description 
                "Determines the maximum tolerated reduction of 
                performance. If this setting is applied to a bundle
                interface, for example, that consists of 3 underlaying
                links of equal capacity, and the controller sets the
                max-capacity-reduction value to 50%, the bundle
                interface could shut down one of the links.
                ";
            }
          }
        }
        leaf max-time-to-cancel-power-save {
          type ietf-poweff-types:microseconds;
          description 
            "The maximum time the Controller allows the subsystem
            to recover full performance. The subsystem should not
            engage in power-saving measures that take longer than
            this time to revert to full performance.
            ";
        }
        leaf estimated-power-reduction {
          type uint32;
          config false;
          description 
            "The subsystem's own estimate on how much of its own
            power draw that is reduced by the power-saving
            measures in effect.
            If the controller sets a bundle interface that consists of
            3 underlaying links of equal capacity, for example, into 
            50% throttling mode, the subsystem might shut down one of
            the underlaying links and report an 
            estimated-power-reduction of 33%.
            ";
        }
      }
    }
  }
}
]]></sourcecode>
      </section>
      <section anchor="module-ietf-poweff-level-4yang">
        <name>Module ietf-poweff-level-4.yang</name>
        <sourcecode type="yang" markers="true"><![CDATA[
module ietf-poweff-level-4 {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-poweff-level-4";
  prefix ietf-poweff-level-4;

  import ietf-poweff-types {
    prefix ietf-poweff-types;
  }
  import ietf-poweff-level-1 {
    prefix ietf-poweff-level-1;
  }

  organization
    "IETF GREEN (Getting Ready for Energy Efficient Networking)
     Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/green/>
     WG List:  <mailto:green@ietf.org>
     Editor:  Jan Lindblad
              <mailto:jan.lindblad+ietf@for.eco>
     Editor:  Snezana Mitrovic
              <mailto:snmitrov@cisco.com>
     Editor:  Marisol Palmero
              <mailto:mpalmero@cisco.com>";
  description
    "This YANG module defines the POWEFF Level 4.

    Copyright (c) 2024 IETF Trust and the persons identified as
    authors of the code.  All rights reserved.

    Redistribution and use in source and binary forms, with or
    without modification, is permitted pursuant to, and subject to
    the license terms contained in, the Revised BSD License set
    forth in Section 4.c of the IETF Trust's Legal Provisions
    Relating to IETF Documents
    (https://trustee.ietf.org/license-info).

    This version of this YANG module is part of RFC XXXX
    (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
    for full legal notices.
      
    The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL',
    'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED',
    'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document
    are to be interpreted as described in BCP 14 (RFC 2119)
    (RFC 8174) when, and only when, they appear in all
    capitals, as shown here.
    ";
  
  revision 2024-04-16 {
    description
      "Initial revision of POWEFF Level 4";
    reference
      "RFC XXXX: ...";
  }

  augment /ietf-poweff-level-1:poweff/ietf-poweff-level-1:stats {
    description 
      "Level 4 extends the Level 1, 2 & 3 defintions with 
      power draw data broken down on services.
      ";
    list service {
      key name;
      description 
        "List of services that the Network Element is aware of, and
        their current power draw. The power draw MAY be further
        subdivided for each service by using a dot notation.

        One service instance called '-idle-' may be present in the
        list and absorb any overhead/idle/other/unknown kind of power
        draw that the system would not allocate to any service.

        It is up to the implementor to decide what a 'service' means
        for this type of system. It may be any kind of service that it
        delivers user value towards. 

        For example, if a system serves three customers, X, Y and Z,
        their power draw could be declared as follows:

        | name          | current- | children                    |
        |               | power-   |                             |
        |               | draw     |                             |
        |---------------|----------|-----------------------------|
        | X             |       45 | [ vpn ]                     |
        | X.vpn         |       39 | [ eth1/16 eth2/33 eth3/11 ] |
        | X.vpn.eth1/16 |       14 |                             |
        | X.vpn.eth2/33 |       12 |                             |
        | X.vpn.eth3/11 |        9 |                             |
        | Y             |       26 |                             |
        | Z             |       19 |                             |
        | -idle-        |       48 |                             |
        
        The sum of the current-power-draw top level entries 
        (in this example: X, Y, Z and -idle-, with values
        45 + 26 + 19 + 48 = 138) must match the value provided in
        ietf-poweff-level-1:device-current-total-power-draw

        The sub-service values (e.g. X.vpn, 39W) need to be lower than
        or equal to (but do not necessarily need to match) their
        parent level (e.g. X, 45W).

        Note: the name of the children have been abbreviated in
        the diagram above. In the actual payload, the full names
        would always be used, e.g. 'eth1/16' above would actually be
        communicated as 'X.vpn.eth1/16'.
        ";
      leaf name {
        type string;
        description 
          "Name of the service/tenant/client/domain/function that the
          system allocates power draw for. Power draw MAY be further
          subdivided for each service by using a dot notation.
          ";
      }
      leaf current-power-draw {
        type uint32;
        units W;
        ietf-poweff-types:sensor-type 
          ietf-poweff-types:st-p-in-true-watt;
        ietf-poweff-types:tsdb-path 
          poweff.stats.service.current_power_draw;
        description 
          "The current power draw of the service provided in Watts.
          ";
      }
      leaf-list children {
        type leafref {
          path ../../service/name;
        }
        description 
          "Child-services that contribute to the service's power draw.
          All leafref values must exactly match the names used in
          the name leaf.
          ";
      }
    }
  }
}
]]></sourcecode>
      </section>
      <section anchor="module-ietf-poweff-level-5yang">
        <name>Module ietf-poweff-level-5.yang</name>
        <sourcecode type="yang" markers="true"><![CDATA[
module ietf-poweff-level-5 {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-poweff-level-5";
  prefix ietf-poweff-level-5;

  import ietf-poweff-types {
    prefix ietf-poweff-types;
  }
  import ietf-poweff-level-1 {
    prefix ietf-poweff-level-1;
  }
  import ietf-poweff-level-3 {
    prefix ietf-poweff-level-3;
  }
  import ietf-poweff-level-4 {
    prefix ietf-poweff-level-4;
  }

  organization
    "IETF GREEN (Getting Ready for Energy Efficient Networking)
     Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/green/>
     WG List:  <mailto:green@ietf.org>
     Editor:  Jan Lindblad
              <mailto:jan.lindblad+ietf@for.eco>
     Editor:  Snezana Mitrovic
              <mailto:snmitrov@cisco.com>
     Editor:  Marisol Palmero
              <mailto:mpalmero@cisco.com>";
  description
    "This YANG module defines the POWEFF Level 5.

    Copyright (c) 2024 IETF Trust and the persons identified as
    authors of the code.  All rights reserved.

    Redistribution and use in source and binary forms, with or
    without modification, is permitted pursuant to, and subject to
    the license terms contained in, the Revised BSD License set
    forth in Section 4.c of the IETF Trust's Legal Provisions
    Relating to IETF Documents
    (https://trustee.ietf.org/license-info).

    This version of this YANG module is part of RFC XXXX
    (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
    for full legal notices.
      
    The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL',
    'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED',
    'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document
    are to be interpreted as described in BCP 14 (RFC 2119)
    (RFC 8174) when, and only when, they appear in all
    capitals, as shown here.
    ";
  
  revision 2024-04-16 {
    description
      "Initial revision of POWEFF Level 5";
    reference
      "RFC XXXX: ...";
  }

  augment /ietf-poweff-level-1:poweff/ietf-poweff-level-3:power-save {
    description 
      "Level 5 extends the Level 3 & 4 defintions with 
      power control for each on service instance.
      ";
    list service {
      key name;
      description 
        "List of services that offer power-saving functions.
        ";
      leaf name {
        type leafref {
          path "/ietf-poweff-level-1:poweff/" +
          "ietf-poweff-level-1:stats/"+
          "ietf-poweff-level-4:service/"+
          "ietf-poweff-level-4:name";
          require-instance false;
        }
        description
          "Name of the sservice instance that offers power-saving
          functionality. This name normally matches one of the
          names in the poweff/stats/service list, but it is
          possible that a service is not listed there e.g.
          because it has not started yet, or has been removed.
          ";
      }
      choice selected-power-save-mode {
        // FIXME: This is currently a copy of the level-3 power-save
        // modes. If it is to remain so, we should break it out into
        // a grouping. But maybe we want them to be different?
          description 
            "Choice of power saving modes that the Controller
            may select. Additional power-saving modes may be
            augmented into this choice by implementors, but may
            not be known/understood by the controller.
            ";
          leaf fully-powered {
            type empty;
            description 
              "The service is fully powered, i.e. does not take
              any power-saving measures that would risk lowering the
              performance below normal levels.
              ";
          }
          leaf powered-off {
            type empty;
            description 
              "The service is completely powered off, i.e. it is
              drawing no or little power while also delivering zero
              performance.
              ";
          }
          container napping {
            description 
              "The service is napping, i.e. is taking frequent but
              brief pauses in the service it provides.
              ";
            leaf max-additional-latency {
              type ietf-poweff-types:microseconds;
              description 
                "Determines the maximum tolerated length of the pauses
                with reduced performance. This means the maximum 
                additional delay that this service would incur on 
                e.g. detecting incoming traffic or performing its 
                function.
                ";
            }
          }
          container throttling {
            description 
              "The service is throttling, i.e. is running with
              reduced capacity in the functionality it provides.
              ";
            leaf max-capacity-reduction {
              type ietf-poweff-types:percent;
              description 
                "Determines the maximum tolerated reduction of 
                performance. If this setting is applied to a bundle
                interface, for example, that consists of 3 underlaying
                links of equal capacity, and the controller sets the
                max-capacity-reduction value to 50%, the bundle
                interface could shut down one of the links.
                ";
            }
          }
        }
      leaf max-time-to-cancel-power-save {
        type ietf-poweff-types:microseconds;
        description 
          "The maximum time the Controller allows the service
          to recover full performance. The service should not
          engage in power-saving measures that take longer than
          this time to revert to full performance.
          ";
      }
      leaf estimated-power-reduction {
        type uint32;
        config false;
        description 
          "The service's own estimate on how much of its own
          power draw that is reduced by the power-saving
          measures in effect.
          If the controller sets a bundle interface that consists of
          3 underlaying links of equal capacity, for example, into 
          50% throttling mode, the service might shut down one of
          the underlaying links and report a 
          estimated-power-reduction of 33%.
          ";
      }
    }
  }
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="deployment-considerations">
      <name>Deployment Considerations</name>
      <t>POWEFF data models define the data schemas for power consumption and energy efficiency data. POWEFF data models are based on YANG. YANG data models can be used independently of the transport and can be converted into any encoding format supported by the network configuration protocol. YANG is therefore largely management protocol independent.</t>
      <t>To enable the exchange of POWEFF data among all interested parties, deployment considerations that are out of the scope of this document, will need to include:</t>
      <ul spacing="normal">
        <li>
          <t>The data structure to describe all metrics and quantify relevant data consistently, i.e. specific formats like XML or JSON encoded message would be deemed valid or invalid based on POWEFF models.</t>
        </li>
        <li>
          <t>The process to share and collect POWEFF data across the consumers consistently, including the transport mechanism. The POWEFF YANG models can be used with network management protocols such as NETCONF <xref target="RFC6241"/>, RESTCONF <xref target="RFC8040"/>, streaming telemetry, etc. OpenAPI specification could be considered to consume POWEFF metrics.</t>
        </li>
        <li>
          <t>How the configuration of assets should be done.</t>
        </li>
      </ul>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations mentioned in section 17 of <xref target="RFC7950"/> apply.</t>
      <t>POWEFF brings several security and privacy implications because of the various components and attributes of the information model. For example, each functional component can be tampered with to give manipulated data. POWEFF when used alone or with other relevant data, can identify an individual, revealing Personal Identifiable Information (PII). How the configuration of assets should be accomplished could lead to data being accessed by unauthorized entities.</t>
      <t>Methods exist to secure the communication of management information. The transport entity of the functional model MUST implement methods for secure transport. This document also contains an Information model and Data-Model in which none of the objects defined are writable. If the objects are deemed sensitive in a particular environment, access to them MUST be restricted using appropriately configured security and access control rights. The information model contains several optional elements which can be enabled or disabled for the purpose of privacy and security. Proper authentication and audit trail MUST be included for all the users/processes that access POWEFF data.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="the-ietf-xml-registry">
        <name>The IETF XML Registry</name>
        <t>FIXME</t>
      </section>
      <section anchor="the-yang-module-names-registry">
        <name>The YANG Module Names Registry</name>
        <t>FIXME</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.draft-lindblad-tlm-philatelist-03">
          <front>
            <title>Philatelist, YANG-based Network Controller collection and aggregation framework integrating Telemetry data and Time Series Databases</title>
            <author fullname="Jan Lindblad" initials="J." surname="Lindblad">
              <organization>All For Eco</organization>
            </author>
            <date day="28" month="February" year="2025"/>
            <abstract>
              <t>   Timestamped telemetry data is collected en masse today.  Mature tools
   are typically used, but the data is often collected in an ad hoc
   manner.  While the dashboard graphs look great, the resulting data is
   often of questionable quality, not well defined, and hard to compare
   with seemingly similar data from other organizations.

   This document proposes a standard, extensible, cross domain framework
   for collecting and aggregating timestamped telemetry data in a way
   that combines YANG, metadata and Time Series Databases to produce
   more transparent, dependable and comparable results.  This framework
   is implemented in the Network Controller layer, but is rooted in data
   that is collected from all kinds of Network Elements and related
   systems.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-lindblad-tlm-philatelist-03"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.draft-palmero-ivy-ps-almo-01">
          <front>
            <title>Asset Lifecycle Management and Operations: A Problem Statement</title>
            <author fullname="Marisol Palmero" initials="M." surname="Palmero">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Frank Brockners" initials="F." surname="Brockners">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Sudhendu Kumar" initials="S." surname="Kumar">
              <organization>NC State University</organization>
            </author>
            <author fullname="Camilo Cardona" initials="C." surname="Cardona">
              <organization>NTT</organization>
            </author>
            <author fullname="Diego Lopez" initials="D." surname="Lopez">
              <organization>Telefonica I+D</organization>
            </author>
            <date day="24" month="April" year="2024"/>
            <abstract>
              <t>   This document presents a problem statement for assets lifecycle
   management and operations.  It describes a framework, the motivation
   and requirements for asset-centric metrics including but not limited
   to, asset adoption, usability, entitlements, supported capabilities,
   and enabled capabilities.  The document also defines an information
   model.  The primaty objectives for the problem statement document is
   to validate and proof that the framework can measure and improve the
   network operators' experience along the lifecycle journey, from
   technical requirements and technology selection through renewal,
   including the end of life of an asset.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-palmero-ivy-ps-almo-01"/>
        </reference>
        <reference anchor="I-D.draft-almprs-sustainability-insights-02">
          <front>
            <title>Sustainability Insights</title>
            <author fullname="Per Andersson" initials="P." surname="Andersson">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Jan Lindblad" initials="J." surname="Lindblad">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Snezana Mitrovic" initials="S." surname="Mitrovic">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Marisol Palmero" initials="M." surname="Palmero">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Esther Roure" initials="E." surname="Roure">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Gonzalo Salgueiro" initials="G." surname="Salgueiro">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Emile Stephan" initials="E." surname="Stephan">
              <organization>Orange</organization>
            </author>
            <date day="20" month="October" year="2023"/>
            <abstract>
              <t>   This document motivates the collection and aggregation of
   sustainability environmental related metrics.  It describes the
   motivation and requirements to collect asset centric metrics
   including but not limited to power consumption and energy efficiency,
   circular economy properties, and more general metrics useful in
   environmental impact analysis.  It provides foundations for building
   an industry-wide, open-source framework for the reduction of
   greenhouse gas emissions, enabling measurement and optimization of
   the overall impact on the environment of networking devices, software
   applications, services, and solutions across the lifecycle journey.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-almprs-sustainability-insights-02"/>
        </reference>
        <reference anchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="RFC7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
      </references>
    </references>
    <?line 1526?>

<section numbered="false" anchor="change-log">
      <name>Change log</name>
      <t>RFC Editor Note: This section is to be removed during the final publication of the document.</t>
      <ul spacing="normal">
        <li>
          <t>From version draft-opsawg-poweff-02 to draft-pslm-poweff-00  </t>
          <ul spacing="normal">
            <li>
              <t>Renamed draft</t>
            </li>
            <li>
              <t>Moved WG to GREEN</t>
            </li>
            <li>
              <t>Updated one author affiliation</t>
            </li>
            <li>
              <t>Moved YANG modules to yang/ directory</t>
            </li>
            <li>
              <t>Switched to building using MartinThompsons RFC build env.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>From version -01 to -02  </t>
          <ul spacing="normal">
            <li>
              <t>Adapted to leverage the updated Philatelist framework</t>
            </li>
            <li>
              <t>Added the dashboard concept</t>
            </li>
          </ul>
        </li>
        <li>
          <t>From version -00 to -01  </t>
          <ul spacing="normal">
            <li>
              <t>Major rewrite as a device level YANG framework</t>
            </li>
            <li>
              <t>Added the implementation levels concept</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Version -00  </t>
          <ul spacing="normal">
            <li>
              <t>Initial version.</t>
            </li>
          </ul>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This document was created by meaningful contributions from Per Andersson, Jeff Apcar, Derek Engi, Esther Roure Vila, Pascal Thubert, Klaus Verschure, Joel Goergen, Colin Seward, Michael King, Angelo Fienga and Suresh Krishnan.</t>
      <t>The authors wish to thank them and many others for their helpful comments and suggestions.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAI7TxGcAA+197XbbRrLgfz5Fr3JmbCUEqS/PTJTJZBRZdpSxbF9LiZPJ
ZnNAsEkiAgEGDYhhMp5zX2N/7Dn7CPsM91Huk2x9daNBgl+S7Lm7sU5OTIJA
d3V1fVehKwiClinCtP9DmGSpPlZFXupWPMnpkykO9vY+3jtoFXGRwI8vs6nO
FdytzlKdD2fqbDCIo1in0awV9nq5voF7Xrw+e/KkFYWFHmb57FiZot+KstTo
1JRGJjBlbxwbE2dpMZvAwOdnV09aYa7DY5VNdB4W8ItpTbP8ephn5eRYPX11
dvZcvYYLcTpUT/Fiq9XPojQcw+P9PBwUwcQk42ACIA4Gwd5e64OsZ7JEFxom
PQ8ed/imbGLC6dDdtt/6oJz0Q7rp6I/7e+oD9UqPsxut4oFKs0KlWvd1v/tK
T5Iw0q1WEqbDY6XT1vX0uKVUoM7TQuepLoLHOH6rNYn5epFF9K/J8iLXA8Nf
ZmP63EqzfAyrvNF4cwVdEqf9XhL2gwKXMooTgCyJTRHsHR63WnE6aH5sEiZj
nWdBfDMDLATwLYOl1e+Bi5PcBLAHRRinYS9O4mIWxKmJh6PCBHsHMEFYFqMs
P24FSin45Vh92VHPBCQYTClG95dhWr+c5cMwjX+hbTtWJ0minmS5Oosy+lWP
wzg5Vj+Gaceu76NYF4O/wmo6Gm5y01121EVc5NlNHHnTXab6lzAN6z/VpzyN
TZSpy5kp9Nj4k5p0TE/9NcI7OlE2rma76KiXjDhvsoswj4Fsar9sONdYtqFp
rqcddRkmw1LHtdmeZukvwHhzv20439DwU958rSAIVNgzRR5GQItXo9go4JJy
rNNCmYmO4kGsjQpVXwMitfr25PlTtdMPzaiXhXl/RwErhGqc9XWiilFYqDBJ
sqmR2w0Qtcr1BChaTUdxNFITEghjHZoy1zQJCgfgdsB5ogZlGhEnw1h6prLB
QOcdpQiqXmjiiOfn6eBaOJkkcRT2Eo0ThelMAbf34TmZvw2TDwHMRBuDV6cj
DQPnOLpdUFwYnQzUKDT0vCknBC1QGs0VwLS6r8ZATkOGN0b2HYS4OLgHOJ4A
1D5kJh5PkplFhcMdgNjXJsrjngZIAFdxoSLgDEZQmzDBWPLmABmnwhvYPrvK
XP9UalPAGnCrAPsw/2OLbRwVxM41rSVLA9qk9QuZIJv0NY/phEaWwmfExBhx
F/IKgThB+sNqaOMHcaLtBuFnGH+mYHkgmPsE8CDPxgBMBctU95TR+Q3sAoxf
bUQbsTnKgGb7CDzsFCxcJ0Z3mEbHcR+2sdX6AOVnnvVLIpRW68SoEQikBIUS
PNovc5T3OO535yefK9QIZpRNcDKd3gDDpLj4EMgHuC8qzPcPR0UxMcfdLi4I
2eAaaA6lTQe4qgu80B0V46TLMjEOe8HUBLWRAhkp4H0ETbLbVjexiVliEp0q
WO8Mp4QbQsD9IM5hC2GxExQpeTgZ5UDeAPhLUD+5epyXCMYDg/sFMCH+d77N
SiQX1DEwUI4qh6hoBtf7WfqgsGy1gxRR4cGhAL+gdiLiJh0OGxL/glShizyO
jJoCFwBtwc7FZqT7beKqmyzuI4VMcsBKmM+QqfolPCzMq290yhwc9uOoABXu
xgujPAPOgxv6WW5gJ1nXI0pQwQPJ5bjdHjraahIC+8F6EdrLmu5RVzrROPRM
XbJkiphKQUPqnEYyqx4/F9Wlfv31sy3U3Js3ZG2wzaAehoBDlGGwo2iOEMXr
n0Hl7hIjIFsbxeSLMMA25SAIEIHAD2PEe0H81wZFn5QEP2A2jeJJguyO4otk
FEjnCRhYaWHscnAPMmRi9yBKD+C2QQbbAbM7rCQJ7BIxM24+AgSkAdsF2zmI
kfPVNC5GNOivv25kTAASBjloIByvI3qCjbtT2MhyPCF4Gg29pdv2kKlh14of
5JMpYBPJM7Q6IUFxnSlYIOC7YBGJasYKVdIRKLQUMM6YcMU6JtcIPiALzEgg
Pl/PGMDVOaoqk1Vzj8NoFKee6AKQQxZyGWsMGQk2rgQZHRoR1mUa8x7VtBps
f2mQhaZCErDFSQmWIYE60iL1UWTBHG3ZYEAPEZXsOP+ki8jKWPjPETvypvFV
mdPKnXlFTivFxQOFA4ePe/ksS0Gb9vUgBuhJ48KUMH02hgf6ApXRBeMtLICf
eyUYvfIIiBbcofEYYPUtAKftN6UN/MHgPG0myXGZFCVwAoq4hFDJtJKAlElM
mzUcMKAzMJD9olEGfIGzu6eQG3wJBzwRlQm7CQqYJ4l/sfLRWjnL18z7PI2B
jWexTlBiMY1F3vpuwqTUTLuge2lRZCDognhQJ8L1OLZ5e6DhY5rRrCs0bwYc
0M0H6M78VMZMxkah91KCxYAUpdU1GGXwQN+onYuvLq922vyvev6CPr86+7ev
zl+dPcbPl1+cPHvmPrTkjssvXnz17HH1qXry9MXFxdnzx/wwXFW1S62di5Nv
dxh5Oy9eXp2/eH7ybIdZqUboOZEByESyboChyJ4wLWt4Eft9fvryP/73/hHI
vv/26snpwf7+xyDe+Muf9v94BF9Afqc8W5aCJcdf0SZtgcmpwxxHQakehZMY
TAAgTGBFULLTVKHk77T+/FmCwiT4w2d/aaHRcgXCKU6zJBvOAJXVF95P8oRj
SwLGCglvZcdo6cCutY5hf0jiwTJHQEJTWDKqkkHBn8QkpqHIpkJjCzmlo06E
16zamIxmBpUF3gX2TFGGCa2DWLwSVDQvuG8DHc0i4MyLyoRE4F8497uuV5td
zJoyBXq7jMB9V/uwrDPx72F+oL6oALRHIeGiB1iKnJAiper5O7441miuwijo
SYC4IHLolTkuhn6cfxblqYQPSKLJwzcauAoN20sNZuTTXOt0lAEo6mlItjJ4
6llSGY7D0dBeJJtx163roLYu0K5brgx4nDWf85AabuuQ76x/DlH2tXmhwNAR
mmBWFMA6J2UejUJSSTg7L1i0X85yB2wkoKpxeA0ixEGdIa2MQvCRGue+K4oO
ayha3KA5nBm2jowFlHGUlYVh/6X+uKUli76OOmM0OXXsy8sITMBsjIOzXNeM
y4pA5od/QEtFV4RZjVEP42czrQ3pRxDSCCpJ2bB4C/g7qkkEHB/tICdE5kZ+
+PSLp7tAcxFYjEzzwMGssmmBnoeqvU0ByLMoKnPkshDuN6ClySdM5/HBigYI
DQUkkPYNWBfa8C4hN6L3Uu2oNfH6iD0QnswSDUjipXow4VieC2HJxL8DBSuq
g9mELWIUflkUk1FItkYFn4Qu0GabmAIswDEC1AeI5Bu7sfOLrSKPAKIvhFCD
TkhCCoM1rgvoDg1Ncg/hHrLQYCNBYWu2hoCsRcEPAQp0DKvlEUQ95GOMbYDv
BfYRkFkJJsAIPsP/QFEBQoFQTl8c6J+ATE7DvIf2Wpz9jMyCQMJ2oZoHsW+t
V2d6xiYvJxg5RLOBDG2EwhLTED1FCww6dmgPLZDiQ90ZdpwwYk2TwaDwcddy
3QSlDxihNHE8RmVWog5jC5dRrJHSSHdV0j5UZgy+3mQETlIHzfkYVWdJOy1r
IQ5w5vlrMJsQ1MVI9DEb1Q5s6zAyhbPOhJ8AFAqG4HhoXpCdXIWsYKfQawDr
eMwWnBUrlZFIcNbnIgICCVtMtSgoQO+gTFCmTWD/ZRCk5jj1LgxjdLtRgQiE
MHaKzAnPYWwFXSgDRBSN2hhnoiCEt8Vgqjj7EFmRYwM1a1BsUaBPmRL4PgMl
wlE9oLjUjGO2AYDKIyRDcgVgaosp9mRl3MB6ZGDJXhuRfGcLpuo0vo4nuh+H
lfTTacddJfGH37r86A/VoygUP1AXGRBtyMEhtFnHKIqy3o86ImKGtVdBCFgH
86B6Lms/dV4nqxjGWNu6NX6wcuJyGw4/vD4b/SAWlcUbcW/I/IZH+jHGD6zr
BgzIgsJqmVQjPkOMGdmgBXs3FPbx4wrE3I4VycRH/oxC0pUDkR9E1UTHMYdI
wD/6PDQiGOdEfdjv57SbLFJhuGCCloNvFAxEJh+2Qaxw4kbt76sdnBt+NFnS
d7pxB/YF+ZM1rpkXYkLzJGCyrM+S21qtPJIIz0pRYXCEQpy5BJfqXjXeMgMz
HWxe+f0///1/GgvyPABNMNfsA8NGKgPGhl0dFzAFjpIDVZ/Zj26EHnCBtSgk
DuHkdmVyEOYRErC9QVCyU2zlWhU4BCoAFar5drueqNoBS6moITEqpP746HdW
pBcZxj3pIaPgzgOC5bCKRKA0EcEiIoV4lPMJZ5dPQbpb7H5R9ir+nE6nHZdS
6EbdMXDsD6Xphj0QRt3I5F1thsGo7HW9wGl3mIHj1MHg6geE1GA/OAwcWnet
UvE5zPe3q6gSSZ0qRo4s0I8HpEmR6gZ5CFocNhVFn4QiARf9kMxiMFUw9aFz
8sV7yHBkV5iCpBHtFobbQczA0sENC9QJT+V0xCSPx6HAgaFXBAcdi0GB1iP6
jxVwGO8g5sSp+F9gQwOjfg1DIGZPXp5jfOo1RRCrRY5RCqDX5sZqox2HRAQ3
jIBv2owIFE/kuiPoHMlnc0mCCRGpMpBU+BvlMETeIxDPQHcV1qRRl0CaTh3B
fUATYDUCDdFEMaaX2KjTN+SiJKjotceuib5BorV+Krmj4qnCZC9tuMsijTHm
4lQg+FKKFsIQgOBhLMyW51neZrYi/gVN1EdJm8VGM49S6guWEfHNPnq9kBdM
eyqxFwCaLFfyvoV68G5SuWJLJsBiIMPHgOgE0WRlNZu8ZCuANYMeJG40SSjM
DHLkKxwOMRVFaikAnzmMgHgAgGeYrEH+RHUKD3BQjPWzC3Zi9kvjdM6uQdfH
oF6nvALil8OBkc4Rd2oQxrkDQUy0Dz4AjEsE+dJGkF+UBQYqWi3wIceECaDP
FVn7pcHcgkKpY5RNHv8Av+DOgoX12OGd0nNLwlkk1iiaxUGINVHGBRXsCwj4
zxEeUYVQnshWsIurwJsFECdcFpy7h7Bh2gRnQ2wOFaaNZLKXNptPZrgdBIQZ
gJJHqPQJeziql2dhHzlkSCRaOSY5R/kMPk82azmuNq6oyayFWG53BVl0PAqp
MMkIJFT0AAWYhEhRHYIvgXdd6xEoX42xddaauOjTLIdNRoq8RLctAe1jJgih
YODh6eWrXYx3ZOzxhFVyazH6PKctOMVwE2JKi2V4mSNnCJ98BULgFC0oFPcX
GdBtRuJggd48u5Xzq5iUYYIVK7ADI5ylI0qZVsaJGM2UdCUSn+QaHEdDFuoN
2j56SkBOsoJlbjIT86+CozQh7KqX8XT+KCCLLDac3McC+lo23Uqu2TRGIW2M
nxulh8IJE1rM1j46beDV6Cb6JY+Xecq5+Oh3GTtJ3E+0iNAki0jY0gJwoi8s
h7r4YkedxjnyHCgcmCYbz5yfTIwPBJ5ra6cJ80hkRXPuP4GhKFqLvI6KT5Ot
TIugqGiuCbgcdERaDkK0DACFeAEhkI9CEZx+abUuMspHg0lDJOlsbFmjiKuI
XexBlhWY1OM6AnEBHhjesbbockrK9NAFyGHb+6zLxDchQdfm1Cp44sDWxuZQ
hLyqhBjuvnCW5ep+hxPlVSL/Agf0pAraQGQWgm4xNUGOwWGbUBk152FYTHP9
BeWFESOSJYsthdlNicqcDDH07UHhnZimYQFK0GuATMzlA5E2Zn9scQFAZ9Cy
QqNDRj0LsWqiCVRyfE05QW/LJYYnGG5H2UP3MM8/o9v32qQkJdUNZomk1NQL
sONarZNCht1r14pI7MyG7T0vW15l5UwV1MH7xzXpXt3FkhsgtGF4Meg6nAGU
opKo7qcOsOyFVkaSweU8E8xmIjzasDHcgPy2BAHDvnUTbZTMZkA5fIfYR97G
6hVNGW2NBkuf2ZIklJelxaEw6YwL9LKZYsjgbFI341Zut9cPmfmVI81VLDYs
SgFYoHH0q7kSYGnBSmNRCtekuFG0Nww9A8AYNIc5pDHW4DeksRlLiMurasGa
FUr/oweDkfkawdg4w5nEWDzKwZ9fVkl3V1BUYjZUF4OFrLwN3gtloOPGo3ip
8ywlq3ssMnORKpnc0MwUI168hxqdUBpJY4lP4TML+JCnwt1X5Fuy3n2ch1OP
VfaXsYpUxZgx0A6TGNGVpXsHIhMoLplMXs5dzGGrtRJDgsYOEZxA5aFA7B7D
ZU44fOLTJTo6guP6xabCBX+TT2slDI7DnEQknDHH9gFnlk/maAQw/s9//lPN
wIYLilzrFi/mmIlC6lJpUcF+S6mPgiCfKr5MxX90JaPCE64GrK7xngQCUEAA
0Yh5gAB9BjeWoMUODxCC1q/Hisp6P90h0kRYQDmFwzwcW9CFLiq52dl5w2G4
QYaCi3nfyy9T+hhLWMoE2CypnMeljGI3324j0oZojUqIdlof0V670EZRt//s
tFGWU4yLmIBrBUmeLhRt4Cxs2MgFsiCBWpfNwO6kgOFKSdbN65eQcOD67cwD
iht9zaKLglu9urhkMmwvTrdg8i7OuqQWwlSD2CIBBIl0BFhx8Zh0jNPiijNG
JcAzIG8JTCwwWAbzlID56QisQw4DsomTcnWlRxZcTkhk0fa4ttHkgRsoqibT
gx4TarTCtC8lMta6WsjOS12KtU8yTBuVrD7Azkiq7OF3Z19xSk6dJmE8Nuox
xVjR7H/49PQxuDNww8HewWF3b+9Pjx6evni8W4XZMh0nHaOBW3VHlyDMwzyR
D/AP/dydZJNyYrqwtJGmqHwf7+5nn2Ehx6c6/T1lHzDF9Gl9ml1Prh+01Unf
Of+49+B89jiqoj4HkrnG1Jgn4uEBCgFMSIIC4ixzOo+nWfuRCWwDlnjDkOoF
hdLYv6kI5CHpJNBPQ7Lm3XVr1DlBussao37RFcuVOalwsAsmHK5CmtdoQI7D
H1HTlXapyDWxX6S6hSg+aIGsDcshrbPbIKqP+WvjTySrj1sLgpoFNKMnAPDT
4jMr0K2g3uCZADRcpPFJXMgxvswQAL4CRKb3vMPDh+o7LD7/vlXTHXhJLfzx
QwH+GBT1B6yWadQv9TtBhffh3g9rQwd/UZ1OF/5zgHVxmu1U08GcanI0f8g0
/wQLW6VC2EURUImDLcfJili8BqD4KRsnayxTLtpjydFWhHsXGTESNkBBFg/L
XFywerGHtZyM79453gPAQxFVVXyhykqiPywrR1+4AoQdcnRBqbDezXnjYgRq
mGQ9a6EEBmMs6JcaNqM8I9OrwSN7c+BcbnFHQopa0MMLRpK1cpZrfPJVc1fP
ZySWCCO+qNV6PLx8/MLsEjS0MMt95IrA3AAVBqg5EoXRsT4L9kY4O2y2MHJc
ga6DvvaALSvFLVptA7LemVF4d4yJ7D4Ks35o46IEavgzReNcKLnyaiSvGtJ7
CzAtZvuLLKEUedsG/BslLVV2RBhuoohNWMwtme0OCcCKpMS4XNqWvDYo7CSx
ipGy2z+j+LS5gquGOaXEzy+zpRCo6H4b5iY8iA3BEyOp9aXwibRCLCXmoogX
6lurF1UGWZlXSxOCZW0wzXxK9tQ6Jz0n+MrGEOUkmQBiTswPBVMDDpIZSzHd
bx3T0iudgSSANyi5oa3iDjge/QzAQBsDkSqZAoFlEf9cxpHH5loleJe1Huz2
owTpafhJ0Vthom4RNpk0yMD2b4AMA434glsFHtZPC4hcJYByGedLM+S5JC5A
qgoWmBBoO4Uk8cZfdJ75kAEUKSATfmqCQH6yUxrEBwkseq0FthLdwB54qQM1
4XovUcCSEEYorddVp7rTujyynBYiPwUVqwfoHKbRzDp0+L7FGJOxNd6zTAVu
p06HICusjcEwiTndLyOPKXHtPCjGPerjeaIGUBfOeJ/ZFK3MDdp2kDQlvRsj
ccUCRRalomD3iBLyEKPOXp0F/Yy+gkh92IJiBNoHUzuNu1D9Wm1EXqYphxK9
tUUhZ6ruZxfsaAENzwUxm+2Ce4Bi9TViqxU/xujAN8AS2ooit3CbIGmGq4or
P9r7HWwGukySo8O8U4XMqsBWRKcXSjhkEQbbjfPBpNdGcjBh4jDbbBhzhFgk
NuqNEbAFGt1WwVI+f4RmDo0reLCGwLzGVg/1z5GesCqsyS/6vU1vhNhCEaM5
nwISAGxSoL5dng3kZ+XEi6D0xSjrXBSjx60WohXtSTA/Ab2wUzaugEAJSbpt
RiMep/A3jMOcRY1yKYgSkYWCi5jnPP9WMyJmAonbAgZGPwKWuELkklhOsnRI
KicU/44hw1lhTn59Zn7eVsv5srJCR0TznIcVg1Nf/6WV/oMtpTK1aeq7LDbO
btlRYiPN64AF8n69ZwphikarhEcpMGnlirrU0j0kkA9/t4Xjd7ih41e5d1OP
X31HaLrcBXN3NHth6Ct1xb8kX3LeZ5of5iGbxm79CEqAomH3M+/ef9Dtxw9r
EmS3fsM/7JC1myo3lf/0eFLMGkb27Jdl43q3zI+6fFwxO5aNaQ2W+V8dfppt
CJx/HOM7jpip7JuGiSvempvbDe1p6vkbatMv8iNOD6IoAkJb2NCV8pfxtgRy
dsGXMsRCwGEr9/twmft9xO73pYiNE6mi4Fd8rat7tCKK5IXiKXtCTijXEHZh
s8IUmCBKsNrVdPsZFoWarv+6Ob+OLXatrWMvsikn7hbKVBagwHcBPMGdcURJ
Fl+9g8MZiDkAyVSy5YIoy3ZQx4102O9i7rxLOadumV6nIOx2FMyWiwUZ9kyW
9/jVdfsMhzIFWPduPFV9xpxXl3k7XvSWoL44+daPkIHM6MecinMhMivXezNl
3yHp46EXGXuCICdfpJ6ZaHNvWGcKwzwIcD3BgyrVV8tLEl74hShcVm1VDZhw
L/vPa0xCuW9TE0ak+MCeFOCQIKXjE+vy+Vmvym2Wt04fyGMPxMhnfxtNhdmE
Ix80L40qi/SPJaipRZ/esGS0TnSNWtxaN5hqNKLrXM1PW33TVt8SAv/elly8
H/8kVFDBAcbPOTzNFp0Bi+0fc7rkHw0BO7wosbkF0YuPtP4R1P/mvy+/WP0K
kHxTH3ZhoqNHcPFm0giEhUR90/HvWBzk8GO4qIvRfnf/D/jvQffwEP897O7v
1wfp2LsWB9k/arjYCEnHTtEwyME2gxB8Dfd/vMEg39avLNxz0LTG+UH+vmaQ
/U0gYUmwfJCjP60dpMXWtVMxDfSKKQnWHSg0MUCkHtrkjXDWMXFNG1aFjMNg
ycvIksYCavsIMfMRruwjhOxTtX/4p12w3A1yeSEF9sy+rnwB5mmy/tbkXO2q
eoGVFQIFFxoQFbSBdl/vcrkbv+1KYSJ2XFBmkDENvzzskYUs5xLxKwVxMnNP
Euy7VlRQRlDQJbO1YfGvsZDheVbgWU/4akJYpVycMCCHsYd5Lfcua/UCqbUE
wh4Ic3pNhepMONc3CWdJFvbbzjWlCYwI7jCZhjNDaUN6c5GgeiDs+IBHtLfa
5B1l4MbjMo251gyk3IMaGz/Ywpo/utc0jmzpVgmVIvdMw/vOpDA8t8ijHC0z
5B7VDTm+OJdJcQbdo1ppSGVgc7GjzfcuRDO4jNEGxWvWTFXpzxwe2ZebDGJX
zkuQxEl1MxCWjY+wXpZAvjPQ8rAYWQZzrhS+Uu00+tRqV6wSwrTh0PPepQ4e
BYzURGFJvbxUaPX3A8pyoCHwgJZI6cn4psFCWZEp8SwWu/qpdcFhZ8l6DR3K
NueDR7fng8PjagN9p3cFMyz1ay35zjm3PhnXhtnAr13t1N7Oo13lzt7Ol13m
yK7wYu/kwq7wX1c7r7f1XO/ktr5Vn/XRvKjjyrwL4hVDou/Cq9IT2kd/wHSQ
tXA2ZrLWeMl96tcWJ+MDe6rQfmf/kxYf+mYmmO/bKfP0GB88Bj0djs3xz+Pk
ODXHlMJfGHAHHwbvahD/vDjbJ8jL/EpZc2FhBVN9kMb7cKY3OKL/ajM9ukMn
PfBBjA+f6oLSGK+oIBWF69xLBIUVaxWt1U5vpCXRu0ERE83O66fqte4dw8c/
rzzDazrs0pvL3b/IsE/VMwAfHvwznotXZMf081/tA3LbWR/L/uGuhdMLqz87
wNKjCufHajyacHG8xVMI5wdqOnZwcZzFEwb/Qnjkt/wn1VZRGsavOOUqTHvs
HhiUaSGv8i/UqPHc/NYm1h0rph+bipaSdv/4KHrgNJvMcgrGPox2sehpn48G
ucJjRKsCHmAIOjyjj7V/9L5NaGekwyfd0RkRiPUOnSWZ8xuzGFwAP7lvJ3yl
+7FxcSWaAcv4wUrl95r5Zb84xfpYejlO3IAs5+dt9TZgyKsdi0lZw3ZRtVyZ
m5Lf05STfkp68xi+8xgc5gDBZ7QcWCWvu5G5zObQJepzXurnl4+B9Ph2PP2F
xsAXEfGMQDCyOEZ91IksEioMghHxTA+xjAUJjV9VVS36j3Bhq9Iyfuax5NIF
t67ojA511briJoE+wGMCdy1qiXys7LJFdrUC5upktldPTtU38Dc3Eb5Emg+i
QBOF01Q4RReu4d27n2AJMq0RB+BjGx0+2HNIaL3g7FCsjQgd/kN3hOACEjsK
9o4CcORZts1zAfDBK+2MQvKQSnkNonp/yC/RdjRNcynliuvccLLWYzC4GSAS
lcggwGCerfgr70u3q56cf3NxdoyvIMmhNVPOx+EBf2zZMWNQwGkmNEFf2FX4
ZH5paoeGlNmryX+egFErmPCfn4cE34fQzNRyuO2mMxhysAPJ7UeztzBZix7+
1P2py7Pnly9eBf/21cnzq/Orb72fmv5QEZJgKWbK/BTcZEmBuUKGE0uzVii+
Y5Z2gcjG2SLiLRVcsli0hY7ucJ4C3/hCGSLzduwDFpE+bLZq/B3BJtOtBImD
i28XIC+A+XDJiSG764EMbMGzD639cWNY3CBSLE2lEyFWug21d8qJPO2/+GTs
FlP46euTTUDGEuI7gUsD+KDWa2cFPnkYlZWFEfxFCvZz+J7D8/ie1SqYZW/e
LjFIzMhWogNR8BEo/M7sKubJDtzRAm8ZxtMXB2DQ1I7a2a3O59gUWv3TvxZe
dzaQPLXdAgrwXbFyB+Mwbxd6fyasPV8PGpZ03CdMCxDhBH0p5WVQ1uiqr56f
X22jp0rSU9stAuXlJzVZIsy+ZlUkZ/HWtvq6tpg6QCHuwpZ4XQRJJNLazSeg
eMq2Olmx3WUwDYs7Y2ozqUtA4XRt9XolSIT4e8HXFoB9DZN+eCIo+3o1zq6n
7xCw6zjJGGvXq9H2Y4Z+xB0BY82xGWQ0YVt9uZq+Ru8SJEQUuKCgz1+P1mzh
O4XrOomzCrbrdcDp5CbeUq0twudJ/g2BpGnb6m8rgYt0YuLSvHPoZN62Ol0J
3gAN0JGO7yzUtgbQzdxWT1aCSBHUu2oCz17bDDycta2Gqwlv+O7hQtZg2K5X
A1dsa+ndB3QFep+rDKYy4FD7nckNrKLNQOL52sqshGqMb6G8a9C8SdtqvA5A
l6Z4lwC6SduqnAdwmf159e3Ls/X2p/5ZwhUS5SWoZWlhPuQXcSwG6AXA5TBT
ZPDMDUiH1XLiEguTpBTdCybLcw9DqnKmQ7m6fD5m24am+T1VxMIuJnBHfGso
T9a7Xcyf9D8NZxZVeODd+j3CLyt2vwhugm0VHH75ZLMHooAwsMKc54tsam7o
SmEQ8mvx/89TPk1stS+Fq8Rw+NtbJm/x21vni7LYxGksgvidb2fNFbLLZK9h
i4Xa0zk23dD4X7Ch97vSjbd0Alh3UcFbuIl33eB6WHKRnLfGANfYeDtNh9fY
iOXD8w+/shl8OXxrJXJgp94Zdpqo4i2hxyePO+EHiAfDq/8ywsHJ61hBSO5K
LlXEeAPyeBfrX04a94SAeYLYGAPuLLu3jQI30dIQyy0RcOJO42NU0NEva+Xm
NPjxToudiyxY2CnYsgXwXgqg2j9Q0quiNQj8tnGRzaCfju4B9JVRE4R966DO
ZsBf3wv0q4M+AFhwfVfgF0IWbgUU2dliEVcNWQNcxKrQEC4hemtLkPDPPazh
P/7PqggSrmLw1lbhYkT3so75MFNr3n+9unz8efDy5OqLNd5roxdbmH4v8Eog
nA/rftjYf6UTx92hVFQuApApGpxf0+IjLORxejrR4cDr17GwZfWVnr549uzs
FNteBRdnV1+8eLzeX4cBnuO7ZPY4PTyScBGFWJz1Krg8+fpMYRrqch0mW1V1
h1+I6Vd2cI0lI4/PMFtF11eYLsPb2hxeydJiZA/io7E7an/vfwR/kG+LQRcL
jtSTLkIiV5ScgrzX6ezv7TFAbzwgf7ccxpcy9CDnbk1ttd+FMbhpgFTwzMH1
hqo+sciUa8uwOC0Yh/m1zs2nO2hl7LS8XzBc8unOQqXmX6uSJSol/c9//19v
lhWcSh32BiWncud9Fp3KkMvKTuXnhcLThRrYVUWr78tM/z8uM/UKReUMSSkt
XKgSPdquSrSxSHRFlegdi0TvoUZ0kxLRV1jTuKQ+9NblobL+lYWh29WF3ros
9O5VoUuKQoWABTq/o+UDPKTyQZv/xcMq8bPtaImfqZHlgzY9yl/sXXzQVfWp
etq1sLTPzXW2pPlOvn3AhPDAdrZ8sHDCpJgozd0tXdM2290SX0t9iAjB3pYs
5egrdrfcXd7cUtWaW9JjSxtcOl3X2rLC9hy7QIRJ9VDVkUk4f8tiWssduRx6
uzh1ZWy410Grh6hfAM1fU+H+uPSWkTMj+Kw+NQCsiPnbOBnauvhSvCmwF9RD
TDYEiO9d1QNDhM8GqM/rZlZsHa55U9QB1GB34R+bNa+rCws61bfwK7Abb5yP
ea0atbKsvTH5jg6hssMr+0FW9gOt7Ada2Q+4smrwRrySHqmOUV48QFneJ7Rn
AXgPesczynHdE+6YYkgaV80n5Nw37kRnOv7kj+1RbvbEhjoA6GHkKR2NlNGZ
OvKyoDeCf1isO1PWa3bH54LxQQIt77n54xrkkF93zC4GEbDJHTO3/bmOAQpw
uQN/O/VTkvkNZv+03urF4hr81eu7DhzsLzuzx91WHU2Nf9RebSdo+SSduRVk
dWYu2UnT0IzogDKvI23PP9tl+6N0Oz4JWSJ74zyBe7DaxdDd3m4/2NhuP7h/
u/1gtd1+sGC38xuji1Y7Xncxh7vY+Y2P+37LajfjvavwW3IVDt67Cu9dhfeu
wm/QVTi47Xt3/inltYhhWr1wIZc0NSrjE5orixuvoonmXZp7S+1q7qyU6iga
bkaLBP0ARnjQ2ans3Tet+r/eq3LeTGBbo42pHnwXBr+cBH///iP5sBd8/EP3
v3eOg+8/9K98/9GDRWtniYeEEw5qp+CTWdFRFyhEwXzPpZsEqKCTy9Pzc3ky
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
T966Zbcb4RYl4a25Vd+2hbcb5ratvN0AK1t625tu2drbl6O3avHtBrhLq283
yNqW3/bGDQr1vT56+LesgKKWypcWxGB4gaPUjRJ03Lv9DKvSuzaFsVhH4l6A
sGq61vAMXWU5nHOVIXNLU8ZbyW+gLl3MnttUpa8+bMTi2RMiiwXqb6FG3Ot5
vXWFeFA3u11RuHYV8mLl+eTor+eE3FQGUIQbSVbbc7ySsFxzQm+ZxX6E2ckb
HOZdHcxxtH2E89HGEc5H9x/hfLQ6wvnov0SEc8UQh+uGOFw7xNG6IY7ex1l/
W3HWR+/jrO/jrO/jrL/BOOujdxJnPTxeKI9YHmx91BBsPVS/V0erI62uxNxa
61WQ1UUT33awdbM67/Xu0lJDdYv67k2ru5tsumNrCq+/c6Gue11Vd6M9vdQH
XIgHb1DWfcei7qUl3dZBWFHQvVDObcFfX8y9rpQbyBqvU9gg1+Psxj+yoMEd
2rxWu2oVb4/TENcMT0AAvprMXAmVmKDVWP4gVHZN9WiEFq7xQW8dtDkobm3r
inq5Dq/xHtTdWD7iDxKqIVqGePy3+pxLsEEET7GjWEqO/likMqh8ElnFZx4W
3hedLxIE/r29ovOKwN+XnK9Ez2+n4NyTee/Lzf+LlpsLRn8rxeYVSd5TqXnN
xnhfcP6+4PwtFZxvVW6+lSRbFZrftNCc2cp7en2RuXBiY4n5XQvMb1Fe3pyn
2aSwvDFd01xUvgrVVVpgu3LyWxeTry4lv5dC8vsoI19eRC4UtLaEfH0BuT/f
NtXjbzOf8mhJPkU91vh2OwVfThHrfTlB1bRaEtGhMjNEVGLPhuNEMl424O+O
qfYmr+IlphxPXOBVTsXTEroHQwkf7KiGwTE0hv3JMKZFEcYOxxn9e0BO2cQz
7G1fT3TaZ5fSHt6agwEjhfx9ezsAhVxrfSV0EQCUjPoHEPsW1ECAj04UOk+l
uo15r5RzZUEfF1mUJQIanxGZ6wEeCkAHWVEYwLUusLf7sHZarasM5g/ZoQcH
4OdoRA2vqigaLTkcZ5gMThJmD01OPoZaY40nrlYbF9U2ToIEWIfHLTOJvMHf
1i58ayOSGPfGJL9UJkibBK6g+pAEK++yPRqOq8w4TkmAjXWRY9MMxDW39x7M
gA+A5tCtpoeFl2mTxDaSozIjwb0BHgLh+83FMzT8vrx88Zx3BxuAY/XE0BqU
VPAFiO3LuXUZhjn5o6MbQSCTS6daCOwElmLgCswIkUPkgbIoKupYR61mrLgy
eNatmV+Eaz5Rp7ixxo2MjRz8J6PaWPk8+ZIlbqmsgWbw7U0Q08Bdz8+uTl88
f6J+/fWzV09O/3BwtP/mTVu9Orv0L/9p72gPL8Nm6ZCtaY0hgCIHiHURddQL
IMCTl+cO/UzRrpbOUhHTgqzd4ZM3WhD6RTa1CPJ4w/YENC4iA/sF8rODcuZS
gzOARu28lGFtJT/OUTLiAz5wTNxIKmT/jzgTL/qPHz+CRZOdOOs4idVDvxUN
SWB6UA1udNzySR7fhBEHSAQFxgXJhFluwjzOSvatYfa0YAIPC8m9u0wUpjGQ
gukQYtzhTr3gkQLGlU1fDWgJQbojCzEA2rH7IBJDPCkTMqBr0hLD/Ew8YUKK
KZfEFQqhOt+1aQrJpeHSUQRh5QkoyzZZMSFpwJeUdQPYziXtRmLp3FvYw5fn
57udLfY8jCgoEZsRejh0FcwfoiouWdZU5BIhP7K8LVNO8cW/aNQYRYwiDvbz
QsPVPlaVYVwcWRe3UgsctoxI4PBYyNsXZsWKR6W9pmygtze0f3wooQueIdkT
AHTOtsxthxKP2cpSjpuIV4kEU0Mij45U9BhQEFzQVyBqPhM19cx7PtezOoYV
ZdUUyBf3pWMNKXsT/igiEet1Yjovlw52JT0RAREBOaY3cZ6lLPAZ7VI9MvbO
E8aEKUZ0bQ3SBOQQMEtIoSW76TSPx00ymk2ScDqWUb7AGxVuLGNmE8G9ZnQb
QYcwB6tIEvP92PBnrl7WmICdZMyxlqMpDSvAdTAlOkG3AugKt1zIhGAG0V3g
NsaJW75oPh4fFRtZeWATmq4oDusnyIo9jUHi7fzk+cmCaPvgA05QUg4W1dsr
PcTE9KzVosg43YE3kIqQwpbnlCdYuDMIAlBy0TVOdsrmQpINwS5My3EPRcin
O+Qe7IBVh0k2zv5LyeAV+9UsPzmETntO4X7/NBcgOQxAl73EYyyy9oTKYbEf
qid4hq1NCYOvMCiCbGLC6dDanHsHxOz0y8Rgy1q5voemRQCrQzu1z3fQlQuC
5PVTfI7KQOjqV5M+CUFkD5YQCgNESWwrR+yDXj6aVocWbheoBo+QzvIZ3XkJ
ojIaSRVnGSekwJnYL5BZ0qsRiC0qQUAE0i3IO4tLDvb2cRBYJi/npB9OCh44
IdIesogqBfyXVcNe7Ew61qjy5ck+J27oAH06ExfZJNKTomHWPZ51n2e9CH+k
9rwoHDSaCaE9F52rSAkny6ZzIo53mcPa/tRfV7PydDbnK+AAVoASTyLMHwBj
Drm8oJEc62JyCpBGYKKIqY0BR9gCcKa9E09xD+igZNBO6oRyEwZrML7EE8tO
JlGYt8FxyfW1OkuHcVudGVKArzIU0F8DstvqZWgigPZqVAI4IPf+loCGp1VF
Izrp+ssMcPQ0A+8EU+en2AEMjBR8gaGtLkAKhfDz3yiedwLMlmTqSYyBBBIh
l+jpjtTfctBxaYi4QC62ZSpTuMoCNkyvWcziQ2N6awQBNVaMxbka6WTCix+P
naVhyuEQPUfK7/5fFKWYAcjxAAA=

-->

</rfc>
