<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>215155</bug_id>
          
          <creation_ts>2020-08-04 20:01:53 -0700</creation_ts>
          <short_desc>[macOS] Date inputs should contain editable components</short_desc>
          <delta_ts>2020-08-31 07:25:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>119175</blocked>
    
    <blocked>215938</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Aditya Keerthi">akeerthi</reporter>
          <assigned_to name="Aditya Keerthi">akeerthi</assigned_to>
          <cc>bdakin</cc>
    
    <cc>bhargavsivapuram802</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>macpherson</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>m.kurz+webkitbugs</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1677863</commentid>
    <comment_count>0</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-04 20:01:53 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677868</commentid>
    <comment_count>1</comment_count>
      <attachid>405979</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-04 20:29:16 -0700</bug_when>
    <thetext>Created attachment 405979
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677871</commentid>
    <comment_count>2</comment_count>
      <attachid>405980</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-04 20:45:53 -0700</bug_when>
    <thetext>Created attachment 405980
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678000</commentid>
    <comment_count>3</comment_count>
      <attachid>406019</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-05 11:44:24 -0700</bug_when>
    <thetext>Created attachment 406019
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678071</commentid>
    <comment_count>4</comment_count>
      <attachid>406019</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-08-05 14:07:30 -0700</bug_when>
    <thetext>Comment on attachment 406019
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=406019&amp;action=review

&gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp:165
&gt; +#if PLATFORM(MAC)
&gt; +    if (!m_dateTimeEditElement)
&gt; +        return;
&gt; +
&gt; +    DateTimeEditElement::LayoutParameters layoutParameters(element()-&gt;locale());
&gt; +    setupLayoutParameters(layoutParameters);
&gt; +
&gt; +    if (!DateTimeFormatValidator().validateFormat(layoutParameters.dateTimeFormat, *this))
&gt; +        layoutParameters.dateTimeFormat = layoutParameters.fallbackDateTimeFormat;
&gt; +
&gt; +    auto date = parseToDateComponents(element()-&gt;value());
&gt; +    if (!date)
&gt; +        m_dateTimeEditElement-&gt;setEmptyValue(layoutParameters);
&gt; +    else
&gt; +        m_dateTimeEditElement-&gt;setValueAsDate(layoutParameters, *date);
&gt; +#else

We should try to figure out a way to do this without adding PLATFORM(MAC) checks in here. Ideally, this would be something that can exist on all platforms, controlled at runtime, and enabled for Mac.

At the very least, we should figure out how to make this theme based.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678147</commentid>
    <comment_count>5</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-05 17:14:47 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #4)
&gt; Comment on attachment 406019 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=406019&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp:165
&gt; &gt; +#if PLATFORM(MAC)
&gt; &gt; +    if (!m_dateTimeEditElement)
&gt; &gt; +        return;
&gt; &gt; +
&gt; &gt; +    DateTimeEditElement::LayoutParameters layoutParameters(element()-&gt;locale());
&gt; &gt; +    setupLayoutParameters(layoutParameters);
&gt; &gt; +
&gt; &gt; +    if (!DateTimeFormatValidator().validateFormat(layoutParameters.dateTimeFormat, *this))
&gt; &gt; +        layoutParameters.dateTimeFormat = layoutParameters.fallbackDateTimeFormat;
&gt; &gt; +
&gt; &gt; +    auto date = parseToDateComponents(element()-&gt;value());
&gt; &gt; +    if (!date)
&gt; &gt; +        m_dateTimeEditElement-&gt;setEmptyValue(layoutParameters);
&gt; &gt; +    else
&gt; &gt; +        m_dateTimeEditElement-&gt;setValueAsDate(layoutParameters, *date);
&gt; &gt; +#else
&gt; 
&gt; We should try to figure out a way to do this without adding PLATFORM(MAC)
&gt; checks in here. Ideally, this would be something that can exist on all
&gt; platforms, controlled at runtime, and enabled for Mac.
&gt; 
&gt; At the very least, we should figure out how to make this theme based.

What do you think of replacing the PLATFORM(MAC) check here with a RuntimeEnabledFeatures check? This method is the only one that will require such a check – and the other PLATFORM(MAC) checks can be removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678159</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-08-05 17:47:29 -0700</bug_when>
    <thetext>(In reply to Aditya Keerthi from comment #5)
&gt; (In reply to Sam Weinig from comment #4)
&gt; &gt; Comment on attachment 406019 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=406019&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp:165
&gt; &gt; &gt; +#if PLATFORM(MAC)
&gt; &gt; &gt; +    if (!m_dateTimeEditElement)
&gt; &gt; &gt; +        return;
&gt; &gt; &gt; +
&gt; &gt; &gt; +    DateTimeEditElement::LayoutParameters layoutParameters(element()-&gt;locale());
&gt; &gt; &gt; +    setupLayoutParameters(layoutParameters);
&gt; &gt; &gt; +
&gt; &gt; &gt; +    if (!DateTimeFormatValidator().validateFormat(layoutParameters.dateTimeFormat, *this))
&gt; &gt; &gt; +        layoutParameters.dateTimeFormat = layoutParameters.fallbackDateTimeFormat;
&gt; &gt; &gt; +
&gt; &gt; &gt; +    auto date = parseToDateComponents(element()-&gt;value());
&gt; &gt; &gt; +    if (!date)
&gt; &gt; &gt; +        m_dateTimeEditElement-&gt;setEmptyValue(layoutParameters);
&gt; &gt; &gt; +    else
&gt; &gt; &gt; +        m_dateTimeEditElement-&gt;setValueAsDate(layoutParameters, *date);
&gt; &gt; &gt; +#else
&gt; &gt; 
&gt; &gt; We should try to figure out a way to do this without adding PLATFORM(MAC)
&gt; &gt; checks in here. Ideally, this would be something that can exist on all
&gt; &gt; platforms, controlled at runtime, and enabled for Mac.
&gt; &gt; 
&gt; &gt; At the very least, we should figure out how to make this theme based.
&gt; 
&gt; What do you think of replacing the PLATFORM(MAC) check here with a
&gt; RuntimeEnabledFeatures check? This method is the only one that will require
&gt; such a check – and the other PLATFORM(MAC) checks can be removed.

What would the name of check be? Why does this need to be conditionalized at all?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678162</commentid>
    <comment_count>7</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-08-05 17:58:24 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #6)
&gt; (In reply to Aditya Keerthi from comment #5)
&gt; &gt; (In reply to Sam Weinig from comment #4)
&gt; &gt; &gt; Comment on attachment 406019 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=406019&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp:165
&gt; &gt; &gt; &gt; +#if PLATFORM(MAC)
&gt; &gt; &gt; &gt; +    if (!m_dateTimeEditElement)
&gt; &gt; &gt; &gt; +        return;
&gt; &gt; &gt; &gt; +
&gt; &gt; &gt; &gt; +    DateTimeEditElement::LayoutParameters layoutParameters(element()-&gt;locale());
&gt; &gt; &gt; &gt; +    setupLayoutParameters(layoutParameters);
&gt; &gt; &gt; &gt; +
&gt; &gt; &gt; &gt; +    if (!DateTimeFormatValidator().validateFormat(layoutParameters.dateTimeFormat, *this))
&gt; &gt; &gt; &gt; +        layoutParameters.dateTimeFormat = layoutParameters.fallbackDateTimeFormat;
&gt; &gt; &gt; &gt; +
&gt; &gt; &gt; &gt; +    auto date = parseToDateComponents(element()-&gt;value());
&gt; &gt; &gt; &gt; +    if (!date)
&gt; &gt; &gt; &gt; +        m_dateTimeEditElement-&gt;setEmptyValue(layoutParameters);
&gt; &gt; &gt; &gt; +    else
&gt; &gt; &gt; &gt; +        m_dateTimeEditElement-&gt;setValueAsDate(layoutParameters, *date);
&gt; &gt; &gt; &gt; +#else
&gt; &gt; &gt; 
&gt; &gt; &gt; We should try to figure out a way to do this without adding PLATFORM(MAC)
&gt; &gt; &gt; checks in here. Ideally, this would be something that can exist on all
&gt; &gt; &gt; platforms, controlled at runtime, and enabled for Mac.
&gt; &gt; &gt; 
&gt; &gt; &gt; At the very least, we should figure out how to make this theme based.
&gt; &gt; 
&gt; &gt; What do you think of replacing the PLATFORM(MAC) check here with a
&gt; &gt; RuntimeEnabledFeatures check? This method is the only one that will require
&gt; &gt; such a check – and the other PLATFORM(MAC) checks can be removed.
&gt; 
&gt; What would the name of check be? Why does this need to be conditionalized at
&gt; all?

(but yes, that does seem like the right direction, though I would Settings instead of RuntimeEnabledFeatures. RuntimeEnabledFeatures should only be used as a last resort if you don&apos;t have access to the Page or Document. RuntimeEnabledFeatures is a global singleton, so does not allow for process sharing, which will no doubt bite us soon enough).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678182</commentid>
    <comment_count>8</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-05 19:31:17 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #6)
&gt; (In reply to Aditya Keerthi from comment #5)
&gt; &gt; (In reply to Sam Weinig from comment #4)
&gt; &gt; &gt; Comment on attachment 406019 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=406019&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp:165
&gt; &gt; &gt; &gt; +#if PLATFORM(MAC)
&gt; &gt; &gt; &gt; +    if (!m_dateTimeEditElement)
&gt; &gt; &gt; &gt; +        return;
&gt; &gt; &gt; &gt; +
&gt; &gt; &gt; &gt; +    DateTimeEditElement::LayoutParameters layoutParameters(element()-&gt;locale());
&gt; &gt; &gt; &gt; +    setupLayoutParameters(layoutParameters);
&gt; &gt; &gt; &gt; +
&gt; &gt; &gt; &gt; +    if (!DateTimeFormatValidator().validateFormat(layoutParameters.dateTimeFormat, *this))
&gt; &gt; &gt; &gt; +        layoutParameters.dateTimeFormat = layoutParameters.fallbackDateTimeFormat;
&gt; &gt; &gt; &gt; +
&gt; &gt; &gt; &gt; +    auto date = parseToDateComponents(element()-&gt;value());
&gt; &gt; &gt; &gt; +    if (!date)
&gt; &gt; &gt; &gt; +        m_dateTimeEditElement-&gt;setEmptyValue(layoutParameters);
&gt; &gt; &gt; &gt; +    else
&gt; &gt; &gt; &gt; +        m_dateTimeEditElement-&gt;setValueAsDate(layoutParameters, *date);
&gt; &gt; &gt; &gt; +#else
&gt; &gt; &gt; 
&gt; &gt; &gt; We should try to figure out a way to do this without adding PLATFORM(MAC)
&gt; &gt; &gt; checks in here. Ideally, this would be something that can exist on all
&gt; &gt; &gt; platforms, controlled at runtime, and enabled for Mac.
&gt; &gt; &gt; 
&gt; &gt; &gt; At the very least, we should figure out how to make this theme based.
&gt; &gt; 
&gt; &gt; What do you think of replacing the PLATFORM(MAC) check here with a
&gt; &gt; RuntimeEnabledFeatures check? This method is the only one that will require
&gt; &gt; such a check – and the other PLATFORM(MAC) checks can be removed.
&gt; 
&gt; What would the name of check be?

This functionality was formerly referred to as INPUT_MULTIPLE_FIELDS_UI, so maybe DateTimeMultipleFieldsUI?
 
&gt; Why does this need to be conditionalized at all?

There are two reasons why this should be conditionalized.

1. The feature is under active development and leaves date/time inputs in a partially completed state.

2. The feature does not make sense given current iOS behaviour. On iOS, focusing on date/time inputs presents a picker in a fullscreen overlay, and individual editable fields would be inaccessible. Furthermore, iOS date/time controls have a very different appearance. That said, we could probably eventually enable this feature on iOS and make additional (platform-specific) stylesheet changes to preserve appearance, even if the functionality is inaccessible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678264</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-08-06 09:06:56 -0700</bug_when>
    <thetext>(In reply to Aditya Keerthi from comment #8)
&gt; (In reply to Sam Weinig from comment #6)
&gt; &gt; (In reply to Aditya Keerthi from comment #5)
&gt; &gt; &gt; (In reply to Sam Weinig from comment #4)
&gt; &gt; &gt; &gt; Comment on attachment 406019 [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; View in context:
&gt; &gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=406019&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp:165
&gt; &gt; &gt; &gt; &gt; +#if PLATFORM(MAC)
&gt; &gt; &gt; &gt; &gt; +    if (!m_dateTimeEditElement)
&gt; &gt; &gt; &gt; &gt; +        return;
&gt; &gt; &gt; &gt; &gt; +
&gt; &gt; &gt; &gt; &gt; +    DateTimeEditElement::LayoutParameters layoutParameters(element()-&gt;locale());
&gt; &gt; &gt; &gt; &gt; +    setupLayoutParameters(layoutParameters);
&gt; &gt; &gt; &gt; &gt; +
&gt; &gt; &gt; &gt; &gt; +    if (!DateTimeFormatValidator().validateFormat(layoutParameters.dateTimeFormat, *this))
&gt; &gt; &gt; &gt; &gt; +        layoutParameters.dateTimeFormat = layoutParameters.fallbackDateTimeFormat;
&gt; &gt; &gt; &gt; &gt; +
&gt; &gt; &gt; &gt; &gt; +    auto date = parseToDateComponents(element()-&gt;value());
&gt; &gt; &gt; &gt; &gt; +    if (!date)
&gt; &gt; &gt; &gt; &gt; +        m_dateTimeEditElement-&gt;setEmptyValue(layoutParameters);
&gt; &gt; &gt; &gt; &gt; +    else
&gt; &gt; &gt; &gt; &gt; +        m_dateTimeEditElement-&gt;setValueAsDate(layoutParameters, *date);
&gt; &gt; &gt; &gt; &gt; +#else
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; We should try to figure out a way to do this without adding PLATFORM(MAC)
&gt; &gt; &gt; &gt; checks in here. Ideally, this would be something that can exist on all
&gt; &gt; &gt; &gt; platforms, controlled at runtime, and enabled for Mac.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; At the very least, we should figure out how to make this theme based.
&gt; &gt; &gt; 
&gt; &gt; &gt; What do you think of replacing the PLATFORM(MAC) check here with a
&gt; &gt; &gt; RuntimeEnabledFeatures check? This method is the only one that will require
&gt; &gt; &gt; such a check – and the other PLATFORM(MAC) checks can be removed.
&gt; &gt; 
&gt; &gt; What would the name of check be?
&gt; 
&gt; This functionality was formerly referred to as INPUT_MULTIPLE_FIELDS_UI, so
&gt; maybe DateTimeMultipleFieldsUI?

DateTimeMultipleFieldsUI doesn&apos;t really tell me what this is. I think we need more iteration on the name.

&gt;  
&gt; &gt; Why does this need to be conditionalized at all?
&gt; 
&gt; There are two reasons why this should be conditionalized.
&gt; 
&gt; 1. The feature is under active development and leaves date/time inputs in a
&gt; partially completed state.
&gt; 
&gt; 2. The feature does not make sense given current iOS behaviour. On iOS,
&gt; focusing on date/time inputs presents a picker in a fullscreen overlay, and
&gt; individual editable fields would be inaccessible. Furthermore, iOS date/time
&gt; controls have a very different appearance. That said, we could probably
&gt; eventually enable this feature on iOS and make additional
&gt; (platform-specific) stylesheet changes to preserve appearance, even if the
&gt; functionality is inaccessible.

If we intend to keep this difference, it should be clear in the code and in the name of the conditionals. Rather than thinking about this as iOS vs. macOS, try to think about this as different behaviors. If you ever find yourself using a PLATFORM() check, really ask yourself if this is the best way to make this check. It probably isn&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678310</commentid>
    <comment_count>10</comment_count>
      <attachid>406094</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-06 11:17:23 -0700</bug_when>
    <thetext>Created attachment 406094
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678312</commentid>
    <comment_count>11</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-06 11:19:19 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #9)
&gt; (In reply to Aditya Keerthi from comment #8)
&gt; &gt; (In reply to Sam Weinig from comment #6)
&gt; &gt; &gt; (In reply to Aditya Keerthi from comment #5)
&gt; &gt; &gt; &gt; (In reply to Sam Weinig from comment #4)
&gt; &gt; &gt; &gt; &gt; Comment on attachment 406019 [details]
&gt; &gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; View in context:
&gt; &gt; &gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=406019&amp;action=review
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp:165
&gt; &gt; &gt; &gt; &gt; &gt; +#if PLATFORM(MAC)
&gt; &gt; &gt; &gt; &gt; &gt; +    if (!m_dateTimeEditElement)
&gt; &gt; &gt; &gt; &gt; &gt; +        return;
&gt; &gt; &gt; &gt; &gt; &gt; +
&gt; &gt; &gt; &gt; &gt; &gt; +    DateTimeEditElement::LayoutParameters layoutParameters(element()-&gt;locale());
&gt; &gt; &gt; &gt; &gt; &gt; +    setupLayoutParameters(layoutParameters);
&gt; &gt; &gt; &gt; &gt; &gt; +
&gt; &gt; &gt; &gt; &gt; &gt; +    if (!DateTimeFormatValidator().validateFormat(layoutParameters.dateTimeFormat, *this))
&gt; &gt; &gt; &gt; &gt; &gt; +        layoutParameters.dateTimeFormat = layoutParameters.fallbackDateTimeFormat;
&gt; &gt; &gt; &gt; &gt; &gt; +
&gt; &gt; &gt; &gt; &gt; &gt; +    auto date = parseToDateComponents(element()-&gt;value());
&gt; &gt; &gt; &gt; &gt; &gt; +    if (!date)
&gt; &gt; &gt; &gt; &gt; &gt; +        m_dateTimeEditElement-&gt;setEmptyValue(layoutParameters);
&gt; &gt; &gt; &gt; &gt; &gt; +    else
&gt; &gt; &gt; &gt; &gt; &gt; +        m_dateTimeEditElement-&gt;setValueAsDate(layoutParameters, *date);
&gt; &gt; &gt; &gt; &gt; &gt; +#else
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; We should try to figure out a way to do this without adding PLATFORM(MAC)
&gt; &gt; &gt; &gt; &gt; checks in here. Ideally, this would be something that can exist on all
&gt; &gt; &gt; &gt; &gt; platforms, controlled at runtime, and enabled for Mac.
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; At the very least, we should figure out how to make this theme based.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; What do you think of replacing the PLATFORM(MAC) check here with a
&gt; &gt; &gt; &gt; RuntimeEnabledFeatures check? This method is the only one that will require
&gt; &gt; &gt; &gt; such a check – and the other PLATFORM(MAC) checks can be removed.
&gt; &gt; &gt; 
&gt; &gt; &gt; What would the name of check be?
&gt; &gt; 
&gt; &gt; This functionality was formerly referred to as INPUT_MULTIPLE_FIELDS_UI, so
&gt; &gt; maybe DateTimeMultipleFieldsUI?
&gt; 
&gt; DateTimeMultipleFieldsUI doesn&apos;t really tell me what this is. I think we
&gt; need more iteration on the name.

I named the preference DateTimeInputsEditableComponentsEnabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678593</commentid>
    <comment_count>12</comment_count>
      <attachid>406094</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-08-07 08:37:58 -0700</bug_when>
    <thetext>Comment on attachment 406094
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=406094&amp;action=review

This is looking way better, thanks!

&gt; Source/WebCore/css/html.css:490
&gt; +input::-webkit-datetime-edit {
&gt; +    display: inline-block;
&gt; +    overflow: hidden;
&gt; +}

Are these pseudo elements accessible by the main document (I think they are, but I can&apos;t recall completely). If so, can we add some tests for them?

&gt; Source/WebCore/css/html.css:506
&gt; +    background-color: -apple-system-control-accent;

Is there a non-apple specific value we can use here so that this can work for all ports?

&gt; Source/WebCore/html/MonthInputType.cpp:140
&gt; +

No need for this newline.

&gt; Source/WebCore/html/TimeInputType.cpp:116
&gt; +

No need for this newline.

&gt; Source/WebCore/html/WeekInputType.cpp:93
&gt; +

No need for this newline.

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:81
&gt; +    const int countForAbbreviatedMonth = 3;
&gt; +    const int countForFullMonth = 4;
&gt; +    const int countForNarrowMonth = 5;

These should be constexpr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678709</commentid>
    <comment_count>13</comment_count>
      <attachid>406203</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-07 13:08:55 -0700</bug_when>
    <thetext>Created attachment 406203
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678712</commentid>
    <comment_count>14</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-07 13:12:14 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #12)
&gt; Comment on attachment 406094 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=406094&amp;action=review
&gt; 
&gt; This is looking way better, thanks!
&gt; 
&gt; &gt; Source/WebCore/css/html.css:490
&gt; &gt; +input::-webkit-datetime-edit {
&gt; &gt; +    display: inline-block;
&gt; &gt; +    overflow: hidden;
&gt; &gt; +}
&gt; 
&gt; Are these pseudo elements accessible by the main document (I think they are,
&gt; but I can&apos;t recall completely). If so, can we add some tests for them?

Added a test.

&gt; &gt; Source/WebCore/css/html.css:506
&gt; &gt; +    background-color: -apple-system-control-accent;
&gt; 
&gt; Is there a non-apple specific value we can use here so that this can work
&gt; for all ports?

I modified the stylesheet to use &quot;background-color: highlight;&quot; on non-Cocoa ports. There is no concept of an accent color on other ports. I kept &quot;background-color: -apple-system-control-accent;&quot; on Cocoa-ports to match the appearance of system date controls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679693</commentid>
    <comment_count>15</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-11 20:02:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/66879949&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681712</commentid>
    <comment_count>16</comment_count>
      <attachid>406203</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-08-20 09:36:10 -0700</bug_when>
    <thetext>Comment on attachment 406203
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=406203&amp;action=review

&gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp:171
&gt; +    auto date = parseToDateComponents(element()-&gt;value());
&gt; +    if (!date)
&gt; +        m_dateTimeEditElement-&gt;setEmptyValue(layoutParameters);
&gt; +    else
&gt; +        m_dateTimeEditElement-&gt;setValueAsDate(layoutParameters, *date);

Nit - might be a bit cleaner as:


if (auto date = parseToDateComponents(element()-&gt;value()))
    m_dateTimeEditElement-&gt;setValueAsDate(layoutParameters, *date);
else
    m_dateTimeEditElement-&gt;setEmptyValue(layoutParameters);

&gt; Source/WebCore/html/DateInputType.cpp:94
&gt; +    return results.contains(DateTimeFormatValidationResults::HasYear)
&gt; +        &amp;&amp; results.contains(DateTimeFormatValidationResults::HasMonth)
&gt; +        &amp;&amp; results.contains(DateTimeFormatValidationResults::HasDay);

Nit - might be cleaner using OptionSet::containsAll.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682395</commentid>
    <comment_count>17</comment_count>
      <attachid>407112</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-24 10:51:54 -0700</bug_when>
    <thetext>Created attachment 407112
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682596</commentid>
    <comment_count>18</comment_count>
      <attachid>407178</attachid>
    <who name="">bhargavsivapuram802</who>
    <bug_when>2020-08-25 00:24:36 -0700</bug_when>
    <thetext>Created attachment 407178
current  beaviour after upgrading to ios 14 beta in ionic4 application

Just wanted to know is this issue same as the attached screenshot.
(we are not able to edit the time) and wanted to know if the fix is available or should we wait for the next rollout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682659</commentid>
    <comment_count>19</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-25 08:57:52 -0700</bug_when>
    <thetext>(In reply to bhargavsivapuram802 from comment #18)
&gt; Created attachment 407178 [details]
&gt; current  beaviour after upgrading to ios 14 beta in ionic4 application
&gt; 
&gt; Just wanted to know is this issue same as the attached screenshot.
&gt; (we are not able to edit the time) and wanted to know if the fix is
&gt; available or should we wait for the next rollout.

This bug is for macOS work.

Please ensure that you are on the latest beta, and if the issue persists, please file a new bug with reproduction steps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682803</commentid>
    <comment_count>20</comment_count>
      <attachid>407112</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-08-25 14:38:31 -0700</bug_when>
    <thetext>Comment on attachment 407112
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=407112&amp;action=review

Overall this is looking good!  Mainly lots of NITs :)

&gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp:53
&gt; +    void visitField(DateTimeFormat::FieldType, int) final;
&gt; +    void visitLiteral(const String&amp;) final { }

NIT: why not make the entire class `final`?

&gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp:66
&gt; +        break;

Style: I personally like adding newlines after `break` and `return` inside long `switch`, but it&apos;s up to you :)

&gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp:146
&gt; +    if (element()-&gt;document().page() &amp;&amp; element()-&gt;document().page()-&gt;settings().dateTimeInputsEditableComponentsEnabled()) {

Any reason not to just use `element()-&gt;document().settings().dateTimeInputsEditableComponentsEnabled()`?

&gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp:147
&gt; +        m_dateTimeEditElement = DateTimeEditElement::create(element()-&gt;document(), *this);

NIT: you could make local variables for some of these &quot;getters&quot; to avoid repeated invocations
```
auto&amp; element = &amp;this-&gt;element();
auto&amp; document = element.document();
```

&gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp:160
&gt; +    m_dateTimeEditElement = nullptr;

[for my own knowledge] Does this actually remove `DateTimeEditElement` from `element()`?  Or is that not the point of this function?

&gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp:167
&gt; +        RefPtr&lt;Node&gt; node = element()-&gt;userAgentShadowRoot()-&gt;firstChild();

Does this need to be `RefPtr&lt;Node&gt;`, or can it just be `auto`?

&gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp:269
&gt; +    return element()-&gt;computeInheritedLanguage();

Should this also `ASSERT(element());`?

&gt; Source/WebCore/html/DateInputType.h:52
&gt; +    bool isValidFormat(OptionSet&lt;DateTimeFormatValidationResults&gt;) const override;
&gt; +    void setupLayoutParameters(DateTimeEditElement::LayoutParameters&amp;) const override;

should these be `final`?

&gt; Source/WebCore/html/DateTimeLocalInputType.cpp:104
&gt; +    return results.contains(DateTimeFormatValidationResults::HasYear)
&gt; +        &amp;&amp; results.contains(DateTimeFormatValidationResults::HasMonth)
&gt; +        &amp;&amp; results.contains(DateTimeFormatValidationResults::HasDay)
&gt; +        &amp;&amp; results.contains(DateTimeFormatValidationResults::HasHour)
&gt; +        &amp;&amp; results.contains(DateTimeFormatValidationResults::HasMinute);

`containsAll`?

&gt; Source/WebCore/html/DateTimeLocalInputType.h:54
&gt; +    bool isValidFormat(OptionSet&lt;DateTimeFormatValidationResults&gt;) const override;
&gt; +    void setupLayoutParameters(DateTimeEditElement::LayoutParameters&amp;) const override;

should these be `final`?

&gt; Source/WebCore/html/MonthInputType.cpp:139
&gt; +    return results.contains(DateTimeFormatValidationResults::HasYear)
&gt; +        &amp;&amp; results.contains(DateTimeFormatValidationResults::HasMonth);

`containsAll`?

&gt; Source/WebCore/html/MonthInputType.h:57
&gt; +    bool isValidFormat(OptionSet&lt;DateTimeFormatValidationResults&gt;) const override;
&gt; +    void setupLayoutParameters(DateTimeEditElement::LayoutParameters&amp;) const override;

should these be `final`?

&gt; Source/WebCore/html/TimeInputType.cpp:115
&gt; +    return results.contains(DateTimeFormatValidationResults::HasHour)
&gt; +        &amp;&amp; results.contains(DateTimeFormatValidationResults::HasMinute);

`containsAll`?

&gt; Source/WebCore/html/TimeInputType.h:54
&gt; +    bool isValidFormat(OptionSet&lt;DateTimeFormatValidationResults&gt;) const override;
&gt; +    void setupLayoutParameters(DateTimeEditElement::LayoutParameters&amp;) const override;

should these be `final`?

&gt; Source/WebCore/html/WeekInputType.cpp:92
&gt; +    return results.contains(DateTimeFormatValidationResults::HasYear)
&gt; +        &amp;&amp; results.contains(DateTimeFormatValidationResults::HasWeek);

`containsAll`?

&gt; Source/WebCore/html/WeekInputType.h:53
&gt; +    bool isValidFormat(OptionSet&lt;DateTimeFormatValidationResults&gt;) const override;
&gt; +    void setupLayoutParameters(DateTimeEditElement::LayoutParameters&amp;) const override;

should these be `final`?

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:59
&gt; +    void visitField(DateTimeFormat::FieldType, int) final;
&gt; +    void visitLiteral(const String&amp;) final;

NIT: why not make the entire class `final`?

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:104
&gt; +        default: {

NIT: the `{ }` isn&apos;t needed here

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:134
&gt; +DateTimeEditElement::EditControlOwner::~EditControlOwner()
&gt; +{
&gt; +}

` = default;`?

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:146
&gt; +DateTimeEditElement::~DateTimeEditElement()
&gt; +{
&gt; +}

` = default;`?

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:150
&gt; +    ASSERT(firstChild());

If we know that `firstChild()` is valid, can we return an `Element&amp;` instead?

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:187
&gt; +        for (Node* childNode = fieldsWrapper-&gt;firstChild(); childNode; childNode = fieldsWrapper-&gt;firstChild()) {

Why not use `while (auto* childNode = fieldsWrapper-&gt;firstChild())`?

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:223
&gt; +    if (!m_editControlOwner)
&gt; +        return emptyString();
&gt; +    return m_editControlOwner-&gt;valueForEditControl();

NIT: you&apos;ve done this as a ternary in other places; any reason not to here as well?

&gt; Source/WebCore/html/shadow/DateTimeEditElement.h:70
&gt; +    static const size_t invalidFieldIndex = static_cast&lt;size_t&gt;(-1);

this doesn&apos;t appear to be used

&gt; Source/WebCore/html/shadow/DateTimeEditElement.h:72
&gt; +    // Datetime can be represented by at most 8 fields:

day-of-week?  timezone?

&gt; Source/WebCore/html/shadow/DateTimeEditElement.h:81
&gt; +    static const int maximumNumberOfFields = 8;

NIT: `constexpr`?

&gt; Source/WebCore/html/shadow/DateTimeFieldElement.cpp:47
&gt; +DateTimeFieldElement::FieldOwner::~FieldOwner()
&gt; +{
&gt; +}

` = default;`?

&gt; Source/WebCore/html/shadow/DateTimeFieldElement.cpp:76
&gt; +    const String newVisibleValue = visibleValue();

Why is this `const`?

&gt; Source/WebCore/html/shadow/DateTimeFieldElements.cpp:72
&gt; +    setValueAsInteger(date.month() + 1);

NIT: I&apos;d add a comment here explaining why the `+ 1` is needed.

&gt; Source/WebCore/html/shadow/DateTimeFieldElements.h:46
&gt; +    void setValueAsDate(const DateComponents&amp;) final;

NIT: if a class is `final` you don&apos;t need `final` on methods.

&gt; Source/WebCore/html/shadow/DateTimeFieldElements.h:59
&gt; +    void setValueAsDate(const DateComponents&amp;) final;

ditto (:46)

&gt; Source/WebCore/html/shadow/DateTimeFieldElements.h:72
&gt; +    void setValueAsDate(const DateComponents&amp;) final;

ditto (:46)

&gt; Source/WebCore/html/shadow/DateTimeFieldElements.h:85
&gt; +    void setValueAsDate(const DateComponents&amp;) final;

ditto (:46)

&gt; Source/WebCore/html/shadow/DateTimeNumericFieldElement.h:46
&gt; +    void setValueAsInteger(int) override;

NIT: should this be `final`?

&gt; Source/WebCore/html/shadow/DateTimeSymbolicFieldElement.cpp:56
&gt; +    , m_selectedIndex(-1)

NIT: `invalidIndex`?

&gt; Source/WebCore/html/shadow/DateTimeSymbolicFieldElement.cpp:58
&gt; +    ASSERT(!symbols.isEmpty());

NIT: I&apos;d check `m_symbols` as that&apos;s what&apos;s ultimately used by other member functions.

&gt; Source/WebCore/html/shadow/DateTimeSymbolicFieldElement.h:47
&gt; +    static const int invalidIndex = -1;

NIT: `constexpr`?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682899</commentid>
    <comment_count>21</comment_count>
      <attachid>407267</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-25 20:10:42 -0700</bug_when>
    <thetext>Created attachment 407267
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682900</commentid>
    <comment_count>22</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-25 20:20:47 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #20)
&gt; Comment on attachment 407112 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=407112&amp;action=review
&gt; 
&gt; Overall this is looking good!  Mainly lots of NITs :)
&gt;
&gt; &gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp:146
&gt; &gt; +    if (element()-&gt;document().page() &amp;&amp; element()-&gt;document().page()-&gt;settings().dateTimeInputsEditableComponentsEnabled()) {
&gt; 
&gt; Any reason not to just use
&gt; `element()-&gt;document().settings().dateTimeInputsEditableComponentsEnabled()`?

I didn&apos;t realize settings() was accessible from document(). Thanks!
 
&gt; &gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp:160
&gt; &gt; +    m_dateTimeEditElement = nullptr;
&gt; 
&gt; [for my own knowledge] Does this actually remove `DateTimeEditElement` from
&gt; `element()`?  Or is that not the point of this function?

This assignment does not. However, the function should remove `DateTimeEditElement` from `element()`. I added a missing call to `InputType::destroyShadowSubtree()`.
 
&gt; &gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp:167
&gt; &gt; +        RefPtr&lt;Node&gt; node = element()-&gt;userAgentShadowRoot()-&gt;firstChild();
&gt; 
&gt; Does this need to be `RefPtr&lt;Node&gt;`, or can it just be `auto`?

I think `auto` should be fine.
 
&gt; &gt; Source/WebCore/html/shadow/DateTimeEditElement.h:72
&gt; &gt; +    // Datetime can be represented by at most 8 fields:
&gt; 
&gt; day-of-week?  timezone?

Day-of-week is not displayed in any of the five existing date/time controls (date, datetime-local, month, week, time).

Timezone would have been necessary if `&lt;input type=datetime&gt;` wasn&apos;t removed from the spec. However, it is not needed for datetime-local.

&gt; &gt; Source/WebCore/html/shadow/DateTimeNumericFieldElement.h:46
&gt; &gt; +    void setValueAsInteger(int) override;
&gt; 
&gt; NIT: should this be `final`?

Modified to `final` in this patch. This is going to change in a forthcoming patch though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683743</commentid>
    <comment_count>23</comment_count>
      <attachid>407267</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-08-28 12:46:53 -0700</bug_when>
    <thetext>Comment on attachment 407267
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=407267&amp;action=review

&gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp:156
&gt; +    auto&amp; element = *(this-&gt;element());

Nit - no need for parentheses around `this-&gt;element()`.

&gt; Source/WebCore/html/shadow/DateTimeEditElement.h:89
&gt; +    EditControlOwner* m_editControlOwner;

Should m_editControlOwner ever be null? If not, this should be a EditControlOwner&amp;.

&gt; Source/WebCore/html/shadow/DateTimeFieldElement.cpp:73
&gt; +    Text&amp; textNode = downcast&lt;Text&gt;(*firstChild());

Nit - auto&amp;

&gt; Source/WebCore/html/shadow/DateTimeFieldElement.h:64
&gt; +    FieldOwner* m_fieldOwner;

Same as m_editControlOwner — should this be a reference?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683746</commentid>
    <comment_count>24</comment_count>
      <attachid>407267</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-08-28 12:54:12 -0700</bug_when>
    <thetext>Comment on attachment 407267
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=407267&amp;action=review

&gt;&gt; Source/WebCore/html/shadow/DateTimeEditElement.h:89
&gt;&gt; +    EditControlOwner* m_editControlOwner;
&gt; 
&gt; Should m_editControlOwner ever be null? If not, this should be a EditControlOwner&amp;.

(In case this does turn out that this should be a raw pointer, we should initialize it to { nullptr };)

&gt; Source/WebCore/html/shadow/DateTimeNumericFieldElement.h:58
&gt; +    int m_value;
&gt; +    bool m_hasValue;

Nit - I think we prefer to specify initial values here, instead of in the constructors.

&gt; Source/WebCore/html/shadow/DateTimeSymbolicFieldElement.h:58
&gt; +    int m_selectedIndex;

(Ditto w.r.t. the initial value)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683758</commentid>
    <comment_count>25</comment_count>
      <attachid>407499</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-28 14:14:50 -0700</bug_when>
    <thetext>Created attachment 407499
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683760</commentid>
    <comment_count>26</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-28 14:17:53 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #23)
&gt; Comment on attachment 407267 [details]
&gt; Patch
&gt; 
&gt; &gt; Source/WebCore/html/shadow/DateTimeEditElement.h:89
&gt; &gt; +    EditControlOwner* m_editControlOwner;
&gt; 
&gt; Should m_editControlOwner ever be null? If not, this should be a
&gt; EditControlOwner&amp;.

SpinButtonElement uses a similar design as this patch and states that it can outlive its owner during event handling.

To avoid a use-after-free I&apos;ve updated the code to use WeakPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683762</commentid>
    <comment_count>27</comment_count>
      <attachid>407499</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-08-28 14:26:07 -0700</bug_when>
    <thetext>Comment on attachment 407499
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=407499&amp;action=review

r=me, nice work!

One general comment is that there&apos;s a lot of places where you could use `auto` (or `auto&amp;`).  Up to you whether to keep the explicitly written type or not, but I personally like to use `auto` for most things that are obvious from reading surrounding code :)

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:81
&gt; +    constexpr int countForAbbreviatedMonth = 3;
&gt; +    constexpr int countForFullMonth = 4;
&gt; +    constexpr int countForNarrowMonth = 5;

NIT: should we move these inside the `case` for months?

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:108
&gt; +        return;

NIT: why not replace the `break`s above with `return`?

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:135
&gt; +    , m_editControlOwner(makeWeakPtr(&amp;editControlOwner))

I don&apos;t think you need the `&amp;`.  You should be able to `makeWeakPtr` with a reference.

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:204
&gt; +    for (size_t fieldIndex = 0; fieldIndex &lt; m_fields.size(); ++fieldIndex)
&gt; +        m_fields[fieldIndex]-&gt;setValueAsDate(date);

any reason not to use a range-for?
```
    for (auto&amp; field : m_fields)
```

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:211
&gt; +    for (size_t fieldIndex = 0; fieldIndex &lt; m_fields.size(); ++fieldIndex)
&gt; +        m_fields[fieldIndex]-&gt;setEmptyValue();

ditto (:203)

&gt; Source/WebCore/html/shadow/DateTimeFieldElement.cpp:49
&gt; +    , m_fieldOwner(makeWeakPtr(&amp;fieldOwner))

I don&apos;t think you need the `&amp;`.  You should be able to `makeWeakPtr` with a reference.

&gt; Source/WebCore/html/shadow/DateTimeFieldElement.h:66
&gt; +    WeakPtr&lt;FieldOwner&gt; m_fieldOwner;

Is it possible/expected for `m_fieldOwner` to be destroyed before this object is destroyed?  If not, can we just make this a `FieldOwner&amp;` instead?

&gt; Source/WebCore/html/shadow/DateTimeFieldElements.cpp:73
&gt; +    setValueAsInteger(date.month() + 1);

Does this get &quot;transformed&quot; back to 0-based after the user edits it?  If not, should it?

&gt; Source/WebCore/html/shadow/DateTimeNumericFieldElement.h:40
&gt; +    DateTimeNumericFieldElement(Document&amp;, FieldOwner&amp;, const String&amp;);

NIT: the `const String&amp;` should also have parameter name here as it&apos;s not clear what it&apos;s used for

&gt; Source/WebCore/html/shadow/DateTimeSymbolicFieldElement.cpp:44
&gt; +    for (unsigned index = 0; index &lt; symbols.size(); ++index)
&gt; +        maximumLength = std::max(maximumLength, numGraphemeClusters(symbols[index]));

any reason not to use a range-for?
```
    for (auto&amp; symbol : symbols)
```

&gt; Source/WebCore/html/shadow/DateTimeSymbolicFieldElement.cpp:48
&gt; +    for (unsigned length = 0; length &lt; maximumLength; ++length)
&gt; +        builder.append(&apos;-&apos;);

NIT: can we use `pad` to simplify this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683778</commentid>
    <comment_count>28</comment_count>
      <attachid>407503</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-28 14:54:08 -0700</bug_when>
    <thetext>Created attachment 407503
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683780</commentid>
    <comment_count>29</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-28 15:04:10 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #27)
&gt; Comment on attachment 407499 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=407499&amp;action=review
&gt; 
&gt; r=me, nice work!

Thanks for the review!

&gt; &gt; Source/WebCore/html/shadow/DateTimeFieldElement.h:66
&gt; &gt; +    WeakPtr&lt;FieldOwner&gt; m_fieldOwner;
&gt; 
&gt; Is it possible/expected for `m_fieldOwner` to be destroyed before this
&gt; object is destroyed?  If not, can we just make this a `FieldOwner&amp;` instead?

I&apos;m not certain that `m_fieldOwner` cannot outlive this object. To be safe, I&apos;ve kept it as a WeakPtr.
 
&gt; &gt; Source/WebCore/html/shadow/DateTimeFieldElements.cpp:73
&gt; &gt; +    setValueAsInteger(date.month() + 1);
&gt; 
&gt; Does this get &quot;transformed&quot; back to 0-based after the user edits it?  If
&gt; not, should it?

We don&apos;t need to worry about it being transformed back to 0-based, since getting the full value returns a string of the form &quot;yyyy-MM-dd&quot; (not a DateComponents).

In cases where a DateComponents is needed, the &quot;yyyy-MM-dd&quot; string is parsed accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684123</commentid>
    <comment_count>30</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-31 07:25:42 -0700</bug_when>
    <thetext>Committed r266351: &lt;https://trac.webkit.org/changeset/266351&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 407503.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405979</attachid>
            <date>2020-08-04 20:29:16 -0700</date>
            <delta_ts>2020-08-04 20:45:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215155-20200804232915.patch</filename>
            <type>text/plain</type>
            <size>74164</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MDczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRiOWJjMTc5MGVmZDQx
NjcwZjUxYzBlY2YwODJmODU5MjAzZGI5Yy4uNThmMjgzYjlkNzk5N2I2NjRkZDk0ZmQzZmU2Nzkw
NWE2OGViYWJjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzNyBAQAorMjAyMC0wOC0wNCAgQWRp
dHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBEYXRl
IGlucHV0cyBzaG91bGQgY29udGFpbiBlZGl0YWJsZSBjb21wb25lbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUxNTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHksIHVzZXJzIGFyZSB1
bmFibGUgdG8gZWRpdCB0aGUgdmFsdWVzIGluIGRhdGUgYW5kIHRpbWUgaW5wdXQgdHlwZXMuCisg
ICAgICAgIFRvIG1hdGNoIHN5c3RlbSBkYXRlIGNvbnRyb2xzLCB1c2VycyBzaG91bGQgYmUgYWJs
ZSB0byBzZWxlY3QgYW5kIGVkaXQKKyAgICAgICAgaW5kaXZpZHVhbCBjb21wb25lbnRzIG9mIHRo
ZSBpbnB1dC4gRm9yIGV4YW1wbGUsIDxpbnB1dCB0eXBlPSJkYXRlIj4gc2hvdWxkCisgICAgICAg
IGNvbnRhaW4gYW4gZWRpdGFibGUgeWVhciwgbW9udGgsIGFuZCBkYXkgY29udHJvbC4KKworICAg
ICAgICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbmFsaXR5IHdhcyBwcmVzZW50IGluIFdlYktpdCwg
dXAgdW50aWwgaXQgd2FzIHJlbW92ZWQKKyAgICAgICAgaW4gcjE1MDg3Ni4gUHJldmlvdXNseSBr
bm93biBhcyAiSU5QVVRfTVVMVElQTEVfRklFTERTX1VJIiwgdGhlIGZlYXR1cmUgd2FzCisgICAg
ICAgIHJlbW92ZWQgYXMgaXQgd2FzIG9ubHkgdXNlZCBieSBDaHJvbWl1bSBwb3J0LiBIb3dldmVy
LCBtdWNoIG9mIHRoZSByZW1vdmVkCisgICAgICAgIGxvZ2ljIHJlbWFpbnMgdXNlZnVsIGFuZCBp
cyByZXN1cmZhY2VkIGluIHRoaXMgcGF0Y2guIE1vZGlmaWNhdGlvbnMgd2VyZSBtYWRlCisgICAg
ICAgIHRvIHVwZGF0ZSB0aGUgY29kZSB0byBmb2xsb3cgY3VycmVudCBXZWJLaXQgcHJhY3RpY2Vz
LgorCisgICAgICAgIERhdGVUaW1lRWRpdEVsZW1lbnQgaXMgYSB3cmFwcGVyIGVsZW1lbnQgdGhh
dCBjb250YWlucyBpbmRpdmlkdWFsIGZpZWxkcy4KKyAgICAgICAgVGhlIGZpZWxkcyBhcmUgYWxs
IERhdGVUaW1lRmllbGRFbGVtZW50cy4gTm90ZSB0aGF0IERhdGVUaW1lRmllbGRFbGVtZW50cwor
ICAgICAgICBhcmUgZnVydGhlciBzcGVjaWFsaXplZCBpbnRvIERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudCAoZm9yIGludGVncmFsCisgICAgICAgIHZhbHVlcykgYW5kIERhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQgKGZvciBzeW1ib2xpYyB2YWx1ZXMgc3VjaCBhcyBBLk0KKyAgICAgICAg
YW5kIFAuTSkuIERhdGVUaW1lRWRpdEVsZW1lbnQgYnVpbGRzIHRoZSBjb250cm9sIHVzaW5nIHRo
ZSB2aXNpdG9yIHBhdHRlcm4KKyAgICAgICAgYW5kIGV4aXN0aW5nIHBhcnNpbmcgbG9naWMgY29u
dGFpbmVkIGluIERhdGVUaW1lRm9ybWF0LiAKKworICAgICAgICBJbiBvcmRlciB0byByZWR1Y2Ug
dGhlIHBhdGNoIHNpemUsIHRoaXMgcGF0Y2ggb25seSBzZXRzIHVwIHRoZSByZW5kZXJpbmcKKyAg
ICAgICAgYW5kIGxheW91dCBvZiBtdWx0aXBsZSBmaWVsZHMgZm9yIDxpbnB1dCB0eXBlPSJkYXRl
Ij4uIFVwY29taW5nIHBhdGNoZXMgd2lsbAorICAgICAgICBhZGQgcmVuZGVyaW5nIGZvciBvdGhl
ciBkYXRlL3RpbWUgaW5wdXQgdHlwZXMgYW5kIGludHJvZHVjZSBlZGl0YWJpbGl0eS4KKworICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBjc3MvaHRtbC5jc3M6CisgICAgICAgIChpbnB1dDo6LXdlYmtp
dC1kYXRldGltZS1lZGl0KToKKyAgICAgICAgKGlucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQt
ZmllbGRzLXdyYXBwZXIpOgorICAgICAgICAoaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15
ZWFyLWZpZWxkLCk6CisgICAgICAgIChpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LXllYXIt
ZmllbGQ6Zm9jdXMsKToKKyAgICAgICAgKGlucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtdGV4
dCk6CisgICAgICAgICogaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZvcm1hdFZhbGlkYXRvcjo6RGF0ZVRpbWVG
b3JtYXRWYWxpZGF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGb3JtYXRWYWxpZGF0
b3I6OnZpc2l0RmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGb3JtYXRWYWxpZGF0
b3I6OnZhbGlkYXRlRm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNv
cmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3Vi
dHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0
VHlwZTo6dXBkYXRlSW5uZXJUZXh0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUNob29z
ZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnZhbHVlRm9yRWRpdENvbnRyb2wgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6Omxv
Y2FsZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIGh0bWwvQmFzZUNob29zZXJPbmx5RGF0
ZUFuZFRpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0
VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEYXRlSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVJbnB1dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyBjb25zdCk6CisgICAgICAg
ICogaHRtbC9EYXRlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9EYXRlVGltZUxvY2FsSW5w
dXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTG9jYWxJbnB1dFR5cGU6Omlz
VmFsaWRGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVMb2NhbElucHV0
VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0RhdGVU
aW1lTG9jYWxJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMg
Y29uc3QpOgorICAgICAgICAqIGh0bWwvTW9udGhJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1s
L1RpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6aXNW
YWxpZEZvcm1hdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpzZXR1
cExheW91dFBhcmFtZXRlcnMgY29uc3QpOgorICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5o
OgorICAgICAgICAqIGh0bWwvV2Vla0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
ZWVrSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Oldl
ZWtJbnB1dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyBjb25zdCk6CisgICAgICAgICogaHRt
bC9XZWVrSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxl
bWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0QnVpbGRlcjo6
RGF0ZVRpbWVFZGl0QnVpbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRCdWls
ZGVyOjpidWlsZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNp
dEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEJ1aWxkZXI6OnZpc2l0TGl0
ZXJhbCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpFZGl0Q29udHJv
bE93bmVyOjp+RWRpdENvbnRyb2xPd25lcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVk
aXRFbGVtZW50OjpEYXRlVGltZUVkaXRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6On5EYXRlVGltZUVkaXRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZpZWxkc1dyYXBwZXJFbGVtZW50IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmFkZEZpZWxkKToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUVkaXRFbGVtZW50OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVF
ZGl0RWxlbWVudDo6bG9jYWxlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUVkaXRFbGVtZW50OjpyZXNldEZpZWxkcyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUVkaXRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUVkaXRFbGVtZW50OjpzZXRFbXB0eVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRl
VGltZUVkaXRFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1l
RmllbGRFbGVtZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxk
RWxlbWVudDo6RmllbGRPd25lcjo6fkZpZWxkT3duZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lRmllbGRFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lRmllbGRFbGVtZW50Ojppbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lRmllbGRFbGVtZW50Ojpsb2NhbGVGb3JPd25lciBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6bG9jYWxlSWRlbnRpZmllciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6dXBkYXRlVmlzaWJsZVZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50OjpzdXBwb3J0c0ZvY3Vz
IGNvbnN0KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRGF5RmllbGRFbGVtZW50OjpEYXRlVGlt
ZURheUZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZURheUZpZWxkRWxl
bWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRGF5RmllbGRFbGVtZW50
OjpzZXRWYWx1ZUFzRGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU1vbnRoRmllbGRF
bGVtZW50OjpEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZU1vbnRoRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lU3ltYm9saWNNb250
aEZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljTW9udGhG
aWVsZEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGlj
TW9udGhGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVUaW1lWWVhckZpZWxkRWxlbWVudDo6RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVUaW1lWWVhckZpZWxkRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVUaW1lWWVhckZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUpOgorICAg
ICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5oOiBBZGRlZC4KKyAgICAg
ICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJpY0Zp
ZWxkRWxlbWVudDo6Zm9ybWF0VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVOdW1lcmljRmllbGRFbGVtZW50OjpoYXNWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpzZXRFbXB0eVZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0ludGVn
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojp2YWx1
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6
OnZhbHVlQXNJbnRlZ2VyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJp
Y0ZpZWxkRWxlbWVudDo6dmlzaWJsZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL3NoYWRv
dy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgICogaHRtbC9z
aGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6bWFrZVZpc2libGVFbXB0eVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6aGFzVmFsdWUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6
aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVt
ZW50OjpzZXRFbXB0eVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNG
aWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNJbnRlZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnZhbHVlQXNJbnRlZ2VyIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnZpc2libGVFbXB0
eVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVs
ZW1lbnQ6OnZpc2libGVWYWx1ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRp
bWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnN5bWJvbHNTaXplIGNvbnN0KToKKwogMjAyMC0wNy0z
MCAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09T
XSBEYXRlL3RpbWUgaW5wdXQgdHlwZXMgc2hvdWxkIGhhdmUgYSB0ZXh0ZmllbGQgYXBwZWFyYW5j
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAppbmRleCA3NTIyODM4N2M1NGY1ZWI2MGNkYjYwYWFiMmM1MTkwYmIxYmI1
NTQwLi5kZDlkMWI0ZGNjYzVjMTA5MWViOWMyYzZkYTAyNTczYzdmYWZiNTA0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dApAQCAtMTMxMCw2ICsxMzEwLDExIEBAIGh0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0
ZS5jcHAKIGh0bWwvc2hhZG93L0F1dG9GaWxsQnV0dG9uRWxlbWVudC5jcHAKIGh0bWwvc2hhZG93
L0RhdGFMaXN0QnV0dG9uRWxlbWVudC5jcHAKIGh0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250
cm9sLmNwcAoraHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKK2h0bWwvc2hhZG93
L0RhdGVUaW1lRmllbGRFbGVtZW50LmNwcAoraHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1l
bnRzLmNwcAoraHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcAoraHRt
bC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAKIGh0bWwvc2hhZG93L01l
ZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwCiBodG1sL3NoYWRvdy9Qcm9n
cmVzc1NoYWRvd0VsZW1lbnQuY3BwCiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggZjg0YmU0NzVkNjFjM2ZlNDExZTNmMjI4Y2ZkNWUwZDlkMjdjZmM3OC4uMGNiODVjMmJi
ZGZmZmNhMWM0NDZiZDFhNzI4NzU4ZWJkOTgxMTA0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA1Niw2ICs1MDU2LDExIEBA
CiAJCUU1OURENEI4MjEwOTgyODcwMDNDOEI0NyAvKiBMaXN0QnV0dG9uQXJyb3cucG5nIGluIFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTlERDRCNzIxMDk4
Mjg1MDAzQzhCNDcgLyogTGlzdEJ1dHRvbkFycm93LnBuZyAqLzsgfTsKIAkJRTVCQTdENjMxNTE0
MzdDQTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVCQTdENjIxNTE0MzdDQTAwRkUxRTNGIC8qIExlbmd0
aEZ1bmN0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUU1QzU5QTlBMjREMEUxQUEwMDNCODZFMSAvKiBEYXRlVGltZUNob29zZXJQYXJhbWV0
ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUM1
OUE5OTI0RDBFMUFBMDAzQjg2RTEgLyogRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUU1RjA2QUU3MjRE
NDg0N0IwMEJCQzRGOCAvKiBEYXRlVGltZUZpZWxkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVGMDZBRTUyNEQ0ODQ3QjAwQkJDNEY4IC8q
IERhdGVUaW1lRmllbGRFbGVtZW50LmggKi87IH07CisJCUU1RjA2QUVCMjRENDlCRjcwMEJCQzRG
OCAvKiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1RjA2QUU5MjRENDlCRjcwMEJCQzRGOCAvKiBEYXRl
VGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCAqLzsgfTsKKwkJRTVGMDZBRUYyNEQ0QTYzNzAwQkJD
NEY4IC8qIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1RjA2QUVEMjRENEE2MzcwMEJCQzRGOCAvKiBE
YXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmggKi87IH07CisJCUU1RjA2QUYzMjRENEFBRTQw
MEJCQzRGOCAvKiBEYXRlVGltZUZpZWxkRWxlbWVudHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1RjA2QUYxMjRENEFBRTQwMEJCQzRGOCAvKiBEYXRl
VGltZUZpZWxkRWxlbWVudHMuaCAqLzsgfTsKKwkJRTVGMDZBRjcyNEQ0QkI1NjAwQkJDNEY4IC8q
IERhdGVUaW1lRWRpdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU1RjA2QUY1MjRENEJCNTYwMEJCQzRGOCAvKiBEYXRlVGltZUVkaXRFbGVt
ZW50LmggKi87IH07CiAJCUU3MTQ2N0IzMjRBQkFFRjIwMEZCMkY1MCAvKiBBdWRpb05vZGVPcHRp
b25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzE0
NjdCMTI0QUJBRUYxMDBGQjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5oICovOyB9OwogCQlFNzE0
NjdCNjI0QUJBRjFEMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTcxNDY3QjUyNEFCQUYxRDAwRkIyRjUwIC8q
IFBhbm5lck9wdGlvbnMuaCAqLzsgfTsKIAkJRTc1NUU4OTIyNEM3NDM0QjAwOUY3QzIzIC8qIFBl
cmlvZGljV2F2ZUNvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNzU1RTg4RjI0Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlQ29u
c3RyYWludHMuaCAqLzsgfTsKQEAgLTE1ODM1LDYgKzE1ODQwLDE2IEBACiAJCUU1OURENEI3MjEw
OTgyODUwMDNDOEI0NyAvKiBMaXN0QnV0dG9uQXJyb3cucG5nICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gTGlzdEJ1dHRv
bkFycm93LnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTVCQTdENjIxNTE0MzdD
QTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBMZW5ndGhGdW5jdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTVDNTlBOTkyNEQwRTFBQTAwM0I4NkUxIC8qIERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVy
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNUYwNkFFNTI0RDQ4NDdCMDBCQkM0
RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0ZVRpbWVGaWVs
ZEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVGMDZBRTYyNEQ0ODQ3
QjAwQkJDNEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IERhdGVUaW1lRmllbGRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTVGMDZBRTkyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVGMDZBRUEyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRlVGltZU51bWVy
aWNGaWVsZEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNUYwNkFF
RDI0RDRBNjM3MDBCQkM0RjggLyogRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUU1RjA2QUVFMjRENEE2MzcwMEJCQzRGOCAvKiBEYXRlVGltZVN5bWJv
bGljRmllbGRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhdGVUaW1lU3ltYm9saWNG
aWVsZEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNUYwNkFGMTI0
RDRBQUU0MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERhdGVUaW1lRmllbGRFbGVtZW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
NUYwNkFGMjI0RDRBQUU0MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IERhdGVUaW1lRmllbGRFbGVtZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUU1RjA2QUY1MjRENEJCNTYwMEJCQzRGOCAvKiBEYXRlVGltZUVkaXRF
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGVUaW1lRWRpdEVsZW1lbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVGMDZBRjYyNEQ0QkI1NjAwQkJDNEY4IC8qIERhdGVUaW1l
RWRpdEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGF0ZVRpbWVFZGl0RWxlbWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU3MTQ2N0IxMjRBQkFFRjEwMEZCMkY1
MCAvKiBBdWRpb05vZGVPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEF1ZGlvTm9kZU9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTcxNDY3
QjQyNEFCQUYwQjAwRkIyRjUwIC8qIEF1ZGlvTm9kZU9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEF1ZGlvTm9k
ZU9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNzE0NjdCNTI0QUJB
RjFEMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQYW5uZXJPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
ODU2OCw2ICsxODU4MywxNiBAQAogCQkJCTdDMUU5NzI1MUE5Rjk4MzQwMDdCRjBGQiAvKiBBdXRv
RmlsbEJ1dHRvbkVsZW1lbnQuY3BwICovLAogCQkJCTdDMUU5NzI2MUE5Rjk4MzQwMDdCRjBGQiAv
KiBBdXRvRmlsbEJ1dHRvbkVsZW1lbnQuaCAqLywKIAkJCQlFNThCNDVCODIwQUQwN0REMDA5OTEw
MjUgLyogRGF0YUxpc3RCdXR0b25FbGVtZW50LmggKi8sCisJCQkJRTVGMDZBRjYyNEQ0QkI1NjAw
QkJDNEY4IC8qIERhdGVUaW1lRWRpdEVsZW1lbnQuY3BwICovLAorCQkJCUU1RjA2QUY1MjRENEJC
NTYwMEJCQzRGOCAvKiBEYXRlVGltZUVkaXRFbGVtZW50LmggKi8sCisJCQkJRTVGMDZBRTYyNEQ0
ODQ3QjAwQkJDNEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50LmNwcCAqLywKKwkJCQlFNUYwNkFF
NTI0RDQ4NDdCMDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCAqLywKKwkJCQlFNUYw
NkFGMjI0RDRBQUU0MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcCAqLywKKwkJ
CQlFNUYwNkFGMTI0RDRBQUU0MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmggKi8s
CisJCQkJRTVGMDZBRUEyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxl
bWVudC5jcHAgKi8sCisJCQkJRTVGMDZBRTkyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1lTnVt
ZXJpY0ZpZWxkRWxlbWVudC5oICovLAorCQkJCUU1RjA2QUVFMjRENEE2MzcwMEJCQzRGOCAvKiBE
YXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcCAqLywKKwkJCQlFNUYwNkFFRDI0RDRBNjM3
MDBCQkM0RjggLyogRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oICovLAogCQkJCUE3QzlB
QkY2MTM1N0EzQkYwMEY1NTAzRiAvKiBEZXRhaWxzTWFya2VyQ29udHJvbC5jcHAgKi8sCiAJCQkJ
QTdDOUFCRjcxMzU3QTNCRjAwRjU1MDNGIC8qIERldGFpbHNNYXJrZXJDb250cm9sLmggKi8sCiAJ
CQkJNTEwMTkyRDMxOEI2QjlCNzAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudC5j
cHAgKi8sCkBAIC0zMDU1OCw4ICszMDU4MywxMyBAQAogCQkJCTM3QzczOEYzMUVEQkRFOEEwMDNG
MkIwQiAvKiBEYXRlVGltZUNob29zZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QzczOEY0MUVE
QkRFOEQwMDNGMkIwQiAvKiBEYXRlVGltZUNob29zZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUU1QzU5QTlBMjREMEUxQUEwMDNCODZFMSAvKiBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJz
LmggaW4gSGVhZGVycyAqLywKKwkJCQlFNUYwNkFGNzI0RDRCQjU2MDBCQkM0RjggLyogRGF0ZVRp
bWVFZGl0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTVGMDZBRTcyNEQ0ODQ3QjAwQkJD
NEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlFNUYwNkFG
MzI0RDRBQUU0MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0NTNFQjYzNzE1OUM1NzA0MDAwMDFCQjcgLyogRGF0ZVRpbWVGb3JtYXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUY1NUIzREJBMTI1MUYxMkQwMDNFRjI2OSAvKiBEYXRlVGltZUxvY2Fs
SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNUYwNkFFQjI0RDQ5QkY3MDBCQkM0Rjgg
LyogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlFNUYw
NkFFRjI0RDRBNjM3MDBCQkM0RjggLyogRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY2QTEyQkUxQTAwOTIzNzAwQzZERTcyIC8qIERlYnVnUGFnZU92
ZXJsYXlzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NUZFQTVEMDE1NkRERThDMDA2NTQxMDEgLyog
RGVjaW1hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzE1QUQ3MjAyMDUwNTEzMjAwRDU5MkRDIC8q
IERlY2xhcmF0aXZlQW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9odG1sLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcwppbmRl
eCBkYWY4OTE5ZWIxNmQ3M2RjN2YwNTlkMzFmMDAzNjNjNWJlODcyMTJlLi5lMGJmZTgxODVjZmIw
ZTc4YTU5MDgzYjc4YjQ2MWY3NTI0MmNkMTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvaHRtbC5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCkBAIC00ODQsNiAr
NDg0LDM0IEBAIGlucHV0Ojotd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFsdWUgewogI2VuZGlmCiB9
CiAKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQgeworICAgIGRpc3BsYXk6IGlubGluZS1i
bG9jazsKKyAgICBvdmVyZmxvdzogaGlkZGVuOworfQorCitpbnB1dDo6LXdlYmtpdC1kYXRldGlt
ZS1lZGl0LWZpZWxkcy13cmFwcGVyIHsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cit9CisK
K2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQteWVhci1maWVsZCwKK2lucHV0Ojotd2Via2l0
LWRhdGV0aW1lLWVkaXQtbW9udGgtZmllbGQsCitpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0
LWRheS1maWVsZCB7CisgICAgZGlzcGxheTogaW5saW5lOworICAgIHBhZGRpbmc6IDFweDsKK30K
KworaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15ZWFyLWZpZWxkOmZvY3VzLAoraW5wdXQ6
Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1tb250aC1maWVsZDpmb2N1cywKK2lucHV0Ojotd2Via2l0
LWRhdGV0aW1lLWVkaXQtZGF5LWZpZWxkOmZvY3VzIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAt
YXBwbGUtc3lzdGVtLWNvbnRyb2wtYWNjZW50OworICAgIGNvbG9yOiB3aGl0ZTsKKyAgICBvdXRs
aW5lOiBub25lOworfQorCitpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LXRleHQgeworICAg
IGRpc3BsYXk6IGlubGluZTsKK30KKwogaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24g
ewogICAgIC13ZWJraXQtYXBwZWFyYW5jZTogaW5uZXItc3Bpbi1idXR0b247CiAgICAgZGlzcGxh
eTogYmxvY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25s
eURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29z
ZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCmluZGV4IDc1MDcwYWQzZDdmNWUyMzEwMWNm
ZDNlYzUzZjJmNDcyYWQ1NjRiNTMuLmM4MmY4MGFjZjRkNTY4NmVjOGE3M2Q0MmE3NWU1OGRjYTIz
NmE1NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0
ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29z
ZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCkBAIC0zMSwxNiArMzEsNzggQEAKIAogI2lu
Y2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkRhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMuaCIK
KyNpbmNsdWRlICJEYXRlVGltZUZvcm1hdC5oIgogI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNs
dWRlICJQbGF0Zm9ybUxvY2FsZS5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNs
dWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlVzZXJHZXN0
dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0b3IgOiBwdWJsaWMg
RGF0ZVRpbWVGb3JtYXQ6OlRva2VuSGFuZGxlciB7CitwdWJsaWM6CisgICAgRGF0ZVRpbWVGb3Jt
YXRWYWxpZGF0b3IoKSB7IH0KKworICAgIHZvaWQgdmlzaXRGaWVsZChEYXRlVGltZUZvcm1hdDo6
RmllbGRUeXBlLCBpbnQpIGZpbmFsOworICAgIHZvaWQgdmlzaXRMaXRlcmFsKGNvbnN0IFN0cmlu
ZyYpIGZpbmFsIHsgfQorCisgICAgYm9vbCB2YWxpZGF0ZUZvcm1hdChjb25zdCBTdHJpbmcmIGZv
cm1hdCwgY29uc3QgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUmKTsKKworcHJp
dmF0ZToKKyAgICBPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4gbV9y
ZXN1bHRzOworfTsKKwordm9pZCBEYXRlVGltZUZvcm1hdFZhbGlkYXRvcjo6dmlzaXRGaWVsZChE
YXRlVGltZUZvcm1hdDo6RmllbGRUeXBlIGZpZWxkVHlwZSwgaW50KQoreworICAgIHN3aXRjaCAo
ZmllbGRUeXBlKSB7CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlWWVhcjoKKyAg
ICAgICAgbV9yZXN1bHRzLmFkZChEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNZ
ZWFyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
TW9udGg6CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTW9udGhTdGFuZEFsb25l
OgorICAgICAgICBtX3Jlc3VsdHMuYWRkKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6
Okhhc01vbnRoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6Rmll
bGRUeXBlV2Vla09mWWVhcjoKKyAgICAgICAgbV9yZXN1bHRzLmFkZChEYXRlVGltZUZvcm1hdFZh
bGlkYXRpb25SZXN1bHRzOjpIYXNXZWVrKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRl
VGltZUZvcm1hdDo6RmllbGRUeXBlRGF5T2ZNb250aDoKKyAgICAgICAgbV9yZXN1bHRzLmFkZChE
YXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNEYXkpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVQZXJpb2Q6CisgICAgICAgIG1fcmVz
dWx0cy5hZGQoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzQU1QTSk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIxMToKKyAg
ICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMTI6CisgICAgICAgIG1fcmVzdWx0
cy5hZGQoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzSG91cik7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIyMzoKKyAgICBj
YXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMjQ6CisgICAgICAgIG1fcmVzdWx0cy5h
ZGQoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzSG91cik7CisgICAgICAgIG1f
cmVzdWx0cy5hZGQoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzQU1QTSk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1pbnV0ZToK
KyAgICAgICAgbV9yZXN1bHRzLmFkZChEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpI
YXNXZWVrKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlU2Vjb25kOgorICAgICAgICBtX3Jlc3VsdHMuYWRkKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlv
blJlc3VsdHM6Okhhc1NlY29uZCk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIGJyZWFrOworICAgIH0KK30KKworYm9vbCBEYXRlVGltZUZvcm1hdFZhbGlkYXRvcjo6dmFs
aWRhdGVGb3JtYXQoY29uc3QgU3RyaW5nJiBmb3JtYXQsIGNvbnN0IEJhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlJiBpbnB1dFR5cGUpCit7CisgICAgaWYgKCFEYXRlVGltZUZvcm1h
dDo6cGFyc2UoZm9ybWF0LCAqdGhpcykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1
cm4gaW5wdXRUeXBlLmlzVmFsaWRGb3JtYXQobV9yZXN1bHRzKTsKK30KKwogQmFzZUNob29zZXJP
bmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6On5CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0
VHlwZSgpCiB7CiAgICAgY2xvc2VEYXRlVGltZUNob29zZXIoKTsKQEAgLTc5LDE4ICsxNDEsNDYg
QEAgYm9vbCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6aXNQcmVzZW50aW5n
QXR0YWNoZWRWaWV3KCkgY29uc3QKIAogdm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlu
cHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2YWx1ZUNvbnRhaW5lclBzZXVkbygiLXdl
YmtpdC1kYXRlLWFuZC10aW1lLXZhbHVlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwotCiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIG1f
ZGF0ZVRpbWVFZGl0RWxlbWVudCA9IERhdGVUaW1lRWRpdEVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50
KCktPmRvY3VtZW50KCksICp0aGlzKTsKKyAgICBlbGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jv
b3QoKS0+YXBwZW5kQ2hpbGQoKm1fZGF0ZVRpbWVFZGl0RWxlbWVudCk7CisjZWxzZQorICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdmFsdWVDb250
YWluZXJQc2V1ZG8oIi13ZWJraXQtZGF0ZS1hbmQtdGltZS12YWx1ZSIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBhdXRvIHZhbHVlQ29udGFpbmVyID0gSFRNTERpdkVs
ZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCkpOwogICAgIHZhbHVlQ29udGFpbmVy
LT5zZXRQc2V1ZG8odmFsdWVDb250YWluZXJQc2V1ZG8pOwogICAgIGVsZW1lbnQoKS0+dXNlckFn
ZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZCh2YWx1ZUNvbnRhaW5lcik7CisjZW5kaWYKKwog
ICAgIHVwZGF0ZUlubmVyVGV4dFZhbHVlKCk7CiB9CiAKK3ZvaWQgQmFzZUNob29zZXJPbmx5RGF0
ZUFuZFRpbWVJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkKK3sKKyNpZiBQTEFURk9S
TShNQUMpCisgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50ID0gbnVsbHB0cjsKKyNlbmRpZgorfQor
CiB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjp1cGRhdGVJbm5lclRl
eHRWYWx1ZSgpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CisjaWYgUExBVEZPUk0oTUFDKQor
ICAgIGlmICghbV9kYXRlVGltZUVkaXRFbGVtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBE
YXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzIGxheW91dFBhcmFtZXRlcnMoZWxl
bWVudCgpLT5sb2NhbGUoKSk7CisgICAgc2V0dXBMYXlvdXRQYXJhbWV0ZXJzKGxheW91dFBhcmFt
ZXRlcnMpOworCisgICAgaWYgKCFEYXRlVGltZUZvcm1hdFZhbGlkYXRvcigpLnZhbGlkYXRlRm9y
bWF0KGxheW91dFBhcmFtZXRlcnMuZGF0ZVRpbWVGb3JtYXQsICp0aGlzKSkKKyAgICAgICAgbGF5
b3V0UGFyYW1ldGVycy5kYXRlVGltZUZvcm1hdCA9IGxheW91dFBhcmFtZXRlcnMuZmFsbGJhY2tE
YXRlVGltZUZvcm1hdDsKKworICAgIGF1dG8gZGF0ZSA9IHBhcnNlVG9EYXRlQ29tcG9uZW50cyhl
bGVtZW50KCktPnZhbHVlKCkpOworICAgIGlmICghZGF0ZSkKKyAgICAgICAgbV9kYXRlVGltZUVk
aXRFbGVtZW50LT5zZXRFbXB0eVZhbHVlKGxheW91dFBhcmFtZXRlcnMpOworICAgIGVsc2UKKyAg
ICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5zZXRWYWx1ZUFzRGF0ZShsYXlvdXRQYXJhbWV0
ZXJzLCAqZGF0ZSk7CisjZWxzZQogICAgIFJlZlB0cjxOb2RlPiBub2RlID0gZWxlbWVudCgpLT51
c2VyQWdlbnRTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKICAgICBpZiAoIWlzPEhUTUxFbGVt
ZW50Pihub2RlKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTAwLDYgKzE5MCw3IEBAIHZvaWQgQmFz
ZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnVwZGF0ZUlubmVyVGV4dFZhbHVlKCkK
ICAgICAgICAgZGlzcGxheVZhbHVlID0gIiAiX3M7CiAgICAgfQogICAgIGRvd25jYXN0PEhUTUxF
bGVtZW50Pigqbm9kZSkuc2V0SW5uZXJUZXh0KGRpc3BsYXlWYWx1ZSk7CisjZW5kaWYKIH0KIAog
dm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3Qg
U3RyaW5nJiB2YWx1ZSwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3Ig
ZXZlbnRCZWhhdmlvcikKQEAgLTE3Miw2ICsyNjMsMTcgQEAgdm9pZCBCYXNlQ2hvb3Nlck9ubHlE
YXRlQW5kVGltZUlucHV0VHlwZTo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JgogICAgIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6YXR0cmlidXRlQ2hhbmdlZChuYW1lKTsK
IH0KIAorU3RyaW5nIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjp2YWx1ZUZv
ckVkaXRDb250cm9sKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoZWxlbWVudCgpKTsKKyAgICByZXR1
cm4gZWxlbWVudCgpLT52YWx1ZSgpOworfQorCitBdG9tU3RyaW5nIEJhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlOjpsb2NhbGVJZGVudGlmaWVyKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gZWxlbWVudCgpLT5jb21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKTsKK30KKwogfQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFu
ZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0
ZUFuZFRpbWVJbnB1dFR5cGUuaAppbmRleCAwYjE5YWI4N2U3NDBkNGQ1NGQ2MjIxZjg5YzdiMTkz
NGZiYjFjZTMxLi42YzY2ZjJkYjQ0YjI1OGJjMDQ5NjQxNTI0ZGI4YTg0MGY1NjUzM2YzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5w
dXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5k
VGltZUlucHV0VHlwZS5oCkBAIC0zMiwyMCArMzIsNDggQEAKICNpbmNsdWRlICJCYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJEYXRlVGltZUNob29zZXIuaCIKICNpbmNsdWRl
ICJEYXRlVGltZUNob29zZXJDbGllbnQuaCIKKyNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CisK
KyNpZiBQTEFURk9STShNQUMpCisjaW5jbHVkZSAiRGF0ZVRpbWVFZGl0RWxlbWVudC5oIgorI2Vu
ZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQmFzZUNob29zZXJPbmx5RGF0ZUFu
ZFRpbWVJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLCBwcml2YXRl
IERhdGVUaW1lQ2hvb3NlckNsaWVudCB7CitlbnVtIGNsYXNzIERhdGVUaW1lRm9ybWF0VmFsaWRh
dGlvblJlc3VsdHMgOiB1aW50OF90IHsKKyAgICBIYXNZZWFyID0gMSA8PCAwLAorICAgIEhhc01v
bnRoID0gMSA8PCAxLAorICAgIEhhc1dlZWsgPSAxIDw8IDIsCisgICAgSGFzRGF5ID0gMSA8PCAz
LAorICAgIEhhc0FNUE0gPSAxIDw8IDQsCisgICAgSGFzSG91ciA9IDEgPDwgNSwKKyAgICBIYXNN
aW51dGUgPSAxIDw8IDYsCisgICAgSGFzU2Vjb25kID0gMSA8PCA3LAorfTsKKworY2xhc3MgQmFz
ZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZURhdGVBbmRUaW1l
SW5wdXRUeXBlLCBwcml2YXRlIERhdGVUaW1lQ2hvb3NlckNsaWVudCwgcHJpdmF0ZSBEYXRlVGlt
ZUVkaXRFbGVtZW50OjpFZGl0Q29udHJvbE93bmVyIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIGJv
b2wgaXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0
cz4pIGNvbnN0ID0gMDsKKwogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IEJhc2VDaG9vc2VyT25s
eURhdGVBbmRUaW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIH5CYXNlQ2hvb3Nlck9ubHlEYXRl
QW5kVGltZUlucHV0VHlwZSgpOwogCisjaWYgUExBVEZPUk0oTUFDKQorICAgIHZpcnR1YWwgdm9p
ZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1l
dGVycyYpIGNvbnN0ID0gMDsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlSW5u
ZXJUZXh0VmFsdWUoKSBvdmVycmlkZTsKICAgICB2b2lkIGNsb3NlRGF0ZVRpbWVDaG9vc2VyKCk7
CiAKKyAgICAvLyBEYXRlVGltZUVkaXRFbGVtZW50OjpFZGl0Q29udHJvbE93bmVyIGZ1bmN0aW9u
czoKKyAgICBTdHJpbmcgdmFsdWVGb3JFZGl0Q29udHJvbCgpIGNvbnN0IGZpbmFsOworICAgIEF0
b21TdHJpbmcgbG9jYWxlSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsOworCiAgICAgLy8gSW5wdXRU
eXBlIGZ1bmN0aW9uczoKICAgICB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkZXRh
Y2goKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFs
dWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBvdmVycmlkZTsKICAgICB2b2lkIGhh
bmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmKSBvdmVycmlkZTsKQEAgLTYzLDYgKzkxLDkgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRpZEVuZENob29zZXIoKSBmaW5hbDsKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxEYXRlVGltZUNob29zZXI+IG1fZGF0ZVRpbWVDaG9vc2VyOworI2lmIFBMQVRGT1JN
KE1BQykKKyAgICBSZWZQdHI8RGF0ZVRpbWVFZGl0RWxlbWVudD4gbV9kYXRlVGltZUVkaXRFbGVt
ZW50OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAppbmRleCAzZTE3MjQ3MDYxMzI1
ZDBhMjhlNGQxNGNhOTg0MGFkZDJjNWI0OWUyLi44MjdkMDFiOWYzNmYyODE3N2E3YzIwYmJmYjE1
ZjMyNDk5MjBjZTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5k
VGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1l
SW5wdXRUeXBlLmgKQEAgLTUzLDggKzUzLDkgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgaXNLZXli
b2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIAot
cHJpdmF0ZToKICAgICB2aXJ0dWFsIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBwYXJzZVRvRGF0
ZUNvbXBvbmVudHMoY29uc3QgU3RyaW5nVmlldyYpIGNvbnN0ID0gMDsKKworcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNv
bXBvbmVudHMoZG91YmxlKSBjb25zdCA9IDA7CiAKICAgICBkb3VibGUgdmFsdWVBc0RhdGUoKSBj
b25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCmluZGV4IGE1
ZDZkOWVmMjg3OTIxNjhmZTljZmJmNjY3YWMwMTQ5ZGQzMDgxMDQuLjZjOWQxZTg2MzRhMTRjNzI3
NTc5NzYzMzZlOGJmZGQyMzY1ZjlhMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RGF0ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBl
LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgorI2luY2x1
ZGUgIlBsYXRmb3JtTG9jYWxlLmgiCiAjaW5jbHVkZSAiU3RlcFJhbmdlLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTg2LDUgKzg3LDIwIEBAIGJvb2wgRGF0ZUlucHV0VHlwZTo6aXNEYXRl
RmllbGQoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIERhdGVJbnB1dFR5cGU6
OmlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+
IHJlc3VsdHMpIGNvbnN0Cit7CisgICAgcmV0dXJuIHJlc3VsdHMuY29udGFpbnMoRGF0ZVRpbWVG
b3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzWWVhcikKKyAgICAgICAgJiYgcmVzdWx0cy5jb250
YWlucyhEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNNb250aCkKKyAgICAgICAg
JiYgcmVzdWx0cy5jb250YWlucyhEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNE
YXkpOworfQorCisjaWYgUExBVEZPUk0oTUFDKQordm9pZCBEYXRlSW5wdXRUeXBlOjpzZXR1cExh
eW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYgbGF5
b3V0UGFyYW1ldGVycykgY29uc3QKK3sKKyAgICBsYXlvdXRQYXJhbWV0ZXJzLmRhdGVUaW1lRm9y
bWF0ID0gbGF5b3V0UGFyYW1ldGVycy5sb2NhbGUuZGF0ZUZvcm1hdCgpOworICAgIGxheW91dFBh
cmFtZXRlcnMuZmFsbGJhY2tEYXRlVGltZUZvcm1hdCA9ICJ5eXl5LU1NLWRkIl9zOworfQorI2Vu
ZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJ
bnB1dFR5cGUuaAppbmRleCAzMzU1MDc0YmU2ZDVmMmUyZjYzODgwNjYyZDM5NjA2NWRlNjliZjJi
Li4xMDc5ZmJiOTlhZWMxMzIxNDM5MzM0NmU1NDFjZGEwNjc0MjQwYWYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RhdGVJbnB1dFR5cGUuaApAQCAtNDcsNiArNDcsMTEgQEAgcHJpdmF0ZToKICAgICBPcHRp
b25hbDxEYXRlQ29tcG9uZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRzKGNvbnN0IFN0cmluZ1Zp
ZXcmKSBjb25zdCBvdmVycmlkZTsKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gc2V0TWls
bGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9v
bCBpc0RhdGVGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgYm9vbCBpc1ZhbGlkRm9ybWF0
KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPikgY29uc3Qgb3ZlcnJp
ZGU7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIHZvaWQgc2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERh
dGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25zdCBvdmVycmlkZTsKKyNl
bmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKaW5kZXggZGI2MzkwOGZhNjQ1MmZkZmVlMGIx
ZTNhNTZmMzY3YzAxYjdjMmQyOS4uYmM0NDkzZDVhNWRmYTVmZmNkOTA3OGE0YzEzMDhmOWJiZjUx
ZWQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUu
Y3BwCkBAIC05NSw2ICs5NSwyMiBAQCBib29sIERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OmlzRGF0
ZVRpbWVMb2NhbEZpZWxkKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBEYXRl
VGltZUxvY2FsSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1h
dFZhbGlkYXRpb25SZXN1bHRzPiByZXN1bHRzKSBjb25zdAoreworICAgIHJldHVybiByZXN1bHRz
LmNvbnRhaW5zKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc1llYXIpCisgICAg
ICAgICYmIHJlc3VsdHMuY29udGFpbnMoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6
SGFzTW9udGgpCisgICAgICAgICYmIHJlc3VsdHMuY29udGFpbnMoRGF0ZVRpbWVGb3JtYXRWYWxp
ZGF0aW9uUmVzdWx0czo6SGFzRGF5KQorICAgICAgICAmJiByZXN1bHRzLmNvbnRhaW5zKERhdGVU
aW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0hvdXIpCisgICAgICAgICYmIHJlc3VsdHMu
Y29udGFpbnMoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzTWludXRlKTsKK30K
KworI2lmIFBMQVRGT1JNKE1BQykKK3ZvaWQgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6c2V0dXBM
YXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBj
b25zdAoreworCit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgKaW5kZXggMmMw
NDk0OWYwZjBhNmQ5MGYzMjQ4ZTRlZjkwYjgwMDAxOTc0OTRhNS4uMDE2NWUxMjMyODI1ZDk1ZmFi
MjA2NGMwMWZjODg4ZmUwMWQzYTU3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9E
YXRlVGltZUxvY2FsSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGlt
ZUxvY2FsSW5wdXRUeXBlLmgKQEAgLTQ5LDYgKzQ5LDExIEBAIHByaXZhdGU6CiAgICAgT3B0aW9u
YWw8RGF0ZUNvbXBvbmVudHM+IHBhcnNlVG9EYXRlQ29tcG9uZW50cyhjb25zdCBTdHJpbmdWaWV3
JikgY29uc3QgZmluYWw7CiAgICAgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHNldE1pbGxpc2Vj
b25kVG9EYXRlQ29tcG9uZW50cyhkb3VibGUpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgaXNEYXRl
VGltZUxvY2FsRmllbGQoKSBjb25zdCBmaW5hbDsKKworICAgIGJvb2wgaXNWYWxpZEZvcm1hdChP
cHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4pIGNvbnN0IG92ZXJyaWRl
OworI2lmIFBMQVRGT1JNKE1BQykKKyAgICB2b2lkIHNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRl
VGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29uc3Qgb3ZlcnJpZGU7CisjZW5k
aWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElu
cHV0VHlwZS5jcHAKaW5kZXggZWJhZTdkMWQxNmU1OTYxZTE3ZjQ3MDkwZGJhZWVlNzdiYmY1NTg2
Yy4uMDg1ZTM4ZTgwMmNlZDFmNDg3ZTVhZDRkMGNjMzVkY2M4ZDk1NzdhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKQEAgLTEzMSw2ICsxMzEsMTkgQEAgYm9vbCBNb250
aElucHV0VHlwZTo6aXNNb250aEZpZWxkKCkgY29uc3QKIAogdm9pZCBNb250aElucHV0VHlwZTo6
aGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIHsgfQogCitib29sIE1vbnRoSW5wdXRUeXBl
Ojppc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRz
PiByZXN1bHRzKSBjb25zdAoreworICAgIHJldHVybiByZXN1bHRzLmNvbnRhaW5zKERhdGVUaW1l
Rm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc1llYXIpCisgICAgICAgICYmIHJlc3VsdHMuY29u
dGFpbnMoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzTW9udGgpOworfQorCisj
aWYgUExBVEZPUk0oTUFDKQordm9pZCBNb250aElucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0
ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25zdAoreworCit9
CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTW9udGhJbnB1dFR5cGUuaAppbmRleCA0YmJkMTFkZDBlMDI3NDA5NTk3YjkxM2FkOWJhM2Q4
NDhlMDZmNzk3Li41MDQ0MmIzZGRiYTA1YmMyNDkxZDU0OWI0MTdhOTRkNmUyOWRiMTAwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oCkBAIC01Miw2ICs1MiwxMSBAQCBwcml2YXRl
OgogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBv
bmVudHMoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzTW9udGhGaWVsZCgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92
ZXJyaWRlOworCisgICAgYm9vbCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1h
dFZhbGlkYXRpb25SZXN1bHRzPikgY29uc3Qgb3ZlcnJpZGU7CisjaWYgUExBVEZPUk0oTUFDKQor
ICAgIHZvaWQgc2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91
dFBhcmFtZXRlcnMmKSBjb25zdCBvdmVycmlkZTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKaW5kZXggNTA5MzNj
YWVjNzhkZDgwZDAxODZhNDlhZTllODdkNGJlODNjZDUxYy4uZGYyOTQxZmZlMTEyMWQ3ZDBhYTg0
OWU1ZGQ3OTFhMGFmMjg0ZTA0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1l
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3Bw
CkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1Mb2NhbGUuaCIKICNpbmNsdWRlICJTdGVwUmFuZ2UuaCIKICNpbmNsdWRlIDx3dGYv
RGF0ZU1hdGguaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgpAQCAtMTA2LDYgKzEwNywx
OSBAQCBib29sIFRpbWVJbnB1dFR5cGU6OmlzVGltZUZpZWxkKCkgY29uc3QKIAogdm9pZCBUaW1l
SW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50JikgeyB9CiAKK2Jvb2wgVGlt
ZUlucHV0VHlwZTo6aXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0
aW9uUmVzdWx0cz4gcmVzdWx0cykgY29uc3QKK3sKKyAgICByZXR1cm4gcmVzdWx0cy5jb250YWlu
cyhEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNIb3VyKQorICAgICAgICAmJiBy
ZXN1bHRzLmNvbnRhaW5zKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc01pbnV0
ZSk7Cit9CisKKyNpZiBQTEFURk9STShNQUMpCit2b2lkIFRpbWVJbnB1dFR5cGU6OnNldHVwTGF5
b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29u
c3QKK3sKKworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCmluZGV4IDFlODYwYzMxN2ZmZGMwMWM5Y2VjNmZm
YjRlM2QzNDAyOWMwM2ZmZGMuLjdhMWI3YmFiMGQyNTMzYTdlZjdmYjQ5NTlmY2JmOTNmMzc2MmI1
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCkBAIC00OSw2ICs0OSwxMSBAQCBw
cml2YXRlOgogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0
ZUNvbXBvbmVudHMoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzVGltZUZpZWxk
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50
Jikgb3ZlcnJpZGU7CisKKyAgICBib29sIGlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1l
Rm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+KSBjb25zdCBvdmVycmlkZTsKKyNpZiBQTEFURk9STShN
QUMpCisgICAgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6
TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0IG92ZXJyaWRlOworI2VuZGlmCiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1
dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcAppbmRleCA4
NzQ3YjczNTViZjMyMDlhMDZmNTJmOTY2ZmI2OTZjNjUxMDAxN2EyLi5iYmNjMDllOGFlODlmM2M3
OGQxNzJhMTJhMjE2YzU0YTFkMGFjZmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1dlZWtJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlw
ZS5jcHAKQEAgLTg0LDYgKzg0LDE5IEBAIGJvb2wgV2Vla0lucHV0VHlwZTo6aXNXZWVrRmllbGQo
KSBjb25zdAogCiB2b2lkIFdlZWtJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZl
bnQmKSB7IH0KIAorYm9vbCBXZWVrSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxE
YXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPiByZXN1bHRzKSBjb25zdAoreworICAgIHJl
dHVybiByZXN1bHRzLmNvbnRhaW5zKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhh
c1llYXIpCisgICAgICAgICYmIHJlc3VsdHMuY29udGFpbnMoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0
aW9uUmVzdWx0czo6SGFzV2Vlayk7Cit9CisKKyNpZiBQTEFURk9STShNQUMpCit2b2lkIFdlZWtJ
bnB1dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlv
dXRQYXJhbWV0ZXJzJikgY29uc3QKK3sKKworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1
dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5oCmluZGV4IDUwOTgx
NzQ0YmZlNGViYjcxM2FmZWI4OWI2ZjBkYWRhODYxNWFiODAuLjA0Y2E5ODZiOGY3ZGI0ZGEwMWY2
YWI4ZWRhMDNjMTNhYjNjOTZjM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vl
a0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5oCkBA
IC00OCw2ICs0OCwxMSBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBz
ZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKICAg
ICBib29sIGlzV2Vla0ZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBoYW5kbGVET01B
Y3RpdmF0ZUV2ZW50KEV2ZW50Jikgb3ZlcnJpZGU7CisKKyAgICBib29sIGlzVmFsaWRGb3JtYXQo
T3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+KSBjb25zdCBvdmVycmlk
ZTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0
ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0IG92ZXJyaWRlOworI2Vu
ZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjNTU1ODQ2
YWU3NDRjNTI3ZTA4MTBjMTRhYjg2ZGJlNGYxYTM5MjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcApAQCAtMCwwICsx
LDIyOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRhdGVU
aW1lRWRpdEVsZW1lbnQuaCIKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVT
KSAmJiBQTEFURk9STShNQUMpCisKKyNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgorI2luY2x1
ZGUgIkRhdGVUaW1lRmllbGRFbGVtZW50cy5oIgorI2luY2x1ZGUgIkRhdGVUaW1lRm9ybWF0Lmgi
CisjaW5jbHVkZSAiRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTG9jYWxlLmgiCisjaW5jbHVkZSAiVGV4dC5o
IgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nQnVpbGRlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChEYXRlVGltZUVkaXRF
bGVtZW50KTsKKworY2xhc3MgRGF0ZVRpbWVFZGl0QnVpbGRlciA6IHByaXZhdGUgRGF0ZVRpbWVG
b3JtYXQ6OlRva2VuSGFuZGxlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGF0ZVRpbWVF
ZGl0QnVpbGRlcik7CisKK3B1YmxpYzoKKyAgICBEYXRlVGltZUVkaXRCdWlsZGVyKERhdGVUaW1l
RWRpdEVsZW1lbnQmLCBjb25zdCBEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJz
Jik7CisKKyAgICBib29sIGJ1aWxkKGNvbnN0IFN0cmluZyYpOworCitwcml2YXRlOgorICAgIC8v
IERhdGVUaW1lRm9ybWF0OjpUb2tlbkhhbmRsZXIgZnVuY3Rpb25zOgorICAgIHZvaWQgdmlzaXRG
aWVsZChEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlLCBpbnQpIGZpbmFsOworICAgIHZvaWQgdmlz
aXRMaXRlcmFsKGNvbnN0IFN0cmluZyYpIGZpbmFsOworCisgICAgRGF0ZVRpbWVFZGl0RWxlbWVu
dCYgbV9lZGl0RWxlbWVudDsKKyAgICBjb25zdCBEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQ
YXJhbWV0ZXJzJiBtX3BhcmFtZXRlcnM7Cit9OworCitEYXRlVGltZUVkaXRCdWlsZGVyOjpEYXRl
VGltZUVkaXRCdWlsZGVyKERhdGVUaW1lRWRpdEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IERhdGVU
aW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMpCisgICAg
OiBtX2VkaXRFbGVtZW50KGVsZW1lbnQpCisgICAgLCBtX3BhcmFtZXRlcnMobGF5b3V0UGFyYW1l
dGVycykKK3sKK30KKworYm9vbCBEYXRlVGltZUVkaXRCdWlsZGVyOjpidWlsZChjb25zdCBTdHJp
bmcmIGZvcm1hdFN0cmluZykKK3sKKyAgICBtX2VkaXRFbGVtZW50LnJlc2V0RmllbGRzKCk7Cisg
ICAgcmV0dXJuIERhdGVUaW1lRm9ybWF0OjpwYXJzZShmb3JtYXRTdHJpbmcsICp0aGlzKTsKK30K
Kwordm9pZCBEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdEZpZWxkKERhdGVUaW1lRm9ybWF0OjpG
aWVsZFR5cGUgZmllbGRUeXBlLCBpbnQgY291bnQpCit7CisgICAgY29uc3QgaW50IGNvdW50Rm9y
QWJicmV2aWF0ZWRNb250aCA9IDM7CisgICAgY29uc3QgaW50IGNvdW50Rm9yRnVsbE1vbnRoID0g
NDsKKyAgICBjb25zdCBpbnQgY291bnRGb3JOYXJyb3dNb250aCA9IDU7CisgICAgRG9jdW1lbnQm
IGRvY3VtZW50ID0gbV9lZGl0RWxlbWVudC5kb2N1bWVudCgpOworCisgICAgc3dpdGNoIChmaWVs
ZFR5cGUpIHsKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVEYXlPZk1vbnRoOiB7
CisgICAgICAgIG1fZWRpdEVsZW1lbnQuYWRkRmllbGQoRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCkpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTW9udGg6CisgICAgY2FzZSBE
YXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTW9udGhTdGFuZEFsb25lOiB7CisgICAgICAgIHN3aXRj
aCAoY291bnQpIHsKKyAgICAgICAgY2FzZSBjb3VudEZvck5hcnJvd01vbnRoOgorICAgICAgICBj
YXNlIGNvdW50Rm9yQWJicmV2aWF0ZWRNb250aDogeworICAgICAgICAgICAgYXV0byBmaWVsZCA9
IERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtX2Vk
aXRFbGVtZW50LCBmaWVsZFR5cGUgPT0gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRoID8g
bV9wYXJhbWV0ZXJzLmxvY2FsZS5zaG9ydE1vbnRoTGFiZWxzKCkgOiBtX3BhcmFtZXRlcnMubG9j
YWxlLnNob3J0U3RhbmRBbG9uZU1vbnRoTGFiZWxzKCkpOworICAgICAgICAgICAgbV9lZGl0RWxl
bWVudC5hZGRGaWVsZChmaWVsZCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICBjYXNlIGNvdW50Rm9yRnVsbE1vbnRoOiB7CisgICAgICAgICAgICBhdXRvIGZpZWxkID0g
RGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIG1fZWRp
dEVsZW1lbnQsIGZpZWxkVHlwZSA9PSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTW9udGggPyBt
X3BhcmFtZXRlcnMubG9jYWxlLm1vbnRoTGFiZWxzKCkgOiBtX3BhcmFtZXRlcnMubG9jYWxlLnN0
YW5kQWxvbmVNb250aExhYmVscygpKTsKKyAgICAgICAgICAgIG1fZWRpdEVsZW1lbnQuYWRkRmll
bGQoZmllbGQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgZGVmYXVs
dDogeworICAgICAgICAgICAgYXV0byBmaWVsZCA9IERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCk7CisgICAgICAgICAgICBtX2VkaXRFbGVt
ZW50LmFkZEZpZWxkKGZpZWxkKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZVllYXI6IHsKKyAgICAgICAgbV9lZGl0RWxlbWVudC5hZGRGaWVsZChEYXRlVGlt
ZVllYXJGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCkpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuOworICAg
IH0KK30KKwordm9pZCBEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdExpdGVyYWwoY29uc3QgU3Ry
aW5nJiB0ZXh0KQoreworICAgIEFTU0VSVCh0ZXh0Lmxlbmd0aCgpKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRleHRQc2V1ZG9JZCgiLXdl
YmtpdC1kYXRldGltZS1lZGl0LXRleHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgYXV0byBlbGVtZW50ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShtX2VkaXRFbGVt
ZW50LmRvY3VtZW50KCkpOworICAgIGVsZW1lbnQtPnNldFBzZXVkbyh0ZXh0UHNldWRvSWQpOwor
ICAgIGVsZW1lbnQtPmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZShtX2VkaXRFbGVtZW50LmRvY3Vt
ZW50KCksIHRleHQpKTsKKyAgICBtX2VkaXRFbGVtZW50LmZpZWxkc1dyYXBwZXJFbGVtZW50KCkt
PmFwcGVuZENoaWxkKGVsZW1lbnQpOworfQorCitEYXRlVGltZUVkaXRFbGVtZW50OjpFZGl0Q29u
dHJvbE93bmVyOjp+RWRpdENvbnRyb2xPd25lcigpCit7Cit9CisKK0RhdGVUaW1lRWRpdEVsZW1l
bnQ6OkRhdGVUaW1lRWRpdEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBFZGl0Q29udHJvbE93
bmVyJiBlZGl0Q29udHJvbE93bmVyKQorICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCBkb2N1
bWVudCkKKyAgICAsIG1fZWRpdENvbnRyb2xPd25lcigmZWRpdENvbnRyb2xPd25lcikKK3sKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGRhdGVU
aW1lRWRpdFBzZXVkb0lkKCItd2Via2l0LWRhdGV0aW1lLWVkaXQiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc2V0UHNldWRvKGRhdGVUaW1lRWRpdFBzZXVkb0lkKTsK
K30KKworRGF0ZVRpbWVFZGl0RWxlbWVudDo6fkRhdGVUaW1lRWRpdEVsZW1lbnQoKQoreworfQor
CitpbmxpbmUgRWxlbWVudCogRGF0ZVRpbWVFZGl0RWxlbWVudDo6ZmllbGRzV3JhcHBlckVsZW1l
bnQoKSBjb25zdAoreworICAgIEFTU0VSVChmaXJzdENoaWxkKCkpOworICAgIHJldHVybiBkb3du
Y2FzdDxFbGVtZW50PihmaXJzdENoaWxkKCkpOworfQorCit2b2lkIERhdGVUaW1lRWRpdEVsZW1l
bnQ6OmFkZEZpZWxkKFJlZjxEYXRlVGltZUZpZWxkRWxlbWVudD4gZmllbGQpCit7CisgICAgaWYg
KG1fZmllbGRzLnNpemUoKSA9PSBtX2ZpZWxkcy5jYXBhY2l0eSgpKQorICAgICAgICByZXR1cm47
CisgICAgbV9maWVsZHMuYXBwZW5kKGZpZWxkKTsKKyAgICBmaWVsZHNXcmFwcGVyRWxlbWVudCgp
LT5hcHBlbmRDaGlsZChmaWVsZCk7Cit9CisKK1JlZjxEYXRlVGltZUVkaXRFbGVtZW50PiBEYXRl
VGltZUVkaXRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBFZGl0Q29udHJvbE93
bmVyJiBlZGl0Q29udHJvbE93bmVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERhdGVU
aW1lRWRpdEVsZW1lbnQoZG9jdW1lbnQsIGVkaXRDb250cm9sT3duZXIpKTsKK30KKwordm9pZCBE
YXRlVGltZUVkaXRFbGVtZW50OjpsYXlvdXQoY29uc3QgTGF5b3V0UGFyYW1ldGVycyYgbGF5b3V0
UGFyYW1ldGVycykKK3sKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IGZpZWxkc1dyYXBwZXJQc2V1ZG9JZCgiLXdlYmtpdC1kYXRldGltZS1lZGl0
LWZpZWxkcy13cmFwcGVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworCisg
ICAgaWYgKCFmaXJzdENoaWxkKCkpIHsKKyAgICAgICAgYXV0byBlbGVtZW50ID0gSFRNTERpdkVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICAgICAgZWxlbWVudC0+c2V0UHNldWRvKGZp
ZWxkc1dyYXBwZXJQc2V1ZG9JZCk7CisgICAgICAgIGFwcGVuZENoaWxkKGVsZW1lbnQpOworICAg
IH0KKworICAgIEVsZW1lbnQqIGZpZWxkc1dyYXBwZXIgPSBmaWVsZHNXcmFwcGVyRWxlbWVudCgp
OworCisgICAgRGF0ZVRpbWVFZGl0QnVpbGRlciBidWlsZGVyKCp0aGlzLCBsYXlvdXRQYXJhbWV0
ZXJzKTsKKyAgICBOb2RlKiBsYXN0Q2hpbGRUb0JlUmVtb3ZlZCA9IGZpZWxkc1dyYXBwZXItPmxh
c3RDaGlsZCgpOworICAgIGlmICghYnVpbGRlci5idWlsZChsYXlvdXRQYXJhbWV0ZXJzLmRhdGVU
aW1lRm9ybWF0KSB8fCBtX2ZpZWxkcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgbGFzdENoaWxkVG9C
ZVJlbW92ZWQgPSBmaWVsZHNXcmFwcGVyLT5sYXN0Q2hpbGQoKTsKKyAgICAgICAgYnVpbGRlci5i
dWlsZChsYXlvdXRQYXJhbWV0ZXJzLmZhbGxiYWNrRGF0ZVRpbWVGb3JtYXQpOworICAgIH0KKwor
ICAgIGlmIChsYXN0Q2hpbGRUb0JlUmVtb3ZlZCkgeworICAgICAgICBmb3IgKE5vZGUqIGNoaWxk
Tm9kZSA9IGZpZWxkc1dyYXBwZXItPmZpcnN0Q2hpbGQoKTsgY2hpbGROb2RlOyBjaGlsZE5vZGUg
PSBmaWVsZHNXcmFwcGVyLT5maXJzdENoaWxkKCkpIHsKKyAgICAgICAgICAgIGZpZWxkc1dyYXBw
ZXItPnJlbW92ZUNoaWxkKCpjaGlsZE5vZGUpOworICAgICAgICAgICAgaWYgKGNoaWxkTm9kZSA9
PSBsYXN0Q2hpbGRUb0JlUmVtb3ZlZCkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgIH0KK30KKworQXRvbVN0cmluZyBEYXRlVGltZUVkaXRFbGVtZW50Ojpsb2NhbGVJZGVu
dGlmaWVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9lZGl0Q29udHJvbE93bmVyID8gbV9lZGl0
Q29udHJvbE93bmVyLT5sb2NhbGVJZGVudGlmaWVyKCkgOiBudWxsQXRvbSgpOworfQorCit2b2lk
IERhdGVUaW1lRWRpdEVsZW1lbnQ6OnJlc2V0RmllbGRzKCkKK3sKKyAgICBtX2ZpZWxkcy5zaHJp
bmsoMCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6c2V0VmFsdWVBc0RhdGUoY29u
c3QgTGF5b3V0UGFyYW1ldGVycyYgbGF5b3V0UGFyYW1ldGVycywgY29uc3QgRGF0ZUNvbXBvbmVu
dHMmIGRhdGUpCit7CisgICAgbGF5b3V0KGxheW91dFBhcmFtZXRlcnMpOworICAgIGZvciAoc2l6
ZV90IGZpZWxkSW5kZXggPSAwOyBmaWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpOyArK2ZpZWxk
SW5kZXgpCisgICAgICAgIG1fZmllbGRzW2ZpZWxkSW5kZXhdLT5zZXRWYWx1ZUFzRGF0ZShkYXRl
KTsKK30KKwordm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpzZXRFbXB0eVZhbHVlKGNvbnN0IExh
eW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMpCit7CisgICAgbGF5b3V0KGxheW91dFBh
cmFtZXRlcnMpOworICAgIGZvciAoc2l6ZV90IGZpZWxkSW5kZXggPSAwOyBmaWVsZEluZGV4IDwg
bV9maWVsZHMuc2l6ZSgpOyArK2ZpZWxkSW5kZXgpCisgICAgICAgIG1fZmllbGRzW2ZpZWxkSW5k
ZXhdLT5zZXRFbXB0eVZhbHVlKCk7Cit9CisKK1N0cmluZyBEYXRlVGltZUVkaXRFbGVtZW50Ojp2
YWx1ZSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2VkaXRDb250cm9sT3duZXIpCisgICAgICAgIHJl
dHVybiBlbXB0eVN0cmluZygpOworICAgIHJldHVybiBtX2VkaXRDb250cm9sT3duZXItPnZhbHVl
Rm9yRWRpdENvbnRyb2woKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpICYmIFBMQVRGT1JNKE1BQykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yY2NjNGI1NDBiZTk2ZmQ4ZTc2YjI2M2IxMjIxZDJkMzJlNmIwNzYzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVu
dC5oCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpICYmIFBMQVRGT1JNKE1BQykKKworI2luY2x1
ZGUgIkRhdGVDb21wb25lbnRzLmgiCisjaW5jbHVkZSAiRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBMb2NhbGU7CisKK2NsYXNzIERhdGVUaW1l
RWRpdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQsIHB1YmxpYyBEYXRlVGlt
ZUZpZWxkRWxlbWVudDo6RmllbGRPd25lciB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChE
YXRlVGltZUVkaXRFbGVtZW50KTsKK3B1YmxpYzoKKyAgICBjbGFzcyBFZGl0Q29udHJvbE93bmVy
IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfkVkaXRDb250cm9sT3duZXIoKTsKKyAg
ICAgICAgdmlydHVhbCBTdHJpbmcgdmFsdWVGb3JFZGl0Q29udHJvbCgpIGNvbnN0ID0gMDsKKyAg
ICAgICAgdmlydHVhbCBBdG9tU3RyaW5nIGxvY2FsZUlkZW50aWZpZXIoKSBjb25zdCA9IDA7Cisg
ICAgfTsKKworICAgIHN0cnVjdCBMYXlvdXRQYXJhbWV0ZXJzIHsKKyAgICAgICAgU3RyaW5nIGRh
dGVUaW1lRm9ybWF0OworICAgICAgICBTdHJpbmcgZmFsbGJhY2tEYXRlVGltZUZvcm1hdDsKKyAg
ICAgICAgTG9jYWxlJiBsb2NhbGU7CisKKyAgICAgICAgTGF5b3V0UGFyYW1ldGVycyhMb2NhbGUm
IGxvY2FsZSkKKyAgICAgICAgICAgIDogbG9jYWxlKGxvY2FsZSkKKyAgICAgICAgeworICAgICAg
ICB9CisgICAgfTsKKworICAgIHN0YXRpYyBSZWY8RGF0ZVRpbWVFZGl0RWxlbWVudD4gY3JlYXRl
KERvY3VtZW50JiwgRWRpdENvbnRyb2xPd25lciYpOworCisgICAgdmlydHVhbCB+RGF0ZVRpbWVF
ZGl0RWxlbWVudCgpOworICAgIHZvaWQgYWRkRmllbGQoUmVmPERhdGVUaW1lRmllbGRFbGVtZW50
Pik7CisgICAgRWxlbWVudCogZmllbGRzV3JhcHBlckVsZW1lbnQoKSBjb25zdDsKKyAgICB2b2lk
IHJlc2V0RmllbGRzKCk7CisgICAgdm9pZCBzZXRFbXB0eVZhbHVlKGNvbnN0IExheW91dFBhcmFt
ZXRlcnMmKTsKKyAgICB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IExheW91dFBhcmFtZXRlcnMm
LCBjb25zdCBEYXRlQ29tcG9uZW50cyYpOworICAgIFN0cmluZyB2YWx1ZSgpIGNvbnN0OworCitw
cml2YXRlOgorICAgIHN0YXRpYyBjb25zdCBzaXplX3QgaW52YWxpZEZpZWxkSW5kZXggPSBzdGF0
aWNfY2FzdDxzaXplX3Q+KC0xKTsKKworICAgIC8vIERhdGV0aW1lIGNhbiBiZSByZXByZXNlbnRl
ZCBieSBhdCBtb3N0IDggZmllbGRzOgorICAgIC8vIDEuIHllYXIKKyAgICAvLyAyLiBtb250aAor
ICAgIC8vIDMuIGRheS1vZi1tb250aAorICAgIC8vIDQuIGhvdXIKKyAgICAvLyA1LiBtaW51dGUK
KyAgICAvLyA2LiBzZWNvbmQKKyAgICAvLyA3LiBtaWxsaXNlY29uZAorICAgIC8vIDguIEFNL1BN
CisgICAgc3RhdGljIGNvbnN0IGludCBtYXhpbXVtTnVtYmVyT2ZGaWVsZHMgPSA4OworCisgICAg
RGF0ZVRpbWVFZGl0RWxlbWVudChEb2N1bWVudCYsIEVkaXRDb250cm9sT3duZXImKTsKKworICAg
IHZvaWQgbGF5b3V0KGNvbnN0IExheW91dFBhcmFtZXRlcnMmKTsKKworICAgIC8vIERhdGVUaW1l
RmllbGRFbGVtZW50OjpGaWVsZE93bmVyIGZ1bmN0aW9uczoKKyAgICBBdG9tU3RyaW5nIGxvY2Fs
ZUlkZW50aWZpZXIoKSBjb25zdCBmaW5hbDsKKworICAgIFZlY3RvcjxSZWY8RGF0ZVRpbWVGaWVs
ZEVsZW1lbnQ+LCBtYXhpbXVtTnVtYmVyT2ZGaWVsZHM+IG1fZmllbGRzOworICAgIEVkaXRDb250
cm9sT3duZXIqIG1fZWRpdENvbnRyb2xPd25lcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBQTEFU
Rk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGlt
ZUZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZp
ZWxkRWxlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGRiYTAxOTcyZTUyMTRiYmQ1NDIwYzk1NGM0YzUy
MjIwNWE1NmM5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RhdGVUaW1lRmllbGRFbGVtZW50LmNwcApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCIKKwor
I2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBQTEFURk9STShNQUMpCisK
KyNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2lu
Y2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUxvY2FsZS5oIgor
I2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCitXVEZfTUFL
RV9JU09fQUxMT0NBVEVEX0lNUEwoRGF0ZVRpbWVGaWVsZEVsZW1lbnQpOworCitEYXRlVGltZUZp
ZWxkRWxlbWVudDo6RmllbGRPd25lcjo6fkZpZWxkT3duZXIoKQoreworfQorCitEYXRlVGltZUZp
ZWxkRWxlbWVudDo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVs
ZE93bmVyJiBmaWVsZE93bmVyKQorICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCBkb2N1bWVu
dCkKKyAgICAsIG1fZmllbGRPd25lcigmZmllbGRPd25lcikKK3sKK30KKwordm9pZCBEYXRlVGlt
ZUZpZWxkRWxlbWVudDo6aW5pdGlhbGl6ZShjb25zdCBBdG9tU3RyaW5nJiBwc2V1ZG8pCit7Cisg
ICAgc2V0UHNldWRvKHBzZXVkbyk7Cit9CisKK0xvY2FsZSYgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6
OmxvY2FsZUZvck93bmVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKS5nZXRDYWNo
ZWRMb2NhbGUobG9jYWxlSWRlbnRpZmllcigpKTsKK30KKworQXRvbVN0cmluZyBEYXRlVGltZUZp
ZWxkRWxlbWVudDo6bG9jYWxlSWRlbnRpZmllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZmll
bGRPd25lciA/IG1fZmllbGRPd25lci0+bG9jYWxlSWRlbnRpZmllcigpIDogbnVsbEF0b20oKTsK
K30KKwordm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6dXBkYXRlVmlzaWJsZVZhbHVlKCkKK3sK
KyAgICBpZiAoIWZpcnN0Q2hpbGQoKSkKKyAgICAgICAgYXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRl
KGRvY3VtZW50KCksIGVtcHR5U3RyaW5nKCkpKTsKKworICAgIFRleHQmIHRleHROb2RlID0gZG93
bmNhc3Q8VGV4dD4oKmZpcnN0Q2hpbGQoKSk7CisgICAgY29uc3QgU3RyaW5nIG5ld1Zpc2libGVW
YWx1ZSA9IHZpc2libGVWYWx1ZSgpOworICAgIGlmICh0ZXh0Tm9kZS53aG9sZVRleHQoKSA9PSBu
ZXdWaXNpYmxlVmFsdWUpCisgICAgICAgIHJldHVybjsKKworICAgIHRleHROb2RlLnJlcGxhY2VX
aG9sZVRleHQobmV3VmlzaWJsZVZhbHVlKTsKK30KKworYm9vbCBEYXRlVGltZUZpZWxkRWxlbWVu
dDo6c3VwcG9ydHNGb2N1cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVU
X1RZUEVTKSAmJiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNWNhOTVhOTAxNmIwYmE1ZTc5
ZjM1NjhiNGVmY2UzODllMjQ5ZWQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaApAQCAtMCwwICsxLDY5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZ
UEVTKSAmJiBQTEFURk9STShNQUMpCisKKyNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERhdGVDb21wb25lbnRzOworCitjbGFzcyBEYXRl
VGltZUZpZWxkRWxlbWVudCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CisgICAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRChEYXRlVGltZUZpZWxkRWxlbWVudCk7CitwdWJsaWM6CisgICAgY2xhc3Mg
RmllbGRPd25lciB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5GaWVsZE93bmVyKCk7
CisgICAgICAgIHZpcnR1YWwgQXRvbVN0cmluZyBsb2NhbGVJZGVudGlmaWVyKCkgY29uc3QgPSAw
OworICAgIH07CisKKyAgICB2aXJ0dWFsIGJvb2wgaGFzVmFsdWUoKSBjb25zdCA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHNldEVtcHR5VmFsdWUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFZh
bHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRWYWx1ZUFzSW50ZWdlcihpbnQpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgpIGNv
bnN0ID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyB2aXNpYmxlVmFsdWUoKSBjb25zdCA9IDA7CisK
K3Byb3RlY3RlZDoKKyAgICBEYXRlVGltZUZpZWxkRWxlbWVudChEb2N1bWVudCYsIEZpZWxkT3du
ZXImKTsKKyAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgQXRvbVN0cmluZyYgcHNldWRvKTsKKyAg
ICBMb2NhbGUmIGxvY2FsZUZvck93bmVyKCkgY29uc3Q7CisgICAgQXRvbVN0cmluZyBsb2NhbGVJ
ZGVudGlmaWVyKCkgY29uc3Q7CisgICAgdm9pZCB1cGRhdGVWaXNpYmxlVmFsdWUoKTsKKyAgICB2
aXJ0dWFsIGludCB2YWx1ZUFzSW50ZWdlcigpIGNvbnN0ID0gMDsKKworcHJpdmF0ZToKKyAgICBi
b29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCBvdmVycmlkZTsKKworICAgIEZpZWxkT3duZXIqIG1f
ZmllbGRPd25lcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBQTEFURk9STShNQUMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hZjM5YWYxMmFhMjgwZDY5NGQ2YzM0MmJlYTgyYmY5Mjc4ZDQyMWVmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVs
ZW1lbnRzLmNwcApAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkRhdGVUaW1lRmllbGRFbGVtZW50cy5oIgorCisjaWYgRU5BQkxFKERB
VEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpICYmIFBMQVRGT1JNKE1BQykKKworI2luY2x1ZGUgIkRh
dGVDb21wb25lbnRzLmgiCisjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgorI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKERhdGVUaW1lRGF5RmllbGRFbGVtZW50KTsKKworRGF0ZVRp
bWVEYXlGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lRGF5RmllbGRFbGVtZW50KERvY3VtZW50JiBkb2N1
bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lcikKKyAgICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwgIi0tIl9zKQoreworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGF5UHN1ZWRvSWQoIi13ZWJr
aXQtZGF0ZXRpbWUtZWRpdC1kYXktZmllbGQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgaW5pdGlhbGl6ZShkYXlQc3VlZG9JZCk7Cit9CisKK1JlZjxEYXRlVGltZURh
eUZpZWxkRWxlbWVudD4gRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIpKTsKK30K
Kwordm9pZCBEYXRlVGltZURheUZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0
ZUNvbXBvbmVudHMmIGRhdGUpCit7CisgICAgc2V0VmFsdWVBc0ludGVnZXIoZGF0ZS5tb250aERh
eSgpKTsKK30KKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERhdGVUaW1lTW9udGhGaWVs
ZEVsZW1lbnQpOworCitEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50OjpEYXRlVGltZU1vbnRoRmll
bGRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lcikKKyAg
ICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwgIi0t
Il9zKQoreworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gbW9udGhQc3VlZG9JZCgiLXdlYmtpdC1kYXRldGltZS1lZGl0LW1vbnRoLWZpZWxkIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIGluaXRpYWxpemUobW9udGhQ
c3VlZG9JZCk7Cit9CisKK1JlZjxEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50PiBEYXRlVGltZU1v
bnRoRmllbGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBm
aWVsZE93bmVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERhdGVUaW1lTW9udGhGaWVs
ZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIpKTsKK30KKwordm9pZCBEYXRlVGltZU1vbnRo
RmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkK
K3sKKyAgICBzZXRWYWx1ZUFzSW50ZWdlcihkYXRlLm1vbnRoKCkgKyAxKTsKK30KKworV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudCk7
CisKK0RhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudDo6RGF0ZVRpbWVTeW1ib2xpY01v
bnRoRmllbGRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25l
ciwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhYmVscykKKyAgICA6IERhdGVUaW1lU3ltYm9saWNG
aWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIGxhYmVscykKK3sKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vbnRoUHN1ZWRvSWQo
Ii13ZWJraXQtZGF0ZXRpbWUtZWRpdC1tb250aC1maWVsZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBpbml0aWFsaXplKG1vbnRoUHN1ZWRvSWQpOworfQorCitSZWY8
RGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50PiBEYXRlVGltZVN5bWJvbGljTW9udGhG
aWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxk
T3duZXIsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYWJlbHMpCit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVs
ZE93bmVyLCBsYWJlbHMpKTsKK30KKwordm9pZCBEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVs
ZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQoreworICAg
IHNldFZhbHVlQXNJbnRlZ2VyKGRhdGUubW9udGgoKSk7Cit9CisKK1dURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQpOworCitEYXRlVGltZVllYXJGaWVs
ZEVsZW1lbnQ6OkRhdGVUaW1lWWVhckZpZWxkRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEZp
ZWxkT3duZXImIGZpZWxkT3duZXIpCisgICAgOiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQo
ZG9jdW1lbnQsIGZpZWxkT3duZXIsICItLS0tIl9zKQoreworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4geWVhclBzdWVkb0lkKCItd2Via2l0LWRh
dGV0aW1lLWVkaXQteWVhci1maWVsZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBpbml0aWFsaXplKHllYXJQc3VlZG9JZCk7Cit9CisKK1JlZjxEYXRlVGltZVllYXJG
aWVsZEVsZW1lbnQ+IERhdGVUaW1lWWVhckZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBk
b2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIpKTsKK30K
Kwordm9pZCBEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0IERh
dGVDb21wb25lbnRzJiBkYXRlKQoreworICAgIHNldFZhbHVlQXNJbnRlZ2VyKGRhdGUuZnVsbFll
YXIoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShE
QVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQ5MzJmMmIzOWQ2ODgwNjdjMWFhZjZiMzRmZWU3YzRiN2U3YjFiMzAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuaApA
QCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShE
QVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBQTEFURk9STShNQUMpCisKKyNpbmNsdWRlICJE
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJEYXRlVGltZVN5bWJvbGlj
RmllbGRFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGF0ZVRpbWVE
YXlGaWVsZEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50
IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKERhdGVUaW1lRGF5RmllbGRFbGVtZW50KTsK
KworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ+IGNyZWF0
ZShEb2N1bWVudCYsIEZpZWxkT3duZXImKTsKKworcHJpdmF0ZToKKyAgICBEYXRlVGltZURheUZp
ZWxkRWxlbWVudChEb2N1bWVudCYsIEZpZWxkT3duZXImKTsKKworICAgIC8vIERhdGVUaW1lRmll
bGRFbGVtZW50IGZ1bmN0aW9uczoKKyAgICB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVD
b21wb25lbnRzJikgZmluYWw7Cit9OworCitjbGFzcyBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50
IGZpbmFsIDogcHVibGljIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCB7CisgICAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRChEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50KTsKKworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8RGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudD4gY3JlYXRlKERvY3VtZW50
JiwgRmllbGRPd25lciYpOworCitwcml2YXRlOgorICAgIERhdGVUaW1lTW9udGhGaWVsZEVsZW1l
bnQoRG9jdW1lbnQmLCBGaWVsZE93bmVyJik7CisKKyAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVu
dCBmdW5jdGlvbnM6CisgICAgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50
cyYpIGZpbmFsOworfTsKKworY2xhc3MgRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50
IGZpbmFsIDogcHVibGljIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgeworICAgIFdURl9N
QUtFX0lTT19BTExPQ0FURUQoRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50KTsKKwor
cHVibGljOgorICAgIHN0YXRpYyBSZWY8RGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50
PiBjcmVhdGUoRG9jdW1lbnQmLCBGaWVsZE93bmVyJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKTsK
KworcHJpdmF0ZToKKyAgICBEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQoRG9jdW1l
bnQmLCBGaWVsZE93bmVyJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKworICAgIC8vIERhdGVU
aW1lRmllbGRFbGVtZW50IGZ1bmN0aW9uczoKKyAgICB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0
IERhdGVDb21wb25lbnRzJikgZmluYWw7Cit9OworCitjbGFzcyBEYXRlVGltZVllYXJGaWVsZEVs
ZW1lbnQgZmluYWwgOiBwdWJsaWMgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50IHsKKyAgICBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEKERhdGVUaW1lWWVhckZpZWxkRWxlbWVudCk7CisKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPERhdGVUaW1lWWVhckZpZWxkRWxlbWVudD4gY3JlYXRlKERvY3Vt
ZW50JiwgRmllbGRPd25lciYpOworCitwcml2YXRlOgorICAgIERhdGVUaW1lWWVhckZpZWxkRWxl
bWVudChEb2N1bWVudCYsIEZpZWxkT3duZXImKTsKKworICAgIC8vIERhdGVUaW1lRmllbGRFbGVt
ZW50IGZ1bmN0aW9uczoKKyAgICB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25l
bnRzJikgZmluYWw7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdkMGQ2NDE1MjYxMjYxYTBiNTcxMzliMWUzOGE4Y2I2
MDI4YWI5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Rh
dGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxl
bWVudC5oIgorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpICYmIFBMQVRG
T1JNKE1BQykKKworI2luY2x1ZGUgIlBsYXRmb3JtTG9jYWxlLmgiCisjaW5jbHVkZSA8d3RmL0lz
b01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09f
QUxMT0NBVEVEX0lNUEwoRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KTsKKworRGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50OjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoRG9jdW1lbnQm
IGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBjb25zdCBTdHJpbmcmIHBsYWNlaG9s
ZGVyKQorICAgIDogRGF0ZVRpbWVGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIpCisg
ICAgLCBtX3BsYWNlaG9sZGVyKHBsYWNlaG9sZGVyKQorICAgICwgbV92YWx1ZSgwKQorICAgICwg
bV9oYXNWYWx1ZShmYWxzZSkKK3sKK30KKworU3RyaW5nIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxl
bWVudDo6Zm9ybWF0VmFsdWUoaW50IHZhbHVlKSBjb25zdAoreworICAgIExvY2FsZSYgbG9jYWxl
ID0gbG9jYWxlRm9yT3duZXIoKTsKKyAgICByZXR1cm4gbG9jYWxlLmNvbnZlcnRUb0xvY2FsaXpl
ZE51bWJlcihtYWtlU3RyaW5nKHBhZCgnMCcsIDIsIHZhbHVlKSkpOworfQorCitib29sIERhdGVU
aW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6aGFzVmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBt
X2hhc1ZhbHVlOworfQorCit2b2lkIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6aW5pdGlh
bGl6ZShjb25zdCBBdG9tU3RyaW5nJiBwc2V1ZG8pCit7CisgICAgRGF0ZVRpbWVGaWVsZEVsZW1l
bnQ6OmluaXRpYWxpemUocHNldWRvKTsKK30KKwordm9pZCBEYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQ6OnNldEVtcHR5VmFsdWUoKQoreworICAgIG1fdmFsdWUgPSAwOworICAgIG1faGFzVmFs
dWUgPSBmYWxzZTsKKyAgICB1cGRhdGVWaXNpYmxlVmFsdWUoKTsKK30KKwordm9pZCBEYXRlVGlt
ZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNJbnRlZ2VyKGludCB2YWx1ZSkKK3sKKyAg
ICBtX3ZhbHVlID0gdmFsdWU7CisgICAgbV9oYXNWYWx1ZSA9IHRydWU7CisgICAgdXBkYXRlVmlz
aWJsZVZhbHVlKCk7Cit9CisKK1N0cmluZyBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnZh
bHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYXNWYWx1ZSA/IGZvcm1hdFZhbHVlKG1fdmFs
dWUpIDogZW1wdHlTdHJpbmcoKTsKK30KKworaW50IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVu
dDo6dmFsdWVBc0ludGVnZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX2hhc1ZhbHVlID8gbV92
YWx1ZSA6IC0xOworfQorCitTdHJpbmcgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojp2aXNp
YmxlVmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBtX2hhc1ZhbHVlID8gdmFsdWUoKSA6IG1f
cGxhY2Vob2xkZXI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBQTEFURk9STShNQUMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxl
bWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjNhNDBhNWJlN2NmNWM2MTEzOWNmZmY5NTMyNmZjZGNhYTFiZTI1
ODQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGlt
ZU51bWVyaWNGaWVsZEVsZW1lbnQuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBQTEFU
Rk9STShNQUMpCisKKyNpbmNsdWRlICJEYXRlVGltZUZpZWxkRWxlbWVudC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCA6IHB1Ymxp
YyBEYXRlVGltZUZpZWxkRWxlbWVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChEYXRl
VGltZU51bWVyaWNGaWVsZEVsZW1lbnQpOworcHVibGljOgorCitwcm90ZWN0ZWQ6CisgICAgRGF0
ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KERvY3VtZW50JiwgRmllbGRPd25lciYsIGNvbnN0IFN0
cmluZyYgcGxhY2Vob2xkZXIpOworCisgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rp
b25zOgorICAgIGJvb2wgaGFzVmFsdWUoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGluaXRpYWxp
emUoY29uc3QgQXRvbVN0cmluZyYgcHNldWRvKTsKKyAgICB2b2lkIHNldEVtcHR5VmFsdWUoKSBm
aW5hbDsKKyAgICB2b2lkIHNldFZhbHVlQXNJbnRlZ2VyKGludCkgb3ZlcnJpZGU7CisgICAgaW50
IHZhbHVlQXNJbnRlZ2VyKCkgY29uc3QgZmluYWw7CisgICAgU3RyaW5nIHZpc2libGVWYWx1ZSgp
IGNvbnN0IGZpbmFsOworCitwcml2YXRlOgorICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1
bmN0aW9uczoKKyAgICBTdHJpbmcgdmFsdWUoKSBjb25zdCBmaW5hbDsKKworICAgIFN0cmluZyBm
b3JtYXRWYWx1ZShpbnQpIGNvbnN0OworCisgICAgY29uc3QgU3RyaW5nIG1fcGxhY2Vob2xkZXI7
CisgICAgaW50IG1fdmFsdWU7CisgICAgYm9vbCBtX2hhc1ZhbHVlOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQ
RVMpICYmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQw
NjMwZTI2OGMwNjcyYTY1MzQyYTJhM2QyY2QwZDcyYzhmNWYyMgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQu
Y3BwCkBAIC0wLDAgKzEsMTA1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oIgorCisjaWYgRU5BQkxFKERB
VEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpICYmIFBMQVRGT1JNKE1BQykKKworI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERhdGVUaW1lU3ltYm9saWNG
aWVsZEVsZW1lbnQpOworCitzdGF0aWMgQXRvbVN0cmluZyBtYWtlVmlzaWJsZUVtcHR5VmFsdWUo
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHN5bWJvbHMpCit7CisgICAgdW5zaWduZWQgbWF4aW11bUxl
bmd0aCA9IDA7CisgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgc3ltYm9scy5z
aXplKCk7ICsraW5kZXgpCisgICAgICAgIG1heGltdW1MZW5ndGggPSBzdGQ6Om1heChtYXhpbXVt
TGVuZ3RoLCBudW1HcmFwaGVtZUNsdXN0ZXJzKHN5bWJvbHNbaW5kZXhdKSk7CisgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOworICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KG1heGltdW1MZW5n
dGgpOworICAgIGZvciAodW5zaWduZWQgbGVuZ3RoID0gMDsgbGVuZ3RoIDwgbWF4aW11bUxlbmd0
aDsgKytsZW5ndGgpCisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCctJyk7CisgICAgcmV0dXJuIGJ1
aWxkZXIudG9BdG9tU3RyaW5nKCk7Cit9CisKK0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6
OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93
bmVyJiBmaWVsZE93bmVyLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3ltYm9scykKKyAgICA6IERh
dGVUaW1lRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyKQorICAgICwgbV9zeW1ib2xz
KHN5bWJvbHMpCisgICAgLCBtX3Zpc2libGVFbXB0eVZhbHVlKG1ha2VWaXNpYmxlRW1wdHlWYWx1
ZShzeW1ib2xzKSkKKyAgICAsIG1fc2VsZWN0ZWRJbmRleCgtMSkKK3sKKyAgICBBU1NFUlQoIXN5
bWJvbHMuaXNFbXB0eSgpKTsKK30KKworYm9vbCBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50
OjpoYXNWYWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2VsZWN0ZWRJbmRleCA+PSAwOwor
fQorCit2b2lkIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUoY29uc3Qg
QXRvbVN0cmluZyYgcHNldWRvKQoreworICAgIERhdGVUaW1lRmllbGRFbGVtZW50Ojppbml0aWFs
aXplKHBzZXVkbyk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6c2V0
RW1wdHlWYWx1ZSgpCit7CisgICAgbV9zZWxlY3RlZEluZGV4ID0gaW52YWxpZEluZGV4OworICAg
IHVwZGF0ZVZpc2libGVWYWx1ZSgpOworfQorCit2b2lkIERhdGVUaW1lU3ltYm9saWNGaWVsZEVs
ZW1lbnQ6OnNldFZhbHVlQXNJbnRlZ2VyKGludCBuZXdTZWxlY3RlZEluZGV4KQoreworICAgIG1f
c2VsZWN0ZWRJbmRleCA9IHN0ZDo6bWF4KDAsIHN0ZDo6bWluKG5ld1NlbGVjdGVkSW5kZXgsIHN0
YXRpY19jYXN0PGludD4obV9zeW1ib2xzLnNpemUoKSAtIDEpKSk7CisgICAgdXBkYXRlVmlzaWJs
ZVZhbHVlKCk7Cit9CisKK1N0cmluZyBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojp2YWx1
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGhhc1ZhbHVlKCkgPyBtX3N5bWJvbHNbbV9zZWxlY3Rl
ZEluZGV4XSA6IGVtcHR5U3RyaW5nKCk7Cit9CisKK2ludCBEYXRlVGltZVN5bWJvbGljRmllbGRF
bGVtZW50Ojp2YWx1ZUFzSW50ZWdlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2VsZWN0ZWRJ
bmRleDsKK30KKworU3RyaW5nIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnZpc2libGVF
bXB0eVZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92aXNpYmxlRW1wdHlWYWx1ZTsKK30K
KworU3RyaW5nIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnZpc2libGVWYWx1ZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGhhc1ZhbHVlKCkgPyBtX3N5bWJvbHNbbV9zZWxlY3RlZEluZGV4
XSA6IHZpc2libGVFbXB0eVZhbHVlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBQTEFURk9STShN
QUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJv
bGljRmllbGRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5
bWJvbGljRmllbGRFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWM1YzJjNjdiMjY4OTgzMjc5ZDczOWQx
NTJhZTQ2NjIzNWFlNTQxYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaApAQCAtMCwwICsxLDYzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVU
X1RZUEVTKSAmJiBQTEFURk9STShNQUMpCisKKyNpbmNsdWRlICJEYXRlVGltZUZpZWxkRWxlbWVu
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERhdGVUaW1lU3ltYm9saWNGaWVs
ZEVsZW1lbnQgOiBwdWJsaWMgRGF0ZVRpbWVGaWVsZEVsZW1lbnQgeworICAgIFdURl9NQUtFX0lT
T19BTExPQ0FURUQoRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCk7Citwcm90ZWN0ZWQ6Cisg
ICAgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudChEb2N1bWVudCYsIEZpZWxkT3duZXImLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYpOworICAgIHNpemVfdCBzeW1ib2xzU2l6ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc3ltYm9scy5zaXplKCk7IH0KKyAgICBib29sIGhhc1ZhbHVlKCkgY29uc3QgZmlu
YWw7CisgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IEF0b21TdHJpbmcmIHBzZXVkbyk7CisgICAg
dm9pZCBzZXRFbXB0eVZhbHVlKCkgZmluYWw7CisgICAgdm9pZCBzZXRWYWx1ZUFzSW50ZWdlcihp
bnQpIGZpbmFsOworICAgIGludCB2YWx1ZUFzSW50ZWdlcigpIGNvbnN0IGZpbmFsOworCitwcml2
YXRlOgorICAgIHN0YXRpYyBjb25zdCBpbnQgaW52YWxpZEluZGV4ID0gLTE7CisKKyAgICBTdHJp
bmcgdmlzaWJsZUVtcHR5VmFsdWUoKSBjb25zdDsKKworICAgIC8vIERhdGVUaW1lRmllbGRFbGVt
ZW50IGZ1bmN0aW9uczoKKyAgICBTdHJpbmcgdmFsdWUoKSBjb25zdCBmaW5hbDsKKyAgICBTdHJp
bmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgZmluYWw7CisKKyAgICBjb25zdCBWZWN0b3I8U3RyaW5n
PiBtX3N5bWJvbHM7CisKKyAgICBjb25zdCBBdG9tU3RyaW5nIG1fdmlzaWJsZUVtcHR5VmFsdWU7
CisgICAgaW50IG1fc2VsZWN0ZWRJbmRleDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBQTEFURk9S
TShNQUMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405980</attachid>
            <date>2020-08-04 20:45:53 -0700</date>
            <delta_ts>2020-08-05 11:44:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215155-20200804234552.patch</filename>
            <type>text/plain</type>
            <size>74035</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1Mjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY2NjQ5MGJiZjJjNDc4
NmVlYzU2N2UxOTYzNGIzYjc4YmMzY2M4NS4uODE0ZDA2MmRjOTY1ZDRhYzkxNjRhMGM0OGVjY2M2
ZTA3YmNiNzZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzNyBAQAorMjAyMC0wOC0wNCAgQWRp
dHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBEYXRl
IGlucHV0cyBzaG91bGQgY29udGFpbiBlZGl0YWJsZSBjb21wb25lbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUxNTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHksIHVzZXJzIGFyZSB1
bmFibGUgdG8gZWRpdCB0aGUgdmFsdWVzIGluIGRhdGUgYW5kIHRpbWUgaW5wdXQgdHlwZXMuCisg
ICAgICAgIFRvIG1hdGNoIHN5c3RlbSBkYXRlIGNvbnRyb2xzLCB1c2VycyBzaG91bGQgYmUgYWJs
ZSB0byBzZWxlY3QgYW5kIGVkaXQKKyAgICAgICAgaW5kaXZpZHVhbCBjb21wb25lbnRzIG9mIHRo
ZSBpbnB1dC4gRm9yIGV4YW1wbGUsIDxpbnB1dCB0eXBlPSJkYXRlIj4gc2hvdWxkCisgICAgICAg
IGNvbnRhaW4gYW4gZWRpdGFibGUgeWVhciwgbW9udGgsIGFuZCBkYXkgY29udHJvbC4KKworICAg
ICAgICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbmFsaXR5IHdhcyBwcmVzZW50IGluIFdlYktpdCwg
dXAgdW50aWwgaXQgd2FzIHJlbW92ZWQKKyAgICAgICAgaW4gcjE1MDg3Ni4gUHJldmlvdXNseSBr
bm93biBhcyAiSU5QVVRfTVVMVElQTEVfRklFTERTX1VJIiwgdGhlIGZlYXR1cmUgd2FzCisgICAg
ICAgIHJlbW92ZWQgYXMgaXQgd2FzIG9ubHkgdXNlZCBieSBDaHJvbWl1bSBwb3J0LiBIb3dldmVy
LCBtdWNoIG9mIHRoZSByZW1vdmVkCisgICAgICAgIGxvZ2ljIHJlbWFpbnMgdXNlZnVsIGFuZCBp
cyByZXN1cmZhY2VkIGluIHRoaXMgcGF0Y2guIE1vZGlmaWNhdGlvbnMgd2VyZSBtYWRlCisgICAg
ICAgIHRvIHVwZGF0ZSB0aGUgY29kZSB0byBmb2xsb3cgY3VycmVudCBXZWJLaXQgcHJhY3RpY2Vz
LgorCisgICAgICAgIERhdGVUaW1lRWRpdEVsZW1lbnQgaXMgYSB3cmFwcGVyIGVsZW1lbnQgdGhh
dCBjb250YWlucyBpbmRpdmlkdWFsIGZpZWxkcy4KKyAgICAgICAgVGhlIGZpZWxkcyBhcmUgYWxs
IERhdGVUaW1lRmllbGRFbGVtZW50cy4gTm90ZSB0aGF0IERhdGVUaW1lRmllbGRFbGVtZW50cwor
ICAgICAgICBhcmUgZnVydGhlciBzcGVjaWFsaXplZCBpbnRvIERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudCAoZm9yIGludGVncmFsCisgICAgICAgIHZhbHVlcykgYW5kIERhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQgKGZvciBzeW1ib2xpYyB2YWx1ZXMgc3VjaCBhcyBBLk0KKyAgICAgICAg
YW5kIFAuTSkuIERhdGVUaW1lRWRpdEVsZW1lbnQgYnVpbGRzIHRoZSBjb250cm9sIHVzaW5nIHRo
ZSB2aXNpdG9yIHBhdHRlcm4KKyAgICAgICAgYW5kIGV4aXN0aW5nIHBhcnNpbmcgbG9naWMgY29u
dGFpbmVkIGluIERhdGVUaW1lRm9ybWF0LiAKKworICAgICAgICBJbiBvcmRlciB0byByZWR1Y2Ug
dGhlIHBhdGNoIHNpemUsIHRoaXMgcGF0Y2ggb25seSBzZXRzIHVwIHRoZSByZW5kZXJpbmcKKyAg
ICAgICAgYW5kIGxheW91dCBvZiBtdWx0aXBsZSBmaWVsZHMgZm9yIDxpbnB1dCB0eXBlPSJkYXRl
Ij4uIFVwY29taW5nIHBhdGNoZXMgd2lsbAorICAgICAgICBhZGQgcmVuZGVyaW5nIGZvciBvdGhl
ciBkYXRlL3RpbWUgaW5wdXQgdHlwZXMgYW5kIGludHJvZHVjZSBlZGl0YWJpbGl0eS4KKworICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBjc3MvaHRtbC5jc3M6CisgICAgICAgIChpbnB1dDo6LXdlYmtp
dC1kYXRldGltZS1lZGl0KToKKyAgICAgICAgKGlucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQt
ZmllbGRzLXdyYXBwZXIpOgorICAgICAgICAoaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15
ZWFyLWZpZWxkLCk6CisgICAgICAgIChpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LXllYXIt
ZmllbGQ6Zm9jdXMsKToKKyAgICAgICAgKGlucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtdGV4
dCk6CisgICAgICAgICogaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZvcm1hdFZhbGlkYXRvcjo6RGF0ZVRpbWVG
b3JtYXRWYWxpZGF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGb3JtYXRWYWxpZGF0
b3I6OnZpc2l0RmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGb3JtYXRWYWxpZGF0
b3I6OnZhbGlkYXRlRm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNv
cmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3Vi
dHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0
VHlwZTo6dXBkYXRlSW5uZXJUZXh0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUNob29z
ZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnZhbHVlRm9yRWRpdENvbnRyb2wgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6Omxv
Y2FsZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIGh0bWwvQmFzZUNob29zZXJPbmx5RGF0
ZUFuZFRpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0
VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEYXRlSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVJbnB1dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyBjb25zdCk6CisgICAgICAg
ICogaHRtbC9EYXRlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9EYXRlVGltZUxvY2FsSW5w
dXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTG9jYWxJbnB1dFR5cGU6Omlz
VmFsaWRGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVMb2NhbElucHV0
VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0RhdGVU
aW1lTG9jYWxJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMg
Y29uc3QpOgorICAgICAgICAqIGh0bWwvTW9udGhJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1s
L1RpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6aXNW
YWxpZEZvcm1hdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpzZXR1
cExheW91dFBhcmFtZXRlcnMgY29uc3QpOgorICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5o
OgorICAgICAgICAqIGh0bWwvV2Vla0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
ZWVrSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Oldl
ZWtJbnB1dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyBjb25zdCk6CisgICAgICAgICogaHRt
bC9XZWVrSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxl
bWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0QnVpbGRlcjo6
RGF0ZVRpbWVFZGl0QnVpbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRCdWls
ZGVyOjpidWlsZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNp
dEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEJ1aWxkZXI6OnZpc2l0TGl0
ZXJhbCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpFZGl0Q29udHJv
bE93bmVyOjp+RWRpdENvbnRyb2xPd25lcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVk
aXRFbGVtZW50OjpEYXRlVGltZUVkaXRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6On5EYXRlVGltZUVkaXRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZpZWxkc1dyYXBwZXJFbGVtZW50IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmFkZEZpZWxkKToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUVkaXRFbGVtZW50OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVF
ZGl0RWxlbWVudDo6bG9jYWxlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUVkaXRFbGVtZW50OjpyZXNldEZpZWxkcyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUVkaXRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUVkaXRFbGVtZW50OjpzZXRFbXB0eVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRl
VGltZUVkaXRFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1l
RmllbGRFbGVtZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxk
RWxlbWVudDo6RmllbGRPd25lcjo6fkZpZWxkT3duZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lRmllbGRFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lRmllbGRFbGVtZW50Ojppbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lRmllbGRFbGVtZW50Ojpsb2NhbGVGb3JPd25lciBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6bG9jYWxlSWRlbnRpZmllciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6dXBkYXRlVmlzaWJsZVZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50OjpzdXBwb3J0c0ZvY3Vz
IGNvbnN0KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRGF5RmllbGRFbGVtZW50OjpEYXRlVGlt
ZURheUZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZURheUZpZWxkRWxl
bWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRGF5RmllbGRFbGVtZW50
OjpzZXRWYWx1ZUFzRGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU1vbnRoRmllbGRF
bGVtZW50OjpEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZU1vbnRoRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lU3ltYm9saWNNb250
aEZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljTW9udGhG
aWVsZEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGlj
TW9udGhGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVUaW1lWWVhckZpZWxkRWxlbWVudDo6RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVUaW1lWWVhckZpZWxkRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVUaW1lWWVhckZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUpOgorICAg
ICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5oOiBBZGRlZC4KKyAgICAg
ICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJpY0Zp
ZWxkRWxlbWVudDo6Zm9ybWF0VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVOdW1lcmljRmllbGRFbGVtZW50OjpoYXNWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpzZXRFbXB0eVZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0ludGVn
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojp2YWx1
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6
OnZhbHVlQXNJbnRlZ2VyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJp
Y0ZpZWxkRWxlbWVudDo6dmlzaWJsZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL3NoYWRv
dy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgICogaHRtbC9z
aGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6bWFrZVZpc2libGVFbXB0eVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6aGFzVmFsdWUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6
aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVt
ZW50OjpzZXRFbXB0eVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNG
aWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNJbnRlZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnZhbHVlQXNJbnRlZ2VyIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnZpc2libGVFbXB0
eVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVs
ZW1lbnQ6OnZpc2libGVWYWx1ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRp
bWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnN5bWJvbHNTaXplIGNvbnN0KToKKwogMjAyMC0wOC0w
NCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgIkRvdWJsZURv
d24gQ2FzaW5vIiByZXNwaW4gYnV0dG9uIHN0b3BzIHdvcmtpbmcgd2l0aCB0cmFja3BhZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAppbmRleCBhMDU3Nzg5YjViNWQzNzFiNzQyN2NjY2U3YmI1MWUwNDkyMGExNjU3Li42
OTBhMGYxNzFlYTYwYjUxYjQ1MmJiOGMwY2Q5ZDUyMjA5NzFmYzdlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApA
QCAtMTMxMCw2ICsxMzEwLDExIEBAIGh0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAK
IGh0bWwvc2hhZG93L0F1dG9GaWxsQnV0dG9uRWxlbWVudC5jcHAKIGh0bWwvc2hhZG93L0RhdGFM
aXN0QnV0dG9uRWxlbWVudC5jcHAKIGh0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNw
cAoraHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKK2h0bWwvc2hhZG93L0RhdGVU
aW1lRmllbGRFbGVtZW50LmNwcAoraHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNw
cAoraHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcAoraHRtbC9zaGFk
b3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAKIGh0bWwvc2hhZG93L01lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwCiBodG1sL3NoYWRvdy9Qcm9ncmVzc1No
YWRvd0VsZW1lbnQuY3BwCiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MDJlMTgwMmM0OWYwOThlOWNjZGU4Y2QzOTlhMzNlMDgyOGJjYTE5Zi4uNzJkMWQ3YWYxZGJjMmZj
ODI0MmM4NTMwNjczODY4Zjc4MDdhNTY0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA3MSw2ICs1MDcxLDExIEBACiAJCUU1
OEI0NUJBMjBBRDA3REQwMDk5MTAyNSAvKiBEYXRhTGlzdEJ1dHRvbkVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1OEI0NUI4MjBBRDA3REQw
MDk5MTAyNSAvKiBEYXRhTGlzdEJ1dHRvbkVsZW1lbnQuaCAqLzsgfTsKIAkJRTU5REQ0QjgyMTA5
ODI4NzAwM0M4QjQ3IC8qIExpc3RCdXR0b25BcnJvdy5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1OURENEI3MjEwOTgyODUwMDNDOEI0NyAvKiBM
aXN0QnV0dG9uQXJyb3cucG5nICovOyB9OwogCQlFNUJBN0Q2MzE1MTQzN0NBMDBGRTFFM0YgLyog
TGVuZ3RoRnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFNUJBN0Q2MjE1MTQzN0NBMDBGRTFFM0YgLyogTGVuZ3RoRnVuY3Rpb25zLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTVGMDZBRTcy
NEQ0ODQ3QjAwQkJDNEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUYwNkFFNTI0RDQ4NDdCMDBCQkM0Rjgg
LyogRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCAqLzsgfTsKKwkJRTVGMDZBRUIyNEQ0OUJGNzAwQkJD
NEY4IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVGMDZBRTkyNEQ0OUJGNzAwQkJDNEY4IC8qIERh
dGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oICovOyB9OworCQlFNUYwNkFFRjI0RDRBNjM3MDBC
QkM0RjggLyogRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVGMDZBRUQyNEQ0QTYzNzAwQkJDNEY4IC8q
IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaCAqLzsgfTsKKwkJRTVGMDZBRjMyNEQ0QUFF
NDAwQkJDNEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVGMDZBRjEyNEQ0QUFFNDAwQkJDNEY4IC8qIERh
dGVUaW1lRmllbGRFbGVtZW50cy5oICovOyB9OworCQlFNUYwNkFGNzI0RDRCQjU2MDBCQkM0Rjgg
LyogRGF0ZVRpbWVFZGl0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTVGMDZBRjUyNEQ0QkI1NjAwQkJDNEY4IC8qIERhdGVUaW1lRWRpdEVs
ZW1lbnQuaCAqLzsgfTsKIAkJRTcxNDY3QjMyNEFCQUVGMjAwRkIyRjUwIC8qIEF1ZGlvTm9kZU9w
dGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU3
MTQ2N0IxMjRBQkFFRjEwMEZCMkY1MCAvKiBBdWRpb05vZGVPcHRpb25zLmggKi87IH07CiAJCUU3
MTQ2N0I2MjRBQkFGMUQwMEZCMkY1MCAvKiBQYW5uZXJPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzE0NjdCNTI0QUJBRjFEMDBGQjJGNTAg
LyogUGFubmVyT3B0aW9ucy5oICovOyB9OwogCQlFNzU1RTg5MjI0Qzc0MzRCMDA5RjdDMjMgLyog
UGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU3NTVFODhGMjRDNzQzNEIwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVD
b25zdHJhaW50cy5oICovOyB9OwpAQCAtMTU4ODUsNiArMTU4OTAsMTYgQEAKIAkJRTU4QjQ1Qjgy
MEFEMDdERDAwOTkxMDI1IC8qIERhdGFMaXN0QnV0dG9uRWxlbWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEYXRhTGlzdEJ1dHRvbkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTU5REQ0QjcyMTA5ODI4NTAwM0M4QjQ3IC8qIExpc3RCdXR0b25BcnJvdy5wbmcgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGgg
PSBMaXN0QnV0dG9uQXJyb3cucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNUJB
N0Q2MjE1MTQzN0NBMDBGRTFFM0YgLyogTGVuZ3RoRnVuY3Rpb25zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IExlbmd0aEZ1bmN0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFNUYwNkFFNTI0RDQ4NDdCMDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1l
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTVGMDZBRTYyNEQ0ODQ3QjAwQkJDNEY4IC8qIERhdGVUaW1lRmll
bGRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhdGVUaW1lRmllbGRFbGVtZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVGMDZBRTkyNEQ0OUJGNzAwQkJDNEY4
IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRlVGlt
ZU51bWVyaWNGaWVsZEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVG
MDZBRUEyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNUYwNkFFRDI0RDRBNjM3MDBCQkM0RjggLyogRGF0
ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRlVGltZVN5bWJv
bGljRmllbGRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1RjA2QUVF
MjRENEE2MzcwMEJCQzRGOCAvKiBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFNUYwNkFGMTI0RDRBQUU0MDBCQkM0RjggLyogRGF0ZVRp
bWVGaWVsZEVsZW1lbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGVUaW1lRmllbGRFbGVtZW50cy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNUYwNkFGMjI0RDRBQUU0MDBCQkM0Rjgg
LyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhdGVUaW1l
RmllbGRFbGVtZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1RjA2QUY1
MjRENEJCNTYwMEJCQzRGOCAvKiBEYXRlVGltZUVkaXRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERhdGVUaW1lRWRpdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVG
MDZBRjYyNEQ0QkI1NjAwQkJDNEY4IC8qIERhdGVUaW1lRWRpdEVsZW1lbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUU3MTQ2N0IxMjRBQkFFRjEwMEZCMkY1MCAvKiBBdWRpb05vZGVPcHRpb25zLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvTm9kZU9wdGlvbnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTcxNDY3QjQyNEFCQUYwQjAwRkIyRjUwIC8qIEF1
ZGlvTm9kZU9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEF1ZGlvTm9kZU9wdGlvbnMuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFNzE0NjdCNTI0QUJBRjFEMDBGQjJGNTAgLyogUGFubmVyT3B0
aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYW5uZXJPcHRpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODYyMiw2ICsxODYzNywxNiBAQAogCQkJ
CTdDMUU5NzI1MUE5Rjk4MzQwMDdCRjBGQiAvKiBBdXRvRmlsbEJ1dHRvbkVsZW1lbnQuY3BwICov
LAogCQkJCTdDMUU5NzI2MUE5Rjk4MzQwMDdCRjBGQiAvKiBBdXRvRmlsbEJ1dHRvbkVsZW1lbnQu
aCAqLywKIAkJCQlFNThCNDVCODIwQUQwN0REMDA5OTEwMjUgLyogRGF0YUxpc3RCdXR0b25FbGVt
ZW50LmggKi8sCisJCQkJRTVGMDZBRjYyNEQ0QkI1NjAwQkJDNEY4IC8qIERhdGVUaW1lRWRpdEVs
ZW1lbnQuY3BwICovLAorCQkJCUU1RjA2QUY1MjRENEJCNTYwMEJCQzRGOCAvKiBEYXRlVGltZUVk
aXRFbGVtZW50LmggKi8sCisJCQkJRTVGMDZBRTYyNEQ0ODQ3QjAwQkJDNEY4IC8qIERhdGVUaW1l
RmllbGRFbGVtZW50LmNwcCAqLywKKwkJCQlFNUYwNkFFNTI0RDQ4NDdCMDBCQkM0RjggLyogRGF0
ZVRpbWVGaWVsZEVsZW1lbnQuaCAqLywKKwkJCQlFNUYwNkFGMjI0RDRBQUU0MDBCQkM0RjggLyog
RGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcCAqLywKKwkJCQlFNUYwNkFGMTI0RDRBQUU0MDBCQkM0
RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmggKi8sCisJCQkJRTVGMDZBRUEyNEQ0OUJGNzAw
QkJDNEY4IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAgKi8sCisJCQkJRTVGMDZB
RTkyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oICovLAor
CQkJCUU1RjA2QUVFMjRENEE2MzcwMEJCQzRGOCAvKiBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVt
ZW50LmNwcCAqLywKKwkJCQlFNUYwNkFFRDI0RDRBNjM3MDBCQkM0RjggLyogRGF0ZVRpbWVTeW1i
b2xpY0ZpZWxkRWxlbWVudC5oICovLAogCQkJCUE3QzlBQkY2MTM1N0EzQkYwMEY1NTAzRiAvKiBE
ZXRhaWxzTWFya2VyQ29udHJvbC5jcHAgKi8sCiAJCQkJQTdDOUFCRjcxMzU3QTNCRjAwRjU1MDNG
IC8qIERldGFpbHNNYXJrZXJDb250cm9sLmggKi8sCiAJCQkJNTEwMTkyRDMxOEI2QjlCNzAwN0ZD
N0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudC5jcHAgKi8sCkBAIC0zMDY1MSw4ICszMDY3
NiwxMyBAQAogCQkJCUY1NUIzREI2MTI1MUYxMkQwMDNFRjI2OSAvKiBEYXRlSW5wdXRUeXBlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzN0M3MzhGMzFFREJERThBMDAzRjJCMEIgLyogRGF0ZVRpbWVD
aG9vc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0M3MzhGNDFFREJERThEMDAzRjJCMEIgLyog
RGF0ZVRpbWVDaG9vc2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlFNUYwNkFGNzI0RDRC
QjU2MDBCQkM0RjggLyogRGF0ZVRpbWVFZGl0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RTVGMDZBRTcyNEQ0ODQ3QjAwQkJDNEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFNUYwNkFGMzI0RDRBQUU0MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVs
ZW1lbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NTNFQjYzNzE1OUM1NzA0MDAwMDFCQjcgLyog
RGF0ZVRpbWVGb3JtYXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzREJBMTI1MUYxMkQwMDNF
RjI2OSAvKiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNUYw
NkFFQjI0RDQ5QkY3MDBCQkM0RjggLyogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKKwkJCQlFNUYwNkFFRjI0RDRBNjM3MDBCQkM0RjggLyogRGF0ZVRpbWVTeW1i
b2xpY0ZpZWxkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2QTEyQkUxQTAwOTIzNzAw
QzZERTcyIC8qIERlYnVnUGFnZU92ZXJsYXlzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NUZFQTVE
MDE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzE1QUQ3
MjAyMDUwNTEzMjAwRDU5MkRDIC8qIERlY2xhcmF0aXZlQW5pbWF0aW9uLmggaW4gSGVhZGVycyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9odG1sLmNzcwppbmRleCBkYWY4OTE5ZWIxNmQ3M2RjN2YwNTlkMzFmMDAzNjNjNWJl
ODcyMTJlLi5lMGJmZTgxODVjZmIwZTc4YTU5MDgzYjc4YjQ2MWY3NTI0MmNkMTZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L2h0bWwuY3NzCkBAIC00ODQsNiArNDg0LDM0IEBAIGlucHV0Ojotd2Via2l0LWRhdGUtYW5kLXRp
bWUtdmFsdWUgewogI2VuZGlmCiB9CiAKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQgewor
ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICBvdmVyZmxvdzogaGlkZGVuOworfQorCitp
bnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LWZpZWxkcy13cmFwcGVyIHsKKyAgICBkaXNwbGF5
OiBpbmxpbmUtYmxvY2s7Cit9CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQteWVhci1m
aWVsZCwKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtbW9udGgtZmllbGQsCitpbnB1dDo6
LXdlYmtpdC1kYXRldGltZS1lZGl0LWRheS1maWVsZCB7CisgICAgZGlzcGxheTogaW5saW5lOwor
ICAgIHBhZGRpbmc6IDFweDsKK30KKworaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15ZWFy
LWZpZWxkOmZvY3VzLAoraW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1tb250aC1maWVsZDpm
b2N1cywKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtZGF5LWZpZWxkOmZvY3VzIHsKKyAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiAtYXBwbGUtc3lzdGVtLWNvbnRyb2wtYWNjZW50OworICAgIGNv
bG9yOiB3aGl0ZTsKKyAgICBvdXRsaW5lOiBub25lOworfQorCitpbnB1dDo6LXdlYmtpdC1kYXRl
dGltZS1lZGl0LXRleHQgeworICAgIGRpc3BsYXk6IGlubGluZTsKK30KKwogaW5wdXQ6Oi13ZWJr
aXQtaW5uZXItc3Bpbi1idXR0b24gewogICAgIC13ZWJraXQtYXBwZWFyYW5jZTogaW5uZXItc3Bp
bi1idXR0b247CiAgICAgZGlzcGxheTogYmxvY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCmluZGV4
IDU0MjFmZGI0YmY2YjgxZGU5ZjU0ZTFiMjE2NjVhOTc1YmQzYTMzMTUuLjg3MzYxNDljM2FiNmQy
ZjRmMDk0NmQyMmExODIzOWI2NmM4ZjUxMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCkBAIC0y
OSwxNiArMjksNzggQEAKIAogI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQog
CisjaW5jbHVkZSAiRGF0ZVRpbWVGb3JtYXQuaCIKICNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5j
bHVkZSAiUGxhdGZvcm1Mb2NhbGUuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJVc2VyR2Vz
dHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERhdGVUaW1lRm9ybWF0VmFsaWRhdG9yIDogcHVibGlj
IERhdGVUaW1lRm9ybWF0OjpUb2tlbkhhbmRsZXIgeworcHVibGljOgorICAgIERhdGVUaW1lRm9y
bWF0VmFsaWRhdG9yKCkgeyB9CisKKyAgICB2b2lkIHZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZSwgaW50KSBmaW5hbDsKKyAgICB2b2lkIHZpc2l0TGl0ZXJhbChjb25zdCBTdHJp
bmcmKSBmaW5hbCB7IH0KKworICAgIGJvb2wgdmFsaWRhdGVGb3JtYXQoY29uc3QgU3RyaW5nJiBm
b3JtYXQsIGNvbnN0IEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlJik7CisKK3By
aXZhdGU6CisgICAgT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+IG1f
cmVzdWx0czsKK307CisKK3ZvaWQgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0b3I6OnZpc2l0RmllbGQo
RGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSBmaWVsZFR5cGUsIGludCkKK3sKKyAgICBzd2l0Y2gg
KGZpZWxkVHlwZSkgeworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVllYXI6Cisg
ICAgICAgIG1fcmVzdWx0cy5hZGQoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFz
WWVhcik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlw
ZU1vbnRoOgorICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRoU3RhbmRBbG9u
ZToKKyAgICAgICAgbV9yZXN1bHRzLmFkZChEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRz
OjpIYXNNb250aCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZp
ZWxkVHlwZVdlZWtPZlllYXI6CisgICAgICAgIG1fcmVzdWx0cy5hZGQoRGF0ZVRpbWVGb3JtYXRW
YWxpZGF0aW9uUmVzdWx0czo6SGFzV2Vlayk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0
ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZURheU9mTW9udGg6CisgICAgICAgIG1fcmVzdWx0cy5hZGQo
RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzRGF5KTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlUGVyaW9kOgorICAgICAgICBtX3Jl
c3VsdHMuYWRkKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0FNUE0pOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMTE6Cisg
ICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjEyOgorICAgICAgICBtX3Jlc3Vs
dHMuYWRkKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0hvdXIpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMjM6CisgICAg
Y2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjI0OgorICAgICAgICBtX3Jlc3VsdHMu
YWRkKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0hvdXIpOworICAgICAgICBt
X3Jlc3VsdHMuYWRkKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0FNUE0pOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNaW51dGU6
CisgICAgICAgIG1fcmVzdWx0cy5hZGQoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6
SGFzV2Vlayk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxk
VHlwZVNlY29uZDoKKyAgICAgICAgbV9yZXN1bHRzLmFkZChEYXRlVGltZUZvcm1hdFZhbGlkYXRp
b25SZXN1bHRzOjpIYXNTZWNvbmQpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBicmVhazsKKyAgICB9Cit9CisKK2Jvb2wgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0b3I6OnZh
bGlkYXRlRm9ybWF0KGNvbnN0IFN0cmluZyYgZm9ybWF0LCBjb25zdCBCYXNlQ2hvb3Nlck9ubHlE
YXRlQW5kVGltZUlucHV0VHlwZSYgaW5wdXRUeXBlKQoreworICAgIGlmICghRGF0ZVRpbWVGb3Jt
YXQ6OnBhcnNlKGZvcm1hdCwgKnRoaXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0
dXJuIGlucHV0VHlwZS5pc1ZhbGlkRm9ybWF0KG1fcmVzdWx0cyk7Cit9CisKIEJhc2VDaG9vc2Vy
T25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjp+QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1
dFR5cGUoKQogewogICAgIGNsb3NlRGF0ZVRpbWVDaG9vc2VyKCk7CkBAIC02MSwxOCArMTIzLDQ2
IEBAIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmhhbmRsZURPTUFj
dGl2YXRlRXZlbnQoRXZlbnQmKQogCiB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5w
dXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKLSAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHZhbHVlQ29udGFpbmVyUHNldWRvKCItd2Vi
a2l0LWRhdGUtYW5kLXRpbWUtdmFsdWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7Ci0KICAgICBBU1NFUlQoZWxlbWVudCgpKTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgbV9k
YXRlVGltZUVkaXRFbGVtZW50ID0gRGF0ZVRpbWVFZGl0RWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQo
KS0+ZG9jdW1lbnQoKSwgKnRoaXMpOworICAgIGVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9v
dCgpLT5hcHBlbmRDaGlsZCgqbV9kYXRlVGltZUVkaXRFbGVtZW50KTsKKyNlbHNlCisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2YWx1ZUNvbnRh
aW5lclBzZXVkbygiLXdlYmtpdC1kYXRlLWFuZC10aW1lLXZhbHVlIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGF1dG8gdmFsdWVDb250YWluZXIgPSBIVE1MRGl2RWxl
bWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSk7CiAgICAgdmFsdWVDb250YWluZXIt
PnNldFBzZXVkbyh2YWx1ZUNvbnRhaW5lclBzZXVkbyk7CiAgICAgZWxlbWVudCgpLT51c2VyQWdl
bnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKHZhbHVlQ29udGFpbmVyKTsKKyNlbmRpZgorCiAg
ICAgdXBkYXRlSW5uZXJUZXh0VmFsdWUoKTsKIH0KIAordm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRl
QW5kVGltZUlucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUoKQoreworI2lmIFBMQVRGT1JN
KE1BQykKKyAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQgPSBudWxscHRyOworI2VuZGlmCit9CisK
IHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnVwZGF0ZUlubmVyVGV4
dFZhbHVlKCkKIHsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKKyNpZiBQTEFURk9STShNQUMpCisg
ICAgaWYgKCFtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIERh
dGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMgbGF5b3V0UGFyYW1ldGVycyhlbGVt
ZW50KCktPmxvY2FsZSgpKTsKKyAgICBzZXR1cExheW91dFBhcmFtZXRlcnMobGF5b3V0UGFyYW1l
dGVycyk7CisKKyAgICBpZiAoIURhdGVUaW1lRm9ybWF0VmFsaWRhdG9yKCkudmFsaWRhdGVGb3Jt
YXQobGF5b3V0UGFyYW1ldGVycy5kYXRlVGltZUZvcm1hdCwgKnRoaXMpKQorICAgICAgICBsYXlv
dXRQYXJhbWV0ZXJzLmRhdGVUaW1lRm9ybWF0ID0gbGF5b3V0UGFyYW1ldGVycy5mYWxsYmFja0Rh
dGVUaW1lRm9ybWF0OworCisgICAgYXV0byBkYXRlID0gcGFyc2VUb0RhdGVDb21wb25lbnRzKGVs
ZW1lbnQoKS0+dmFsdWUoKSk7CisgICAgaWYgKCFkYXRlKQorICAgICAgICBtX2RhdGVUaW1lRWRp
dEVsZW1lbnQtPnNldEVtcHR5VmFsdWUobGF5b3V0UGFyYW1ldGVycyk7CisgICAgZWxzZQorICAg
ICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnNldFZhbHVlQXNEYXRlKGxheW91dFBhcmFtZXRl
cnMsICpkYXRlKTsKKyNlbHNlCiAgICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBlbGVtZW50KCktPnVz
ZXJBZ2VudFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOwogICAgIGlmICghaXM8SFRNTEVsZW1l
bnQ+KG5vZGUpKQogICAgICAgICByZXR1cm47CkBAIC04Miw2ICsxNzIsNyBAQCB2b2lkIEJhc2VD
aG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjp1cGRhdGVJbm5lclRleHRWYWx1ZSgpCiAg
ICAgICAgIGRpc3BsYXlWYWx1ZSA9ICIgIl9zOwogICAgIH0KICAgICBkb3duY2FzdDxIVE1MRWxl
bWVudD4oKm5vZGUpLnNldElubmVyVGV4dChkaXNwbGF5VmFsdWUpOworI2VuZGlmCiB9CiAKIHZv
aWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0
cmluZyYgdmFsdWUsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2
ZW50QmVoYXZpb3IpCkBAIC0xNTQsNiArMjQ1LDE3IEBAIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0
ZUFuZFRpbWVJbnB1dFR5cGU6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYK
ICAgICBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSk7CiB9
CiAKK1N0cmluZyBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6dmFsdWVGb3JF
ZGl0Q29udHJvbCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGVsZW1lbnQoKSk7CisgICAgcmV0dXJu
IGVsZW1lbnQoKS0+dmFsdWUoKTsKK30KKworQXRvbVN0cmluZyBCYXNlQ2hvb3Nlck9ubHlEYXRl
QW5kVGltZUlucHV0VHlwZTo6bG9jYWxlSWRlbnRpZmllcigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGVsZW1lbnQoKS0+Y29tcHV0ZUluaGVyaXRlZExhbmd1YWdlKCk7Cit9CisKIH0KIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRU
aW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVB
bmRUaW1lSW5wdXRUeXBlLmgKaW5kZXggYTNmMWNmNWE1YjJhY2EwY2E4ZTk5NTE4MTE2OTUyMDBh
MzM3OGYwZC4uMzk4MjUzOTc2OTAyZDQ2YTU5NTlkOTQ2ZGRjY2RjYWU2MzcxYTNlNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0
VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRp
bWVJbnB1dFR5cGUuaApAQCAtMzIsMjAgKzMyLDQ4IEBACiAjaW5jbHVkZSAiQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVDaG9vc2VyLmgiCiAjaW5jbHVkZSAi
RGF0ZVRpbWVDaG9vc2VyQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgorCisj
aWYgUExBVEZPUk0oTUFDKQorI2luY2x1ZGUgIkRhdGVUaW1lRWRpdEVsZW1lbnQuaCIKKyNlbmRp
ZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEJhc2VDaG9vc2VyT25seURhdGVBbmRU
aW1lSW5wdXRUeXBlIDogcHVibGljIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSwgcHJpdmF0ZSBE
YXRlVGltZUNob29zZXJDbGllbnQgeworZW51bSBjbGFzcyBEYXRlVGltZUZvcm1hdFZhbGlkYXRp
b25SZXN1bHRzIDogdWludDhfdCB7CisgICAgSGFzWWVhciA9IDEgPDwgMCwKKyAgICBIYXNNb250
aCA9IDEgPDwgMSwKKyAgICBIYXNXZWVrID0gMSA8PCAyLAorICAgIEhhc0RheSA9IDEgPDwgMywK
KyAgICBIYXNBTVBNID0gMSA8PCA0LAorICAgIEhhc0hvdXIgPSAxIDw8IDUsCisgICAgSGFzTWlu
dXRlID0gMSA8PCA2LAorICAgIEhhc1NlY29uZCA9IDEgPDwgNywKK307CisKK2NsYXNzIEJhc2VD
aG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlIDogcHVibGljIEJhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZSwgcHJpdmF0ZSBEYXRlVGltZUNob29zZXJDbGllbnQsIHByaXZhdGUgRGF0ZVRpbWVF
ZGl0RWxlbWVudDo6RWRpdENvbnRyb2xPd25lciB7CitwdWJsaWM6CisgICAgdmlydHVhbCBib29s
IGlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+
KSBjb25zdCA9IDA7CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBCYXNlQ2hvb3Nlck9ubHlE
YXRlQW5kVGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VEYXRl
QW5kVGltZUlucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB+QmFzZUNob29zZXJPbmx5RGF0ZUFu
ZFRpbWVJbnB1dFR5cGUoKTsKIAorI2lmIFBMQVRGT1JNKE1BQykKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRl
cnMmKSBjb25zdCA9IDA7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUlubmVy
VGV4dFZhbHVlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjbG9zZURhdGVUaW1lQ2hvb3NlcigpOwog
CisgICAgLy8gRGF0ZVRpbWVFZGl0RWxlbWVudDo6RWRpdENvbnRyb2xPd25lciBmdW5jdGlvbnM6
CisgICAgU3RyaW5nIHZhbHVlRm9yRWRpdENvbnRyb2woKSBjb25zdCBmaW5hbDsKKyAgICBBdG9t
U3RyaW5nIGxvY2FsZUlkZW50aWZpZXIoKSBjb25zdCBmaW5hbDsKKwogICAgIC8vIElucHV0VHlw
ZSBmdW5jdGlvbnM6CiAgICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBkZXN0cm95U2hhZG93U3VidHJlZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGV0YWNo
KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVl
Q2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgb3ZlcnJpZGU7CiAgICAgdm9pZCBoYW5k
bGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50Jikgb3ZlcnJpZGU7CkBAIC02MSw2ICs4OSw5IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkaWRFbmRDaG9vc2VyKCkgZmluYWw7CiAKICAgICBSZWZQdHI8RGF0
ZVRpbWVDaG9vc2VyPiBtX2RhdGVUaW1lQ2hvb3NlcjsKKyNpZiBQTEFURk9STShNQUMpCisgICAg
UmVmUHRyPERhdGVUaW1lRWRpdEVsZW1lbnQ+IG1fZGF0ZVRpbWVFZGl0RWxlbWVudDsKKyNlbmRp
ZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKaW5kZXggM2UxNzI0NzA2MTMyNWQwYTI4ZTRkMTRj
YTk4NDBhZGQyYzViNDllMi4uODI3ZDAxYjlmMzZmMjgxNzdhN2MyMGJiZmIxNWYzMjQ5OTIwY2Uw
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5o
CkBAIC01Myw4ICs1Myw5IEBAIHByb3RlY3RlZDoKICAgICBib29sIGlzS2V5Ym9hcmRGb2N1c2Fi
bGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCiAKLXByaXZhdGU6CiAg
ICAgdmlydHVhbCBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRz
KGNvbnN0IFN0cmluZ1ZpZXcmKSBjb25zdCA9IDA7CisKK3ByaXZhdGU6CiAgICAgdmlydHVhbCBP
cHRpb25hbDxEYXRlQ29tcG9uZW50cz4gc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRv
dWJsZSkgY29uc3QgPSAwOwogCiAgICAgZG91YmxlIHZhbHVlQXNEYXRlKCkgY29uc3Qgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcAppbmRleCBhNWQ2ZDllZjI4Nzky
MTY4ZmU5Y2ZiZjY2N2FjMDE0OWRkMzA4MTA0Li42YzlkMWU4NjM0YTE0YzcyNzU3OTc2MzM2ZThi
ZmRkMjM2NWY5YTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKQEAgLTM1
LDYgKzM1LDcgQEAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKKyNpbmNsdWRlICJQbGF0Zm9y
bUxvY2FsZS5oIgogI2luY2x1ZGUgIlN0ZXBSYW5nZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC04Niw1ICs4NywyMCBAQCBib29sIERhdGVJbnB1dFR5cGU6OmlzRGF0ZUZpZWxkKCkgY29u
c3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBEYXRlSW5wdXRUeXBlOjppc1ZhbGlkRm9y
bWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPiByZXN1bHRzKSBj
b25zdAoreworICAgIHJldHVybiByZXN1bHRzLmNvbnRhaW5zKERhdGVUaW1lRm9ybWF0VmFsaWRh
dGlvblJlc3VsdHM6Okhhc1llYXIpCisgICAgICAgICYmIHJlc3VsdHMuY29udGFpbnMoRGF0ZVRp
bWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzTW9udGgpCisgICAgICAgICYmIHJlc3VsdHMu
Y29udGFpbnMoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzRGF5KTsKK30KKwor
I2lmIFBMQVRGT1JNKE1BQykKK3ZvaWQgRGF0ZUlucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0
ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRl
cnMpIGNvbnN0Cit7CisgICAgbGF5b3V0UGFyYW1ldGVycy5kYXRlVGltZUZvcm1hdCA9IGxheW91
dFBhcmFtZXRlcnMubG9jYWxlLmRhdGVGb3JtYXQoKTsKKyAgICBsYXlvdXRQYXJhbWV0ZXJzLmZh
bGxiYWNrRGF0ZVRpbWVGb3JtYXQgPSAieXl5eS1NTS1kZCJfczsKK30KKyNlbmRpZgorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRGF0ZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmgK
aW5kZXggMzM1NTA3NGJlNmQ1ZjJlMmY2Mzg4MDY2MmQzOTYwNjVkZTY5YmYyYi4uMTA3OWZiYjk5
YWVjMTMyMTQzOTMzNDZlNTQxY2RhMDY3NDI0MGFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9EYXRlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5w
dXRUeXBlLmgKQEAgLTQ3LDYgKzQ3LDExIEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8RGF0ZUNv
bXBvbmVudHM+IHBhcnNlVG9EYXRlQ29tcG9uZW50cyhjb25zdCBTdHJpbmdWaWV3JikgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHNldE1pbGxpc2Vjb25kVG9E
YXRlQ29tcG9uZW50cyhkb3VibGUpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNEYXRlRmll
bGQoKSBjb25zdCBvdmVycmlkZTsKKworICAgIGJvb2wgaXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8
RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4pIGNvbnN0IG92ZXJyaWRlOworI2lmIFBM
QVRGT1JNKE1BQykKKyAgICB2b2lkIHNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRF
bGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29uc3Qgb3ZlcnJpZGU7CisjZW5kaWYKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1l
TG9jYWxJbnB1dFR5cGUuY3BwCmluZGV4IGRiNjM5MDhmYTY0NTJmZGZlZTBiMWUzYTU2ZjM2N2Mw
MWI3YzJkMjkuLmJjNDQ5M2Q1YTVkZmE1ZmZjZDkwNzhhNGMxMzA4ZjliYmY1MWVkNWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcApAQCAtOTUs
NiArOTUsMjIgQEAgYm9vbCBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjppc0RhdGVUaW1lTG9jYWxG
aWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgRGF0ZVRpbWVMb2NhbElu
cHV0VHlwZTo6aXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9u
UmVzdWx0cz4gcmVzdWx0cykgY29uc3QKK3sKKyAgICByZXR1cm4gcmVzdWx0cy5jb250YWlucyhE
YXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNZZWFyKQorICAgICAgICAmJiByZXN1
bHRzLmNvbnRhaW5zKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc01vbnRoKQor
ICAgICAgICAmJiByZXN1bHRzLmNvbnRhaW5zKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3Vs
dHM6Okhhc0RheSkKKyAgICAgICAgJiYgcmVzdWx0cy5jb250YWlucyhEYXRlVGltZUZvcm1hdFZh
bGlkYXRpb25SZXN1bHRzOjpIYXNIb3VyKQorICAgICAgICAmJiByZXN1bHRzLmNvbnRhaW5zKERh
dGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc01pbnV0ZSk7Cit9CisKKyNpZiBQTEFU
Rk9STShNQUMpCit2b2lkIERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1l
dGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29uc3QKK3sKKwor
fQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCmluZGV4IDJjMDQ5NDlmMGYwYTZk
OTBmMzI0OGU0ZWY5MGI4MDAwMTk3NDk0YTUuLjAxNjVlMTIzMjgyNWQ5NWZhYjIwNjRjMDFmYzg4
OGZlMDFkM2E1NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2Nh
bElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0
VHlwZS5oCkBAIC00OSw2ICs0OSwxMSBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPERhdGVDb21w
b25lbnRzPiBwYXJzZVRvRGF0ZUNvbXBvbmVudHMoY29uc3QgU3RyaW5nVmlldyYpIGNvbnN0IGZp
bmFsOwogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNv
bXBvbmVudHMoZG91YmxlKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlzRGF0ZVRpbWVMb2NhbEZp
ZWxkKCkgY29uc3QgZmluYWw7CisKKyAgICBib29sIGlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERh
dGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+KSBjb25zdCBvdmVycmlkZTsKKyNpZiBQTEFU
Rk9STShNQUMpCisgICAgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxl
bWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0IG92ZXJyaWRlOworI2VuZGlmCiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01v
bnRoSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3Bw
CmluZGV4IDQ5MDI2MGMyOGM3OWYzNTA2NzYyN2M4OWRiMDJmOWI2OWJiMGVlMDQuLjc4NTExMTEx
ZjBjYzE5Nzc3ZWMxYjI0NTlhMGY0MmEyMWQ0YTQwMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9u
dGhJbnB1dFR5cGUuY3BwCkBAIC0xMjksNiArMTI5LDE5IEBAIGJvb2wgTW9udGhJbnB1dFR5cGU6
OmlzTW9udGhGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgTW9udGhJ
bnB1dFR5cGU6OmlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlv
blJlc3VsdHM+IHJlc3VsdHMpIGNvbnN0Cit7CisgICAgcmV0dXJuIHJlc3VsdHMuY29udGFpbnMo
RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzWWVhcikKKyAgICAgICAgJiYgcmVz
dWx0cy5jb250YWlucyhEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNNb250aCk7
Cit9CisKKyNpZiBQTEFURk9STShNQUMpCit2b2lkIE1vbnRoSW5wdXRUeXBlOjpzZXR1cExheW91
dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0
Cit7CisKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oCmluZGV4IDBjY2E5MjJhNTNjNDBkZjE1OGRjZmIy
YzYwNjFkOGEzOGM4NGFmODQuLjUxNWIyOWJjOGFmZWFlZmZhMzNiZWVhYTZhMmRkZjY1MGQzODRm
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKQEAgLTUxLDYgKzUxLDExIEBA
IHByaXZhdGU6CiAgICAgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHBhcnNlVG9EYXRlQ29tcG9u
ZW50cyhjb25zdCBTdHJpbmdWaWV3JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgT3B0aW9uYWw8RGF0
ZUNvbXBvbmVudHM+IHNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3VibGUpIGNvbnN0
IG92ZXJyaWRlOwogICAgIGJvb2wgaXNNb250aEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAg
ICBib29sIGlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJl
c3VsdHM+KSBjb25zdCBvdmVycmlkZTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgdm9pZCBzZXR1
cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYp
IGNvbnN0IG92ZXJyaWRlOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAppbmRleCAwYmQyZDRiY2U5YTU4ZWI3OTY3
OTdiMzgxMTAwODQ1YWU1ZDY1NmZkLi5iNDZiYjBlZmU5MmVjNjg4MTllMjdmNGYyYmMzOWU0YWRi
ZDM3YzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKQEAgLTM2LDYgKzM2
LDcgQEAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUxvY2Fs
ZS5oIgogI2luY2x1ZGUgIlN0ZXBSYW5nZS5oIgogI2luY2x1ZGUgPHd0Zi9EYXRlTWF0aC5oPgog
I2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CkBAIC0xMDQsNiArMTA1LDE5IEBAIGJvb2wgVGlt
ZUlucHV0VHlwZTo6aXNUaW1lRmllbGQoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCiti
b29sIFRpbWVJbnB1dFR5cGU6OmlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0
VmFsaWRhdGlvblJlc3VsdHM+IHJlc3VsdHMpIGNvbnN0Cit7CisgICAgcmV0dXJuIHJlc3VsdHMu
Y29udGFpbnMoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzSG91cikKKyAgICAg
ICAgJiYgcmVzdWx0cy5jb250YWlucyhEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpI
YXNNaW51dGUpOworfQorCisjaWYgUExBVEZPUk0oTUFDKQordm9pZCBUaW1lSW5wdXRUeXBlOjpz
ZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVy
cyYpIGNvbnN0Cit7CisKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAppbmRleCA4NDE2NmIwOTVhZjIxODhj
YThlMDc1NmJlN2U1NTcxMWIxMmQ4ZWQ0Li5lNjI2ZjIxNjk5NjA2YTQ4ZDgwNDY1OTQxNDFjYjM3
MzRhZTU5MGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaApAQCAtNDgsNiArNDgs
MTEgQEAgcHJpdmF0ZToKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gcGFyc2VUb0RhdGVD
b21wb25lbnRzKGNvbnN0IFN0cmluZ1ZpZXcmKSBjb25zdCBvdmVycmlkZTsKICAgICBPcHRpb25h
bDxEYXRlQ29tcG9uZW50cz4gc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1RpbWVGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwor
CisgICAgYm9vbCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRp
b25SZXN1bHRzPikgY29uc3Qgb3ZlcnJpZGU7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIHZvaWQg
c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRl
cnMmKSBjb25zdCBvdmVycmlkZTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKaW5kZXggYjJiYjI0M2I5MDVkODQx
NWIwMzRjOTQwNmU0YmZhMzgyMWIzOWJhMy4uMTBjOTQ0NzVjZjkyYjk0MGMyOWNhOGM4ZmE4YTE2
NjViOGYyNjdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwCkBAIC04Miw2
ICs4MiwxOSBAQCBib29sIFdlZWtJbnB1dFR5cGU6OmlzV2Vla0ZpZWxkKCkgY29uc3QKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBXZWVrSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0KE9wdGlv
blNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPiByZXN1bHRzKSBjb25zdAorewor
ICAgIHJldHVybiByZXN1bHRzLmNvbnRhaW5zKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3Vs
dHM6Okhhc1llYXIpCisgICAgICAgICYmIHJlc3VsdHMuY29udGFpbnMoRGF0ZVRpbWVGb3JtYXRW
YWxpZGF0aW9uUmVzdWx0czo6SGFzV2Vlayk7Cit9CisKKyNpZiBQTEFURk9STShNQUMpCit2b2lk
IFdlZWtJbnB1dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50
OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29uc3QKK3sKKworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dl
ZWtJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5oCmluZGV4
IGQzYmExNTEzM2U3MzQxMWVhODA1NGMwMzNjZjEwNmE1YzM2NmEzYTcuLjExY2RjMGI3ODU2Yjdi
NTI5MGVkNGVkZmY4MGE1OTY1MGY4YWI4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvV2Vla0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlw
ZS5oCkBAIC00Nyw2ICs0NywxMSBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPERhdGVDb21wb25l
bnRzPiBwYXJzZVRvRGF0ZUNvbXBvbmVudHMoY29uc3QgU3RyaW5nVmlldyYpIGNvbnN0IG92ZXJy
aWRlOwogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNv
bXBvbmVudHMoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzV2Vla0ZpZWxkKCkg
Y29uc3Qgb3ZlcnJpZGU7CisKKyAgICBib29sIGlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVU
aW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+KSBjb25zdCBvdmVycmlkZTsKKyNpZiBQTEFURk9S
TShNQUMpCisgICAgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVu
dDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0IG92ZXJyaWRlOworI2VuZGlmCiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Rh
dGVUaW1lRWRpdEVsZW1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjNTU1ODQ2YWU3NDRjNTI3ZTA4MTBj
MTRhYjg2ZGJlNGYxYTM5MjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcApAQCAtMCwwICsxLDIyOSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRhdGVUaW1lRWRpdEVsZW1lbnQu
aCIKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBQTEFURk9STShN
QUMpCisKKyNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgorI2luY2x1ZGUgIkRhdGVUaW1lRmll
bGRFbGVtZW50cy5oIgorI2luY2x1ZGUgIkRhdGVUaW1lRm9ybWF0LmgiCisjaW5jbHVkZSAiRGF0
ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2lu
Y2x1ZGUgIlBsYXRmb3JtTG9jYWxlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgorI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisK
K1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChEYXRlVGltZUVkaXRFbGVtZW50KTsKKworY2xh
c3MgRGF0ZVRpbWVFZGl0QnVpbGRlciA6IHByaXZhdGUgRGF0ZVRpbWVGb3JtYXQ6OlRva2VuSGFu
ZGxlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGF0ZVRpbWVFZGl0QnVpbGRlcik7CisK
K3B1YmxpYzoKKyAgICBEYXRlVGltZUVkaXRCdWlsZGVyKERhdGVUaW1lRWRpdEVsZW1lbnQmLCBj
b25zdCBEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJik7CisKKyAgICBib29s
IGJ1aWxkKGNvbnN0IFN0cmluZyYpOworCitwcml2YXRlOgorICAgIC8vIERhdGVUaW1lRm9ybWF0
OjpUb2tlbkhhbmRsZXIgZnVuY3Rpb25zOgorICAgIHZvaWQgdmlzaXRGaWVsZChEYXRlVGltZUZv
cm1hdDo6RmllbGRUeXBlLCBpbnQpIGZpbmFsOworICAgIHZvaWQgdmlzaXRMaXRlcmFsKGNvbnN0
IFN0cmluZyYpIGZpbmFsOworCisgICAgRGF0ZVRpbWVFZGl0RWxlbWVudCYgbV9lZGl0RWxlbWVu
dDsKKyAgICBjb25zdCBEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJiBtX3Bh
cmFtZXRlcnM7Cit9OworCitEYXRlVGltZUVkaXRCdWlsZGVyOjpEYXRlVGltZUVkaXRCdWlsZGVy
KERhdGVUaW1lRWRpdEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IERhdGVUaW1lRWRpdEVsZW1lbnQ6
OkxheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMpCisgICAgOiBtX2VkaXRFbGVtZW50
KGVsZW1lbnQpCisgICAgLCBtX3BhcmFtZXRlcnMobGF5b3V0UGFyYW1ldGVycykKK3sKK30KKwor
Ym9vbCBEYXRlVGltZUVkaXRCdWlsZGVyOjpidWlsZChjb25zdCBTdHJpbmcmIGZvcm1hdFN0cmlu
ZykKK3sKKyAgICBtX2VkaXRFbGVtZW50LnJlc2V0RmllbGRzKCk7CisgICAgcmV0dXJuIERhdGVU
aW1lRm9ybWF0OjpwYXJzZShmb3JtYXRTdHJpbmcsICp0aGlzKTsKK30KKwordm9pZCBEYXRlVGlt
ZUVkaXRCdWlsZGVyOjp2aXNpdEZpZWxkKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGUgZmllbGRU
eXBlLCBpbnQgY291bnQpCit7CisgICAgY29uc3QgaW50IGNvdW50Rm9yQWJicmV2aWF0ZWRNb250
aCA9IDM7CisgICAgY29uc3QgaW50IGNvdW50Rm9yRnVsbE1vbnRoID0gNDsKKyAgICBjb25zdCBp
bnQgY291bnRGb3JOYXJyb3dNb250aCA9IDU7CisgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gbV9l
ZGl0RWxlbWVudC5kb2N1bWVudCgpOworCisgICAgc3dpdGNoIChmaWVsZFR5cGUpIHsKKyAgICBj
YXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVEYXlPZk1vbnRoOiB7CisgICAgICAgIG1fZWRp
dEVsZW1lbnQuYWRkRmllbGQoRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCwgbV9lZGl0RWxlbWVudCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY2FzZSBE
YXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTW9udGg6CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6
RmllbGRUeXBlTW9udGhTdGFuZEFsb25lOiB7CisgICAgICAgIHN3aXRjaCAoY291bnQpIHsKKyAg
ICAgICAgY2FzZSBjb3VudEZvck5hcnJvd01vbnRoOgorICAgICAgICBjYXNlIGNvdW50Rm9yQWJi
cmV2aWF0ZWRNb250aDogeworICAgICAgICAgICAgYXV0byBmaWVsZCA9IERhdGVUaW1lU3ltYm9s
aWNNb250aEZpZWxkRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtX2VkaXRFbGVtZW50LCBmaWVs
ZFR5cGUgPT0gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRoID8gbV9wYXJhbWV0ZXJzLmxv
Y2FsZS5zaG9ydE1vbnRoTGFiZWxzKCkgOiBtX3BhcmFtZXRlcnMubG9jYWxlLnNob3J0U3RhbmRB
bG9uZU1vbnRoTGFiZWxzKCkpOworICAgICAgICAgICAgbV9lZGl0RWxlbWVudC5hZGRGaWVsZChm
aWVsZCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIGNvdW50
Rm9yRnVsbE1vbnRoOiB7CisgICAgICAgICAgICBhdXRvIGZpZWxkID0gRGF0ZVRpbWVTeW1ib2xp
Y01vbnRoRmllbGRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIG1fZWRpdEVsZW1lbnQsIGZpZWxk
VHlwZSA9PSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTW9udGggPyBtX3BhcmFtZXRlcnMubG9j
YWxlLm1vbnRoTGFiZWxzKCkgOiBtX3BhcmFtZXRlcnMubG9jYWxlLnN0YW5kQWxvbmVNb250aExh
YmVscygpKTsKKyAgICAgICAgICAgIG1fZWRpdEVsZW1lbnQuYWRkRmllbGQoZmllbGQpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDogeworICAgICAgICAg
ICAgYXV0byBmaWVsZCA9IERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCwgbV9lZGl0RWxlbWVudCk7CisgICAgICAgICAgICBtX2VkaXRFbGVtZW50LmFkZEZpZWxkKGZp
ZWxkKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVllYXI6
IHsKKyAgICAgICAgbV9lZGl0RWxlbWVudC5hZGRGaWVsZChEYXRlVGltZVllYXJGaWVsZEVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCkpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKwordm9pZCBE
YXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdExpdGVyYWwoY29uc3QgU3RyaW5nJiB0ZXh0KQorewor
ICAgIEFTU0VSVCh0ZXh0Lmxlbmd0aCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRleHRQc2V1ZG9JZCgiLXdlYmtpdC1kYXRldGltZS1l
ZGl0LXRleHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgYXV0byBl
bGVtZW50ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShtX2VkaXRFbGVtZW50LmRvY3VtZW50KCkp
OworICAgIGVsZW1lbnQtPnNldFBzZXVkbyh0ZXh0UHNldWRvSWQpOworICAgIGVsZW1lbnQtPmFw
cGVuZENoaWxkKFRleHQ6OmNyZWF0ZShtX2VkaXRFbGVtZW50LmRvY3VtZW50KCksIHRleHQpKTsK
KyAgICBtX2VkaXRFbGVtZW50LmZpZWxkc1dyYXBwZXJFbGVtZW50KCktPmFwcGVuZENoaWxkKGVs
ZW1lbnQpOworfQorCitEYXRlVGltZUVkaXRFbGVtZW50OjpFZGl0Q29udHJvbE93bmVyOjp+RWRp
dENvbnRyb2xPd25lcigpCit7Cit9CisKK0RhdGVUaW1lRWRpdEVsZW1lbnQ6OkRhdGVUaW1lRWRp
dEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBFZGl0Q29udHJvbE93bmVyJiBlZGl0Q29udHJv
bE93bmVyKQorICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCBkb2N1bWVudCkKKyAgICAsIG1f
ZWRpdENvbnRyb2xPd25lcigmZWRpdENvbnRyb2xPd25lcikKK3sKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGRhdGVUaW1lRWRpdFBzZXVkb0lk
KCItd2Via2l0LWRhdGV0aW1lLWVkaXQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc2V0UHNldWRvKGRhdGVUaW1lRWRpdFBzZXVkb0lkKTsKK30KKworRGF0ZVRpbWVF
ZGl0RWxlbWVudDo6fkRhdGVUaW1lRWRpdEVsZW1lbnQoKQoreworfQorCitpbmxpbmUgRWxlbWVu
dCogRGF0ZVRpbWVFZGl0RWxlbWVudDo6ZmllbGRzV3JhcHBlckVsZW1lbnQoKSBjb25zdAorewor
ICAgIEFTU0VSVChmaXJzdENoaWxkKCkpOworICAgIHJldHVybiBkb3duY2FzdDxFbGVtZW50Pihm
aXJzdENoaWxkKCkpOworfQorCit2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmFkZEZpZWxkKFJl
ZjxEYXRlVGltZUZpZWxkRWxlbWVudD4gZmllbGQpCit7CisgICAgaWYgKG1fZmllbGRzLnNpemUo
KSA9PSBtX2ZpZWxkcy5jYXBhY2l0eSgpKQorICAgICAgICByZXR1cm47CisgICAgbV9maWVsZHMu
YXBwZW5kKGZpZWxkKTsKKyAgICBmaWVsZHNXcmFwcGVyRWxlbWVudCgpLT5hcHBlbmRDaGlsZChm
aWVsZCk7Cit9CisKK1JlZjxEYXRlVGltZUVkaXRFbGVtZW50PiBEYXRlVGltZUVkaXRFbGVtZW50
OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBFZGl0Q29udHJvbE93bmVyJiBlZGl0Q29udHJv
bE93bmVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERhdGVUaW1lRWRpdEVsZW1lbnQo
ZG9jdW1lbnQsIGVkaXRDb250cm9sT3duZXIpKTsKK30KKwordm9pZCBEYXRlVGltZUVkaXRFbGVt
ZW50OjpsYXlvdXQoY29uc3QgTGF5b3V0UGFyYW1ldGVycyYgbGF5b3V0UGFyYW1ldGVycykKK3sK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZp
ZWxkc1dyYXBwZXJQc2V1ZG9JZCgiLXdlYmtpdC1kYXRldGltZS1lZGl0LWZpZWxkcy13cmFwcGVy
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworCisgICAgaWYgKCFmaXJzdENo
aWxkKCkpIHsKKyAgICAgICAgYXV0byBlbGVtZW50ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCgpKTsKKyAgICAgICAgZWxlbWVudC0+c2V0UHNldWRvKGZpZWxkc1dyYXBwZXJQc2V1
ZG9JZCk7CisgICAgICAgIGFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIH0KKworICAgIEVsZW1l
bnQqIGZpZWxkc1dyYXBwZXIgPSBmaWVsZHNXcmFwcGVyRWxlbWVudCgpOworCisgICAgRGF0ZVRp
bWVFZGl0QnVpbGRlciBidWlsZGVyKCp0aGlzLCBsYXlvdXRQYXJhbWV0ZXJzKTsKKyAgICBOb2Rl
KiBsYXN0Q2hpbGRUb0JlUmVtb3ZlZCA9IGZpZWxkc1dyYXBwZXItPmxhc3RDaGlsZCgpOworICAg
IGlmICghYnVpbGRlci5idWlsZChsYXlvdXRQYXJhbWV0ZXJzLmRhdGVUaW1lRm9ybWF0KSB8fCBt
X2ZpZWxkcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgbGFzdENoaWxkVG9CZVJlbW92ZWQgPSBmaWVs
ZHNXcmFwcGVyLT5sYXN0Q2hpbGQoKTsKKyAgICAgICAgYnVpbGRlci5idWlsZChsYXlvdXRQYXJh
bWV0ZXJzLmZhbGxiYWNrRGF0ZVRpbWVGb3JtYXQpOworICAgIH0KKworICAgIGlmIChsYXN0Q2hp
bGRUb0JlUmVtb3ZlZCkgeworICAgICAgICBmb3IgKE5vZGUqIGNoaWxkTm9kZSA9IGZpZWxkc1dy
YXBwZXItPmZpcnN0Q2hpbGQoKTsgY2hpbGROb2RlOyBjaGlsZE5vZGUgPSBmaWVsZHNXcmFwcGVy
LT5maXJzdENoaWxkKCkpIHsKKyAgICAgICAgICAgIGZpZWxkc1dyYXBwZXItPnJlbW92ZUNoaWxk
KCpjaGlsZE5vZGUpOworICAgICAgICAgICAgaWYgKGNoaWxkTm9kZSA9PSBsYXN0Q2hpbGRUb0Jl
UmVtb3ZlZCkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKwor
QXRvbVN0cmluZyBEYXRlVGltZUVkaXRFbGVtZW50Ojpsb2NhbGVJZGVudGlmaWVyKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9lZGl0Q29udHJvbE93bmVyID8gbV9lZGl0Q29udHJvbE93bmVyLT5s
b2NhbGVJZGVudGlmaWVyKCkgOiBudWxsQXRvbSgpOworfQorCit2b2lkIERhdGVUaW1lRWRpdEVs
ZW1lbnQ6OnJlc2V0RmllbGRzKCkKK3sKKyAgICBtX2ZpZWxkcy5zaHJpbmsoMCk7Cit9CisKK3Zv
aWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6c2V0VmFsdWVBc0RhdGUoY29uc3QgTGF5b3V0UGFyYW1l
dGVycyYgbGF5b3V0UGFyYW1ldGVycywgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUpCit7Cisg
ICAgbGF5b3V0KGxheW91dFBhcmFtZXRlcnMpOworICAgIGZvciAoc2l6ZV90IGZpZWxkSW5kZXgg
PSAwOyBmaWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpOyArK2ZpZWxkSW5kZXgpCisgICAgICAg
IG1fZmllbGRzW2ZpZWxkSW5kZXhdLT5zZXRWYWx1ZUFzRGF0ZShkYXRlKTsKK30KKwordm9pZCBE
YXRlVGltZUVkaXRFbGVtZW50OjpzZXRFbXB0eVZhbHVlKGNvbnN0IExheW91dFBhcmFtZXRlcnMm
IGxheW91dFBhcmFtZXRlcnMpCit7CisgICAgbGF5b3V0KGxheW91dFBhcmFtZXRlcnMpOworICAg
IGZvciAoc2l6ZV90IGZpZWxkSW5kZXggPSAwOyBmaWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgp
OyArK2ZpZWxkSW5kZXgpCisgICAgICAgIG1fZmllbGRzW2ZpZWxkSW5kZXhdLT5zZXRFbXB0eVZh
bHVlKCk7Cit9CisKK1N0cmluZyBEYXRlVGltZUVkaXRFbGVtZW50Ojp2YWx1ZSgpIGNvbnN0Cit7
CisgICAgaWYgKCFtX2VkaXRDb250cm9sT3duZXIpCisgICAgICAgIHJldHVybiBlbXB0eVN0cmlu
ZygpOworICAgIHJldHVybiBtX2VkaXRDb250cm9sT3duZXItPnZhbHVlRm9yRWRpdENvbnRyb2wo
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEVf
QU5EX1RJTUVfSU5QVVRfVFlQRVMpICYmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yY2NjNGI1
NDBiZTk2ZmQ4ZTc2YjI2M2IxMjIxZDJkMzJlNmIwNzYzCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oCkBAIC0wLDAgKzEs
OTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJ
TUVfSU5QVVRfVFlQRVMpICYmIFBMQVRGT1JNKE1BQykKKworI2luY2x1ZGUgIkRhdGVDb21wb25l
bnRzLmgiCisjaW5jbHVkZSAiRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBMb2NhbGU7CisKK2NsYXNzIERhdGVUaW1lRWRpdEVsZW1lbnQgZmlu
YWwgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQsIHB1YmxpYyBEYXRlVGltZUZpZWxkRWxlbWVudDo6
RmllbGRPd25lciB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChEYXRlVGltZUVkaXRFbGVt
ZW50KTsKK3B1YmxpYzoKKyAgICBjbGFzcyBFZGl0Q29udHJvbE93bmVyIHsKKyAgICBwdWJsaWM6
CisgICAgICAgIHZpcnR1YWwgfkVkaXRDb250cm9sT3duZXIoKTsKKyAgICAgICAgdmlydHVhbCBT
dHJpbmcgdmFsdWVGb3JFZGl0Q29udHJvbCgpIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBB
dG9tU3RyaW5nIGxvY2FsZUlkZW50aWZpZXIoKSBjb25zdCA9IDA7CisgICAgfTsKKworICAgIHN0
cnVjdCBMYXlvdXRQYXJhbWV0ZXJzIHsKKyAgICAgICAgU3RyaW5nIGRhdGVUaW1lRm9ybWF0Owor
ICAgICAgICBTdHJpbmcgZmFsbGJhY2tEYXRlVGltZUZvcm1hdDsKKyAgICAgICAgTG9jYWxlJiBs
b2NhbGU7CisKKyAgICAgICAgTGF5b3V0UGFyYW1ldGVycyhMb2NhbGUmIGxvY2FsZSkKKyAgICAg
ICAgICAgIDogbG9jYWxlKGxvY2FsZSkKKyAgICAgICAgeworICAgICAgICB9CisgICAgfTsKKwor
ICAgIHN0YXRpYyBSZWY8RGF0ZVRpbWVFZGl0RWxlbWVudD4gY3JlYXRlKERvY3VtZW50JiwgRWRp
dENvbnRyb2xPd25lciYpOworCisgICAgdmlydHVhbCB+RGF0ZVRpbWVFZGl0RWxlbWVudCgpOwor
ICAgIHZvaWQgYWRkRmllbGQoUmVmPERhdGVUaW1lRmllbGRFbGVtZW50Pik7CisgICAgRWxlbWVu
dCogZmllbGRzV3JhcHBlckVsZW1lbnQoKSBjb25zdDsKKyAgICB2b2lkIHJlc2V0RmllbGRzKCk7
CisgICAgdm9pZCBzZXRFbXB0eVZhbHVlKGNvbnN0IExheW91dFBhcmFtZXRlcnMmKTsKKyAgICB2
b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IExheW91dFBhcmFtZXRlcnMmLCBjb25zdCBEYXRlQ29t
cG9uZW50cyYpOworICAgIFN0cmluZyB2YWx1ZSgpIGNvbnN0OworCitwcml2YXRlOgorICAgIHN0
YXRpYyBjb25zdCBzaXplX3QgaW52YWxpZEZpZWxkSW5kZXggPSBzdGF0aWNfY2FzdDxzaXplX3Q+
KC0xKTsKKworICAgIC8vIERhdGV0aW1lIGNhbiBiZSByZXByZXNlbnRlZCBieSBhdCBtb3N0IDgg
ZmllbGRzOgorICAgIC8vIDEuIHllYXIKKyAgICAvLyAyLiBtb250aAorICAgIC8vIDMuIGRheS1v
Zi1tb250aAorICAgIC8vIDQuIGhvdXIKKyAgICAvLyA1LiBtaW51dGUKKyAgICAvLyA2LiBzZWNv
bmQKKyAgICAvLyA3LiBtaWxsaXNlY29uZAorICAgIC8vIDguIEFNL1BNCisgICAgc3RhdGljIGNv
bnN0IGludCBtYXhpbXVtTnVtYmVyT2ZGaWVsZHMgPSA4OworCisgICAgRGF0ZVRpbWVFZGl0RWxl
bWVudChEb2N1bWVudCYsIEVkaXRDb250cm9sT3duZXImKTsKKworICAgIHZvaWQgbGF5b3V0KGNv
bnN0IExheW91dFBhcmFtZXRlcnMmKTsKKworICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50OjpG
aWVsZE93bmVyIGZ1bmN0aW9uczoKKyAgICBBdG9tU3RyaW5nIGxvY2FsZUlkZW50aWZpZXIoKSBj
b25zdCBmaW5hbDsKKworICAgIFZlY3RvcjxSZWY8RGF0ZVRpbWVGaWVsZEVsZW1lbnQ+LCBtYXhp
bXVtTnVtYmVyT2ZGaWVsZHM+IG1fZmllbGRzOworICAgIEVkaXRDb250cm9sT3duZXIqIG1fZWRp
dENvbnRyb2xPd25lcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBQTEFURk9STShNQUMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGRiYTAxOTcyZTUyMTRiYmQ1NDIwYzk1NGM0YzUyMjIwNWE1NmM5YQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRF
bGVtZW50LmNwcApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCIKKworI2lmIEVOQUJMRShEQVRF
X0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBQTEFURk9STShNQUMpCisKKyNpbmNsdWRlICJEYXRl
Q29tcG9uZW50cy5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkxvY2FsaXpl
ZFN0cmluZ3MuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUxvY2FsZS5oIgorI2luY2x1ZGUgIlRleHQu
aCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVE
X0lNUEwoRGF0ZVRpbWVGaWVsZEVsZW1lbnQpOworCitEYXRlVGltZUZpZWxkRWxlbWVudDo6Rmll
bGRPd25lcjo6fkZpZWxkT3duZXIoKQoreworfQorCitEYXRlVGltZUZpZWxkRWxlbWVudDo6RGF0
ZVRpbWVGaWVsZEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93
bmVyKQorICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCBkb2N1bWVudCkKKyAgICAsIG1fZmll
bGRPd25lcigmZmllbGRPd25lcikKK3sKK30KKwordm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6
aW5pdGlhbGl6ZShjb25zdCBBdG9tU3RyaW5nJiBwc2V1ZG8pCit7CisgICAgc2V0UHNldWRvKHBz
ZXVkbyk7Cit9CisKK0xvY2FsZSYgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmxvY2FsZUZvck93bmVy
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKS5nZXRDYWNoZWRMb2NhbGUobG9jYWxl
SWRlbnRpZmllcigpKTsKK30KKworQXRvbVN0cmluZyBEYXRlVGltZUZpZWxkRWxlbWVudDo6bG9j
YWxlSWRlbnRpZmllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZmllbGRPd25lciA/IG1fZmll
bGRPd25lci0+bG9jYWxlSWRlbnRpZmllcigpIDogbnVsbEF0b20oKTsKK30KKwordm9pZCBEYXRl
VGltZUZpZWxkRWxlbWVudDo6dXBkYXRlVmlzaWJsZVZhbHVlKCkKK3sKKyAgICBpZiAoIWZpcnN0
Q2hpbGQoKSkKKyAgICAgICAgYXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50KCksIGVt
cHR5U3RyaW5nKCkpKTsKKworICAgIFRleHQmIHRleHROb2RlID0gZG93bmNhc3Q8VGV4dD4oKmZp
cnN0Q2hpbGQoKSk7CisgICAgY29uc3QgU3RyaW5nIG5ld1Zpc2libGVWYWx1ZSA9IHZpc2libGVW
YWx1ZSgpOworICAgIGlmICh0ZXh0Tm9kZS53aG9sZVRleHQoKSA9PSBuZXdWaXNpYmxlVmFsdWUp
CisgICAgICAgIHJldHVybjsKKworICAgIHRleHROb2RlLnJlcGxhY2VXaG9sZVRleHQobmV3Vmlz
aWJsZVZhbHVlKTsKK30KKworYm9vbCBEYXRlVGltZUZpZWxkRWxlbWVudDo6c3VwcG9ydHNGb2N1
cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBQTEFU
Rk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGlt
ZUZpZWxkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVs
ZEVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNWNhOTVhOTAxNmIwYmE1ZTc5ZjM1NjhiNGVmY2UzODll
MjQ5ZWQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0
ZVRpbWVGaWVsZEVsZW1lbnQuaApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBQTEFURk9S
TShNQUMpCisKKyNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIERhdGVDb21wb25lbnRzOworCitjbGFzcyBEYXRlVGltZUZpZWxkRWxlbWVu
dCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChE
YXRlVGltZUZpZWxkRWxlbWVudCk7CitwdWJsaWM6CisgICAgY2xhc3MgRmllbGRPd25lciB7Cisg
ICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5GaWVsZE93bmVyKCk7CisgICAgICAgIHZpcnR1
YWwgQXRvbVN0cmluZyBsb2NhbGVJZGVudGlmaWVyKCkgY29uc3QgPSAwOworICAgIH07CisKKyAg
ICB2aXJ0dWFsIGJvb2wgaGFzVmFsdWUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNl
dEVtcHR5VmFsdWUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0
IERhdGVDb21wb25lbnRzJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzSW50ZWdl
cihpbnQpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgpIGNvbnN0ID0gMDsKKyAgICB2
aXJ0dWFsIFN0cmluZyB2aXNpYmxlVmFsdWUoKSBjb25zdCA9IDA7CisKK3Byb3RlY3RlZDoKKyAg
ICBEYXRlVGltZUZpZWxkRWxlbWVudChEb2N1bWVudCYsIEZpZWxkT3duZXImKTsKKyAgICB2b2lk
IGluaXRpYWxpemUoY29uc3QgQXRvbVN0cmluZyYgcHNldWRvKTsKKyAgICBMb2NhbGUmIGxvY2Fs
ZUZvck93bmVyKCkgY29uc3Q7CisgICAgQXRvbVN0cmluZyBsb2NhbGVJZGVudGlmaWVyKCkgY29u
c3Q7CisgICAgdm9pZCB1cGRhdGVWaXNpYmxlVmFsdWUoKTsKKyAgICB2aXJ0dWFsIGludCB2YWx1
ZUFzSW50ZWdlcigpIGNvbnN0ID0gMDsKKworcHJpdmF0ZToKKyAgICBib29sIHN1cHBvcnRzRm9j
dXMoKSBjb25zdCBvdmVycmlkZTsKKworICAgIEZpZWxkT3duZXIqIG1fZmllbGRPd25lcjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9U
SU1FX0lOUFVUX1RZUEVTKSAmJiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjM5
YWYxMmFhMjgwZDY5NGQ2YzM0MmJlYTgyYmY5Mjc4ZDQyMWVmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcApAQCAt
MCwwICsxLDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkRhdGVUaW1lRmllbGRFbGVtZW50cy5oIgorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5Q
VVRfVFlQRVMpICYmIFBMQVRGT1JNKE1BQykKKworI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgi
CisjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKERhdGVUaW1lRGF5RmllbGRFbGVtZW50KTsKKworRGF0ZVRpbWVEYXlGaWVsZEVsZW1l
bnQ6OkRhdGVUaW1lRGF5RmllbGRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRPd25l
ciYgZmllbGRPd25lcikKKyAgICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChkb2N1bWVu
dCwgZmllbGRPd25lciwgIi0tIl9zKQoreworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGF5UHN1ZWRvSWQoIi13ZWJraXQtZGF0ZXRpbWUtZWRp
dC1kYXktZmllbGQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgaW5p
dGlhbGl6ZShkYXlQc3VlZG9JZCk7Cit9CisKK1JlZjxEYXRlVGltZURheUZpZWxkRWxlbWVudD4g
RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIEZpZWxk
T3duZXImIGZpZWxkT3duZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0ZVRpbWVE
YXlGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIpKTsKK30KKwordm9pZCBEYXRlVGlt
ZURheUZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRh
dGUpCit7CisgICAgc2V0VmFsdWVBc0ludGVnZXIoZGF0ZS5tb250aERheSgpKTsKK30KKworV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQpOworCitE
YXRlVGltZU1vbnRoRmllbGRFbGVtZW50OjpEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50KERvY3Vt
ZW50JiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lcikKKyAgICA6IERhdGVUaW1lTnVt
ZXJpY0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwgIi0tIl9zKQoreworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW9udGhQc3Vl
ZG9JZCgiLXdlYmtpdC1kYXRldGltZS1lZGl0LW1vbnRoLWZpZWxkIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIGluaXRpYWxpemUobW9udGhQc3VlZG9JZCk7Cit9CisK
K1JlZjxEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50PiBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50
OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyKQorewor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQoZG9jdW1l
bnQsIGZpZWxkT3duZXIpKTsKK30KKwordm9pZCBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50Ojpz
ZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkKK3sKKyAgICBzZXRWYWx1
ZUFzSW50ZWdlcihkYXRlLm1vbnRoKCkgKyAxKTsKK30KKworV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudCk7CisKK0RhdGVUaW1lU3lt
Ym9saWNNb250aEZpZWxkRWxlbWVudDo6RGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50
KERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lciwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIGxhYmVscykKKyAgICA6IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQoZG9j
dW1lbnQsIGZpZWxkT3duZXIsIGxhYmVscykKK3sKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vbnRoUHN1ZWRvSWQoIi13ZWJraXQtZGF0ZXRp
bWUtZWRpdC1tb250aC1maWVsZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBpbml0aWFsaXplKG1vbnRoUHN1ZWRvSWQpOworfQorCitSZWY8RGF0ZVRpbWVTeW1ib2xp
Y01vbnRoRmllbGRFbGVtZW50PiBEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OmNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBsYWJlbHMpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0ZVRp
bWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCBsYWJlbHMp
KTsKK30KKwordm9pZCBEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OnNldFZhbHVl
QXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQoreworICAgIHNldFZhbHVlQXNJbnRl
Z2VyKGRhdGUubW9udGgoKSk7Cit9CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChEYXRl
VGltZVllYXJGaWVsZEVsZW1lbnQpOworCitEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQ6OkRhdGVU
aW1lWWVhckZpZWxkRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxk
T3duZXIpCisgICAgOiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxk
T3duZXIsICItLS0tIl9zKQoreworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4geWVhclBzdWVkb0lkKCItd2Via2l0LWRhdGV0aW1lLWVkaXQteWVh
ci1maWVsZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBpbml0aWFs
aXplKHllYXJQc3VlZG9JZCk7Cit9CisKK1JlZjxEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQ+IERh
dGVUaW1lWWVhckZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRP
d25lciYgZmllbGRPd25lcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXRlVGltZVll
YXJGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIpKTsKK30KKwordm9pZCBEYXRlVGlt
ZVllYXJGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBk
YXRlKQoreworICAgIHNldFZhbHVlQXNJbnRlZ2VyKGRhdGUuZnVsbFllYXIoKSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lO
UFVUX1RZUEVTKSAmJiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5MzJmMmIzOWQ2ODgw
NjdjMWFhZjZiMzRmZWU3YzRiN2U3YjFiMzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuaApAQCAtMCwwICsxLDkwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lO
UFVUX1RZUEVTKSAmJiBQTEFURk9STShNQUMpCisKKyNpbmNsdWRlICJEYXRlVGltZU51bWVyaWNG
aWVsZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Lmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQg
ZmluYWwgOiBwdWJsaWMgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50IHsKKyAgICBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEKERhdGVUaW1lRGF5RmllbGRFbGVtZW50KTsKKworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYsIEZp
ZWxkT3duZXImKTsKKworcHJpdmF0ZToKKyAgICBEYXRlVGltZURheUZpZWxkRWxlbWVudChEb2N1
bWVudCYsIEZpZWxkT3duZXImKTsKKworICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0
aW9uczoKKyAgICB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJikgZmlu
YWw7Cit9OworCitjbGFzcyBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50IGZpbmFsIDogcHVibGlj
IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RChEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50KTsKKworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
RGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudD4gY3JlYXRlKERvY3VtZW50JiwgRmllbGRPd25lciYp
OworCitwcml2YXRlOgorICAgIERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQoRG9jdW1lbnQmLCBG
aWVsZE93bmVyJik7CisKKyAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnM6Cisg
ICAgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYpIGZpbmFsOworfTsK
KworY2xhc3MgRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50IGZpbmFsIDogcHVibGlj
IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RUQoRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50KTsKKworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8RGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50PiBjcmVhdGUoRG9jdW1l
bnQmLCBGaWVsZE93bmVyJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKworcHJpdmF0ZToKKyAg
ICBEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQoRG9jdW1lbnQmLCBGaWVsZE93bmVy
JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKworICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50
IGZ1bmN0aW9uczoKKyAgICB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRz
JikgZmluYWw7Cit9OworCitjbGFzcyBEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQgZmluYWwgOiBw
dWJsaWMgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50IHsKKyAgICBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEKERhdGVUaW1lWWVhckZpZWxkRWxlbWVudCk7CisKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPERhdGVUaW1lWWVhckZpZWxkRWxlbWVudD4gY3JlYXRlKERvY3VtZW50JiwgRmllbGRPd25l
ciYpOworCitwcml2YXRlOgorICAgIERhdGVUaW1lWWVhckZpZWxkRWxlbWVudChEb2N1bWVudCYs
IEZpZWxkT3duZXImKTsKKworICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9uczoK
KyAgICB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJikgZmluYWw7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREFURV9BTkRf
VElNRV9JTlBVVF9UWVBFUykgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODdkMGQ2NDE1MjYxMjYxYTBiNTcxMzliMWUzOGE4Y2I2MDI4YWI5MgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0Zp
ZWxkRWxlbWVudC5jcHAKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oIgorCisjaWYg
RU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpICYmIFBMQVRGT1JNKE1BQykKKworI2lu
Y2x1ZGUgIlBsYXRmb3JtTG9jYWxlLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KTsKKworRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVt
ZW50OjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVs
ZE93bmVyJiBmaWVsZE93bmVyLCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyKQorICAgIDogRGF0
ZVRpbWVGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIpCisgICAgLCBtX3BsYWNlaG9s
ZGVyKHBsYWNlaG9sZGVyKQorICAgICwgbV92YWx1ZSgwKQorICAgICwgbV9oYXNWYWx1ZShmYWxz
ZSkKK3sKK30KKworU3RyaW5nIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6Zm9ybWF0VmFs
dWUoaW50IHZhbHVlKSBjb25zdAoreworICAgIExvY2FsZSYgbG9jYWxlID0gbG9jYWxlRm9yT3du
ZXIoKTsKKyAgICByZXR1cm4gbG9jYWxlLmNvbnZlcnRUb0xvY2FsaXplZE51bWJlcihtYWtlU3Ry
aW5nKHBhZCgnMCcsIDIsIHZhbHVlKSkpOworfQorCitib29sIERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudDo6aGFzVmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBtX2hhc1ZhbHVlOworfQor
Cit2b2lkIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6aW5pdGlhbGl6ZShjb25zdCBBdG9t
U3RyaW5nJiBwc2V1ZG8pCit7CisgICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUo
cHNldWRvKTsKK30KKwordm9pZCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnNldEVtcHR5
VmFsdWUoKQoreworICAgIG1fdmFsdWUgPSAwOworICAgIG1faGFzVmFsdWUgPSBmYWxzZTsKKyAg
ICB1cGRhdGVWaXNpYmxlVmFsdWUoKTsKK30KKwordm9pZCBEYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQ6OnNldFZhbHVlQXNJbnRlZ2VyKGludCB2YWx1ZSkKK3sKKyAgICBtX3ZhbHVlID0gdmFs
dWU7CisgICAgbV9oYXNWYWx1ZSA9IHRydWU7CisgICAgdXBkYXRlVmlzaWJsZVZhbHVlKCk7Cit9
CisKK1N0cmluZyBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnZhbHVlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9oYXNWYWx1ZSA/IGZvcm1hdFZhbHVlKG1fdmFsdWUpIDogZW1wdHlTdHJp
bmcoKTsKK30KKworaW50IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6dmFsdWVBc0ludGVn
ZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX2hhc1ZhbHVlID8gbV92YWx1ZSA6IC0xOworfQor
CitTdHJpbmcgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojp2aXNpYmxlVmFsdWUoKSBjb25z
dAoreworICAgIHJldHVybiBtX2hhc1ZhbHVlID8gdmFsdWUoKSA6IG1fcGxhY2Vob2xkZXI7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9U
SU1FX0lOUFVUX1RZUEVTKSAmJiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjNhNDBhNWJlN2NmNWM2MTEzOWNmZmY5NTMyNmZjZGNhYTFiZTI1ODQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBQTEFURk9STShNQUMpCisKKyNp
bmNsdWRlICJEYXRlVGltZUZpZWxkRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCA6IHB1YmxpYyBEYXRlVGltZUZpZWxk
RWxlbWVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChEYXRlVGltZU51bWVyaWNGaWVs
ZEVsZW1lbnQpOworcHVibGljOgorCitwcm90ZWN0ZWQ6CisgICAgRGF0ZVRpbWVOdW1lcmljRmll
bGRFbGVtZW50KERvY3VtZW50JiwgRmllbGRPd25lciYsIGNvbnN0IFN0cmluZyYgcGxhY2Vob2xk
ZXIpOworCisgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zOgorICAgIGJvb2wg
aGFzVmFsdWUoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgQXRvbVN0
cmluZyYgcHNldWRvKTsKKyAgICB2b2lkIHNldEVtcHR5VmFsdWUoKSBmaW5hbDsKKyAgICB2b2lk
IHNldFZhbHVlQXNJbnRlZ2VyKGludCkgb3ZlcnJpZGU7CisgICAgaW50IHZhbHVlQXNJbnRlZ2Vy
KCkgY29uc3QgZmluYWw7CisgICAgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0IGZpbmFsOwor
Citwcml2YXRlOgorICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9uczoKKyAgICBT
dHJpbmcgdmFsdWUoKSBjb25zdCBmaW5hbDsKKworICAgIFN0cmluZyBmb3JtYXRWYWx1ZShpbnQp
IGNvbnN0OworCisgICAgY29uc3QgU3RyaW5nIG1fcGxhY2Vob2xkZXI7CisgICAgaW50IG1fdmFs
dWU7CisgICAgYm9vbCBtX2hhc1ZhbHVlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpICYmIFBMQVRGT1JN
KE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3lt
Ym9saWNGaWVsZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQwNjMwZTI2OGMwNjcyYTY1
MzQyYTJhM2QyY2QwZDcyYzhmNWYyMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwCkBAIC0wLDAgKzEs
MTA1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGF0ZVRp
bWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oIgorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5Q
VVRfVFlQRVMpICYmIFBMQVRGT1JNKE1BQykKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQpOwor
CitzdGF0aWMgQXRvbVN0cmluZyBtYWtlVmlzaWJsZUVtcHR5VmFsdWUoY29uc3QgVmVjdG9yPFN0
cmluZz4mIHN5bWJvbHMpCit7CisgICAgdW5zaWduZWQgbWF4aW11bUxlbmd0aCA9IDA7CisgICAg
Zm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgc3ltYm9scy5zaXplKCk7ICsraW5kZXgp
CisgICAgICAgIG1heGltdW1MZW5ndGggPSBzdGQ6Om1heChtYXhpbXVtTGVuZ3RoLCBudW1HcmFw
aGVtZUNsdXN0ZXJzKHN5bWJvbHNbaW5kZXhdKSk7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OworICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KG1heGltdW1MZW5ndGgpOworICAgIGZvciAo
dW5zaWduZWQgbGVuZ3RoID0gMDsgbGVuZ3RoIDwgbWF4aW11bUxlbmd0aDsgKytsZW5ndGgpCisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKCctJyk7CisgICAgcmV0dXJuIGJ1aWxkZXIudG9BdG9tU3Ry
aW5nKCk7Cit9CisKK0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVy
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3ltYm9scykKKyAgICA6IERhdGVUaW1lRmllbGRFbGVt
ZW50KGRvY3VtZW50LCBmaWVsZE93bmVyKQorICAgICwgbV9zeW1ib2xzKHN5bWJvbHMpCisgICAg
LCBtX3Zpc2libGVFbXB0eVZhbHVlKG1ha2VWaXNpYmxlRW1wdHlWYWx1ZShzeW1ib2xzKSkKKyAg
ICAsIG1fc2VsZWN0ZWRJbmRleCgtMSkKK3sKKyAgICBBU1NFUlQoIXN5bWJvbHMuaXNFbXB0eSgp
KTsKK30KKworYm9vbCBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpoYXNWYWx1ZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fc2VsZWN0ZWRJbmRleCA+PSAwOworfQorCit2b2lkIERhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUoY29uc3QgQXRvbVN0cmluZyYgcHNl
dWRvKQoreworICAgIERhdGVUaW1lRmllbGRFbGVtZW50Ojppbml0aWFsaXplKHBzZXVkbyk7Cit9
CisKK3ZvaWQgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6c2V0RW1wdHlWYWx1ZSgpCit7
CisgICAgbV9zZWxlY3RlZEluZGV4ID0gaW52YWxpZEluZGV4OworICAgIHVwZGF0ZVZpc2libGVW
YWx1ZSgpOworfQorCit2b2lkIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnNldFZhbHVl
QXNJbnRlZ2VyKGludCBuZXdTZWxlY3RlZEluZGV4KQoreworICAgIG1fc2VsZWN0ZWRJbmRleCA9
IHN0ZDo6bWF4KDAsIHN0ZDo6bWluKG5ld1NlbGVjdGVkSW5kZXgsIHN0YXRpY19jYXN0PGludD4o
bV9zeW1ib2xzLnNpemUoKSAtIDEpKSk7CisgICAgdXBkYXRlVmlzaWJsZVZhbHVlKCk7Cit9CisK
K1N0cmluZyBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojp2YWx1ZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGhhc1ZhbHVlKCkgPyBtX3N5bWJvbHNbbV9zZWxlY3RlZEluZGV4XSA6IGVtcHR5
U3RyaW5nKCk7Cit9CisKK2ludCBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojp2YWx1ZUFz
SW50ZWdlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2VsZWN0ZWRJbmRleDsKK30KKworU3Ry
aW5nIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnZpc2libGVFbXB0eVZhbHVlKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV92aXNpYmxlRW1wdHlWYWx1ZTsKK30KKworU3RyaW5nIERhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnZpc2libGVWYWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGhhc1ZhbHVlKCkgPyBtX3N5bWJvbHNbbV9zZWxlY3RlZEluZGV4XSA6IHZpc2libGVFbXB0
eVZhbHVlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVt
ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYWM1YzJjNjdiMjY4OTgzMjc5ZDczOWQxNTJhZTQ2NjIzNWFlNTQx
YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1l
U3ltYm9saWNGaWVsZEVsZW1lbnQuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBQTEFU
Rk9STShNQUMpCisKKyNpbmNsdWRlICJEYXRlVGltZUZpZWxkRWxlbWVudC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgOiBwdWJs
aWMgRGF0ZVRpbWVGaWVsZEVsZW1lbnQgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRGF0
ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCk7Citwcm90ZWN0ZWQ6CisgICAgRGF0ZVRpbWVTeW1i
b2xpY0ZpZWxkRWxlbWVudChEb2N1bWVudCYsIEZpZWxkT3duZXImLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYpOworICAgIHNpemVfdCBzeW1ib2xzU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3ltYm9s
cy5zaXplKCk7IH0KKyAgICBib29sIGhhc1ZhbHVlKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBp
bml0aWFsaXplKGNvbnN0IEF0b21TdHJpbmcmIHBzZXVkbyk7CisgICAgdm9pZCBzZXRFbXB0eVZh
bHVlKCkgZmluYWw7CisgICAgdm9pZCBzZXRWYWx1ZUFzSW50ZWdlcihpbnQpIGZpbmFsOworICAg
IGludCB2YWx1ZUFzSW50ZWdlcigpIGNvbnN0IGZpbmFsOworCitwcml2YXRlOgorICAgIHN0YXRp
YyBjb25zdCBpbnQgaW52YWxpZEluZGV4ID0gLTE7CisKKyAgICBTdHJpbmcgdmlzaWJsZUVtcHR5
VmFsdWUoKSBjb25zdDsKKworICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9uczoK
KyAgICBTdHJpbmcgdmFsdWUoKSBjb25zdCBmaW5hbDsKKyAgICBTdHJpbmcgdmlzaWJsZVZhbHVl
KCkgY29uc3QgZmluYWw7CisKKyAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiBtX3N5bWJvbHM7CisK
KyAgICBjb25zdCBBdG9tU3RyaW5nIG1fdmlzaWJsZUVtcHR5VmFsdWU7CisgICAgaW50IG1fc2Vs
ZWN0ZWRJbmRleDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBQTEFURk9STShNQUMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406019</attachid>
            <date>2020-08-05 11:44:24 -0700</date>
            <delta_ts>2020-08-06 11:17:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215155-20200805144423.patch</filename>
            <type>text/plain</type>
            <size>80714</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1Mjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY2NjQ5MGJiZjJjNDc4
NmVlYzU2N2UxOTYzNGIzYjc4YmMzY2M4NS4uZTNhNzM1YTBjODY4ODY5MDhjZmY1OTdlZWUzZWEy
OTU0Yzg2Nzk3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzNyBAQAorMjAyMC0wOC0wNSAgQWRp
dHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBEYXRl
IGlucHV0cyBzaG91bGQgY29udGFpbiBlZGl0YWJsZSBjb21wb25lbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUxNTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHksIHVzZXJzIGFyZSB1
bmFibGUgdG8gZWRpdCB0aGUgdmFsdWVzIGluIGRhdGUgYW5kIHRpbWUgaW5wdXQgdHlwZXMuCisg
ICAgICAgIFRvIG1hdGNoIHN5c3RlbSBkYXRlIGNvbnRyb2xzLCB1c2VycyBzaG91bGQgYmUgYWJs
ZSB0byBzZWxlY3QgYW5kIGVkaXQKKyAgICAgICAgaW5kaXZpZHVhbCBjb21wb25lbnRzIG9mIHRo
ZSBpbnB1dC4gRm9yIGV4YW1wbGUsIDxpbnB1dCB0eXBlPSJkYXRlIj4gc2hvdWxkCisgICAgICAg
IGNvbnRhaW4gYW4gZWRpdGFibGUgeWVhciwgbW9udGgsIGFuZCBkYXkgY29udHJvbC4KKworICAg
ICAgICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbmFsaXR5IHdhcyBwcmVzZW50IGluIFdlYktpdCwg
dXAgdW50aWwgaXQgd2FzIHJlbW92ZWQKKyAgICAgICAgaW4gcjE1MDg3Ni4gUHJldmlvdXNseSBr
bm93biBhcyAiSU5QVVRfTVVMVElQTEVfRklFTERTX1VJIiwgdGhlIGZlYXR1cmUgd2FzCisgICAg
ICAgIHJlbW92ZWQgYXMgaXQgd2FzIG9ubHkgdXNlZCBieSBDaHJvbWl1bSBwb3J0LiBIb3dldmVy
LCBtdWNoIG9mIHRoZSByZW1vdmVkCisgICAgICAgIGxvZ2ljIHJlbWFpbnMgdXNlZnVsIGFuZCBp
cyByZXN1cmZhY2VkIGluIHRoaXMgcGF0Y2guIE1vZGlmaWNhdGlvbnMgd2VyZSBtYWRlCisgICAg
ICAgIHRvIHVwZGF0ZSB0aGUgY29kZSB0byBmb2xsb3cgY3VycmVudCBXZWJLaXQgcHJhY3RpY2Vz
LgorCisgICAgICAgIERhdGVUaW1lRWRpdEVsZW1lbnQgaXMgYSB3cmFwcGVyIGVsZW1lbnQgdGhh
dCBjb250YWlucyBpbmRpdmlkdWFsIGZpZWxkcy4KKyAgICAgICAgVGhlIGZpZWxkcyBhcmUgYWxs
IERhdGVUaW1lRmllbGRFbGVtZW50cy4gTm90ZSB0aGF0IERhdGVUaW1lRmllbGRFbGVtZW50cwor
ICAgICAgICBhcmUgZnVydGhlciBzcGVjaWFsaXplZCBpbnRvIERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudCAoZm9yIGludGVncmFsCisgICAgICAgIHZhbHVlcykgYW5kIERhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQgKGZvciBzeW1ib2xpYyB2YWx1ZXMgc3VjaCBhcyBBLk0KKyAgICAgICAg
YW5kIFAuTSkuIERhdGVUaW1lRWRpdEVsZW1lbnQgYnVpbGRzIHRoZSBjb250cm9sIHVzaW5nIHRo
ZSB2aXNpdG9yIHBhdHRlcm4KKyAgICAgICAgYW5kIGV4aXN0aW5nIHBhcnNpbmcgbG9naWMgY29u
dGFpbmVkIGluIERhdGVUaW1lRm9ybWF0LiAKKworICAgICAgICBJbiBvcmRlciB0byByZWR1Y2Ug
dGhlIHBhdGNoIHNpemUsIHRoaXMgcGF0Y2ggb25seSBzZXRzIHVwIHRoZSByZW5kZXJpbmcKKyAg
ICAgICAgYW5kIGxheW91dCBvZiBtdWx0aXBsZSBmaWVsZHMgZm9yIDxpbnB1dCB0eXBlPSJkYXRl
Ij4uIFVwY29taW5nIHBhdGNoZXMgd2lsbAorICAgICAgICBhZGQgcmVuZGVyaW5nIGZvciBvdGhl
ciBkYXRlL3RpbWUgaW5wdXQgdHlwZXMgYW5kIGludHJvZHVjZSBlZGl0YWJpbGl0eS4KKworICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBjc3MvaHRtbC5jc3M6CisgICAgICAgIChpbnB1dDo6LXdlYmtp
dC1kYXRldGltZS1lZGl0KToKKyAgICAgICAgKGlucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQt
ZmllbGRzLXdyYXBwZXIpOgorICAgICAgICAoaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15
ZWFyLWZpZWxkLCk6CisgICAgICAgIChpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LXllYXIt
ZmllbGQ6Zm9jdXMsKToKKyAgICAgICAgKGlucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtdGV4
dCk6CisgICAgICAgICogaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZvcm1hdFZhbGlkYXRvcjo6RGF0ZVRpbWVG
b3JtYXRWYWxpZGF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGb3JtYXRWYWxpZGF0
b3I6OnZpc2l0RmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGb3JtYXRWYWxpZGF0
b3I6OnZhbGlkYXRlRm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNv
cmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3Vi
dHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0
VHlwZTo6dXBkYXRlSW5uZXJUZXh0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUNob29z
ZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnZhbHVlRm9yRWRpdENvbnRyb2wgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6Omxv
Y2FsZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIGh0bWwvQmFzZUNob29zZXJPbmx5RGF0
ZUFuZFRpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0
VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEYXRlSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVJbnB1dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyBjb25zdCk6CisgICAgICAg
ICogaHRtbC9EYXRlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9EYXRlVGltZUxvY2FsSW5w
dXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTG9jYWxJbnB1dFR5cGU6Omlz
VmFsaWRGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVMb2NhbElucHV0
VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0RhdGVU
aW1lTG9jYWxJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMg
Y29uc3QpOgorICAgICAgICAqIGh0bWwvTW9udGhJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1s
L1RpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6aXNW
YWxpZEZvcm1hdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpzZXR1
cExheW91dFBhcmFtZXRlcnMgY29uc3QpOgorICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5o
OgorICAgICAgICAqIGh0bWwvV2Vla0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
ZWVrSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Oldl
ZWtJbnB1dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyBjb25zdCk6CisgICAgICAgICogaHRt
bC9XZWVrSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxl
bWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0QnVpbGRlcjo6
RGF0ZVRpbWVFZGl0QnVpbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRCdWls
ZGVyOjpidWlsZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNp
dEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEJ1aWxkZXI6OnZpc2l0TGl0
ZXJhbCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpFZGl0Q29udHJv
bE93bmVyOjp+RWRpdENvbnRyb2xPd25lcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVk
aXRFbGVtZW50OjpEYXRlVGltZUVkaXRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6On5EYXRlVGltZUVkaXRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZpZWxkc1dyYXBwZXJFbGVtZW50IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmFkZEZpZWxkKToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUVkaXRFbGVtZW50OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVF
ZGl0RWxlbWVudDo6bG9jYWxlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUVkaXRFbGVtZW50OjpyZXNldEZpZWxkcyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUVkaXRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUVkaXRFbGVtZW50OjpzZXRFbXB0eVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRl
VGltZUVkaXRFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1l
RmllbGRFbGVtZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxk
RWxlbWVudDo6RmllbGRPd25lcjo6fkZpZWxkT3duZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lRmllbGRFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lRmllbGRFbGVtZW50Ojppbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lRmllbGRFbGVtZW50Ojpsb2NhbGVGb3JPd25lciBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6bG9jYWxlSWRlbnRpZmllciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6dXBkYXRlVmlzaWJsZVZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50OjpzdXBwb3J0c0ZvY3Vz
IGNvbnN0KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRGF5RmllbGRFbGVtZW50OjpEYXRlVGlt
ZURheUZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZURheUZpZWxkRWxl
bWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRGF5RmllbGRFbGVtZW50
OjpzZXRWYWx1ZUFzRGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU1vbnRoRmllbGRF
bGVtZW50OjpEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZU1vbnRoRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lU3ltYm9saWNNb250
aEZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljTW9udGhG
aWVsZEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGlj
TW9udGhGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVUaW1lWWVhckZpZWxkRWxlbWVudDo6RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVUaW1lWWVhckZpZWxkRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVUaW1lWWVhckZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUpOgorICAg
ICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5oOiBBZGRlZC4KKyAgICAg
ICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJpY0Zp
ZWxkRWxlbWVudDo6Zm9ybWF0VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVOdW1lcmljRmllbGRFbGVtZW50OjpoYXNWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpzZXRFbXB0eVZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0ludGVn
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojp2YWx1
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6
OnZhbHVlQXNJbnRlZ2VyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJp
Y0ZpZWxkRWxlbWVudDo6dmlzaWJsZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL3NoYWRv
dy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgICogaHRtbC9z
aGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6bWFrZVZpc2libGVFbXB0eVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6aGFzVmFsdWUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6
aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVt
ZW50OjpzZXRFbXB0eVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNG
aWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNJbnRlZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnZhbHVlQXNJbnRlZ2VyIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnZpc2libGVFbXB0
eVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVs
ZW1lbnQ6OnZpc2libGVWYWx1ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRp
bWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnN5bWJvbHNTaXplIGNvbnN0KToKKwogMjAyMC0wOC0w
NCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgIkRvdWJsZURv
d24gQ2FzaW5vIiByZXNwaW4gYnV0dG9uIHN0b3BzIHdvcmtpbmcgd2l0aCB0cmFja3BhZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAppbmRleCBhMDU3Nzg5YjViNWQzNzFiNzQyN2NjY2U3YmI1MWUwNDkyMGExNjU3Li42
OTBhMGYxNzFlYTYwYjUxYjQ1MmJiOGMwY2Q5ZDUyMjA5NzFmYzdlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApA
QCAtMTMxMCw2ICsxMzEwLDExIEBAIGh0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAK
IGh0bWwvc2hhZG93L0F1dG9GaWxsQnV0dG9uRWxlbWVudC5jcHAKIGh0bWwvc2hhZG93L0RhdGFM
aXN0QnV0dG9uRWxlbWVudC5jcHAKIGh0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNw
cAoraHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKK2h0bWwvc2hhZG93L0RhdGVU
aW1lRmllbGRFbGVtZW50LmNwcAoraHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNw
cAoraHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcAoraHRtbC9zaGFk
b3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAKIGh0bWwvc2hhZG93L01lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwCiBodG1sL3NoYWRvdy9Qcm9ncmVzc1No
YWRvd0VsZW1lbnQuY3BwCiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MDJlMTgwMmM0OWYwOThlOWNjZGU4Y2QzOTlhMzNlMDgyOGJjYTE5Zi4uNzJkMWQ3YWYxZGJjMmZj
ODI0MmM4NTMwNjczODY4Zjc4MDdhNTY0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA3MSw2ICs1MDcxLDExIEBACiAJCUU1
OEI0NUJBMjBBRDA3REQwMDk5MTAyNSAvKiBEYXRhTGlzdEJ1dHRvbkVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1OEI0NUI4MjBBRDA3REQw
MDk5MTAyNSAvKiBEYXRhTGlzdEJ1dHRvbkVsZW1lbnQuaCAqLzsgfTsKIAkJRTU5REQ0QjgyMTA5
ODI4NzAwM0M4QjQ3IC8qIExpc3RCdXR0b25BcnJvdy5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1OURENEI3MjEwOTgyODUwMDNDOEI0NyAvKiBM
aXN0QnV0dG9uQXJyb3cucG5nICovOyB9OwogCQlFNUJBN0Q2MzE1MTQzN0NBMDBGRTFFM0YgLyog
TGVuZ3RoRnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFNUJBN0Q2MjE1MTQzN0NBMDBGRTFFM0YgLyogTGVuZ3RoRnVuY3Rpb25zLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTVGMDZBRTcy
NEQ0ODQ3QjAwQkJDNEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUYwNkFFNTI0RDQ4NDdCMDBCQkM0Rjgg
LyogRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCAqLzsgfTsKKwkJRTVGMDZBRUIyNEQ0OUJGNzAwQkJD
NEY4IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVGMDZBRTkyNEQ0OUJGNzAwQkJDNEY4IC8qIERh
dGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oICovOyB9OworCQlFNUYwNkFFRjI0RDRBNjM3MDBC
QkM0RjggLyogRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVGMDZBRUQyNEQ0QTYzNzAwQkJDNEY4IC8q
IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaCAqLzsgfTsKKwkJRTVGMDZBRjMyNEQ0QUFF
NDAwQkJDNEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVGMDZBRjEyNEQ0QUFFNDAwQkJDNEY4IC8qIERh
dGVUaW1lRmllbGRFbGVtZW50cy5oICovOyB9OworCQlFNUYwNkFGNzI0RDRCQjU2MDBCQkM0Rjgg
LyogRGF0ZVRpbWVFZGl0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTVGMDZBRjUyNEQ0QkI1NjAwQkJDNEY4IC8qIERhdGVUaW1lRWRpdEVs
ZW1lbnQuaCAqLzsgfTsKIAkJRTcxNDY3QjMyNEFCQUVGMjAwRkIyRjUwIC8qIEF1ZGlvTm9kZU9w
dGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU3
MTQ2N0IxMjRBQkFFRjEwMEZCMkY1MCAvKiBBdWRpb05vZGVPcHRpb25zLmggKi87IH07CiAJCUU3
MTQ2N0I2MjRBQkFGMUQwMEZCMkY1MCAvKiBQYW5uZXJPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzE0NjdCNTI0QUJBRjFEMDBGQjJGNTAg
LyogUGFubmVyT3B0aW9ucy5oICovOyB9OwogCQlFNzU1RTg5MjI0Qzc0MzRCMDA5RjdDMjMgLyog
UGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU3NTVFODhGMjRDNzQzNEIwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVD
b25zdHJhaW50cy5oICovOyB9OwpAQCAtMTU4ODUsNiArMTU4OTAsMTYgQEAKIAkJRTU4QjQ1Qjgy
MEFEMDdERDAwOTkxMDI1IC8qIERhdGFMaXN0QnV0dG9uRWxlbWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEYXRhTGlzdEJ1dHRvbkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTU5REQ0QjcyMTA5ODI4NTAwM0M4QjQ3IC8qIExpc3RCdXR0b25BcnJvdy5wbmcgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGgg
PSBMaXN0QnV0dG9uQXJyb3cucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNUJB
N0Q2MjE1MTQzN0NBMDBGRTFFM0YgLyogTGVuZ3RoRnVuY3Rpb25zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IExlbmd0aEZ1bmN0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFNUYwNkFFNTI0RDQ4NDdCMDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1l
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTVGMDZBRTYyNEQ0ODQ3QjAwQkJDNEY4IC8qIERhdGVUaW1lRmll
bGRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhdGVUaW1lRmllbGRFbGVtZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVGMDZBRTkyNEQ0OUJGNzAwQkJDNEY4
IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRlVGlt
ZU51bWVyaWNGaWVsZEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVG
MDZBRUEyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNUYwNkFFRDI0RDRBNjM3MDBCQkM0RjggLyogRGF0
ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRlVGltZVN5bWJv
bGljRmllbGRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1RjA2QUVF
MjRENEE2MzcwMEJCQzRGOCAvKiBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFNUYwNkFGMTI0RDRBQUU0MDBCQkM0RjggLyogRGF0ZVRp
bWVGaWVsZEVsZW1lbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGVUaW1lRmllbGRFbGVtZW50cy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNUYwNkFGMjI0RDRBQUU0MDBCQkM0Rjgg
LyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhdGVUaW1l
RmllbGRFbGVtZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1RjA2QUY1
MjRENEJCNTYwMEJCQzRGOCAvKiBEYXRlVGltZUVkaXRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERhdGVUaW1lRWRpdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVG
MDZBRjYyNEQ0QkI1NjAwQkJDNEY4IC8qIERhdGVUaW1lRWRpdEVsZW1lbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUU3MTQ2N0IxMjRBQkFFRjEwMEZCMkY1MCAvKiBBdWRpb05vZGVPcHRpb25zLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvTm9kZU9wdGlvbnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTcxNDY3QjQyNEFCQUYwQjAwRkIyRjUwIC8qIEF1
ZGlvTm9kZU9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEF1ZGlvTm9kZU9wdGlvbnMuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFNzE0NjdCNTI0QUJBRjFEMDBGQjJGNTAgLyogUGFubmVyT3B0
aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYW5uZXJPcHRpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODYyMiw2ICsxODYzNywxNiBAQAogCQkJ
CTdDMUU5NzI1MUE5Rjk4MzQwMDdCRjBGQiAvKiBBdXRvRmlsbEJ1dHRvbkVsZW1lbnQuY3BwICov
LAogCQkJCTdDMUU5NzI2MUE5Rjk4MzQwMDdCRjBGQiAvKiBBdXRvRmlsbEJ1dHRvbkVsZW1lbnQu
aCAqLywKIAkJCQlFNThCNDVCODIwQUQwN0REMDA5OTEwMjUgLyogRGF0YUxpc3RCdXR0b25FbGVt
ZW50LmggKi8sCisJCQkJRTVGMDZBRjYyNEQ0QkI1NjAwQkJDNEY4IC8qIERhdGVUaW1lRWRpdEVs
ZW1lbnQuY3BwICovLAorCQkJCUU1RjA2QUY1MjRENEJCNTYwMEJCQzRGOCAvKiBEYXRlVGltZUVk
aXRFbGVtZW50LmggKi8sCisJCQkJRTVGMDZBRTYyNEQ0ODQ3QjAwQkJDNEY4IC8qIERhdGVUaW1l
RmllbGRFbGVtZW50LmNwcCAqLywKKwkJCQlFNUYwNkFFNTI0RDQ4NDdCMDBCQkM0RjggLyogRGF0
ZVRpbWVGaWVsZEVsZW1lbnQuaCAqLywKKwkJCQlFNUYwNkFGMjI0RDRBQUU0MDBCQkM0RjggLyog
RGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcCAqLywKKwkJCQlFNUYwNkFGMTI0RDRBQUU0MDBCQkM0
RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmggKi8sCisJCQkJRTVGMDZBRUEyNEQ0OUJGNzAw
QkJDNEY4IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAgKi8sCisJCQkJRTVGMDZB
RTkyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oICovLAor
CQkJCUU1RjA2QUVFMjRENEE2MzcwMEJCQzRGOCAvKiBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVt
ZW50LmNwcCAqLywKKwkJCQlFNUYwNkFFRDI0RDRBNjM3MDBCQkM0RjggLyogRGF0ZVRpbWVTeW1i
b2xpY0ZpZWxkRWxlbWVudC5oICovLAogCQkJCUE3QzlBQkY2MTM1N0EzQkYwMEY1NTAzRiAvKiBE
ZXRhaWxzTWFya2VyQ29udHJvbC5jcHAgKi8sCiAJCQkJQTdDOUFCRjcxMzU3QTNCRjAwRjU1MDNG
IC8qIERldGFpbHNNYXJrZXJDb250cm9sLmggKi8sCiAJCQkJNTEwMTkyRDMxOEI2QjlCNzAwN0ZD
N0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudC5jcHAgKi8sCkBAIC0zMDY1MSw4ICszMDY3
NiwxMyBAQAogCQkJCUY1NUIzREI2MTI1MUYxMkQwMDNFRjI2OSAvKiBEYXRlSW5wdXRUeXBlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzN0M3MzhGMzFFREJERThBMDAzRjJCMEIgLyogRGF0ZVRpbWVD
aG9vc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0M3MzhGNDFFREJERThEMDAzRjJCMEIgLyog
RGF0ZVRpbWVDaG9vc2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlFNUYwNkFGNzI0RDRC
QjU2MDBCQkM0RjggLyogRGF0ZVRpbWVFZGl0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RTVGMDZBRTcyNEQ0ODQ3QjAwQkJDNEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFNUYwNkFGMzI0RDRBQUU0MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVs
ZW1lbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NTNFQjYzNzE1OUM1NzA0MDAwMDFCQjcgLyog
RGF0ZVRpbWVGb3JtYXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzREJBMTI1MUYxMkQwMDNF
RjI2OSAvKiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNUYw
NkFFQjI0RDQ5QkY3MDBCQkM0RjggLyogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKKwkJCQlFNUYwNkFFRjI0RDRBNjM3MDBCQkM0RjggLyogRGF0ZVRpbWVTeW1i
b2xpY0ZpZWxkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2QTEyQkUxQTAwOTIzNzAw
QzZERTcyIC8qIERlYnVnUGFnZU92ZXJsYXlzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NUZFQTVE
MDE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzE1QUQ3
MjAyMDUwNTEzMjAwRDU5MkRDIC8qIERlY2xhcmF0aXZlQW5pbWF0aW9uLmggaW4gSGVhZGVycyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9odG1sLmNzcwppbmRleCBkYWY4OTE5ZWIxNmQ3M2RjN2YwNTlkMzFmMDAzNjNjNWJl
ODcyMTJlLi5lMGJmZTgxODVjZmIwZTc4YTU5MDgzYjc4YjQ2MWY3NTI0MmNkMTZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L2h0bWwuY3NzCkBAIC00ODQsNiArNDg0LDM0IEBAIGlucHV0Ojotd2Via2l0LWRhdGUtYW5kLXRp
bWUtdmFsdWUgewogI2VuZGlmCiB9CiAKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQgewor
ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICBvdmVyZmxvdzogaGlkZGVuOworfQorCitp
bnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LWZpZWxkcy13cmFwcGVyIHsKKyAgICBkaXNwbGF5
OiBpbmxpbmUtYmxvY2s7Cit9CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQteWVhci1m
aWVsZCwKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtbW9udGgtZmllbGQsCitpbnB1dDo6
LXdlYmtpdC1kYXRldGltZS1lZGl0LWRheS1maWVsZCB7CisgICAgZGlzcGxheTogaW5saW5lOwor
ICAgIHBhZGRpbmc6IDFweDsKK30KKworaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15ZWFy
LWZpZWxkOmZvY3VzLAoraW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1tb250aC1maWVsZDpm
b2N1cywKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtZGF5LWZpZWxkOmZvY3VzIHsKKyAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiAtYXBwbGUtc3lzdGVtLWNvbnRyb2wtYWNjZW50OworICAgIGNv
bG9yOiB3aGl0ZTsKKyAgICBvdXRsaW5lOiBub25lOworfQorCitpbnB1dDo6LXdlYmtpdC1kYXRl
dGltZS1lZGl0LXRleHQgeworICAgIGRpc3BsYXk6IGlubGluZTsKK30KKwogaW5wdXQ6Oi13ZWJr
aXQtaW5uZXItc3Bpbi1idXR0b24gewogICAgIC13ZWJraXQtYXBwZWFyYW5jZTogaW5uZXItc3Bp
bi1idXR0b247CiAgICAgZGlzcGxheTogYmxvY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCmluZGV4
IDU0MjFmZGI0YmY2YjgxZGU5ZjU0ZTFiMjE2NjVhOTc1YmQzYTMzMTUuLjQ5MWE1ZDhkYTMzODUy
MWM0OTUzOGEwZTliN2E5MzFkMzk0MDMyZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCkBAIC0y
OSwxNiArMjksNzggQEAKIAogI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQog
CisjaW5jbHVkZSAiRGF0ZVRpbWVGb3JtYXQuaCIKICNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5j
bHVkZSAiUGxhdGZvcm1Mb2NhbGUuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJVc2VyR2Vz
dHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERhdGVUaW1lRm9ybWF0VmFsaWRhdG9yIDogcHVibGlj
IERhdGVUaW1lRm9ybWF0OjpUb2tlbkhhbmRsZXIgeworcHVibGljOgorICAgIERhdGVUaW1lRm9y
bWF0VmFsaWRhdG9yKCkgeyB9CisKKyAgICB2b2lkIHZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZSwgaW50KSBmaW5hbDsKKyAgICB2b2lkIHZpc2l0TGl0ZXJhbChjb25zdCBTdHJp
bmcmKSBmaW5hbCB7IH0KKworICAgIGJvb2wgdmFsaWRhdGVGb3JtYXQoY29uc3QgU3RyaW5nJiBm
b3JtYXQsIGNvbnN0IEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlJik7CisKK3By
aXZhdGU6CisgICAgT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+IG1f
cmVzdWx0czsKK307CisKK3ZvaWQgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0b3I6OnZpc2l0RmllbGQo
RGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSBmaWVsZFR5cGUsIGludCkKK3sKKyAgICBzd2l0Y2gg
KGZpZWxkVHlwZSkgeworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVllYXI6Cisg
ICAgICAgIG1fcmVzdWx0cy5hZGQoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFz
WWVhcik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlw
ZU1vbnRoOgorICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRoU3RhbmRBbG9u
ZToKKyAgICAgICAgbV9yZXN1bHRzLmFkZChEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRz
OjpIYXNNb250aCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZp
ZWxkVHlwZVdlZWtPZlllYXI6CisgICAgICAgIG1fcmVzdWx0cy5hZGQoRGF0ZVRpbWVGb3JtYXRW
YWxpZGF0aW9uUmVzdWx0czo6SGFzV2Vlayk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0
ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZURheU9mTW9udGg6CisgICAgICAgIG1fcmVzdWx0cy5hZGQo
RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzRGF5KTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlUGVyaW9kOgorICAgICAgICBtX3Jl
c3VsdHMuYWRkKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0FNUE0pOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMTE6Cisg
ICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjEyOgorICAgICAgICBtX3Jlc3Vs
dHMuYWRkKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0hvdXIpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMjM6CisgICAg
Y2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjI0OgorICAgICAgICBtX3Jlc3VsdHMu
YWRkKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0hvdXIpOworICAgICAgICBt
X3Jlc3VsdHMuYWRkKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0FNUE0pOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNaW51dGU6
CisgICAgICAgIG1fcmVzdWx0cy5hZGQoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6
SGFzV2Vlayk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxk
VHlwZVNlY29uZDoKKyAgICAgICAgbV9yZXN1bHRzLmFkZChEYXRlVGltZUZvcm1hdFZhbGlkYXRp
b25SZXN1bHRzOjpIYXNTZWNvbmQpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBicmVhazsKKyAgICB9Cit9CisKK2Jvb2wgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0b3I6OnZh
bGlkYXRlRm9ybWF0KGNvbnN0IFN0cmluZyYgZm9ybWF0LCBjb25zdCBCYXNlQ2hvb3Nlck9ubHlE
YXRlQW5kVGltZUlucHV0VHlwZSYgaW5wdXRUeXBlKQoreworICAgIGlmICghRGF0ZVRpbWVGb3Jt
YXQ6OnBhcnNlKGZvcm1hdCwgKnRoaXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0
dXJuIGlucHV0VHlwZS5pc1ZhbGlkRm9ybWF0KG1fcmVzdWx0cyk7Cit9CisKIEJhc2VDaG9vc2Vy
T25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjp+QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1
dFR5cGUoKQogewogICAgIGNsb3NlRGF0ZVRpbWVDaG9vc2VyKCk7CkBAIC02MSwxOCArMTIzLDQ2
IEBAIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmhhbmRsZURPTUFj
dGl2YXRlRXZlbnQoRXZlbnQmKQogCiB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5w
dXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKLSAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHZhbHVlQ29udGFpbmVyUHNldWRvKCItd2Vi
a2l0LWRhdGUtYW5kLXRpbWUtdmFsdWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7Ci0KICAgICBBU1NFUlQoZWxlbWVudCgpKTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgbV9k
YXRlVGltZUVkaXRFbGVtZW50ID0gRGF0ZVRpbWVFZGl0RWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQo
KS0+ZG9jdW1lbnQoKSwgKnRoaXMpOworICAgIGVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9v
dCgpLT5hcHBlbmRDaGlsZCgqbV9kYXRlVGltZUVkaXRFbGVtZW50KTsKKyNlbHNlCisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2YWx1ZUNvbnRh
aW5lclBzZXVkbygiLXdlYmtpdC1kYXRlLWFuZC10aW1lLXZhbHVlIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGF1dG8gdmFsdWVDb250YWluZXIgPSBIVE1MRGl2RWxl
bWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSk7CiAgICAgdmFsdWVDb250YWluZXIt
PnNldFBzZXVkbyh2YWx1ZUNvbnRhaW5lclBzZXVkbyk7CiAgICAgZWxlbWVudCgpLT51c2VyQWdl
bnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKHZhbHVlQ29udGFpbmVyKTsKKyNlbmRpZgorCiAg
ICAgdXBkYXRlSW5uZXJUZXh0VmFsdWUoKTsKIH0KIAordm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRl
QW5kVGltZUlucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUoKQoreworI2lmIFBMQVRGT1JN
KE1BQykKKyAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQgPSBudWxscHRyOworI2VuZGlmCit9CisK
IHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnVwZGF0ZUlubmVyVGV4
dFZhbHVlKCkKIHsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKKyNpZiBQTEFURk9STShNQUMpCisg
ICAgaWYgKCFtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIERh
dGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMgbGF5b3V0UGFyYW1ldGVycyhlbGVt
ZW50KCktPmxvY2FsZSgpKTsKKyAgICBzZXR1cExheW91dFBhcmFtZXRlcnMobGF5b3V0UGFyYW1l
dGVycyk7CisKKyAgICBpZiAoIURhdGVUaW1lRm9ybWF0VmFsaWRhdG9yKCkudmFsaWRhdGVGb3Jt
YXQobGF5b3V0UGFyYW1ldGVycy5kYXRlVGltZUZvcm1hdCwgKnRoaXMpKQorICAgICAgICBsYXlv
dXRQYXJhbWV0ZXJzLmRhdGVUaW1lRm9ybWF0ID0gbGF5b3V0UGFyYW1ldGVycy5mYWxsYmFja0Rh
dGVUaW1lRm9ybWF0OworCisgICAgYXV0byBkYXRlID0gcGFyc2VUb0RhdGVDb21wb25lbnRzKGVs
ZW1lbnQoKS0+dmFsdWUoKSk7CisgICAgaWYgKCFkYXRlKQorICAgICAgICBtX2RhdGVUaW1lRWRp
dEVsZW1lbnQtPnNldEVtcHR5VmFsdWUobGF5b3V0UGFyYW1ldGVycyk7CisgICAgZWxzZQorICAg
ICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnNldFZhbHVlQXNEYXRlKGxheW91dFBhcmFtZXRl
cnMsICpkYXRlKTsKKyNlbHNlCiAgICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBlbGVtZW50KCktPnVz
ZXJBZ2VudFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOwogICAgIGlmICghaXM8SFRNTEVsZW1l
bnQ+KG5vZGUpKQogICAgICAgICByZXR1cm47CkBAIC04Miw2ICsxNzIsNyBAQCB2b2lkIEJhc2VD
aG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjp1cGRhdGVJbm5lclRleHRWYWx1ZSgpCiAg
ICAgICAgIGRpc3BsYXlWYWx1ZSA9ICIgIl9zOwogICAgIH0KICAgICBkb3duY2FzdDxIVE1MRWxl
bWVudD4oKm5vZGUpLnNldElubmVyVGV4dChkaXNwbGF5VmFsdWUpOworI2VuZGlmCiB9CiAKIHZv
aWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0
cmluZyYgdmFsdWUsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2
ZW50QmVoYXZpb3IpCkBAIC0xNTQsNiArMjQ1LDIxIEBAIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0
ZUFuZFRpbWVJbnB1dFR5cGU6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYK
ICAgICBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSk7CiB9
CiAKKyNpZiBQTEFURk9STShNQUMpCisKK1N0cmluZyBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGlt
ZUlucHV0VHlwZTo6dmFsdWVGb3JFZGl0Q29udHJvbCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGVs
ZW1lbnQoKSk7CisgICAgcmV0dXJuIGVsZW1lbnQoKS0+dmFsdWUoKTsKK30KKworQXRvbVN0cmlu
ZyBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6bG9jYWxlSWRlbnRpZmllcigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGVsZW1lbnQoKS0+Y29tcHV0ZUluaGVyaXRlZExhbmd1YWdl
KCk7Cit9CisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCisKIH0KIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRU
eXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5w
dXRUeXBlLmgKaW5kZXggYTNmMWNmNWE1YjJhY2EwY2E4ZTk5NTE4MTE2OTUyMDBhMzM3OGYwZC4u
ZjQ2ZTVmYzBkZjdlYjgyZDk4MmI3ZThmNDMzYjZhMjZjMzZkZWU1MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5
cGUuaApAQCAtMzIsMjAgKzMyLDU0IEBACiAjaW5jbHVkZSAiQmFzZURhdGVBbmRUaW1lSW5wdXRU
eXBlLmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVDaG9vc2VyLmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVD
aG9vc2VyQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgorCisjaWYgUExBVEZP
Uk0oTUFDKQorI2luY2x1ZGUgIkRhdGVUaW1lRWRpdEVsZW1lbnQuaCIKKyNlbmRpZgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRU
eXBlIDogcHVibGljIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSwgcHJpdmF0ZSBEYXRlVGltZUNo
b29zZXJDbGllbnQgeworZW51bSBjbGFzcyBEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRz
IDogdWludDhfdCB7CisgICAgSGFzWWVhciA9IDEgPDwgMCwKKyAgICBIYXNNb250aCA9IDEgPDwg
MSwKKyAgICBIYXNXZWVrID0gMSA8PCAyLAorICAgIEhhc0RheSA9IDEgPDwgMywKKyAgICBIYXNB
TVBNID0gMSA8PCA0LAorICAgIEhhc0hvdXIgPSAxIDw8IDUsCisgICAgSGFzTWludXRlID0gMSA8
PCA2LAorICAgIEhhc1NlY29uZCA9IDEgPDwgNywKK307CisKK2NsYXNzIEJhc2VDaG9vc2VyT25s
eURhdGVBbmRUaW1lSW5wdXRUeXBlIDogcHVibGljIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSwg
cHJpdmF0ZSBEYXRlVGltZUNob29zZXJDbGllbnQKKyNpZiBQTEFURk9STShNQUMpCisgICAgLCBw
cml2YXRlIERhdGVUaW1lRWRpdEVsZW1lbnQ6OkVkaXRDb250cm9sT3duZXIKKyNlbmRpZgorewor
cHVibGljOgorICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGlt
ZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPikgY29uc3QgPSAwOworCiBwcm90ZWN0ZWQ6CiAgICAg
ZXhwbGljaXQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUoSFRNTElucHV0RWxl
bWVudCYgZWxlbWVudCkgOiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAg
ICAgfkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlKCk7CiAKKyNpZiBQTEFURk9S
TShNQUMpCisgICAgdmlydHVhbCB2b2lkIHNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRlVGltZUVk
aXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29uc3QgPSAwOworI2VuZGlmCisKIHByaXZh
dGU6CiAgICAgdm9pZCB1cGRhdGVJbm5lclRleHRWYWx1ZSgpIG92ZXJyaWRlOwogICAgIHZvaWQg
Y2xvc2VEYXRlVGltZUNob29zZXIoKTsKIAorI2lmIFBMQVRGT1JNKE1BQykKKyAgICAvLyBEYXRl
VGltZUVkaXRFbGVtZW50OjpFZGl0Q29udHJvbE93bmVyIGZ1bmN0aW9uczoKKyAgICBTdHJpbmcg
dmFsdWVGb3JFZGl0Q29udHJvbCgpIGNvbnN0IGZpbmFsOworICAgIEF0b21TdHJpbmcgbG9jYWxl
SWRlbnRpZmllcigpIGNvbnN0IGZpbmFsOworI2VuZGlmCisKICAgICAvLyBJbnB1dFR5cGUgZnVu
Y3Rpb25zOgogICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZSgpIG92ZXJyaWRlOworICAgIHZv
aWQgZGVzdHJveVNoYWRvd1N1YnRyZWUoKSBvdmVycmlkZTsKICAgICB2b2lkIGRldGFjaCgpIG92
ZXJyaWRlOwogICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5n
ZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIG92ZXJyaWRlOwogICAgIHZvaWQgaGFuZGxlRE9N
QWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOwpAQCAtNjEsNiArOTUsOSBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGlkRW5kQ2hvb3NlcigpIGZpbmFsOwogCiAgICAgUmVmUHRyPERhdGVUaW1l
Q2hvb3Nlcj4gbV9kYXRlVGltZUNob29zZXI7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIFJlZlB0
cjxEYXRlVGltZUVkaXRFbGVtZW50PiBtX2RhdGVUaW1lRWRpdEVsZW1lbnQ7CisjZW5kaWYKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VE
YXRlQW5kVGltZUlucHV0VHlwZS5oCmluZGV4IDNlMTcyNDcwNjEzMjVkMGEyOGU0ZDE0Y2E5ODQw
YWRkMmM1YjQ5ZTIuLjgyN2QwMWI5ZjM2ZjI4MTc3YTdjMjBiYmZiMTVmMzI0OTkyMGNlMDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaApAQCAt
NTMsOCArNTMsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtl
eWJvYXJkRXZlbnQqKSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgogCi1wcml2YXRlOgogICAgIHZp
cnR1YWwgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHBhcnNlVG9EYXRlQ29tcG9uZW50cyhjb25z
dCBTdHJpbmdWaWV3JikgY29uc3QgPSAwOworCitwcml2YXRlOgogICAgIHZpcnR1YWwgT3B0aW9u
YWw8RGF0ZUNvbXBvbmVudHM+IHNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3VibGUp
IGNvbnN0ID0gMDsKIAogICAgIGRvdWJsZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKaW5kZXggYTVkNmQ5ZWYyODc5MjE2OGZl
OWNmYmY2NjdhYzAxNDlkZDMwODEwNC4uNmM5ZDFlODYzNGExNGM3Mjc1Nzk3NjMzNmU4YmZkZDIz
NjVmOWEwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCkBAIC0zNSw2ICsz
NSw3IEBACiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1Mb2Nh
bGUuaCIKICNpbmNsdWRlICJTdGVwUmFuZ2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
ODYsNSArODcsMjAgQEAgYm9vbCBEYXRlSW5wdXRUeXBlOjppc0RhdGVGaWVsZCgpIGNvbnN0CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgRGF0ZUlucHV0VHlwZTo6aXNWYWxpZEZvcm1hdChP
cHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4gcmVzdWx0cykgY29uc3QK
K3sKKyAgICByZXR1cm4gcmVzdWx0cy5jb250YWlucyhEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25S
ZXN1bHRzOjpIYXNZZWFyKQorICAgICAgICAmJiByZXN1bHRzLmNvbnRhaW5zKERhdGVUaW1lRm9y
bWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc01vbnRoKQorICAgICAgICAmJiByZXN1bHRzLmNvbnRh
aW5zKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0RheSk7Cit9CisKKyNpZiBQ
TEFURk9STShNQUMpCit2b2lkIERhdGVJbnB1dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyhE
YXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJiBsYXlvdXRQYXJhbWV0ZXJzKSBj
b25zdAoreworICAgIGxheW91dFBhcmFtZXRlcnMuZGF0ZVRpbWVGb3JtYXQgPSBsYXlvdXRQYXJh
bWV0ZXJzLmxvY2FsZS5kYXRlRm9ybWF0KCk7CisgICAgbGF5b3V0UGFyYW1ldGVycy5mYWxsYmFj
a0RhdGVUaW1lRm9ybWF0ID0gInl5eXktTU0tZGQiX3M7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Rh
dGVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCmluZGV4
IDMzNTUwNzRiZTZkNWYyZTJmNjM4ODA2NjJkMzk2MDY1ZGU2OWJmMmIuLjEwNzlmYmI5OWFlYzEz
MjE0MzkzMzQ2ZTU0MWNkYTA2NzQyNDBhZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRGF0ZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlw
ZS5oCkBAIC00Nyw2ICs0NywxMSBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPERhdGVDb21wb25l
bnRzPiBwYXJzZVRvRGF0ZUNvbXBvbmVudHMoY29uc3QgU3RyaW5nVmlldyYpIGNvbnN0IG92ZXJy
aWRlOwogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNv
bXBvbmVudHMoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzRGF0ZUZpZWxkKCkg
Y29uc3Qgb3ZlcnJpZGU7CisKKyAgICBib29sIGlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVU
aW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+KSBjb25zdCBvdmVycmlkZTsKKyNpZiBQTEFURk9S
TShNQUMpCisgICAgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVu
dDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0IG92ZXJyaWRlOworI2VuZGlmCiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVU
aW1lTG9jYWxJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2Fs
SW5wdXRUeXBlLmNwcAppbmRleCBkYjYzOTA4ZmE2NDUyZmRmZWUwYjFlM2E1NmYzNjdjMDFiN2My
ZDI5Li5iYzQ0OTNkNWE1ZGZhNWZmY2Q5MDc4YTRjMTMwOGY5YmJmNTFlZDVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKQEAgLTk1LDYgKzk1
LDIyIEBAIGJvb2wgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6aXNEYXRlVGltZUxvY2FsRmllbGQo
KSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIERhdGVUaW1lTG9jYWxJbnB1dFR5
cGU6OmlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3Vs
dHM+IHJlc3VsdHMpIGNvbnN0Cit7CisgICAgcmV0dXJuIHJlc3VsdHMuY29udGFpbnMoRGF0ZVRp
bWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzWWVhcikKKyAgICAgICAgJiYgcmVzdWx0cy5j
b250YWlucyhEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNNb250aCkKKyAgICAg
ICAgJiYgcmVzdWx0cy5jb250YWlucyhEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpI
YXNEYXkpCisgICAgICAgICYmIHJlc3VsdHMuY29udGFpbnMoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0
aW9uUmVzdWx0czo6SGFzSG91cikKKyAgICAgICAgJiYgcmVzdWx0cy5jb250YWlucyhEYXRlVGlt
ZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNNaW51dGUpOworfQorCisjaWYgUExBVEZPUk0o
TUFDKQordm9pZCBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMo
RGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0Cit7CisKK30KKyNl
bmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaAppbmRleCAyYzA0OTQ5ZjBmMGE2ZDkwZjMy
NDhlNGVmOTBiODAwMDE5NzQ5NGE1Li4wMTY1ZTEyMzI4MjVkOTVmYWIyMDY0YzAxZmM4ODhmZTAx
ZDNhNTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1
dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUu
aApAQCAtNDksNiArNDksMTEgQEAgcHJpdmF0ZToKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50
cz4gcGFyc2VUb0RhdGVDb21wb25lbnRzKGNvbnN0IFN0cmluZ1ZpZXcmKSBjb25zdCBmaW5hbDsK
ICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25l
bnRzKGRvdWJsZSkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBpc0RhdGVUaW1lTG9jYWxGaWVsZCgp
IGNvbnN0IGZpbmFsOworCisgICAgYm9vbCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGlt
ZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPikgY29uc3Qgb3ZlcnJpZGU7CisjaWYgUExBVEZPUk0o
TUFDKQorICAgIHZvaWQgc2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6
OkxheW91dFBhcmFtZXRlcnMmKSBjb25zdCBvdmVycmlkZTsKKyNlbmRpZgogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAppbmRl
eCA0OTAyNjBjMjhjNzlmMzUwNjc2MjdjODlkYjAyZjliNjliYjBlZTA0Li43ODUxMTExMWYwY2Mx
OTc3N2VjMWIyNDU5YTBmNDJhMjFkNGE0MDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL01vbnRoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5w
dXRUeXBlLmNwcApAQCAtMTI5LDYgKzEyOSwxOSBAQCBib29sIE1vbnRoSW5wdXRUeXBlOjppc01v
bnRoRmllbGQoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIE1vbnRoSW5wdXRU
eXBlOjppc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1
bHRzPiByZXN1bHRzKSBjb25zdAoreworICAgIHJldHVybiByZXN1bHRzLmNvbnRhaW5zKERhdGVU
aW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc1llYXIpCisgICAgICAgICYmIHJlc3VsdHMu
Y29udGFpbnMoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzTW9udGgpOworfQor
CisjaWYgUExBVEZPUk0oTUFDKQordm9pZCBNb250aElucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJh
bWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25zdAorewor
Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTW9udGhJbnB1dFR5cGUuaAppbmRleCAwY2NhOTIyYTUzYzQwZGYxNThkY2ZiMmM2MDYx
ZDhhMzhjODRhZjg0Li41MTViMjliYzhhZmVhZWZmYTMzYmVlYWE2YTJkZGY2NTBkMzg0ZjQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oCkBAIC01MSw2ICs1MSwxMSBAQCBwcml2
YXRlOgogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBwYXJzZVRvRGF0ZUNvbXBvbmVudHMo
Y29uc3QgU3RyaW5nVmlldyYpIGNvbnN0IG92ZXJyaWRlOwogICAgIE9wdGlvbmFsPERhdGVDb21w
b25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlKSBjb25zdCBvdmVy
cmlkZTsKICAgICBib29sIGlzTW9udGhGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgYm9v
bCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRz
PikgY29uc3Qgb3ZlcnJpZGU7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIHZvaWQgc2V0dXBMYXlv
dXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25z
dCBvdmVycmlkZTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKaW5kZXggMGJkMmQ0YmNlOWE1OGViNzk2Nzk3YjM4
MTEwMDg0NWFlNWQ2NTZmZC4uYjQ2YmIwZWZlOTJlYzY4ODE5ZTI3ZjRmMmJjMzllNGFkYmQzN2M4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCkBAIC0zNiw2ICszNiw3IEBA
CiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgog
I2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1Mb2NhbGUuaCIK
ICNpbmNsdWRlICJTdGVwUmFuZ2UuaCIKICNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KICNpbmNs
dWRlIDx3dGYvTWF0aEV4dHJhcy5oPgpAQCAtMTA0LDYgKzEwNSwxOSBAQCBib29sIFRpbWVJbnB1
dFR5cGU6OmlzVGltZUZpZWxkKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBU
aW1lSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlk
YXRpb25SZXN1bHRzPiByZXN1bHRzKSBjb25zdAoreworICAgIHJldHVybiByZXN1bHRzLmNvbnRh
aW5zKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0hvdXIpCisgICAgICAgICYm
IHJlc3VsdHMuY29udGFpbnMoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzTWlu
dXRlKTsKK30KKworI2lmIFBMQVRGT1JNKE1BQykKK3ZvaWQgVGltZUlucHV0VHlwZTo6c2V0dXBM
YXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBj
b25zdAoreworCit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKaW5kZXggODQxNjZiMDk1YWYyMTg4Y2E4ZTA3
NTZiZTdlNTU3MTFiMTJkOGVkNC4uZTYyNmYyMTY5OTYwNmE0OGQ4MDQ2NTk0MTQxY2IzNzM0YWU1
OTBjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKQEAgLTQ4LDYgKzQ4LDExIEBA
IHByaXZhdGU6CiAgICAgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHBhcnNlVG9EYXRlQ29tcG9u
ZW50cyhjb25zdCBTdHJpbmdWaWV3JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgT3B0aW9uYWw8RGF0
ZUNvbXBvbmVudHM+IHNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3VibGUpIGNvbnN0
IG92ZXJyaWRlOwogICAgIGJvb2wgaXNUaW1lRmllbGQoKSBjb25zdCBvdmVycmlkZTsKKworICAg
IGJvb2wgaXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVz
dWx0cz4pIGNvbnN0IG92ZXJyaWRlOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICB2b2lkIHNldHVw
TGF5b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJikg
Y29uc3Qgb3ZlcnJpZGU7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwCmluZGV4IGIyYmIyNDNiOTA1ZDg0MTViMDM0
Yzk0MDZlNGJmYTM4MjFiMzliYTMuLjEwYzk0NDc1Y2Y5MmI5NDBjMjljYThjOGZhOGExNjY1Yjhm
MjY3YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcApAQCAtODIsNiArODIs
MTkgQEAgYm9vbCBXZWVrSW5wdXRUeXBlOjppc1dlZWtGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKK2Jvb2wgV2Vla0lucHV0VHlwZTo6aXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8
RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4gcmVzdWx0cykgY29uc3QKK3sKKyAgICBy
ZXR1cm4gcmVzdWx0cy5jb250YWlucyhEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpI
YXNZZWFyKQorICAgICAgICAmJiByZXN1bHRzLmNvbnRhaW5zKERhdGVUaW1lRm9ybWF0VmFsaWRh
dGlvblJlc3VsdHM6Okhhc1dlZWspOworfQorCisjaWYgUExBVEZPUk0oTUFDKQordm9pZCBXZWVr
SW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5
b3V0UGFyYW1ldGVycyYpIGNvbnN0Cit7CisKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5w
dXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaAppbmRleCBkM2Jh
MTUxMzNlNzM0MTFlYTgwNTRjMDMzY2YxMDZhNWMzNjZhM2E3Li4xMWNkYzBiNzg1NmI3YjUyOTBl
ZDRlZGZmODBhNTk2NTBmOGFiODE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dl
ZWtJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaApA
QCAtNDcsNiArNDcsMTEgQEAgcHJpdmF0ZToKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4g
cGFyc2VUb0RhdGVDb21wb25lbnRzKGNvbnN0IFN0cmluZ1ZpZXcmKSBjb25zdCBvdmVycmlkZTsK
ICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25l
bnRzKGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1dlZWtGaWVsZCgpIGNvbnN0
IG92ZXJyaWRlOworCisgICAgYm9vbCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZv
cm1hdFZhbGlkYXRpb25SZXN1bHRzPikgY29uc3Qgb3ZlcnJpZGU7CisjaWYgUExBVEZPUk0oTUFD
KQorICAgIHZvaWQgc2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6Okxh
eW91dFBhcmFtZXRlcnMmKSBjb25zdCBvdmVycmlkZTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0
ZVRpbWVFZGl0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGlt
ZUVkaXRFbGVtZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MGJjZTVkNDdmZTEwMGM3OTdlY2EwZGZkNDJh
NmNlNjllYmFjNDExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKQEAgLTAsMCArMSwyMjggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEYXRlVGltZUVkaXRFbGVtZW50LmgiCisK
KyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykgJiYgUExBVEZPUk0oTUFDKQor
CisjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKKyNpbmNsdWRlICJEYXRlVGltZUZpZWxkRWxl
bWVudHMuaCIKKyNpbmNsdWRlICJEYXRlVGltZUZvcm1hdC5oIgorI2luY2x1ZGUgIkRhdGVUaW1l
U3ltYm9saWNGaWVsZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRl
ICJQbGF0Zm9ybUxvY2FsZS5oIgorI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCitXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRGF0ZVRpbWVFZGl0RWxlbWVudCk7CisKK2NsYXNzIERh
dGVUaW1lRWRpdEJ1aWxkZXIgOiBwcml2YXRlIERhdGVUaW1lRm9ybWF0OjpUb2tlbkhhbmRsZXIg
eworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERhdGVUaW1lRWRpdEJ1aWxkZXIpOworCitwdWJs
aWM6CisgICAgRGF0ZVRpbWVFZGl0QnVpbGRlcihEYXRlVGltZUVkaXRFbGVtZW50JiwgY29uc3Qg
RGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpOworCisgICAgYm9vbCBidWls
ZChjb25zdCBTdHJpbmcmKTsKKworcHJpdmF0ZToKKyAgICAvLyBEYXRlVGltZUZvcm1hdDo6VG9r
ZW5IYW5kbGVyIGZ1bmN0aW9uczoKKyAgICB2b2lkIHZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZSwgaW50KSBmaW5hbDsKKyAgICB2b2lkIHZpc2l0TGl0ZXJhbChjb25zdCBTdHJp
bmcmKSBmaW5hbDsKKworICAgIERhdGVUaW1lRWRpdEVsZW1lbnQmIG1fZWRpdEVsZW1lbnQ7Cisg
ICAgY29uc3QgRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYgbV9wYXJhbWV0
ZXJzOworfTsKKworRGF0ZVRpbWVFZGl0QnVpbGRlcjo6RGF0ZVRpbWVFZGl0QnVpbGRlcihEYXRl
VGltZUVkaXRFbGVtZW50JiBlbGVtZW50LCBjb25zdCBEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlv
dXRQYXJhbWV0ZXJzJiBsYXlvdXRQYXJhbWV0ZXJzKQorICAgIDogbV9lZGl0RWxlbWVudChlbGVt
ZW50KQorICAgICwgbV9wYXJhbWV0ZXJzKGxheW91dFBhcmFtZXRlcnMpCit7Cit9CisKK2Jvb2wg
RGF0ZVRpbWVFZGl0QnVpbGRlcjo6YnVpbGQoY29uc3QgU3RyaW5nJiBmb3JtYXRTdHJpbmcpCit7
CisgICAgbV9lZGl0RWxlbWVudC5yZXNldEZpZWxkcygpOworICAgIHJldHVybiBEYXRlVGltZUZv
cm1hdDo6cGFyc2UoZm9ybWF0U3RyaW5nLCAqdGhpcyk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVFZGl0
QnVpbGRlcjo6dmlzaXRGaWVsZChEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlIGZpZWxkVHlwZSwg
aW50IGNvdW50KQoreworICAgIGNvbnN0IGludCBjb3VudEZvckFiYnJldmlhdGVkTW9udGggPSAz
OworICAgIGNvbnN0IGludCBjb3VudEZvckZ1bGxNb250aCA9IDQ7CisgICAgY29uc3QgaW50IGNv
dW50Rm9yTmFycm93TW9udGggPSA1OworICAgIERvY3VtZW50JiBkb2N1bWVudCA9IG1fZWRpdEVs
ZW1lbnQuZG9jdW1lbnQoKTsKKworICAgIHN3aXRjaCAoZmllbGRUeXBlKSB7CisgICAgY2FzZSBE
YXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRGF5T2ZNb250aDogeworICAgICAgICBtX2VkaXRFbGVt
ZW50LmFkZEZpZWxkKERhdGVUaW1lRGF5RmllbGRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIG1f
ZWRpdEVsZW1lbnQpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNhc2UgRGF0ZVRp
bWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRoOgorICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxk
VHlwZU1vbnRoU3RhbmRBbG9uZTogeworICAgICAgICBzd2l0Y2ggKGNvdW50KSB7CisgICAgICAg
IGNhc2UgY291bnRGb3JOYXJyb3dNb250aDoKKyAgICAgICAgY2FzZSBjb3VudEZvckFiYnJldmlh
dGVkTW9udGg6IHsKKyAgICAgICAgICAgIGF1dG8gZmllbGQgPSBEYXRlVGltZVN5bWJvbGljTW9u
dGhGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCwgZmllbGRUeXBl
ID09IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNb250aCA/IG1fcGFyYW1ldGVycy5sb2NhbGUu
c2hvcnRNb250aExhYmVscygpIDogbV9wYXJhbWV0ZXJzLmxvY2FsZS5zaG9ydFN0YW5kQWxvbmVN
b250aExhYmVscygpKTsKKyAgICAgICAgICAgIG1fZWRpdEVsZW1lbnQuYWRkRmllbGQoZmllbGQp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBjb3VudEZvckZ1
bGxNb250aDogeworICAgICAgICAgICAgYXV0byBmaWVsZCA9IERhdGVUaW1lU3ltYm9saWNNb250
aEZpZWxkRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtX2VkaXRFbGVtZW50LCBmaWVsZFR5cGUg
PT0gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRoID8gbV9wYXJhbWV0ZXJzLmxvY2FsZS5t
b250aExhYmVscygpIDogbV9wYXJhbWV0ZXJzLmxvY2FsZS5zdGFuZEFsb25lTW9udGhMYWJlbHMo
KSk7CisgICAgICAgICAgICBtX2VkaXRFbGVtZW50LmFkZEZpZWxkKGZpZWxkKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6IHsKKyAgICAgICAgICAgIG1f
ZWRpdEVsZW1lbnQuYWRkRmllbGQoRGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50LCBtX2VkaXRFbGVtZW50KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgICAgICB9CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjYXNlIERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGVZZWFyOiB7CisgICAgICAgIG1fZWRpdEVsZW1lbnQuYWRkRmllbGQoRGF0
ZVRpbWVZZWFyRmllbGRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIG1fZWRpdEVsZW1lbnQpKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybjsK
KyAgICB9Cit9CisKK3ZvaWQgRGF0ZVRpbWVFZGl0QnVpbGRlcjo6dmlzaXRMaXRlcmFsKGNvbnN0
IFN0cmluZyYgdGV4dCkKK3sKKyAgICBBU1NFUlQodGV4dC5sZW5ndGgoKSk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0ZXh0UHNldWRvSWQo
Ii13ZWJraXQtZGF0ZXRpbWUtZWRpdC10ZXh0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIGF1dG8gZWxlbWVudCA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUobV9lZGl0
RWxlbWVudC5kb2N1bWVudCgpKTsKKyAgICBlbGVtZW50LT5zZXRQc2V1ZG8odGV4dFBzZXVkb0lk
KTsKKyAgICBlbGVtZW50LT5hcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUobV9lZGl0RWxlbWVudC5k
b2N1bWVudCgpLCB0ZXh0KSk7CisgICAgbV9lZGl0RWxlbWVudC5maWVsZHNXcmFwcGVyRWxlbWVu
dCgpLT5hcHBlbmRDaGlsZChlbGVtZW50KTsKK30KKworRGF0ZVRpbWVFZGl0RWxlbWVudDo6RWRp
dENvbnRyb2xPd25lcjo6fkVkaXRDb250cm9sT3duZXIoKQoreworfQorCitEYXRlVGltZUVkaXRF
bGVtZW50OjpEYXRlVGltZUVkaXRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgRWRpdENvbnRy
b2xPd25lciYgZWRpdENvbnRyb2xPd25lcikKKyAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRhZywg
ZG9jdW1lbnQpCisgICAgLCBtX2VkaXRDb250cm9sT3duZXIoJmVkaXRDb250cm9sT3duZXIpCit7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBk
YXRlVGltZUVkaXRQc2V1ZG9JZCgiLXdlYmtpdC1kYXRldGltZS1lZGl0IiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHNldFBzZXVkbyhkYXRlVGltZUVkaXRQc2V1ZG9J
ZCk7Cit9CisKK0RhdGVUaW1lRWRpdEVsZW1lbnQ6On5EYXRlVGltZUVkaXRFbGVtZW50KCkKK3sK
K30KKworaW5saW5lIEVsZW1lbnQqIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZpZWxkc1dyYXBwZXJF
bGVtZW50KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoZmlyc3RDaGlsZCgpKTsKKyAgICByZXR1cm4g
ZG93bmNhc3Q8RWxlbWVudD4oZmlyc3RDaGlsZCgpKTsKK30KKwordm9pZCBEYXRlVGltZUVkaXRF
bGVtZW50OjphZGRGaWVsZChSZWY8RGF0ZVRpbWVGaWVsZEVsZW1lbnQ+IGZpZWxkKQoreworICAg
IGlmIChtX2ZpZWxkcy5zaXplKCkgPT0gbV9maWVsZHMuY2FwYWNpdHkoKSkKKyAgICAgICAgcmV0
dXJuOworICAgIG1fZmllbGRzLmFwcGVuZChmaWVsZCk7CisgICAgZmllbGRzV3JhcHBlckVsZW1l
bnQoKS0+YXBwZW5kQ2hpbGQoZmllbGQpOworfQorCitSZWY8RGF0ZVRpbWVFZGl0RWxlbWVudD4g
RGF0ZVRpbWVFZGl0RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgRWRpdENvbnRy
b2xPd25lciYgZWRpdENvbnRyb2xPd25lcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBE
YXRlVGltZUVkaXRFbGVtZW50KGRvY3VtZW50LCBlZGl0Q29udHJvbE93bmVyKSk7Cit9CisKK3Zv
aWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6bGF5b3V0KGNvbnN0IExheW91dFBhcmFtZXRlcnMmIGxh
eW91dFBhcmFtZXRlcnMpCit7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBmaWVsZHNXcmFwcGVyUHNldWRvSWQoIi13ZWJraXQtZGF0ZXRpbWUt
ZWRpdC1maWVsZHMtd3JhcHBlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KworICAgIGlmICghZmlyc3RDaGlsZCgpKSB7CisgICAgICAgIGF1dG8gZWxlbWVudCA9IEhUTUxE
aXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgICAgIGVsZW1lbnQtPnNldFBzZXVk
byhmaWVsZHNXcmFwcGVyUHNldWRvSWQpOworICAgICAgICBhcHBlbmRDaGlsZChlbGVtZW50KTsK
KyAgICB9CisKKyAgICBFbGVtZW50KiBmaWVsZHNXcmFwcGVyID0gZmllbGRzV3JhcHBlckVsZW1l
bnQoKTsKKworICAgIERhdGVUaW1lRWRpdEJ1aWxkZXIgYnVpbGRlcigqdGhpcywgbGF5b3V0UGFy
YW1ldGVycyk7CisgICAgTm9kZSogbGFzdENoaWxkVG9CZVJlbW92ZWQgPSBmaWVsZHNXcmFwcGVy
LT5sYXN0Q2hpbGQoKTsKKyAgICBpZiAoIWJ1aWxkZXIuYnVpbGQobGF5b3V0UGFyYW1ldGVycy5k
YXRlVGltZUZvcm1hdCkgfHwgbV9maWVsZHMuaXNFbXB0eSgpKSB7CisgICAgICAgIGxhc3RDaGls
ZFRvQmVSZW1vdmVkID0gZmllbGRzV3JhcHBlci0+bGFzdENoaWxkKCk7CisgICAgICAgIGJ1aWxk
ZXIuYnVpbGQobGF5b3V0UGFyYW1ldGVycy5mYWxsYmFja0RhdGVUaW1lRm9ybWF0KTsKKyAgICB9
CisKKyAgICBpZiAobGFzdENoaWxkVG9CZVJlbW92ZWQpIHsKKyAgICAgICAgZm9yIChOb2RlKiBj
aGlsZE5vZGUgPSBmaWVsZHNXcmFwcGVyLT5maXJzdENoaWxkKCk7IGNoaWxkTm9kZTsgY2hpbGRO
b2RlID0gZmllbGRzV3JhcHBlci0+Zmlyc3RDaGlsZCgpKSB7CisgICAgICAgICAgICBmaWVsZHNX
cmFwcGVyLT5yZW1vdmVDaGlsZCgqY2hpbGROb2RlKTsKKyAgICAgICAgICAgIGlmIChjaGlsZE5v
ZGUgPT0gbGFzdENoaWxkVG9CZVJlbW92ZWQpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICB9Cit9CisKK0F0b21TdHJpbmcgRGF0ZVRpbWVFZGl0RWxlbWVudDo6bG9jYWxl
SWRlbnRpZmllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZWRpdENvbnRyb2xPd25lciA/IG1f
ZWRpdENvbnRyb2xPd25lci0+bG9jYWxlSWRlbnRpZmllcigpIDogbnVsbEF0b20oKTsKK30KKwor
dm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpyZXNldEZpZWxkcygpCit7CisgICAgbV9maWVsZHMu
c2hyaW5rKDApOworfQorCit2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRl
KGNvbnN0IExheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMsIGNvbnN0IERhdGVDb21w
b25lbnRzJiBkYXRlKQoreworICAgIGxheW91dChsYXlvdXRQYXJhbWV0ZXJzKTsKKyAgICBmb3Ig
KHNpemVfdCBmaWVsZEluZGV4ID0gMDsgZmllbGRJbmRleCA8IG1fZmllbGRzLnNpemUoKTsgKytm
aWVsZEluZGV4KQorICAgICAgICBtX2ZpZWxkc1tmaWVsZEluZGV4XS0+c2V0VmFsdWVBc0RhdGUo
ZGF0ZSk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6c2V0RW1wdHlWYWx1ZShjb25z
dCBMYXlvdXRQYXJhbWV0ZXJzJiBsYXlvdXRQYXJhbWV0ZXJzKQoreworICAgIGxheW91dChsYXlv
dXRQYXJhbWV0ZXJzKTsKKyAgICBmb3IgKHNpemVfdCBmaWVsZEluZGV4ID0gMDsgZmllbGRJbmRl
eCA8IG1fZmllbGRzLnNpemUoKTsgKytmaWVsZEluZGV4KQorICAgICAgICBtX2ZpZWxkc1tmaWVs
ZEluZGV4XS0+c2V0RW1wdHlWYWx1ZSgpOworfQorCitTdHJpbmcgRGF0ZVRpbWVFZGl0RWxlbWVu
dDo6dmFsdWUoKSBjb25zdAoreworICAgIGlmICghbV9lZGl0Q29udHJvbE93bmVyKQorICAgICAg
ICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKyAgICByZXR1cm4gbV9lZGl0Q29udHJvbE93bmVyLT52
YWx1ZUZvckVkaXRDb250cm9sKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBQTEFURk9STShNQUMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMmNjYzRiNTQwYmU5NmZkOGU3NmIyNjNiMTIyMWQyZDMyZTZiMDc2MwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVs
ZW1lbnQuaApAQCAtMCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBQTEFURk9STShNQUMpCisKKyNp
bmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgorI2luY2x1ZGUgIkRhdGVUaW1lRmllbGRFbGVtZW50
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTG9jYWxlOworCitjbGFzcyBEYXRl
VGltZUVkaXRFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxEaXZFbGVtZW50LCBwdWJsaWMgRGF0
ZVRpbWVGaWVsZEVsZW1lbnQ6OkZpZWxkT3duZXIgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RUQoRGF0ZVRpbWVFZGl0RWxlbWVudCk7CitwdWJsaWM6CisgICAgY2xhc3MgRWRpdENvbnRyb2xP
d25lciB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5FZGl0Q29udHJvbE93bmVyKCk7
CisgICAgICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlRm9yRWRpdENvbnRyb2woKSBjb25zdCA9IDA7
CisgICAgICAgIHZpcnR1YWwgQXRvbVN0cmluZyBsb2NhbGVJZGVudGlmaWVyKCkgY29uc3QgPSAw
OworICAgIH07CisKKyAgICBzdHJ1Y3QgTGF5b3V0UGFyYW1ldGVycyB7CisgICAgICAgIFN0cmlu
ZyBkYXRlVGltZUZvcm1hdDsKKyAgICAgICAgU3RyaW5nIGZhbGxiYWNrRGF0ZVRpbWVGb3JtYXQ7
CisgICAgICAgIExvY2FsZSYgbG9jYWxlOworCisgICAgICAgIExheW91dFBhcmFtZXRlcnMoTG9j
YWxlJiBsb2NhbGUpCisgICAgICAgICAgICA6IGxvY2FsZShsb2NhbGUpCisgICAgICAgIHsKKyAg
ICAgICAgfQorICAgIH07CisKKyAgICBzdGF0aWMgUmVmPERhdGVUaW1lRWRpdEVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCYsIEVkaXRDb250cm9sT3duZXImKTsKKworICAgIHZpcnR1YWwgfkRhdGVU
aW1lRWRpdEVsZW1lbnQoKTsKKyAgICB2b2lkIGFkZEZpZWxkKFJlZjxEYXRlVGltZUZpZWxkRWxl
bWVudD4pOworICAgIEVsZW1lbnQqIGZpZWxkc1dyYXBwZXJFbGVtZW50KCkgY29uc3Q7CisgICAg
dm9pZCByZXNldEZpZWxkcygpOworICAgIHZvaWQgc2V0RW1wdHlWYWx1ZShjb25zdCBMYXlvdXRQ
YXJhbWV0ZXJzJik7CisgICAgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBMYXlvdXRQYXJhbWV0
ZXJzJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMmKTsKKyAgICBTdHJpbmcgdmFsdWUoKSBjb25zdDsK
KworcHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGludmFsaWRGaWVsZEluZGV4ID0g
c3RhdGljX2Nhc3Q8c2l6ZV90PigtMSk7CisKKyAgICAvLyBEYXRldGltZSBjYW4gYmUgcmVwcmVz
ZW50ZWQgYnkgYXQgbW9zdCA4IGZpZWxkczoKKyAgICAvLyAxLiB5ZWFyCisgICAgLy8gMi4gbW9u
dGgKKyAgICAvLyAzLiBkYXktb2YtbW9udGgKKyAgICAvLyA0LiBob3VyCisgICAgLy8gNS4gbWlu
dXRlCisgICAgLy8gNi4gc2Vjb25kCisgICAgLy8gNy4gbWlsbGlzZWNvbmQKKyAgICAvLyA4LiBB
TS9QTQorICAgIHN0YXRpYyBjb25zdCBpbnQgbWF4aW11bU51bWJlck9mRmllbGRzID0gODsKKwor
ICAgIERhdGVUaW1lRWRpdEVsZW1lbnQoRG9jdW1lbnQmLCBFZGl0Q29udHJvbE93bmVyJik7CisK
KyAgICB2b2lkIGxheW91dChjb25zdCBMYXlvdXRQYXJhbWV0ZXJzJik7CisKKyAgICAvLyBEYXRl
VGltZUZpZWxkRWxlbWVudDo6RmllbGRPd25lciBmdW5jdGlvbnM6CisgICAgQXRvbVN0cmluZyBs
b2NhbGVJZGVudGlmaWVyKCkgY29uc3QgZmluYWw7CisKKyAgICBWZWN0b3I8UmVmPERhdGVUaW1l
RmllbGRFbGVtZW50PiwgbWF4aW11bU51bWJlck9mRmllbGRzPiBtX2ZpZWxkczsKKyAgICBFZGl0
Q29udHJvbE93bmVyKiBtX2VkaXRDb250cm9sT3duZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykgJiYg
UExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0
ZVRpbWVGaWVsZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVGaWVsZEVsZW1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkYmEwMTk3MmU1MjE0YmJkNTQyMGM5NTRj
NGM1MjIyMDVhNTZjOWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5jcHAKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRhdGVUaW1lRmllbGRFbGVtZW50Lmgi
CisKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykgJiYgUExBVEZPUk0oTUFD
KQorCisjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
KyNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1Mb2NhbGUu
aCIKKyNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERhdGVUaW1lRmllbGRFbGVtZW50KTsKKworRGF0ZVRp
bWVGaWVsZEVsZW1lbnQ6OkZpZWxkT3duZXI6On5GaWVsZE93bmVyKCkKK3sKK30KKworRGF0ZVRp
bWVGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lRmllbGRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwg
RmllbGRPd25lciYgZmllbGRPd25lcikKKyAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgZG9j
dW1lbnQpCisgICAgLCBtX2ZpZWxkT3duZXIoJmZpZWxkT3duZXIpCit7Cit9CisKK3ZvaWQgRGF0
ZVRpbWVGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUoY29uc3QgQXRvbVN0cmluZyYgcHNldWRvKQor
eworICAgIHNldFBzZXVkbyhwc2V1ZG8pOworfQorCitMb2NhbGUmIERhdGVUaW1lRmllbGRFbGVt
ZW50Ojpsb2NhbGVGb3JPd25lcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCkuZ2V0
Q2FjaGVkTG9jYWxlKGxvY2FsZUlkZW50aWZpZXIoKSk7Cit9CisKK0F0b21TdHJpbmcgRGF0ZVRp
bWVGaWVsZEVsZW1lbnQ6OmxvY2FsZUlkZW50aWZpZXIoKSBjb25zdAoreworICAgIHJldHVybiBt
X2ZpZWxkT3duZXIgPyBtX2ZpZWxkT3duZXItPmxvY2FsZUlkZW50aWZpZXIoKSA6IG51bGxBdG9t
KCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OnVwZGF0ZVZpc2libGVWYWx1ZSgp
Cit7CisgICAgaWYgKCFmaXJzdENoaWxkKCkpCisgICAgICAgIGFwcGVuZENoaWxkKFRleHQ6OmNy
ZWF0ZShkb2N1bWVudCgpLCBlbXB0eVN0cmluZygpKSk7CisKKyAgICBUZXh0JiB0ZXh0Tm9kZSA9
IGRvd25jYXN0PFRleHQ+KCpmaXJzdENoaWxkKCkpOworICAgIGNvbnN0IFN0cmluZyBuZXdWaXNp
YmxlVmFsdWUgPSB2aXNpYmxlVmFsdWUoKTsKKyAgICBpZiAodGV4dE5vZGUud2hvbGVUZXh0KCkg
PT0gbmV3VmlzaWJsZVZhbHVlKQorICAgICAgICByZXR1cm47CisKKyAgICB0ZXh0Tm9kZS5yZXBs
YWNlV2hvbGVUZXh0KG5ld1Zpc2libGVWYWx1ZSk7Cit9CisKK2Jvb2wgRGF0ZVRpbWVGaWVsZEVs
ZW1lbnQ6OnN1cHBvcnRzRm9jdXMoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREFURV9BTkRfVElNRV9J
TlBVVF9UWVBFUykgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzVjYTk1YTkwMTZiMGJh
NWU3OWYzNTY4YjRlZmNlMzg5ZTI0OWVkMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmgKQEAgLTAsMCArMSw2OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBV
VF9UWVBFUykgJiYgUExBVEZPUk0oTUFDKQorCisjaW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEYXRlQ29tcG9uZW50czsKKworY2xhc3Mg
RGF0ZVRpbWVGaWVsZEVsZW1lbnQgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgeworICAgIFdURl9N
QUtFX0lTT19BTExPQ0FURUQoRGF0ZVRpbWVGaWVsZEVsZW1lbnQpOworcHVibGljOgorICAgIGNs
YXNzIEZpZWxkT3duZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+RmllbGRPd25l
cigpOworICAgICAgICB2aXJ0dWFsIEF0b21TdHJpbmcgbG9jYWxlSWRlbnRpZmllcigpIGNvbnN0
ID0gMDsKKyAgICB9OworCisgICAgdmlydHVhbCBib29sIGhhc1ZhbHVlKCkgY29uc3QgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRFbXB0eVZhbHVlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0VmFsdWVBc0ludGVnZXIoaW50KSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgdmFsdWUo
KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgPSAw
OworCitwcm90ZWN0ZWQ6CisgICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQoRG9jdW1lbnQmLCBGaWVs
ZE93bmVyJik7CisgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IEF0b21TdHJpbmcmIHBzZXVkbyk7
CisgICAgTG9jYWxlJiBsb2NhbGVGb3JPd25lcigpIGNvbnN0OworICAgIEF0b21TdHJpbmcgbG9j
YWxlSWRlbnRpZmllcigpIGNvbnN0OworICAgIHZvaWQgdXBkYXRlVmlzaWJsZVZhbHVlKCk7Cisg
ICAgdmlydHVhbCBpbnQgdmFsdWVBc0ludGVnZXIoKSBjb25zdCA9IDA7CisKK3ByaXZhdGU6Cisg
ICAgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICBGaWVsZE93bmVy
KiBtX2ZpZWxkT3duZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykgJiYgUExBVEZPUk0oTUFDKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMmRkZDJlMGU2ODIzM2Y4YTg4ZmMzYmY2YWMwZTdlMjc0Y2IyNTI0MAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmll
bGRFbGVtZW50cy5jcHAKQEAgLTAsMCArMSwxMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJEYXRlVGltZUZpZWxkRWxlbWVudHMuaCIKKworI2lmIEVOQUJM
RShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBQTEFURk9STShNQUMpCisKKyNpbmNsdWRl
ICJEYXRlQ29tcG9uZW50cy5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERhdGVU
aW1lRGF5RmllbGRFbGVtZW50KTsKKworRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OkRhdGVUaW1l
RGF5RmllbGRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25l
cikKKyAgICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25l
ciwgIi0tIl9zKQoreworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gZGF5UHN1ZWRvSWQoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1kYXktZmllbGQi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgaW5pdGlhbGl6ZShkYXlQ
c3VlZG9JZCk7Cit9CisKK1JlZjxEYXRlVGltZURheUZpZWxkRWxlbWVudD4gRGF0ZVRpbWVEYXlG
aWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxk
T3duZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0ZVRpbWVEYXlGaWVsZEVsZW1l
bnQoZG9jdW1lbnQsIGZpZWxkT3duZXIpKTsKK30KKwordm9pZCBEYXRlVGltZURheUZpZWxkRWxl
bWVudDo6c2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUpCit7CisgICAg
c2V0VmFsdWVBc0ludGVnZXIoZGF0ZS5tb250aERheSgpKTsKK30KKworV1RGX01BS0VfSVNPX0FM
TE9DQVRFRF9JTVBMKERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQpOworCitEYXRlVGltZU1vbnRo
RmllbGRFbGVtZW50OjpEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVu
dCwgRmllbGRPd25lciYgZmllbGRPd25lcikKKyAgICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxl
bWVudChkb2N1bWVudCwgZmllbGRPd25lciwgIi0tIl9zKQoreworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW9udGhQc3VlZG9JZCgiLXdlYmtp
dC1kYXRldGltZS1lZGl0LW1vbnRoLWZpZWxkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIGluaXRpYWxpemUobW9udGhQc3VlZG9JZCk7Cit9CisKK1JlZjxEYXRlVGlt
ZU1vbnRoRmllbGRFbGVtZW50PiBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50OjpjcmVhdGUoRG9j
dW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyKQoreworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3du
ZXIpKTsKK30KKwordm9pZCBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0
ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkKK3sKKyAgICBzZXRWYWx1ZUFzSW50ZWdlcihk
YXRlLm1vbnRoKCkgKyAxKTsKK30KKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERhdGVU
aW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudCk7CisKK0RhdGVUaW1lU3ltYm9saWNNb250aEZp
ZWxkRWxlbWVudDo6RGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50KERvY3VtZW50JiBk
b2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lciwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGxh
YmVscykKKyAgICA6IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxk
T3duZXIsIGxhYmVscykKK3sKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IG1vbnRoUHN1ZWRvSWQoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1tb250
aC1maWVsZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBpbml0aWFs
aXplKG1vbnRoUHN1ZWRvSWQpOworfQorCitSZWY8RGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRF
bGVtZW50PiBEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBsYWJlbHMpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0ZVRpbWVTeW1ib2xpY01v
bnRoRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCBsYWJlbHMpKTsKK30KKwordm9p
ZCBEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0
IERhdGVDb21wb25lbnRzJiBkYXRlKQoreworICAgIHNldFZhbHVlQXNJbnRlZ2VyKGRhdGUubW9u
dGgoKSk7Cit9CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChEYXRlVGltZVllYXJGaWVs
ZEVsZW1lbnQpOworCitEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lWWVhckZpZWxk
RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIpCisgICAg
OiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsICItLS0t
Il9zKQoreworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4geWVhclBzdWVkb0lkKCItd2Via2l0LWRhdGV0aW1lLWVkaXQteWVhci1maWVsZCIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBpbml0aWFsaXplKHllYXJQc3Vl
ZG9JZCk7Cit9CisKK1JlZjxEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQ+IERhdGVUaW1lWWVhckZp
ZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRP
d25lcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXRlVGltZVllYXJGaWVsZEVsZW1l
bnQoZG9jdW1lbnQsIGZpZWxkT3duZXIpKTsKK30KKwordm9pZCBEYXRlVGltZVllYXJGaWVsZEVs
ZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQoreworICAg
IHNldFZhbHVlQXNJbnRlZ2VyKGRhdGUuZnVsbFllYXIoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAm
JiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZUZpZWxkRWxlbWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lRmllbGRFbGVtZW50cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5MzJmMmIzOWQ2ODgwNjdjMWFhZjZiMzRm
ZWU3YzRiN2U3YjFiMzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuaApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAm
JiBQTEFURk9STShNQUMpCisKKyNpbmNsdWRlICJEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQgZmluYWwgOiBwdWJs
aWMgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEKERhdGVUaW1lRGF5RmllbGRFbGVtZW50KTsKKworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYsIEZpZWxkT3duZXImKTsK
KworcHJpdmF0ZToKKyAgICBEYXRlVGltZURheUZpZWxkRWxlbWVudChEb2N1bWVudCYsIEZpZWxk
T3duZXImKTsKKworICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9uczoKKyAgICB2
b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJikgZmluYWw7Cit9OworCitj
bGFzcyBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50IGZpbmFsIDogcHVibGljIERhdGVUaW1lTnVt
ZXJpY0ZpZWxkRWxlbWVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChEYXRlVGltZU1v
bnRoRmllbGRFbGVtZW50KTsKKworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RGF0ZVRpbWVNb250
aEZpZWxkRWxlbWVudD4gY3JlYXRlKERvY3VtZW50JiwgRmllbGRPd25lciYpOworCitwcml2YXRl
OgorICAgIERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQoRG9jdW1lbnQmLCBGaWVsZE93bmVyJik7
CisKKyAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnM6CisgICAgdm9pZCBzZXRW
YWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYpIGZpbmFsOworfTsKKworY2xhc3MgRGF0
ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50IGZpbmFsIDogcHVibGljIERhdGVUaW1lU3lt
Ym9saWNGaWVsZEVsZW1lbnQgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRGF0ZVRpbWVT
eW1ib2xpY01vbnRoRmllbGRFbGVtZW50KTsKKworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RGF0
ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmLCBGaWVsZE93
bmVyJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKworcHJpdmF0ZToKKyAgICBEYXRlVGltZVN5
bWJvbGljTW9udGhGaWVsZEVsZW1lbnQoRG9jdW1lbnQmLCBGaWVsZE93bmVyJiwgY29uc3QgVmVj
dG9yPFN0cmluZz4mKTsKKworICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9uczoK
KyAgICB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJikgZmluYWw7Cit9
OworCitjbGFzcyBEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgRGF0ZVRp
bWVOdW1lcmljRmllbGRFbGVtZW50IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKERhdGVU
aW1lWWVhckZpZWxkRWxlbWVudCk7CisKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERhdGVUaW1l
WWVhckZpZWxkRWxlbWVudD4gY3JlYXRlKERvY3VtZW50JiwgRmllbGRPd25lciYpOworCitwcml2
YXRlOgorICAgIERhdGVUaW1lWWVhckZpZWxkRWxlbWVudChEb2N1bWVudCYsIEZpZWxkT3duZXIm
KTsKKworICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9uczoKKyAgICB2b2lkIHNl
dFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJikgZmluYWw7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9U
WVBFUykgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdk
MGQ2NDE1MjYxMjYxYTBiNTcxMzliMWUzOGE4Y2I2MDI4YWI5MgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5j
cHAKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oIgorCisjaWYgRU5BQkxFKERBVEVf
QU5EX1RJTUVfSU5QVVRfVFlQRVMpICYmIFBMQVRGT1JNKE1BQykKKworI2luY2x1ZGUgIlBsYXRm
b3JtTG9jYWxlLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRGF0ZVRpbWVOdW1l
cmljRmllbGRFbGVtZW50KTsKKworRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpEYXRlVGlt
ZU51bWVyaWNGaWVsZEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVs
ZE93bmVyLCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyKQorICAgIDogRGF0ZVRpbWVGaWVsZEVs
ZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIpCisgICAgLCBtX3BsYWNlaG9sZGVyKHBsYWNlaG9s
ZGVyKQorICAgICwgbV92YWx1ZSgwKQorICAgICwgbV9oYXNWYWx1ZShmYWxzZSkKK3sKK30KKwor
U3RyaW5nIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6Zm9ybWF0VmFsdWUoaW50IHZhbHVl
KSBjb25zdAoreworICAgIExvY2FsZSYgbG9jYWxlID0gbG9jYWxlRm9yT3duZXIoKTsKKyAgICBy
ZXR1cm4gbG9jYWxlLmNvbnZlcnRUb0xvY2FsaXplZE51bWJlcihtYWtlU3RyaW5nKHBhZCgnMCcs
IDIsIHZhbHVlKSkpOworfQorCitib29sIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6aGFz
VmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBtX2hhc1ZhbHVlOworfQorCit2b2lkIERhdGVU
aW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6aW5pdGlhbGl6ZShjb25zdCBBdG9tU3RyaW5nJiBwc2V1
ZG8pCit7CisgICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUocHNldWRvKTsKK30K
Kwordm9pZCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnNldEVtcHR5VmFsdWUoKQorewor
ICAgIG1fdmFsdWUgPSAwOworICAgIG1faGFzVmFsdWUgPSBmYWxzZTsKKyAgICB1cGRhdGVWaXNp
YmxlVmFsdWUoKTsKK30KKwordm9pZCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnNldFZh
bHVlQXNJbnRlZ2VyKGludCB2YWx1ZSkKK3sKKyAgICBtX3ZhbHVlID0gdmFsdWU7CisgICAgbV9o
YXNWYWx1ZSA9IHRydWU7CisgICAgdXBkYXRlVmlzaWJsZVZhbHVlKCk7Cit9CisKK1N0cmluZyBE
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9oYXNWYWx1ZSA/IGZvcm1hdFZhbHVlKG1fdmFsdWUpIDogZW1wdHlTdHJpbmcoKTsKK30KKwor
aW50IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6dmFsdWVBc0ludGVnZXIoKSBjb25zdAor
eworICAgIHJldHVybiBtX2hhc1ZhbHVlID8gbV92YWx1ZSA6IC0xOworfQorCitTdHJpbmcgRGF0
ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojp2aXNpYmxlVmFsdWUoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2hhc1ZhbHVlID8gdmFsdWUoKSA6IG1fcGxhY2Vob2xkZXI7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZ
UEVTKSAmJiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1YjQ0MmJm
NzA5OGE3NTk3MjY0NWMxZDcwM2MyMTJlNmFmNzE5OWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaApAQCAt
MCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShEQVRF
X0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBQTEFURk9STShNQUMpCisKKyNpbmNsdWRlICJEYXRl
VGltZUZpZWxkRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERhdGVU
aW1lTnVtZXJpY0ZpZWxkRWxlbWVudCA6IHB1YmxpYyBEYXRlVGltZUZpZWxkRWxlbWVudCB7Cisg
ICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQpOwor
cHVibGljOgorCitwcm90ZWN0ZWQ6CisgICAgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KERv
Y3VtZW50JiwgRmllbGRPd25lciYsIGNvbnN0IFN0cmluZyYpOworCisgICAgLy8gRGF0ZVRpbWVG
aWVsZEVsZW1lbnQgZnVuY3Rpb25zOgorICAgIGJvb2wgaGFzVmFsdWUoKSBjb25zdCBmaW5hbDsK
KyAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgQXRvbVN0cmluZyYpOworICAgIHZvaWQgc2V0RW1w
dHlWYWx1ZSgpIGZpbmFsOworICAgIHZvaWQgc2V0VmFsdWVBc0ludGVnZXIoaW50KSBvdmVycmlk
ZTsKKyAgICBpbnQgdmFsdWVBc0ludGVnZXIoKSBjb25zdCBmaW5hbDsKKyAgICBTdHJpbmcgdmlz
aWJsZVZhbHVlKCkgY29uc3QgZmluYWw7CisKK3ByaXZhdGU6CisgICAgLy8gRGF0ZVRpbWVGaWVs
ZEVsZW1lbnQgZnVuY3Rpb25zOgorICAgIFN0cmluZyB2YWx1ZSgpIGNvbnN0IGZpbmFsOworCisg
ICAgU3RyaW5nIGZvcm1hdFZhbHVlKGludCkgY29uc3Q7CisKKyAgICBjb25zdCBTdHJpbmcgbV9w
bGFjZWhvbGRlcjsKKyAgICBpbnQgbV92YWx1ZTsKKyAgICBib29sIG1faGFzVmFsdWU7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREFURV9BTkRfVElN
RV9JTlBVVF9UWVBFUykgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lNDA2MzBlMjY4YzA2NzJhNjUzNDJhMmEzZDJjZDBkNzJjOGY1ZjIyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0Zp
ZWxkRWxlbWVudC5jcHAKQEAgLTAsMCArMSwxMDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmgiCisKKyNp
ZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykgJiYgUExBVEZPUk0oTUFDKQorCisj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRGF0ZVRp
bWVTeW1ib2xpY0ZpZWxkRWxlbWVudCk7CisKK3N0YXRpYyBBdG9tU3RyaW5nIG1ha2VWaXNpYmxl
RW1wdHlWYWx1ZShjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3ltYm9scykKK3sKKyAgICB1bnNpZ25l
ZCBtYXhpbXVtTGVuZ3RoID0gMDsKKyAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXgg
PCBzeW1ib2xzLnNpemUoKTsgKytpbmRleCkKKyAgICAgICAgbWF4aW11bUxlbmd0aCA9IHN0ZDo6
bWF4KG1heGltdW1MZW5ndGgsIG51bUdyYXBoZW1lQ2x1c3RlcnMoc3ltYm9sc1tpbmRleF0pKTsK
KyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHko
bWF4aW11bUxlbmd0aCk7CisgICAgZm9yICh1bnNpZ25lZCBsZW5ndGggPSAwOyBsZW5ndGggPCBt
YXhpbXVtTGVuZ3RoOyArK2xlbmd0aCkKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJy0nKTsKKyAg
ICByZXR1cm4gYnVpbGRlci50b0F0b21TdHJpbmcoKTsKK30KKworRGF0ZVRpbWVTeW1ib2xpY0Zp
ZWxkRWxlbWVudDo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudChEb2N1bWVudCYgZG9jdW1l
bnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzeW1ib2xz
KQorICAgIDogRGF0ZVRpbWVGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIpCisgICAg
LCBtX3N5bWJvbHMoc3ltYm9scykKKyAgICAsIG1fdmlzaWJsZUVtcHR5VmFsdWUobWFrZVZpc2li
bGVFbXB0eVZhbHVlKHN5bWJvbHMpKQorICAgICwgbV9zZWxlY3RlZEluZGV4KC0xKQoreworICAg
IEFTU0VSVCghc3ltYm9scy5pc0VtcHR5KCkpOworfQorCitib29sIERhdGVUaW1lU3ltYm9saWNG
aWVsZEVsZW1lbnQ6Omhhc1ZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zZWxlY3RlZElu
ZGV4ID49IDA7Cit9CisKK3ZvaWQgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6aW5pdGlh
bGl6ZShjb25zdCBBdG9tU3RyaW5nJiBwc2V1ZG8pCit7CisgICAgRGF0ZVRpbWVGaWVsZEVsZW1l
bnQ6OmluaXRpYWxpemUocHNldWRvKTsKK30KKwordm9pZCBEYXRlVGltZVN5bWJvbGljRmllbGRF
bGVtZW50OjpzZXRFbXB0eVZhbHVlKCkKK3sKKyAgICBtX3NlbGVjdGVkSW5kZXggPSBpbnZhbGlk
SW5kZXg7CisgICAgdXBkYXRlVmlzaWJsZVZhbHVlKCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVTeW1i
b2xpY0ZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0ludGVnZXIoaW50IG5ld1NlbGVjdGVkSW5kZXgp
Cit7CisgICAgbV9zZWxlY3RlZEluZGV4ID0gc3RkOjptYXgoMCwgc3RkOjptaW4obmV3U2VsZWN0
ZWRJbmRleCwgc3RhdGljX2Nhc3Q8aW50PihtX3N5bWJvbHMuc2l6ZSgpIC0gMSkpKTsKKyAgICB1
cGRhdGVWaXNpYmxlVmFsdWUoKTsKK30KKworU3RyaW5nIERhdGVUaW1lU3ltYm9saWNGaWVsZEVs
ZW1lbnQ6OnZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGFzVmFsdWUoKSA/IG1fc3ltYm9s
c1ttX3NlbGVjdGVkSW5kZXhdIDogZW1wdHlTdHJpbmcoKTsKK30KKworaW50IERhdGVUaW1lU3lt
Ym9saWNGaWVsZEVsZW1lbnQ6OnZhbHVlQXNJbnRlZ2VyKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9zZWxlY3RlZEluZGV4OworfQorCitTdHJpbmcgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVu
dDo6dmlzaWJsZUVtcHR5VmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBtX3Zpc2libGVFbXB0
eVZhbHVlOworfQorCitTdHJpbmcgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6dmlzaWJs
ZVZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGFzVmFsdWUoKSA/IG1fc3ltYm9sc1ttX3Nl
bGVjdGVkSW5kZXhdIDogdmlzaWJsZUVtcHR5VmFsdWUoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpICYm
IFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Rh
dGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzVjMmM2N2IyNjg5
ODMyNzlkNzM5ZDE1MmFlNDY2MjM1YWU1NDFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oCkBAIC0wLDAg
KzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKERBVEVfQU5E
X1RJTUVfSU5QVVRfVFlQRVMpICYmIFBMQVRGT1JNKE1BQykKKworI2luY2x1ZGUgIkRhdGVUaW1l
RmllbGRFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGF0ZVRpbWVT
eW1ib2xpY0ZpZWxkRWxlbWVudCA6IHB1YmxpYyBEYXRlVGltZUZpZWxkRWxlbWVudCB7CisgICAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRChEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50KTsKK3By
b3RlY3RlZDoKKyAgICBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50KERvY3VtZW50JiwgRmll
bGRPd25lciYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CisgICAgc2l6ZV90IHN5bWJvbHNTaXpl
KCkgY29uc3QgeyByZXR1cm4gbV9zeW1ib2xzLnNpemUoKTsgfQorICAgIGJvb2wgaGFzVmFsdWUo
KSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgQXRvbVN0cmluZyYgcHNl
dWRvKTsKKyAgICB2b2lkIHNldEVtcHR5VmFsdWUoKSBmaW5hbDsKKyAgICB2b2lkIHNldFZhbHVl
QXNJbnRlZ2VyKGludCkgZmluYWw7CisgICAgaW50IHZhbHVlQXNJbnRlZ2VyKCkgY29uc3QgZmlu
YWw7CisKK3ByaXZhdGU6CisgICAgc3RhdGljIGNvbnN0IGludCBpbnZhbGlkSW5kZXggPSAtMTsK
KworICAgIFN0cmluZyB2aXNpYmxlRW1wdHlWYWx1ZSgpIGNvbnN0OworCisgICAgLy8gRGF0ZVRp
bWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zOgorICAgIFN0cmluZyB2YWx1ZSgpIGNvbnN0IGZpbmFs
OworICAgIFN0cmluZyB2aXNpYmxlVmFsdWUoKSBjb25zdCBmaW5hbDsKKworICAgIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+IG1fc3ltYm9sczsKKworICAgIGNvbnN0IEF0b21TdHJpbmcgbV92aXNpYmxl
RW1wdHlWYWx1ZTsKKyAgICBpbnQgbV9zZWxlY3RlZEluZGV4OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMp
ICYmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjNzZlNDI0Njg1Y2Y4MDc2ODUzZmEzZjBlMmVmYzAw
OTY5MDZlNWZkLi4zNzVhYjhiMjVmOThjNGU1YjJmZjJkYjAzYTUxYmVhN2QxZTE3ODBhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDgtMDUgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlA
YXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gRGF0ZSBpbnB1dHMgc2hvdWxkIGNvbnRhaW4g
ZWRpdGFibGUgY29tcG9uZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE1MTU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmViYXNlbGluZWQgZXhpc3RpbmcgdGVzdHMgdG8gbWF0Y2ggbmV3IGFwcGVh
cmFuY2UuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3RpbWUvdGltZS1hcHBlYXJhbmNlLWJhc2lj
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMvZGF0
ZS9kYXRlLWlucHV0LXJlbmRlcmluZy1iYXNpYy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxh
dGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL3RpbWUvdGltZS1pbnB1dC1yZW5kZXJpbmctYmFzaWMt
ZXhwZWN0ZWQudHh0OgorCiAyMDIwLTA4LTA0ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIy
QGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNhYmxlIGlzb2xhdGVkLXRyZWUtbW9kZS1vbi1vZmYu
aHRtbCBiZWNhdXNlIGl0IGlzIGNhdXNpbmcgb3RoZXIgdGVzdCBmYWlsdXJlcy4uCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUvdGltZS1hcHBlYXJhbmNlLWJhc2ljLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS90aW1lLWFwcGVhcmFuY2Ut
YmFzaWMtZXhwZWN0ZWQudHh0CmluZGV4IDMzMTAzNGI1NmU3YTA2MWU2NzdjODkzNTE1NDJiNDRi
YmVmMTkxMmMuLjJkZDBhZDU1OTdmNjllNzBkNjFiYzU2ZWU2NDg3OGEwYWE4YWY4NDYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS90aW1lLWFwcGVhcmFuY2UtYmFzaWMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS90aW1lLWFwcGVh
cmFuY2UtYmFzaWMtZXhwZWN0ZWQudHh0CkBAIC00LDcgKzQsNyBAQCBzdGVwPTAuMDAwMQogc3Rl
cD02MCAgCiBzdGVwPTM2MDAgIAogc3RlcD04NjQwMCAgCi1zdGVwIG1pc21hdGNoZWQgIAorc3Rl
cCBtaXNtYXRjaGVkIAogUlRMIAogRGlzYWJsZWQsIHN0ZXA9MzYwMCAgCiBSZWFkb25seSwgc3Rl
cD0zNjAwICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9m
b3Jtcy9kYXRlL2RhdGUtaW5wdXQtcmVuZGVyaW5nLWJhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtaW5wdXQtcmVuZGVy
aW5nLWJhc2ljLWV4cGVjdGVkLnR4dAppbmRleCA1YmI1Nzg3MDM3YTQ5M2YyODUwYmZiMjM4OWJi
Nzg4YWQ4Yjk4OGIxLi4xMWQxZjVhYmIzYTc0OTljYWZhY2UwNzUwOTg4Y2RkYjM2NTNkOTI5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMvZGF0ZS9k
YXRlLWlucHV0LXJlbmRlcmluZy1iYXNpYy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1pbnB1dC1yZW5kZXJpbmctYmFz
aWMtZXhwZWN0ZWQudHh0CkBAIC0zLDE2ICszLDQ2IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXpl
IDc4NHg1ODQKLSAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTEwLDMpIHNpemUgNHgxOAot
ICAgICAgICB0ZXh0IHJ1biBhdCAoMTEwLDMpIHdpZHRoIDQ6ICIgIgorICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgxMTAsMikgc2l6ZSA0eDE4CisgICAgICAgIHRleHQgcnVuIGF0ICgxMTAs
Mikgd2lkdGggNDogIiAiCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAw
eDAKLWxheWVyIGF0ICg4LDEwKSBzaXplIDExMHgyMSBjbGlwIGF0ICgxMCwxMikgc2l6ZSAxMDZ4
MTcKLSAgUmVuZGVyRmxleGlibGVCb3gge0lOUFVUfSBhdCAoMCwyKSBzaXplIDExMHgyMSBbYmdj
b2xvcj0jRkZGRkZGXSBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQotICAgIFJlbmRlckJs
b2NrIHtESVZ9IGF0ICg3LDQpIHNpemUgNTl4MTMKLSAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDU5eDEzCi0gICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDU5OiAi
QXByIDEsIDE5NzYiCi1sYXllciBhdCAoMTIyLDEwKSBzaXplIDExMHgyMSBjbGlwIGF0ICgxMjQs
MTIpIHNpemUgMTA2eDE3Ci0gIFJlbmRlckZsZXhpYmxlQm94IHtJTlBVVH0gYXQgKDExNCwyKSBz
aXplIDExMHgyMSBbYmdjb2xvcj0jRkZGRkZGXSBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDAp
XQotICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgyNCw0KSBzaXplIDU5eDEzCi0gICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1OXgxMwotICAgICAgICB0ZXh0IHJ1biBhdCAo
MCwwKSB3aWR0aCA1OTogIkFwciAxLCAxOTc2IgorbGF5ZXIgYXQgKDgsMTApIHNpemUgMTEweDE5
IGNsaXAgYXQgKDEwLDEyKSBzaXplIDEwNngxNQorICBSZW5kZXJGbGV4aWJsZUJveCB7SU5QVVR9
IGF0ICgwLDIpIHNpemUgMTEweDE5IFtiZ2NvbG9yPSNGRkZGRkZdIFtib3JkZXI6ICgycHggaW5z
ZXQgIzAwMDAwMCldCitsYXllciBhdCAoMTEsMTMpIHNpemUgNjh4MTMgc2Nyb2xsSGVpZ2h0IDE0
CisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgzLDMpIHNpemUgNjl4MTMKKyAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMCwwKSBzaXplIDY5eDEzCisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQg
KDAsMCkgc2l6ZSAyOHgxNQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEsMCkgc2l6
ZSAyNngxMworICAgICAgICAgIHRleHQgcnVuIGF0ICgxLDApIHdpZHRoIDI2OiAiMTk3NiIKKyAg
ICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDZ4MTMKKyAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgyNywwKSBzaXplIDZ4MTMKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MjcsMCkgd2lkdGggNjogIi0iCisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6
ZSAxN3gxNQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMzLDApIHNpemUgMTV4MTMK
KyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzMsMCkgd2lkdGggMTU6ICIwNCIKKyAgICAgIFJlbmRl
cklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDZ4MTMKKyAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICg0OCwwKSBzaXplIDZ4MTMKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNDgsMCkgd2lk
dGggNjogIi0iCisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSAxNngxNQor
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDU0LDApIHNpemUgMTR4MTMKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoNTQsMCkgd2lkdGggMTQ6ICIwMSIKK2xheWVyIGF0ICgxMjIsMTApIHNp
emUgMTEweDE5IGNsaXAgYXQgKDEyNCwxMikgc2l6ZSAxMDZ4MTUKKyAgUmVuZGVyRmxleGlibGVC
b3gge0lOUFVUfSBhdCAoMTE0LDIpIHNpemUgMTEweDE5IFtiZ2NvbG9yPSNGRkZGRkZdIFtib3Jk
ZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCitsYXllciBhdCAoMTYxLDEzKSBzaXplIDY4eDEzIHNj
cm9sbEhlaWdodCAxNAorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMzgsMykgc2l6ZSA2OXgxMwor
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNjl4MTMKKyAgICAgIFJlbmRlcklu
bGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDI4eDE1CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMSwwKSBzaXplIDI2eDEzCisgICAgICAgICAgdGV4dCBydW4gYXQgKDEsMCkgd2lkdGgg
MjY6ICIxOTc2IgorICAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgNngxMwor
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDI3LDApIHNpemUgNngxMworICAgICAgICAg
IHRleHQgcnVuIGF0ICgyNywwKSB3aWR0aCA2OiAiLSIKKyAgICAgIFJlbmRlcklubGluZSB7RElW
fSBhdCAoMCwwKSBzaXplIDE3eDE1CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMzMs
MCkgc2l6ZSAxNXgxMworICAgICAgICAgIHRleHQgcnVuIGF0ICgzMywwKSB3aWR0aCAxNTogIjA0
IgorICAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgNngxMworICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDQ4LDApIHNpemUgNngxMworICAgICAgICAgIHRleHQgcnVu
IGF0ICg0OCwwKSB3aWR0aCA2OiAiLSIKKyAgICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCww
KSBzaXplIDE2eDE1CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNTQsMCkgc2l6ZSAx
NHgxMworICAgICAgICAgIHRleHQgcnVuIGF0ICg1NCwwKSB3aWR0aCAxNDogIjAxIgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL3RpbWUvdGltZS1p
bnB1dC1yZW5kZXJpbmctYmFzaWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi9mYXN0L2Zvcm1zL3RpbWUvdGltZS1pbnB1dC1yZW5kZXJpbmctYmFzaWMtZXhwZWN0
ZWQudHh0CmluZGV4IGU1NTkxZjdkNzViY2M5MTY0NTcwZDEyZTA3ZTI4ZjZlNjI4NDQ4NDQuLmE5
MjA3ZTlhZGMwZjhkYjEzNjFkYzc0ZmYyMjFlNWYwZmQ0NDI5MjIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9mb3Jtcy90aW1lL3RpbWUtaW5wdXQtcmVuZGVy
aW5nLWJhc2ljLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sy
L2Zhc3QvZm9ybXMvdGltZS90aW1lLWlucHV0LXJlbmRlcmluZy1iYXNpYy1leHBlY3RlZC50eHQK
QEAgLTMsMTggKzMsMTAgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAw
eDYwMAogICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAotICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxMTAsMykgc2l6ZSA0eDE4Ci0gICAgICAgIHRleHQgcnVu
IGF0ICgxMTAsMykgd2lkdGggNDogIiAiCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEx
MCwwKSBzaXplIDR4MTgKKyAgICAgICAgdGV4dCBydW4gYXQgKDExMCwwKSB3aWR0aCA0OiAiICIK
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAotbGF5ZXIgYXQgKDgs
MTApIHNpemUgMTEweDIxIGNsaXAgYXQgKDEwLDEyKSBzaXplIDEwNngxNwotICBSZW5kZXJGbGV4
aWJsZUJveCB7SU5QVVR9IGF0ICgwLDIpIHNpemUgMTEweDIxIFtiZ2NvbG9yPSNGRkZGRkZdIFti
b3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCi0gICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDcs
NCkgc2l6ZSA0M3gxMwotICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDN4
MTMKLSAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDM6ICI5OjQxIEFNIgotbGF5ZXIg
YXQgKDEyMiwxMCkgc2l6ZSAxMTB4MjEgY2xpcCBhdCAoMTI0LDEyKSBzaXplIDEwNngxNwotICBS
ZW5kZXJGbGV4aWJsZUJveCB7SU5QVVR9IGF0ICgxMTQsMikgc2l6ZSAxMTB4MjEgW2JnY29sb3I9
I0ZGRkZGRl0gW2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KLSAgICBSZW5kZXJCbG9jayB7
RElWfSBhdCAoNDAsNCkgc2l6ZSA0M3gxMwotICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgNDN4MTMKLSAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTg6ICJBTSIK
LSAgICAgICAgdGV4dCBydW4gYXQgKDE3LDApIHdpZHRoIDQgUlRMOiAiICIKLSAgICAgICAgdGV4
dCBydW4gYXQgKDIwLDApIHdpZHRoIDIzOiAiOTo0MSIKK2xheWVyIGF0ICg4LDE5KSBzaXplIDEx
MHg2IGNsaXAgYXQgKDEwLDIxKSBzaXplIDEwNngyCisgIFJlbmRlckZsZXhpYmxlQm94IHtJTlBV
VH0gYXQgKDAsMTEpIHNpemUgMTEweDYgW2JnY29sb3I9I0ZGRkZGRl0gW2JvcmRlcjogKDJweCBp
bnNldCAjMDAwMDAwKV0KK2xheWVyIGF0ICgxMjIsMTkpIHNpemUgMTEweDYgY2xpcCBhdCAoMTI0
LDIxKSBzaXplIDEwNngyCisgIFJlbmRlckZsZXhpYmxlQm94IHtJTlBVVH0gYXQgKDExNCwxMSkg
c2l6ZSAxMTB4NiBbYmdjb2xvcj0jRkZGRkZGXSBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDAp
XQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406094</attachid>
            <date>2020-08-06 11:17:23 -0700</date>
            <delta_ts>2020-08-07 13:08:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215155-20200806141721.patch</filename>
            <type>text/plain</type>
            <size>83774</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1Mjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY2NjQ5MGJiZjJjNDc4
NmVlYzU2N2UxOTYzNGIzYjc4YmMzY2M4NS4uZTc0NDJmNmFmMGIyN2MwMzBiZTQwZWZkNTRkYjBj
YmU4MjMxOTA1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzOCBAQAorMjAyMC0wOC0wNiAgQWRp
dHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBEYXRl
IGlucHV0cyBzaG91bGQgY29udGFpbiBlZGl0YWJsZSBjb21wb25lbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUxNTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHksIHVzZXJzIGFyZSB1
bmFibGUgdG8gZWRpdCB0aGUgdmFsdWVzIGluIGRhdGUgYW5kIHRpbWUgaW5wdXQgdHlwZXMuCisg
ICAgICAgIFRvIG1hdGNoIHN5c3RlbSBkYXRlIGNvbnRyb2xzLCB1c2VycyBzaG91bGQgYmUgYWJs
ZSB0byBzZWxlY3QgYW5kIGVkaXQKKyAgICAgICAgaW5kaXZpZHVhbCBjb21wb25lbnRzIG9mIHRo
ZSBpbnB1dC4gRm9yIGV4YW1wbGUsIDxpbnB1dCB0eXBlPSJkYXRlIj4gc2hvdWxkCisgICAgICAg
IGNvbnRhaW4gYW4gZWRpdGFibGUgeWVhciwgbW9udGgsIGFuZCBkYXkgY29udHJvbC4KKworICAg
ICAgICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbmFsaXR5IHdhcyBwcmVzZW50IGluIFdlYktpdCwg
dXAgdW50aWwgaXQgd2FzIHJlbW92ZWQKKyAgICAgICAgaW4gcjE1MDg3Ni4gUHJldmlvdXNseSBr
bm93biBhcyAiSU5QVVRfTVVMVElQTEVfRklFTERTX1VJIiwgdGhlIGZlYXR1cmUgd2FzCisgICAg
ICAgIHJlbW92ZWQgYXMgaXQgd2FzIG9ubHkgdXNlZCBieSBDaHJvbWl1bSBwb3J0LiBIb3dldmVy
LCBtdWNoIG9mIHRoZSByZW1vdmVkCisgICAgICAgIGxvZ2ljIHJlbWFpbnMgdXNlZnVsIGFuZCBp
cyByZXN1cmZhY2VkIGluIHRoaXMgcGF0Y2guIE1vZGlmaWNhdGlvbnMgd2VyZSBtYWRlCisgICAg
ICAgIHRvIHVwZGF0ZSB0aGUgY29kZSB0byBmb2xsb3cgY3VycmVudCBXZWJLaXQgcHJhY3RpY2Vz
LgorCisgICAgICAgIERhdGVUaW1lRWRpdEVsZW1lbnQgaXMgYSB3cmFwcGVyIGVsZW1lbnQgdGhh
dCBjb250YWlucyBpbmRpdmlkdWFsIGZpZWxkcy4KKyAgICAgICAgVGhlIGZpZWxkcyBhcmUgYWxs
IERhdGVUaW1lRmllbGRFbGVtZW50cy4gTm90ZSB0aGF0IERhdGVUaW1lRmllbGRFbGVtZW50cwor
ICAgICAgICBhcmUgZnVydGhlciBzcGVjaWFsaXplZCBpbnRvIERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudCAoZm9yIGludGVncmFsCisgICAgICAgIHZhbHVlcykgYW5kIERhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQgKGZvciBzeW1ib2xpYyB2YWx1ZXMgc3VjaCBhcyBBLk0KKyAgICAgICAg
YW5kIFAuTSkuIERhdGVUaW1lRWRpdEVsZW1lbnQgYnVpbGRzIHRoZSBjb250cm9sIHVzaW5nIHRo
ZSB2aXNpdG9yIHBhdHRlcm4KKyAgICAgICAgYW5kIGV4aXN0aW5nIHBhcnNpbmcgbG9naWMgY29u
dGFpbmVkIGluIERhdGVUaW1lRm9ybWF0LgorCisgICAgICAgIEluIG9yZGVyIHRvIHJlZHVjZSB0
aGUgcGF0Y2ggc2l6ZSwgdGhpcyBwYXRjaCBvbmx5IHNldHMgdXAgdGhlIHJlbmRlcmluZworICAg
ICAgICBhbmQgbGF5b3V0IG9mIG11bHRpcGxlIGZpZWxkcyBmb3IgPGlucHV0IHR5cGU9ImRhdGUi
Pi4gVXBjb21pbmcgcGF0Y2hlcyB3aWxsCisgICAgICAgIGFkZCByZW5kZXJpbmcgZm9yIG90aGVy
IGRhdGUvdGltZSBpbnB1dCB0eXBlcyBhbmQgaW50cm9kdWNlIGVkaXRhYmlsaXR5LgorCisgICAg
ICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGNzcy9odG1sLmNzczoKKyAgICAgICAgKGlucHV0Ojotd2Via2l0
LWRhdGV0aW1lLWVkaXQpOgorICAgICAgICAoaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1m
aWVsZHMtd3JhcHBlcik6CisgICAgICAgIChpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LXll
YXItZmllbGQsKToKKyAgICAgICAgKGlucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQteWVhci1m
aWVsZDpmb2N1cywpOgorICAgICAgICAoaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC10ZXh0
KToKKyAgICAgICAgKiBodG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRm9ybWF0VmFsaWRhdG9yOjpEYXRlVGltZUZv
cm1hdFZhbGlkYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZvcm1hdFZhbGlkYXRv
cjo6dmlzaXRGaWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZvcm1hdFZhbGlkYXRv
cjo6dmFsaWRhdGVGb3JtYXQpOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUNob29zZXJPbmx5RGF0
ZUFuZFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAoV2ViQ29y
ZTo6QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0
cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRU
eXBlOjp1cGRhdGVJbm5lclRleHRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hvb3Nl
ck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6dmFsdWVGb3JFZGl0Q29udHJvbCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6bG9j
YWxlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRl
QW5kVGltZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRU
eXBlLmg6CisgICAgICAgICogaHRtbC9EYXRlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVJbnB1dFR5cGU6OmlzVmFsaWRGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZUlucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzIGNvbnN0KToKKyAgICAgICAg
KiBodG1sL0RhdGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lTG9jYWxJbnB1
dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6aXNW
YWxpZEZvcm1hdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRU
eXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMgY29uc3QpOgorICAgICAgICAqIGh0bWwvRGF0ZVRp
bWVMb2NhbElucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvTW9udGhJbnB1dFR5cGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TW9udGhJbnB1dFR5cGU6OmlzVmFsaWRGb3JtYXQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TW9udGhJbnB1dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyBj
b25zdCk6CisgICAgICAgICogaHRtbC9Nb250aElucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwv
VGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjppc1Zh
bGlkRm9ybWF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OnNldHVw
TGF5b3V0UGFyYW1ldGVycyBjb25zdCk6CisgICAgICAgICogaHRtbC9UaW1lSW5wdXRUeXBlLmg6
CisgICAgICAgICogaHRtbC9XZWVrSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
ZWtJbnB1dFR5cGU6OmlzVmFsaWRGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2Vl
a0lucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzIGNvbnN0KToKKyAgICAgICAgKiBodG1s
L1dlZWtJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVt
ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRCdWlsZGVyOjpE
YXRlVGltZUVkaXRCdWlsZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEJ1aWxk
ZXI6OmJ1aWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEJ1aWxkZXI6OnZpc2l0
RmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0QnVpbGRlcjo6dmlzaXRMaXRl
cmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OkVkaXRDb250cm9s
T3duZXI6On5FZGl0Q29udHJvbE93bmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRp
dEVsZW1lbnQ6OkRhdGVUaW1lRWRpdEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVFZGl0RWxlbWVudDo6fkRhdGVUaW1lRWRpdEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVFZGl0RWxlbWVudDo6ZmllbGRzV3JhcHBlckVsZW1lbnQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6YWRkRmllbGQpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVUaW1lRWRpdEVsZW1lbnQ6OmxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVk
aXRFbGVtZW50Ojpsb2NhbGVJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVUaW1lRWRpdEVsZW1lbnQ6OnJlc2V0RmllbGRzKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6OnNldEVtcHR5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVFZGl0RWxlbWVudDo6dmFsdWUgY29uc3QpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVU
aW1lRWRpdEVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVG
aWVsZEVsZW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRF
bGVtZW50OjpGaWVsZE93bmVyOjp+RmllbGRPd25lcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUZpZWxkRWxlbWVudDo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmxvY2FsZUZvck93bmVyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50Ojpsb2NhbGVJZGVudGlmaWVyIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50Ojp1cGRhdGVWaXNpYmxlVmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OnN1cHBvcnRzRm9jdXMg
Y29uc3QpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50Lmg6IEFk
ZGVkLgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OkRhdGVUaW1l
RGF5RmllbGRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRGF5RmllbGRFbGVt
ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6
OnNldFZhbHVlQXNEYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTW9udGhGaWVsZEVs
ZW1lbnQ6OkRhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVNb250aEZpZWxkRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lTW9udGhGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudDo6RGF0ZVRpbWVTeW1ib2xpY01vbnRo
RmllbGRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNNb250aEZp
ZWxkRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNN
b250aEZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVZZWFyRmllbGRFbGVtZW50OjpEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZSk6CisgICAg
ICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmg6IEFkZGVkLgorICAgICAg
ICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpEYXRlVGltZU51
bWVyaWNGaWVsZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmll
bGRFbGVtZW50Ojpmb3JtYXRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGlt
ZU51bWVyaWNGaWVsZEVsZW1lbnQ6Omhhc1ZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnNldEVtcHR5VmFsdWUpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzSW50ZWdl
cik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnZhbHVl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6
dmFsdWVBc0ludGVnZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmlj
RmllbGRFbGVtZW50Ojp2aXNpYmxlVmFsdWUgY29uc3QpOgorICAgICAgICAqIGh0bWwvc2hhZG93
L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL3No
YWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjptYWtlVmlzaWJsZUVtcHR5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpoYXNWYWx1ZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojpp
bml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1l
bnQ6OnNldEVtcHR5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0Zp
ZWxkRWxlbWVudDo6c2V0VmFsdWVBc0ludGVnZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6dmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6dmFsdWVBc0ludGVnZXIgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6dmlzaWJsZUVtcHR5
VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxl
bWVudDo6dmlzaWJsZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGlt
ZVN5bWJvbGljRmllbGRFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6c3ltYm9sc1NpemUgY29uc3QpOgorICAgICAgICAqIHBh
Z2UvU2V0dGluZ3MueWFtbDoKKwogMjAyMC0wOC0wNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0Bh
cHBsZS5jb20+CiAKICAgICAgICAgIkRvdWJsZURvd24gQ2FzaW5vIiByZXNwaW4gYnV0dG9uIHN0
b3BzIHdvcmtpbmcgd2l0aCB0cmFja3BhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlODY5ZGY0NGViYWJlYjJkMDNi
Y2MxMTdiZGVlNTU1MWNkYzhhYTMxLi44ZTc2YTI3MGYyZmZjNzljNzdiYjg5MDdjYmE1YWQ3YzM4
NzlmODBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA4LTA2ICBBZGl0eWEgS2Vl
cnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIERhdGUgaW5wdXRz
IHNob3VsZCBjb250YWluIGVkaXRhYmxlIGNvbXBvbmVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTE1NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIERhdGVUaW1lSW5wdXRzRWRpdGFibGVD
b21wb25lbnRzRW5hYmxlZCBhcyBhIHJ1bnRpbWUgc2V0dGluZy4gVGhpcworICAgICAgICBzZXR0
aW5nIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvbiBtYWNPUy4KKworICAgICAgICAqIFNoYXJlZC9X
ZWJQcmVmZXJlbmNlcy55YW1sOgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1
bHRWYWx1ZXMuaDoKKwogMjAyMC0wOC0wNCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBhZnRlciByMjY1MjYzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CmluZGV4IGEwNTc3ODliNWI1ZDM3MWI3NDI3Y2NjZTdiYjUxZTA0OTIwYTE2NTcuLjY5
MGEwZjE3MWVhNjBiNTFiNDUyYmI4YzBjZDlkNTIyMDk3MWZjN2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBA
IC0xMzEwLDYgKzEzMTAsMTEgQEAgaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcAog
aHRtbC9zaGFkb3cvQXV0b0ZpbGxCdXR0b25FbGVtZW50LmNwcAogaHRtbC9zaGFkb3cvRGF0YUxp
c3RCdXR0b25FbGVtZW50LmNwcAogaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3Bw
CitodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcAoraHRtbC9zaGFkb3cvRGF0ZVRp
bWVGaWVsZEVsZW1lbnQuY3BwCitodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuY3Bw
CitodG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwCitodG1sL3NoYWRv
dy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcAogaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5jcHAKIGh0bWwvc2hhZG93L1Byb2dyZXNzU2hh
ZG93RWxlbWVudC5jcHAKIGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAw
MmUxODAyYzQ5ZjA5OGU5Y2NkZThjZDM5OWEzM2UwODI4YmNhMTlmLi43MmQxZDdhZjFkYmMyZmM4
MjQyYzg1MzA2NzM4NjhmNzgwN2E1NjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01MDcxLDYgKzUwNzEsMTEgQEAKIAkJRTU4
QjQ1QkEyMEFEMDdERDAwOTkxMDI1IC8qIERhdGFMaXN0QnV0dG9uRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU4QjQ1QjgyMEFEMDdERDAw
OTkxMDI1IC8qIERhdGFMaXN0QnV0dG9uRWxlbWVudC5oICovOyB9OwogCQlFNTlERDRCODIxMDk4
Mjg3MDAzQzhCNDcgLyogTGlzdEJ1dHRvbkFycm93LnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU5REQ0QjcyMTA5ODI4NTAwM0M4QjQ3IC8qIExp
c3RCdXR0b25BcnJvdy5wbmcgKi87IH07CiAJCUU1QkE3RDYzMTUxNDM3Q0EwMEZFMUUzRiAvKiBM
ZW5ndGhGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU1QkE3RDYyMTUxNDM3Q0EwMEZFMUUzRiAvKiBMZW5ndGhGdW5jdGlvbnMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFNUYwNkFFNzI0
RDQ4NDdCMDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1RjA2QUU1MjRENDg0N0IwMEJCQzRGOCAv
KiBEYXRlVGltZUZpZWxkRWxlbWVudC5oICovOyB9OworCQlFNUYwNkFFQjI0RDQ5QkY3MDBCQkM0
RjggLyogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUYwNkFFOTI0RDQ5QkY3MDBCQkM0RjggLyogRGF0
ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmggKi87IH07CisJCUU1RjA2QUVGMjRENEE2MzcwMEJC
QzRGOCAvKiBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUYwNkFFRDI0RDRBNjM3MDBCQkM0RjggLyog
RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oICovOyB9OworCQlFNUYwNkFGMzI0RDRBQUU0
MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUYwNkFGMTI0RDRBQUU0MDBCQkM0RjggLyogRGF0
ZVRpbWVGaWVsZEVsZW1lbnRzLmggKi87IH07CisJCUU1RjA2QUY3MjRENEJCNTYwMEJCQzRGOCAv
KiBEYXRlVGltZUVkaXRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNUYwNkFGNTI0RDRCQjU2MDBCQkM0RjggLyogRGF0ZVRpbWVFZGl0RWxl
bWVudC5oICovOyB9OwogCQlFNzE0NjdCMzI0QUJBRUYyMDBGQjJGNTAgLyogQXVkaW9Ob2RlT3B0
aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTcx
NDY3QjEyNEFCQUVGMTAwRkIyRjUwIC8qIEF1ZGlvTm9kZU9wdGlvbnMuaCAqLzsgfTsKIAkJRTcx
NDY3QjYyNEFCQUYxRDAwRkIyRjUwIC8qIFBhbm5lck9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU3MTQ2N0I1MjRBQkFGMUQwMEZCMkY1MCAv
KiBQYW5uZXJPcHRpb25zLmggKi87IH07CiAJCUU3NTVFODkyMjRDNzQzNEIwMDlGN0MyMyAvKiBQ
ZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTc1NUU4OEYyNEM3NDM0QjAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZUNv
bnN0cmFpbnRzLmggKi87IH07CkBAIC0xNTg4NSw2ICsxNTg5MCwxNiBAQAogCQlFNThCNDVCODIw
QUQwN0REMDA5OTEwMjUgLyogRGF0YUxpc3RCdXR0b25FbGVtZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERhdGFMaXN0QnV0dG9uRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
NTlERDRCNzIxMDk4Mjg1MDAzQzhCNDcgLyogTGlzdEJ1dHRvbkFycm93LnBuZyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9
IExpc3RCdXR0b25BcnJvdy5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1QkE3
RDYyMTUxNDM3Q0EwMEZFMUUzRiAvKiBMZW5ndGhGdW5jdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTGVuZ3RoRnVuY3Rpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUU1RjA2QUU1MjRENDg0N0IwMEJCQzRGOCAvKiBEYXRlVGltZUZpZWxkRWxlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEYXRlVGltZUZpZWxkRWxlbWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFNUYwNkFFNjI0RDQ4NDdCMDBCQkM0RjggLyogRGF0ZVRpbWVGaWVs
ZEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNUYwNkFFOTI0RDQ5QkY3MDBCQkM0Rjgg
LyogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNUYw
NkFFQTI0RDQ5QkY3MDBCQkM0RjggLyogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1RjA2QUVEMjRENEE2MzcwMEJCQzRGOCAvKiBEYXRl
VGltZVN5bWJvbGljRmllbGRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVGMDZBRUUy
NEQ0QTYzNzAwQkJDNEY4IC8qIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1RjA2QUYxMjRENEFBRTQwMEJCQzRGOCAvKiBEYXRlVGlt
ZUZpZWxkRWxlbWVudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1RjA2QUYyMjRENEFBRTQwMEJCQzRGOCAv
KiBEYXRlVGltZUZpZWxkRWxlbWVudHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGF0ZVRpbWVG
aWVsZEVsZW1lbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVGMDZBRjUy
NEQ0QkI1NjAwQkJDNEY4IC8qIERhdGVUaW1lRWRpdEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGF0ZVRpbWVFZGl0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNUYw
NkFGNjI0RDRCQjU2MDBCQkM0RjggLyogRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBEYXRlVGltZUVkaXRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTcxNDY3QjEyNEFCQUVGMTAwRkIyRjUwIC8qIEF1ZGlvTm9kZU9wdGlvbnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9Ob2RlT3B0aW9ucy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNzE0NjdCNDI0QUJBRjBCMDBGQjJGNTAgLyogQXVk
aW9Ob2RlT3B0aW9ucy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXVkaW9Ob2RlT3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUU3MTQ2N0I1MjRBQkFGMUQwMEZCMkY1MCAvKiBQYW5uZXJPcHRp
b25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhbm5lck9wdGlvbnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NjIyLDYgKzE4NjM3LDE2IEBACiAJCQkJ
N0MxRTk3MjUxQTlGOTgzNDAwN0JGMEZCIC8qIEF1dG9GaWxsQnV0dG9uRWxlbWVudC5jcHAgKi8s
CiAJCQkJN0MxRTk3MjYxQTlGOTgzNDAwN0JGMEZCIC8qIEF1dG9GaWxsQnV0dG9uRWxlbWVudC5o
ICovLAogCQkJCUU1OEI0NUI4MjBBRDA3REQwMDk5MTAyNSAvKiBEYXRhTGlzdEJ1dHRvbkVsZW1l
bnQuaCAqLywKKwkJCQlFNUYwNkFGNjI0RDRCQjU2MDBCQkM0RjggLyogRGF0ZVRpbWVFZGl0RWxl
bWVudC5jcHAgKi8sCisJCQkJRTVGMDZBRjUyNEQ0QkI1NjAwQkJDNEY4IC8qIERhdGVUaW1lRWRp
dEVsZW1lbnQuaCAqLywKKwkJCQlFNUYwNkFFNjI0RDQ4NDdCMDBCQkM0RjggLyogRGF0ZVRpbWVG
aWVsZEVsZW1lbnQuY3BwICovLAorCQkJCUU1RjA2QUU1MjRENDg0N0IwMEJCQzRGOCAvKiBEYXRl
VGltZUZpZWxkRWxlbWVudC5oICovLAorCQkJCUU1RjA2QUYyMjRENEFBRTQwMEJCQzRGOCAvKiBE
YXRlVGltZUZpZWxkRWxlbWVudHMuY3BwICovLAorCQkJCUU1RjA2QUYxMjRENEFBRTQwMEJCQzRG
OCAvKiBEYXRlVGltZUZpZWxkRWxlbWVudHMuaCAqLywKKwkJCQlFNUYwNkFFQTI0RDQ5QkY3MDBC
QkM0RjggLyogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcCAqLywKKwkJCQlFNUYwNkFF
OTI0RDQ5QkY3MDBCQkM0RjggLyogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmggKi8sCisJ
CQkJRTVGMDZBRUUyNEQ0QTYzNzAwQkJDNEY4IC8qIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1l
bnQuY3BwICovLAorCQkJCUU1RjA2QUVEMjRENEE2MzcwMEJCQzRGOCAvKiBEYXRlVGltZVN5bWJv
bGljRmllbGRFbGVtZW50LmggKi8sCiAJCQkJQTdDOUFCRjYxMzU3QTNCRjAwRjU1MDNGIC8qIERl
dGFpbHNNYXJrZXJDb250cm9sLmNwcCAqLywKIAkJCQlBN0M5QUJGNzEzNTdBM0JGMDBGNTUwM0Yg
LyogRGV0YWlsc01hcmtlckNvbnRyb2wuaCAqLywKIAkJCQk1MTAxOTJEMzE4QjZCOUI3MDA3RkM3
QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50LmNwcCAqLywKQEAgLTMwNjUxLDggKzMwNjc2
LDEzIEBACiAJCQkJRjU1QjNEQjYxMjUxRjEyRDAwM0VGMjY5IC8qIERhdGVJbnB1dFR5cGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTM3QzczOEYzMUVEQkRFOEEwMDNGMkIwQiAvKiBEYXRlVGltZUNo
b29zZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QzczOEY0MUVEQkRFOEQwMDNGMkIwQiAvKiBE
YXRlVGltZUNob29zZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUU1RjA2QUY3MjRENEJC
NTYwMEJCQzRGOCAvKiBEYXRlVGltZUVkaXRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlF
NUYwNkFFNzI0RDQ4NDdCMDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUU1RjA2QUYzMjRENEFBRTQwMEJCQzRGOCAvKiBEYXRlVGltZUZpZWxkRWxl
bWVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1M0VCNjM3MTU5QzU3MDQwMDAwMUJCNyAvKiBE
YXRlVGltZUZvcm1hdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjU1QjNEQkExMjUxRjEyRDAwM0VG
MjY5IC8qIERhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUU1RjA2
QUVCMjRENDlCRjcwMEJCQzRGOCAvKiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUU1RjA2QUVGMjRENEE2MzcwMEJCQzRGOCAvKiBEYXRlVGltZVN5bWJv
bGljRmllbGRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjZBMTJCRTFBMDA5MjM3MDBD
NkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1RkVBNUQw
MTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MTVBRDcy
MDIwNTA1MTMyMDBENTkyREMgLyogRGVjbGFyYXRpdmVBbmltYXRpb24uaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzIGIvU291cmNlL1dlYkNv
cmUvY3NzL2h0bWwuY3NzCmluZGV4IGRhZjg5MTllYjE2ZDczZGM3ZjA1OWQzMWYwMDM2M2M1YmU4
NzIxMmUuLmUwYmZlODE4NWNmYjBlNzhhNTkwODNiNzhiNDYxZjc1MjQyY2QxNmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
aHRtbC5jc3MKQEAgLTQ4NCw2ICs0ODQsMzQgQEAgaW5wdXQ6Oi13ZWJraXQtZGF0ZS1hbmQtdGlt
ZS12YWx1ZSB7CiAjZW5kaWYKIH0KIAoraW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdCB7Cisg
ICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgIG92ZXJmbG93OiBoaWRkZW47Cit9CisKK2lu
cHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtZmllbGRzLXdyYXBwZXIgeworICAgIGRpc3BsYXk6
IGlubGluZS1ibG9jazsKK30KKworaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15ZWFyLWZp
ZWxkLAoraW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1tb250aC1maWVsZCwKK2lucHV0Ojot
d2Via2l0LWRhdGV0aW1lLWVkaXQtZGF5LWZpZWxkIHsKKyAgICBkaXNwbGF5OiBpbmxpbmU7Cisg
ICAgcGFkZGluZzogMXB4OworfQorCitpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LXllYXIt
ZmllbGQ6Zm9jdXMsCitpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LW1vbnRoLWZpZWxkOmZv
Y3VzLAoraW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1kYXktZmllbGQ6Zm9jdXMgeworICAg
IGJhY2tncm91bmQtY29sb3I6IC1hcHBsZS1zeXN0ZW0tY29udHJvbC1hY2NlbnQ7CisgICAgY29s
b3I6IHdoaXRlOworICAgIG91dGxpbmU6IG5vbmU7Cit9CisKK2lucHV0Ojotd2Via2l0LWRhdGV0
aW1lLWVkaXQtdGV4dCB7CisgICAgZGlzcGxheTogaW5saW5lOworfQorCiBpbnB1dDo6LXdlYmtp
dC1pbm5lci1zcGluLWJ1dHRvbiB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBpbm5lci1zcGlu
LWJ1dHRvbjsKICAgICBkaXNwbGF5OiBibG9jazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXgg
NTQyMWZkYjRiZjZiODFkZTlmNTRlMWIyMTY2NWE5NzViZDNhMzMxNS4uYThhMTkzZDI2ZWE2OTMz
YzBkNzlkMjY4YjA5MTkyNzMzN2VmMjI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTI5
LDE2ICsyOSw3OSBAQAogCiAjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCiAK
KyNpbmNsdWRlICJEYXRlVGltZUZvcm1hdC5oIgogI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNs
dWRlICJQbGF0Zm9ybUxvY2FsZS5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNpbmNs
dWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJUZXh0
LmgiCiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBEYXRlVGltZUZv
cm1hdFZhbGlkYXRvciA6IHB1YmxpYyBEYXRlVGltZUZvcm1hdDo6VG9rZW5IYW5kbGVyIHsKK3B1
YmxpYzoKKyAgICBEYXRlVGltZUZvcm1hdFZhbGlkYXRvcigpIHsgfQorCisgICAgdm9pZCB2aXNp
dEZpZWxkKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGUsIGludCkgZmluYWw7CisgICAgdm9pZCB2
aXNpdExpdGVyYWwoY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CisKKyAgICBib29sIHZhbGlkYXRl
Rm9ybWF0KGNvbnN0IFN0cmluZyYgZm9ybWF0LCBjb25zdCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5k
VGltZUlucHV0VHlwZSYpOworCitwcml2YXRlOgorICAgIE9wdGlvblNldDxEYXRlVGltZUZvcm1h
dFZhbGlkYXRpb25SZXN1bHRzPiBtX3Jlc3VsdHM7Cit9OworCit2b2lkIERhdGVUaW1lRm9ybWF0
VmFsaWRhdG9yOjp2aXNpdEZpZWxkKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGUgZmllbGRUeXBl
LCBpbnQpCit7CisgICAgc3dpdGNoIChmaWVsZFR5cGUpIHsKKyAgICBjYXNlIERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGVZZWFyOgorICAgICAgICBtX3Jlc3VsdHMuYWRkKERhdGVUaW1lRm9ybWF0
VmFsaWRhdGlvblJlc3VsdHM6Okhhc1llYXIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERh
dGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNb250aDoKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpG
aWVsZFR5cGVNb250aFN0YW5kQWxvbmU6CisgICAgICAgIG1fcmVzdWx0cy5hZGQoRGF0ZVRpbWVG
b3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzTW9udGgpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVXZWVrT2ZZZWFyOgorICAgICAgICBtX3Jlc3Vs
dHMuYWRkKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc1dlZWspOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVEYXlPZk1vbnRoOgor
ICAgICAgICBtX3Jlc3VsdHMuYWRkKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhh
c0RheSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlw
ZVBlcmlvZDoKKyAgICAgICAgbV9yZXN1bHRzLmFkZChEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25S
ZXN1bHRzOjpIYXNBTVBNKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlSG91cjExOgorICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhv
dXIxMjoKKyAgICAgICAgbV9yZXN1bHRzLmFkZChEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1
bHRzOjpIYXNIb3VyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6
RmllbGRUeXBlSG91cjIzOgorICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIy
NDoKKyAgICAgICAgbV9yZXN1bHRzLmFkZChEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRz
OjpIYXNIb3VyKTsKKyAgICAgICAgbV9yZXN1bHRzLmFkZChEYXRlVGltZUZvcm1hdFZhbGlkYXRp
b25SZXN1bHRzOjpIYXNBTVBNKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlVGltZUZv
cm1hdDo6RmllbGRUeXBlTWludXRlOgorICAgICAgICBtX3Jlc3VsdHMuYWRkKERhdGVUaW1lRm9y
bWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc1dlZWspOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVTZWNvbmQ6CisgICAgICAgIG1fcmVzdWx0cy5hZGQo
RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzU2Vjb25kKTsKKyAgICAgICAgYnJl
YWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitib29sIERhdGVU
aW1lRm9ybWF0VmFsaWRhdG9yOjp2YWxpZGF0ZUZvcm1hdChjb25zdCBTdHJpbmcmIGZvcm1hdCwg
Y29uc3QgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUmIGlucHV0VHlwZSkKK3sK
KyAgICBpZiAoIURhdGVUaW1lRm9ybWF0OjpwYXJzZShmb3JtYXQsICp0aGlzKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpbnB1dFR5cGUuaXNWYWxpZEZvcm1hdChtX3Jlc3Vs
dHMpOworfQorCiBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6fkJhc2VDaG9v
c2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlKCkKIHsKICAgICBjbG9zZURhdGVUaW1lQ2hvb3Nl
cigpOwpAQCAtNjEsMjcgKzEyNCw1MSBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1l
SW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50JikKIAogdm9pZCBCYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0g
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2YWx1
ZUNvbnRhaW5lclBzZXVkbygiLXdlYmtpdC1kYXRlLWFuZC10aW1lLXZhbHVlIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotCiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7Ci0gICAg
YXV0byB2YWx1ZUNvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5k
b2N1bWVudCgpKTsKLSAgICB2YWx1ZUNvbnRhaW5lci0+c2V0UHNldWRvKHZhbHVlQ29udGFpbmVy
UHNldWRvKTsKLSAgICBlbGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hp
bGQodmFsdWVDb250YWluZXIpOworICAgIGlmIChlbGVtZW50KCktPmRvY3VtZW50KCkucGFnZSgp
ICYmIGVsZW1lbnQoKS0+ZG9jdW1lbnQoKS5wYWdlKCktPnNldHRpbmdzKCkuZGF0ZVRpbWVJbnB1
dHNFZGl0YWJsZUNvbXBvbmVudHNFbmFibGVkKCkpIHsKKyAgICAgICAgbV9kYXRlVGltZUVkaXRF
bGVtZW50ID0gRGF0ZVRpbWVFZGl0RWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQo
KSwgKnRoaXMpOworICAgICAgICBlbGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBw
ZW5kQ2hpbGQoKm1fZGF0ZVRpbWVFZGl0RWxlbWVudCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2YWx1ZUNv
bnRhaW5lclBzZXVkbygiLXdlYmtpdC1kYXRlLWFuZC10aW1lLXZhbHVlIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBhdXRvIHZhbHVlQ29udGFpbmVyID0gSFRN
TERpdkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCkpOworICAgICAgICB2YWx1
ZUNvbnRhaW5lci0+c2V0UHNldWRvKHZhbHVlQ29udGFpbmVyUHNldWRvKTsKKyAgICAgICAgZWxl
bWVudCgpLT51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKHZhbHVlQ29udGFpbmVy
KTsKKyAgICB9CiAgICAgdXBkYXRlSW5uZXJUZXh0VmFsdWUoKTsKIH0KIAordm9pZCBCYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUoKQorewor
ICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudCA9IG51bGxwdHI7Cit9CisKIHZvaWQgQmFzZUNob29z
ZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnVwZGF0ZUlubmVyVGV4dFZhbHVlKCkKIHsKICAg
ICBBU1NFUlQoZWxlbWVudCgpKTsKLSAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IGVsZW1lbnQoKS0+
dXNlckFnZW50U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCk7Ci0gICAgaWYgKCFpczxIVE1MRWxl
bWVudD4obm9kZSkpCisgICAgaWYgKCFtX2RhdGVUaW1lRWRpdEVsZW1lbnQpIHsKKyAgICAgICAg
UmVmUHRyPE5vZGU+IG5vZGUgPSBlbGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+Zmly
c3RDaGlsZCgpOworICAgICAgICBpZiAoIWlzPEhUTUxFbGVtZW50Pihub2RlKSkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgU3RyaW5nIGRpc3BsYXlWYWx1ZSA9IHZpc2libGVWYWx1ZSgp
OworICAgICAgICBpZiAoZGlzcGxheVZhbHVlLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgLy8g
TmVlZCB0byBwdXQgc29tZXRoaW5nIHRvIGtlZXAgdGV4dCBiYXNlbGluZS4KKyAgICAgICAgICAg
IGRpc3BsYXlWYWx1ZSA9ICIgIl9zOworICAgICAgICB9CisgICAgICAgIGRvd25jYXN0PEhUTUxF
bGVtZW50Pigqbm9kZSkuc2V0SW5uZXJUZXh0KGRpc3BsYXlWYWx1ZSk7CiAgICAgICAgIHJldHVy
bjsKLSAgICBTdHJpbmcgZGlzcGxheVZhbHVlID0gdmlzaWJsZVZhbHVlKCk7Ci0gICAgaWYgKGRp
c3BsYXlWYWx1ZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgLy8gTmVlZCB0byBwdXQgc29tZXRoaW5n
IHRvIGtlZXAgdGV4dCBiYXNlbGluZS4KLSAgICAgICAgZGlzcGxheVZhbHVlID0gIiAiX3M7CiAg
ICAgfQotICAgIGRvd25jYXN0PEhUTUxFbGVtZW50Pigqbm9kZSkuc2V0SW5uZXJUZXh0KGRpc3Bs
YXlWYWx1ZSk7CisKKyAgICBEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzIGxh
eW91dFBhcmFtZXRlcnMoZWxlbWVudCgpLT5sb2NhbGUoKSk7CisgICAgc2V0dXBMYXlvdXRQYXJh
bWV0ZXJzKGxheW91dFBhcmFtZXRlcnMpOworCisgICAgaWYgKCFEYXRlVGltZUZvcm1hdFZhbGlk
YXRvcigpLnZhbGlkYXRlRm9ybWF0KGxheW91dFBhcmFtZXRlcnMuZGF0ZVRpbWVGb3JtYXQsICp0
aGlzKSkKKyAgICAgICAgbGF5b3V0UGFyYW1ldGVycy5kYXRlVGltZUZvcm1hdCA9IGxheW91dFBh
cmFtZXRlcnMuZmFsbGJhY2tEYXRlVGltZUZvcm1hdDsKKworICAgIGF1dG8gZGF0ZSA9IHBhcnNl
VG9EYXRlQ29tcG9uZW50cyhlbGVtZW50KCktPnZhbHVlKCkpOworICAgIGlmICghZGF0ZSkKKyAg
ICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5zZXRFbXB0eVZhbHVlKGxheW91dFBhcmFtZXRl
cnMpOworICAgIGVsc2UKKyAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5zZXRWYWx1ZUFz
RGF0ZShsYXlvdXRQYXJhbWV0ZXJzLCAqZGF0ZSk7CiB9CiAKIHZvaWQgQmFzZUNob29zZXJPbmx5
RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wg
dmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCkBAIC0x
NTQsNiArMjQxLDE3IEBAIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6
OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYKICAgICBCYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGU6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSk7CiB9CiAKK1N0cmluZyBCYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6dmFsdWVGb3JFZGl0Q29udHJvbCgpIGNvbnN0
Cit7CisgICAgQVNTRVJUKGVsZW1lbnQoKSk7CisgICAgcmV0dXJuIGVsZW1lbnQoKS0+dmFsdWUo
KTsKK30KKworQXRvbVN0cmluZyBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6
bG9jYWxlSWRlbnRpZmllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGVsZW1lbnQoKS0+Y29tcHV0
ZUluaGVyaXRlZExhbmd1YWdlKCk7Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmgK
aW5kZXggYTNmMWNmNWE1YjJhY2EwY2E4ZTk5NTE4MTE2OTUyMDBhMzM3OGYwZC4uZjM5OTBjNzcx
NDg4ZTU2ODI4MjM2Yzc3YWQ3NTc3N2JlZDgwNDAwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuaApAQCAt
MzIsMjAgKzMyLDQzIEBACiAjaW5jbHVkZSAiQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgiCiAj
aW5jbHVkZSAiRGF0ZVRpbWVDaG9vc2VyLmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVDaG9vc2VyQ2xp
ZW50LmgiCisjaW5jbHVkZSAiRGF0ZVRpbWVFZGl0RWxlbWVudC5oIgorI2luY2x1ZGUgPHd0Zi9P
cHRpb25TZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBCYXNlQ2hvb3Nlck9u
bHlEYXRlQW5kVGltZUlucHV0VHlwZSA6IHB1YmxpYyBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUs
IHByaXZhdGUgRGF0ZVRpbWVDaG9vc2VyQ2xpZW50IHsKK2VudW0gY2xhc3MgRGF0ZVRpbWVGb3Jt
YXRWYWxpZGF0aW9uUmVzdWx0cyA6IHVpbnQ4X3QgeworICAgIEhhc1llYXIgPSAxIDw8IDAsCisg
ICAgSGFzTW9udGggPSAxIDw8IDEsCisgICAgSGFzV2VlayA9IDEgPDwgMiwKKyAgICBIYXNEYXkg
PSAxIDw8IDMsCisgICAgSGFzQU1QTSA9IDEgPDwgNCwKKyAgICBIYXNIb3VyID0gMSA8PCA1LAor
ICAgIEhhc01pbnV0ZSA9IDEgPDwgNiwKKyAgICBIYXNTZWNvbmQgPSAxIDw8IDcsCit9OworCitj
bGFzcyBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZSA6IHB1YmxpYyBCYXNlRGF0
ZUFuZFRpbWVJbnB1dFR5cGUsIHByaXZhdGUgRGF0ZVRpbWVDaG9vc2VyQ2xpZW50LCBwcml2YXRl
IERhdGVUaW1lRWRpdEVsZW1lbnQ6OkVkaXRDb250cm9sT3duZXIgeworcHVibGljOgorICAgIHZp
cnR1YWwgYm9vbCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRp
b25SZXN1bHRzPikgY29uc3QgPSAwOworCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQmFzZUNo
b29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkg
OiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgfkJhc2VDaG9vc2Vy
T25seURhdGVBbmRUaW1lSW5wdXRUeXBlKCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0dXBMYXlv
dXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25z
dCA9IDA7CisKIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVJbm5lclRleHRWYWx1ZSgpIG92ZXJy
aWRlOwogICAgIHZvaWQgY2xvc2VEYXRlVGltZUNob29zZXIoKTsKIAorICAgIC8vIERhdGVUaW1l
RWRpdEVsZW1lbnQ6OkVkaXRDb250cm9sT3duZXIgZnVuY3Rpb25zOgorICAgIFN0cmluZyB2YWx1
ZUZvckVkaXRDb250cm9sKCkgY29uc3QgZmluYWw7CisgICAgQXRvbVN0cmluZyBsb2NhbGVJZGVu
dGlmaWVyKCkgY29uc3QgZmluYWw7CisKICAgICAvLyBJbnB1dFR5cGUgZnVuY3Rpb25zOgogICAg
IHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZSgpIG92ZXJyaWRlOworICAgIHZvaWQgZGVzdHJveVNo
YWRvd1N1YnRyZWUoKSBvdmVycmlkZTsKICAgICB2b2lkIGRldGFjaCgpIG92ZXJyaWRlOwogICAg
IHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVs
ZEV2ZW50QmVoYXZpb3IpIG92ZXJyaWRlOwogICAgIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVu
dChFdmVudCYpIG92ZXJyaWRlOwpAQCAtNjEsNiArODQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZGlkRW5kQ2hvb3NlcigpIGZpbmFsOwogCiAgICAgUmVmUHRyPERhdGVUaW1lQ2hvb3Nlcj4gbV9k
YXRlVGltZUNob29zZXI7CisgICAgUmVmUHRyPERhdGVUaW1lRWRpdEVsZW1lbnQ+IG1fZGF0ZVRp
bWVFZGl0RWxlbWVudDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oCmluZGV4IDNlMTcyNDcwNjEz
MjVkMGEyOGU0ZDE0Y2E5ODQwYWRkMmM1YjQ5ZTIuLjgyN2QwMWI5ZjM2ZjI4MTc3YTdjMjBiYmZi
MTVmMzI0OTkyMGNlMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVB
bmRUaW1lSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGUuaApAQCAtNTMsOCArNTMsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBpc0tl
eWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgog
Ci1wcml2YXRlOgogICAgIHZpcnR1YWwgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHBhcnNlVG9E
YXRlQ29tcG9uZW50cyhjb25zdCBTdHJpbmdWaWV3JikgY29uc3QgPSAwOworCitwcml2YXRlOgog
ICAgIHZpcnR1YWwgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHNldE1pbGxpc2Vjb25kVG9EYXRl
Q29tcG9uZW50cyhkb3VibGUpIGNvbnN0ID0gMDsKIAogICAgIGRvdWJsZSB2YWx1ZUFzRGF0ZSgp
IGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKaW5kZXgg
YTVkNmQ5ZWYyODc5MjE2OGZlOWNmYmY2NjdhYzAxNDlkZDMwODEwNC4uZTBlNWM5YzZkMGZjZTc1
MmNmNDk3NmJmYzIzNDhkNDkwN2RmZDQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9EYXRlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5
cGUuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCisjaW5j
bHVkZSAiUGxhdGZvcm1Mb2NhbGUuaCIKICNpbmNsdWRlICJTdGVwUmFuZ2UuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtODYsNSArODcsMTggQEAgYm9vbCBEYXRlSW5wdXRUeXBlOjppc0Rh
dGVGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgRGF0ZUlucHV0VHlw
ZTo6aXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0
cz4gcmVzdWx0cykgY29uc3QKK3sKKyAgICByZXR1cm4gcmVzdWx0cy5jb250YWlucyhEYXRlVGlt
ZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNZZWFyKQorICAgICAgICAmJiByZXN1bHRzLmNv
bnRhaW5zKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc01vbnRoKQorICAgICAg
ICAmJiByZXN1bHRzLmNvbnRhaW5zKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhh
c0RheSk7Cit9CisKK3ZvaWQgRGF0ZUlucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERh
dGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMpIGNv
bnN0Cit7CisgICAgbGF5b3V0UGFyYW1ldGVycy5kYXRlVGltZUZvcm1hdCA9IGxheW91dFBhcmFt
ZXRlcnMubG9jYWxlLmRhdGVGb3JtYXQoKTsKKyAgICBsYXlvdXRQYXJhbWV0ZXJzLmZhbGxiYWNr
RGF0ZVRpbWVGb3JtYXQgPSAieXl5eS1NTS1kZCJfczsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCmluZGV4IDMzNTUwNzRi
ZTZkNWYyZTJmNjM4ODA2NjJkMzk2MDY1ZGU2OWJmMmIuLjEwNTY0NmZhOTAyZjA2YTU5NzNiNzJj
MzMwMjFlNmE0YjE2NTA0OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlu
cHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCkBAIC00
Nyw2ICs0Nyw5IEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHBhcnNl
VG9EYXRlQ29tcG9uZW50cyhjb25zdCBTdHJpbmdWaWV3JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
T3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhk
b3VibGUpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNEYXRlRmllbGQoKSBjb25zdCBvdmVy
cmlkZTsKKworICAgIGJvb2wgaXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRW
YWxpZGF0aW9uUmVzdWx0cz4pIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc2V0dXBMYXlvdXRQ
YXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25zdCBv
dmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCmluZGV4IGRiNjM5MDhmYTY0NTJmZGZl
ZTBiMWUzYTU2ZjM2N2MwMWI3YzJkMjkuLjZkNjJhNzMwNmI1N2JkYWM4MmQ3MzU1N2JlNWI0MzBm
MjZkMTkwODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElu
cHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRU
eXBlLmNwcApAQCAtOTUsNiArOTUsMjAgQEAgYm9vbCBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpp
c0RhdGVUaW1lTG9jYWxGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wg
RGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6aXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVG
b3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4gcmVzdWx0cykgY29uc3QKK3sKKyAgICByZXR1cm4gcmVz
dWx0cy5jb250YWlucyhEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNZZWFyKQor
ICAgICAgICAmJiByZXN1bHRzLmNvbnRhaW5zKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3Vs
dHM6Okhhc01vbnRoKQorICAgICAgICAmJiByZXN1bHRzLmNvbnRhaW5zKERhdGVUaW1lRm9ybWF0
VmFsaWRhdGlvblJlc3VsdHM6Okhhc0RheSkKKyAgICAgICAgJiYgcmVzdWx0cy5jb250YWlucyhE
YXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNIb3VyKQorICAgICAgICAmJiByZXN1
bHRzLmNvbnRhaW5zKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc01pbnV0ZSk7
Cit9CisKK3ZvaWQgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJz
KERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25zdAoreworCit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCmluZGV4IDJjMDQ5NDlmMGYwYTZkOTBmMzI0OGU0ZWY5
MGI4MDAwMTk3NDk0YTUuLmQxYTQ1ZDdiMmY0N2IxODUxOTRiMjgzNWViNDVjMGJlNTVkODYyMmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCkBAIC00
OSw2ICs0OSw5IEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHBhcnNl
VG9EYXRlQ29tcG9uZW50cyhjb25zdCBTdHJpbmdWaWV3JikgY29uc3QgZmluYWw7CiAgICAgT3B0
aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3Vi
bGUpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgaXNEYXRlVGltZUxvY2FsRmllbGQoKSBjb25zdCBm
aW5hbDsKKworICAgIGJvb2wgaXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRW
YWxpZGF0aW9uUmVzdWx0cz4pIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc2V0dXBMYXlvdXRQ
YXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25zdCBv
dmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9N
b250aElucHV0VHlwZS5jcHAKaW5kZXggNDkwMjYwYzI4Yzc5ZjM1MDY3NjI3Yzg5ZGIwMmY5YjY5
YmIwZWUwNC4uZDM2MjVjZTFlZDgzNmNlYmI0OTc3ZDA0NjI2NDA5N2UyNWM0MGExZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKQEAgLTEyOSw2ICsxMjksMTcgQEAgYm9v
bCBNb250aElucHV0VHlwZTo6aXNNb250aEZpZWxkKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAorYm9vbCBNb250aElucHV0VHlwZTo6aXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRp
bWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4gcmVzdWx0cykgY29uc3QKK3sKKyAgICByZXR1cm4g
cmVzdWx0cy5jb250YWlucyhEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNZZWFy
KQorICAgICAgICAmJiByZXN1bHRzLmNvbnRhaW5zKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJl
c3VsdHM6Okhhc01vbnRoKTsKK30KKwordm9pZCBNb250aElucHV0VHlwZTo6c2V0dXBMYXlvdXRQ
YXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25zdAor
eworCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L01vbnRoSW5wdXRUeXBlLmgKaW5kZXggMGNjYTkyMmE1M2M0MGRmMTU4ZGNmYjJjNjA2MWQ4YTM4
Yzg0YWY4NC4uMjJjODc0NDViZTFiYzU2ZTBiNGE4MGM2MDE2MTU0Y2ZkNzIyODNlMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaApAQCAtNTEsNiArNTEsOSBAQCBwcml2YXRlOgog
ICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBwYXJzZVRvRGF0ZUNvbXBvbmVudHMoY29uc3Qg
U3RyaW5nVmlldyYpIGNvbnN0IG92ZXJyaWRlOwogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRz
PiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlKSBjb25zdCBvdmVycmlkZTsK
ICAgICBib29sIGlzTW9udGhGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgYm9vbCBpc1Zh
bGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPikgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0
RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKaW5kZXgg
MGJkMmQ0YmNlOWE1OGViNzk2Nzk3YjM4MTEwMDg0NWFlNWQ2NTZmZC4uZDQ0MjY5YjhiZWRhMmJk
NWNmMzhlNGU4YWE4MDRkOWZiZjM4ZjlmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9UaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5
cGUuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCisjaW5j
bHVkZSAiUGxhdGZvcm1Mb2NhbGUuaCIKICNpbmNsdWRlICJTdGVwUmFuZ2UuaCIKICNpbmNsdWRl
IDx3dGYvRGF0ZU1hdGguaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgpAQCAtMTA0LDYg
KzEwNSwxNyBAQCBib29sIFRpbWVJbnB1dFR5cGU6OmlzVGltZUZpZWxkKCkgY29uc3QKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBUaW1lSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0KE9wdGlv
blNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPiByZXN1bHRzKSBjb25zdAorewor
ICAgIHJldHVybiByZXN1bHRzLmNvbnRhaW5zKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3Vs
dHM6Okhhc0hvdXIpCisgICAgICAgICYmIHJlc3VsdHMuY29udGFpbnMoRGF0ZVRpbWVGb3JtYXRW
YWxpZGF0aW9uUmVzdWx0czo6SGFzTWludXRlKTsKK30KKwordm9pZCBUaW1lSW5wdXRUeXBlOjpz
ZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVy
cyYpIGNvbnN0Cit7CisKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKaW5kZXggODQxNjZiMDk1YWYyMTg4Y2E4ZTA3NTZi
ZTdlNTU3MTFiMTJkOGVkNC4uNTkzNTI4NzA0YWM4ODJlNWRiNDNjODA4M2NlYjRkMGI4MTlkZDky
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKQEAgLTQ4LDYgKzQ4LDkgQEAgcHJp
dmF0ZToKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRz
KGNvbnN0IFN0cmluZ1ZpZXcmKSBjb25zdCBvdmVycmlkZTsKICAgICBPcHRpb25hbDxEYXRlQ29t
cG9uZW50cz4gc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgYm9vbCBpc1RpbWVGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgYm9v
bCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRz
PikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRp
bWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9X
ZWVrSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAK
aW5kZXggYjJiYjI0M2I5MDVkODQxNWIwMzRjOTQwNmU0YmZhMzgyMWIzOWJhMy4uNGI4M2M0MTlk
OGJkMDljODk4NGY4N2Y4NmNkN2I0MWViNzQ2ZTYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJ
bnB1dFR5cGUuY3BwCkBAIC04Miw2ICs4MiwxNyBAQCBib29sIFdlZWtJbnB1dFR5cGU6OmlzV2Vl
a0ZpZWxkKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBXZWVrSW5wdXRUeXBl
Ojppc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRz
PiByZXN1bHRzKSBjb25zdAoreworICAgIHJldHVybiByZXN1bHRzLmNvbnRhaW5zKERhdGVUaW1l
Rm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc1llYXIpCisgICAgICAgICYmIHJlc3VsdHMuY29u
dGFpbnMoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzV2Vlayk7Cit9CisKK3Zv
aWQgV2Vla0lucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1l
bnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25zdAoreworCit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1
dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5oCmluZGV4IGQzYmEx
NTEzM2U3MzQxMWVhODA1NGMwMzNjZjEwNmE1YzM2NmEzYTcuLjllMmQ0MjhjMWQxODYzMWE0NWI0
MDZmNzg3NWNlMzQ2ZjRkNTE0NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vl
a0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5oCkBA
IC00Nyw2ICs0Nyw5IEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHBh
cnNlVG9EYXRlQ29tcG9uZW50cyhjb25zdCBTdHJpbmdWaWV3JikgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50
cyhkb3VibGUpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNXZWVrRmllbGQoKSBjb25zdCBv
dmVycmlkZTsKKworICAgIGJvb2wgaXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3Jt
YXRWYWxpZGF0aW9uUmVzdWx0cz4pIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc2V0dXBMYXlv
dXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25z
dCBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YWVlNjVlODE2NzFiNTM2OTAxY2Q5Mjg4NTY5ZTg0NzhmYjI2Y2QxZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCkBA
IC0wLDAgKzEsMjI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiRGF0ZVRpbWVFZGl0RWxlbWVudC5oIgorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5Q
VVRfVFlQRVMpCisKKyNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgorI2luY2x1ZGUgIkRhdGVU
aW1lRmllbGRFbGVtZW50cy5oIgorI2luY2x1ZGUgIkRhdGVUaW1lRm9ybWF0LmgiCisjaW5jbHVk
ZSAiRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5o
IgorI2luY2x1ZGUgIlBsYXRmb3JtTG9jYWxlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgorI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChEYXRlVGltZUVkaXRFbGVtZW50KTsK
KworY2xhc3MgRGF0ZVRpbWVFZGl0QnVpbGRlciA6IHByaXZhdGUgRGF0ZVRpbWVGb3JtYXQ6OlRv
a2VuSGFuZGxlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGF0ZVRpbWVFZGl0QnVpbGRl
cik7CisKK3B1YmxpYzoKKyAgICBEYXRlVGltZUVkaXRCdWlsZGVyKERhdGVUaW1lRWRpdEVsZW1l
bnQmLCBjb25zdCBEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJik7CisKKyAg
ICBib29sIGJ1aWxkKGNvbnN0IFN0cmluZyYpOworCitwcml2YXRlOgorICAgIC8vIERhdGVUaW1l
Rm9ybWF0OjpUb2tlbkhhbmRsZXIgZnVuY3Rpb25zOgorICAgIHZvaWQgdmlzaXRGaWVsZChEYXRl
VGltZUZvcm1hdDo6RmllbGRUeXBlLCBpbnQpIGZpbmFsOworICAgIHZvaWQgdmlzaXRMaXRlcmFs
KGNvbnN0IFN0cmluZyYpIGZpbmFsOworCisgICAgRGF0ZVRpbWVFZGl0RWxlbWVudCYgbV9lZGl0
RWxlbWVudDsKKyAgICBjb25zdCBEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJz
JiBtX3BhcmFtZXRlcnM7Cit9OworCitEYXRlVGltZUVkaXRCdWlsZGVyOjpEYXRlVGltZUVkaXRC
dWlsZGVyKERhdGVUaW1lRWRpdEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IERhdGVUaW1lRWRpdEVs
ZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMpCisgICAgOiBtX2VkaXRF
bGVtZW50KGVsZW1lbnQpCisgICAgLCBtX3BhcmFtZXRlcnMobGF5b3V0UGFyYW1ldGVycykKK3sK
K30KKworYm9vbCBEYXRlVGltZUVkaXRCdWlsZGVyOjpidWlsZChjb25zdCBTdHJpbmcmIGZvcm1h
dFN0cmluZykKK3sKKyAgICBtX2VkaXRFbGVtZW50LnJlc2V0RmllbGRzKCk7CisgICAgcmV0dXJu
IERhdGVUaW1lRm9ybWF0OjpwYXJzZShmb3JtYXRTdHJpbmcsICp0aGlzKTsKK30KKwordm9pZCBE
YXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdEZpZWxkKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGUg
ZmllbGRUeXBlLCBpbnQgY291bnQpCit7CisgICAgY29uc3QgaW50IGNvdW50Rm9yQWJicmV2aWF0
ZWRNb250aCA9IDM7CisgICAgY29uc3QgaW50IGNvdW50Rm9yRnVsbE1vbnRoID0gNDsKKyAgICBj
b25zdCBpbnQgY291bnRGb3JOYXJyb3dNb250aCA9IDU7CisgICAgRG9jdW1lbnQmIGRvY3VtZW50
ID0gbV9lZGl0RWxlbWVudC5kb2N1bWVudCgpOworCisgICAgc3dpdGNoIChmaWVsZFR5cGUpIHsK
KyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVEYXlPZk1vbnRoOiB7CisgICAgICAg
IG1fZWRpdEVsZW1lbnQuYWRkRmllbGQoRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCwgbV9lZGl0RWxlbWVudCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
Y2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTW9udGg6CisgICAgY2FzZSBEYXRlVGltZUZv
cm1hdDo6RmllbGRUeXBlTW9udGhTdGFuZEFsb25lOiB7CisgICAgICAgIHN3aXRjaCAoY291bnQp
IHsKKyAgICAgICAgY2FzZSBjb3VudEZvck5hcnJvd01vbnRoOgorICAgICAgICBjYXNlIGNvdW50
Rm9yQWJicmV2aWF0ZWRNb250aDogeworICAgICAgICAgICAgYXV0byBmaWVsZCA9IERhdGVUaW1l
U3ltYm9saWNNb250aEZpZWxkRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtX2VkaXRFbGVtZW50
LCBmaWVsZFR5cGUgPT0gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRoID8gbV9wYXJhbWV0
ZXJzLmxvY2FsZS5zaG9ydE1vbnRoTGFiZWxzKCkgOiBtX3BhcmFtZXRlcnMubG9jYWxlLnNob3J0
U3RhbmRBbG9uZU1vbnRoTGFiZWxzKCkpOworICAgICAgICAgICAgbV9lZGl0RWxlbWVudC5hZGRG
aWVsZChmaWVsZCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNl
IGNvdW50Rm9yRnVsbE1vbnRoOiB7CisgICAgICAgICAgICBhdXRvIGZpZWxkID0gRGF0ZVRpbWVT
eW1ib2xpY01vbnRoRmllbGRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIG1fZWRpdEVsZW1lbnQs
IGZpZWxkVHlwZSA9PSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTW9udGggPyBtX3BhcmFtZXRl
cnMubG9jYWxlLm1vbnRoTGFiZWxzKCkgOiBtX3BhcmFtZXRlcnMubG9jYWxlLnN0YW5kQWxvbmVN
b250aExhYmVscygpKTsKKyAgICAgICAgICAgIG1fZWRpdEVsZW1lbnQuYWRkRmllbGQoZmllbGQp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDogeworICAg
ICAgICAgICAgbV9lZGl0RWxlbWVudC5hZGRGaWVsZChEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQsIG1fZWRpdEVsZW1lbnQpKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNhc2Ug
RGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVllYXI6IHsKKyAgICAgICAgbV9lZGl0RWxlbWVudC5h
ZGRGaWVsZChEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0
RWxlbWVudCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZGVmYXVsdDoKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KK30KKwordm9pZCBEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdExp
dGVyYWwoY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIEFTU0VSVCh0ZXh0Lmxlbmd0aCgpKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRl
eHRQc2V1ZG9JZCgiLXdlYmtpdC1kYXRldGltZS1lZGl0LXRleHQiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgYXV0byBlbGVtZW50ID0gSFRNTERpdkVsZW1lbnQ6OmNy
ZWF0ZShtX2VkaXRFbGVtZW50LmRvY3VtZW50KCkpOworICAgIGVsZW1lbnQtPnNldFBzZXVkbyh0
ZXh0UHNldWRvSWQpOworICAgIGVsZW1lbnQtPmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZShtX2Vk
aXRFbGVtZW50LmRvY3VtZW50KCksIHRleHQpKTsKKyAgICBtX2VkaXRFbGVtZW50LmZpZWxkc1dy
YXBwZXJFbGVtZW50KCktPmFwcGVuZENoaWxkKGVsZW1lbnQpOworfQorCitEYXRlVGltZUVkaXRF
bGVtZW50OjpFZGl0Q29udHJvbE93bmVyOjp+RWRpdENvbnRyb2xPd25lcigpCit7Cit9CisKK0Rh
dGVUaW1lRWRpdEVsZW1lbnQ6OkRhdGVUaW1lRWRpdEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50
LCBFZGl0Q29udHJvbE93bmVyJiBlZGl0Q29udHJvbE93bmVyKQorICAgIDogSFRNTERpdkVsZW1l
bnQoZGl2VGFnLCBkb2N1bWVudCkKKyAgICAsIG1fZWRpdENvbnRyb2xPd25lcigmZWRpdENvbnRy
b2xPd25lcikKK3sKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGRhdGVUaW1lRWRpdFBzZXVkb0lkKCItd2Via2l0LWRhdGV0aW1lLWVkaXQiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc2V0UHNldWRvKGRhdGVUaW1l
RWRpdFBzZXVkb0lkKTsKK30KKworRGF0ZVRpbWVFZGl0RWxlbWVudDo6fkRhdGVUaW1lRWRpdEVs
ZW1lbnQoKQoreworfQorCitpbmxpbmUgRWxlbWVudCogRGF0ZVRpbWVFZGl0RWxlbWVudDo6Zmll
bGRzV3JhcHBlckVsZW1lbnQoKSBjb25zdAoreworICAgIEFTU0VSVChmaXJzdENoaWxkKCkpOwor
ICAgIHJldHVybiBkb3duY2FzdDxFbGVtZW50PihmaXJzdENoaWxkKCkpOworfQorCit2b2lkIERh
dGVUaW1lRWRpdEVsZW1lbnQ6OmFkZEZpZWxkKFJlZjxEYXRlVGltZUZpZWxkRWxlbWVudD4gZmll
bGQpCit7CisgICAgaWYgKG1fZmllbGRzLnNpemUoKSA9PSBtX2ZpZWxkcy5jYXBhY2l0eSgpKQor
ICAgICAgICByZXR1cm47CisgICAgbV9maWVsZHMuYXBwZW5kKGZpZWxkKTsKKyAgICBmaWVsZHNX
cmFwcGVyRWxlbWVudCgpLT5hcHBlbmRDaGlsZChmaWVsZCk7Cit9CisKK1JlZjxEYXRlVGltZUVk
aXRFbGVtZW50PiBEYXRlVGltZUVkaXRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50
LCBFZGl0Q29udHJvbE93bmVyJiBlZGl0Q29udHJvbE93bmVyKQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IERhdGVUaW1lRWRpdEVsZW1lbnQoZG9jdW1lbnQsIGVkaXRDb250cm9sT3duZXIp
KTsKK30KKwordm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpsYXlvdXQoY29uc3QgTGF5b3V0UGFy
YW1ldGVycyYgbGF5b3V0UGFyYW1ldGVycykKK3sKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZpZWxkc1dyYXBwZXJQc2V1ZG9JZCgiLXdlYmtp
dC1kYXRldGltZS1lZGl0LWZpZWxkcy13cmFwcGVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworCisgICAgaWYgKCFmaXJzdENoaWxkKCkpIHsKKyAgICAgICAgYXV0byBlbGVt
ZW50ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICAgICAgZWxlbWVu
dC0+c2V0UHNldWRvKGZpZWxkc1dyYXBwZXJQc2V1ZG9JZCk7CisgICAgICAgIGFwcGVuZENoaWxk
KGVsZW1lbnQpOworICAgIH0KKworICAgIEVsZW1lbnQqIGZpZWxkc1dyYXBwZXIgPSBmaWVsZHNX
cmFwcGVyRWxlbWVudCgpOworCisgICAgRGF0ZVRpbWVFZGl0QnVpbGRlciBidWlsZGVyKCp0aGlz
LCBsYXlvdXRQYXJhbWV0ZXJzKTsKKyAgICBOb2RlKiBsYXN0Q2hpbGRUb0JlUmVtb3ZlZCA9IGZp
ZWxkc1dyYXBwZXItPmxhc3RDaGlsZCgpOworICAgIGlmICghYnVpbGRlci5idWlsZChsYXlvdXRQ
YXJhbWV0ZXJzLmRhdGVUaW1lRm9ybWF0KSB8fCBtX2ZpZWxkcy5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgbGFzdENoaWxkVG9CZVJlbW92ZWQgPSBmaWVsZHNXcmFwcGVyLT5sYXN0Q2hpbGQoKTsKKyAg
ICAgICAgYnVpbGRlci5idWlsZChsYXlvdXRQYXJhbWV0ZXJzLmZhbGxiYWNrRGF0ZVRpbWVGb3Jt
YXQpOworICAgIH0KKworICAgIGlmIChsYXN0Q2hpbGRUb0JlUmVtb3ZlZCkgeworICAgICAgICBm
b3IgKE5vZGUqIGNoaWxkTm9kZSA9IGZpZWxkc1dyYXBwZXItPmZpcnN0Q2hpbGQoKTsgY2hpbGRO
b2RlOyBjaGlsZE5vZGUgPSBmaWVsZHNXcmFwcGVyLT5maXJzdENoaWxkKCkpIHsKKyAgICAgICAg
ICAgIGZpZWxkc1dyYXBwZXItPnJlbW92ZUNoaWxkKCpjaGlsZE5vZGUpOworICAgICAgICAgICAg
aWYgKGNoaWxkTm9kZSA9PSBsYXN0Q2hpbGRUb0JlUmVtb3ZlZCkKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKworQXRvbVN0cmluZyBEYXRlVGltZUVkaXRFbGVt
ZW50Ojpsb2NhbGVJZGVudGlmaWVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9lZGl0Q29udHJv
bE93bmVyID8gbV9lZGl0Q29udHJvbE93bmVyLT5sb2NhbGVJZGVudGlmaWVyKCkgOiBudWxsQXRv
bSgpOworfQorCit2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnJlc2V0RmllbGRzKCkKK3sKKyAg
ICBtX2ZpZWxkcy5zaHJpbmsoMCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6c2V0
VmFsdWVBc0RhdGUoY29uc3QgTGF5b3V0UGFyYW1ldGVycyYgbGF5b3V0UGFyYW1ldGVycywgY29u
c3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUpCit7CisgICAgbGF5b3V0KGxheW91dFBhcmFtZXRlcnMp
OworICAgIGZvciAoc2l6ZV90IGZpZWxkSW5kZXggPSAwOyBmaWVsZEluZGV4IDwgbV9maWVsZHMu
c2l6ZSgpOyArK2ZpZWxkSW5kZXgpCisgICAgICAgIG1fZmllbGRzW2ZpZWxkSW5kZXhdLT5zZXRW
YWx1ZUFzRGF0ZShkYXRlKTsKK30KKwordm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpzZXRFbXB0
eVZhbHVlKGNvbnN0IExheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMpCit7CisgICAg
bGF5b3V0KGxheW91dFBhcmFtZXRlcnMpOworICAgIGZvciAoc2l6ZV90IGZpZWxkSW5kZXggPSAw
OyBmaWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpOyArK2ZpZWxkSW5kZXgpCisgICAgICAgIG1f
ZmllbGRzW2ZpZWxkSW5kZXhdLT5zZXRFbXB0eVZhbHVlKCk7Cit9CisKK1N0cmluZyBEYXRlVGlt
ZUVkaXRFbGVtZW50Ojp2YWx1ZSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2VkaXRDb250cm9sT3du
ZXIpCisgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOworICAgIHJldHVybiBtX2VkaXRDb250
cm9sT3duZXItPnZhbHVlRm9yRWRpdENvbnRyb2woKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzUyZmYyMjJiZmNmNTE3MjI5MzNkYzliNTczMTIxODhmMjY3YmQ3OQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQu
aApAQCAtMCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorCisjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMu
aCIKKyNpbmNsdWRlICJEYXRlVGltZUZpZWxkRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIExvY2FsZTsKKworY2xhc3MgRGF0ZVRpbWVFZGl0RWxlbWVudCBmaW5hbCA6
IHB1YmxpYyBIVE1MRGl2RWxlbWVudCwgcHVibGljIERhdGVUaW1lRmllbGRFbGVtZW50OjpGaWVs
ZE93bmVyIHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKERhdGVUaW1lRWRpdEVsZW1lbnQp
OworcHVibGljOgorICAgIGNsYXNzIEVkaXRDb250cm9sT3duZXIgeworICAgIHB1YmxpYzoKKyAg
ICAgICAgdmlydHVhbCB+RWRpdENvbnRyb2xPd25lcigpOworICAgICAgICB2aXJ0dWFsIFN0cmlu
ZyB2YWx1ZUZvckVkaXRDb250cm9sKCkgY29uc3QgPSAwOworICAgICAgICB2aXJ0dWFsIEF0b21T
dHJpbmcgbG9jYWxlSWRlbnRpZmllcigpIGNvbnN0ID0gMDsKKyAgICB9OworCisgICAgc3RydWN0
IExheW91dFBhcmFtZXRlcnMgeworICAgICAgICBTdHJpbmcgZGF0ZVRpbWVGb3JtYXQ7CisgICAg
ICAgIFN0cmluZyBmYWxsYmFja0RhdGVUaW1lRm9ybWF0OworICAgICAgICBMb2NhbGUmIGxvY2Fs
ZTsKKworICAgICAgICBMYXlvdXRQYXJhbWV0ZXJzKExvY2FsZSYgbG9jYWxlKQorICAgICAgICAg
ICAgOiBsb2NhbGUobG9jYWxlKQorICAgICAgICB7CisgICAgICAgIH0KKyAgICB9OworCisgICAg
c3RhdGljIFJlZjxEYXRlVGltZUVkaXRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmLCBFZGl0Q29u
dHJvbE93bmVyJik7CisKKyAgICB2aXJ0dWFsIH5EYXRlVGltZUVkaXRFbGVtZW50KCk7CisgICAg
dm9pZCBhZGRGaWVsZChSZWY8RGF0ZVRpbWVGaWVsZEVsZW1lbnQ+KTsKKyAgICBFbGVtZW50KiBm
aWVsZHNXcmFwcGVyRWxlbWVudCgpIGNvbnN0OworICAgIHZvaWQgcmVzZXRGaWVsZHMoKTsKKyAg
ICB2b2lkIHNldEVtcHR5VmFsdWUoY29uc3QgTGF5b3V0UGFyYW1ldGVycyYpOworICAgIHZvaWQg
c2V0VmFsdWVBc0RhdGUoY29uc3QgTGF5b3V0UGFyYW1ldGVycyYsIGNvbnN0IERhdGVDb21wb25l
bnRzJik7CisgICAgU3RyaW5nIHZhbHVlKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgc3RhdGlj
IGNvbnN0IHNpemVfdCBpbnZhbGlkRmllbGRJbmRleCA9IHN0YXRpY19jYXN0PHNpemVfdD4oLTEp
OworCisgICAgLy8gRGF0ZXRpbWUgY2FuIGJlIHJlcHJlc2VudGVkIGJ5IGF0IG1vc3QgOCBmaWVs
ZHM6CisgICAgLy8gMS4geWVhcgorICAgIC8vIDIuIG1vbnRoCisgICAgLy8gMy4gZGF5LW9mLW1v
bnRoCisgICAgLy8gNC4gaG91cgorICAgIC8vIDUuIG1pbnV0ZQorICAgIC8vIDYuIHNlY29uZAor
ICAgIC8vIDcuIG1pbGxpc2Vjb25kCisgICAgLy8gOC4gQU0vUE0KKyAgICBzdGF0aWMgY29uc3Qg
aW50IG1heGltdW1OdW1iZXJPZkZpZWxkcyA9IDg7CisKKyAgICBEYXRlVGltZUVkaXRFbGVtZW50
KERvY3VtZW50JiwgRWRpdENvbnRyb2xPd25lciYpOworCisgICAgdm9pZCBsYXlvdXQoY29uc3Qg
TGF5b3V0UGFyYW1ldGVycyYpOworCisgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OkZpZWxk
T3duZXIgZnVuY3Rpb25zOgorICAgIEF0b21TdHJpbmcgbG9jYWxlSWRlbnRpZmllcigpIGNvbnN0
IGZpbmFsOworCisgICAgVmVjdG9yPFJlZjxEYXRlVGltZUZpZWxkRWxlbWVudD4sIG1heGltdW1O
dW1iZXJPZkZpZWxkcz4gbV9maWVsZHM7CisgICAgRWRpdENvbnRyb2xPd25lciogbV9lZGl0Q29u
dHJvbE93bmVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjA5MjUwMzBj
OTgyY2YwN2MxY2IyNTdhNjJhZDIxODc1NTg0MWQ3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmNwcApAQCAtMCwwICsx
LDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGF0ZVRp
bWVGaWVsZEVsZW1lbnQuaCIKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVT
KQorCisjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
KyNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1Mb2NhbGUu
aCIKKyNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERhdGVUaW1lRmllbGRFbGVtZW50KTsKKworRGF0ZVRp
bWVGaWVsZEVsZW1lbnQ6OkZpZWxkT3duZXI6On5GaWVsZE93bmVyKCkKK3sKK30KKworRGF0ZVRp
bWVGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lRmllbGRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwg
RmllbGRPd25lciYgZmllbGRPd25lcikKKyAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgZG9j
dW1lbnQpCisgICAgLCBtX2ZpZWxkT3duZXIoJmZpZWxkT3duZXIpCit7Cit9CisKK3ZvaWQgRGF0
ZVRpbWVGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUoY29uc3QgQXRvbVN0cmluZyYgcHNldWRvKQor
eworICAgIHNldFBzZXVkbyhwc2V1ZG8pOworfQorCitMb2NhbGUmIERhdGVUaW1lRmllbGRFbGVt
ZW50Ojpsb2NhbGVGb3JPd25lcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCkuZ2V0
Q2FjaGVkTG9jYWxlKGxvY2FsZUlkZW50aWZpZXIoKSk7Cit9CisKK0F0b21TdHJpbmcgRGF0ZVRp
bWVGaWVsZEVsZW1lbnQ6OmxvY2FsZUlkZW50aWZpZXIoKSBjb25zdAoreworICAgIHJldHVybiBt
X2ZpZWxkT3duZXIgPyBtX2ZpZWxkT3duZXItPmxvY2FsZUlkZW50aWZpZXIoKSA6IG51bGxBdG9t
KCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OnVwZGF0ZVZpc2libGVWYWx1ZSgp
Cit7CisgICAgaWYgKCFmaXJzdENoaWxkKCkpCisgICAgICAgIGFwcGVuZENoaWxkKFRleHQ6OmNy
ZWF0ZShkb2N1bWVudCgpLCBlbXB0eVN0cmluZygpKSk7CisKKyAgICBUZXh0JiB0ZXh0Tm9kZSA9
IGRvd25jYXN0PFRleHQ+KCpmaXJzdENoaWxkKCkpOworICAgIGNvbnN0IFN0cmluZyBuZXdWaXNp
YmxlVmFsdWUgPSB2aXNpYmxlVmFsdWUoKTsKKyAgICBpZiAodGV4dE5vZGUud2hvbGVUZXh0KCkg
PT0gbmV3VmlzaWJsZVZhbHVlKQorICAgICAgICByZXR1cm47CisKKyAgICB0ZXh0Tm9kZS5yZXBs
YWNlV2hvbGVUZXh0KG5ld1Zpc2libGVWYWx1ZSk7Cit9CisKK2Jvb2wgRGF0ZVRpbWVGaWVsZEVs
ZW1lbnQ6OnN1cHBvcnRzRm9jdXMoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREFURV9BTkRfVElNRV9J
TlBVVF9UWVBFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lRmllbGRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZp
ZWxkRWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwMzE1OGY3MjllNGU3YTBhNzUzZTkzMTlhMmUzYzAz
OGI3ZmYwMTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZUZpZWxkRWxlbWVudC5oCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKKyNpbmNs
dWRlICJIVE1MRGl2RWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERh
dGVDb21wb25lbnRzOworCitjbGFzcyBEYXRlVGltZUZpZWxkRWxlbWVudCA6IHB1YmxpYyBIVE1M
RGl2RWxlbWVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChEYXRlVGltZUZpZWxkRWxl
bWVudCk7CitwdWJsaWM6CisgICAgY2xhc3MgRmllbGRPd25lciB7CisgICAgcHVibGljOgorICAg
ICAgICB2aXJ0dWFsIH5GaWVsZE93bmVyKCk7CisgICAgICAgIHZpcnR1YWwgQXRvbVN0cmluZyBs
b2NhbGVJZGVudGlmaWVyKCkgY29uc3QgPSAwOworICAgIH07CisKKyAgICB2aXJ0dWFsIGJvb2wg
aGFzVmFsdWUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEVtcHR5VmFsdWUoKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRz
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzSW50ZWdlcihpbnQpID0gMDsKKyAg
ICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyB2
aXNpYmxlVmFsdWUoKSBjb25zdCA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICBEYXRlVGltZUZpZWxk
RWxlbWVudChEb2N1bWVudCYsIEZpZWxkT3duZXImKTsKKyAgICB2b2lkIGluaXRpYWxpemUoY29u
c3QgQXRvbVN0cmluZyYgcHNldWRvKTsKKyAgICBMb2NhbGUmIGxvY2FsZUZvck93bmVyKCkgY29u
c3Q7CisgICAgQXRvbVN0cmluZyBsb2NhbGVJZGVudGlmaWVyKCkgY29uc3Q7CisgICAgdm9pZCB1
cGRhdGVWaXNpYmxlVmFsdWUoKTsKKyAgICB2aXJ0dWFsIGludCB2YWx1ZUFzSW50ZWdlcigpIGNv
bnN0ID0gMDsKKworcHJpdmF0ZToKKyAgICBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCBvdmVy
cmlkZTsKKworICAgIEZpZWxkT3duZXIqIG1fZmllbGRPd25lcjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVs
ZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVt
ZW50cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMTI0YTAwMTIyZDBlZjhjMTA4MTA1MjZhOTQ5N2E3OWY3ZmQ5
YWY1YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lRmllbGRFbGVtZW50cy5jcHAKQEAgLTAsMCArMSwxMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEYXRlVGltZUZpZWxkRWxlbWVudHMuaCIKKworI2lm
IEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorCisjaW5jbHVkZSAiRGF0ZUNvbXBv
bmVudHMuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChEYXRlVGltZURheUZpZWxk
RWxlbWVudCk7CisKK0RhdGVUaW1lRGF5RmllbGRFbGVtZW50OjpEYXRlVGltZURheUZpZWxkRWxl
bWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIpCisgICAgOiBE
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsICItLSJfcykK
K3sKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IGRheVBzdWVkb0lkKCItd2Via2l0LWRhdGV0aW1lLWVkaXQtZGF5LWZpZWxkIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIGluaXRpYWxpemUoZGF5UHN1ZWRvSWQpOwor
fQorCitSZWY8RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ+IERhdGVUaW1lRGF5RmllbGRFbGVtZW50
OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyKQorewor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERhdGVUaW1lRGF5RmllbGRFbGVtZW50KGRvY3VtZW50
LCBmaWVsZE93bmVyKSk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OnNldFZh
bHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQoreworICAgIHNldFZhbHVlQXNJ
bnRlZ2VyKGRhdGUubW9udGhEYXkoKSk7Cit9CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1Q
TChEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50KTsKKworRGF0ZVRpbWVNb250aEZpZWxkRWxlbWVu
dDo6RGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEZpZWxkT3du
ZXImIGZpZWxkT3duZXIpCisgICAgOiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoZG9jdW1l
bnQsIGZpZWxkT3duZXIsICItLSJfcykKK3sKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vbnRoUHN1ZWRvSWQoIi13ZWJraXQtZGF0ZXRpbWUt
ZWRpdC1tb250aC1maWVsZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBpbml0aWFsaXplKG1vbnRoUHN1ZWRvSWQpOworfQorCitSZWY8RGF0ZVRpbWVNb250aEZpZWxk
RWxlbWVudD4gRGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1
bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyKSk7Cit9CisK
K3ZvaWQgRGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0
ZUNvbXBvbmVudHMmIGRhdGUpCit7CisgICAgc2V0VmFsdWVBc0ludGVnZXIoZGF0ZS5tb250aCgp
ICsgMSk7Cit9CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChEYXRlVGltZVN5bWJvbGlj
TW9udGhGaWVsZEVsZW1lbnQpOworCitEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6
OkRhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEZp
ZWxkT3duZXImIGZpZWxkT3duZXIsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYWJlbHMpCisgICAg
OiBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCBsYWJl
bHMpCit7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBtb250aFBzdWVkb0lkKCItd2Via2l0LWRhdGV0aW1lLWVkaXQtbW9udGgtZmllbGQiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgaW5pdGlhbGl6ZShtb250aFBz
dWVkb0lkKTsKK30KKworUmVmPERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudD4gRGF0
ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50
LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFiZWxzKQor
eworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxl
bWVudChkb2N1bWVudCwgZmllbGRPd25lciwgbGFiZWxzKSk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVT
eW1ib2xpY01vbnRoRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9u
ZW50cyYgZGF0ZSkKK3sKKyAgICBzZXRWYWx1ZUFzSW50ZWdlcihkYXRlLm1vbnRoKCkpOworfQor
CitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50KTsK
KworRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50OjpEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQoRG9j
dW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyKQorICAgIDogRGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCAiLS0tLSJfcykKK3sKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHllYXJQ
c3VlZG9JZCgiLXdlYmtpdC1kYXRldGltZS1lZGl0LXllYXItZmllbGQiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgaW5pdGlhbGl6ZSh5ZWFyUHN1ZWRvSWQpOworfQor
CitSZWY8RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50PiBEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQ6
OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50KGRvY3VtZW50
LCBmaWVsZE93bmVyKSk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50OjpzZXRW
YWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkKK3sKKyAgICBzZXRWYWx1ZUFz
SW50ZWdlcihkYXRlLmZ1bGxZZWFyKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmM4Y2QxNGRmNjk5YjczN2E2ODk2NjM0YTY5MzZkNWViMTViZmEzNwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5o
CkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKKyNpbmNsdWRlICJEYXRlVGltZU51bWVyaWNG
aWVsZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Lmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQg
ZmluYWwgOiBwdWJsaWMgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50IHsKKyAgICBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEKERhdGVUaW1lRGF5RmllbGRFbGVtZW50KTsKKworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYsIEZp
ZWxkT3duZXImKTsKKworcHJpdmF0ZToKKyAgICBEYXRlVGltZURheUZpZWxkRWxlbWVudChEb2N1
bWVudCYsIEZpZWxkT3duZXImKTsKKworICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0
aW9uczoKKyAgICB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJikgZmlu
YWw7Cit9OworCitjbGFzcyBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50IGZpbmFsIDogcHVibGlj
IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RChEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50KTsKKworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
RGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudD4gY3JlYXRlKERvY3VtZW50JiwgRmllbGRPd25lciYp
OworCitwcml2YXRlOgorICAgIERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQoRG9jdW1lbnQmLCBG
aWVsZE93bmVyJik7CisKKyAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnM6Cisg
ICAgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYpIGZpbmFsOworfTsK
KworY2xhc3MgRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50IGZpbmFsIDogcHVibGlj
IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RUQoRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50KTsKKworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8RGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50PiBjcmVhdGUoRG9jdW1l
bnQmLCBGaWVsZE93bmVyJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKworcHJpdmF0ZToKKyAg
ICBEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQoRG9jdW1lbnQmLCBGaWVsZE93bmVy
JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKworICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50
IGZ1bmN0aW9uczoKKyAgICB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRz
JikgZmluYWw7Cit9OworCitjbGFzcyBEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQgZmluYWwgOiBw
dWJsaWMgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50IHsKKyAgICBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEKERhdGVUaW1lWWVhckZpZWxkRWxlbWVudCk7CisKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPERhdGVUaW1lWWVhckZpZWxkRWxlbWVudD4gY3JlYXRlKERvY3VtZW50JiwgRmllbGRPd25l
ciYpOworCitwcml2YXRlOgorICAgIERhdGVUaW1lWWVhckZpZWxkRWxlbWVudChEb2N1bWVudCYs
IEZpZWxkT3duZXImKTsKKworICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9uczoK
KyAgICB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJikgZmluYWw7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREFURV9BTkRf
VElNRV9JTlBVVF9UWVBFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViNzdiNTVm
MmQzOTcwNDBjNTMxMWQ1NWQ1YzhmN2FmNWQ3NzMxYTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwCkBA
IC0wLDAgKzEsOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCIKKworI2lmIEVOQUJMRShEQVRFX0FORF9U
SU1FX0lOUFVUX1RZUEVTKQorCisjaW5jbHVkZSAiUGxhdGZvcm1Mb2NhbGUuaCIKKyNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9N
QUtFX0lTT19BTExPQ0FURURfSU1QTChEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQpOworCitE
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChE
b2N1bWVudCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGNvbnN0IFN0cmluZyYg
cGxhY2Vob2xkZXIpCisgICAgOiBEYXRlVGltZUZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRP
d25lcikKKyAgICAsIG1fcGxhY2Vob2xkZXIocGxhY2Vob2xkZXIpCisgICAgLCBtX3ZhbHVlKDAp
CisgICAgLCBtX2hhc1ZhbHVlKGZhbHNlKQoreworfQorCitTdHJpbmcgRGF0ZVRpbWVOdW1lcmlj
RmllbGRFbGVtZW50Ojpmb3JtYXRWYWx1ZShpbnQgdmFsdWUpIGNvbnN0Cit7CisgICAgTG9jYWxl
JiBsb2NhbGUgPSBsb2NhbGVGb3JPd25lcigpOworICAgIHJldHVybiBsb2NhbGUuY29udmVydFRv
TG9jYWxpemVkTnVtYmVyKG1ha2VTdHJpbmcocGFkKCcwJywgMiwgdmFsdWUpKSk7Cit9CisKK2Jv
b2wgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpoYXNWYWx1ZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1faGFzVmFsdWU7Cit9CisKK3ZvaWQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50
Ojppbml0aWFsaXplKGNvbnN0IEF0b21TdHJpbmcmIHBzZXVkbykKK3sKKyAgICBEYXRlVGltZUZp
ZWxkRWxlbWVudDo6aW5pdGlhbGl6ZShwc2V1ZG8pOworfQorCit2b2lkIERhdGVUaW1lTnVtZXJp
Y0ZpZWxkRWxlbWVudDo6c2V0RW1wdHlWYWx1ZSgpCit7CisgICAgbV92YWx1ZSA9IDA7CisgICAg
bV9oYXNWYWx1ZSA9IGZhbHNlOworICAgIHVwZGF0ZVZpc2libGVWYWx1ZSgpOworfQorCit2b2lk
IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0ludGVnZXIoaW50IHZhbHVl
KQoreworICAgIG1fdmFsdWUgPSB2YWx1ZTsKKyAgICBtX2hhc1ZhbHVlID0gdHJ1ZTsKKyAgICB1
cGRhdGVWaXNpYmxlVmFsdWUoKTsKK30KKworU3RyaW5nIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxl
bWVudDo6dmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBtX2hhc1ZhbHVlID8gZm9ybWF0VmFs
dWUobV92YWx1ZSkgOiBlbXB0eVN0cmluZygpOworfQorCitpbnQgRGF0ZVRpbWVOdW1lcmljRmll
bGRFbGVtZW50Ojp2YWx1ZUFzSW50ZWdlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faGFzVmFs
dWUgPyBtX3ZhbHVlIDogLTE7Cit9CisKK1N0cmluZyBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1l
bnQ6OnZpc2libGVWYWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faGFzVmFsdWUgPyB2YWx1
ZSgpIDogbV9wbGFjZWhvbGRlcjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjViZTM5ZTRjYjY3ZjU3ZjQ0ZmVmYmQ0YmI4ZmExMWNhM2Q0NTQyY2YKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNG
aWVsZEVsZW1lbnQuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorCisjaW5jbHVkZSAiRGF0
ZVRpbWVGaWVsZEVsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEYXRl
VGltZU51bWVyaWNGaWVsZEVsZW1lbnQgOiBwdWJsaWMgRGF0ZVRpbWVGaWVsZEVsZW1lbnQgewor
ICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KTsK
K3B1YmxpYzoKKworcHJvdGVjdGVkOgorICAgIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChE
b2N1bWVudCYsIEZpZWxkT3duZXImLCBjb25zdCBTdHJpbmcmKTsKKworICAgIC8vIERhdGVUaW1l
RmllbGRFbGVtZW50IGZ1bmN0aW9uczoKKyAgICBib29sIGhhc1ZhbHVlKCkgY29uc3QgZmluYWw7
CisgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IEF0b21TdHJpbmcmKTsKKyAgICB2b2lkIHNldEVt
cHR5VmFsdWUoKSBmaW5hbDsKKyAgICB2b2lkIHNldFZhbHVlQXNJbnRlZ2VyKGludCkgb3ZlcnJp
ZGU7CisgICAgaW50IHZhbHVlQXNJbnRlZ2VyKCkgY29uc3QgZmluYWw7CisgICAgU3RyaW5nIHZp
c2libGVWYWx1ZSgpIGNvbnN0IGZpbmFsOworCitwcml2YXRlOgorICAgIC8vIERhdGVUaW1lRmll
bGRFbGVtZW50IGZ1bmN0aW9uczoKKyAgICBTdHJpbmcgdmFsdWUoKSBjb25zdCBmaW5hbDsKKwor
ICAgIFN0cmluZyBmb3JtYXRWYWx1ZShpbnQpIGNvbnN0OworCisgICAgY29uc3QgU3RyaW5nIG1f
cGxhY2Vob2xkZXI7CisgICAgaW50IG1fdmFsdWU7CisgICAgYm9vbCBtX2hhc1ZhbHVlOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEVfQU5EX1RJ
TUVfSU5QVVRfVFlQRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkYzIyYWVm
MjgwMmRmY2M0NTFhYzBlNmMyOTIwZjIyYTUwZWI4YWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcApA
QCAtMCwwICsxLDEwNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaCIKKworI2lmIEVOQUJMRShEQVRFX0FO
RF9USU1FX0lOUFVUX1RZUEVTKQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
VGV4dEJyZWFrSXRlcmF0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCk7CisKK3N0YXRp
YyBBdG9tU3RyaW5nIG1ha2VWaXNpYmxlRW1wdHlWYWx1ZShjb25zdCBWZWN0b3I8U3RyaW5nPiYg
c3ltYm9scykKK3sKKyAgICB1bnNpZ25lZCBtYXhpbXVtTGVuZ3RoID0gMDsKKyAgICBmb3IgKHVu
c2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCBzeW1ib2xzLnNpemUoKTsgKytpbmRleCkKKyAgICAg
ICAgbWF4aW11bUxlbmd0aCA9IHN0ZDo6bWF4KG1heGltdW1MZW5ndGgsIG51bUdyYXBoZW1lQ2x1
c3RlcnMoc3ltYm9sc1tpbmRleF0pKTsKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAg
YnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkobWF4aW11bUxlbmd0aCk7CisgICAgZm9yICh1bnNpZ25l
ZCBsZW5ndGggPSAwOyBsZW5ndGggPCBtYXhpbXVtTGVuZ3RoOyArK2xlbmd0aCkKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQoJy0nKTsKKyAgICByZXR1cm4gYnVpbGRlci50b0F0b21TdHJpbmcoKTsK
K30KKworRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxk
RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBzeW1ib2xzKQorICAgIDogRGF0ZVRpbWVGaWVsZEVsZW1lbnQoZG9j
dW1lbnQsIGZpZWxkT3duZXIpCisgICAgLCBtX3N5bWJvbHMoc3ltYm9scykKKyAgICAsIG1fdmlz
aWJsZUVtcHR5VmFsdWUobWFrZVZpc2libGVFbXB0eVZhbHVlKHN5bWJvbHMpKQorICAgICwgbV9z
ZWxlY3RlZEluZGV4KC0xKQoreworICAgIEFTU0VSVCghc3ltYm9scy5pc0VtcHR5KCkpOworfQor
Citib29sIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6Omhhc1ZhbHVlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9zZWxlY3RlZEluZGV4ID49IDA7Cit9CisKK3ZvaWQgRGF0ZVRpbWVTeW1i
b2xpY0ZpZWxkRWxlbWVudDo6aW5pdGlhbGl6ZShjb25zdCBBdG9tU3RyaW5nJiBwc2V1ZG8pCit7
CisgICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUocHNldWRvKTsKK30KKwordm9p
ZCBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpzZXRFbXB0eVZhbHVlKCkKK3sKKyAgICBt
X3NlbGVjdGVkSW5kZXggPSBpbnZhbGlkSW5kZXg7CisgICAgdXBkYXRlVmlzaWJsZVZhbHVlKCk7
Cit9CisKK3ZvaWQgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0ludGVn
ZXIoaW50IG5ld1NlbGVjdGVkSW5kZXgpCit7CisgICAgbV9zZWxlY3RlZEluZGV4ID0gc3RkOjpt
YXgoMCwgc3RkOjptaW4obmV3U2VsZWN0ZWRJbmRleCwgc3RhdGljX2Nhc3Q8aW50PihtX3N5bWJv
bHMuc2l6ZSgpIC0gMSkpKTsKKyAgICB1cGRhdGVWaXNpYmxlVmFsdWUoKTsKK30KKworU3RyaW5n
IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gaGFzVmFsdWUoKSA/IG1fc3ltYm9sc1ttX3NlbGVjdGVkSW5kZXhdIDogZW1wdHlTdHJpbmco
KTsKK30KKworaW50IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnZhbHVlQXNJbnRlZ2Vy
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zZWxlY3RlZEluZGV4OworfQorCitTdHJpbmcgRGF0
ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6dmlzaWJsZUVtcHR5VmFsdWUoKSBjb25zdAorewor
ICAgIHJldHVybiBtX3Zpc2libGVFbXB0eVZhbHVlOworfQorCitTdHJpbmcgRGF0ZVRpbWVTeW1i
b2xpY0ZpZWxkRWxlbWVudDo6dmlzaWJsZVZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGFz
VmFsdWUoKSA/IG1fc3ltYm9sc1ttX3NlbGVjdGVkSW5kZXhdIDogdmlzaWJsZUVtcHR5VmFsdWUo
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEVf
QU5EX1RJTUVfSU5QVVRfVFlQRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjEzMTFm
YmEzYjAwMDU4OGRmNmZhYTM3MGEzMTJjNTA0MDg2ODI1NAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaApA
QCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShE
QVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorCisjaW5jbHVkZSAiRGF0ZVRpbWVGaWVsZEVsZW1l
bnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEYXRlVGltZVN5bWJvbGljRmll
bGRFbGVtZW50IDogcHVibGljIERhdGVUaW1lRmllbGRFbGVtZW50IHsKKyAgICBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEKERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQpOworcHJvdGVjdGVkOgor
ICAgIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQoRG9jdW1lbnQmLCBGaWVsZE93bmVyJiwg
Y29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKyAgICBzaXplX3Qgc3ltYm9sc1NpemUoKSBjb25zdCB7
IHJldHVybiBtX3N5bWJvbHMuc2l6ZSgpOyB9CisgICAgYm9vbCBoYXNWYWx1ZSgpIGNvbnN0IGZp
bmFsOworICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBBdG9tU3RyaW5nJiBwc2V1ZG8pOworICAg
IHZvaWQgc2V0RW1wdHlWYWx1ZSgpIGZpbmFsOworICAgIHZvaWQgc2V0VmFsdWVBc0ludGVnZXIo
aW50KSBmaW5hbDsKKyAgICBpbnQgdmFsdWVBc0ludGVnZXIoKSBjb25zdCBmaW5hbDsKKworcHJp
dmF0ZToKKyAgICBzdGF0aWMgY29uc3QgaW50IGludmFsaWRJbmRleCA9IC0xOworCisgICAgU3Ry
aW5nIHZpc2libGVFbXB0eVZhbHVlKCkgY29uc3Q7CisKKyAgICAvLyBEYXRlVGltZUZpZWxkRWxl
bWVudCBmdW5jdGlvbnM6CisgICAgU3RyaW5nIHZhbHVlKCkgY29uc3QgZmluYWw7CisgICAgU3Ry
aW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0IGZpbmFsOworCisgICAgY29uc3QgVmVjdG9yPFN0cmlu
Zz4gbV9zeW1ib2xzOworCisgICAgY29uc3QgQXRvbVN0cmluZyBtX3Zpc2libGVFbXB0eVZhbHVl
OworICAgIGludCBtX3NlbGVjdGVkSW5kZXg7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MueWFtbAppbmRleCAyMmM5ZjZhYjIzMDAxYTI5MWM1ZDM0NTdjMjE0YjNlMjA1
NTlmYzg4Li4yZWY5MzEwY2ExNWE3YzEwYzY2OTU2ZGRlZjJkZWRhNWNkMzA2OGY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC05NzQsNiArOTc0LDEwIEBAIGlucHV0VHlwZVdlZWtF
bmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogICBjb25kaXRpb25hbDogSU5QVVRfVFlQRV9XRUVL
CiAKK2RhdGVUaW1lSW5wdXRzRWRpdGFibGVDb21wb25lbnRzRW5hYmxlZDoKKyAgaW5pdGlhbDog
ZmFsc2UKKyAgY29uZGl0aW9uYWw6IERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMKKwogIyBEZXBy
ZWNhdGVkCiAKIGljZUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQ6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCA4OGFlNmFlMmQ5YTM5NzQ3NjFjYjk3MjQ2NDdm
YjM2MTNkY2I1NzYyLi4yNDhjYjdkM2YyZWIzYTU3ZTY5Mzc0Mjc1ODQ2YjJjMWNmYmU4ODg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTE4MzMsNiArMTgz
MywxNSBAQCBJbnB1dFR5cGVXZWVrRW5hYmxlZDoKICAgY2F0ZWdvcnk6IGludGVybmFsCiAgIGNv
bmRpdGlvbjogRU5BQkxFKElOUFVUX1RZUEVfV0VFSykKIAorRGF0ZVRpbWVJbnB1dHNFZGl0YWJs
ZUNvbXBvbmVudHNFbmFibGVkOgorICB0eXBlOiBib29sCisgIGRlZmF1bHRWYWx1ZTogREVGQVVM
VF9EQVRFX1RJTUVfSU5QVVRTX0VESVRBQkxFX0NPTVBPTkVOVFNfRU5BQkxFRAorICBodW1hblJl
YWRhYmxlTmFtZTogIkRhdGUvVGltZSBpbnB1dHMgaGF2ZSBlZGl0YWJsZSBjb21wb25lbnRzIgor
ICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgbXVsdGlwbGUgZWRpdGFibGUgY29t
cG9uZW50cyBpbiBkYXRlL3RpbWUgaW5wdXRzIgorICBjYXRlZ29yeTogaW50ZXJuYWwKKyAgd2Vi
Y29yZU5hbWU6IGRhdGVUaW1lSW5wdXRzRWRpdGFibGVDb21wb25lbnRzRW5hYmxlZAorICBjb25k
aXRpb246IEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorCiBEYXRhTGlzdEVsZW1l
bnRFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZTogREVGQVVMVF9EQVRBTElT
VF9FTEVNRU5UX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVy
ZW5jZXNEZWZhdWx0VmFsdWVzLmgKaW5kZXggN2M1OWIyNTc4YjE2N2IxZWQ1MmViN2M2YzM5ZGE0
YmU4ZDA4MTIwYy4uZGE4MDQ4MDAwNjIyZWM5MWM5MGNkNTk4MzAwYjlkNWM4OTUwNzY3MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVz
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVz
LmgKQEAgLTIzOCw2ICsyMzgsMTIgQEAKICNkZWZpbmUgREVGQVVMVF9EQVRBTElTVF9FTEVNRU5U
X0VOQUJMRUQgdHJ1ZQogI2VuZGlmCiAKKyNpZiBQTEFURk9STShNQUMpCisjZGVmaW5lIERFRkFV
TFRfREFURV9USU1FX0lOUFVUU19FRElUQUJMRV9DT01QT05FTlRTX0VOQUJMRUQgdHJ1ZQorI2Vs
c2UKKyNkZWZpbmUgREVGQVVMVF9EQVRFX1RJTUVfSU5QVVRTX0VESVRBQkxFX0NPTVBPTkVOVFNf
RU5BQkxFRCBmYWxzZQorI2VuZGlmCisKICNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0o
TUFDQ0FUQUxZU1QpICYmICFQTEFURk9STShBUFBMRVRWKQogI2RlZmluZSBERUZBVUxUX0lOUFVU
X1RZUEVfREFURV9FTkFCTEVEIHRydWUKICNkZWZpbmUgREVGQVVMVF9JTlBVVF9UWVBFX0RBVEVU
SU1FTE9DQUxfRU5BQkxFRCB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzc2ZTQyNDY4NWNmODA3Njg1M2ZhM2YwZTJl
ZmMwMDk2OTA2ZTVmZC4uMzk0ZTU3ZmQ1OTg3ZmNlNjJmOGFkZDQ0OTQzZDRjZTNkODk2N2NjZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA4LTA2ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVy
dGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIERhdGUgaW5wdXRzIHNob3VsZCBjb250
YWluIGVkaXRhYmxlIGNvbXBvbmVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNTE1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJlYmFzZWxpbmVkIGV4aXN0aW5nIHRlc3RzIHRvIG1hdGNoIG5ldyBh
cHBlYXJhbmNlLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL2RhdGUv
ZGF0ZS1pbnB1dC1yZW5kZXJpbmctYmFzaWMtZXhwZWN0ZWQudHh0OgorICAgICAgICAmIHBsYXRm
b3JtL21hYy13azIvZmFzdC9mb3Jtcy90aW1lL3RpbWUtYXBwZWFyYW5jZS1iYXNpYy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvZmFzdC9mb3Jtcy90aW1l
L3RpbWUtaW5wdXQtcmVuZGVyaW5nLWJhc2ljLWV4cGVjdGVkLnR4dDoKKwogMjAyMC0wOC0wNCAg
QW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgRGlzYWJs
ZSBpc29sYXRlZC10cmVlLW1vZGUtb24tb2ZmLmh0bWwgYmVjYXVzZSBpdCBpcyBjYXVzaW5nIG90
aGVyIHRlc3QgZmFpbHVyZXMuLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMi9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1pbnB1dC1yZW5kZXJpbmctYmFzaWMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1p
bnB1dC1yZW5kZXJpbmctYmFzaWMtZXhwZWN0ZWQudHh0CmluZGV4IDViYjU3ODcwMzdhNDkzZjI4
NTBiZmIyMzg5YmI3ODhhZDhiOTg4YjEuLjM4NjBiNmFiNGU3ZTgxZWZlZGM3Mzk2OTA2ODFhZjc0
MGFkZDhiYzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9m
b3Jtcy9kYXRlL2RhdGUtaW5wdXQtcmVuZGVyaW5nLWJhc2ljLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWlucHV0LXJl
bmRlcmluZy1iYXNpYy1leHBlY3RlZC50eHQKQEAgLTMsMTYgKzMsNDYgQEAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyQmxv
Y2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAogICAgIFJlbmRlckJvZHkge0JPRFl9IGF0
ICg4LDgpIHNpemUgNzg0eDU4NAotICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxMTAsMykg
c2l6ZSA0eDE4Ci0gICAgICAgIHRleHQgcnVuIGF0ICgxMTAsMykgd2lkdGggNDogIiAiCisgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDExMCwyKSBzaXplIDR4MTgKKyAgICAgICAgdGV4dCBy
dW4gYXQgKDExMCwyKSB3aWR0aCA0OiAiICIKICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDB4MAotbGF5ZXIgYXQgKDgsMTApIHNpemUgMTEweDIxIGNsaXAgYXQgKDEwLDEy
KSBzaXplIDEwNngxNwotICBSZW5kZXJGbGV4aWJsZUJveCB7SU5QVVR9IGF0ICgwLDIpIHNpemUg
MTEweDIxIFtiZ2NvbG9yPSNGRkZGRkZdIFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCi0g
ICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDcsNCkgc2l6ZSA1OXgxMwotICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNTl4MTMKLSAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggNTk6ICJBcHIgMSwgMTk3NiIKLWxheWVyIGF0ICgxMjIsMTApIHNpemUgMTEweDIxIGNs
aXAgYXQgKDEyNCwxMikgc2l6ZSAxMDZ4MTcKLSAgUmVuZGVyRmxleGlibGVCb3gge0lOUFVUfSBh
dCAoMTE0LDIpIHNpemUgMTEweDIxIFtiZ2NvbG9yPSNGRkZGRkZdIFtib3JkZXI6ICgycHggaW5z
ZXQgIzAwMDAwMCldCi0gICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDI0LDQpIHNpemUgNTl4MTMK
LSAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDU5eDEzCi0gICAgICAgIHRl
eHQgcnVuIGF0ICgwLDApIHdpZHRoIDU5OiAiQXByIDEsIDE5NzYiCitsYXllciBhdCAoOCwxMCkg
c2l6ZSAxMTB4MTkgY2xpcCBhdCAoMTAsMTIpIHNpemUgMTA2eDE1CisgIFJlbmRlckZsZXhpYmxl
Qm94IHtJTlBVVH0gYXQgKDAsMikgc2l6ZSAxMTB4MTkgW2JnY29sb3I9I0ZGRkZGRl0gW2JvcmRl
cjogKDJweCBpbnNldCAjMDAwMDAwKV0KK2xheWVyIGF0ICgxMSwxMykgc2l6ZSA2NHgxMyBzY3Jv
bGxIZWlnaHQgMTQKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDMsMykgc2l6ZSA2NXgxMworICAg
IFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNjV4MTMKKyAgICAgIFJlbmRlcklubGlu
ZSB7RElWfSBhdCAoMCwwKSBzaXplIDE3eDE1CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMSwwKSBzaXplIDE1eDEzCisgICAgICAgICAgdGV4dCBydW4gYXQgKDEsMCkgd2lkdGggMTU6
ICIwNCIKKyAgICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDR4MTMKKyAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNiwwKSBzaXplIDR4MTMKKyAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMTYsMCkgd2lkdGggNDogIi8iCisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQg
KDAsMCkgc2l6ZSAxNXgxNQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDIwLDApIHNp
emUgMTN4MTMKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjAsMCkgd2lkdGggMTM6ICIwMSIKKyAg
ICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDV4MTMKKyAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgzMywwKSBzaXplIDV4MTMKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MzMsMCkgd2lkdGggNTogIi8iCisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6
ZSAyOHgxNQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDM4LDApIHNpemUgMjZ4MTMK
KyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzgsMCkgd2lkdGggMjY6ICIxOTc2IgorbGF5ZXIgYXQg
KDEyMiwxMCkgc2l6ZSAxMTB4MTkgY2xpcCBhdCAoMTI0LDEyKSBzaXplIDEwNngxNQorICBSZW5k
ZXJGbGV4aWJsZUJveCB7SU5QVVR9IGF0ICgxMTQsMikgc2l6ZSAxMTB4MTkgW2JnY29sb3I9I0ZG
RkZGRl0gW2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KK2xheWVyIGF0ICgxNjUsMTMpIHNp
emUgNjR4MTMgc2Nyb2xsSGVpZ2h0IDE0CisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg0MiwzKSBz
aXplIDY1eDEzCisgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA2NXgxMworICAg
ICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgMTd4MTUKKyAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgxLDApIHNpemUgMTV4MTMKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MSwwKSB3aWR0aCAxNTogIjA0IgorICAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNp
emUgNHgxMworICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE2LDApIHNpemUgNHgxMwor
ICAgICAgICAgIHRleHQgcnVuIGF0ICgxNiwwKSB3aWR0aCA0OiAiLyIKKyAgICAgIFJlbmRlcklu
bGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDE1eDE1CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMjAsMCkgc2l6ZSAxM3gxMworICAgICAgICAgIHRleHQgcnVuIGF0ICgyMCwwKSB3aWR0
aCAxMzogIjAxIgorICAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgNXgxMwor
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMzLDApIHNpemUgNXgxMworICAgICAgICAg
IHRleHQgcnVuIGF0ICgzMywwKSB3aWR0aCA1OiAiLyIKKyAgICAgIFJlbmRlcklubGluZSB7RElW
fSBhdCAoMCwwKSBzaXplIDI4eDE1CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMzgs
MCkgc2l6ZSAyNngxMworICAgICAgICAgIHRleHQgcnVuIGF0ICgzOCwwKSB3aWR0aCAyNjogIjE5
NzYiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMv
dGltZS90aW1lLWFwcGVhcmFuY2UtYmFzaWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL3RpbWUvdGltZS1hcHBlYXJhbmNlLWJhc2ljLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yZGQwYWQ1NTk3ZjY5ZTcwZDYxYmM1NmVlNjQ4NzhhMGFhOGFm
ODQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0
L2Zvcm1zL3RpbWUvdGltZS1hcHBlYXJhbmNlLWJhc2ljLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE3IEBACitzdGVwPW5vbmUgIAorc3RlcD0xICAKK3N0ZXA9MC4wMDAxICAKK3N0ZXA9NjAgIAor
c3RlcD0zNjAwICAKK3N0ZXA9ODY0MDAgIAorc3RlcCBtaXNtYXRjaGVkIAorUlRMIAorRGlzYWJs
ZWQsIHN0ZXA9MzYwMCAgCitSZWFkb25seSwgc3RlcD0zNjAwICAKK3RleHQtYWxpZ246IAordGV4
dC10cmFuc2Zvcm06IAorYmFja2dyb3VuZCwgY29sb3I6IAorZm9udC1zaXplLCBmb250LXdlaWdo
dDogCitmb250LXNpemUgd2l0aCBmaXhlZCBpbnB1dCB3aWR0aDogCitGaXhlZCBpbnB1dCBoZWln
aHQ6IAorLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU6IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL3RpbWUvdGltZS1pbnB1dC1yZW5kZXJpbmctYmFz
aWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1z
L3RpbWUvdGltZS1pbnB1dC1yZW5kZXJpbmctYmFzaWMtZXhwZWN0ZWQudHh0CmluZGV4IGU1NTkx
ZjdkNzViY2M5MTY0NTcwZDEyZTA3ZTI4ZjZlNjI4NDQ4NDQuLmE5MjA3ZTlhZGMwZjhkYjEzNjFk
Yzc0ZmYyMjFlNWYwZmQ0NDI5MjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azIvZmFzdC9mb3Jtcy90aW1lL3RpbWUtaW5wdXQtcmVuZGVyaW5nLWJhc2ljLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMvdGltZS90
aW1lLWlucHV0LXJlbmRlcmluZy1iYXNpYy1leHBlY3RlZC50eHQKQEAgLTMsMTggKzMsMTAgQEAg
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
ICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAogICAgIFJlbmRlckJv
ZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAotICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgxMTAsMykgc2l6ZSA0eDE4Ci0gICAgICAgIHRleHQgcnVuIGF0ICgxMTAsMykgd2lkdGgg
NDogIiAiCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDExMCwwKSBzaXplIDR4MTgKKyAg
ICAgICAgdGV4dCBydW4gYXQgKDExMCwwKSB3aWR0aCA0OiAiICIKICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAotbGF5ZXIgYXQgKDgsMTApIHNpemUgMTEweDIxIGNs
aXAgYXQgKDEwLDEyKSBzaXplIDEwNngxNwotICBSZW5kZXJGbGV4aWJsZUJveCB7SU5QVVR9IGF0
ICgwLDIpIHNpemUgMTEweDIxIFtiZ2NvbG9yPSNGRkZGRkZdIFtib3JkZXI6ICgycHggaW5zZXQg
IzAwMDAwMCldCi0gICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDcsNCkgc2l6ZSA0M3gxMwotICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDN4MTMKLSAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggNDM6ICI5OjQxIEFNIgotbGF5ZXIgYXQgKDEyMiwxMCkgc2l6ZSAx
MTB4MjEgY2xpcCBhdCAoMTI0LDEyKSBzaXplIDEwNngxNwotICBSZW5kZXJGbGV4aWJsZUJveCB7
SU5QVVR9IGF0ICgxMTQsMikgc2l6ZSAxMTB4MjEgW2JnY29sb3I9I0ZGRkZGRl0gW2JvcmRlcjog
KDJweCBpbnNldCAjMDAwMDAwKV0KLSAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoNDAsNCkgc2l6
ZSA0M3gxMwotICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDN4MTMKLSAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTg6ICJBTSIKLSAgICAgICAgdGV4dCBydW4g
YXQgKDE3LDApIHdpZHRoIDQgUlRMOiAiICIKLSAgICAgICAgdGV4dCBydW4gYXQgKDIwLDApIHdp
ZHRoIDIzOiAiOTo0MSIKK2xheWVyIGF0ICg4LDE5KSBzaXplIDExMHg2IGNsaXAgYXQgKDEwLDIx
KSBzaXplIDEwNngyCisgIFJlbmRlckZsZXhpYmxlQm94IHtJTlBVVH0gYXQgKDAsMTEpIHNpemUg
MTEweDYgW2JnY29sb3I9I0ZGRkZGRl0gW2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KK2xh
eWVyIGF0ICgxMjIsMTkpIHNpemUgMTEweDYgY2xpcCBhdCAoMTI0LDIxKSBzaXplIDEwNngyCisg
IFJlbmRlckZsZXhpYmxlQm94IHtJTlBVVH0gYXQgKDExNCwxMSkgc2l6ZSAxMTB4NiBbYmdjb2xv
cj0jRkZGRkZGXSBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406203</attachid>
            <date>2020-08-07 13:08:55 -0700</date>
            <delta_ts>2020-08-24 10:51:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215155-20200807160854.patch</filename>
            <type>text/plain</type>
            <size>89558</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1Mjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY2NjQ5MGJiZjJjNDc4
NmVlYzU2N2UxOTYzNGIzYjc4YmMzY2M4NS4uZDU4NzkzZDZmYjRlMTM4YWM4MzhjZTJkZDJlODg0
MjRiNjFiZDIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0MCBAQAorMjAyMC0wOC0wNyAgQWRp
dHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBEYXRl
IGlucHV0cyBzaG91bGQgY29udGFpbiBlZGl0YWJsZSBjb21wb25lbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUxNTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHksIHVzZXJzIGFyZSB1
bmFibGUgdG8gZWRpdCB0aGUgdmFsdWVzIGluIGRhdGUgYW5kIHRpbWUgaW5wdXQgdHlwZXMuCisg
ICAgICAgIFRvIG1hdGNoIHN5c3RlbSBkYXRlIGNvbnRyb2xzLCB1c2VycyBzaG91bGQgYmUgYWJs
ZSB0byBzZWxlY3QgYW5kIGVkaXQKKyAgICAgICAgaW5kaXZpZHVhbCBjb21wb25lbnRzIG9mIHRo
ZSBpbnB1dC4gRm9yIGV4YW1wbGUsIDxpbnB1dCB0eXBlPSJkYXRlIj4gc2hvdWxkCisgICAgICAg
IGNvbnRhaW4gYW4gZWRpdGFibGUgeWVhciwgbW9udGgsIGFuZCBkYXkgY29udHJvbC4KKworICAg
ICAgICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbmFsaXR5IHdhcyBwcmVzZW50IGluIFdlYktpdCwg
dXAgdW50aWwgaXQgd2FzIHJlbW92ZWQKKyAgICAgICAgaW4gcjE1MDg3Ni4gUHJldmlvdXNseSBr
bm93biBhcyAiSU5QVVRfTVVMVElQTEVfRklFTERTX1VJIiwgdGhlIGZlYXR1cmUgd2FzCisgICAg
ICAgIHJlbW92ZWQgYXMgaXQgd2FzIG9ubHkgdXNlZCBieSBDaHJvbWl1bSBwb3J0LiBIb3dldmVy
LCBtdWNoIG9mIHRoZSByZW1vdmVkCisgICAgICAgIGxvZ2ljIHJlbWFpbnMgdXNlZnVsIGFuZCBp
cyByZXN1cmZhY2VkIGluIHRoaXMgcGF0Y2guIE1vZGlmaWNhdGlvbnMgd2VyZSBtYWRlCisgICAg
ICAgIHRvIHVwZGF0ZSB0aGUgY29kZSB0byBmb2xsb3cgY3VycmVudCBXZWJLaXQgcHJhY3RpY2Vz
LgorCisgICAgICAgIERhdGVUaW1lRWRpdEVsZW1lbnQgaXMgYSB3cmFwcGVyIGVsZW1lbnQgdGhh
dCBjb250YWlucyBpbmRpdmlkdWFsIGZpZWxkcy4KKyAgICAgICAgVGhlIGZpZWxkcyBhcmUgYWxs
IERhdGVUaW1lRmllbGRFbGVtZW50cy4gTm90ZSB0aGF0IERhdGVUaW1lRmllbGRFbGVtZW50cwor
ICAgICAgICBhcmUgZnVydGhlciBzcGVjaWFsaXplZCBpbnRvIERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudCAoZm9yIGludGVncmFsCisgICAgICAgIHZhbHVlcykgYW5kIERhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQgKGZvciBzeW1ib2xpYyB2YWx1ZXMgc3VjaCBhcyBBLk0KKyAgICAgICAg
YW5kIFAuTSkuIERhdGVUaW1lRWRpdEVsZW1lbnQgYnVpbGRzIHRoZSBjb250cm9sIHVzaW5nIHRo
ZSB2aXNpdG9yIHBhdHRlcm4KKyAgICAgICAgYW5kIGV4aXN0aW5nIHBhcnNpbmcgbG9naWMgY29u
dGFpbmVkIGluIERhdGVUaW1lRm9ybWF0LgorCisgICAgICAgIEluIG9yZGVyIHRvIHJlZHVjZSB0
aGUgcGF0Y2ggc2l6ZSwgdGhpcyBwYXRjaCBvbmx5IHNldHMgdXAgdGhlIHJlbmRlcmluZworICAg
ICAgICBhbmQgbGF5b3V0IG9mIG11bHRpcGxlIGZpZWxkcyBmb3IgPGlucHV0IHR5cGU9ImRhdGUi
Pi4gVXBjb21pbmcgcGF0Y2hlcyB3aWxsCisgICAgICAgIGFkZCByZW5kZXJpbmcgZm9yIG90aGVy
IGRhdGUvdGltZSBpbnB1dCB0eXBlcyBhbmQgaW50cm9kdWNlIGVkaXRhYmlsaXR5LgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZm9ybXMvZGF0ZS9kYXRlLXBzZXVkby1lbGVtZW50cy5odG1sCisKKyAg
ICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogY3NzL2h0bWwuY3NzOgorICAgICAgICAoaW5wdXQ6Oi13ZWJr
aXQtZGF0ZXRpbWUtZWRpdCk6CisgICAgICAgIChpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0
LWZpZWxkcy13cmFwcGVyKToKKyAgICAgICAgKGlucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQt
eWVhci1maWVsZCwpOgorICAgICAgICAoaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15ZWFy
LWZpZWxkOmZvY3VzLCk6CisgICAgICAgIChpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LXRl
eHQpOgorICAgICAgICAqIGh0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGb3JtYXRWYWxpZGF0b3I6OkRhdGVUaW1l
Rm9ybWF0VmFsaWRhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRm9ybWF0VmFsaWRh
dG9yOjp2aXNpdEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRm9ybWF0VmFsaWRh
dG9yOjp2YWxpZGF0ZUZvcm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hvb3Nlck9ubHlE
YXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgIChXZWJD
b3JlOjpCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1
YnRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1
dFR5cGU6OnVwZGF0ZUlubmVyVGV4dFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaG9v
c2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjp2YWx1ZUZvckVkaXRDb250cm9sIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjps
b2NhbGVJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0Jhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1
dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0RhdGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZUlucHV0VHlwZTo6aXNWYWxpZEZvcm1hdCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRlSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMgY29uc3QpOgorICAgICAg
ICAqIGh0bWwvRGF0ZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVMb2NhbElu
cHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpp
c1ZhbGlkRm9ybWF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTG9jYWxJbnB1
dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyBjb25zdCk6CisgICAgICAgICogaHRtbC9EYXRl
VGltZUxvY2FsSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9Nb250aElucHV0VHlwZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNb250aElucHV0VHlwZTo6aXNWYWxpZEZvcm1hdCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpNb250aElucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJz
IGNvbnN0KToKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRt
bC9UaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6Omlz
VmFsaWRGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6c2V0
dXBMYXlvdXRQYXJhbWV0ZXJzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUu
aDoKKyAgICAgICAgKiBodG1sL1dlZWtJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2Vla0lucHV0VHlwZTo6aXNWYWxpZEZvcm1hdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWVrSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMgY29uc3QpOgorICAgICAgICAqIGh0
bWwvV2Vla0lucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVs
ZW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEJ1aWxkZXI6
OkRhdGVUaW1lRWRpdEJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0QnVp
bGRlcjo6YnVpbGQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0QnVpbGRlcjo6dmlz
aXRGaWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdExp
dGVyYWwpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6RWRpdENvbnRy
b2xPd25lcjo6fkVkaXRDb250cm9sT3duZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVF
ZGl0RWxlbWVudDo6RGF0ZVRpbWVFZGl0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUVkaXRFbGVtZW50Ojp+RGF0ZVRpbWVFZGl0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZUVkaXRFbGVtZW50OjpmaWVsZHNXcmFwcGVyRWxlbWVudCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjphZGRGaWVsZCk6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVFZGl0RWxlbWVudDo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
RWRpdEVsZW1lbnQ6OmxvY2FsZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVFZGl0RWxlbWVudDo6cmVzZXRGaWVsZHMpOgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVFZGl0RWxlbWVudDo6c2V0VmFsdWVBc0RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVFZGl0RWxlbWVudDo6c2V0RW1wdHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUVkaXRFbGVtZW50Ojp2YWx1ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0
ZVRpbWVFZGl0RWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGlt
ZUZpZWxkRWxlbWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVs
ZEVsZW1lbnQ6OkZpZWxkT3duZXI6On5GaWVsZE93bmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVUaW1lRmllbGRFbGVtZW50OjpEYXRlVGltZUZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZUZpZWxkRWxlbWVudDo6bG9jYWxlRm9yT3duZXIgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmxvY2FsZUlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OnVwZGF0ZVZpc2libGVWYWx1
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6c3VwcG9ydHNGb2N1
cyBjb25zdCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaDog
QWRkZWQuCisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZURheUZpZWxkRWxlbWVudDo6RGF0ZVRp
bWVEYXlGaWVsZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVEYXlGaWVsZEVs
ZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZURheUZpZWxkRWxlbWVu
dDo6c2V0VmFsdWVBc0RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVNb250aEZpZWxk
RWxlbWVudDo6RGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZU1vbnRoRmllbGRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVNb250aEZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50OjpEYXRlVGltZVN5bWJvbGljTW9u
dGhGaWVsZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY01vbnRo
RmllbGRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xp
Y01vbnRoRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZVllYXJGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lWWVhckZpZWxkRWxlbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKToKKyAg
ICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuaDogQWRkZWQuCisgICAg
ICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OkRhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNG
aWVsZEVsZW1lbnQ6OmZvcm1hdFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6aGFzVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojppbml0aWFsaXplKToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6c2V0RW1wdHlWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNJbnRl
Z2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6dmFs
dWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50
Ojp2YWx1ZUFzSW50ZWdlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVy
aWNGaWVsZEVsZW1lbnQ6OnZpc2libGVWYWx1ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9zaGFk
b3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGh0bWwv
c2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Om1ha2VWaXNpYmxlRW1wdHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6Omhhc1ZhbHVl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6
OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxl
bWVudDo6c2V0RW1wdHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGlj
RmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzSW50ZWdlcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojp2YWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojp2YWx1ZUFzSW50ZWdlciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojp2aXNpYmxlRW1w
dHlWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRF
bGVtZW50Ojp2aXNpYmxlVmFsdWUgY29uc3QpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpzeW1ib2xzU2l6ZSBjb25zdCk6CisgICAgICAgICog
cGFnZS9TZXR0aW5ncy55YW1sOgorCiAyMDIwLTA4LTA0ICBEZXZpbiBSb3Vzc28gIDxkcm91c3Nv
QGFwcGxlLmNvbT4KIAogICAgICAgICAiRG91YmxlRG93biBDYXNpbm8iIHJlc3BpbiBidXR0b24g
c3RvcHMgd29ya2luZyB3aXRoIHRyYWNrcGFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU4NjlkZjQ0ZWJhYmViMmQw
M2JjYzExN2JkZWU1NTUxY2RjOGFhMzEuLmI4NjM3NzVmYzkwMzVjOGViOTNkNmNhZjUzNDY3YmQ5
MzNjZmQxMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDgtMDcgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gRGF0ZSBpbnB1
dHMgc2hvdWxkIGNvbnRhaW4gZWRpdGFibGUgY29tcG9uZW50cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1MTU1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgRGF0ZVRpbWVJbnB1dHNFZGl0YWJs
ZUNvbXBvbmVudHNFbmFibGVkIGFzIGEgcnVudGltZSBzZXR0aW5nLiBUaGlzCisgICAgICAgIHNl
dHRpbmcgaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9uIG1hY09TLgorCisgICAgICAgICogU2hhcmVk
L1dlYlByZWZlcmVuY2VzLnlhbWw6CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVm
YXVsdFZhbHVlcy5oOgorCiAyMDIwLTA4LTA0ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBw
bGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVyIHIyNjUyNjMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKaW5kZXggYTA1Nzc4OWI1YjVkMzcxYjc0MjdjY2NlN2JiNTFlMDQ5MjBhMTY1Ny4u
NjkwYTBmMTcxZWE2MGI1MWI0NTJiYjhjMGNkOWQ1MjIwOTcxZmM3ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
QEAgLTEzMTAsNiArMTMxMCwxMSBAQCBodG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3Bw
CiBodG1sL3NoYWRvdy9BdXRvRmlsbEJ1dHRvbkVsZW1lbnQuY3BwCiBodG1sL3NoYWRvdy9EYXRh
TGlzdEJ1dHRvbkVsZW1lbnQuY3BwCiBodG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5j
cHAKK2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCitodG1sL3NoYWRvdy9EYXRl
VGltZUZpZWxkRWxlbWVudC5jcHAKK2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5j
cHAKK2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAKK2h0bWwvc2hh
ZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwCiBodG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNwcAogaHRtbC9zaGFkb3cvUHJvZ3Jlc3NT
aGFkb3dFbGVtZW50LmNwcAogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDAyZTE4MDJjNDlmMDk4ZTljY2RlOGNkMzk5YTMzZTA4MjhiY2ExOWYuLjcyZDFkN2FmMWRiYzJm
YzgyNDJjODUzMDY3Mzg2OGY3ODA3YTU2NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUwNzEsNiArNTA3MSwxMSBAQAogCQlF
NThCNDVCQTIwQUQwN0REMDA5OTEwMjUgLyogRGF0YUxpc3RCdXR0b25FbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNThCNDVCODIwQUQwN0RE
MDA5OTEwMjUgLyogRGF0YUxpc3RCdXR0b25FbGVtZW50LmggKi87IH07CiAJCUU1OURENEI4MjEw
OTgyODcwMDNDOEI0NyAvKiBMaXN0QnV0dG9uQXJyb3cucG5nIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTlERDRCNzIxMDk4Mjg1MDAzQzhCNDcgLyog
TGlzdEJ1dHRvbkFycm93LnBuZyAqLzsgfTsKIAkJRTVCQTdENjMxNTE0MzdDQTAwRkUxRTNGIC8q
IExlbmd0aEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTVCQTdENjIxNTE0MzdDQTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUU1RjA2QUU3
MjRENDg0N0IwMEJCQzRGOCAvKiBEYXRlVGltZUZpZWxkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVGMDZBRTUyNEQ0ODQ3QjAwQkJDNEY4
IC8qIERhdGVUaW1lRmllbGRFbGVtZW50LmggKi87IH07CisJCUU1RjA2QUVCMjRENDlCRjcwMEJC
QzRGOCAvKiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1RjA2QUU5MjRENDlCRjcwMEJCQzRGOCAvKiBE
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCAqLzsgfTsKKwkJRTVGMDZBRUYyNEQ0QTYzNzAw
QkJDNEY4IC8qIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1RjA2QUVEMjRENEE2MzcwMEJCQzRGOCAv
KiBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmggKi87IH07CisJCUU1RjA2QUYzMjRENEFB
RTQwMEJCQzRGOCAvKiBEYXRlVGltZUZpZWxkRWxlbWVudHMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1RjA2QUYxMjRENEFBRTQwMEJCQzRGOCAvKiBE
YXRlVGltZUZpZWxkRWxlbWVudHMuaCAqLzsgfTsKKwkJRTVGMDZBRjcyNEQ0QkI1NjAwQkJDNEY4
IC8qIERhdGVUaW1lRWRpdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU1RjA2QUY1MjRENEJCNTYwMEJCQzRGOCAvKiBEYXRlVGltZUVkaXRF
bGVtZW50LmggKi87IH07CiAJCUU3MTQ2N0IzMjRBQkFFRjIwMEZCMkY1MCAvKiBBdWRpb05vZGVP
cHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NzE0NjdCMTI0QUJBRUYxMDBGQjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5oICovOyB9OwogCQlF
NzE0NjdCNjI0QUJBRjFEMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTcxNDY3QjUyNEFCQUYxRDAwRkIyRjUw
IC8qIFBhbm5lck9wdGlvbnMuaCAqLzsgfTsKIAkJRTc1NUU4OTIyNEM3NDM0QjAwOUY3QzIzIC8q
IFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNzU1RTg4RjI0Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZl
Q29uc3RyYWludHMuaCAqLzsgfTsKQEAgLTE1ODg1LDYgKzE1ODkwLDE2IEBACiAJCUU1OEI0NUI4
MjBBRDA3REQwMDk5MTAyNSAvKiBEYXRhTGlzdEJ1dHRvbkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRGF0YUxpc3RCdXR0b25FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUU1OURENEI3MjEwOTgyODUwMDNDOEI0NyAvKiBMaXN0QnV0dG9uQXJyb3cucG5nICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRo
ID0gTGlzdEJ1dHRvbkFycm93LnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTVC
QTdENjIxNTE0MzdDQTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMZW5ndGhGdW5jdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTVGMDZBRTUyNEQ0ODQ3QjAwQkJDNEY4IC8qIERhdGVUaW1lRmllbGRFbGVt
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGVUaW1lRmllbGRFbGVtZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUU1RjA2QUU2MjRENDg0N0IwMEJCQzRGOCAvKiBEYXRlVGltZUZp
ZWxkRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRlVGltZUZpZWxkRWxlbWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1RjA2QUU5MjRENDlCRjcwMEJCQzRG
OCAvKiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0ZVRp
bWVOdW1lcmljRmllbGRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1
RjA2QUVBMjRENDlCRjcwMEJCQzRGOCAvKiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVGMDZBRUQyNEQ0QTYzNzAwQkJDNEY4IC8qIERh
dGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0ZVRpbWVTeW1i
b2xpY0ZpZWxkRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNUYwNkFF
RTI0RDRBNjM3MDBCQkM0RjggLyogRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVGMDZBRjEyNEQ0QUFFNDAwQkJDNEY4IC8qIERhdGVU
aW1lRmllbGRFbGVtZW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRlVGltZUZpZWxkRWxlbWVudHMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVGMDZBRjIyNEQ0QUFFNDAwQkJDNEY4
IC8qIERhdGVUaW1lRmllbGRFbGVtZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRlVGlt
ZUZpZWxkRWxlbWVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNUYwNkFG
NTI0RDRCQjU2MDBCQkM0RjggLyogRGF0ZVRpbWVFZGl0RWxlbWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEYXRlVGltZUVkaXRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1
RjA2QUY2MjRENEJCNTYwMEJCQzRGOCAvKiBEYXRlVGltZUVkaXRFbGVtZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IERhdGVUaW1lRWRpdEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFNzE0NjdCMTI0QUJBRUYxMDBGQjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb05vZGVPcHRpb25zLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU3MTQ2N0I0MjRBQkFGMEIwMEZCMkY1MCAvKiBB
dWRpb05vZGVPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdWRpb05vZGVPcHRpb25zLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTcxNDY3QjUyNEFCQUYxRDAwRkIyRjUwIC8qIFBhbm5lck9w
dGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFubmVyT3B0aW9ucy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg2MjIsNiArMTg2MzcsMTYgQEAKIAkJ
CQk3QzFFOTcyNTFBOUY5ODM0MDA3QkYwRkIgLyogQXV0b0ZpbGxCdXR0b25FbGVtZW50LmNwcCAq
LywKIAkJCQk3QzFFOTcyNjFBOUY5ODM0MDA3QkYwRkIgLyogQXV0b0ZpbGxCdXR0b25FbGVtZW50
LmggKi8sCiAJCQkJRTU4QjQ1QjgyMEFEMDdERDAwOTkxMDI1IC8qIERhdGFMaXN0QnV0dG9uRWxl
bWVudC5oICovLAorCQkJCUU1RjA2QUY2MjRENEJCNTYwMEJCQzRGOCAvKiBEYXRlVGltZUVkaXRF
bGVtZW50LmNwcCAqLywKKwkJCQlFNUYwNkFGNTI0RDRCQjU2MDBCQkM0RjggLyogRGF0ZVRpbWVF
ZGl0RWxlbWVudC5oICovLAorCQkJCUU1RjA2QUU2MjRENDg0N0IwMEJCQzRGOCAvKiBEYXRlVGlt
ZUZpZWxkRWxlbWVudC5jcHAgKi8sCisJCQkJRTVGMDZBRTUyNEQ0ODQ3QjAwQkJDNEY4IC8qIERh
dGVUaW1lRmllbGRFbGVtZW50LmggKi8sCisJCQkJRTVGMDZBRjIyNEQ0QUFFNDAwQkJDNEY4IC8q
IERhdGVUaW1lRmllbGRFbGVtZW50cy5jcHAgKi8sCisJCQkJRTVGMDZBRjEyNEQ0QUFFNDAwQkJD
NEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50cy5oICovLAorCQkJCUU1RjA2QUVBMjRENDlCRjcw
MEJCQzRGOCAvKiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwICovLAorCQkJCUU1RjA2
QUU5MjRENDlCRjcwMEJCQzRGOCAvKiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCAqLywK
KwkJCQlFNUYwNkFFRTI0RDRBNjM3MDBCQkM0RjggLyogRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxl
bWVudC5jcHAgKi8sCisJCQkJRTVGMDZBRUQyNEQ0QTYzNzAwQkJDNEY4IC8qIERhdGVUaW1lU3lt
Ym9saWNGaWVsZEVsZW1lbnQuaCAqLywKIAkJCQlBN0M5QUJGNjEzNTdBM0JGMDBGNTUwM0YgLyog
RGV0YWlsc01hcmtlckNvbnRyb2wuY3BwICovLAogCQkJCUE3QzlBQkY3MTM1N0EzQkYwMEY1NTAz
RiAvKiBEZXRhaWxzTWFya2VyQ29udHJvbC5oICovLAogCQkJCTUxMDE5MkQzMThCNkI5QjcwMDdG
QzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuY3BwICovLApAQCAtMzA2NTEsOCArMzA2
NzYsMTMgQEAKIAkJCQlGNTVCM0RCNjEyNTFGMTJEMDAzRUYyNjkgLyogRGF0ZUlucHV0VHlwZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMzdDNzM4RjMxRURCREU4QTAwM0YyQjBCIC8qIERhdGVUaW1l
Q2hvb3Nlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdDNzM4RjQxRURCREU4RDAwM0YyQjBCIC8q
IERhdGVUaW1lQ2hvb3NlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTVGMDZBRjcyNEQ0
QkI1NjAwQkJDNEY4IC8qIERhdGVUaW1lRWRpdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUU1RjA2QUU3MjRENDg0N0IwMEJCQzRGOCAvKiBEYXRlVGltZUZpZWxkRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRTVGMDZBRjMyNEQ0QUFFNDAwQkJDNEY4IC8qIERhdGVUaW1lRmllbGRF
bGVtZW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDUzRUI2MzcxNTlDNTcwNDAwMDAxQkI3IC8q
IERhdGVUaW1lRm9ybWF0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RCQTEyNTFGMTJEMDAz
RUYyNjkgLyogRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTVG
MDZBRUIyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTVGMDZBRUYyNEQ0QTYzNzAwQkJDNEY4IC8qIERhdGVUaW1lU3lt
Ym9saWNGaWVsZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNkExMkJFMUEwMDkyMzcw
MEM2REU3MiAvKiBEZWJ1Z1BhZ2VPdmVybGF5cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDVGRUE1
RDAxNTZEREU4QzAwNjU0MTAxIC8qIERlY2ltYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTcxNUFE
NzIwMjA1MDUxMzIwMEQ1OTJEQyAvKiBEZWNsYXJhdGl2ZUFuaW1hdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvaHRtbC5jc3MKaW5kZXggZGFmODkxOWViMTZkNzNkYzdmMDU5ZDMxZjAwMzYzYzVi
ZTg3MjEyZS4uZGZjNTc4M2VkZTY0NGY5Y2E2MmY1NzlhYTMwNjVkNzYzNzE1NDk5OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9odG1sLmNzcwpAQCAtNDg0LDYgKzQ4NCwzOSBAQCBpbnB1dDo6LXdlYmtpdC1kYXRlLWFuZC10
aW1lLXZhbHVlIHsKICNlbmRpZgogfQogCitpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0IHsK
KyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgb3ZlcmZsb3c6IGhpZGRlbjsKK30KKwor
aW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1maWVsZHMtd3JhcHBlciB7CisgICAgZGlzcGxh
eTogaW5saW5lLWJsb2NrOworfQorCitpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LXllYXIt
ZmllbGQsCitpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LW1vbnRoLWZpZWxkLAoraW5wdXQ6
Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1kYXktZmllbGQgeworICAgIGRpc3BsYXk6IGlubGluZTsK
KyAgICBwYWRkaW5nOiAxcHg7Cit9CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQteWVh
ci1maWVsZDpmb2N1cywKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtbW9udGgtZmllbGQ6
Zm9jdXMsCitpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LWRheS1maWVsZDpmb2N1cyB7Cisj
aWYgZGVmaW5lZChXVEZfUExBVEZPUk1fQ09DT0EpICYmIFdURl9QTEFURk9STV9DT0NPQQorICAg
IGJhY2tncm91bmQtY29sb3I6IC1hcHBsZS1zeXN0ZW0tY29udHJvbC1hY2NlbnQ7CisgICAgY29s
b3I6IHdoaXRlOworI2Vsc2UKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoaWdobGlnaHQ7CisgICAg
Y29sb3I6IGhpZ2hsaWdodHRleHQ7CisjZW5kaWYKKyAgICBvdXRsaW5lOiBub25lOworfQorCitp
bnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LXRleHQgeworICAgIGRpc3BsYXk6IGlubGluZTsK
K30KKwogaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24gewogICAgIC13ZWJraXQtYXBw
ZWFyYW5jZTogaW5uZXItc3Bpbi1idXR0b247CiAgICAgZGlzcGxheTogYmxvY2s7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRU
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuY3BwCmluZGV4IDU0MjFmZGI0YmY2YjgxZGU5ZjU0ZTFiMjE2NjVhOTc1YmQzYTMz
MTUuLmE4YTE5M2QyNmVhNjkzM2MwZDc5ZDI2OGIwOTE5MjczMzdlZjIyNTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuY3BwCkBAIC0yOSwxNiArMjksNzkgQEAKIAogI2lmIEVOQUJMRShEQVRFX0FORF9U
SU1FX0lOUFVUX1RZUEVTKQogCisjaW5jbHVkZSAiRGF0ZVRpbWVGb3JtYXQuaCIKICNpbmNsdWRl
ICJIVE1MRGl2RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNs
dWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1Mb2NhbGUuaCIKICNpbmNsdWRlICJSZW5k
ZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFkb3dSb290
LmgiCisjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgi
CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorY2xhc3MgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0b3IgOiBwdWJsaWMgRGF0ZVRpbWVGb3JtYXQ6
OlRva2VuSGFuZGxlciB7CitwdWJsaWM6CisgICAgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0b3IoKSB7
IH0KKworICAgIHZvaWQgdmlzaXRGaWVsZChEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlLCBpbnQp
IGZpbmFsOworICAgIHZvaWQgdmlzaXRMaXRlcmFsKGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQor
CisgICAgYm9vbCB2YWxpZGF0ZUZvcm1hdChjb25zdCBTdHJpbmcmIGZvcm1hdCwgY29uc3QgQmFz
ZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUmKTsKKworcHJpdmF0ZToKKyAgICBPcHRp
b25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4gbV9yZXN1bHRzOworfTsKKwor
dm9pZCBEYXRlVGltZUZvcm1hdFZhbGlkYXRvcjo6dmlzaXRGaWVsZChEYXRlVGltZUZvcm1hdDo6
RmllbGRUeXBlIGZpZWxkVHlwZSwgaW50KQoreworICAgIHN3aXRjaCAoZmllbGRUeXBlKSB7Cisg
ICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlWWVhcjoKKyAgICAgICAgbV9yZXN1bHRz
LmFkZChEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNZZWFyKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTW9udGg6CisgICAgY2Fz
ZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTW9udGhTdGFuZEFsb25lOgorICAgICAgICBtX3Jl
c3VsdHMuYWRkKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc01vbnRoKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlV2Vla09mWWVh
cjoKKyAgICAgICAgbV9yZXN1bHRzLmFkZChEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRz
OjpIYXNXZWVrKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6Rmll
bGRUeXBlRGF5T2ZNb250aDoKKyAgICAgICAgbV9yZXN1bHRzLmFkZChEYXRlVGltZUZvcm1hdFZh
bGlkYXRpb25SZXN1bHRzOjpIYXNEYXkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERhdGVU
aW1lRm9ybWF0OjpGaWVsZFR5cGVQZXJpb2Q6CisgICAgICAgIG1fcmVzdWx0cy5hZGQoRGF0ZVRp
bWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzQU1QTSk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIxMToKKyAgICBjYXNlIERhdGVUaW1l
Rm9ybWF0OjpGaWVsZFR5cGVIb3VyMTI6CisgICAgICAgIG1fcmVzdWx0cy5hZGQoRGF0ZVRpbWVG
b3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzSG91cik7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIyMzoKKyAgICBjYXNlIERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGVIb3VyMjQ6CisgICAgICAgIG1fcmVzdWx0cy5hZGQoRGF0ZVRpbWVGb3Jt
YXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzSG91cik7CisgICAgICAgIG1fcmVzdWx0cy5hZGQoRGF0
ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzQU1QTSk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1pbnV0ZToKKyAgICAgICAgbV9yZXN1
bHRzLmFkZChEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNXZWVrKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlU2Vjb25kOgorICAg
ICAgICBtX3Jlc3VsdHMuYWRkKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc1Nl
Y29uZCk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAg
IH0KK30KKworYm9vbCBEYXRlVGltZUZvcm1hdFZhbGlkYXRvcjo6dmFsaWRhdGVGb3JtYXQoY29u
c3QgU3RyaW5nJiBmb3JtYXQsIGNvbnN0IEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRU
eXBlJiBpbnB1dFR5cGUpCit7CisgICAgaWYgKCFEYXRlVGltZUZvcm1hdDo6cGFyc2UoZm9ybWF0
LCAqdGhpcykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gaW5wdXRUeXBlLmlz
VmFsaWRGb3JtYXQobV9yZXN1bHRzKTsKK30KKwogQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJ
bnB1dFR5cGU6On5CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZSgpCiB7CiAgICAg
Y2xvc2VEYXRlVGltZUNob29zZXIoKTsKQEAgLTYxLDI3ICsxMjQsNTEgQEAgdm9pZCBCYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVu
dCYpCiAKIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVNo
YWRvd1N1YnRyZWUoKQogewotICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gdmFsdWVDb250YWluZXJQc2V1ZG8oIi13ZWJraXQtZGF0ZS1hbmQtdGlt
ZS12YWx1ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLQogICAgIEFTU0VS
VChlbGVtZW50KCkpOwotICAgIGF1dG8gdmFsdWVDb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6
Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSk7Ci0gICAgdmFsdWVDb250YWluZXItPnNldFBz
ZXVkbyh2YWx1ZUNvbnRhaW5lclBzZXVkbyk7Ci0gICAgZWxlbWVudCgpLT51c2VyQWdlbnRTaGFk
b3dSb290KCktPmFwcGVuZENoaWxkKHZhbHVlQ29udGFpbmVyKTsKKyAgICBpZiAoZWxlbWVudCgp
LT5kb2N1bWVudCgpLnBhZ2UoKSAmJiBlbGVtZW50KCktPmRvY3VtZW50KCkucGFnZSgpLT5zZXR0
aW5ncygpLmRhdGVUaW1lSW5wdXRzRWRpdGFibGVDb21wb25lbnRzRW5hYmxlZCgpKSB7CisgICAg
ICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudCA9IERhdGVUaW1lRWRpdEVsZW1lbnQ6OmNyZWF0ZShl
bGVtZW50KCktPmRvY3VtZW50KCksICp0aGlzKTsKKyAgICAgICAgZWxlbWVudCgpLT51c2VyQWdl
bnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKCptX2RhdGVUaW1lRWRpdEVsZW1lbnQpOworICAg
IH0gZWxzZSB7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gdmFsdWVDb250YWluZXJQc2V1ZG8oIi13ZWJraXQtZGF0ZS1hbmQtdGltZS12
YWx1ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgYXV0byB2
YWx1ZUNvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5kb2N1bWVu
dCgpKTsKKyAgICAgICAgdmFsdWVDb250YWluZXItPnNldFBzZXVkbyh2YWx1ZUNvbnRhaW5lclBz
ZXVkbyk7CisgICAgICAgIGVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRD
aGlsZCh2YWx1ZUNvbnRhaW5lcik7CisgICAgfQogICAgIHVwZGF0ZUlubmVyVGV4dFZhbHVlKCk7
CiB9CiAKK3ZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmRlc3Ryb3lT
aGFkb3dTdWJ0cmVlKCkKK3sKKyAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQgPSBudWxscHRyOwor
fQorCiB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjp1cGRhdGVJbm5l
clRleHRWYWx1ZSgpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7Ci0gICAgUmVmUHRyPE5vZGU+
IG5vZGUgPSBlbGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOwot
ICAgIGlmICghaXM8SFRNTEVsZW1lbnQ+KG5vZGUpKQorICAgIGlmICghbV9kYXRlVGltZUVkaXRF
bGVtZW50KSB7CisgICAgICAgIFJlZlB0cjxOb2RlPiBub2RlID0gZWxlbWVudCgpLT51c2VyQWdl
bnRTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKKyAgICAgICAgaWYgKCFpczxIVE1MRWxlbWVu
dD4obm9kZSkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIFN0cmluZyBkaXNwbGF5VmFs
dWUgPSB2aXNpYmxlVmFsdWUoKTsKKyAgICAgICAgaWYgKGRpc3BsYXlWYWx1ZS5pc0VtcHR5KCkp
IHsKKyAgICAgICAgICAgIC8vIE5lZWQgdG8gcHV0IHNvbWV0aGluZyB0byBrZWVwIHRleHQgYmFz
ZWxpbmUuCisgICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSAiICJfczsKKyAgICAgICAgfQorICAg
ICAgICBkb3duY2FzdDxIVE1MRWxlbWVudD4oKm5vZGUpLnNldElubmVyVGV4dChkaXNwbGF5VmFs
dWUpOwogICAgICAgICByZXR1cm47Ci0gICAgU3RyaW5nIGRpc3BsYXlWYWx1ZSA9IHZpc2libGVW
YWx1ZSgpOwotICAgIGlmIChkaXNwbGF5VmFsdWUuaXNFbXB0eSgpKSB7Ci0gICAgICAgIC8vIE5l
ZWQgdG8gcHV0IHNvbWV0aGluZyB0byBrZWVwIHRleHQgYmFzZWxpbmUuCi0gICAgICAgIGRpc3Bs
YXlWYWx1ZSA9ICIgIl9zOwogICAgIH0KLSAgICBkb3duY2FzdDxIVE1MRWxlbWVudD4oKm5vZGUp
LnNldElubmVyVGV4dChkaXNwbGF5VmFsdWUpOworCisgICAgRGF0ZVRpbWVFZGl0RWxlbWVudDo6
TGF5b3V0UGFyYW1ldGVycyBsYXlvdXRQYXJhbWV0ZXJzKGVsZW1lbnQoKS0+bG9jYWxlKCkpOwor
ICAgIHNldHVwTGF5b3V0UGFyYW1ldGVycyhsYXlvdXRQYXJhbWV0ZXJzKTsKKworICAgIGlmICgh
RGF0ZVRpbWVGb3JtYXRWYWxpZGF0b3IoKS52YWxpZGF0ZUZvcm1hdChsYXlvdXRQYXJhbWV0ZXJz
LmRhdGVUaW1lRm9ybWF0LCAqdGhpcykpCisgICAgICAgIGxheW91dFBhcmFtZXRlcnMuZGF0ZVRp
bWVGb3JtYXQgPSBsYXlvdXRQYXJhbWV0ZXJzLmZhbGxiYWNrRGF0ZVRpbWVGb3JtYXQ7CisKKyAg
ICBhdXRvIGRhdGUgPSBwYXJzZVRvRGF0ZUNvbXBvbmVudHMoZWxlbWVudCgpLT52YWx1ZSgpKTsK
KyAgICBpZiAoIWRhdGUpCisgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+c2V0RW1wdHlW
YWx1ZShsYXlvdXRQYXJhbWV0ZXJzKTsKKyAgICBlbHNlCisgICAgICAgIG1fZGF0ZVRpbWVFZGl0
RWxlbWVudC0+c2V0VmFsdWVBc0RhdGUobGF5b3V0UGFyYW1ldGVycywgKmRhdGUpOwogfQogCiB2
b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBT
dHJpbmcmIHZhbHVlLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBl
dmVudEJlaGF2aW9yKQpAQCAtMTU0LDYgKzI0MSwxNyBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlOjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
CiAgICAgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUpOwog
fQogCitTdHJpbmcgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnZhbHVlRm9y
RWRpdENvbnRyb2woKSBjb25zdAoreworICAgIEFTU0VSVChlbGVtZW50KCkpOworICAgIHJldHVy
biBlbGVtZW50KCktPnZhbHVlKCk7Cit9CisKK0F0b21TdHJpbmcgQmFzZUNob29zZXJPbmx5RGF0
ZUFuZFRpbWVJbnB1dFR5cGU6OmxvY2FsZUlkZW50aWZpZXIoKSBjb25zdAoreworICAgIHJldHVy
biBlbGVtZW50KCktPmNvbXB1dGVJbmhlcml0ZWRMYW5ndWFnZSgpOworfQorCiB9CiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5k
VGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRl
QW5kVGltZUlucHV0VHlwZS5oCmluZGV4IGEzZjFjZjVhNWIyYWNhMGNhOGU5OTUxODExNjk1MjAw
YTMzNzhmMGQuLmYzOTkwYzc3MTQ4OGU1NjgyODIzNmM3N2FkNzU3NzdiZWQ4MDQwMDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1
dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRU
aW1lSW5wdXRUeXBlLmgKQEAgLTMyLDIwICszMiw0MyBAQAogI2luY2x1ZGUgIkJhc2VEYXRlQW5k
VGltZUlucHV0VHlwZS5oIgogI2luY2x1ZGUgIkRhdGVUaW1lQ2hvb3Nlci5oIgogI2luY2x1ZGUg
IkRhdGVUaW1lQ2hvb3NlckNsaWVudC5oIgorI2luY2x1ZGUgIkRhdGVUaW1lRWRpdEVsZW1lbnQu
aCIKKyNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLCBwcml2YXRlIERhdGVUaW1lQ2hvb3NlckNsaWVudCB7CitlbnVt
IGNsYXNzIERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHMgOiB1aW50OF90IHsKKyAgICBI
YXNZZWFyID0gMSA8PCAwLAorICAgIEhhc01vbnRoID0gMSA8PCAxLAorICAgIEhhc1dlZWsgPSAx
IDw8IDIsCisgICAgSGFzRGF5ID0gMSA8PCAzLAorICAgIEhhc0FNUE0gPSAxIDw8IDQsCisgICAg
SGFzSG91ciA9IDEgPDwgNSwKKyAgICBIYXNNaW51dGUgPSAxIDw8IDYsCisgICAgSGFzU2Vjb25k
ID0gMSA8PCA3LAorfTsKKworY2xhc3MgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5
cGUgOiBwdWJsaWMgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLCBwcml2YXRlIERhdGVUaW1lQ2hv
b3NlckNsaWVudCwgcHJpdmF0ZSBEYXRlVGltZUVkaXRFbGVtZW50OjpFZGl0Q29udHJvbE93bmVy
IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0
ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4pIGNvbnN0ID0gMDsKKwogcHJvdGVjdGVkOgog
ICAgIGV4cGxpY2l0IEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlKEhUTUxJbnB1
dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlKGVsZW1lbnQpIHsg
fQogICAgIH5CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZSgpOwogCisgICAgdmly
dHVhbCB2b2lkIHNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlv
dXRQYXJhbWV0ZXJzJikgY29uc3QgPSAwOworCiBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlSW5u
ZXJUZXh0VmFsdWUoKSBvdmVycmlkZTsKICAgICB2b2lkIGNsb3NlRGF0ZVRpbWVDaG9vc2VyKCk7
CiAKKyAgICAvLyBEYXRlVGltZUVkaXRFbGVtZW50OjpFZGl0Q29udHJvbE93bmVyIGZ1bmN0aW9u
czoKKyAgICBTdHJpbmcgdmFsdWVGb3JFZGl0Q29udHJvbCgpIGNvbnN0IGZpbmFsOworICAgIEF0
b21TdHJpbmcgbG9jYWxlSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsOworCiAgICAgLy8gSW5wdXRU
eXBlIGZ1bmN0aW9uczoKICAgICB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkZXRh
Y2goKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFs
dWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBvdmVycmlkZTsKICAgICB2b2lkIGhh
bmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmKSBvdmVycmlkZTsKQEAgLTYxLDYgKzg0LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRpZEVuZENob29zZXIoKSBmaW5hbDsKIAogICAgIFJlZlB0cjxE
YXRlVGltZUNob29zZXI+IG1fZGF0ZVRpbWVDaG9vc2VyOworICAgIFJlZlB0cjxEYXRlVGltZUVk
aXRFbGVtZW50PiBtX2RhdGVUaW1lRWRpdEVsZW1lbnQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUu
aAppbmRleCAzZTE3MjQ3MDYxMzI1ZDBhMjhlNGQxNGNhOTg0MGFkZDJjNWI0OWUyLi44MjdkMDFi
OWYzNmYyODE3N2E3YzIwYmJmYjE1ZjMyNDk5MjBjZTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKQEAgLTUzLDggKzUzLDkgQEAgcHJvdGVj
dGVkOgogICAgIGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3Qg
b3ZlcnJpZGU7CiAjZW5kaWYKIAotcHJpdmF0ZToKICAgICB2aXJ0dWFsIE9wdGlvbmFsPERhdGVD
b21wb25lbnRzPiBwYXJzZVRvRGF0ZUNvbXBvbmVudHMoY29uc3QgU3RyaW5nVmlldyYpIGNvbnN0
ID0gMDsKKworcHJpdmF0ZToKICAgICB2aXJ0dWFsIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBz
ZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlKSBjb25zdCA9IDA7CiAKICAgICBk
b3VibGUgdmFsdWVBc0RhdGUoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJ
bnB1dFR5cGUuY3BwCmluZGV4IGE1ZDZkOWVmMjg3OTIxNjhmZTljZmJmNjY3YWMwMTQ5ZGQzMDgx
MDQuLmUwZTVjOWM2ZDBmY2U3NTJjZjQ5NzZiZmMyMzQ4ZDQ5MDdkZmQ0MjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkhU
TUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1
dFR5cGVOYW1lcy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTG9jYWxlLmgiCiAjaW5jbHVkZSAiU3Rl
cFJhbmdlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTg2LDUgKzg3LDE4IEBAIGJvb2wg
RGF0ZUlucHV0VHlwZTo6aXNEYXRlRmllbGQoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQog
Citib29sIERhdGVJbnB1dFR5cGU6OmlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9y
bWF0VmFsaWRhdGlvblJlc3VsdHM+IHJlc3VsdHMpIGNvbnN0Cit7CisgICAgcmV0dXJuIHJlc3Vs
dHMuY29udGFpbnMoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzWWVhcikKKyAg
ICAgICAgJiYgcmVzdWx0cy5jb250YWlucyhEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRz
OjpIYXNNb250aCkKKyAgICAgICAgJiYgcmVzdWx0cy5jb250YWlucyhEYXRlVGltZUZvcm1hdFZh
bGlkYXRpb25SZXN1bHRzOjpIYXNEYXkpOworfQorCit2b2lkIERhdGVJbnB1dFR5cGU6OnNldHVw
TGF5b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJiBs
YXlvdXRQYXJhbWV0ZXJzKSBjb25zdAoreworICAgIGxheW91dFBhcmFtZXRlcnMuZGF0ZVRpbWVG
b3JtYXQgPSBsYXlvdXRQYXJhbWV0ZXJzLmxvY2FsZS5kYXRlRm9ybWF0KCk7CisgICAgbGF5b3V0
UGFyYW1ldGVycy5mYWxsYmFja0RhdGVUaW1lRm9ybWF0ID0gInl5eXktTU0tZGQiX3M7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9EYXRlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5
cGUuaAppbmRleCAzMzU1MDc0YmU2ZDVmMmUyZjYzODgwNjYyZDM5NjA2NWRlNjliZjJiLi4xMDU2
NDZmYTkwMmYwNmE1OTczYjcyYzMzMDIxZTZhNGIxNjUwNDkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Rh
dGVJbnB1dFR5cGUuaApAQCAtNDcsNiArNDcsOSBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPERh
dGVDb21wb25lbnRzPiBwYXJzZVRvRGF0ZUNvbXBvbmVudHMoY29uc3QgU3RyaW5nVmlldyYpIGNv
bnN0IG92ZXJyaWRlOwogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29u
ZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzRGF0
ZUZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICBib29sIGlzVmFsaWRGb3JtYXQoT3B0aW9u
U2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+KSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2b2lkIHNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQ
YXJhbWV0ZXJzJikgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAppbmRl
eCBkYjYzOTA4ZmE2NDUyZmRmZWUwYjFlM2E1NmYzNjdjMDFiN2MyZDI5Li5mODlhYTg1NzdjOTBl
ZjdiNWUyNWIwMjdkNzBiMGEwZThmMzZiNjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKQEAgLTk1LDYgKzk1LDE5IEBAIGJvb2wgRGF0ZVRp
bWVMb2NhbElucHV0VHlwZTo6aXNEYXRlVGltZUxvY2FsRmllbGQoKSBjb25zdAogICAgIHJldHVy
biB0cnVlOwogfQogCitib29sIERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OmlzVmFsaWRGb3JtYXQo
T3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+IHJlc3VsdHMpIGNvbnN0
Cit7CisgICAgcmV0dXJuIHJlc3VsdHMuY29udGFpbnMoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9u
UmVzdWx0czo6SGFzWWVhcikKKyAgICAgICAgJiYgcmVzdWx0cy5jb250YWlucyhEYXRlVGltZUZv
cm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNNb250aCkKKyAgICAgICAgJiYgcmVzdWx0cy5jb250
YWlucyhEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNEYXkpCisgICAgICAgICYm
IHJlc3VsdHMuY29udGFpbnMoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzSG91
cikKKyAgICAgICAgJiYgcmVzdWx0cy5jb250YWlucyhEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25S
ZXN1bHRzOjpIYXNNaW51dGUpOworfQorCit2b2lkIERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OnNl
dHVwTGF5b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJz
JikgY29uc3QKK3sKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgKaW5kZXggMmMwNDk0OWYw
ZjBhNmQ5MGYzMjQ4ZTRlZjkwYjgwMDAxOTc0OTRhNS4uZDFhNDVkN2IyZjQ3YjE4NTE5NGIyODM1
ZWI0NWMwYmU1NWQ4NjIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGlt
ZUxvY2FsSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2Fs
SW5wdXRUeXBlLmgKQEAgLTQ5LDYgKzQ5LDkgQEAgcHJpdmF0ZToKICAgICBPcHRpb25hbDxEYXRl
Q29tcG9uZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRzKGNvbnN0IFN0cmluZ1ZpZXcmKSBjb25z
dCBmaW5hbDsKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gc2V0TWlsbGlzZWNvbmRUb0Rh
dGVDb21wb25lbnRzKGRvdWJsZSkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBpc0RhdGVUaW1lTG9j
YWxGaWVsZCgpIGNvbnN0IGZpbmFsOworCisgICAgYm9vbCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNl
dDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPikgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFy
YW1ldGVycyYpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAppbmRleCA0OTAyNjBjMjhjNzlmMzUw
Njc2MjdjODlkYjAyZjliNjliYjBlZTA0Li43MDkxZWRlNWQ0ODU0YWIyYTA1MDFhNDk4OGVlNDgy
ZjRmOTM1MjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcApAQCAtMTI5
LDYgKzEyOSwxNiBAQCBib29sIE1vbnRoSW5wdXRUeXBlOjppc01vbnRoRmllbGQoKSBjb25zdAog
ICAgIHJldHVybiB0cnVlOwogfQogCitib29sIE1vbnRoSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0
KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPiByZXN1bHRzKSBjb25z
dAoreworICAgIHJldHVybiByZXN1bHRzLmNvbnRhaW5zKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlv
blJlc3VsdHM6Okhhc1llYXIpCisgICAgICAgICYmIHJlc3VsdHMuY29udGFpbnMoRGF0ZVRpbWVG
b3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzTW9udGgpOworfQorCit2b2lkIE1vbnRoSW5wdXRU
eXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFy
YW1ldGVycyYpIGNvbnN0Cit7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKaW5kZXggMGNjYTkyMmE1M2M0MGRmMTU4
ZGNmYjJjNjA2MWQ4YTM4Yzg0YWY4NC4uMjJjODc0NDViZTFiYzU2ZTBiNGE4MGM2MDE2MTU0Y2Zk
NzIyODNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaApAQCAtNTEsNiArNTEs
OSBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBwYXJzZVRvRGF0ZUNv
bXBvbmVudHMoY29uc3QgU3RyaW5nVmlldyYpIGNvbnN0IG92ZXJyaWRlOwogICAgIE9wdGlvbmFs
PERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlKSBj
b25zdCBvdmVycmlkZTsKICAgICBib29sIGlzTW9udGhGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwor
CisgICAgYm9vbCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRp
b25SZXN1bHRzPikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXR1cExheW91dFBhcmFtZXRl
cnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0IG92ZXJyaWRl
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0
VHlwZS5jcHAKaW5kZXggMGJkMmQ0YmNlOWE1OGViNzk2Nzk3YjM4MTEwMDg0NWFlNWQ2NTZmZC4u
MGMwZjMyMzY0NmE0NmMzNGZmZDNmYzlmNjRlZmExNWQxYWJhYmExNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RpbWVJbnB1dFR5cGUuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiSFRNTElu
cHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklucHV0VHlw
ZU5hbWVzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1Mb2NhbGUuaCIKICNpbmNsdWRlICJTdGVwUmFu
Z2UuaCIKICNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJh
cy5oPgpAQCAtMTA0LDYgKzEwNSwxNiBAQCBib29sIFRpbWVJbnB1dFR5cGU6OmlzVGltZUZpZWxk
KCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBUaW1lSW5wdXRUeXBlOjppc1Zh
bGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPiByZXN1
bHRzKSBjb25zdAoreworICAgIHJldHVybiByZXN1bHRzLmNvbnRhaW5zKERhdGVUaW1lRm9ybWF0
VmFsaWRhdGlvblJlc3VsdHM6Okhhc0hvdXIpCisgICAgICAgICYmIHJlc3VsdHMuY29udGFpbnMo
RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzTWludXRlKTsKK30KKwordm9pZCBU
aW1lSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6
TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0Cit7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCmluZGV4IDg0MTY2YjA5NWFm
MjE4OGNhOGUwNzU2YmU3ZTU1NzExYjEyZDhlZDQuLjU5MzUyODcwNGFjODgyZTVkYjQzYzgwODNj
ZWI0ZDBiODE5ZGQ5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0
VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCkBAIC00OCw2
ICs0OCw5IEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHBhcnNlVG9E
YXRlQ29tcG9uZW50cyhjb25zdCBTdHJpbmdWaWV3JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgT3B0
aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3Vi
bGUpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNUaW1lRmllbGQoKSBjb25zdCBvdmVycmlk
ZTsKKworICAgIGJvb2wgaXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxp
ZGF0aW9uUmVzdWx0cz4pIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc2V0dXBMYXlvdXRQYXJh
bWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25zdCBvdmVy
cmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJ
bnB1dFR5cGUuY3BwCmluZGV4IGIyYmIyNDNiOTA1ZDg0MTViMDM0Yzk0MDZlNGJmYTM4MjFiMzli
YTMuLjNiNzI3MTUwZDg2NjAyZmZiMmVlNWQzOGYzOTNkNGM2NWI5M2FmOGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcApAQCAtODIsNiArODIsMTYgQEAgYm9vbCBXZWVrSW5w
dXRUeXBlOjppc1dlZWtGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wg
V2Vla0lucHV0VHlwZTo6aXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxp
ZGF0aW9uUmVzdWx0cz4gcmVzdWx0cykgY29uc3QKK3sKKyAgICByZXR1cm4gcmVzdWx0cy5jb250
YWlucyhEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNZZWFyKQorICAgICAgICAm
JiByZXN1bHRzLmNvbnRhaW5zKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc1dl
ZWspOworfQorCit2b2lkIFdlZWtJbnB1dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRl
VGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29uc3QKK3sKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvV2Vla0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgK
aW5kZXggZDNiYTE1MTMzZTczNDExZWE4MDU0YzAzM2NmMTA2YTVjMzY2YTNhNy4uOWUyZDQyOGMx
ZDE4NjMxYTQ1YjQwNmY3ODc1Y2UzNDZmNGQ1MTQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5w
dXRUeXBlLmgKQEAgLTQ3LDYgKzQ3LDkgQEAgcHJpdmF0ZToKICAgICBPcHRpb25hbDxEYXRlQ29t
cG9uZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRzKGNvbnN0IFN0cmluZ1ZpZXcmKSBjb25zdCBv
dmVycmlkZTsKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gc2V0TWlsbGlzZWNvbmRUb0Rh
dGVDb21wb25lbnRzKGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1dlZWtGaWVs
ZCgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgYm9vbCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxE
YXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9p
ZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1l
dGVycyYpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43ZWE1ZTJkMDRhZDMyYTRjZTZmZDkwM2IyZWRjZmViNzMwYzg5OTcxCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxl
bWVudC5jcHAKQEAgLTAsMCArMSwyMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJEYXRlVGltZUVkaXRFbGVtZW50LmgiCisKKyNpZiBFTkFCTEUoREFURV9B
TkRfVElNRV9JTlBVVF9UWVBFUykKKworI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCisjaW5j
bHVkZSAiRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmgiCisjaW5jbHVkZSAiRGF0ZVRpbWVGb3JtYXQu
aCIKKyNpbmNsdWRlICJEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1Mb2NhbGUuaCIKKyNpbmNsdWRlICJUZXh0
LmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdCdWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNw
YWNlIEhUTUxOYW1lczsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERhdGVUaW1lRWRp
dEVsZW1lbnQpOworCitjbGFzcyBEYXRlVGltZUVkaXRCdWlsZGVyIDogcHJpdmF0ZSBEYXRlVGlt
ZUZvcm1hdDo6VG9rZW5IYW5kbGVyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEYXRlVGlt
ZUVkaXRCdWlsZGVyKTsKKworcHVibGljOgorICAgIERhdGVUaW1lRWRpdEJ1aWxkZXIoRGF0ZVRp
bWVFZGl0RWxlbWVudCYsIGNvbnN0IERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRl
cnMmKTsKKworICAgIGJvb2wgYnVpbGQoY29uc3QgU3RyaW5nJik7CisKK3ByaXZhdGU6CisgICAg
Ly8gRGF0ZVRpbWVGb3JtYXQ6OlRva2VuSGFuZGxlciBmdW5jdGlvbnM6CisgICAgdm9pZCB2aXNp
dEZpZWxkKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGUsIGludCkgZmluYWw7CisgICAgdm9pZCB2
aXNpdExpdGVyYWwoY29uc3QgU3RyaW5nJikgZmluYWw7CisKKyAgICBEYXRlVGltZUVkaXRFbGVt
ZW50JiBtX2VkaXRFbGVtZW50OworICAgIGNvbnN0IERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91
dFBhcmFtZXRlcnMmIG1fcGFyYW1ldGVyczsKK307CisKK0RhdGVUaW1lRWRpdEJ1aWxkZXI6OkRh
dGVUaW1lRWRpdEJ1aWxkZXIoRGF0ZVRpbWVFZGl0RWxlbWVudCYgZWxlbWVudCwgY29uc3QgRGF0
ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYgbGF5b3V0UGFyYW1ldGVycykKKyAg
ICA6IG1fZWRpdEVsZW1lbnQoZWxlbWVudCkKKyAgICAsIG1fcGFyYW1ldGVycyhsYXlvdXRQYXJh
bWV0ZXJzKQoreworfQorCitib29sIERhdGVUaW1lRWRpdEJ1aWxkZXI6OmJ1aWxkKGNvbnN0IFN0
cmluZyYgZm9ybWF0U3RyaW5nKQoreworICAgIG1fZWRpdEVsZW1lbnQucmVzZXRGaWVsZHMoKTsK
KyAgICByZXR1cm4gRGF0ZVRpbWVGb3JtYXQ6OnBhcnNlKGZvcm1hdFN0cmluZywgKnRoaXMpOwor
fQorCit2b2lkIERhdGVUaW1lRWRpdEJ1aWxkZXI6OnZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZSBmaWVsZFR5cGUsIGludCBjb3VudCkKK3sKKyAgICBjb25zdGV4cHIgaW50IGNv
dW50Rm9yQWJicmV2aWF0ZWRNb250aCA9IDM7CisgICAgY29uc3RleHByIGludCBjb3VudEZvckZ1
bGxNb250aCA9IDQ7CisgICAgY29uc3RleHByIGludCBjb3VudEZvck5hcnJvd01vbnRoID0gNTsK
KyAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBtX2VkaXRFbGVtZW50LmRvY3VtZW50KCk7CisKKyAg
ICBzd2l0Y2ggKGZpZWxkVHlwZSkgeworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlw
ZURheU9mTW9udGg6IHsKKyAgICAgICAgbV9lZGl0RWxlbWVudC5hZGRGaWVsZChEYXRlVGltZURh
eUZpZWxkRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtX2VkaXRFbGVtZW50KSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNb250
aDoKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNb250aFN0YW5kQWxvbmU6IHsK
KyAgICAgICAgc3dpdGNoIChjb3VudCkgeworICAgICAgICBjYXNlIGNvdW50Rm9yTmFycm93TW9u
dGg6CisgICAgICAgIGNhc2UgY291bnRGb3JBYmJyZXZpYXRlZE1vbnRoOiB7CisgICAgICAgICAg
ICBhdXRvIGZpZWxkID0gRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQsIG1fZWRpdEVsZW1lbnQsIGZpZWxkVHlwZSA9PSBEYXRlVGltZUZvcm1hdDo6Rmll
bGRUeXBlTW9udGggPyBtX3BhcmFtZXRlcnMubG9jYWxlLnNob3J0TW9udGhMYWJlbHMoKSA6IG1f
cGFyYW1ldGVycy5sb2NhbGUuc2hvcnRTdGFuZEFsb25lTW9udGhMYWJlbHMoKSk7CisgICAgICAg
ICAgICBtX2VkaXRFbGVtZW50LmFkZEZpZWxkKGZpZWxkKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgICAgIGNhc2UgY291bnRGb3JGdWxsTW9udGg6IHsKKyAgICAgICAgICAg
IGF1dG8gZmllbGQgPSBEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCwgbV9lZGl0RWxlbWVudCwgZmllbGRUeXBlID09IERhdGVUaW1lRm9ybWF0OjpGaWVs
ZFR5cGVNb250aCA/IG1fcGFyYW1ldGVycy5sb2NhbGUubW9udGhMYWJlbHMoKSA6IG1fcGFyYW1l
dGVycy5sb2NhbGUuc3RhbmRBbG9uZU1vbnRoTGFiZWxzKCkpOworICAgICAgICAgICAgbV9lZGl0
RWxlbWVudC5hZGRGaWVsZChmaWVsZCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgICAgICBkZWZhdWx0OiB7CisgICAgICAgICAgICBtX2VkaXRFbGVtZW50LmFkZEZpZWxkKERh
dGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlWWVhcjogewor
ICAgICAgICBtX2VkaXRFbGVtZW50LmFkZEZpZWxkKERhdGVUaW1lWWVhckZpZWxkRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50LCBtX2VkaXRFbGVtZW50KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm47CisgICAgfQorfQorCit2b2lkIERhdGVU
aW1lRWRpdEJ1aWxkZXI6OnZpc2l0TGl0ZXJhbChjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAg
QVNTRVJUKHRleHQubGVuZ3RoKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdGV4dFBzZXVkb0lkKCItd2Via2l0LWRhdGV0aW1lLWVkaXQt
dGV4dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBhdXRvIGVsZW1l
bnQgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKG1fZWRpdEVsZW1lbnQuZG9jdW1lbnQoKSk7Cisg
ICAgZWxlbWVudC0+c2V0UHNldWRvKHRleHRQc2V1ZG9JZCk7CisgICAgZWxlbWVudC0+YXBwZW5k
Q2hpbGQoVGV4dDo6Y3JlYXRlKG1fZWRpdEVsZW1lbnQuZG9jdW1lbnQoKSwgdGV4dCkpOworICAg
IG1fZWRpdEVsZW1lbnQuZmllbGRzV3JhcHBlckVsZW1lbnQoKS0+YXBwZW5kQ2hpbGQoZWxlbWVu
dCk7Cit9CisKK0RhdGVUaW1lRWRpdEVsZW1lbnQ6OkVkaXRDb250cm9sT3duZXI6On5FZGl0Q29u
dHJvbE93bmVyKCkKK3sKK30KKworRGF0ZVRpbWVFZGl0RWxlbWVudDo6RGF0ZVRpbWVFZGl0RWxl
bWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEVkaXRDb250cm9sT3duZXImIGVkaXRDb250cm9sT3du
ZXIpCisgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQorICAgICwgbV9lZGl0
Q29udHJvbE93bmVyKCZlZGl0Q29udHJvbE93bmVyKQoreworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGF0ZVRpbWVFZGl0UHNldWRvSWQoIi13
ZWJraXQtZGF0ZXRpbWUtZWRpdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzZXRQc2V1ZG8oZGF0ZVRpbWVFZGl0UHNldWRvSWQpOworfQorCitEYXRlVGltZUVkaXRF
bGVtZW50Ojp+RGF0ZVRpbWVFZGl0RWxlbWVudCgpCit7Cit9CisKK2lubGluZSBFbGVtZW50KiBE
YXRlVGltZUVkaXRFbGVtZW50OjpmaWVsZHNXcmFwcGVyRWxlbWVudCgpIGNvbnN0Cit7CisgICAg
QVNTRVJUKGZpcnN0Q2hpbGQoKSk7CisgICAgcmV0dXJuIGRvd25jYXN0PEVsZW1lbnQ+KGZpcnN0
Q2hpbGQoKSk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6YWRkRmllbGQoUmVmPERh
dGVUaW1lRmllbGRFbGVtZW50PiBmaWVsZCkKK3sKKyAgICBpZiAobV9maWVsZHMuc2l6ZSgpID09
IG1fZmllbGRzLmNhcGFjaXR5KCkpCisgICAgICAgIHJldHVybjsKKyAgICBtX2ZpZWxkcy5hcHBl
bmQoZmllbGQpOworICAgIGZpZWxkc1dyYXBwZXJFbGVtZW50KCktPmFwcGVuZENoaWxkKGZpZWxk
KTsKK30KKworUmVmPERhdGVUaW1lRWRpdEVsZW1lbnQ+IERhdGVUaW1lRWRpdEVsZW1lbnQ6OmNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIEVkaXRDb250cm9sT3duZXImIGVkaXRDb250cm9sT3du
ZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0ZVRpbWVFZGl0RWxlbWVudChkb2N1
bWVudCwgZWRpdENvbnRyb2xPd25lcikpOworfQorCit2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6
OmxheW91dChjb25zdCBMYXlvdXRQYXJhbWV0ZXJzJiBsYXlvdXRQYXJhbWV0ZXJzKQoreworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmllbGRz
V3JhcHBlclBzZXVkb0lkKCItd2Via2l0LWRhdGV0aW1lLWVkaXQtZmllbGRzLXdyYXBwZXIiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisKKyAgICBpZiAoIWZpcnN0Q2hpbGQo
KSkgeworICAgICAgICBhdXRvIGVsZW1lbnQgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KCkpOworICAgICAgICBlbGVtZW50LT5zZXRQc2V1ZG8oZmllbGRzV3JhcHBlclBzZXVkb0lk
KTsKKyAgICAgICAgYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAgRWxlbWVudCog
ZmllbGRzV3JhcHBlciA9IGZpZWxkc1dyYXBwZXJFbGVtZW50KCk7CisKKyAgICBEYXRlVGltZUVk
aXRCdWlsZGVyIGJ1aWxkZXIoKnRoaXMsIGxheW91dFBhcmFtZXRlcnMpOworICAgIE5vZGUqIGxh
c3RDaGlsZFRvQmVSZW1vdmVkID0gZmllbGRzV3JhcHBlci0+bGFzdENoaWxkKCk7CisgICAgaWYg
KCFidWlsZGVyLmJ1aWxkKGxheW91dFBhcmFtZXRlcnMuZGF0ZVRpbWVGb3JtYXQpIHx8IG1fZmll
bGRzLmlzRW1wdHkoKSkgeworICAgICAgICBsYXN0Q2hpbGRUb0JlUmVtb3ZlZCA9IGZpZWxkc1dy
YXBwZXItPmxhc3RDaGlsZCgpOworICAgICAgICBidWlsZGVyLmJ1aWxkKGxheW91dFBhcmFtZXRl
cnMuZmFsbGJhY2tEYXRlVGltZUZvcm1hdCk7CisgICAgfQorCisgICAgaWYgKGxhc3RDaGlsZFRv
QmVSZW1vdmVkKSB7CisgICAgICAgIGZvciAoTm9kZSogY2hpbGROb2RlID0gZmllbGRzV3JhcHBl
ci0+Zmlyc3RDaGlsZCgpOyBjaGlsZE5vZGU7IGNoaWxkTm9kZSA9IGZpZWxkc1dyYXBwZXItPmZp
cnN0Q2hpbGQoKSkgeworICAgICAgICAgICAgZmllbGRzV3JhcHBlci0+cmVtb3ZlQ2hpbGQoKmNo
aWxkTm9kZSk7CisgICAgICAgICAgICBpZiAoY2hpbGROb2RlID09IGxhc3RDaGlsZFRvQmVSZW1v
dmVkKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCitBdG9t
U3RyaW5nIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmxvY2FsZUlkZW50aWZpZXIoKSBjb25zdAorewor
ICAgIHJldHVybiBtX2VkaXRDb250cm9sT3duZXIgPyBtX2VkaXRDb250cm9sT3duZXItPmxvY2Fs
ZUlkZW50aWZpZXIoKSA6IG51bGxBdG9tKCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVu
dDo6cmVzZXRGaWVsZHMoKQoreworICAgIG1fZmllbGRzLnNocmluaygwKTsKK30KKwordm9pZCBE
YXRlVGltZUVkaXRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZShjb25zdCBMYXlvdXRQYXJhbWV0ZXJz
JiBsYXlvdXRQYXJhbWV0ZXJzLCBjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkKK3sKKyAgICBs
YXlvdXQobGF5b3V0UGFyYW1ldGVycyk7CisgICAgZm9yIChzaXplX3QgZmllbGRJbmRleCA9IDA7
IGZpZWxkSW5kZXggPCBtX2ZpZWxkcy5zaXplKCk7ICsrZmllbGRJbmRleCkKKyAgICAgICAgbV9m
aWVsZHNbZmllbGRJbmRleF0tPnNldFZhbHVlQXNEYXRlKGRhdGUpOworfQorCit2b2lkIERhdGVU
aW1lRWRpdEVsZW1lbnQ6OnNldEVtcHR5VmFsdWUoY29uc3QgTGF5b3V0UGFyYW1ldGVycyYgbGF5
b3V0UGFyYW1ldGVycykKK3sKKyAgICBsYXlvdXQobGF5b3V0UGFyYW1ldGVycyk7CisgICAgZm9y
IChzaXplX3QgZmllbGRJbmRleCA9IDA7IGZpZWxkSW5kZXggPCBtX2ZpZWxkcy5zaXplKCk7ICsr
ZmllbGRJbmRleCkKKyAgICAgICAgbV9maWVsZHNbZmllbGRJbmRleF0tPnNldEVtcHR5VmFsdWUo
KTsKK30KKworU3RyaW5nIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnZhbHVlKCkgY29uc3QKK3sKKyAg
ICBpZiAoIW1fZWRpdENvbnRyb2xPd25lcikKKyAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7
CisgICAgcmV0dXJuIG1fZWRpdENvbnRyb2xPd25lci0+dmFsdWVGb3JFZGl0Q29udHJvbCgpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREFURV9BTkRf
VElNRV9JTlBVVF9UWVBFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RhdGVUaW1lRWRpdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lRWRpdEVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNTJmZjIyMmJmY2Y1MTcyMjkzM2RjOWI1NzMx
MjE4OGYyNjdiZDc5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKKyNp
bmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgorI2luY2x1ZGUgIkRhdGVUaW1lRmllbGRFbGVtZW50
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTG9jYWxlOworCitjbGFzcyBEYXRl
VGltZUVkaXRFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxEaXZFbGVtZW50LCBwdWJsaWMgRGF0
ZVRpbWVGaWVsZEVsZW1lbnQ6OkZpZWxkT3duZXIgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RUQoRGF0ZVRpbWVFZGl0RWxlbWVudCk7CitwdWJsaWM6CisgICAgY2xhc3MgRWRpdENvbnRyb2xP
d25lciB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5FZGl0Q29udHJvbE93bmVyKCk7
CisgICAgICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlRm9yRWRpdENvbnRyb2woKSBjb25zdCA9IDA7
CisgICAgICAgIHZpcnR1YWwgQXRvbVN0cmluZyBsb2NhbGVJZGVudGlmaWVyKCkgY29uc3QgPSAw
OworICAgIH07CisKKyAgICBzdHJ1Y3QgTGF5b3V0UGFyYW1ldGVycyB7CisgICAgICAgIFN0cmlu
ZyBkYXRlVGltZUZvcm1hdDsKKyAgICAgICAgU3RyaW5nIGZhbGxiYWNrRGF0ZVRpbWVGb3JtYXQ7
CisgICAgICAgIExvY2FsZSYgbG9jYWxlOworCisgICAgICAgIExheW91dFBhcmFtZXRlcnMoTG9j
YWxlJiBsb2NhbGUpCisgICAgICAgICAgICA6IGxvY2FsZShsb2NhbGUpCisgICAgICAgIHsKKyAg
ICAgICAgfQorICAgIH07CisKKyAgICBzdGF0aWMgUmVmPERhdGVUaW1lRWRpdEVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCYsIEVkaXRDb250cm9sT3duZXImKTsKKworICAgIHZpcnR1YWwgfkRhdGVU
aW1lRWRpdEVsZW1lbnQoKTsKKyAgICB2b2lkIGFkZEZpZWxkKFJlZjxEYXRlVGltZUZpZWxkRWxl
bWVudD4pOworICAgIEVsZW1lbnQqIGZpZWxkc1dyYXBwZXJFbGVtZW50KCkgY29uc3Q7CisgICAg
dm9pZCByZXNldEZpZWxkcygpOworICAgIHZvaWQgc2V0RW1wdHlWYWx1ZShjb25zdCBMYXlvdXRQ
YXJhbWV0ZXJzJik7CisgICAgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBMYXlvdXRQYXJhbWV0
ZXJzJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMmKTsKKyAgICBTdHJpbmcgdmFsdWUoKSBjb25zdDsK
KworcHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGludmFsaWRGaWVsZEluZGV4ID0g
c3RhdGljX2Nhc3Q8c2l6ZV90PigtMSk7CisKKyAgICAvLyBEYXRldGltZSBjYW4gYmUgcmVwcmVz
ZW50ZWQgYnkgYXQgbW9zdCA4IGZpZWxkczoKKyAgICAvLyAxLiB5ZWFyCisgICAgLy8gMi4gbW9u
dGgKKyAgICAvLyAzLiBkYXktb2YtbW9udGgKKyAgICAvLyA0LiBob3VyCisgICAgLy8gNS4gbWlu
dXRlCisgICAgLy8gNi4gc2Vjb25kCisgICAgLy8gNy4gbWlsbGlzZWNvbmQKKyAgICAvLyA4LiBB
TS9QTQorICAgIHN0YXRpYyBjb25zdCBpbnQgbWF4aW11bU51bWJlck9mRmllbGRzID0gODsKKwor
ICAgIERhdGVUaW1lRWRpdEVsZW1lbnQoRG9jdW1lbnQmLCBFZGl0Q29udHJvbE93bmVyJik7CisK
KyAgICB2b2lkIGxheW91dChjb25zdCBMYXlvdXRQYXJhbWV0ZXJzJik7CisKKyAgICAvLyBEYXRl
VGltZUZpZWxkRWxlbWVudDo6RmllbGRPd25lciBmdW5jdGlvbnM6CisgICAgQXRvbVN0cmluZyBs
b2NhbGVJZGVudGlmaWVyKCkgY29uc3QgZmluYWw7CisKKyAgICBWZWN0b3I8UmVmPERhdGVUaW1l
RmllbGRFbGVtZW50PiwgbWF4aW11bU51bWJlck9mRmllbGRzPiBtX2ZpZWxkczsKKyAgICBFZGl0
Q29udHJvbE93bmVyKiBtX2VkaXRDb250cm9sT3duZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yMDkyNTAzMGM5ODJjZjA3YzFjYjI1N2E2MmFkMjE4NzU1ODQxZDc3Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVs
ZEVsZW1lbnQuY3BwCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJEYXRlVGltZUZpZWxkRWxlbWVudC5oIgorCisjaWYgRU5BQkxFKERB
VEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKKyNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgor
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybUxvY2FsZS5oIgorI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRGF0ZVRpbWVG
aWVsZEVsZW1lbnQpOworCitEYXRlVGltZUZpZWxkRWxlbWVudDo6RmllbGRPd25lcjo6fkZpZWxk
T3duZXIoKQoreworfQorCitEYXRlVGltZUZpZWxkRWxlbWVudDo6RGF0ZVRpbWVGaWVsZEVsZW1l
bnQoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyKQorICAgIDogSFRN
TERpdkVsZW1lbnQoZGl2VGFnLCBkb2N1bWVudCkKKyAgICAsIG1fZmllbGRPd25lcigmZmllbGRP
d25lcikKK3sKK30KKwordm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6aW5pdGlhbGl6ZShjb25z
dCBBdG9tU3RyaW5nJiBwc2V1ZG8pCit7CisgICAgc2V0UHNldWRvKHBzZXVkbyk7Cit9CisKK0xv
Y2FsZSYgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmxvY2FsZUZvck93bmVyKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gZG9jdW1lbnQoKS5nZXRDYWNoZWRMb2NhbGUobG9jYWxlSWRlbnRpZmllcigpKTsK
K30KKworQXRvbVN0cmluZyBEYXRlVGltZUZpZWxkRWxlbWVudDo6bG9jYWxlSWRlbnRpZmllcigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZmllbGRPd25lciA/IG1fZmllbGRPd25lci0+bG9jYWxl
SWRlbnRpZmllcigpIDogbnVsbEF0b20oKTsKK30KKwordm9pZCBEYXRlVGltZUZpZWxkRWxlbWVu
dDo6dXBkYXRlVmlzaWJsZVZhbHVlKCkKK3sKKyAgICBpZiAoIWZpcnN0Q2hpbGQoKSkKKyAgICAg
ICAgYXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50KCksIGVtcHR5U3RyaW5nKCkpKTsK
KworICAgIFRleHQmIHRleHROb2RlID0gZG93bmNhc3Q8VGV4dD4oKmZpcnN0Q2hpbGQoKSk7Cisg
ICAgY29uc3QgU3RyaW5nIG5ld1Zpc2libGVWYWx1ZSA9IHZpc2libGVWYWx1ZSgpOworICAgIGlm
ICh0ZXh0Tm9kZS53aG9sZVRleHQoKSA9PSBuZXdWaXNpYmxlVmFsdWUpCisgICAgICAgIHJldHVy
bjsKKworICAgIHRleHROb2RlLnJlcGxhY2VXaG9sZVRleHQobmV3VmlzaWJsZVZhbHVlKTsKK30K
KworYm9vbCBEYXRlVGltZUZpZWxkRWxlbWVudDo6c3VwcG9ydHNGb2N1cygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjAzMTU4Zjcy
OWU0ZTdhMGE3NTNlOTMxOWEyZTNjMDM4YjdmZjAxMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmgKQEAgLTAsMCArMSw2
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoREFURV9BTkRfVElN
RV9JTlBVVF9UWVBFUykKKworI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgRGF0ZUNvbXBvbmVudHM7CisKK2NsYXNzIERhdGVUaW1lRmll
bGRFbGVtZW50IDogcHVibGljIEhUTUxEaXZFbGVtZW50IHsKKyAgICBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEKERhdGVUaW1lRmllbGRFbGVtZW50KTsKK3B1YmxpYzoKKyAgICBjbGFzcyBGaWVsZE93
bmVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfkZpZWxkT3duZXIoKTsKKyAgICAg
ICAgdmlydHVhbCBBdG9tU3RyaW5nIGxvY2FsZUlkZW50aWZpZXIoKSBjb25zdCA9IDA7CisgICAg
fTsKKworICAgIHZpcnR1YWwgYm9vbCBoYXNWYWx1ZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0RW1wdHlWYWx1ZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0Rh
dGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVl
QXNJbnRlZ2VyKGludCkgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlKCkgY29uc3QgPSAw
OworICAgIHZpcnR1YWwgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0ID0gMDsKKworcHJvdGVj
dGVkOgorICAgIERhdGVUaW1lRmllbGRFbGVtZW50KERvY3VtZW50JiwgRmllbGRPd25lciYpOwor
ICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBBdG9tU3RyaW5nJiBwc2V1ZG8pOworICAgIExvY2Fs
ZSYgbG9jYWxlRm9yT3duZXIoKSBjb25zdDsKKyAgICBBdG9tU3RyaW5nIGxvY2FsZUlkZW50aWZp
ZXIoKSBjb25zdDsKKyAgICB2b2lkIHVwZGF0ZVZpc2libGVWYWx1ZSgpOworICAgIHZpcnR1YWwg
aW50IHZhbHVlQXNJbnRlZ2VyKCkgY29uc3QgPSAwOworCitwcml2YXRlOgorICAgIGJvb2wgc3Vw
cG9ydHNGb2N1cygpIGNvbnN0IG92ZXJyaWRlOworCisgICAgRmllbGRPd25lciogbV9maWVsZE93
bmVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERB
VEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjRhMDAxMjJkMGVm
OGMxMDgxMDUyNmE5NDk3YTc5ZjdmZDlhZjVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcApAQCAtMCwwICsxLDEx
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRhdGVUaW1l
RmllbGRFbGVtZW50cy5oIgorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMp
CisKKyNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKERhdGVUaW1lRGF5RmllbGRFbGVtZW50KTsKKworRGF0ZVRpbWVEYXlGaWVsZEVsZW1l
bnQ6OkRhdGVUaW1lRGF5RmllbGRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRPd25l
ciYgZmllbGRPd25lcikKKyAgICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChkb2N1bWVu
dCwgZmllbGRPd25lciwgIi0tIl9zKQoreworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGF5UHN1ZWRvSWQoIi13ZWJraXQtZGF0ZXRpbWUtZWRp
dC1kYXktZmllbGQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgaW5p
dGlhbGl6ZShkYXlQc3VlZG9JZCk7Cit9CisKK1JlZjxEYXRlVGltZURheUZpZWxkRWxlbWVudD4g
RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIEZpZWxk
T3duZXImIGZpZWxkT3duZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0ZVRpbWVE
YXlGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIpKTsKK30KKwordm9pZCBEYXRlVGlt
ZURheUZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRh
dGUpCit7CisgICAgc2V0VmFsdWVBc0ludGVnZXIoZGF0ZS5tb250aERheSgpKTsKK30KKworV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQpOworCitE
YXRlVGltZU1vbnRoRmllbGRFbGVtZW50OjpEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50KERvY3Vt
ZW50JiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lcikKKyAgICA6IERhdGVUaW1lTnVt
ZXJpY0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwgIi0tIl9zKQoreworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW9udGhQc3Vl
ZG9JZCgiLXdlYmtpdC1kYXRldGltZS1lZGl0LW1vbnRoLWZpZWxkIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIGluaXRpYWxpemUobW9udGhQc3VlZG9JZCk7Cit9CisK
K1JlZjxEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50PiBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50
OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyKQorewor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQoZG9jdW1l
bnQsIGZpZWxkT3duZXIpKTsKK30KKwordm9pZCBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50Ojpz
ZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkKK3sKKyAgICBzZXRWYWx1
ZUFzSW50ZWdlcihkYXRlLm1vbnRoKCkgKyAxKTsKK30KKworV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudCk7CisKK0RhdGVUaW1lU3lt
Ym9saWNNb250aEZpZWxkRWxlbWVudDo6RGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50
KERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lciwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIGxhYmVscykKKyAgICA6IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQoZG9j
dW1lbnQsIGZpZWxkT3duZXIsIGxhYmVscykKK3sKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vbnRoUHN1ZWRvSWQoIi13ZWJraXQtZGF0ZXRp
bWUtZWRpdC1tb250aC1maWVsZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBpbml0aWFsaXplKG1vbnRoUHN1ZWRvSWQpOworfQorCitSZWY8RGF0ZVRpbWVTeW1ib2xp
Y01vbnRoRmllbGRFbGVtZW50PiBEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OmNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBsYWJlbHMpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0ZVRp
bWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCBsYWJlbHMp
KTsKK30KKwordm9pZCBEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OnNldFZhbHVl
QXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQoreworICAgIHNldFZhbHVlQXNJbnRl
Z2VyKGRhdGUubW9udGgoKSk7Cit9CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChEYXRl
VGltZVllYXJGaWVsZEVsZW1lbnQpOworCitEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQ6OkRhdGVU
aW1lWWVhckZpZWxkRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxk
T3duZXIpCisgICAgOiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxk
T3duZXIsICItLS0tIl9zKQoreworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4geWVhclBzdWVkb0lkKCItd2Via2l0LWRhdGV0aW1lLWVkaXQteWVh
ci1maWVsZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBpbml0aWFs
aXplKHllYXJQc3VlZG9JZCk7Cit9CisKK1JlZjxEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQ+IERh
dGVUaW1lWWVhckZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRP
d25lciYgZmllbGRPd25lcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXRlVGltZVll
YXJGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIpKTsKK30KKwordm9pZCBEYXRlVGlt
ZVllYXJGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBk
YXRlKQoreworICAgIHNldFZhbHVlQXNJbnRlZ2VyKGRhdGUuZnVsbFllYXIoKSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lO
UFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVGaWVsZEVsZW1lbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZp
ZWxkRWxlbWVudHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzhjZDE0ZGY2OTliNzM3YTY4OTY2MzRhNjkzNmQ1
ZWIxNWJmYTM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKworI2lu
Y2x1ZGUgIkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oIgorI2luY2x1ZGUgIkRhdGVUaW1l
U3ltYm9saWNGaWVsZEVsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBE
YXRlVGltZURheUZpZWxkRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBEYXRlVGltZU51bWVyaWNGaWVs
ZEVsZW1lbnQgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRGF0ZVRpbWVEYXlGaWVsZEVs
ZW1lbnQpOworCitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxEYXRlVGltZURheUZpZWxkRWxlbWVu
dD4gY3JlYXRlKERvY3VtZW50JiwgRmllbGRPd25lciYpOworCitwcml2YXRlOgorICAgIERhdGVU
aW1lRGF5RmllbGRFbGVtZW50KERvY3VtZW50JiwgRmllbGRPd25lciYpOworCisgICAgLy8gRGF0
ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zOgorICAgIHZvaWQgc2V0VmFsdWVBc0RhdGUoY29u
c3QgRGF0ZUNvbXBvbmVudHMmKSBmaW5hbDsKK307CisKK2NsYXNzIERhdGVUaW1lTW9udGhGaWVs
ZEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50IHsKKyAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQpOworCitw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50PiBjcmVhdGUo
RG9jdW1lbnQmLCBGaWVsZE93bmVyJik7CisKK3ByaXZhdGU6CisgICAgRGF0ZVRpbWVNb250aEZp
ZWxkRWxlbWVudChEb2N1bWVudCYsIEZpZWxkT3duZXImKTsKKworICAgIC8vIERhdGVUaW1lRmll
bGRFbGVtZW50IGZ1bmN0aW9uczoKKyAgICB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVD
b21wb25lbnRzJikgZmluYWw7Cit9OworCitjbGFzcyBEYXRlVGltZVN5bWJvbGljTW9udGhGaWVs
ZEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCB7Cisg
ICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1l
bnQpOworCitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxEYXRlVGltZVN5bWJvbGljTW9udGhGaWVs
ZEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYsIEZpZWxkT3duZXImLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYpOworCitwcml2YXRlOgorICAgIERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVu
dChEb2N1bWVudCYsIEZpZWxkT3duZXImLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpOworCisgICAg
Ly8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zOgorICAgIHZvaWQgc2V0VmFsdWVBc0Rh
dGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmKSBmaW5hbDsKK307CisKK2NsYXNzIERhdGVUaW1lWWVh
ckZpZWxkRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQg
eworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50KTsK
KworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50PiBjcmVh
dGUoRG9jdW1lbnQmLCBGaWVsZE93bmVyJik7CisKK3ByaXZhdGU6CisgICAgRGF0ZVRpbWVZZWFy
RmllbGRFbGVtZW50KERvY3VtZW50JiwgRmllbGRPd25lciYpOworCisgICAgLy8gRGF0ZVRpbWVG
aWVsZEVsZW1lbnQgZnVuY3Rpb25zOgorICAgIHZvaWQgc2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0
ZUNvbXBvbmVudHMmKSBmaW5hbDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZWI3N2I1NWYyZDM5NzA0MGM1MzExZDU1ZDVjOGY3YWY1ZDc3MzFhMwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVt
ZXJpY0ZpZWxkRWxlbWVudC5jcHAKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oIgor
CisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKKyNpbmNsdWRlICJQbGF0
Zm9ybUxvY2FsZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERhdGVUaW1lTnVt
ZXJpY0ZpZWxkRWxlbWVudCk7CisKK0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6RGF0ZVRp
bWVOdW1lcmljRmllbGRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRPd25lciYgZmll
bGRPd25lciwgY29uc3QgU3RyaW5nJiBwbGFjZWhvbGRlcikKKyAgICA6IERhdGVUaW1lRmllbGRF
bGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyKQorICAgICwgbV9wbGFjZWhvbGRlcihwbGFjZWhv
bGRlcikKKyAgICAsIG1fdmFsdWUoMCkKKyAgICAsIG1faGFzVmFsdWUoZmFsc2UpCit7Cit9CisK
K1N0cmluZyBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmZvcm1hdFZhbHVlKGludCB2YWx1
ZSkgY29uc3QKK3sKKyAgICBMb2NhbGUmIGxvY2FsZSA9IGxvY2FsZUZvck93bmVyKCk7CisgICAg
cmV0dXJuIGxvY2FsZS5jb252ZXJ0VG9Mb2NhbGl6ZWROdW1iZXIobWFrZVN0cmluZyhwYWQoJzAn
LCAyLCB2YWx1ZSkpKTsKK30KKworYm9vbCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6Omhh
c1ZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYXNWYWx1ZTsKK30KKwordm9pZCBEYXRl
VGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUoY29uc3QgQXRvbVN0cmluZyYgcHNl
dWRvKQoreworICAgIERhdGVUaW1lRmllbGRFbGVtZW50Ojppbml0aWFsaXplKHBzZXVkbyk7Cit9
CisKK3ZvaWQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpzZXRFbXB0eVZhbHVlKCkKK3sK
KyAgICBtX3ZhbHVlID0gMDsKKyAgICBtX2hhc1ZhbHVlID0gZmFsc2U7CisgICAgdXBkYXRlVmlz
aWJsZVZhbHVlKCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpzZXRW
YWx1ZUFzSW50ZWdlcihpbnQgdmFsdWUpCit7CisgICAgbV92YWx1ZSA9IHZhbHVlOworICAgIG1f
aGFzVmFsdWUgPSB0cnVlOworICAgIHVwZGF0ZVZpc2libGVWYWx1ZSgpOworfQorCitTdHJpbmcg
RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojp2YWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1faGFzVmFsdWUgPyBmb3JtYXRWYWx1ZShtX3ZhbHVlKSA6IGVtcHR5U3RyaW5nKCk7Cit9CisK
K2ludCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnZhbHVlQXNJbnRlZ2VyKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9oYXNWYWx1ZSA/IG1fdmFsdWUgOiAtMTsKK30KKworU3RyaW5nIERh
dGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6dmlzaWJsZVZhbHVlKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9oYXNWYWx1ZSA/IHZhbHVlKCkgOiBtX3BsYWNlaG9sZGVyOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9U
WVBFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVt
ZXJpY0ZpZWxkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWJlMzllNGNiNjdmNTdmNDRmZWZiZDRi
YjhmYTExY2EzZDQ1NDJjZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCkBAIC0wLDAgKzEsNjMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRf
VFlQRVMpCisKKyNpbmNsdWRlICJEYXRlVGltZUZpZWxkRWxlbWVudC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCA6IHB1YmxpYyBE
YXRlVGltZUZpZWxkRWxlbWVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChEYXRlVGlt
ZU51bWVyaWNGaWVsZEVsZW1lbnQpOworcHVibGljOgorCitwcm90ZWN0ZWQ6CisgICAgRGF0ZVRp
bWVOdW1lcmljRmllbGRFbGVtZW50KERvY3VtZW50JiwgRmllbGRPd25lciYsIGNvbnN0IFN0cmlu
ZyYpOworCisgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zOgorICAgIGJvb2wg
aGFzVmFsdWUoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgQXRvbVN0
cmluZyYpOworICAgIHZvaWQgc2V0RW1wdHlWYWx1ZSgpIGZpbmFsOworICAgIHZvaWQgc2V0VmFs
dWVBc0ludGVnZXIoaW50KSBvdmVycmlkZTsKKyAgICBpbnQgdmFsdWVBc0ludGVnZXIoKSBjb25z
dCBmaW5hbDsKKyAgICBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgZmluYWw7CisKK3ByaXZh
dGU6CisgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zOgorICAgIFN0cmluZyB2
YWx1ZSgpIGNvbnN0IGZpbmFsOworCisgICAgU3RyaW5nIGZvcm1hdFZhbHVlKGludCkgY29uc3Q7
CisKKyAgICBjb25zdCBTdHJpbmcgbV9wbGFjZWhvbGRlcjsKKyAgICBpbnQgbV92YWx1ZTsKKyAg
ICBib29sIG1faGFzVmFsdWU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNGRjMjJhZWYyODAyZGZjYzQ1MWFjMGU2YzI5MjBmMjJhNTBlYjhhZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3lt
Ym9saWNGaWVsZEVsZW1lbnQuY3BwCkBAIC0wLDAgKzEsMTA1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5o
IgorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKKyNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChEYXRlVGltZVN5bWJvbGlj
RmllbGRFbGVtZW50KTsKKworc3RhdGljIEF0b21TdHJpbmcgbWFrZVZpc2libGVFbXB0eVZhbHVl
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzeW1ib2xzKQoreworICAgIHVuc2lnbmVkIG1heGltdW1M
ZW5ndGggPSAwOworICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IHN5bWJvbHMu
c2l6ZSgpOyArK2luZGV4KQorICAgICAgICBtYXhpbXVtTGVuZ3RoID0gc3RkOjptYXgobWF4aW11
bUxlbmd0aCwgbnVtR3JhcGhlbWVDbHVzdGVycyhzeW1ib2xzW2luZGV4XSkpOworICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eShtYXhpbXVtTGVu
Z3RoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGxlbmd0aCA9IDA7IGxlbmd0aCA8IG1heGltdW1MZW5n
dGg7ICsrbGVuZ3RoKQorICAgICAgICBidWlsZGVyLmFwcGVuZCgnLScpOworICAgIHJldHVybiBi
dWlsZGVyLnRvQXRvbVN0cmluZygpOworfQorCitEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50
OjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRP
d25lciYgZmllbGRPd25lciwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHN5bWJvbHMpCisgICAgOiBE
YXRlVGltZUZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lcikKKyAgICAsIG1fc3ltYm9s
cyhzeW1ib2xzKQorICAgICwgbV92aXNpYmxlRW1wdHlWYWx1ZShtYWtlVmlzaWJsZUVtcHR5VmFs
dWUoc3ltYm9scykpCisgICAgLCBtX3NlbGVjdGVkSW5kZXgoLTEpCit7CisgICAgQVNTRVJUKCFz
eW1ib2xzLmlzRW1wdHkoKSk7Cit9CisKK2Jvb2wgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVu
dDo6aGFzVmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBtX3NlbGVjdGVkSW5kZXggPj0gMDsK
K30KKwordm9pZCBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojppbml0aWFsaXplKGNvbnN0
IEF0b21TdHJpbmcmIHBzZXVkbykKK3sKKyAgICBEYXRlVGltZUZpZWxkRWxlbWVudDo6aW5pdGlh
bGl6ZShwc2V1ZG8pOworfQorCit2b2lkIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnNl
dEVtcHR5VmFsdWUoKQoreworICAgIG1fc2VsZWN0ZWRJbmRleCA9IGludmFsaWRJbmRleDsKKyAg
ICB1cGRhdGVWaXNpYmxlVmFsdWUoKTsKK30KKwordm9pZCBEYXRlVGltZVN5bWJvbGljRmllbGRF
bGVtZW50OjpzZXRWYWx1ZUFzSW50ZWdlcihpbnQgbmV3U2VsZWN0ZWRJbmRleCkKK3sKKyAgICBt
X3NlbGVjdGVkSW5kZXggPSBzdGQ6Om1heCgwLCBzdGQ6Om1pbihuZXdTZWxlY3RlZEluZGV4LCBz
dGF0aWNfY2FzdDxpbnQ+KG1fc3ltYm9scy5zaXplKCkgLSAxKSkpOworICAgIHVwZGF0ZVZpc2li
bGVWYWx1ZSgpOworfQorCitTdHJpbmcgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6dmFs
dWUoKSBjb25zdAoreworICAgIHJldHVybiBoYXNWYWx1ZSgpID8gbV9zeW1ib2xzW21fc2VsZWN0
ZWRJbmRleF0gOiBlbXB0eVN0cmluZygpOworfQorCitpbnQgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxk
RWxlbWVudDo6dmFsdWVBc0ludGVnZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX3NlbGVjdGVk
SW5kZXg7Cit9CisKK1N0cmluZyBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojp2aXNpYmxl
RW1wdHlWYWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdmlzaWJsZUVtcHR5VmFsdWU7Cit9
CisKK1N0cmluZyBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojp2aXNpYmxlVmFsdWUoKSBj
b25zdAoreworICAgIHJldHVybiBoYXNWYWx1ZSgpID8gbV9zeW1ib2xzW21fc2VsZWN0ZWRJbmRl
eF0gOiB2aXNpYmxlRW1wdHlWYWx1ZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1l
bnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yMTMxMWZiYTNiMDAwNTg4ZGY2ZmFhMzcwYTMxMmM1MDQwODY4MjU0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVT
eW1ib2xpY0ZpZWxkRWxlbWVudC5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKKyNpbmNs
dWRlICJEYXRlVGltZUZpZWxkRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgOiBwdWJsaWMgRGF0ZVRpbWVGaWVsZEVs
ZW1lbnQgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRGF0ZVRpbWVTeW1ib2xpY0ZpZWxk
RWxlbWVudCk7Citwcm90ZWN0ZWQ6CisgICAgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudChE
b2N1bWVudCYsIEZpZWxkT3duZXImLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpOworICAgIHNpemVf
dCBzeW1ib2xzU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3ltYm9scy5zaXplKCk7IH0KKyAgICBi
b29sIGhhc1ZhbHVlKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IEF0
b21TdHJpbmcmIHBzZXVkbyk7CisgICAgdm9pZCBzZXRFbXB0eVZhbHVlKCkgZmluYWw7CisgICAg
dm9pZCBzZXRWYWx1ZUFzSW50ZWdlcihpbnQpIGZpbmFsOworICAgIGludCB2YWx1ZUFzSW50ZWdl
cigpIGNvbnN0IGZpbmFsOworCitwcml2YXRlOgorICAgIHN0YXRpYyBjb25zdCBpbnQgaW52YWxp
ZEluZGV4ID0gLTE7CisKKyAgICBTdHJpbmcgdmlzaWJsZUVtcHR5VmFsdWUoKSBjb25zdDsKKwor
ICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9uczoKKyAgICBTdHJpbmcgdmFsdWUo
KSBjb25zdCBmaW5hbDsKKyAgICBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgZmluYWw7CisK
KyAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiBtX3N5bWJvbHM7CisKKyAgICBjb25zdCBBdG9tU3Ry
aW5nIG1fdmlzaWJsZUVtcHR5VmFsdWU7CisgICAgaW50IG1fc2VsZWN0ZWRJbmRleDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1F
X0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55
YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCmluZGV4IDIyYzlmNmFiMjMw
MDFhMjkxYzVkMzQ1N2MyMTRiM2UyMDU1OWZjODguLjJlZjkzMTBjYTE1YTdjMTBjNjY5NTZkZGVm
MmRlZGE1Y2QzMDY4ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
eWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKQEAgLTk3NCw2ICs5
NzQsMTAgQEAgaW5wdXRUeXBlV2Vla0VuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiAgIGNvbmRp
dGlvbmFsOiBJTlBVVF9UWVBFX1dFRUsKIAorZGF0ZVRpbWVJbnB1dHNFZGl0YWJsZUNvbXBvbmVu
dHNFbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQorICBjb25kaXRpb25hbDogREFURV9BTkRfVElN
RV9JTlBVVF9UWVBFUworCiAjIERlcHJlY2F0ZWQKIAogaWNlQ2FuZGlkYXRlRmlsdGVyaW5nRW5h
YmxlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlh
bWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IDg4YWU2
YWUyZDlhMzk3NDc2MWNiOTcyNDY0N2ZiMzYxM2RjYjU3NjIuLjI0OGNiN2QzZjJlYjNhNTdlNjkz
NzQyNzU4NDZiMmMxY2ZiZTg4ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXMueWFtbApAQCAtMTgzMyw2ICsxODMzLDE1IEBAIElucHV0VHlwZVdlZWtFbmFibGVkOgogICBj
YXRlZ29yeTogaW50ZXJuYWwKICAgY29uZGl0aW9uOiBFTkFCTEUoSU5QVVRfVFlQRV9XRUVLKQog
CitEYXRlVGltZUlucHV0c0VkaXRhYmxlQ29tcG9uZW50c0VuYWJsZWQ6CisgIHR5cGU6IGJvb2wK
KyAgZGVmYXVsdFZhbHVlOiBERUZBVUxUX0RBVEVfVElNRV9JTlBVVFNfRURJVEFCTEVfQ09NUE9O
RU5UU19FTkFCTEVECisgIGh1bWFuUmVhZGFibGVOYW1lOiAiRGF0ZS9UaW1lIGlucHV0cyBoYXZl
IGVkaXRhYmxlIGNvbXBvbmVudHMiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJs
ZSBtdWx0aXBsZSBlZGl0YWJsZSBjb21wb25lbnRzIGluIGRhdGUvdGltZSBpbnB1dHMiCisgIGNh
dGVnb3J5OiBpbnRlcm5hbAorICB3ZWJjb3JlTmFtZTogZGF0ZVRpbWVJbnB1dHNFZGl0YWJsZUNv
bXBvbmVudHNFbmFibGVkCisgIGNvbmRpdGlvbjogRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRf
VFlQRVMpCisKIERhdGFMaXN0RWxlbWVudEVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVs
dFZhbHVlOiBERUZBVUxUX0RBVEFMSVNUX0VMRU1FTlRfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaAppbmRleCA3YzU5YjI1
NzhiMTY3YjFlZDUyZWI3YzZjMzlkYTRiZThkMDgxMjBjLi5kYTgwNDgwMDA2MjJlYzkxYzkwY2Q1
OTgzMDBiOWQ1Yzg5NTA3NjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaApAQCAtMjM4LDYgKzIzOCwxMiBAQAogI2RlZmluZSBE
RUZBVUxUX0RBVEFMSVNUX0VMRU1FTlRfRU5BQkxFRCB0cnVlCiAjZW5kaWYKIAorI2lmIFBMQVRG
T1JNKE1BQykKKyNkZWZpbmUgREVGQVVMVF9EQVRFX1RJTUVfSU5QVVRTX0VESVRBQkxFX0NPTVBP
TkVOVFNfRU5BQkxFRCB0cnVlCisjZWxzZQorI2RlZmluZSBERUZBVUxUX0RBVEVfVElNRV9JTlBV
VFNfRURJVEFCTEVfQ09NUE9ORU5UU19FTkFCTEVEIGZhbHNlCisjZW5kaWYKKwogI2lmICFQTEFU
Rk9STShNQUMpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkgJiYgIVBMQVRGT1JNKEFQUExFVFYp
CiAjZGVmaW5lIERFRkFVTFRfSU5QVVRfVFlQRV9EQVRFX0VOQUJMRUQgdHJ1ZQogI2RlZmluZSBE
RUZBVUxUX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTF9FTkFCTEVEIHRydWUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjNzZl
NDI0Njg1Y2Y4MDc2ODUzZmEzZjBlMmVmYzAwOTY5MDZlNWZkLi42NzBkMGUzZjU3MmI1M2UyZjMy
MTEwOWQ0NWRhNmI3ZGYzYjhhZTgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMDgtMDcg
IEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10g
RGF0ZSBpbnB1dHMgc2hvdWxkIGNvbnRhaW4gZWRpdGFibGUgY29tcG9uZW50cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1MTU1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSB0ZXN0IHRvIHZl
cmlmeSBzdHlsaW5nIG9mIHBzZXVkbyBlbGVtZW50cyB3aXRoaW4gZGF0ZSBpbnB1dHMuCisgICAg
ICAgIFJlYmFzZWxpbmVkIGV4aXN0aW5nIHRlc3RzIHRvIG1hdGNoIG5ldyBhcHBlYXJhbmNlLgor
CisgICAgICAgICogZmFzdC9mb3Jtcy9kYXRlL2RhdGUtcHNldWRvLWVsZW1lbnRzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9kYXRlL2RhdGUtcHNldWRvLWVsZW1l
bnRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvZmFzdC9mb3Jtcy9k
YXRlL2RhdGUtaW5wdXQtcmVuZGVyaW5nLWJhc2ljLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLXBzZXVkby1lbGVtZW50cy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvZmFzdC9mb3Jtcy90
aW1lL3RpbWUtYXBwZWFyYW5jZS1iYXNpYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy13azIvZmFzdC9mb3Jtcy90aW1lL3RpbWUtaW5wdXQtcmVuZGVyaW5nLWJh
c2ljLWV4cGVjdGVkLnR4dDoKKwogMjAyMC0wOC0wNCAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVz
Z18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgRGlzYWJsZSBpc29sYXRlZC10cmVlLW1vZGUtb24t
b2ZmLmh0bWwgYmVjYXVzZSBpdCBpcyBjYXVzaW5nIG90aGVyIHRlc3QgZmFpbHVyZXMuLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtcHNldWRvLWVsZW1lbnRz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLXBzZXVkby1l
bGVtZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmZjZWY5YmNiZDllNTcxYzViM2Y1YzY0
YWRmZDVmMzkzMmJjOTMzOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvZGF0ZS9kYXRlLXBzZXVkby1lbGVtZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBA
QAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgp
IHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxMDEsMikgc2l6ZSA0
eDE5CisgICAgICAgIHRleHQgcnVuIGF0ICgxMDEsMikgd2lkdGggNDogIiAiCisgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICgxMCwxMCkgc2l6ZSA5
N3gyMiBjbGlwIGF0ICgxMSwxMSkgc2l6ZSA5NXgyMAorICBSZW5kZXJGbGV4aWJsZUJveCB7SU5Q
VVR9IGF0ICgyLDIpIHNpemUgOTd4MjIgW2JnY29sb3I9I0ZGRkZGRl0gW2JvcmRlcjogKDFweCBz
b2xpZCAjNEM0QzRDKV0KKyAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoNiw0KSBzaXplIDU3eDE0
CisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1N3gxNAorICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1NzogIkFwciAxLCAxOTc2IgorbGF5ZXIgYXQgKDExNSwx
MCkgc2l6ZSA5N3gyMiBjbGlwIGF0ICgxMTYsMTEpIHNpemUgOTV4MjAKKyAgUmVuZGVyRmxleGli
bGVCb3gge0lOUFVUfSBhdCAoMTA3LDIpIHNpemUgOTd4MjIgW2JnY29sb3I9I0ZGRkZGRl0gW2Jv
cmRlcjogKDFweCBzb2xpZCAjNEM0QzRDKV0KKyAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMTYs
NCkgc2l6ZSA1N3gxNAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNTd4
MTQKKyAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTc6ICJBcHIgMSwgMTk3NiIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLXBzZXVkby1lbGVtZW50
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtcHNldWRvLWVsZW1lbnRz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDk4OTFiMGE1MjJjN2E4ZTNiMzRmN2QxMGUzZmY3OWUwODg0ODFl
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLXBz
ZXVkby1lbGVtZW50cy5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5
bGU+CitpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0IHsKKyAgICBib3JkZXI6IDFweCBzb2xp
ZCByZWQ7CisgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKKyAgICBmb250LXNpemU6IDE1cHg7
Cit9CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtdGV4dCB7CisgICAgY29sb3I6IHll
bGxvdzsKKyAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOworICAgIGZvbnQtc2l6ZTogMTVweDsK
K30KKworaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1tb250aC1maWVsZCB7CisgICAgY29s
b3I6IHJlZDsKKyAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOworICAgIGZvbnQtc2l6ZTogMTVw
eDsKK30KKworaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1kYXktZmllbGQgeworICAgIGNv
bG9yOiBncmVlbjsKKyAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOworICAgIGZvbnQtc2l6ZTog
MTVweDsKK30KKworaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15ZWFyLWZpZWxkIHsKKyAg
ICBjb2xvcjogYmx1ZTsKKyAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOworICAgIGZvbnQtc2l6
ZTogMTVweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8aW5wdXQgdHlwZT0i
ZGF0ZSIgZGlyPSJsdHIiIHZhbHVlPSIxOTc2LTA0LTAxIj4KKyAgICA8aW5wdXQgdHlwZT0iZGF0
ZSIgZGlyPSJydGwiIHZhbHVlPSIxOTc2LTA0LTAxIj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9mb3Jtcy9kYXRlL2RhdGUt
aW5wdXQtcmVuZGVyaW5nLWJhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azIvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtaW5wdXQtcmVuZGVyaW5nLWJhc2ljLWV4cGVj
dGVkLnR4dAppbmRleCA1YmI1Nzg3MDM3YTQ5M2YyODUwYmZiMjM4OWJiNzg4YWQ4Yjk4OGIxLi5i
MjA0NjgwZGJmNjIwYTY0MmM1ODZmNGUzYTJhNDZlZTg2ZTlkMzM1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWlucHV0LXJlbmRl
cmluZy1iYXNpYy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
Mi9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1pbnB1dC1yZW5kZXJpbmctYmFzaWMtZXhwZWN0ZWQudHh0
CkBAIC0zLDE2ICszLDQ2IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKLSAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTEwLDMpIHNpemUgNHgxOAotICAgICAgICB0ZXh0IHJ1
biBhdCAoMTEwLDMpIHdpZHRoIDQ6ICIgIgorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgx
MTAsMikgc2l6ZSA0eDE4CisgICAgICAgIHRleHQgcnVuIGF0ICgxMTAsMikgd2lkdGggNDogIiAi
CiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKLWxheWVyIGF0ICg4
LDEwKSBzaXplIDExMHgyMSBjbGlwIGF0ICgxMCwxMikgc2l6ZSAxMDZ4MTcKLSAgUmVuZGVyRmxl
eGlibGVCb3gge0lOUFVUfSBhdCAoMCwyKSBzaXplIDExMHgyMSBbYmdjb2xvcj0jRkZGRkZGXSBb
Ym9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQotICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg3
LDQpIHNpemUgNTl4MTMKLSAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDU5
eDEzCi0gICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDU5OiAiQXByIDEsIDE5NzYiCi1s
YXllciBhdCAoMTIyLDEwKSBzaXplIDExMHgyMSBjbGlwIGF0ICgxMjQsMTIpIHNpemUgMTA2eDE3
Ci0gIFJlbmRlckZsZXhpYmxlQm94IHtJTlBVVH0gYXQgKDExNCwyKSBzaXplIDExMHgyMSBbYmdj
b2xvcj0jRkZGRkZGXSBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQotICAgIFJlbmRlckJs
b2NrIHtESVZ9IGF0ICgyNCw0KSBzaXplIDU5eDEzCi0gICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSA1OXgxMwotICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1OTog
IkFwciAxLCAxOTc2IgorbGF5ZXIgYXQgKDgsMTApIHNpemUgMTEweDE5IGNsaXAgYXQgKDEwLDEy
KSBzaXplIDEwNngxNQorICBSZW5kZXJGbGV4aWJsZUJveCB7SU5QVVR9IGF0ICgwLDIpIHNpemUg
MTEweDE5IFtiZ2NvbG9yPSNGRkZGRkZdIFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCits
YXllciBhdCAoMTEsMTMpIHNpemUgNjV4MTMgc2Nyb2xsSGVpZ2h0IDE0CisgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgzLDMpIHNpemUgNjZ4MTMKKyAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCww
KSBzaXplIDY2eDEzCisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSAxN3gx
NQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEsMCkgc2l6ZSAxNXgxMworICAgICAg
ICAgIHRleHQgcnVuIGF0ICgxLDApIHdpZHRoIDE1OiAiMDQiCisgICAgICBSZW5kZXJJbmxpbmUg
e0RJVn0gYXQgKDAsMCkgc2l6ZSA0eDEzCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MTYsMCkgc2l6ZSA0eDEzCisgICAgICAgICAgdGV4dCBydW4gYXQgKDE2LDApIHdpZHRoIDQ6ICIv
IgorICAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgMTZ4MTUKKyAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyMCwwKSBzaXplIDE0eDEzCisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDIwLDApIHdpZHRoIDE0OiAiMDEiCisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQg
KDAsMCkgc2l6ZSA0eDEzCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMzQsMCkgc2l6
ZSA0eDEzCisgICAgICAgICAgdGV4dCBydW4gYXQgKDM0LDApIHdpZHRoIDQ6ICIvIgorICAgICAg
UmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgMjl4MTUKKyAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgzOCwwKSBzaXplIDI3eDEzCisgICAgICAgICAgdGV4dCBydW4gYXQgKDM4
LDApIHdpZHRoIDI3OiAiMTk3NiIKK2xheWVyIGF0ICgxMjIsMTApIHNpemUgMTEweDE5IGNsaXAg
YXQgKDEyNCwxMikgc2l6ZSAxMDZ4MTUKKyAgUmVuZGVyRmxleGlibGVCb3gge0lOUFVUfSBhdCAo
MTE0LDIpIHNpemUgMTEweDE5IFtiZ2NvbG9yPSNGRkZGRkZdIFtib3JkZXI6ICgycHggaW5zZXQg
IzAwMDAwMCldCitsYXllciBhdCAoMTY0LDEzKSBzaXplIDY1eDEzIHNjcm9sbEhlaWdodCAxNAor
ICBSZW5kZXJCbG9jayB7RElWfSBhdCAoNDEsMykgc2l6ZSA2NngxMworICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgwLDApIHNpemUgNjZ4MTMKKyAgICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAo
MCwwKSBzaXplIDE3eDE1CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMSwwKSBzaXpl
IDE1eDEzCisgICAgICAgICAgdGV4dCBydW4gYXQgKDEsMCkgd2lkdGggMTU6ICIwNCIKKyAgICAg
IFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDR4MTMKKyAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgxNiwwKSBzaXplIDR4MTMKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTYs
MCkgd2lkdGggNDogIi8iCisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSAx
NngxNQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDIwLDApIHNpemUgMTR4MTMKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMjAsMCkgd2lkdGggMTQ6ICIwMSIKKyAgICAgIFJlbmRlcklu
bGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDR4MTMKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgzNCwwKSBzaXplIDR4MTMKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzQsMCkgd2lkdGgg
NDogIi8iCisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSAyOXgxNQorICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDM4LDApIHNpemUgMjd4MTMKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMzgsMCkgd2lkdGggMjc6ICIxOTc2IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1wc2V1ZG8tZWxlbWVudHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL2Rh
dGUvZGF0ZS1wc2V1ZG8tZWxlbWVudHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyNTNjNjA5
MjViYWEyODJkYmVkMzE1OTQzYmYxZmRjYmZkMGI4YjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLXBzZXVkby1lbGVt
ZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0OCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYw
MAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgxMTAsNSkgc2l6ZSA0eDE4CisgICAgICAgIHRleHQgcnVuIGF0
ICgxMTAsNSkgd2lkdGggNDogIiAiCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAweDAKK2xheWVyIGF0ICg4LDEwKSBzaXplIDExMHgyNSBjbGlwIGF0ICgxMCwxMikgc2l6
ZSAxMDZ4MjEKKyAgUmVuZGVyRmxleGlibGVCb3gge0lOUFVUfSBhdCAoMCwyKSBzaXplIDExMHgy
NSBbYmdjb2xvcj0jRkZGRkZGXSBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQorbGF5ZXIg
YXQgKDExLDEzKSBzaXplIDk4eDE5IGNsaXAgYXQgKDEyLDE0KSBzaXplIDk2eDE3IHNjcm9sbEhl
aWdodCAxOAorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMywzKSBzaXplIDk5eDE5IFtib3JkZXI6
ICgxcHggc29saWQgI0ZGMDAwMCldCisgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDEsMSkgc2l6
ZSA5N3gxNworICAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgMjF4MTkgW2Nv
bG9yPSNGRjAwMDBdCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMSwwKSBzaXplIDE5
eDE3CisgICAgICAgICAgdGV4dCBydW4gYXQgKDEsMCkgd2lkdGggMTk6ICIwNCIKKyAgICAgIFJl
bmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDEweDE3IFtjb2xvcj0jRkZGRjAwXQorICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDIwLDApIHNpemUgMTB4MTcKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMjAsMCkgd2lkdGggMTA6ICIvIgorICAgICAgUmVuZGVySW5saW5lIHtESVZ9
IGF0ICgwLDApIHNpemUgMjF4MTkgW2NvbG9yPSMwMDgwMDBdCisgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMzAsMCkgc2l6ZSAxOXgxNworICAgICAgICAgIHRleHQgcnVuIGF0ICgzMCww
KSB3aWR0aCAxOTogIjAxIgorICAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUg
MTB4MTcgW2NvbG9yPSNGRkZGMDBdCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNDks
MCkgc2l6ZSAxMHgxNworICAgICAgICAgIHRleHQgcnVuIGF0ICg0OSwwKSB3aWR0aCAxMDogIi8i
CisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSAzOXgxOSBbY29sb3I9IzAw
MDBGRl0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg1OSwwKSBzaXplIDM3eDE3Cisg
ICAgICAgICAgdGV4dCBydW4gYXQgKDU5LDApIHdpZHRoIDM3OiAiMTk3NiIKK2xheWVyIGF0ICgx
MjIsMTApIHNpemUgMTEweDI1IGNsaXAgYXQgKDEyNCwxMikgc2l6ZSAxMDZ4MjEKKyAgUmVuZGVy
RmxleGlibGVCb3gge0lOUFVUfSBhdCAoMTE0LDIpIHNpemUgMTEweDI1IFtiZ2NvbG9yPSNGRkZG
RkZdIFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCitsYXllciBhdCAoMTMxLDEzKSBzaXpl
IDk4eDE5IGNsaXAgYXQgKDEzMiwxNCkgc2l6ZSA5NngxNyBzY3JvbGxIZWlnaHQgMTgKKyAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDgsMykgc2l6ZSA5OXgxOSBbYm9yZGVyOiAoMXB4IHNvbGlkICNG
RjAwMDApXQorICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxLDEpIHNpemUgOTd4MTcKKyAgICAg
IFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDIxeDE5IFtjb2xvcj0jRkYwMDAwXQor
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEsMCkgc2l6ZSAxOXgxNworICAgICAgICAg
IHRleHQgcnVuIGF0ICgxLDApIHdpZHRoIDE5OiAiMDQiCisgICAgICBSZW5kZXJJbmxpbmUge0RJ
Vn0gYXQgKDAsMCkgc2l6ZSAxMHgxNyBbY29sb3I9I0ZGRkYwMF0KKyAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgyMCwwKSBzaXplIDEweDE3CisgICAgICAgICAgdGV4dCBydW4gYXQgKDIw
LDApIHdpZHRoIDEwOiAiLyIKKyAgICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXpl
IDIxeDE5IFtjb2xvcj0jMDA4MDAwXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMw
LDApIHNpemUgMTl4MTcKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzAsMCkgd2lkdGggMTk6ICIw
MSIKKyAgICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDEweDE3IFtjb2xvcj0j
RkZGRjAwXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDQ5LDApIHNpemUgMTB4MTcK
KyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNDksMCkgd2lkdGggMTA6ICIvIgorICAgICAgUmVuZGVy
SW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgMzl4MTkgW2NvbG9yPSMwMDAwRkZdCisgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNTksMCkgc2l6ZSAzN3gxNworICAgICAgICAgIHRleHQg
cnVuIGF0ICg1OSwwKSB3aWR0aCAzNzogIjE5NzYiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMvdGltZS90aW1lLWFwcGVhcmFuY2UtYmFzaWMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL3RpbWUv
dGltZS1hcHBlYXJhbmNlLWJhc2ljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZGQwYWQ1NTk3
ZjY5ZTcwZDYxYmM1NmVlNjQ4NzhhMGFhOGFmODQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL3RpbWUvdGltZS1hcHBlYXJhbmNlLWJh
c2ljLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitzdGVwPW5vbmUgIAorc3RlcD0xICAK
K3N0ZXA9MC4wMDAxICAKK3N0ZXA9NjAgIAorc3RlcD0zNjAwICAKK3N0ZXA9ODY0MDAgIAorc3Rl
cCBtaXNtYXRjaGVkIAorUlRMIAorRGlzYWJsZWQsIHN0ZXA9MzYwMCAgCitSZWFkb25seSwgc3Rl
cD0zNjAwICAKK3RleHQtYWxpZ246IAordGV4dC10cmFuc2Zvcm06IAorYmFja2dyb3VuZCwgY29s
b3I6IAorZm9udC1zaXplLCBmb250LXdlaWdodDogCitmb250LXNpemUgd2l0aCBmaXhlZCBpbnB1
dCB3aWR0aDogCitGaXhlZCBpbnB1dCBoZWlnaHQ6IAorLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU6
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL3Rp
bWUvdGltZS1pbnB1dC1yZW5kZXJpbmctYmFzaWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL3RpbWUvdGltZS1pbnB1dC1yZW5kZXJpbmctYmFz
aWMtZXhwZWN0ZWQudHh0CmluZGV4IGU1NTkxZjdkNzViY2M5MTY0NTcwZDEyZTA3ZTI4ZjZlNjI4
NDQ4NDQuLmE5MjA3ZTlhZGMwZjhkYjEzNjFkYzc0ZmYyMjFlNWYwZmQ0NDI5MjIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9mb3Jtcy90aW1lL3RpbWUtaW5w
dXQtcmVuZGVyaW5nLWJhc2ljLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL2Zhc3QvZm9ybXMvdGltZS90aW1lLWlucHV0LXJlbmRlcmluZy1iYXNpYy1leHBl
Y3RlZC50eHQKQEAgLTMsMTggKzMsMTAgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBs
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDAp
IHNpemUgODAweDYwMAogICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4
NAotICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxMTAsMykgc2l6ZSA0eDE4Ci0gICAgICAg
IHRleHQgcnVuIGF0ICgxMTAsMykgd2lkdGggNDogIiAiCisgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDExMCwwKSBzaXplIDR4MTgKKyAgICAgICAgdGV4dCBydW4gYXQgKDExMCwwKSB3aWR0
aCA0OiAiICIKICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAotbGF5
ZXIgYXQgKDgsMTApIHNpemUgMTEweDIxIGNsaXAgYXQgKDEwLDEyKSBzaXplIDEwNngxNwotICBS
ZW5kZXJGbGV4aWJsZUJveCB7SU5QVVR9IGF0ICgwLDIpIHNpemUgMTEweDIxIFtiZ2NvbG9yPSNG
RkZGRkZdIFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCi0gICAgUmVuZGVyQmxvY2sge0RJ
Vn0gYXQgKDcsNCkgc2l6ZSA0M3gxMwotICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgNDN4MTMKLSAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDM6ICI5OjQxIEFN
IgotbGF5ZXIgYXQgKDEyMiwxMCkgc2l6ZSAxMTB4MjEgY2xpcCBhdCAoMTI0LDEyKSBzaXplIDEw
NngxNwotICBSZW5kZXJGbGV4aWJsZUJveCB7SU5QVVR9IGF0ICgxMTQsMikgc2l6ZSAxMTB4MjEg
W2JnY29sb3I9I0ZGRkZGRl0gW2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KLSAgICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoNDAsNCkgc2l6ZSA0M3gxMwotICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgNDN4MTMKLSAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
MTg6ICJBTSIKLSAgICAgICAgdGV4dCBydW4gYXQgKDE3LDApIHdpZHRoIDQgUlRMOiAiICIKLSAg
ICAgICAgdGV4dCBydW4gYXQgKDIwLDApIHdpZHRoIDIzOiAiOTo0MSIKK2xheWVyIGF0ICg4LDE5
KSBzaXplIDExMHg2IGNsaXAgYXQgKDEwLDIxKSBzaXplIDEwNngyCisgIFJlbmRlckZsZXhpYmxl
Qm94IHtJTlBVVH0gYXQgKDAsMTEpIHNpemUgMTEweDYgW2JnY29sb3I9I0ZGRkZGRl0gW2JvcmRl
cjogKDJweCBpbnNldCAjMDAwMDAwKV0KK2xheWVyIGF0ICgxMjIsMTkpIHNpemUgMTEweDYgY2xp
cCBhdCAoMTI0LDIxKSBzaXplIDEwNngyCisgIFJlbmRlckZsZXhpYmxlQm94IHtJTlBVVH0gYXQg
KDExNCwxMSkgc2l6ZSAxMTB4NiBbYmdjb2xvcj0jRkZGRkZGXSBbYm9yZGVyOiAoMnB4IGluc2V0
ICMwMDAwMDApXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407112</attachid>
            <date>2020-08-24 10:51:54 -0700</date>
            <delta_ts>2020-08-25 20:10:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215155-20200824135153.patch</filename>
            <type>text/plain</type>
            <size>87322</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmEyMTk1N2FmZTk0NDQ5
N2ExZmIzZjg2MjRkZmFlMjcxMTg1ZGRjOC4uOTMzYjUzODA1OGZiNWU5YWZmM2NiZWVkZjUxY2M0
NTVjYmRlYzAwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzOSBAQAorMjAyMC0wOC0yNCAgQWRp
dHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBEYXRl
IGlucHV0cyBzaG91bGQgY29udGFpbiBlZGl0YWJsZSBjb21wb25lbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUxNTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHksIHVzZXJzIGFyZSB1
bmFibGUgdG8gZWRpdCB0aGUgdmFsdWVzIGluIGRhdGUgYW5kIHRpbWUgaW5wdXQgdHlwZXMuCisg
ICAgICAgIFRvIG1hdGNoIHN5c3RlbSBkYXRlIGNvbnRyb2xzLCB1c2VycyBzaG91bGQgYmUgYWJs
ZSB0byBzZWxlY3QgYW5kIGVkaXQKKyAgICAgICAgaW5kaXZpZHVhbCBjb21wb25lbnRzIG9mIHRo
ZSBpbnB1dC4gRm9yIGV4YW1wbGUsIDxpbnB1dCB0eXBlPSJkYXRlIj4gc2hvdWxkCisgICAgICAg
IGNvbnRhaW4gYW4gZWRpdGFibGUgeWVhciwgbW9udGgsIGFuZCBkYXkgY29udHJvbC4KKworICAg
ICAgICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbmFsaXR5IHdhcyBwcmVzZW50IGluIFdlYktpdCwg
dXAgdW50aWwgaXQgd2FzIHJlbW92ZWQKKyAgICAgICAgaW4gcjE1MDg3Ni4gUHJldmlvdXNseSBr
bm93biBhcyAiSU5QVVRfTVVMVElQTEVfRklFTERTX1VJIiwgdGhlIGZlYXR1cmUgd2FzCisgICAg
ICAgIHJlbW92ZWQgYXMgaXQgd2FzIG9ubHkgdXNlZCBieSBDaHJvbWl1bSBwb3J0LiBIb3dldmVy
LCBtdWNoIG9mIHRoZSByZW1vdmVkCisgICAgICAgIGxvZ2ljIHJlbWFpbnMgdXNlZnVsIGFuZCBp
cyByZXN1cmZhY2VkIGluIHRoaXMgcGF0Y2guIE1vZGlmaWNhdGlvbnMgd2VyZSBtYWRlCisgICAg
ICAgIHRvIHVwZGF0ZSB0aGUgY29kZSB0byBmb2xsb3cgY3VycmVudCBXZWJLaXQgcHJhY3RpY2Vz
LgorCisgICAgICAgIERhdGVUaW1lRWRpdEVsZW1lbnQgaXMgYSB3cmFwcGVyIGVsZW1lbnQgdGhh
dCBjb250YWlucyBpbmRpdmlkdWFsIGZpZWxkcy4KKyAgICAgICAgVGhlIGZpZWxkcyBhcmUgYWxs
IERhdGVUaW1lRmllbGRFbGVtZW50cy4gTm90ZSB0aGF0IERhdGVUaW1lRmllbGRFbGVtZW50cwor
ICAgICAgICBhcmUgZnVydGhlciBzcGVjaWFsaXplZCBpbnRvIERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudCAoZm9yIGludGVncmFsCisgICAgICAgIHZhbHVlcykgYW5kIERhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQgKGZvciBzeW1ib2xpYyB2YWx1ZXMgc3VjaCBhcyBBLk0KKyAgICAgICAg
YW5kIFAuTSkuIERhdGVUaW1lRWRpdEVsZW1lbnQgYnVpbGRzIHRoZSBjb250cm9sIHVzaW5nIHRo
ZSB2aXNpdG9yIHBhdHRlcm4KKyAgICAgICAgYW5kIGV4aXN0aW5nIHBhcnNpbmcgbG9naWMgY29u
dGFpbmVkIGluIERhdGVUaW1lRm9ybWF0LgorCisgICAgICAgIEluIG9yZGVyIHRvIHJlZHVjZSB0
aGUgcGF0Y2ggc2l6ZSwgdGhpcyBwYXRjaCBvbmx5IHNldHMgdXAgdGhlIHJlbmRlcmluZworICAg
ICAgICBhbmQgbGF5b3V0IG9mIG11bHRpcGxlIGZpZWxkcyBmb3IgPGlucHV0IHR5cGU9ImRhdGUi
Pi4gVXBjb21pbmcgcGF0Y2hlcyB3aWxsCisgICAgICAgIGFkZCByZW5kZXJpbmcgZm9yIG90aGVy
IGRhdGUvdGltZSBpbnB1dCB0eXBlcyBhbmQgaW50cm9kdWNlIGVkaXRhYmlsaXR5LgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZm9ybXMvZGF0ZS9kYXRlLXBzZXVkby1lbGVtZW50cy5odG1sCisKKyAg
ICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogY3NzL2h0bWwuY3NzOgorICAgICAgICAoaW5wdXQ6Oi13ZWJr
aXQtZGF0ZXRpbWUtZWRpdCk6CisgICAgICAgIChpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0
LWZpZWxkcy13cmFwcGVyKToKKyAgICAgICAgKGlucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQt
eWVhci1maWVsZCwpOgorICAgICAgICAoaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15ZWFy
LWZpZWxkOmZvY3VzLCk6CisgICAgICAgIChpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LXRl
eHQpOgorICAgICAgICAqIGh0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGb3JtYXRWYWxpZGF0b3I6OkRhdGVUaW1l
Rm9ybWF0VmFsaWRhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRm9ybWF0VmFsaWRh
dG9yOjp2aXNpdEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRm9ybWF0VmFsaWRh
dG9yOjp2YWxpZGF0ZUZvcm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hvb3Nlck9ubHlE
YXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgIChXZWJD
b3JlOjpCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1
YnRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1
dFR5cGU6OnVwZGF0ZUlubmVyVGV4dFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaG9v
c2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjp2YWx1ZUZvckVkaXRDb250cm9sIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjps
b2NhbGVJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0Jhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1
dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0RhdGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZUlucHV0VHlwZTo6aXNWYWxpZEZvcm1hdCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRlSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMgY29uc3QpOgorICAgICAg
ICAqIGh0bWwvRGF0ZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVMb2NhbElu
cHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpp
c1ZhbGlkRm9ybWF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTG9jYWxJbnB1
dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyBjb25zdCk6CisgICAgICAgICogaHRtbC9EYXRl
VGltZUxvY2FsSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9Nb250aElucHV0VHlwZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNb250aElucHV0VHlwZTo6aXNWYWxpZEZvcm1hdCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpNb250aElucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJz
IGNvbnN0KToKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRt
bC9UaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6Omlz
VmFsaWRGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6c2V0
dXBMYXlvdXRQYXJhbWV0ZXJzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUu
aDoKKyAgICAgICAgKiBodG1sL1dlZWtJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2Vla0lucHV0VHlwZTo6aXNWYWxpZEZvcm1hdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWVrSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMgY29uc3QpOgorICAgICAgICAqIGh0
bWwvV2Vla0lucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVs
ZW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEJ1aWxkZXI6
OkRhdGVUaW1lRWRpdEJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0QnVp
bGRlcjo6YnVpbGQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0QnVpbGRlcjo6dmlz
aXRGaWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdExp
dGVyYWwpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6RWRpdENvbnRy
b2xPd25lcjo6fkVkaXRDb250cm9sT3duZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVF
ZGl0RWxlbWVudDo6RGF0ZVRpbWVFZGl0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUVkaXRFbGVtZW50Ojp+RGF0ZVRpbWVFZGl0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZUVkaXRFbGVtZW50OjpmaWVsZHNXcmFwcGVyRWxlbWVudCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjphZGRGaWVsZCk6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVFZGl0RWxlbWVudDo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
RWRpdEVsZW1lbnQ6OmxvY2FsZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVFZGl0RWxlbWVudDo6cmVzZXRGaWVsZHMpOgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVFZGl0RWxlbWVudDo6c2V0VmFsdWVBc0RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVFZGl0RWxlbWVudDo6c2V0RW1wdHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUVkaXRFbGVtZW50Ojp2YWx1ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0
ZVRpbWVFZGl0RWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGlt
ZUZpZWxkRWxlbWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVs
ZEVsZW1lbnQ6OkZpZWxkT3duZXI6On5GaWVsZE93bmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVUaW1lRmllbGRFbGVtZW50OjpEYXRlVGltZUZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZUZpZWxkRWxlbWVudDo6bG9jYWxlRm9yT3duZXIgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmxvY2FsZUlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OnVwZGF0ZVZpc2libGVWYWx1
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6c3VwcG9ydHNGb2N1
cyBjb25zdCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaDog
QWRkZWQuCisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZURheUZpZWxkRWxlbWVudDo6RGF0ZVRp
bWVEYXlGaWVsZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVEYXlGaWVsZEVs
ZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZURheUZpZWxkRWxlbWVu
dDo6c2V0VmFsdWVBc0RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVNb250aEZpZWxk
RWxlbWVudDo6RGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZU1vbnRoRmllbGRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVNb250aEZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50OjpEYXRlVGltZVN5bWJvbGljTW9u
dGhGaWVsZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY01vbnRo
RmllbGRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xp
Y01vbnRoRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZVllYXJGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lWWVhckZpZWxkRWxlbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKToKKyAg
ICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuaDogQWRkZWQuCisgICAg
ICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OkRhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNG
aWVsZEVsZW1lbnQ6OmZvcm1hdFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6aGFzVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojppbml0aWFsaXplKToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6c2V0RW1wdHlWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNJbnRl
Z2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6dmFs
dWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50
Ojp2YWx1ZUFzSW50ZWdlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVy
aWNGaWVsZEVsZW1lbnQ6OnZpc2libGVWYWx1ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9zaGFk
b3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGh0bWwv
c2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Om1ha2VWaXNpYmxlRW1wdHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6Omhhc1ZhbHVl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6
OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxl
bWVudDo6c2V0RW1wdHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGlj
RmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzSW50ZWdlcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojp2YWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojp2YWx1ZUFzSW50ZWdlciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojp2aXNpYmxlRW1w
dHlWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRF
bGVtZW50Ojp2aXNpYmxlVmFsdWUgY29uc3QpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpzeW1ib2xzU2l6ZSBjb25zdCk6CisKIDIwMjAtMDgt
MjQgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNP
U10gU2hvdyBwaWNrZXIgZm9yIGRhdGUgYW5kIGRhdGV0aW1lLWxvY2FsIGlucHV0IHR5cGVzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IGI2MDUxYzQxNzQzNDM5ODViMmUzYjE0ZTRlNTBjZDZlZWU2NWI4N2UuLjM1YTRh
OTU0Njk2NDcyNjBmNDk5NmNhMmRkYmEwYTQ2ZTViN2U5N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMjAtMDgtMDcgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgor
CisgICAgICAgIFttYWNPU10gRGF0ZSBpbnB1dHMgc2hvdWxkIGNvbnRhaW4gZWRpdGFibGUgY29t
cG9uZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE1MTU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkZWQgRGF0ZVRpbWVJbnB1dHNFZGl0YWJsZUNvbXBvbmVudHNFbmFibGVkIGFzIGEgcnVudGlt
ZSBzZXR0aW5nLiBUaGlzCisgICAgICAgIHNldHRpbmcgaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9u
IG1hY09TLgorCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6CisgICAgICAg
ICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oOgorCiAyMDIwLTA4LTI0ICBB
ZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIFNo
b3cgcGlja2VyIGZvciBkYXRlIGFuZCBkYXRldGltZS1sb2NhbCBpbnB1dCB0eXBlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dAppbmRleCAwOWQ1MDNmZTRjNmM0ZjgxNzQ4NzkzNzNlYmNjNTUzODBlNjFhMzljLi40MTA5
ODZhODc0ZmM1NzliNjZkZDhiZWJiNGMwOGZlNTBmNDJlMWIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAt
MTMxMSw2ICsxMzExLDExIEBAIGh0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKIGh0
bWwvc2hhZG93L0F1dG9GaWxsQnV0dG9uRWxlbWVudC5jcHAKIGh0bWwvc2hhZG93L0RhdGFMaXN0
QnV0dG9uRWxlbWVudC5jcHAKIGh0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcAor
aHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKK2h0bWwvc2hhZG93L0RhdGVUaW1l
RmllbGRFbGVtZW50LmNwcAoraHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcAor
aHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcAoraHRtbC9zaGFkb3cv
RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAKIGh0bWwvc2hhZG93L01lZGlhQ29udHJv
bFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwCiBodG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRv
d0VsZW1lbnQuY3BwCiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjUw
MTgzYmZjMTJlOTgzYzlkNDMyMjhhNDE5Mzk2ZTdiOTU3OGExZC4uM2QyMGU5MTcxMzY4YTNhYTYz
ZmQ3Y2E4MzhiODNhZTk0ZTMzMDQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA4MSw2ICs1MDgxLDExIEBACiAJCUU1OURE
NEI4MjEwOTgyODcwMDNDOEI0NyAvKiBMaXN0QnV0dG9uQXJyb3cucG5nIGluIFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTlERDRCNzIxMDk4Mjg1MDAzQzhC
NDcgLyogTGlzdEJ1dHRvbkFycm93LnBuZyAqLzsgfTsKIAkJRTVCQTdENjMxNTE0MzdDQTAwRkUx
RTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTVCQTdENjIxNTE0MzdDQTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9u
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU1
QzU5QTlBMjREMEUxQUEwMDNCODZFMSAvKiBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUM1OUE5OTI0RDBF
MUFBMDAzQjg2RTEgLyogRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUU1RjA2QUU3MjRENDg0N0IwMEJC
QzRGOCAvKiBEYXRlVGltZUZpZWxkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTVGMDZBRTUyNEQ0ODQ3QjAwQkJDNEY4IC8qIERhdGVUaW1l
RmllbGRFbGVtZW50LmggKi87IH07CisJCUU1RjA2QUVCMjRENDlCRjcwMEJCQzRGOCAvKiBEYXRl
VGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU1RjA2QUU5MjRENDlCRjcwMEJCQzRGOCAvKiBEYXRlVGltZU51bWVy
aWNGaWVsZEVsZW1lbnQuaCAqLzsgfTsKKwkJRTVGMDZBRUYyNEQ0QTYzNzAwQkJDNEY4IC8qIERh
dGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEU1RjA2QUVEMjRENEE2MzcwMEJCQzRGOCAvKiBEYXRlVGltZVN5
bWJvbGljRmllbGRFbGVtZW50LmggKi87IH07CisJCUU1RjA2QUYzMjRENEFBRTQwMEJCQzRGOCAv
KiBEYXRlVGltZUZpZWxkRWxlbWVudHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU1RjA2QUYxMjRENEFBRTQwMEJCQzRGOCAvKiBEYXRlVGltZUZpZWxk
RWxlbWVudHMuaCAqLzsgfTsKKwkJRTVGMDZBRjcyNEQ0QkI1NjAwQkJDNEY4IC8qIERhdGVUaW1l
RWRpdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEU1RjA2QUY1MjRENEJCNTYwMEJCQzRGOCAvKiBEYXRlVGltZUVkaXRFbGVtZW50LmggKi87
IH07CiAJCUU3MTQ2N0IzMjRBQkFFRjIwMEZCMkY1MCAvKiBBdWRpb05vZGVPcHRpb25zLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzE0NjdCMTI0QUJB
RUYxMDBGQjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5oICovOyB9OwogCQlFNzE0NjdCNjI0QUJB
RjFEMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTcxNDY3QjUyNEFCQUYxRDAwRkIyRjUwIC8qIFBhbm5lck9w
dGlvbnMuaCAqLzsgfTsKIAkJRTc1NUU4OTIyNEM3NDM0QjAwOUY3QzIzIC8qIFBlcmlvZGljV2F2
ZUNvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFNzU1RTg4RjI0Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlQ29uc3RyYWludHMu
aCAqLzsgfTsKQEAgLTE1OTI2LDYgKzE1OTMxLDE2IEBACiAJCUU1OURENEI3MjEwOTgyODUwMDND
OEI0NyAvKiBMaXN0QnV0dG9uQXJyb3cucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gTGlzdEJ1dHRvbkFycm93LnBu
Zzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTVCQTdENjIxNTE0MzdDQTAwRkUxRTNG
IC8qIExlbmd0aEZ1bmN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBM
ZW5ndGhGdW5jdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTVDNTlBOTky
NEQwRTFBQTAwM0I4NkUxIC8qIERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNUYwNkFFNTI0RDQ4NDdCMDBCQkM0RjggLyogRGF0
ZVRpbWVGaWVsZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0ZVRpbWVGaWVsZEVsZW1lbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVGMDZBRTYyNEQ0ODQ3QjAwQkJDNEY4
IC8qIERhdGVUaW1lRmllbGRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhdGVUaW1l
RmllbGRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVGMDZBRTky
NEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTVGMDZBRUEyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1lTnVtZXJpY0Zp
ZWxkRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNUYwNkFFRDI0RDRBNjM3
MDBCQkM0RjggLyogRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUU1RjA2QUVFMjRENEE2MzcwMEJCQzRGOCAvKiBEYXRlVGltZVN5bWJvbGljRmllbGRF
bGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1l
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNUYwNkFGMTI0RDRBQUU0MDBC
QkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGVUaW1l
RmllbGRFbGVtZW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNUYwNkFGMjI0
RDRBQUU0MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IERhdGVUaW1lRmllbGRFbGVtZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUU1RjA2QUY1MjRENEJCNTYwMEJCQzRGOCAvKiBEYXRlVGltZUVkaXRFbGVtZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERhdGVUaW1lRWRpdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTVGMDZBRjYyNEQ0QkI1NjAwQkJDNEY4IC8qIERhdGVUaW1lRWRpdEVsZW1l
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU3MTQ2N0IxMjRBQkFFRjEwMEZCMkY1MCAvKiBBdWRp
b05vZGVPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvTm9k
ZU9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTcxNDY3QjQyNEFCQUYw
QjAwRkIyRjUwIC8qIEF1ZGlvTm9kZU9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEF1ZGlvTm9kZU9wdGlvbnMu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNzE0NjdCNTI0QUJBRjFEMDBGQjJG
NTAgLyogUGFubmVyT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
YW5uZXJPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODY3NSw2ICsx
ODY5MCwxNiBAQAogCQkJCTdDMUU5NzI1MUE5Rjk4MzQwMDdCRjBGQiAvKiBBdXRvRmlsbEJ1dHRv
bkVsZW1lbnQuY3BwICovLAogCQkJCTdDMUU5NzI2MUE5Rjk4MzQwMDdCRjBGQiAvKiBBdXRvRmls
bEJ1dHRvbkVsZW1lbnQuaCAqLywKIAkJCQlFNThCNDVCODIwQUQwN0REMDA5OTEwMjUgLyogRGF0
YUxpc3RCdXR0b25FbGVtZW50LmggKi8sCisJCQkJRTVGMDZBRjYyNEQ0QkI1NjAwQkJDNEY4IC8q
IERhdGVUaW1lRWRpdEVsZW1lbnQuY3BwICovLAorCQkJCUU1RjA2QUY1MjRENEJCNTYwMEJCQzRG
OCAvKiBEYXRlVGltZUVkaXRFbGVtZW50LmggKi8sCisJCQkJRTVGMDZBRTYyNEQ0ODQ3QjAwQkJD
NEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50LmNwcCAqLywKKwkJCQlFNUYwNkFFNTI0RDQ4NDdC
MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCAqLywKKwkJCQlFNUYwNkFGMjI0RDRB
QUU0MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcCAqLywKKwkJCQlFNUYwNkFG
MTI0RDRBQUU0MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmggKi8sCisJCQkJRTVG
MDZBRUEyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAg
Ki8sCisJCQkJRTVGMDZBRTkyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudC5oICovLAorCQkJCUU1RjA2QUVFMjRENEE2MzcwMEJCQzRGOCAvKiBEYXRlVGltZVN5
bWJvbGljRmllbGRFbGVtZW50LmNwcCAqLywKKwkJCQlFNUYwNkFFRDI0RDRBNjM3MDBCQkM0Rjgg
LyogRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oICovLAogCQkJCUE3QzlBQkY2MTM1N0Ez
QkYwMEY1NTAzRiAvKiBEZXRhaWxzTWFya2VyQ29udHJvbC5jcHAgKi8sCiAJCQkJQTdDOUFCRjcx
MzU3QTNCRjAwRjU1MDNGIC8qIERldGFpbHNNYXJrZXJDb250cm9sLmggKi8sCiAJCQkJNTEwMTky
RDMxOEI2QjlCNzAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudC5jcHAgKi8sCkBA
IC0zMDc1Myw4ICszMDc3OCwxMyBAQAogCQkJCTM3QzczOEYzMUVEQkRFOEEwMDNGMkIwQiAvKiBE
YXRlVGltZUNob29zZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QzczOEY0MUVEQkRFOEQwMDNG
MkIwQiAvKiBEYXRlVGltZUNob29zZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU1QzU5
QTlBMjREMEUxQUEwMDNCODZFMSAvKiBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFNUYwNkFGNzI0RDRCQjU2MDBCQkM0RjggLyogRGF0ZVRpbWVFZGl0RWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTVGMDZBRTcyNEQ0ODQ3QjAwQkJDNEY4IC8qIERh
dGVUaW1lRmllbGRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlFNUYwNkFGMzI0RDRBQUU0
MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
NTNFQjYzNzE1OUM1NzA0MDAwMDFCQjcgLyogRGF0ZVRpbWVGb3JtYXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUY1NUIzREJBMTI1MUYxMkQwMDNFRjI2OSAvKiBEYXRlVGltZUxvY2FsSW5wdXRUeXBl
LmggaW4gSGVhZGVycyAqLywKKwkJCQlFNUYwNkFFQjI0RDQ5QkY3MDBCQkM0RjggLyogRGF0ZVRp
bWVOdW1lcmljRmllbGRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlFNUYwNkFFRjI0RDRB
NjM3MDBCQkM0RjggLyogRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY2QTEyQkUxQTAwOTIzNzAwQzZERTcyIC8qIERlYnVnUGFnZU92ZXJsYXlzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0NUZFQTVEMDE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNzE1QUQ3MjAyMDUwNTEzMjAwRDU5MkRDIC8qIERlY2xhcmF0
aXZlQW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9odG1sLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcwppbmRleCBkYWY4OTE5
ZWIxNmQ3M2RjN2YwNTlkMzFmMDAzNjNjNWJlODcyMTJlLi5kZmM1NzgzZWRlNjQ0ZjljYTYyZjU3
OWFhMzA2NWQ3NjM3MTU0OTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5j
c3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCkBAIC00ODQsNiArNDg0LDM5IEBA
IGlucHV0Ojotd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFsdWUgewogI2VuZGlmCiB9CiAKK2lucHV0
Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQgeworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAg
ICBvdmVyZmxvdzogaGlkZGVuOworfQorCitpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LWZp
ZWxkcy13cmFwcGVyIHsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cit9CisKK2lucHV0Ojot
d2Via2l0LWRhdGV0aW1lLWVkaXQteWVhci1maWVsZCwKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1l
LWVkaXQtbW9udGgtZmllbGQsCitpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LWRheS1maWVs
ZCB7CisgICAgZGlzcGxheTogaW5saW5lOworICAgIHBhZGRpbmc6IDFweDsKK30KKworaW5wdXQ6
Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15ZWFyLWZpZWxkOmZvY3VzLAoraW5wdXQ6Oi13ZWJraXQt
ZGF0ZXRpbWUtZWRpdC1tb250aC1maWVsZDpmb2N1cywKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1l
LWVkaXQtZGF5LWZpZWxkOmZvY3VzIHsKKyNpZiBkZWZpbmVkKFdURl9QTEFURk9STV9DT0NPQSkg
JiYgV1RGX1BMQVRGT1JNX0NPQ09BCisgICAgYmFja2dyb3VuZC1jb2xvcjogLWFwcGxlLXN5c3Rl
bS1jb250cm9sLWFjY2VudDsKKyAgICBjb2xvcjogd2hpdGU7CisjZWxzZQorICAgIGJhY2tncm91
bmQtY29sb3I6IGhpZ2hsaWdodDsKKyAgICBjb2xvcjogaGlnaGxpZ2h0dGV4dDsKKyNlbmRpZgor
ICAgIG91dGxpbmU6IG5vbmU7Cit9CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtdGV4
dCB7CisgICAgZGlzcGxheTogaW5saW5lOworfQorCiBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGlu
LWJ1dHRvbiB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBpbm5lci1zcGluLWJ1dHRvbjsKICAg
ICBkaXNwbGF5OiBibG9jazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNo
b29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXggNDI0YjkyOTQ4YjQz
MTg0NDBiYzUxYzU4ZTgwYmVkNGI5Y2NmOGI0NC4uZjdiNWNhZGUyNDBiMzVjN2MzNmYxODBhOWNh
MDZhNTI4ZWE3ODlhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nl
ck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTMxLDE2ICszMSw3OSBA
QAogCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVDaG9vc2VyUGFyYW1l
dGVycy5oIgorI2luY2x1ZGUgIkRhdGVUaW1lRm9ybWF0LmgiCiAjaW5jbHVkZSAiSFRNTERpdkVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5o
IgorI2luY2x1ZGUgIlBsYXRmb3JtTG9jYWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5o
IgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1
ZGUgIlRleHQuaCIKICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERh
dGVUaW1lRm9ybWF0VmFsaWRhdG9yIDogcHVibGljIERhdGVUaW1lRm9ybWF0OjpUb2tlbkhhbmRs
ZXIgeworcHVibGljOgorICAgIERhdGVUaW1lRm9ybWF0VmFsaWRhdG9yKCkgeyB9CisKKyAgICB2
b2lkIHZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSwgaW50KSBmaW5hbDsKKyAg
ICB2b2lkIHZpc2l0TGl0ZXJhbChjb25zdCBTdHJpbmcmKSBmaW5hbCB7IH0KKworICAgIGJvb2wg
dmFsaWRhdGVGb3JtYXQoY29uc3QgU3RyaW5nJiBmb3JtYXQsIGNvbnN0IEJhc2VDaG9vc2VyT25s
eURhdGVBbmRUaW1lSW5wdXRUeXBlJik7CisKK3ByaXZhdGU6CisgICAgT3B0aW9uU2V0PERhdGVU
aW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+IG1fcmVzdWx0czsKK307CisKK3ZvaWQgRGF0ZVRp
bWVGb3JtYXRWYWxpZGF0b3I6OnZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSBm
aWVsZFR5cGUsIGludCkKK3sKKyAgICBzd2l0Y2ggKGZpZWxkVHlwZSkgeworICAgIGNhc2UgRGF0
ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVllYXI6CisgICAgICAgIG1fcmVzdWx0cy5hZGQoRGF0ZVRp
bWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzWWVhcik7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRoOgorICAgIGNhc2UgRGF0ZVRpbWVG
b3JtYXQ6OkZpZWxkVHlwZU1vbnRoU3RhbmRBbG9uZToKKyAgICAgICAgbV9yZXN1bHRzLmFkZChE
YXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNNb250aCk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVdlZWtPZlllYXI6CisgICAgICAg
IG1fcmVzdWx0cy5hZGQoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzV2Vlayk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZURheU9m
TW9udGg6CisgICAgICAgIG1fcmVzdWx0cy5hZGQoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVz
dWx0czo6SGFzRGF5KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6
RmllbGRUeXBlUGVyaW9kOgorICAgICAgICBtX3Jlc3VsdHMuYWRkKERhdGVUaW1lRm9ybWF0VmFs
aWRhdGlvblJlc3VsdHM6Okhhc0FNUE0pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERhdGVU
aW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMTE6CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6Rmll
bGRUeXBlSG91cjEyOgorICAgICAgICBtX3Jlc3VsdHMuYWRkKERhdGVUaW1lRm9ybWF0VmFsaWRh
dGlvblJlc3VsdHM6Okhhc0hvdXIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERhdGVUaW1l
Rm9ybWF0OjpGaWVsZFR5cGVIb3VyMjM6CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlSG91cjI0OgorICAgICAgICBtX3Jlc3VsdHMuYWRkKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlv
blJlc3VsdHM6Okhhc0hvdXIpOworICAgICAgICBtX3Jlc3VsdHMuYWRkKERhdGVUaW1lRm9ybWF0
VmFsaWRhdGlvblJlc3VsdHM6Okhhc0FNUE0pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERh
dGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNaW51dGU6CisgICAgICAgIG1fcmVzdWx0cy5hZGQoRGF0
ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzV2Vlayk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVNlY29uZDoKKyAgICAgICAgbV9yZXN1
bHRzLmFkZChEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNTZWNvbmQpOworICAg
ICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK2Jv
b2wgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0b3I6OnZhbGlkYXRlRm9ybWF0KGNvbnN0IFN0cmluZyYg
Zm9ybWF0LCBjb25zdCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZSYgaW5wdXRU
eXBlKQoreworICAgIGlmICghRGF0ZVRpbWVGb3JtYXQ6OnBhcnNlKGZvcm1hdCwgKnRoaXMpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGlucHV0VHlwZS5pc1ZhbGlkRm9ybWF0
KG1fcmVzdWx0cyk7Cit9CisKIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjp+
QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUoKQogewogICAgIGNsb3NlRGF0ZVRp
bWVDaG9vc2VyKCk7CkBAIC03OSwyNyArMTQyLDUwIEBAIGJvb2wgQmFzZUNob29zZXJPbmx5RGF0
ZUFuZFRpbWVJbnB1dFR5cGU6OmlzUHJlc2VudGluZ0F0dGFjaGVkVmlldygpIGNvbnN0CiAKIHZv
aWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRy
ZWUoKQogewotICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gdmFsdWVDb250YWluZXJQc2V1ZG8oIi13ZWJraXQtZGF0ZS1hbmQtdGltZS12YWx1ZSIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLQogICAgIEFTU0VSVChlbGVtZW50
KCkpOwotICAgIGF1dG8gdmFsdWVDb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGVs
ZW1lbnQoKS0+ZG9jdW1lbnQoKSk7Ci0gICAgdmFsdWVDb250YWluZXItPnNldFBzZXVkbyh2YWx1
ZUNvbnRhaW5lclBzZXVkbyk7Ci0gICAgZWxlbWVudCgpLT51c2VyQWdlbnRTaGFkb3dSb290KCkt
PmFwcGVuZENoaWxkKHZhbHVlQ29udGFpbmVyKTsKKyAgICBpZiAoZWxlbWVudCgpLT5kb2N1bWVu
dCgpLnBhZ2UoKSAmJiBlbGVtZW50KCktPmRvY3VtZW50KCkucGFnZSgpLT5zZXR0aW5ncygpLmRh
dGVUaW1lSW5wdXRzRWRpdGFibGVDb21wb25lbnRzRW5hYmxlZCgpKSB7CisgICAgICAgIG1fZGF0
ZVRpbWVFZGl0RWxlbWVudCA9IERhdGVUaW1lRWRpdEVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkt
PmRvY3VtZW50KCksICp0aGlzKTsKKyAgICAgICAgZWxlbWVudCgpLT51c2VyQWdlbnRTaGFkb3dS
b290KCktPmFwcGVuZENoaWxkKCptX2RhdGVUaW1lRWRpdEVsZW1lbnQpOworICAgIH0gZWxzZSB7
CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gdmFsdWVDb250YWluZXJQc2V1ZG8oIi13ZWJraXQtZGF0ZS1hbmQtdGltZS12YWx1ZSIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgYXV0byB2YWx1ZUNvbnRh
aW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5kb2N1bWVudCgpKTsKKyAg
ICAgICAgdmFsdWVDb250YWluZXItPnNldFBzZXVkbyh2YWx1ZUNvbnRhaW5lclBzZXVkbyk7Cisg
ICAgICAgIGVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZCh2YWx1
ZUNvbnRhaW5lcik7CisgICAgfQogICAgIHVwZGF0ZUlubmVyVGV4dFZhbHVlKCk7CiB9CiAKK3Zv
aWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0
cmVlKCkKK3sKKyAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQgPSBudWxscHRyOworfQorCiB2b2lk
IEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjp1cGRhdGVJbm5lclRleHRWYWx1
ZSgpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7Ci0gICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBl
bGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOwotICAgIGlmICgh
aXM8SFRNTEVsZW1lbnQ+KG5vZGUpKQorICAgIGlmICghbV9kYXRlVGltZUVkaXRFbGVtZW50KSB7
CisgICAgICAgIFJlZlB0cjxOb2RlPiBub2RlID0gZWxlbWVudCgpLT51c2VyQWdlbnRTaGFkb3dS
b290KCktPmZpcnN0Q2hpbGQoKTsKKyAgICAgICAgaWYgKCFpczxIVE1MRWxlbWVudD4obm9kZSkp
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIFN0cmluZyBkaXNwbGF5VmFsdWUgPSB2aXNp
YmxlVmFsdWUoKTsKKyAgICAgICAgaWYgKGRpc3BsYXlWYWx1ZS5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgICAgIC8vIE5lZWQgdG8gcHV0IHNvbWV0aGluZyB0byBrZWVwIHRleHQgYmFzZWxpbmUuCisg
ICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSAiICJfczsKKyAgICAgICAgfQorICAgICAgICBkb3du
Y2FzdDxIVE1MRWxlbWVudD4oKm5vZGUpLnNldElubmVyVGV4dChkaXNwbGF5VmFsdWUpOwogICAg
ICAgICByZXR1cm47Ci0gICAgU3RyaW5nIGRpc3BsYXlWYWx1ZSA9IHZpc2libGVWYWx1ZSgpOwot
ICAgIGlmIChkaXNwbGF5VmFsdWUuaXNFbXB0eSgpKSB7Ci0gICAgICAgIC8vIE5lZWQgdG8gcHV0
IHNvbWV0aGluZyB0byBrZWVwIHRleHQgYmFzZWxpbmUuCi0gICAgICAgIGRpc3BsYXlWYWx1ZSA9
ICIgIl9zOwogICAgIH0KLSAgICBkb3duY2FzdDxIVE1MRWxlbWVudD4oKm5vZGUpLnNldElubmVy
VGV4dChkaXNwbGF5VmFsdWUpOworCisgICAgRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFy
YW1ldGVycyBsYXlvdXRQYXJhbWV0ZXJzKGVsZW1lbnQoKS0+bG9jYWxlKCkpOworICAgIHNldHVw
TGF5b3V0UGFyYW1ldGVycyhsYXlvdXRQYXJhbWV0ZXJzKTsKKworICAgIGlmICghRGF0ZVRpbWVG
b3JtYXRWYWxpZGF0b3IoKS52YWxpZGF0ZUZvcm1hdChsYXlvdXRQYXJhbWV0ZXJzLmRhdGVUaW1l
Rm9ybWF0LCAqdGhpcykpCisgICAgICAgIGxheW91dFBhcmFtZXRlcnMuZGF0ZVRpbWVGb3JtYXQg
PSBsYXlvdXRQYXJhbWV0ZXJzLmZhbGxiYWNrRGF0ZVRpbWVGb3JtYXQ7CisKKyAgICBpZiAoYXV0
byBkYXRlID0gcGFyc2VUb0RhdGVDb21wb25lbnRzKGVsZW1lbnQoKS0+dmFsdWUoKSkpCisgICAg
ICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+c2V0VmFsdWVBc0RhdGUobGF5b3V0UGFyYW1ldGVy
cywgKmRhdGUpOworICAgIGVsc2UKKyAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5zZXRF
bXB0eVZhbHVlKGxheW91dFBhcmFtZXRlcnMpOwogfQogCiB2b2lkIEJhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHZh
bHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQpAQCAtMTcy
LDYgKzI1OCwxNyBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjph
dHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmCiAgICAgQmFzZURhdGVBbmRUaW1l
SW5wdXRUeXBlOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUpOwogfQogCitTdHJpbmcgQmFzZUNob29z
ZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnZhbHVlRm9yRWRpdENvbnRyb2woKSBjb25zdAor
eworICAgIEFTU0VSVChlbGVtZW50KCkpOworICAgIHJldHVybiBlbGVtZW50KCktPnZhbHVlKCk7
Cit9CisKK0F0b21TdHJpbmcgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6Omxv
Y2FsZUlkZW50aWZpZXIoKSBjb25zdAoreworICAgIHJldHVybiBlbGVtZW50KCktPmNvbXB1dGVJ
bmhlcml0ZWRMYW5ndWFnZSgpOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oCmlu
ZGV4IDE0YTFlZTBiMzMyMjUwMTc5Yjg3NzAwNGFlZTkxY2FiZWI1MDgwMjAuLmIzMTkzMTkxYjQz
NmNiYWFjMGUyYTkzNDQ1MmRkY2ZjZGI1ZGQyYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKQEAgLTMy
LDIwICszMiw0MyBAQAogI2luY2x1ZGUgIkJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIgogI2lu
Y2x1ZGUgIkRhdGVUaW1lQ2hvb3Nlci5oIgogI2luY2x1ZGUgIkRhdGVUaW1lQ2hvb3NlckNsaWVu
dC5oIgorI2luY2x1ZGUgIkRhdGVUaW1lRWRpdEVsZW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvT3B0
aW9uU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQmFzZUNob29zZXJPbmx5
RGF0ZUFuZFRpbWVJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLCBw
cml2YXRlIERhdGVUaW1lQ2hvb3NlckNsaWVudCB7CitlbnVtIGNsYXNzIERhdGVUaW1lRm9ybWF0
VmFsaWRhdGlvblJlc3VsdHMgOiB1aW50OF90IHsKKyAgICBIYXNZZWFyID0gMSA8PCAwLAorICAg
IEhhc01vbnRoID0gMSA8PCAxLAorICAgIEhhc1dlZWsgPSAxIDw8IDIsCisgICAgSGFzRGF5ID0g
MSA8PCAzLAorICAgIEhhc0FNUE0gPSAxIDw8IDQsCisgICAgSGFzSG91ciA9IDEgPDwgNSwKKyAg
ICBIYXNNaW51dGUgPSAxIDw8IDYsCisgICAgSGFzU2Vjb25kID0gMSA8PCA3LAorfTsKKworY2xh
c3MgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZURhdGVB
bmRUaW1lSW5wdXRUeXBlLCBwcml2YXRlIERhdGVUaW1lQ2hvb3NlckNsaWVudCwgcHJpdmF0ZSBE
YXRlVGltZUVkaXRFbGVtZW50OjpFZGl0Q29udHJvbE93bmVyIHsKK3B1YmxpYzoKKyAgICB2aXJ0
dWFsIGJvb2wgaXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9u
UmVzdWx0cz4pIGNvbnN0ID0gMDsKKwogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IEJhc2VDaG9v
c2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDog
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIH5CYXNlQ2hvb3Nlck9u
bHlEYXRlQW5kVGltZUlucHV0VHlwZSgpOwogCisgICAgdmlydHVhbCB2b2lkIHNldHVwTGF5b3V0
UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29uc3Qg
PSAwOworCiBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlSW5uZXJUZXh0VmFsdWUoKSBvdmVycmlk
ZTsKICAgICB2b2lkIGNsb3NlRGF0ZVRpbWVDaG9vc2VyKCk7CiAKKyAgICAvLyBEYXRlVGltZUVk
aXRFbGVtZW50OjpFZGl0Q29udHJvbE93bmVyIGZ1bmN0aW9uczoKKyAgICBTdHJpbmcgdmFsdWVG
b3JFZGl0Q29udHJvbCgpIGNvbnN0IGZpbmFsOworICAgIEF0b21TdHJpbmcgbG9jYWxlSWRlbnRp
ZmllcigpIGNvbnN0IGZpbmFsOworCiAgICAgLy8gSW5wdXRUeXBlIGZ1bmN0aW9uczoKICAgICB2
b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRlc3Ryb3lTaGFk
b3dTdWJ0cmVlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkZXRhY2goKSBvdmVycmlkZTsKICAgICB2
b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRF
dmVudEJlaGF2aW9yKSBvdmVycmlkZTsKICAgICB2b2lkIGhhbmRsZURPTUFjdGl2YXRlRXZlbnQo
RXZlbnQmKSBvdmVycmlkZTsKQEAgLTYzLDYgKzg2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRp
ZEVuZENob29zZXIoKSBmaW5hbDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRlVGltZUNob29z
ZXI+IG1fZGF0ZVRpbWVDaG9vc2VyOworICAgIFJlZlB0cjxEYXRlVGltZUVkaXRFbGVtZW50PiBt
X2RhdGVUaW1lRWRpdEVsZW1lbnQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAppbmRleCAzZTE3
MjQ3MDYxMzI1ZDBhMjhlNGQxNGNhOTg0MGFkZDJjNWI0OWUyLi44MjdkMDFiOWYzNmYyODE3N2E3
YzIwYmJmYjE1ZjMyNDk5MjBjZTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jh
c2VEYXRlQW5kVGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmgKQEAgLTUzLDggKzUzLDkgQEAgcHJvdGVjdGVkOgogICAgIGJv
b2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3Qgb3ZlcnJpZGU7CiAj
ZW5kaWYKIAotcHJpdmF0ZToKICAgICB2aXJ0dWFsIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBw
YXJzZVRvRGF0ZUNvbXBvbmVudHMoY29uc3QgU3RyaW5nVmlldyYpIGNvbnN0ID0gMDsKKworcHJp
dmF0ZToKICAgICB2aXJ0dWFsIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29u
ZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlKSBjb25zdCA9IDA7CiAKICAgICBkb3VibGUgdmFsdWVB
c0RhdGUoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RGF0ZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3Bw
CmluZGV4IGE1ZDZkOWVmMjg3OTIxNjhmZTljZmJmNjY3YWMwMTQ5ZGQzMDgxMDQuLmM5MTJhNDA4
N2IwYTY5NjU1MWRhOTM5YmE1YjM1NWI4Y2UzMzYxMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRl
SW5wdXRUeXBlLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5o
IgorI2luY2x1ZGUgIlBsYXRmb3JtTG9jYWxlLmgiCiAjaW5jbHVkZSAiU3RlcFJhbmdlLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTg2LDUgKzg3LDE2IEBAIGJvb2wgRGF0ZUlucHV0VHlw
ZTo6aXNEYXRlRmllbGQoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIERhdGVJ
bnB1dFR5cGU6OmlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlv
blJlc3VsdHM+IHJlc3VsdHMpIGNvbnN0Cit7CisgICAgcmV0dXJuIHJlc3VsdHMuY29udGFpbnNB
bGwoeyBEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNZZWFyLCBEYXRlVGltZUZv
cm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNNb250aCwgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9u
UmVzdWx0czo6SGFzRGF5IH0pOworfQorCit2b2lkIERhdGVJbnB1dFR5cGU6OnNldHVwTGF5b3V0
UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJiBsYXlvdXRQ
YXJhbWV0ZXJzKSBjb25zdAoreworICAgIGxheW91dFBhcmFtZXRlcnMuZGF0ZVRpbWVGb3JtYXQg
PSBsYXlvdXRQYXJhbWV0ZXJzLmxvY2FsZS5kYXRlRm9ybWF0KCk7CisgICAgbGF5b3V0UGFyYW1l
dGVycy5mYWxsYmFja0RhdGVUaW1lRm9ybWF0ID0gInl5eXktTU0tZGQiX3M7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9EYXRlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaApp
bmRleCAzMzU1MDc0YmU2ZDVmMmUyZjYzODgwNjYyZDM5NjA2NWRlNjliZjJiLi4xMDU2NDZmYTkw
MmYwNmE1OTczYjcyYzMzMDIxZTZhNGIxNjUwNDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RhdGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1
dFR5cGUuaApAQCAtNDcsNiArNDcsOSBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPERhdGVDb21w
b25lbnRzPiBwYXJzZVRvRGF0ZUNvbXBvbmVudHMoY29uc3QgU3RyaW5nVmlldyYpIGNvbnN0IG92
ZXJyaWRlOwogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0
ZUNvbXBvbmVudHMoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzRGF0ZUZpZWxk
KCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICBib29sIGlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERh
dGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+KSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lk
IHNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0
ZXJzJikgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAppbmRleCBkYjYz
OTA4ZmE2NDUyZmRmZWUwYjFlM2E1NmYzNjdjMDFiN2MyZDI5Li5mODlhYTg1NzdjOTBlZjdiNWUy
NWIwMjdkNzBiMGEwZThmMzZiNjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Rh
dGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRp
bWVMb2NhbElucHV0VHlwZS5jcHAKQEAgLTk1LDYgKzk1LDE5IEBAIGJvb2wgRGF0ZVRpbWVMb2Nh
bElucHV0VHlwZTo6aXNEYXRlVGltZUxvY2FsRmllbGQoKSBjb25zdAogICAgIHJldHVybiB0cnVl
OwogfQogCitib29sIERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OmlzVmFsaWRGb3JtYXQoT3B0aW9u
U2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+IHJlc3VsdHMpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHJlc3VsdHMuY29udGFpbnMoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0
czo6SGFzWWVhcikKKyAgICAgICAgJiYgcmVzdWx0cy5jb250YWlucyhEYXRlVGltZUZvcm1hdFZh
bGlkYXRpb25SZXN1bHRzOjpIYXNNb250aCkKKyAgICAgICAgJiYgcmVzdWx0cy5jb250YWlucyhE
YXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNEYXkpCisgICAgICAgICYmIHJlc3Vs
dHMuY29udGFpbnMoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzSG91cikKKyAg
ICAgICAgJiYgcmVzdWx0cy5jb250YWlucyhEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRz
OjpIYXNNaW51dGUpOworfQorCit2b2lkIERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OnNldHVwTGF5
b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29u
c3QKK3sKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgKaW5kZXggMmMwNDk0OWYwZjBhNmQ5
MGYzMjQ4ZTRlZjkwYjgwMDAxOTc0OTRhNS4uZDFhNDVkN2IyZjQ3YjE4NTE5NGIyODM1ZWI0NWMw
YmU1NWQ4NjIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2Fs
SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRU
eXBlLmgKQEAgLTQ5LDYgKzQ5LDkgQEAgcHJpdmF0ZToKICAgICBPcHRpb25hbDxEYXRlQ29tcG9u
ZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRzKGNvbnN0IFN0cmluZ1ZpZXcmKSBjb25zdCBmaW5h
bDsKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21w
b25lbnRzKGRvdWJsZSkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBpc0RhdGVUaW1lTG9jYWxGaWVs
ZCgpIGNvbnN0IGZpbmFsOworCisgICAgYm9vbCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRl
VGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBz
ZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVy
cyYpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAppbmRleCA5OWNmYzRjZmUyMDNjZTRlNjQwOTcw
ZGM5ZTljZTY5ZGI1ZWY3ODg2Li5hN2RjNzNmYTJmYjU2OGRmMDhkOWQ4ZGY5MjNjMjdjNDQzOTg1
MjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcApAQCAtMTMzLDYgKzEz
MywxNiBAQCB2b2lkIE1vbnRoSW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50
JikKIHsKIH0KIAorYm9vbCBNb250aElucHV0VHlwZTo6aXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8
RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4gcmVzdWx0cykgY29uc3QKK3sKKyAgICBy
ZXR1cm4gcmVzdWx0cy5jb250YWlucyhEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpI
YXNZZWFyKQorICAgICAgICAmJiByZXN1bHRzLmNvbnRhaW5zKERhdGVUaW1lRm9ybWF0VmFsaWRh
dGlvblJlc3VsdHM6Okhhc01vbnRoKTsKK30KKwordm9pZCBNb250aElucHV0VHlwZTo6c2V0dXBM
YXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBj
b25zdAoreworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9Nb250aElucHV0VHlwZS5oCmluZGV4IDRiYmQxMWRkMGUwMjc0MDk1OTdiOTEzYWQ5YmEz
ZDg0OGUwNmY3OTcuLjA4YTMzZTM5YTA3MTFiYzg1ZWUxMTA4ZmRkMWI1NmMyOWQzNGVmMmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKQEAgLTUyLDYgKzUyLDkgQEAgcHJpdmF0
ZToKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21w
b25lbnRzKGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc01vbnRoRmllbGQoKSBj
b25zdCBvdmVycmlkZTsKICAgICB2b2lkIGhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmKSBv
dmVycmlkZTsKKworICAgIGJvb2wgaXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3Jt
YXRWYWxpZGF0aW9uUmVzdWx0cz4pIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc2V0dXBMYXlv
dXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25z
dCBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RpbWVJbnB1dFR5cGUuY3BwCmluZGV4IDQzODJmODU4YWQ0MmQ5ZGVkMDEzZWZjMWY5N2Y5NTBl
MWRjMWY0MTQuLjU2MGZhOWNiYmVlNDNmNWM5OWNlNDY4MmM3NjljMmNkMTU3MDllMzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1
ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRl
ICJJbnB1dFR5cGVOYW1lcy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTG9jYWxlLmgiCiAjaW5jbHVk
ZSAiU3RlcFJhbmdlLmgiCiAjaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+CiAjaW5jbHVkZSA8d3Rm
L01hdGhFeHRyYXMuaD4KQEAgLTEwOCw2ICsxMDksMTYgQEAgdm9pZCBUaW1lSW5wdXRUeXBlOjpo
YW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50JikKIHsKIH0KIAorYm9vbCBUaW1lSW5wdXRUeXBl
Ojppc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRz
PiByZXN1bHRzKSBjb25zdAoreworICAgIHJldHVybiByZXN1bHRzLmNvbnRhaW5zKERhdGVUaW1l
Rm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0hvdXIpCisgICAgICAgICYmIHJlc3VsdHMuY29u
dGFpbnMoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzTWludXRlKTsKK30KKwor
dm9pZCBUaW1lSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxl
bWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0Cit7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1
dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCmluZGV4IDFlODYw
YzMxN2ZmZGMwMWM5Y2VjNmZmYjRlM2QzNDAyOWMwM2ZmZGMuLjM5ZjBmMjdjYjI0ODAyOTQzN2Y3
M2ZkYWZlMTQ3YzU1OGY1MzYyMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGlt
ZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCkBA
IC00OSw2ICs0OSw5IEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHNl
dE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3VibGUpIGNvbnN0IG92ZXJyaWRlOwogICAg
IGJvb2wgaXNUaW1lRmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGhhbmRsZURPTUFj
dGl2YXRlRXZlbnQoRXZlbnQmKSBvdmVycmlkZTsKKworICAgIGJvb2wgaXNWYWxpZEZvcm1hdChP
cHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4pIGNvbnN0IG92ZXJyaWRl
OworICAgIHZvaWQgc2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6Okxh
eW91dFBhcmFtZXRlcnMmKSBjb25zdCBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwCmluZGV4IGZmYTc2NWNjYjUx
YTNmZmVjYjFmMzRkNTU0MjUxMmFjNWE4YTNlYzkuLmJmM2U1N2JlZDIzNzcwNzdhNzIxZTU1ZGQz
ZDRkNjU3YTdhZGVjNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcApAQCAt
ODYsNiArODYsMTYgQEAgdm9pZCBXZWVrSW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50
KEV2ZW50JikKIHsKIH0KIAorYm9vbCBXZWVrSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0KE9wdGlv
blNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPiByZXN1bHRzKSBjb25zdAorewor
ICAgIHJldHVybiByZXN1bHRzLmNvbnRhaW5zKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3Vs
dHM6Okhhc1llYXIpCisgICAgICAgICYmIHJlc3VsdHMuY29udGFpbnMoRGF0ZVRpbWVGb3JtYXRW
YWxpZGF0aW9uUmVzdWx0czo6SGFzV2Vlayk7Cit9CisKK3ZvaWQgV2Vla0lucHV0VHlwZTo6c2V0
dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMm
KSBjb25zdAoreworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1dlZWtJbnB1dFR5cGUuaAppbmRleCA1MDk4MTc0NGJmZTRlYmI3MTNhZmViODliNmYw
ZGFkYTg2MTVhYjgwLi5lMzRmMzc2MjE5YjExMmRhMmM0ODgyMDVkYzQ3MmIwNWFjMWE1ZDUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaApAQCAtNDgsNiArNDgsOSBAQCBwcml2YXRl
OgogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBv
bmVudHMoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzV2Vla0ZpZWxkKCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50Jikgb3Zl
cnJpZGU7CisKKyAgICBib29sIGlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0
VmFsaWRhdGlvblJlc3VsdHM+KSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIHNldHVwTGF5b3V0
UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29uc3Qg
b3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdl
YTVlMmQwNGFkMzJhNGNlNmZkOTAzYjJlZGNmZWI3MzBjODk5NzEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcApAQCAt
MCwwICsxLDIyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkRhdGVUaW1lRWRpdEVsZW1lbnQuaCIKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVU
X1RZUEVTKQorCisjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKKyNpbmNsdWRlICJEYXRlVGlt
ZUZpZWxkRWxlbWVudHMuaCIKKyNpbmNsdWRlICJEYXRlVGltZUZvcm1hdC5oIgorI2luY2x1ZGUg
IkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
KyNpbmNsdWRlICJQbGF0Zm9ybUxvY2FsZS5oIgorI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxk
ZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVz
OworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRGF0ZVRpbWVFZGl0RWxlbWVudCk7CisK
K2NsYXNzIERhdGVUaW1lRWRpdEJ1aWxkZXIgOiBwcml2YXRlIERhdGVUaW1lRm9ybWF0OjpUb2tl
bkhhbmRsZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERhdGVUaW1lRWRpdEJ1aWxkZXIp
OworCitwdWJsaWM6CisgICAgRGF0ZVRpbWVFZGl0QnVpbGRlcihEYXRlVGltZUVkaXRFbGVtZW50
JiwgY29uc3QgRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpOworCisgICAg
Ym9vbCBidWlsZChjb25zdCBTdHJpbmcmKTsKKworcHJpdmF0ZToKKyAgICAvLyBEYXRlVGltZUZv
cm1hdDo6VG9rZW5IYW5kbGVyIGZ1bmN0aW9uczoKKyAgICB2b2lkIHZpc2l0RmllbGQoRGF0ZVRp
bWVGb3JtYXQ6OkZpZWxkVHlwZSwgaW50KSBmaW5hbDsKKyAgICB2b2lkIHZpc2l0TGl0ZXJhbChj
b25zdCBTdHJpbmcmKSBmaW5hbDsKKworICAgIERhdGVUaW1lRWRpdEVsZW1lbnQmIG1fZWRpdEVs
ZW1lbnQ7CisgICAgY29uc3QgRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYg
bV9wYXJhbWV0ZXJzOworfTsKKworRGF0ZVRpbWVFZGl0QnVpbGRlcjo6RGF0ZVRpbWVFZGl0QnVp
bGRlcihEYXRlVGltZUVkaXRFbGVtZW50JiBlbGVtZW50LCBjb25zdCBEYXRlVGltZUVkaXRFbGVt
ZW50OjpMYXlvdXRQYXJhbWV0ZXJzJiBsYXlvdXRQYXJhbWV0ZXJzKQorICAgIDogbV9lZGl0RWxl
bWVudChlbGVtZW50KQorICAgICwgbV9wYXJhbWV0ZXJzKGxheW91dFBhcmFtZXRlcnMpCit7Cit9
CisKK2Jvb2wgRGF0ZVRpbWVFZGl0QnVpbGRlcjo6YnVpbGQoY29uc3QgU3RyaW5nJiBmb3JtYXRT
dHJpbmcpCit7CisgICAgbV9lZGl0RWxlbWVudC5yZXNldEZpZWxkcygpOworICAgIHJldHVybiBE
YXRlVGltZUZvcm1hdDo6cGFyc2UoZm9ybWF0U3RyaW5nLCAqdGhpcyk7Cit9CisKK3ZvaWQgRGF0
ZVRpbWVFZGl0QnVpbGRlcjo6dmlzaXRGaWVsZChEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlIGZp
ZWxkVHlwZSwgaW50IGNvdW50KQoreworICAgIGNvbnN0ZXhwciBpbnQgY291bnRGb3JBYmJyZXZp
YXRlZE1vbnRoID0gMzsKKyAgICBjb25zdGV4cHIgaW50IGNvdW50Rm9yRnVsbE1vbnRoID0gNDsK
KyAgICBjb25zdGV4cHIgaW50IGNvdW50Rm9yTmFycm93TW9udGggPSA1OworICAgIERvY3VtZW50
JiBkb2N1bWVudCA9IG1fZWRpdEVsZW1lbnQuZG9jdW1lbnQoKTsKKworICAgIHN3aXRjaCAoZmll
bGRUeXBlKSB7CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRGF5T2ZNb250aDog
eworICAgICAgICBtX2VkaXRFbGVtZW50LmFkZEZpZWxkKERhdGVUaW1lRGF5RmllbGRFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQsIG1fZWRpdEVsZW1lbnQpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRoOgorICAgIGNhc2Ug
RGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRoU3RhbmRBbG9uZTogeworICAgICAgICBzd2l0
Y2ggKGNvdW50KSB7CisgICAgICAgIGNhc2UgY291bnRGb3JOYXJyb3dNb250aDoKKyAgICAgICAg
Y2FzZSBjb3VudEZvckFiYnJldmlhdGVkTW9udGg6IHsKKyAgICAgICAgICAgIGF1dG8gZmllbGQg
PSBEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9l
ZGl0RWxlbWVudCwgZmllbGRUeXBlID09IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNb250aCA/
IG1fcGFyYW1ldGVycy5sb2NhbGUuc2hvcnRNb250aExhYmVscygpIDogbV9wYXJhbWV0ZXJzLmxv
Y2FsZS5zaG9ydFN0YW5kQWxvbmVNb250aExhYmVscygpKTsKKyAgICAgICAgICAgIG1fZWRpdEVs
ZW1lbnQuYWRkRmllbGQoZmllbGQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgICAgY2FzZSBjb3VudEZvckZ1bGxNb250aDogeworICAgICAgICAgICAgYXV0byBmaWVsZCA9
IERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtX2Vk
aXRFbGVtZW50LCBmaWVsZFR5cGUgPT0gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRoID8g
bV9wYXJhbWV0ZXJzLmxvY2FsZS5tb250aExhYmVscygpIDogbV9wYXJhbWV0ZXJzLmxvY2FsZS5z
dGFuZEFsb25lTW9udGhMYWJlbHMoKSk7CisgICAgICAgICAgICBtX2VkaXRFbGVtZW50LmFkZEZp
ZWxkKGZpZWxkKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRlZmF1
bHQ6IHsKKyAgICAgICAgICAgIG1fZWRpdEVsZW1lbnQuYWRkRmllbGQoRGF0ZVRpbWVNb250aEZp
ZWxkRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtX2VkaXRFbGVtZW50KSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVZZWFyOiB7CisgICAgICAgIG1fZWRp
dEVsZW1lbnQuYWRkRmllbGQoRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQsIG1fZWRpdEVsZW1lbnQpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRlZmF1
bHQ6CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK3ZvaWQgRGF0ZVRpbWVFZGl0QnVpbGRl
cjo6dmlzaXRMaXRlcmFsKGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBBU1NFUlQodGV4dC5s
ZW5ndGgoKSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiB0ZXh0UHNldWRvSWQoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdC10ZXh0IiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIGF1dG8gZWxlbWVudCA9IEhUTUxEaXZF
bGVtZW50OjpjcmVhdGUobV9lZGl0RWxlbWVudC5kb2N1bWVudCgpKTsKKyAgICBlbGVtZW50LT5z
ZXRQc2V1ZG8odGV4dFBzZXVkb0lkKTsKKyAgICBlbGVtZW50LT5hcHBlbmRDaGlsZChUZXh0Ojpj
cmVhdGUobV9lZGl0RWxlbWVudC5kb2N1bWVudCgpLCB0ZXh0KSk7CisgICAgbV9lZGl0RWxlbWVu
dC5maWVsZHNXcmFwcGVyRWxlbWVudCgpLT5hcHBlbmRDaGlsZChlbGVtZW50KTsKK30KKworRGF0
ZVRpbWVFZGl0RWxlbWVudDo6RWRpdENvbnRyb2xPd25lcjo6fkVkaXRDb250cm9sT3duZXIoKQor
eworfQorCitEYXRlVGltZUVkaXRFbGVtZW50OjpEYXRlVGltZUVkaXRFbGVtZW50KERvY3VtZW50
JiBkb2N1bWVudCwgRWRpdENvbnRyb2xPd25lciYgZWRpdENvbnRyb2xPd25lcikKKyAgICA6IEhU
TUxEaXZFbGVtZW50KGRpdlRhZywgZG9jdW1lbnQpCisgICAgLCBtX2VkaXRDb250cm9sT3duZXIo
JmVkaXRDb250cm9sT3duZXIpCit7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBkYXRlVGltZUVkaXRQc2V1ZG9JZCgiLXdlYmtpdC1kYXRldGlt
ZS1lZGl0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHNldFBzZXVk
byhkYXRlVGltZUVkaXRQc2V1ZG9JZCk7Cit9CisKK0RhdGVUaW1lRWRpdEVsZW1lbnQ6On5EYXRl
VGltZUVkaXRFbGVtZW50KCkKK3sKK30KKworaW5saW5lIEVsZW1lbnQqIERhdGVUaW1lRWRpdEVs
ZW1lbnQ6OmZpZWxkc1dyYXBwZXJFbGVtZW50KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoZmlyc3RD
aGlsZCgpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8RWxlbWVudD4oZmlyc3RDaGlsZCgpKTsKK30K
Kwordm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjphZGRGaWVsZChSZWY8RGF0ZVRpbWVGaWVsZEVs
ZW1lbnQ+IGZpZWxkKQoreworICAgIGlmIChtX2ZpZWxkcy5zaXplKCkgPT0gbV9maWVsZHMuY2Fw
YWNpdHkoKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fZmllbGRzLmFwcGVuZChmaWVsZCk7Cisg
ICAgZmllbGRzV3JhcHBlckVsZW1lbnQoKS0+YXBwZW5kQ2hpbGQoZmllbGQpOworfQorCitSZWY8
RGF0ZVRpbWVFZGl0RWxlbWVudD4gRGF0ZVRpbWVFZGl0RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCwgRWRpdENvbnRyb2xPd25lciYgZWRpdENvbnRyb2xPd25lcikKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXRlVGltZUVkaXRFbGVtZW50KGRvY3VtZW50LCBlZGl0Q29u
dHJvbE93bmVyKSk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6bGF5b3V0KGNvbnN0
IExheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMpCit7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmaWVsZHNXcmFwcGVyUHNldWRv
SWQoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1maWVsZHMtd3JhcHBlciIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKworICAgIGlmICghZmlyc3RDaGlsZCgpKSB7CisgICAgICAg
IGF1dG8gZWxlbWVudCA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAg
ICAgIGVsZW1lbnQtPnNldFBzZXVkbyhmaWVsZHNXcmFwcGVyUHNldWRvSWQpOworICAgICAgICBh
cHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAgICBFbGVtZW50KiBmaWVsZHNXcmFwcGVy
ID0gZmllbGRzV3JhcHBlckVsZW1lbnQoKTsKKworICAgIERhdGVUaW1lRWRpdEJ1aWxkZXIgYnVp
bGRlcigqdGhpcywgbGF5b3V0UGFyYW1ldGVycyk7CisgICAgTm9kZSogbGFzdENoaWxkVG9CZVJl
bW92ZWQgPSBmaWVsZHNXcmFwcGVyLT5sYXN0Q2hpbGQoKTsKKyAgICBpZiAoIWJ1aWxkZXIuYnVp
bGQobGF5b3V0UGFyYW1ldGVycy5kYXRlVGltZUZvcm1hdCkgfHwgbV9maWVsZHMuaXNFbXB0eSgp
KSB7CisgICAgICAgIGxhc3RDaGlsZFRvQmVSZW1vdmVkID0gZmllbGRzV3JhcHBlci0+bGFzdENo
aWxkKCk7CisgICAgICAgIGJ1aWxkZXIuYnVpbGQobGF5b3V0UGFyYW1ldGVycy5mYWxsYmFja0Rh
dGVUaW1lRm9ybWF0KTsKKyAgICB9CisKKyAgICBpZiAobGFzdENoaWxkVG9CZVJlbW92ZWQpIHsK
KyAgICAgICAgZm9yIChOb2RlKiBjaGlsZE5vZGUgPSBmaWVsZHNXcmFwcGVyLT5maXJzdENoaWxk
KCk7IGNoaWxkTm9kZTsgY2hpbGROb2RlID0gZmllbGRzV3JhcHBlci0+Zmlyc3RDaGlsZCgpKSB7
CisgICAgICAgICAgICBmaWVsZHNXcmFwcGVyLT5yZW1vdmVDaGlsZCgqY2hpbGROb2RlKTsKKyAg
ICAgICAgICAgIGlmIChjaGlsZE5vZGUgPT0gbGFzdENoaWxkVG9CZVJlbW92ZWQpCisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK0F0b21TdHJpbmcgRGF0ZVRp
bWVFZGl0RWxlbWVudDo6bG9jYWxlSWRlbnRpZmllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
ZWRpdENvbnRyb2xPd25lciA/IG1fZWRpdENvbnRyb2xPd25lci0+bG9jYWxlSWRlbnRpZmllcigp
IDogbnVsbEF0b20oKTsKK30KKwordm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpyZXNldEZpZWxk
cygpCit7CisgICAgbV9maWVsZHMuc2hyaW5rKDApOworfQorCit2b2lkIERhdGVUaW1lRWRpdEVs
ZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0IExheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFt
ZXRlcnMsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQoreworICAgIGxheW91dChsYXlvdXRQ
YXJhbWV0ZXJzKTsKKyAgICBmb3IgKHNpemVfdCBmaWVsZEluZGV4ID0gMDsgZmllbGRJbmRleCA8
IG1fZmllbGRzLnNpemUoKTsgKytmaWVsZEluZGV4KQorICAgICAgICBtX2ZpZWxkc1tmaWVsZElu
ZGV4XS0+c2V0VmFsdWVBc0RhdGUoZGF0ZSk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVu
dDo6c2V0RW1wdHlWYWx1ZShjb25zdCBMYXlvdXRQYXJhbWV0ZXJzJiBsYXlvdXRQYXJhbWV0ZXJz
KQoreworICAgIGxheW91dChsYXlvdXRQYXJhbWV0ZXJzKTsKKyAgICBmb3IgKHNpemVfdCBmaWVs
ZEluZGV4ID0gMDsgZmllbGRJbmRleCA8IG1fZmllbGRzLnNpemUoKTsgKytmaWVsZEluZGV4KQor
ICAgICAgICBtX2ZpZWxkc1tmaWVsZEluZGV4XS0+c2V0RW1wdHlWYWx1ZSgpOworfQorCitTdHJp
bmcgRGF0ZVRpbWVFZGl0RWxlbWVudDo6dmFsdWUoKSBjb25zdAoreworICAgIGlmICghbV9lZGl0
Q29udHJvbE93bmVyKQorICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKyAgICByZXR1cm4g
bV9lZGl0Q29udHJvbE93bmVyLT52YWx1ZUZvckVkaXRDb250cm9sKCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZ
UEVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVu
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmM1MmZmMjIyYmZjZjUxNzIyOTMzZGM5YjU3MzEyMTg4ZjI2N2JkNzkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVk
aXRFbGVtZW50LmgKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKworI2luY2x1ZGUgIkRhdGVD
b21wb25lbnRzLmgiCisjaW5jbHVkZSAiRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBMb2NhbGU7CisKK2NsYXNzIERhdGVUaW1lRWRpdEVsZW1l
bnQgZmluYWwgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQsIHB1YmxpYyBEYXRlVGltZUZpZWxkRWxl
bWVudDo6RmllbGRPd25lciB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChEYXRlVGltZUVk
aXRFbGVtZW50KTsKK3B1YmxpYzoKKyAgICBjbGFzcyBFZGl0Q29udHJvbE93bmVyIHsKKyAgICBw
dWJsaWM6CisgICAgICAgIHZpcnR1YWwgfkVkaXRDb250cm9sT3duZXIoKTsKKyAgICAgICAgdmly
dHVhbCBTdHJpbmcgdmFsdWVGb3JFZGl0Q29udHJvbCgpIGNvbnN0ID0gMDsKKyAgICAgICAgdmly
dHVhbCBBdG9tU3RyaW5nIGxvY2FsZUlkZW50aWZpZXIoKSBjb25zdCA9IDA7CisgICAgfTsKKwor
ICAgIHN0cnVjdCBMYXlvdXRQYXJhbWV0ZXJzIHsKKyAgICAgICAgU3RyaW5nIGRhdGVUaW1lRm9y
bWF0OworICAgICAgICBTdHJpbmcgZmFsbGJhY2tEYXRlVGltZUZvcm1hdDsKKyAgICAgICAgTG9j
YWxlJiBsb2NhbGU7CisKKyAgICAgICAgTGF5b3V0UGFyYW1ldGVycyhMb2NhbGUmIGxvY2FsZSkK
KyAgICAgICAgICAgIDogbG9jYWxlKGxvY2FsZSkKKyAgICAgICAgeworICAgICAgICB9CisgICAg
fTsKKworICAgIHN0YXRpYyBSZWY8RGF0ZVRpbWVFZGl0RWxlbWVudD4gY3JlYXRlKERvY3VtZW50
JiwgRWRpdENvbnRyb2xPd25lciYpOworCisgICAgdmlydHVhbCB+RGF0ZVRpbWVFZGl0RWxlbWVu
dCgpOworICAgIHZvaWQgYWRkRmllbGQoUmVmPERhdGVUaW1lRmllbGRFbGVtZW50Pik7CisgICAg
RWxlbWVudCogZmllbGRzV3JhcHBlckVsZW1lbnQoKSBjb25zdDsKKyAgICB2b2lkIHJlc2V0Rmll
bGRzKCk7CisgICAgdm9pZCBzZXRFbXB0eVZhbHVlKGNvbnN0IExheW91dFBhcmFtZXRlcnMmKTsK
KyAgICB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IExheW91dFBhcmFtZXRlcnMmLCBjb25zdCBE
YXRlQ29tcG9uZW50cyYpOworICAgIFN0cmluZyB2YWx1ZSgpIGNvbnN0OworCitwcml2YXRlOgor
ICAgIHN0YXRpYyBjb25zdCBzaXplX3QgaW52YWxpZEZpZWxkSW5kZXggPSBzdGF0aWNfY2FzdDxz
aXplX3Q+KC0xKTsKKworICAgIC8vIERhdGV0aW1lIGNhbiBiZSByZXByZXNlbnRlZCBieSBhdCBt
b3N0IDggZmllbGRzOgorICAgIC8vIDEuIHllYXIKKyAgICAvLyAyLiBtb250aAorICAgIC8vIDMu
IGRheS1vZi1tb250aAorICAgIC8vIDQuIGhvdXIKKyAgICAvLyA1LiBtaW51dGUKKyAgICAvLyA2
LiBzZWNvbmQKKyAgICAvLyA3LiBtaWxsaXNlY29uZAorICAgIC8vIDguIEFNL1BNCisgICAgc3Rh
dGljIGNvbnN0IGludCBtYXhpbXVtTnVtYmVyT2ZGaWVsZHMgPSA4OworCisgICAgRGF0ZVRpbWVF
ZGl0RWxlbWVudChEb2N1bWVudCYsIEVkaXRDb250cm9sT3duZXImKTsKKworICAgIHZvaWQgbGF5
b3V0KGNvbnN0IExheW91dFBhcmFtZXRlcnMmKTsKKworICAgIC8vIERhdGVUaW1lRmllbGRFbGVt
ZW50OjpGaWVsZE93bmVyIGZ1bmN0aW9uczoKKyAgICBBdG9tU3RyaW5nIGxvY2FsZUlkZW50aWZp
ZXIoKSBjb25zdCBmaW5hbDsKKworICAgIFZlY3RvcjxSZWY8RGF0ZVRpbWVGaWVsZEVsZW1lbnQ+
LCBtYXhpbXVtTnVtYmVyT2ZGaWVsZHM+IG1fZmllbGRzOworICAgIEVkaXRDb250cm9sT3duZXIq
IG1fZWRpdENvbnRyb2xPd25lcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjIwOTI1MDMwYzk4MmNmMDdjMWNiMjU3YTYyYWQyMTg3NTU4NDFkNzcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5jcHAK
QEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkRhdGVUaW1lRmllbGRFbGVtZW50LmgiCisKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9J
TlBVVF9UWVBFUykKKworI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCisjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCisjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgorI2luY2x1ZGUgIlBsYXRm
b3JtTG9jYWxlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChEYXRlVGltZUZpZWxkRWxlbWVudCk7
CisKK0RhdGVUaW1lRmllbGRFbGVtZW50OjpGaWVsZE93bmVyOjp+RmllbGRPd25lcigpCit7Cit9
CisKK0RhdGVUaW1lRmllbGRFbGVtZW50OjpEYXRlVGltZUZpZWxkRWxlbWVudChEb2N1bWVudCYg
ZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIpCisgICAgOiBIVE1MRGl2RWxlbWVudChk
aXZUYWcsIGRvY3VtZW50KQorICAgICwgbV9maWVsZE93bmVyKCZmaWVsZE93bmVyKQoreworfQor
Cit2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50Ojppbml0aWFsaXplKGNvbnN0IEF0b21TdHJpbmcm
IHBzZXVkbykKK3sKKyAgICBzZXRQc2V1ZG8ocHNldWRvKTsKK30KKworTG9jYWxlJiBEYXRlVGlt
ZUZpZWxkRWxlbWVudDo6bG9jYWxlRm9yT3duZXIoKSBjb25zdAoreworICAgIHJldHVybiBkb2N1
bWVudCgpLmdldENhY2hlZExvY2FsZShsb2NhbGVJZGVudGlmaWVyKCkpOworfQorCitBdG9tU3Ry
aW5nIERhdGVUaW1lRmllbGRFbGVtZW50Ojpsb2NhbGVJZGVudGlmaWVyKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9maWVsZE93bmVyID8gbV9maWVsZE93bmVyLT5sb2NhbGVJZGVudGlmaWVyKCkg
OiBudWxsQXRvbSgpOworfQorCit2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50Ojp1cGRhdGVWaXNp
YmxlVmFsdWUoKQoreworICAgIGlmICghZmlyc3RDaGlsZCgpKQorICAgICAgICBhcHBlbmRDaGls
ZChUZXh0OjpjcmVhdGUoZG9jdW1lbnQoKSwgZW1wdHlTdHJpbmcoKSkpOworCisgICAgVGV4dCYg
dGV4dE5vZGUgPSBkb3duY2FzdDxUZXh0PigqZmlyc3RDaGlsZCgpKTsKKyAgICBjb25zdCBTdHJp
bmcgbmV3VmlzaWJsZVZhbHVlID0gdmlzaWJsZVZhbHVlKCk7CisgICAgaWYgKHRleHROb2RlLndo
b2xlVGV4dCgpID09IG5ld1Zpc2libGVWYWx1ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdGV4
dE5vZGUucmVwbGFjZVdob2xlVGV4dChuZXdWaXNpYmxlVmFsdWUpOworfQorCitib29sIERhdGVU
aW1lRmllbGRFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEVf
QU5EX1RJTUVfSU5QVVRfVFlQRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGF0ZVRpbWVGaWVsZEVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDMxNThmNzI5ZTRlN2EwYTc1M2U5
MzE5YTJlM2MwMzhiN2ZmMDEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaApAQCAtMCwwICsxLDY5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVT
KQorCisjaW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBEYXRlQ29tcG9uZW50czsKKworY2xhc3MgRGF0ZVRpbWVGaWVsZEVsZW1lbnQgOiBw
dWJsaWMgSFRNTERpdkVsZW1lbnQgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRGF0ZVRp
bWVGaWVsZEVsZW1lbnQpOworcHVibGljOgorICAgIGNsYXNzIEZpZWxkT3duZXIgeworICAgIHB1
YmxpYzoKKyAgICAgICAgdmlydHVhbCB+RmllbGRPd25lcigpOworICAgICAgICB2aXJ0dWFsIEF0
b21TdHJpbmcgbG9jYWxlSWRlbnRpZmllcigpIGNvbnN0ID0gMDsKKyAgICB9OworCisgICAgdmly
dHVhbCBib29sIGhhc1ZhbHVlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRFbXB0
eVZhbHVlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRl
Q29tcG9uZW50cyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0ludGVnZXIoaW50
KSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgdmFsdWUoKSBjb25zdCA9IDA7CisgICAgdmlydHVh
bCBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgRGF0
ZVRpbWVGaWVsZEVsZW1lbnQoRG9jdW1lbnQmLCBGaWVsZE93bmVyJik7CisgICAgdm9pZCBpbml0
aWFsaXplKGNvbnN0IEF0b21TdHJpbmcmIHBzZXVkbyk7CisgICAgTG9jYWxlJiBsb2NhbGVGb3JP
d25lcigpIGNvbnN0OworICAgIEF0b21TdHJpbmcgbG9jYWxlSWRlbnRpZmllcigpIGNvbnN0Owor
ICAgIHZvaWQgdXBkYXRlVmlzaWJsZVZhbHVlKCk7CisgICAgdmlydHVhbCBpbnQgdmFsdWVBc0lu
dGVnZXIoKSBjb25zdCA9IDA7CisKK3ByaXZhdGU6CisgICAgYm9vbCBzdXBwb3J0c0ZvY3VzKCkg
Y29uc3Qgb3ZlcnJpZGU7CisKKyAgICBGaWVsZE93bmVyKiBtX2ZpZWxkT3duZXI7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREFURV9BTkRfVElNRV9J
TlBVVF9UWVBFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lRmllbGRFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGlt
ZUZpZWxkRWxlbWVudHMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyNGEwMDEyMmQwZWY4YzEwODEwNTI2YTk0
OTdhNzlmN2ZkOWFmNWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuY3BwCkBAIC0wLDAgKzEsMTE1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGF0ZVRpbWVGaWVsZEVsZW1lbnRz
LmgiCisKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKworI2luY2x1ZGUg
IkRhdGVDb21wb25lbnRzLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRGF0ZVRp
bWVEYXlGaWVsZEVsZW1lbnQpOworCitEYXRlVGltZURheUZpZWxkRWxlbWVudDo6RGF0ZVRpbWVE
YXlGaWVsZEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVy
KQorICAgIDogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVy
LCAiLS0iX3MpCit7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBkYXlQc3VlZG9JZCgiLXdlYmtpdC1kYXRldGltZS1lZGl0LWRheS1maWVsZCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBpbml0aWFsaXplKGRheVBz
dWVkb0lkKTsKK30KKworUmVmPERhdGVUaW1lRGF5RmllbGRFbGVtZW50PiBEYXRlVGltZURheUZp
ZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRP
d25lcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXRlVGltZURheUZpZWxkRWxlbWVu
dChkb2N1bWVudCwgZmllbGRPd25lcikpOworfQorCit2b2lkIERhdGVUaW1lRGF5RmllbGRFbGVt
ZW50OjpzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkKK3sKKyAgICBz
ZXRWYWx1ZUFzSW50ZWdlcihkYXRlLm1vbnRoRGF5KCkpOworfQorCitXVEZfTUFLRV9JU09fQUxM
T0NBVEVEX0lNUEwoRGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudCk7CisKK0RhdGVUaW1lTW9udGhG
aWVsZEVsZW1lbnQ6OkRhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50
LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyKQorICAgIDogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVt
ZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCAiLS0iX3MpCit7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtb250aFBzdWVkb0lkKCItd2Via2l0
LWRhdGV0aW1lLWVkaXQtbW9udGgtZmllbGQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgaW5pdGlhbGl6ZShtb250aFBzdWVkb0lkKTsKK30KKworUmVmPERhdGVUaW1l
TW9udGhGaWVsZEVsZW1lbnQ+IERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIpCit7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25l
cikpOworfQorCit2b2lkIERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRl
KGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQoreworICAgIHNldFZhbHVlQXNJbnRlZ2VyKGRh
dGUubW9udGgoKSArIDEpOworfQorCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRGF0ZVRp
bWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50KTsKKworRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmll
bGRFbGVtZW50OjpEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQoRG9jdW1lbnQmIGRv
Y3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFi
ZWxzKQorICAgIDogRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRP
d25lciwgbGFiZWxzKQoreworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gbW9udGhQc3VlZG9JZCgiLXdlYmtpdC1kYXRldGltZS1lZGl0LW1vbnRo
LWZpZWxkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIGluaXRpYWxp
emUobW9udGhQc3VlZG9JZCk7Cit9CisKK1JlZjxEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVs
ZW1lbnQ+IERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lciwgY29uc3QgVmVjdG9yPFN0cmluZz4m
IGxhYmVscykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXRlVGltZVN5bWJvbGljTW9u
dGhGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIGxhYmVscykpOworfQorCit2b2lk
IERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUoY29uc3Qg
RGF0ZUNvbXBvbmVudHMmIGRhdGUpCit7CisgICAgc2V0VmFsdWVBc0ludGVnZXIoZGF0ZS5tb250
aCgpKTsKK30KKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERhdGVUaW1lWWVhckZpZWxk
RWxlbWVudCk7CisKK0RhdGVUaW1lWWVhckZpZWxkRWxlbWVudDo6RGF0ZVRpbWVZZWFyRmllbGRF
bGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lcikKKyAgICA6
IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwgIi0tLS0i
X3MpCit7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiB5ZWFyUHN1ZWRvSWQoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15ZWFyLWZpZWxkIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIGluaXRpYWxpemUoeWVhclBzdWVk
b0lkKTsKK30KKworUmVmPERhdGVUaW1lWWVhckZpZWxkRWxlbWVudD4gRGF0ZVRpbWVZZWFyRmll
bGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93
bmVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERhdGVUaW1lWWVhckZpZWxkRWxlbWVu
dChkb2N1bWVudCwgZmllbGRPd25lcikpOworfQorCit2b2lkIERhdGVUaW1lWWVhckZpZWxkRWxl
bWVudDo6c2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUpCit7CisgICAg
c2V0VmFsdWVBc0ludGVnZXIoZGF0ZS5mdWxsWWVhcigpKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVu
dHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjJjOGNkMTRkZjY5OWI3MzdhNjg5NjYzNGE2OTM2ZDVlYjE1YmZhMzcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxk
RWxlbWVudHMuaApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorCisjaW5jbHVkZSAiRGF0ZVRp
bWVOdW1lcmljRmllbGRFbGVtZW50LmgiCisjaW5jbHVkZSAiRGF0ZVRpbWVTeW1ib2xpY0ZpZWxk
RWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERhdGVUaW1lRGF5Rmll
bGRFbGVtZW50IGZpbmFsIDogcHVibGljIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCB7Cisg
ICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChEYXRlVGltZURheUZpZWxkRWxlbWVudCk7CisKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPERhdGVUaW1lRGF5RmllbGRFbGVtZW50PiBjcmVhdGUoRG9j
dW1lbnQmLCBGaWVsZE93bmVyJik7CisKK3ByaXZhdGU6CisgICAgRGF0ZVRpbWVEYXlGaWVsZEVs
ZW1lbnQoRG9jdW1lbnQmLCBGaWVsZE93bmVyJik7CisKKyAgICAvLyBEYXRlVGltZUZpZWxkRWxl
bWVudCBmdW5jdGlvbnM6CisgICAgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9u
ZW50cyYpIGZpbmFsOworfTsKKworY2xhc3MgRGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudCBmaW5h
bCA6IHB1YmxpYyBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQgeworICAgIFdURl9NQUtFX0lT
T19BTExPQ0FURUQoRGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudCk7CisKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYsIEZp
ZWxkT3duZXImKTsKKworcHJpdmF0ZToKKyAgICBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50KERv
Y3VtZW50JiwgRmllbGRPd25lciYpOworCisgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVu
Y3Rpb25zOgorICAgIHZvaWQgc2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmKSBm
aW5hbDsKK307CisKK2NsYXNzIERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudCBmaW5h
bCA6IHB1YmxpYyBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50IHsKKyAgICBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEKERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudCk7CisKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudD4gY3Jl
YXRlKERvY3VtZW50JiwgRmllbGRPd25lciYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CisKK3By
aXZhdGU6CisgICAgRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50KERvY3VtZW50Jiwg
RmllbGRPd25lciYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CisKKyAgICAvLyBEYXRlVGltZUZp
ZWxkRWxlbWVudCBmdW5jdGlvbnM6CisgICAgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRl
Q29tcG9uZW50cyYpIGZpbmFsOworfTsKKworY2xhc3MgRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50
IGZpbmFsIDogcHVibGljIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCB7CisgICAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRChEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQpOworCitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYs
IEZpZWxkT3duZXImKTsKKworcHJpdmF0ZToKKyAgICBEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQo
RG9jdW1lbnQmLCBGaWVsZE93bmVyJik7CisKKyAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBm
dW5jdGlvbnM6CisgICAgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYp
IGZpbmFsOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lYjc3YjU1ZjJkMzk3MDQwYzUzMTFkNTVkNWM4ZjdhZjVkNzczMWEzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVt
ZW50LmNwcApAQCAtMCwwICsxLDk0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmgiCisKKyNpZiBFTkFCTEUo
REFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKworI2luY2x1ZGUgIlBsYXRmb3JtTG9jYWxlLmgi
CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVt
ZW50KTsKKworRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpEYXRlVGltZU51bWVyaWNGaWVs
ZEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBjb25z
dCBTdHJpbmcmIHBsYWNlaG9sZGVyKQorICAgIDogRGF0ZVRpbWVGaWVsZEVsZW1lbnQoZG9jdW1l
bnQsIGZpZWxkT3duZXIpCisgICAgLCBtX3BsYWNlaG9sZGVyKHBsYWNlaG9sZGVyKQorICAgICwg
bV92YWx1ZSgwKQorICAgICwgbV9oYXNWYWx1ZShmYWxzZSkKK3sKK30KKworU3RyaW5nIERhdGVU
aW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6Zm9ybWF0VmFsdWUoaW50IHZhbHVlKSBjb25zdAorewor
ICAgIExvY2FsZSYgbG9jYWxlID0gbG9jYWxlRm9yT3duZXIoKTsKKyAgICByZXR1cm4gbG9jYWxl
LmNvbnZlcnRUb0xvY2FsaXplZE51bWJlcihtYWtlU3RyaW5nKHBhZCgnMCcsIDIsIHZhbHVlKSkp
OworfQorCitib29sIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6aGFzVmFsdWUoKSBjb25z
dAoreworICAgIHJldHVybiBtX2hhc1ZhbHVlOworfQorCit2b2lkIERhdGVUaW1lTnVtZXJpY0Zp
ZWxkRWxlbWVudDo6aW5pdGlhbGl6ZShjb25zdCBBdG9tU3RyaW5nJiBwc2V1ZG8pCit7CisgICAg
RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUocHNldWRvKTsKK30KKwordm9pZCBEYXRl
VGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnNldEVtcHR5VmFsdWUoKQoreworICAgIG1fdmFsdWUg
PSAwOworICAgIG1faGFzVmFsdWUgPSBmYWxzZTsKKyAgICB1cGRhdGVWaXNpYmxlVmFsdWUoKTsK
K30KKwordm9pZCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNJbnRlZ2Vy
KGludCB2YWx1ZSkKK3sKKyAgICBtX3ZhbHVlID0gdmFsdWU7CisgICAgbV9oYXNWYWx1ZSA9IHRy
dWU7CisgICAgdXBkYXRlVmlzaWJsZVZhbHVlKCk7Cit9CisKK1N0cmluZyBEYXRlVGltZU51bWVy
aWNGaWVsZEVsZW1lbnQ6OnZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYXNWYWx1ZSA/
IGZvcm1hdFZhbHVlKG1fdmFsdWUpIDogZW1wdHlTdHJpbmcoKTsKK30KKworaW50IERhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudDo6dmFsdWVBc0ludGVnZXIoKSBjb25zdAoreworICAgIHJldHVy
biBtX2hhc1ZhbHVlID8gbV92YWx1ZSA6IC0xOworfQorCitTdHJpbmcgRGF0ZVRpbWVOdW1lcmlj
RmllbGRFbGVtZW50Ojp2aXNpYmxlVmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBtX2hhc1Zh
bHVlID8gdmFsdWUoKSA6IG1fcGxhY2Vob2xkZXI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41YmUzOWU0Y2I2N2Y1N2Y0NGZlZmJkNGJiOGZhMTFjYTNkNDU0
MmNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVOdW1lcmljRmllbGRFbGVtZW50LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKworI2lu
Y2x1ZGUgIkRhdGVUaW1lRmllbGRFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50IDogcHVibGljIERhdGVUaW1lRmllbGRF
bGVtZW50IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudCk7CitwdWJsaWM6CisKK3Byb3RlY3RlZDoKKyAgICBEYXRlVGltZU51bWVyaWNGaWVs
ZEVsZW1lbnQoRG9jdW1lbnQmLCBGaWVsZE93bmVyJiwgY29uc3QgU3RyaW5nJik7CisKKyAgICAv
LyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnM6CisgICAgYm9vbCBoYXNWYWx1ZSgpIGNv
bnN0IGZpbmFsOworICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBBdG9tU3RyaW5nJik7CisgICAg
dm9pZCBzZXRFbXB0eVZhbHVlKCkgZmluYWw7CisgICAgdm9pZCBzZXRWYWx1ZUFzSW50ZWdlcihp
bnQpIG92ZXJyaWRlOworICAgIGludCB2YWx1ZUFzSW50ZWdlcigpIGNvbnN0IGZpbmFsOworICAg
IFN0cmluZyB2aXNpYmxlVmFsdWUoKSBjb25zdCBmaW5hbDsKKworcHJpdmF0ZToKKyAgICAvLyBE
YXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnM6CisgICAgU3RyaW5nIHZhbHVlKCkgY29uc3Qg
ZmluYWw7CisKKyAgICBTdHJpbmcgZm9ybWF0VmFsdWUoaW50KSBjb25zdDsKKworICAgIGNvbnN0
IFN0cmluZyBtX3BsYWNlaG9sZGVyOworICAgIGludCBtX3ZhbHVlOworICAgIGJvb2wgbV9oYXNW
YWx1ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShE
QVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40ZGMyMmFlZjI4MDJkZmNjNDUxYWMwZTZjMjkyMGYyMmE1MGViOGFlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxl
bWVudC5jcHAKQEAgLTAsMCArMSwxMDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmgiCisKKyNpZiBFTkFC
TEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQp
OworCitzdGF0aWMgQXRvbVN0cmluZyBtYWtlVmlzaWJsZUVtcHR5VmFsdWUoY29uc3QgVmVjdG9y
PFN0cmluZz4mIHN5bWJvbHMpCit7CisgICAgdW5zaWduZWQgbWF4aW11bUxlbmd0aCA9IDA7Cisg
ICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgc3ltYm9scy5zaXplKCk7ICsraW5k
ZXgpCisgICAgICAgIG1heGltdW1MZW5ndGggPSBzdGQ6Om1heChtYXhpbXVtTGVuZ3RoLCBudW1H
cmFwaGVtZUNsdXN0ZXJzKHN5bWJvbHNbaW5kZXhdKSk7CisgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOworICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KG1heGltdW1MZW5ndGgpOworICAgIGZv
ciAodW5zaWduZWQgbGVuZ3RoID0gMDsgbGVuZ3RoIDwgbWF4aW11bUxlbmd0aDsgKytsZW5ndGgp
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCctJyk7CisgICAgcmV0dXJuIGJ1aWxkZXIudG9BdG9t
U3RyaW5nKCk7Cit9CisKK0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lU3lt
Ym9saWNGaWVsZEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93
bmVyLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3ltYm9scykKKyAgICA6IERhdGVUaW1lRmllbGRF
bGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyKQorICAgICwgbV9zeW1ib2xzKHN5bWJvbHMpCisg
ICAgLCBtX3Zpc2libGVFbXB0eVZhbHVlKG1ha2VWaXNpYmxlRW1wdHlWYWx1ZShzeW1ib2xzKSkK
KyAgICAsIG1fc2VsZWN0ZWRJbmRleCgtMSkKK3sKKyAgICBBU1NFUlQoIXN5bWJvbHMuaXNFbXB0
eSgpKTsKK30KKworYm9vbCBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpoYXNWYWx1ZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2VsZWN0ZWRJbmRleCA+PSAwOworfQorCit2b2lkIERh
dGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUoY29uc3QgQXRvbVN0cmluZyYg
cHNldWRvKQoreworICAgIERhdGVUaW1lRmllbGRFbGVtZW50Ojppbml0aWFsaXplKHBzZXVkbyk7
Cit9CisKK3ZvaWQgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6c2V0RW1wdHlWYWx1ZSgp
Cit7CisgICAgbV9zZWxlY3RlZEluZGV4ID0gaW52YWxpZEluZGV4OworICAgIHVwZGF0ZVZpc2li
bGVWYWx1ZSgpOworfQorCit2b2lkIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnNldFZh
bHVlQXNJbnRlZ2VyKGludCBuZXdTZWxlY3RlZEluZGV4KQoreworICAgIG1fc2VsZWN0ZWRJbmRl
eCA9IHN0ZDo6bWF4KDAsIHN0ZDo6bWluKG5ld1NlbGVjdGVkSW5kZXgsIHN0YXRpY19jYXN0PGlu
dD4obV9zeW1ib2xzLnNpemUoKSAtIDEpKSk7CisgICAgdXBkYXRlVmlzaWJsZVZhbHVlKCk7Cit9
CisKK1N0cmluZyBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojp2YWx1ZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGhhc1ZhbHVlKCkgPyBtX3N5bWJvbHNbbV9zZWxlY3RlZEluZGV4XSA6IGVt
cHR5U3RyaW5nKCk7Cit9CisKK2ludCBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojp2YWx1
ZUFzSW50ZWdlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2VsZWN0ZWRJbmRleDsKK30KKwor
U3RyaW5nIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnZpc2libGVFbXB0eVZhbHVlKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV92aXNpYmxlRW1wdHlWYWx1ZTsKK30KKworU3RyaW5nIERh
dGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnZpc2libGVWYWx1ZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGhhc1ZhbHVlKCkgPyBtX3N5bWJvbHNbbV9zZWxlY3RlZEluZGV4XSA6IHZpc2libGVF
bXB0eVZhbHVlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIxMzExZmJhM2IwMDA1ODhkZjZmYWEzNzBhMzEyYzUwNDA4NjgyNTQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRF
bGVtZW50LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKworI2luY2x1ZGUgIkRhdGVUaW1l
RmllbGRFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGF0ZVRpbWVT
eW1ib2xpY0ZpZWxkRWxlbWVudCA6IHB1YmxpYyBEYXRlVGltZUZpZWxkRWxlbWVudCB7CisgICAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRChEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50KTsKK3By
b3RlY3RlZDoKKyAgICBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50KERvY3VtZW50JiwgRmll
bGRPd25lciYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CisgICAgc2l6ZV90IHN5bWJvbHNTaXpl
KCkgY29uc3QgeyByZXR1cm4gbV9zeW1ib2xzLnNpemUoKTsgfQorICAgIGJvb2wgaGFzVmFsdWUo
KSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgQXRvbVN0cmluZyYgcHNl
dWRvKTsKKyAgICB2b2lkIHNldEVtcHR5VmFsdWUoKSBmaW5hbDsKKyAgICB2b2lkIHNldFZhbHVl
QXNJbnRlZ2VyKGludCkgZmluYWw7CisgICAgaW50IHZhbHVlQXNJbnRlZ2VyKCkgY29uc3QgZmlu
YWw7CisKK3ByaXZhdGU6CisgICAgc3RhdGljIGNvbnN0IGludCBpbnZhbGlkSW5kZXggPSAtMTsK
KworICAgIFN0cmluZyB2aXNpYmxlRW1wdHlWYWx1ZSgpIGNvbnN0OworCisgICAgLy8gRGF0ZVRp
bWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zOgorICAgIFN0cmluZyB2YWx1ZSgpIGNvbnN0IGZpbmFs
OworICAgIFN0cmluZyB2aXNpYmxlVmFsdWUoKSBjb25zdCBmaW5hbDsKKworICAgIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+IG1fc3ltYm9sczsKKworICAgIGNvbnN0IEF0b21TdHJpbmcgbV92aXNpYmxl
RW1wdHlWYWx1ZTsKKyAgICBpbnQgbV9zZWxlY3RlZEluZGV4OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggOWM5MWQ1ZmQzYTcwMjYxZGQwMzAyNjJiNzZhNmE4YzI5ZDg2M2QzMC4uMjU4ZDRk
OWFlNWJhMTZlMGU2YzUzOTcxZTNlZDEwYWNlZDRmYWVlMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBA
CisyMDIwLTA4LTI0ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAg
ICAgICBbbWFjT1NdIERhdGUgaW5wdXRzIHNob3VsZCBjb250YWluIGVkaXRhYmxlIGNvbXBvbmVu
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTE1
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVk
IGEgdGVzdCB0byB2ZXJpZnkgc3R5bGluZyBvZiBwc2V1ZG8gZWxlbWVudHMgd2l0aGluIGRhdGUg
aW5wdXRzLgorICAgICAgICBSZWJhc2VsaW5lZCBleGlzdGluZyB0ZXN0cyB0byBtYXRjaCBuZXcg
YXBwZWFyYW5jZS4KKworICAgICAgICAqIGZhc3QvZm9ybXMvZGF0ZS9kYXRlLXBzZXVkby1lbGVt
ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZGF0ZS9kYXRl
LXBzZXVkby1lbGVtZW50cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sy
L2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWlucHV0LXJlbmRlcmluZy1iYXNpYy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1wc2V1ZG8t
ZWxlbWVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sy
L2Zhc3QvZm9ybXMvdGltZS90aW1lLWFwcGVhcmFuY2UtYmFzaWMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMvdGltZS90aW1lLWlucHV0
LXJlbmRlcmluZy1iYXNpYy1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDgtMjQgIEFkaXR5YSBLZWVy
dGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gU2hvdyBwaWNrZXIg
Zm9yIGRhdGUgYW5kIGRhdGV0aW1lLWxvY2FsIGlucHV0IHR5cGVzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1wc2V1ZG8tZWxlbWVudHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtcHNldWRvLWVsZW1lbnRzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yZmNlZjliY2JkOWU1NzFjNWIzZjVjNjRhZGZkNWYzOTMyYmM5
MzM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUt
cHNldWRvLWVsZW1lbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xh
eWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0
CisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEwMSwyKSBzaXplIDR4MTkKKyAgICAgICAg
dGV4dCBydW4gYXQgKDEwMSwyKSB3aWR0aCA0OiAiICIKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDEwLDEwKSBzaXplIDk3eDIyIGNsaXAgYXQg
KDExLDExKSBzaXplIDk1eDIwCisgIFJlbmRlckZsZXhpYmxlQm94IHtJTlBVVH0gYXQgKDIsMikg
c2l6ZSA5N3gyMiBbYmdjb2xvcj0jRkZGRkZGXSBbYm9yZGVyOiAoMXB4IHNvbGlkICM0QzRDNEMp
XQorICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg2LDQpIHNpemUgNTd4MTQKKyAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDU3eDE0CisgICAgICAgIHRleHQgcnVuIGF0ICgw
LDApIHdpZHRoIDU3OiAiQXByIDEsIDE5NzYiCitsYXllciBhdCAoMTE1LDEwKSBzaXplIDk3eDIy
IGNsaXAgYXQgKDExNiwxMSkgc2l6ZSA5NXgyMAorICBSZW5kZXJGbGV4aWJsZUJveCB7SU5QVVR9
IGF0ICgxMDcsMikgc2l6ZSA5N3gyMiBbYmdjb2xvcj0jRkZGRkZGXSBbYm9yZGVyOiAoMXB4IHNv
bGlkICM0QzRDNEMpXQorICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxNiw0KSBzaXplIDU3eDE0
CisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1N3gxNAorICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1NzogIkFwciAxLCAxOTc2IgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtcHNldWRvLWVsZW1lbnRzLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1wc2V1ZG8tZWxlbWVudHMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kOTg5MWIwYTUyMmM3YThlM2IzNGY3ZDEwZTNmZjc5ZTA4ODQ4MWVkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtcHNldWRvLWVsZW1lbnRz
Lmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2lucHV0Ojot
d2Via2l0LWRhdGV0aW1lLWVkaXQgeworICAgIGJvcmRlcjogMXB4IHNvbGlkIHJlZDsKKyAgICBm
b250LWZhbWlseTogbW9ub3NwYWNlOworICAgIGZvbnQtc2l6ZTogMTVweDsKK30KKworaW5wdXQ6
Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC10ZXh0IHsKKyAgICBjb2xvcjogeWVsbG93OworICAgIGZv
bnQtZmFtaWx5OiBtb25vc3BhY2U7CisgICAgZm9udC1zaXplOiAxNXB4OworfQorCitpbnB1dDo6
LXdlYmtpdC1kYXRldGltZS1lZGl0LW1vbnRoLWZpZWxkIHsKKyAgICBjb2xvcjogcmVkOworICAg
IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CisgICAgZm9udC1zaXplOiAxNXB4OworfQorCitpbnB1
dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LWRheS1maWVsZCB7CisgICAgY29sb3I6IGdyZWVuOwor
ICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CisgICAgZm9udC1zaXplOiAxNXB4OworfQorCitp
bnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LXllYXItZmllbGQgeworICAgIGNvbG9yOiBibHVl
OworICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CisgICAgZm9udC1zaXplOiAxNXB4OworfQor
PC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxpbnB1dCB0eXBlPSJkYXRlIiBkaXI9Imx0
ciIgdmFsdWU9IjE5NzYtMDQtMDEiPgorICAgIDxpbnB1dCB0eXBlPSJkYXRlIiBkaXI9InJ0bCIg
dmFsdWU9IjE5NzYtMDQtMDEiPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1pbnB1dC1yZW5kZXJp
bmctYmFzaWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0
L2Zvcm1zL2RhdGUvZGF0ZS1pbnB1dC1yZW5kZXJpbmctYmFzaWMtZXhwZWN0ZWQudHh0CmluZGV4
IDViYjU3ODcwMzdhNDkzZjI4NTBiZmIyMzg5YmI3ODhhZDhiOTg4YjEuLmIyMDQ2ODBkYmY2MjBh
NjQyYzU4NmY0ZTNhMmE0NmVlODZlOWQzMzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtaW5wdXQtcmVuZGVyaW5nLWJhc2ljLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMv
ZGF0ZS9kYXRlLWlucHV0LXJlbmRlcmluZy1iYXNpYy1leHBlY3RlZC50eHQKQEAgLTMsMTYgKzMs
NDYgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAogICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAotICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgxMTAsMykgc2l6ZSA0eDE4Ci0gICAgICAgIHRleHQgcnVuIGF0ICgxMTAsMykg
d2lkdGggNDogIiAiCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDExMCwyKSBzaXplIDR4
MTgKKyAgICAgICAgdGV4dCBydW4gYXQgKDExMCwyKSB3aWR0aCA0OiAiICIKICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAotbGF5ZXIgYXQgKDgsMTApIHNpemUgMTEw
eDIxIGNsaXAgYXQgKDEwLDEyKSBzaXplIDEwNngxNwotICBSZW5kZXJGbGV4aWJsZUJveCB7SU5Q
VVR9IGF0ICgwLDIpIHNpemUgMTEweDIxIFtiZ2NvbG9yPSNGRkZGRkZdIFtib3JkZXI6ICgycHgg
aW5zZXQgIzAwMDAwMCldCi0gICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDcsNCkgc2l6ZSA1OXgx
MwotICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNTl4MTMKLSAgICAgICAg
dGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTk6ICJBcHIgMSwgMTk3NiIKLWxheWVyIGF0ICgxMjIs
MTApIHNpemUgMTEweDIxIGNsaXAgYXQgKDEyNCwxMikgc2l6ZSAxMDZ4MTcKLSAgUmVuZGVyRmxl
eGlibGVCb3gge0lOUFVUfSBhdCAoMTE0LDIpIHNpemUgMTEweDIxIFtiZ2NvbG9yPSNGRkZGRkZd
IFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCi0gICAgUmVuZGVyQmxvY2sge0RJVn0gYXQg
KDI0LDQpIHNpemUgNTl4MTMKLSAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDU5eDEzCi0gICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDU5OiAiQXByIDEsIDE5NzYi
CitsYXllciBhdCAoOCwxMCkgc2l6ZSAxMTB4MTkgY2xpcCBhdCAoMTAsMTIpIHNpemUgMTA2eDE1
CisgIFJlbmRlckZsZXhpYmxlQm94IHtJTlBVVH0gYXQgKDAsMikgc2l6ZSAxMTB4MTkgW2JnY29s
b3I9I0ZGRkZGRl0gW2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KK2xheWVyIGF0ICgxMSwx
Mykgc2l6ZSA2NXgxMyBzY3JvbGxIZWlnaHQgMTQKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDMs
Mykgc2l6ZSA2NngxMworICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNjZ4MTMK
KyAgICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDE3eDE1CisgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMSwwKSBzaXplIDE1eDEzCisgICAgICAgICAgdGV4dCBydW4g
YXQgKDEsMCkgd2lkdGggMTU6ICIwNCIKKyAgICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCww
KSBzaXplIDR4MTMKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNiwwKSBzaXplIDR4
MTMKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTYsMCkgd2lkdGggNDogIi8iCisgICAgICBSZW5k
ZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSAxNngxNQorICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDIwLDApIHNpemUgMTR4MTMKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjAsMCkg
d2lkdGggMTQ6ICIwMSIKKyAgICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDR4
MTMKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzNCwwKSBzaXplIDR4MTMKKyAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMzQsMCkgd2lkdGggNDogIi8iCisgICAgICBSZW5kZXJJbmxpbmUg
e0RJVn0gYXQgKDAsMCkgc2l6ZSAyOXgxNQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDM4LDApIHNpemUgMjd4MTMKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzgsMCkgd2lkdGggMjc6
ICIxOTc2IgorbGF5ZXIgYXQgKDEyMiwxMCkgc2l6ZSAxMTB4MTkgY2xpcCBhdCAoMTI0LDEyKSBz
aXplIDEwNngxNQorICBSZW5kZXJGbGV4aWJsZUJveCB7SU5QVVR9IGF0ICgxMTQsMikgc2l6ZSAx
MTB4MTkgW2JnY29sb3I9I0ZGRkZGRl0gW2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KK2xh
eWVyIGF0ICgxNjQsMTMpIHNpemUgNjV4MTMgc2Nyb2xsSGVpZ2h0IDE0CisgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICg0MSwzKSBzaXplIDY2eDEzCisgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAs
MCkgc2l6ZSA2NngxMworICAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgMTd4
MTUKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxLDApIHNpemUgMTV4MTMKKyAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMSwwKSB3aWR0aCAxNTogIjA0IgorICAgICAgUmVuZGVySW5saW5l
IHtESVZ9IGF0ICgwLDApIHNpemUgNHgxMworICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDE2LDApIHNpemUgNHgxMworICAgICAgICAgIHRleHQgcnVuIGF0ICgxNiwwKSB3aWR0aCA0OiAi
LyIKKyAgICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDE2eDE1CisgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjAsMCkgc2l6ZSAxNHgxMworICAgICAgICAgIHRleHQg
cnVuIGF0ICgyMCwwKSB3aWR0aCAxNDogIjAxIgorICAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0
ICgwLDApIHNpemUgNHgxMworICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDM0LDApIHNp
emUgNHgxMworICAgICAgICAgIHRleHQgcnVuIGF0ICgzNCwwKSB3aWR0aCA0OiAiLyIKKyAgICAg
IFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDI5eDE1CisgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMzgsMCkgc2l6ZSAyN3gxMworICAgICAgICAgIHRleHQgcnVuIGF0ICgz
OCwwKSB3aWR0aCAyNzogIjE5NzYiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLXBzZXVkby1lbGVtZW50cy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLXBzZXVk
by1lbGVtZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTI1M2M2MDkyNWJhYTI4MmRiZWQz
MTU5NDNiZjFmZGNiZmQwYjhiMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtcHNldWRvLWVsZW1lbnRzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDQ4IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVu
ZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVy
Qm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDExMCw1KSBzaXplIDR4MTgKKyAgICAgICAgdGV4dCBydW4gYXQgKDExMCw1KSB3aWR0
aCA0OiAiICIKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5
ZXIgYXQgKDgsMTApIHNpemUgMTEweDI1IGNsaXAgYXQgKDEwLDEyKSBzaXplIDEwNngyMQorICBS
ZW5kZXJGbGV4aWJsZUJveCB7SU5QVVR9IGF0ICgwLDIpIHNpemUgMTEweDI1IFtiZ2NvbG9yPSNG
RkZGRkZdIFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCitsYXllciBhdCAoMTEsMTMpIHNp
emUgOTh4MTkgY2xpcCBhdCAoMTIsMTQpIHNpemUgOTZ4MTcgc2Nyb2xsSGVpZ2h0IDE4CisgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICgzLDMpIHNpemUgOTl4MTkgW2JvcmRlcjogKDFweCBzb2xpZCAj
RkYwMDAwKV0KKyAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMSwxKSBzaXplIDk3eDE3CisgICAg
ICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMXgxOSBbY29sb3I9I0ZGMDAwMF0K
KyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxLDApIHNpemUgMTl4MTcKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMSwwKSB3aWR0aCAxOTogIjA0IgorICAgICAgUmVuZGVySW5saW5lIHtE
SVZ9IGF0ICgwLDApIHNpemUgMTB4MTcgW2NvbG9yPSNGRkZGMDBdCisgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMjAsMCkgc2l6ZSAxMHgxNworICAgICAgICAgIHRleHQgcnVuIGF0ICgy
MCwwKSB3aWR0aCAxMDogIi8iCisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6
ZSAyMXgxOSBbY29sb3I9IzAwODAwMF0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgz
MCwwKSBzaXplIDE5eDE3CisgICAgICAgICAgdGV4dCBydW4gYXQgKDMwLDApIHdpZHRoIDE5OiAi
MDEiCisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMHgxNyBbY29sb3I9
I0ZGRkYwMF0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg0OSwwKSBzaXplIDEweDE3
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDQ5LDApIHdpZHRoIDEwOiAiLyIKKyAgICAgIFJlbmRl
cklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDM5eDE5IFtjb2xvcj0jMDAwMEZGXQorICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDU5LDApIHNpemUgMzd4MTcKKyAgICAgICAgICB0ZXh0
IHJ1biBhdCAoNTksMCkgd2lkdGggMzc6ICIxOTc2IgorbGF5ZXIgYXQgKDEyMiwxMCkgc2l6ZSAx
MTB4MjUgY2xpcCBhdCAoMTI0LDEyKSBzaXplIDEwNngyMQorICBSZW5kZXJGbGV4aWJsZUJveCB7
SU5QVVR9IGF0ICgxMTQsMikgc2l6ZSAxMTB4MjUgW2JnY29sb3I9I0ZGRkZGRl0gW2JvcmRlcjog
KDJweCBpbnNldCAjMDAwMDAwKV0KK2xheWVyIGF0ICgxMzEsMTMpIHNpemUgOTh4MTkgY2xpcCBh
dCAoMTMyLDE0KSBzaXplIDk2eDE3IHNjcm9sbEhlaWdodCAxOAorICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoOCwzKSBzaXplIDk5eDE5IFtib3JkZXI6ICgxcHggc29saWQgI0ZGMDAwMCldCisgICAg
UmVuZGVyQmxvY2sge0RJVn0gYXQgKDEsMSkgc2l6ZSA5N3gxNworICAgICAgUmVuZGVySW5saW5l
IHtESVZ9IGF0ICgwLDApIHNpemUgMjF4MTkgW2NvbG9yPSNGRjAwMDBdCisgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMSwwKSBzaXplIDE5eDE3CisgICAgICAgICAgdGV4dCBydW4gYXQg
KDEsMCkgd2lkdGggMTk6ICIwNCIKKyAgICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBz
aXplIDEweDE3IFtjb2xvcj0jRkZGRjAwXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDIwLDApIHNpemUgMTB4MTcKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjAsMCkgd2lkdGggMTA6
ICIvIgorICAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgMjF4MTkgW2NvbG9y
PSMwMDgwMDBdCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMzAsMCkgc2l6ZSAxOXgx
NworICAgICAgICAgIHRleHQgcnVuIGF0ICgzMCwwKSB3aWR0aCAxOTogIjAxIgorICAgICAgUmVu
ZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgMTB4MTcgW2NvbG9yPSNGRkZGMDBdCisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNDksMCkgc2l6ZSAxMHgxNworICAgICAgICAgIHRl
eHQgcnVuIGF0ICg0OSwwKSB3aWR0aCAxMDogIi8iCisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0g
YXQgKDAsMCkgc2l6ZSAzOXgxOSBbY29sb3I9IzAwMDBGRl0KKyAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICg1OSwwKSBzaXplIDM3eDE3CisgICAgICAgICAgdGV4dCBydW4gYXQgKDU5LDAp
IHdpZHRoIDM3OiAiMTk3NiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvZmFzdC9mb3Jtcy90aW1lL3RpbWUtYXBwZWFyYW5jZS1iYXNpYy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMvdGltZS90aW1lLWFwcGVhcmFu
Y2UtYmFzaWMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkZDBhZDU1OTdmNjllNzBkNjFiYzU2
ZWU2NDg3OGEwYWE4YWY4NDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL2Zhc3QvZm9ybXMvdGltZS90aW1lLWFwcGVhcmFuY2UtYmFzaWMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTcgQEAKK3N0ZXA9bm9uZSAgCitzdGVwPTEgIAorc3RlcD0wLjAwMDEg
IAorc3RlcD02MCAgCitzdGVwPTM2MDAgIAorc3RlcD04NjQwMCAgCitzdGVwIG1pc21hdGNoZWQg
CitSVEwgCitEaXNhYmxlZCwgc3RlcD0zNjAwICAKK1JlYWRvbmx5LCBzdGVwPTM2MDAgIAordGV4
dC1hbGlnbjogCit0ZXh0LXRyYW5zZm9ybTogCitiYWNrZ3JvdW5kLCBjb2xvcjogCitmb250LXNp
emUsIGZvbnQtd2VpZ2h0OiAKK2ZvbnQtc2l6ZSB3aXRoIGZpeGVkIGlucHV0IHdpZHRoOiAKK0Zp
eGVkIGlucHV0IGhlaWdodDogCistd2Via2l0LWFwcGVhcmFuY2U6bm9uZTogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMvdGltZS90aW1lLWlucHV0
LXJlbmRlcmluZy1iYXNpYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL2Zhc3QvZm9ybXMvdGltZS90aW1lLWlucHV0LXJlbmRlcmluZy1iYXNpYy1leHBlY3RlZC50
eHQKaW5kZXggZTU1OTFmN2Q3NWJjYzkxNjQ1NzBkMTJlMDdlMjhmNmU2Mjg0NDg0NC4uYTkyMDdl
OWFkYzBmOGRiMTM2MWRjNzRmZjIyMWU1ZjBmZDQ0MjkyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL3RpbWUvdGltZS1pbnB1dC1yZW5kZXJpbmct
YmFzaWMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFz
dC9mb3Jtcy90aW1lL3RpbWUtaW5wdXQtcmVuZGVyaW5nLWJhc2ljLWV4cGVjdGVkLnR4dApAQCAt
MywxOCArMywxMCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKIGxheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAogICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CiAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0Ci0gICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDExMCwzKSBzaXplIDR4MTgKLSAgICAgICAgdGV4dCBydW4gYXQg
KDExMCwzKSB3aWR0aCA0OiAiICIKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTEwLDAp
IHNpemUgNHgxOAorICAgICAgICB0ZXh0IHJ1biBhdCAoMTEwLDApIHdpZHRoIDQ6ICIgIgogICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCi1sYXllciBhdCAoOCwxMCkg
c2l6ZSAxMTB4MjEgY2xpcCBhdCAoMTAsMTIpIHNpemUgMTA2eDE3Ci0gIFJlbmRlckZsZXhpYmxl
Qm94IHtJTlBVVH0gYXQgKDAsMikgc2l6ZSAxMTB4MjEgW2JnY29sb3I9I0ZGRkZGRl0gW2JvcmRl
cjogKDJweCBpbnNldCAjMDAwMDAwKV0KLSAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoNyw0KSBz
aXplIDQzeDEzCi0gICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0M3gxMwot
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0MzogIjk6NDEgQU0iCi1sYXllciBhdCAo
MTIyLDEwKSBzaXplIDExMHgyMSBjbGlwIGF0ICgxMjQsMTIpIHNpemUgMTA2eDE3Ci0gIFJlbmRl
ckZsZXhpYmxlQm94IHtJTlBVVH0gYXQgKDExNCwyKSBzaXplIDExMHgyMSBbYmdjb2xvcj0jRkZG
RkZGXSBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQotICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICg0MCw0KSBzaXplIDQzeDEzCi0gICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSA0M3gxMwotICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAxODogIkFNIgotICAg
ICAgICB0ZXh0IHJ1biBhdCAoMTcsMCkgd2lkdGggNCBSVEw6ICIgIgotICAgICAgICB0ZXh0IHJ1
biBhdCAoMjAsMCkgd2lkdGggMjM6ICI5OjQxIgorbGF5ZXIgYXQgKDgsMTkpIHNpemUgMTEweDYg
Y2xpcCBhdCAoMTAsMjEpIHNpemUgMTA2eDIKKyAgUmVuZGVyRmxleGlibGVCb3gge0lOUFVUfSBh
dCAoMCwxMSkgc2l6ZSAxMTB4NiBbYmdjb2xvcj0jRkZGRkZGXSBbYm9yZGVyOiAoMnB4IGluc2V0
ICMwMDAwMDApXQorbGF5ZXIgYXQgKDEyMiwxOSkgc2l6ZSAxMTB4NiBjbGlwIGF0ICgxMjQsMjEp
IHNpemUgMTA2eDIKKyAgUmVuZGVyRmxleGlibGVCb3gge0lOUFVUfSBhdCAoMTE0LDExKSBzaXpl
IDExMHg2IFtiZ2NvbG9yPSNGRkZGRkZdIFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>407178</attachid>
            <date>2020-08-25 00:24:36 -0700</date>
            <delta_ts>2020-08-25 20:11:09 -0700</delta_ts>
            <desc>current  beaviour after upgrading to ios 14 beta in ionic4 application</desc>
            <filename>Capture.PNG</filename>
            <type>image/png</type>
            <size>7751</size>
            <attacher>bhargavsivapuram802</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAAAgEAAAEeCAYAAAATjsayAAAAAXNSR0IArs4c6QAAAARnQU1BAACx
jwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAB3cSURBVHhe7d2Hm1Nl2oDx739SQVTEgq6ru7Z1
7a7u6n62dd3m4rf0XqWIIFVAQKQoXbo0ERSUJlKU3oZhSnoyMwzP9z7nJCRvkmHGWUZneO7fdT2X
THKSCYwX731yTg7/I1cxefJkhmEYhmHa+bQWEcAwDMMwHXxaiwhgGIZhmA4+rUUEMAzDMEwHn9Yi
AhiGYRimg09rEQEMwzAM08GntYgAhmEYhung01pEAMMwDMN08Gmtq0bAmjVrGIZhGIZp59NaV40A
AABw/SICAAAwiggAAMAoIgAAAKOIAAAAjCICAAAwiggAAMAoIgAAAKOIAAAAjCICAAAwiggAAMAo
IgAAAKOIAAAAjCICAAAwiggAAMAoIgAAAKOIAAAAjCICAAAwiggAAMAoIgAAAKOIAAAAjCICAAAw
iggAAMAoIgAAAKOIAAAAjCICAAAwiggAAMAoIgAAAKOIAAAAjCICAAAwiggAAMAoIgAAAKPaXQQ0
Xr4se4/HZP72uMzckpFZW+pkgfv1gVPx4L7rxcRV5+Shkedk0/6L2VsAADWpy7L92KWS+er4JTlU
0SgX45fl+lkJfnntLgJen3ZCOvdOyA09k25S2UnKzX1isvDL62fB7DXvfPB7W/Tl+ewtAIANhy5J
p96pstO5T0pu7Z+Sfy6ok/MxUuBaaDcREE9fklemXggWxl8NqZKxq2Iy/8sqmb2lRsZ8lpSu/auD
GBiw6KKk6i5lH9VxEQEAUGrdwUvB343NTfdhaVm5r+OvBb+0dhMBczZnA2BoRE5WprK35h05m5A7
B0XdNkn5fH9t9taOiwgAgFKFEfD4xLQs2dsQzNRt9fLstMyV+3Ru7JWSwxcas49Ea7SLCIgm6+Xm
3jXuBxqTjd/VZG8tNXNj7p2CM9lbQpcaL8uCL6tl4rqkjFqRksnro7JhX+nzrN1TLe+vi8mJykRw
jsGMTTUyYlnSPS7l7mv6+35zNCqT1idkxPK0vLc2JR9vq5baRF32Xl8yc0nmf1kr41Zn3HPra0nI
3hOx7L15RAAAlCqMgDfnZrK35m08dEnuGpK+ss3LMzOSacjemXUhdlmmbWmQN+dk5LnJGfmTi4de
i+pk8e4GSdfnDyO4pUPm7WiQPp/UBfPduUb56nijvD2/Tp51j3ttVkbGrasPzkModsm1xxL3fD3c
ti9Mzcjzbt5eUCcLv2mQZF3HOVTRLiJg4baK4If52Gh/cS9n+ddnZdG2M1dOEjx9MSXdB50NHn9T
r6R07p0M/nujm8ELj0mj/pSz/jL1WLDdrA2n5L6h1dIpu71uq7f3nn9OCs891O/x7opT2fuT0slt
q6O/7tz7ohw5G89uGboYqZPb++Vfi257o9tWH//h52e95yYCAKBUcxGgZrmFO7eNHhY4VZP/y/Xo
xUbpPjwfCcXz9sK6YPFXupD/66O6K/fN+apBHnin9LHPTMxIomBhT9WLvOwCo3i73PzLhUHB0tOu
tYsIGLa0KviDm7Q2kr2l5fos0HMF3B/6nCpZ7/b+9xyLypo9tfLU+GiwEK/bF81umY+AuwZWypAl
tbLxu1rZ9UNEZmyslm4D4m6icvyC++lmrfgmKp37JKT74IjM3hqTLw9FZMfhWhm6JHy9j43Jn6hY
19AoL06uChb9nh+Hr2HbwVqZuSkidw2KSdf+cdl1NJndmggAgHJaEgG6p5/b5qbeKTlwJjwk4P4a
lj8WHDJ4cFxaRn1WLz3dXv7tg8PFXQ8hjN0Q/j1fHAHdhqTkd+PT0m9x+E5A7vab+6Zk+9H8+QfT
ttQH31fvu390WiZ93iAztjTIUy4W9LbC79HetYsI6PdJPPiDW7e/6D2dFpj9+WmZsPKE1OtPs8CH
m8OFetaWdPaWfAQ8896F4BBCoTdmhocaNh3IL9QPjQz36mduKv1UwiOjTstt/RMuIqqDrw+dCd8h
eHBkhSSL3puatv5c8DyvTT2VvYUIAIByWhIBqvvI/B771iPhAr3qQP4dgnuGp6Ummf97fp7by78x
e58u4OejjSUR8OCYtFQXPOa56fkQmPFFPhy6DQ2/9x0uGk7X5tcefReiS79we53KMocR2pt2EQF9
F+kfWFLW77925bTk64vBD6HfgnCRVrkIGLcivxjnjF1xOrhv/MpwUa6MpF3NxaVz76qSYFB6HsPB
03GpiYf/k76Wfe5pa0ufO5HW//ni0qVPVfYWIgAAymlpBDw6IR8BG74PI+CNggW9/+J67xBsbepy
8DFDvU/31PX7FEfAhM3+GvTpN/moGLg8PA9sx/H863vCvYZtRy/JzhONV+b2QfnXtfFw+//0QruI
gIGf1gZ/YEt3Nv0Db4q+DX/kXFr+M/eE/Gb4cbm935ngeP2NPfVaAynpM780Atbursjekjd9XRgB
I5ecDb7evL8y+PrhkceDr5tz75ATwfYaDbf2PVcyep9Opj78n4IIAIBSLYkAfdu/U59wmxvcgr73
VLg3/uSE/J77lK2l7ywXvnuwcFdDSQSszcZEzuZD+dfSb2kYAR/tzIdBc7N4NxHQIuNXhW/F95hT
ujg3p//CC3JTr5h06Vsrj4w6I/87+ay8Nfu8/HFieLJhyyPgTHDf8MXhyYnr94Sv6fExx4Kvm3PX
wFPB9i+77//X6edL5i/Tzrn/npNYMixNIgAASrUkAvaeabyyzW0DU/LDhcZgr78wAqZuLX1n+Z6f
GAGbmomAX41IyxvuNf51bt2VefVD97V7Tp1tPxIBLbLnWMT9gSala78LwUfsmqL3TfjsnIxbfio4
c/+7k/q4lHQbUCkVtflj/+qTHeE5Aa2NgJOV4VULb+lzwXtLKUdv0/MQcp8+eHzM0eDxy786F3zd
HCIAAEo1FwF1bgf/Hx/nF+7Hx6eDt/rVa3Pytw9YUu9dXjhSdDhgjVvwWxMBW93Cnrvt9VkZ6ejX
rmsXEaAL6uNjwkW417wKadCfTBn9F4Z790+MORl8PXn1yeDrPvOOBl8XGrcqPNmwtRGgr+neIfr9
krKhzMWJRi47K3+ZkZQdh8Lj/J9sD985eGnS6bLnEKz+5oKs21OZ/YoIAIBymooA/Wt139lG+ffC
uuBs/dw2Uzbnj/0v35ffS9eP+hV+vn/B1w3B4q/36YmBZyKXWxUBep2BO4eGt909NC0/VObXq0vu
243fWC/9l4ZzvKr8WtaetIsIUMcr6+T2/hG5qVdcJq2LyOmqjCQyDRJLNQS/fn9ttau4uHTtH5XD
Z8MrCh6riAfH/rsPOu0enwnOyq+M1Mm2wwm5pe9/906A+uDz2uBjhr8bXSMHTqekOlYnFbUZWbaz
JjjL9O5B+RP9kplGuW9Ytds+IbM2R+RMdSY4efBcTUaGL9EFPylvfJB/biIAAEoVRkAnt9h3HZwO
5so5ANnRhfylmRnvnVpd1H9fcMLg3SPSMmJ1nfxrQZ106R/epiEwYGW4oLcmAtQkt9DflA2KO4al
ZfrWelnvHqvvUORC476Rae/aAu1Vu4kA3XteszsqnXrVuD/ApNwzuEb+MDEuT4+PBb/W227rVymb
DsS9Pe03Z4Yn8N0xoDbY/sGREfccUfnz+8eD2/+bCIgkG+TVqeHtt/SpdTEQkQeG10rnPjH3g47L
4h35qwzq/4jr9+nr13CIy71DauSpd2Py62G1btuEPDiqWk5ezFctEQAApQojoKnp1DctQ9xCnjsM
UOj7c26HbFQ+BIpHLxaUPT+71RGghxY0LHL3Fc8j7/oXMGrP2k0E5BytSMo/Z1fJw6NiwUV67h4U
kYfcr//+YbVUuL38YvFUg/T8+Lw8NzEhD78TkxcnR2TNtxXyxcGIvDglI9M25C8WNHr52eC2nUdK
LxG8YmdlcN/cLaXXBPhgQ4U8Pykpj46OyTPvuT36GRdlz7Hy/37Bj+cT7rVWyRPvJoLtn38/KcMW
ny+5dsDUdVXB99u4Px8pAGDdzpONwd+NxfPStEyw8L7n9sLPR6++wOoiPWpNvTw7MSOPjk3L792i
/NL0jMzf1RB8siBH9ycnrKu/8j2+PuFHwO6C1zI9e52AQp/ubpA/Tc3IY+PS8js3L0zOyLDV9RJJ
d4wAUO0uApTuVV+MZuTYhZSLgpRURjLN/vvR+lHBKveYBj0o0wbq3fNXx+sk3YKzQPT1x1P1weGD
4osYAQB+Hnp5X71gkEZBbu//WtPn1efXdyUKA6OjaJcRAAAA2h4RAACAUUQAAABGEQEAABhFBAAA
YBQRAACAUUQAAABGEQEAABhFBAAAYBQRAACAUUQAAABGEQEAABhFBAAAYBQRAACAUUQAAABGEQEA
ABhFBAAAYBQRAACAUUQAAABGEQEAABhFBAAAYBQRAGRdvnxZGhsb5dIlnUtMh5zG4GeoP0sdAFdH
BMC8urp6SSQSEo3GJBKJSm1thOnAoz/DWCzmfqZJqa+vz/6UAZRDBMAs3VNMJpNlFxLm+hgNglQq
xbsCQBOIAJiki4LuKZZbOJjrb5LJVPYnD6AQEQCTMpk63vo3NPqz5tAAUIoIgDn6LoAe/y+3WDDX
70SjcQ4LAEWIAJjT0NBQdpFgrv/RTxAAyCMCYI4eCii3QDDX/3BIAPARATAnnU6XXSCY6380AAHk
EQEwRz8yVm6BYK7/yWQy2f8LACgiAObox8XKLRDM9T9EAOAjAmAOEWB3iADARwTAHCLA7hABgI8I
gDlEgN0hAgAfEQBziAC7QwQAPiIA5hABdocIAHxEAMwhAuwOEQD4iACYQwTYHSIA8BEBMIcIsDtE
AOAjAmAOEWB3iADARwTAHCLA7hABgI8IgDlEgN0hAgAfEQBziAC7QwQAPiIA5hABdocIAHxEAMwh
AuwOEQD4iACYQwTYHSIA8BEBMIcIsDtEAOAjAmAOEWB3iADARwTAHCLA7hABgI8IgDlEgN0hAgAf
EQBziAC7QwQAPiIA5hABdocIAHxEAMwhAuwOEQD4iACYQwTYHSIA8BEBMIcIsDtEAOAjAmAOEWB3
iADARwTAHCLA7hABgI8IgDlEgN0hAgAfEQBziAC7QwQAPiIA5hABdocIAHxEAMwhAuwOEQD4iACY
QwTYHSIA8BEBMIcIsDtEAOAjAmAOEWB3iADARwTAHCLA7hABgI8IgDlEgN0hAgAfEQBziAC7QwQA
PiIA5hABdocIAHxEAMwhAuwOEQD4iACYQwTYHSIA8BEBMIcIsDtEAOAjAmAOEWB3iADARwTAHCLA
7hABgI8IgDlEgN0hAgAfEQBziAC7QwQAPiIA5hABdocIAHxEAMwhAuwOEQD4iACYQwTYHSIA8BEB
MIcIsDtEAOAjAmAOEWB3iADARwTAHCLA7hABgI8IgDlEgN0hAgAfEQBziAC7QwQAPiIA5hABdocI
AHxEAMwhAuwOEQD4iACYQwTYHSIA8BEBMIcIsDtEAOAjAmAOEWB3iADARwTAHCLA7hABgI8IgDlE
gN0hAgAfEQBziAC7QwQAPiIA5hABdocIAHxEAMwhAuwOEQD4iACYQwTYHSIA8BEBMIcIsDtEAOAj
AmAOEWB3iADARwTAHCLA7hABgI8IgDlEgN0hAgAfEQBziAC7QwQAPiIA5hABdocIAHxEAMwhAuwO
EQD4iACYQwTYHSIA8BEBMIcIsDtEAOAjAmAOEWB3iADARwTAHCLA7hABgI8IgDlEgN0hAgAfEQBz
iAC7QwQAPiIA5hABdocIAHxEAMwhAuwOEQD4iACYQwTYHSIA8BEBMIcIsDtEAOAjAmAOEWB3iADA
RwTAHCLA7hABgI8IgDlEgN0hAgAfEQBziAC7QwQAPiIA5hABdocIAHxEAMwhAuwOEQD4iACYQwTY
HSIA8BEBMOeXioCamohcrA6nyv263DY/Zaqzz1flptz9TY1ur4/Tx5e7/3oeIgDwEQEwpy0iYOnO
qAxdGpeZm2Ml99W42bA/Kr0XxOWPkxPy9ISEvD4jIVM+j8m5Sn/blszpiohM2hCTN2a655qYkFc/
SMjolXE5erb89rn50d0/elVcXnHbP/t+Inj89I0xuVBVfvuWzPFzkeD3PczN2WZ+L8OXxYNtt3wf
LXt/8WiojNDHLInL8m9a9pjmhggAfEQAzLmWEXD+YkQGLIvJDb1SckPPlDznFvnC+3Xvf9OBqNw2
MCmdeqeka/+UdBuQkpv7htu/9XFcLrjnKHzM1abSLdi66Otju7jn6DYwJbf2C5/roXEJOXuh/OMO
norIAyOTcqN7nbfqa3CP08fr456eEpeKn/AaCmeyCxl9Dp2ZW0sDqHA6Zb9fj4/iwZ9LuW0KZ8W3
0SvP3XfJ1Z+7pUMEAD4iAOZcqwjYfjgqf5gULsj3jEgG/y2OgJW7o3LLgKTcPjgpC7bH5LsT0WCP
fP2+qDzqFm19zH/mx4O93txj9J0Dfe49x/K35ebfC2LBQv7kxIRscXFx8nxEvj4SlbddTOhz/WmK
C4Eye+QvTQ/vf3NOXHb9EA324Le6PfIX3fZ6+2C3t/1TDw9oOOQen/veV3tXIRcBdw9NNvsOiB6y
+Ofc8DXrEAFA2yACYM61iIC1e6PBnv0tbi+8x6K4rNoT7rUWRoAuZG/OSgSL9qIdpYvYjkNRt1ee
lPtcQBw+nb99jXsufaegmwsHXeRzt2sY6Pe4yy2ixXvuZy5E5PHxieBx+toK71u2K3zc/aOTwTsJ
hfftdEFw24CU3DEkKacq/PuaGw2aO9xrfGRsUh5/Nyl3uefYe6zpt+1zEaAzYcPVF3U9tHHPsDCs
dIgAoG0QATDnWkTAvG0xuXt4UlZkj1Xrnr0uVoURoIcKXpkZlwdGJ4K99dztudGF/34XALrY64Ka
u33pzlgQGF36JeXHM/ntJ6wN94x1rz13W+GMWxPe3+/T/P26d//KjDBEPikTIvq2/Ouzw735D8qc
z3C1mbYxPBQw0S3oY1aH71DM2tL0c2gE6Dsi97rf8+2DksG5DeW205m+KXzuF6aEvyciAGgbRADM
uRYRoG/VVxTsVZeLgOZGF/573d7u/SOT8kPBYq/PO2VjVBZ+FfXeov/b7HBBXFBmMdf58lD4Gn47
Nv8a9G3/h0eHi25Te+krs8fen5jU8teu73Lc905Sbu6XCt6FOOJef6c+KXlkfKLJwwoaAd3d71VP
DtTvN397+d+HHlLoNkTjKCWfZV8bEQC0DSIA5lzLEwNz05oImPtFuMeve+rFb9OXmycmhHv0Ww+W
X8x18bzRPd9NbvS8Ar1t//GodB+alN+6BbvwXYXC0Xcs9Hl1ES93f7lZnT388bc5+XcdXp7pFnf3
PJsOlG6vk4uAz/eHh1I0asptN39H+NwaC+v2EgFAWyICYE57iIA9bq+86+CkdHF70l8dLr+oF89v
3B69LtbfHi1/v85tg8Jj6LlzCb79MSrdBiXlsbH++QXF06V/+LjmPuano3v6PT6OB7GxfFd+cV62
Mxq8vh7zy5/9n4sAfRfhAfd70U9MFJ8gmDuPQs+12PhdlAgA2hgRAHN+6QjQcwEeHZcM9rxn/ITj
8PdmP+K3/3j5+3XuzJ5M9/2p8OvgxL+BqeDEvasdg+/qQkEfp4cPyt1fOCdcTDzkFvF7huq5DPnb
9dd6eEPvO1bmmgW5CNBff7Y7/PPSj1cWbnPCff9uLmQectGiJz8SAUDbIgJgzi8ZAbrIvjA1fFu/
18J4iw4D5OahseHjdv1Q/n6d4j363UfDM/gfHZMMFtji7XPT2S3Q+rjC8xyaGv1ooh52eMyFzBEX
NHo+g84hFx5Pjg/jZrPbiy9+XGEE6OhCf5Pb9ljB63pnVXhC4Lzt4eOJAKBtEQEw55eKAD2BLnem
/oDFP/0CPU+/7x7rvodefbDc/foRPz0mryfr5W47UHDyYeHHEAtHP46nr73LgJb9ubw0M/w0QWe3
gP9mVNKb3AWI3pxbery/OAL0Koe6rZ4boV/r4Ypb3WvQwx656yYQAUDbIgJgzi8RAXolv54L4kEA
/H1201f209G96x7zYzJkWcx7p6Dn/HDR/LCJK/Pp9QH0/qdcLORuC64f4PbY9SqBepGgwu1zM/uL
8HEvf9j8oYwDJ8KTCG9xz/eHiYmyo9cq0D384hMRiyMg+DSDe67XXBjp1/r70tcxblX+90cEAG2L
CIA5P3cE6EKub/3r4vm2W8ibO/lu/rbwM/d64l3h8X+9zr9+j7c+Kv0e+mmA/p+GkTD6s/yCqbf/
46Pw9gnrShdSPcnv9++F5wMs+7b5ExTHrQ5fw8DF4eWOy43+XnWb8UXfrzgC9Hs/6f68NBr0I4av
uhjQEwI1DnLbEAFA2yICYM7PGQEaAO+uiQULuu7xXu0M/dzoyXzPuD3qP09PBB/fy93+/clI8GmC
WwckvYVSZ5+LhV+PSErXASnZXnTfjsPR4Ji/Xqin+FoBK7+JBm/hPzi69CqExaP36z+ApIu2Ls7l
ttHZ4P4sdBvdtvA5iyNAR6+CqOcQvDorHvy+npqY9K4zQAQAbYsIgDk/VwTox+TGrAo/Sqf3veH2
yHssipWd7Yf959Mz+ctdX39u9l2COwYlZdqmWHA8Xy8qpAGg36PHgljwMbvixw1d5vbO3eN+6xb7
pbuiwUl80zZH5S4XBvo4/RcNc9cWaGp+OBMNDgPcOzR51U8R6L+NoFdC7DowJQdP5mOhXATo6L+E
qK9BZ8tB/z4iAGhbRADM+bkiQPeCn8/+A0PNzSdftXyRG/NZzC2w4eKdG32H4P8WNP2PAOlJg/+e
Fw8W8cLH3ekiYNjKlv2rfiPc99XHvDW//EV+Cufv2X/8572CQwJNRUDucsh6MaTi+4gAoG0RATCn
LSJAF/zv9V8IdHvLudt0Yf3xdDS4vblp7l/VKxw9c/7QqahM2xSVtxfGZeL6aHBRoOY+bqj368mB
ujD3+iQu093j9dMDTYVD8eiJfvpa9WTDcvcXjr6TodvqOxW52/Rrfd2F2+no713vO17m2gK5P1e9
NkHxfa0ZIgDwEQEwpy0igOkYQwQAPiIA5hABdocIAHxEAMwhAuwOEQD4iACYQwTYHSIA8BEBMIcI
sDtEAOAjAmAOEWB3iADARwTAHCLA7hABgI8IgDlEgN0hAgAfEQBziAC7QwQAPiIA5hABdocIAHxE
AMwhAuwOEQD4iACYQwTYHSIA8BEBMIcIsDtEAOAjAmAOEWB3iADARwTAHCLA7hABgI8IgDlEgN0h
AgAfEQBziAC7QwQAPiIA5hABdocIAHxEAMwhAuwOEQD4iACYQwTYHSIA8BEBMIcIsDtEAOAjAmAO
EWB3iADARwTAHCLA7hABgI8IgDlEgN0hAgAfEQBziAC7QwQAPiIA5hABdocIAHxEAMwhAuwOEQD4
iACYQwTYHSIA8BEBMIcIsDtEAOAjAmAOEWB3iADARwTAHCLA7hABgI8IgDlEgN0hAgAfEQBziAC7
QwQAPiIA5hABdocIAHxEAMwhAuwOEQD4iACYQwTYHSIA8BEBMIcIsDtEAOAjAmAOEWB3iADARwTA
HCLA7hABgI8IgDlEgN0hAgAfEQBziAC7QwQAPiIA5hABdocIAHxEAMwhAuwOEQD4iACYQwTYHSIA
8BEBMIcIsDtEAOAjAmAOEWB3iADARwTAHCLA7hABgI8IgDlEgN0hAgAfEQBziAC7QwQAPiIA5hAB
docIAHxEAMwhAuwOEQD4iACYQwTYHSIA8BEBMIcIsDtEAOAjAmAOEWB3iADARwTAHCLA7hABgI8I
gDlEgN0hAgAfEQBziAC7QwQAPiIA5hABdocIAHxEAMwhAuwOEQD4iACYQwTYHSIA8BEBMIcIsDtE
AOAjAmAOEWB3iADARwTAHCLA7hABgI8IgDlEgN0hAgAfEQBziAC7QwQAPiIA5hABdocIAHxEAMwh
AuwOEQD4iACYQwTYHSIA8BEBMIcIsDtEAOAjAmAOEWB3iADARwTAHCLA7hABgI8IgDlEgN0hAgAf
EQBziAC7QwQAPiIA5hABdocIAHxEAMwhAuwOEQD4iACYQwTYHSIA8BEBMIcIsDtEAOAjAmAOEWB3
iADARwTAHCLA7hABgI8IgDlEgN0hAgAfEQBziAC7QwQAPiIA5hABdocIAHxEAMwhAuwOEQD4iACY
QwTYHSIA8BEBMIcIsDtEAOAjAmAOEWB3iADARwTAHCLA7hABgI8IgDlEgN0hAgAfEQBziAC7QwQA
PiIA5qRSRIDVIQIAHxEAc9LpTNkFgrn+p66uLvt/AQARkf8HTi6kmNOwcNMAAAAASUVORK5CYII=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407267</attachid>
            <date>2020-08-25 20:10:42 -0700</date>
            <delta_ts>2020-08-28 14:14:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215155-20200825231041.patch</filename>
            <type>text/plain</type>
            <size>86024</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmEyMTk1N2FmZTk0NDQ5
N2ExZmIzZjg2MjRkZmFlMjcxMTg1ZGRjOC4uMTQwN2UwNjEzZDliNzkzNzVjMWUzNDJkZDk0ZWUw
N2EwYTFmNTMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzNSBAQAorMjAyMC0wOC0yNSAgQWRp
dHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBEYXRl
IGlucHV0cyBzaG91bGQgY29udGFpbiBlZGl0YWJsZSBjb21wb25lbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUxNTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHksIHVzZXJzIGFyZSB1
bmFibGUgdG8gZWRpdCB0aGUgdmFsdWVzIGluIGRhdGUgYW5kIHRpbWUgaW5wdXQgdHlwZXMuCisg
ICAgICAgIFRvIG1hdGNoIHN5c3RlbSBkYXRlIGNvbnRyb2xzLCB1c2VycyBzaG91bGQgYmUgYWJs
ZSB0byBzZWxlY3QgYW5kIGVkaXQKKyAgICAgICAgaW5kaXZpZHVhbCBjb21wb25lbnRzIG9mIHRo
ZSBpbnB1dC4gRm9yIGV4YW1wbGUsIDxpbnB1dCB0eXBlPSJkYXRlIj4gc2hvdWxkCisgICAgICAg
IGNvbnRhaW4gYW4gZWRpdGFibGUgeWVhciwgbW9udGgsIGFuZCBkYXkgY29udHJvbC4KKworICAg
ICAgICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbmFsaXR5IHdhcyBwcmVzZW50IGluIFdlYktpdCwg
dXAgdW50aWwgaXQgd2FzIHJlbW92ZWQKKyAgICAgICAgaW4gcjE1MDg3Ni4gUHJldmlvdXNseSBr
bm93biBhcyAiSU5QVVRfTVVMVElQTEVfRklFTERTX1VJIiwgdGhlIGZlYXR1cmUgd2FzCisgICAg
ICAgIHJlbW92ZWQgYXMgaXQgd2FzIG9ubHkgdXNlZCBieSBDaHJvbWl1bSBwb3J0LiBIb3dldmVy
LCBtdWNoIG9mIHRoZSByZW1vdmVkCisgICAgICAgIGxvZ2ljIHJlbWFpbnMgdXNlZnVsIGFuZCBp
cyByZXN1cmZhY2VkIGluIHRoaXMgcGF0Y2guIE1vZGlmaWNhdGlvbnMgd2VyZSBtYWRlCisgICAg
ICAgIHRvIHVwZGF0ZSB0aGUgY29kZSB0byBmb2xsb3cgY3VycmVudCBXZWJLaXQgcHJhY3RpY2Vz
LgorCisgICAgICAgIERhdGVUaW1lRWRpdEVsZW1lbnQgaXMgYSB3cmFwcGVyIGVsZW1lbnQgdGhh
dCBjb250YWlucyBpbmRpdmlkdWFsIGZpZWxkcy4KKyAgICAgICAgVGhlIGZpZWxkcyBhcmUgYWxs
IERhdGVUaW1lRmllbGRFbGVtZW50cy4gTm90ZSB0aGF0IERhdGVUaW1lRmllbGRFbGVtZW50cwor
ICAgICAgICBhcmUgZnVydGhlciBzcGVjaWFsaXplZCBpbnRvIERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudCAoZm9yIGludGVncmFsCisgICAgICAgIHZhbHVlcykgYW5kIERhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQgKGZvciBzeW1ib2xpYyB2YWx1ZXMgc3VjaCBhcyBBLk0KKyAgICAgICAg
YW5kIFAuTSkuIERhdGVUaW1lRWRpdEVsZW1lbnQgYnVpbGRzIHRoZSBjb250cm9sIHVzaW5nIHRo
ZSB2aXNpdG9yIHBhdHRlcm4KKyAgICAgICAgYW5kIGV4aXN0aW5nIHBhcnNpbmcgbG9naWMgY29u
dGFpbmVkIGluIERhdGVUaW1lRm9ybWF0LgorCisgICAgICAgIEluIG9yZGVyIHRvIHJlZHVjZSB0
aGUgcGF0Y2ggc2l6ZSwgdGhpcyBwYXRjaCBvbmx5IHNldHMgdXAgdGhlIHJlbmRlcmluZworICAg
ICAgICBhbmQgbGF5b3V0IG9mIG11bHRpcGxlIGZpZWxkcyBmb3IgPGlucHV0IHR5cGU9ImRhdGUi
Pi4gVXBjb21pbmcgcGF0Y2hlcyB3aWxsCisgICAgICAgIGFkZCByZW5kZXJpbmcgZm9yIG90aGVy
IGRhdGUvdGltZSBpbnB1dCB0eXBlcyBhbmQgaW50cm9kdWNlIGVkaXRhYmlsaXR5LgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZm9ybXMvZGF0ZS9kYXRlLXBzZXVkby1lbGVtZW50cy5odG1sCisKKyAg
ICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogY3NzL2h0bWwuY3NzOgorICAgICAgICAoaW5wdXQ6Oi13ZWJr
aXQtZGF0ZXRpbWUtZWRpdCk6CisgICAgICAgIChpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0
LWZpZWxkcy13cmFwcGVyKToKKyAgICAgICAgKGlucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQt
eWVhci1maWVsZCwpOgorICAgICAgICAoaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15ZWFy
LWZpZWxkOmZvY3VzLCk6CisgICAgICAgIChpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LXRl
eHQpOgorICAgICAgICAqIGh0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGb3JtYXRWYWxpZGF0b3I6OnZpc2l0Rmll
bGQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGb3JtYXRWYWxpZGF0b3I6OnZhbGlkYXRl
Rm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5w
dXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaG9v
c2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSk6CisgICAg
ICAgIChXZWJDb3JlOjpCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6dXBkYXRl
SW5uZXJUZXh0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUNob29zZXJPbmx5RGF0ZUFu
ZFRpbWVJbnB1dFR5cGU6OnZhbHVlRm9yRWRpdENvbnRyb2wgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmxvY2FsZUlkZW50aWZp
ZXIgY29uc3QpOgorICAgICAgICAqIGh0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1
dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOgorICAg
ICAgICAqIGh0bWwvRGF0ZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlSW5w
dXRUeXBlOjppc1ZhbGlkRm9ybWF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVJbnB1
dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyBjb25zdCk6CisgICAgICAgICogaHRtbC9EYXRl
SW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OmlzVmFsaWRGb3JtYXQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6c2V0dXBM
YXlvdXRQYXJhbWV0ZXJzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lTG9jYWxJbnB1
dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMgY29uc3QpOgorICAg
ICAgICAqIGh0bWwvTW9udGhJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6aXNWYWxpZEZvcm1hdCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFt
ZXRlcnMgY29uc3QpOgorICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5oOgorICAgICAgICAq
IGh0bWwvV2Vla0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWVrSW5wdXRUeXBl
Ojppc1ZhbGlkRm9ybWF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlZWtJbnB1dFR5cGU6
OnNldHVwTGF5b3V0UGFyYW1ldGVycyBjb25zdCk6CisgICAgICAgICogaHRtbC9XZWVrSW5wdXRU
eXBlLmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0QnVpbGRlcjo6RGF0ZVRpbWVFZGl0
QnVpbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRCdWlsZGVyOjpidWlsZCk6
CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdEZpZWxkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEJ1aWxkZXI6OnZpc2l0TGl0ZXJhbCk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpEYXRlVGltZUVkaXRFbGVtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZpZWxkc1dyYXBwZXJFbGVt
ZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmFkZEZp
ZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpsYXlvdXQpOgorICAgICAgICAo
V2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6bG9jYWxlSWRlbnRpZmllciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpyZXNldEZpZWxkcyk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpzZXRFbXB0eVZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OnZhbHVlIGNvbnN0KToKKyAgICAgICAg
KiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGh0
bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUpOgorICAgICAgICAo
V2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmxvY2FsZUZvck93bmVyIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50Ojpsb2NhbGVJZGVudGlmaWVyIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50Ojp1cGRhdGVWaXNp
YmxlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OnN1cHBv
cnRzRm9jdXMgY29uc3QpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVt
ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50
cy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6
OkRhdGVUaW1lRGF5RmllbGRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRGF5
RmllbGRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVEYXlGaWVs
ZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTW9u
dGhGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudDo6RGF0ZVRpbWVTeW1i
b2xpY01vbnRoRmllbGRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9s
aWNNb250aEZpZWxkRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
U3ltYm9saWNNb250aEZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50OjpEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0
ZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmg6IEFkZGVk
LgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpE
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50Ojpmb3JtYXRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6Omhhc1ZhbHVlIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6aW5pdGlhbGl6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnNldEVtcHR5VmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpzZXRWYWx1
ZUFzSW50ZWdlcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1l
bnQ6OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudDo6dmFsdWVBc0ludGVnZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVOdW1lcmljRmllbGRFbGVtZW50Ojp2aXNpYmxlVmFsdWUgY29uc3QpOgorICAgICAgICAqIGh0
bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAg
KiBodG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjptYWtlVmlzaWJsZUVtcHR5VmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojpo
YXNWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRF
bGVtZW50Ojppbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNG
aWVsZEVsZW1lbnQ6OnNldEVtcHR5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVT
eW1ib2xpY0ZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0ludGVnZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6dmFsdWUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6dmFsdWVBc0ludGVnZXIgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6dmlz
aWJsZUVtcHR5VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xp
Y0ZpZWxkRWxlbWVudDo6dmlzaWJsZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL3NoYWRv
dy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6c3ltYm9sc1NpemUgY29uc3QpOgorCiAy
MDIwLTA4LTI0ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbbWFjT1NdIFNob3cgcGlja2VyIGZvciBkYXRlIGFuZCBkYXRldGltZS1sb2NhbCBpbnB1dCB0
eXBlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAppbmRleCAwOWQ1MDNmZTRjNmM0ZjgxNzQ4NzkzNzNlYmNjNTUzODBl
NjFhMzljLi40MTA5ODZhODc0ZmM1NzliNjZkZDhiZWJiNGMwOGZlNTBmNDJlMWIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dApAQCAtMTMxMSw2ICsxMzExLDExIEBAIGh0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxl
Z2F0ZS5jcHAKIGh0bWwvc2hhZG93L0F1dG9GaWxsQnV0dG9uRWxlbWVudC5jcHAKIGh0bWwvc2hh
ZG93L0RhdGFMaXN0QnV0dG9uRWxlbWVudC5jcHAKIGh0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJD
b250cm9sLmNwcAoraHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKK2h0bWwvc2hh
ZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmNwcAoraHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVs
ZW1lbnRzLmNwcAoraHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcAor
aHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAKIGh0bWwvc2hhZG93
L01lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwCiBodG1sL3NoYWRvdy9Q
cm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwCiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMjUwMTgzYmZjMTJlOTgzYzlkNDMyMjhhNDE5Mzk2ZTdiOTU3OGExZC4uM2QyMGU5
MTcxMzY4YTNhYTYzZmQ3Y2E4MzhiODNhZTk0ZTMzMDQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA4MSw2ICs1MDgxLDEx
IEBACiAJCUU1OURENEI4MjEwOTgyODcwMDNDOEI0NyAvKiBMaXN0QnV0dG9uQXJyb3cucG5nIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTlERDRCNzIx
MDk4Mjg1MDAzQzhCNDcgLyogTGlzdEJ1dHRvbkFycm93LnBuZyAqLzsgfTsKIAkJRTVCQTdENjMx
NTE0MzdDQTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVCQTdENjIxNTE0MzdDQTAwRkUxRTNGIC8qIExl
bmd0aEZ1bmN0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUU1QzU5QTlBMjREMEUxQUEwMDNCODZFMSAvKiBEYXRlVGltZUNob29zZXJQYXJh
bWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NUM1OUE5OTI0RDBFMUFBMDAzQjg2RTEgLyogRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUU1RjA2QUU3
MjRENDg0N0IwMEJCQzRGOCAvKiBEYXRlVGltZUZpZWxkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVGMDZBRTUyNEQ0ODQ3QjAwQkJDNEY4
IC8qIERhdGVUaW1lRmllbGRFbGVtZW50LmggKi87IH07CisJCUU1RjA2QUVCMjRENDlCRjcwMEJC
QzRGOCAvKiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1RjA2QUU5MjRENDlCRjcwMEJCQzRGOCAvKiBE
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCAqLzsgfTsKKwkJRTVGMDZBRUYyNEQ0QTYzNzAw
QkJDNEY4IC8qIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1RjA2QUVEMjRENEE2MzcwMEJCQzRGOCAv
KiBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmggKi87IH07CisJCUU1RjA2QUYzMjRENEFB
RTQwMEJCQzRGOCAvKiBEYXRlVGltZUZpZWxkRWxlbWVudHMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1RjA2QUYxMjRENEFBRTQwMEJCQzRGOCAvKiBE
YXRlVGltZUZpZWxkRWxlbWVudHMuaCAqLzsgfTsKKwkJRTVGMDZBRjcyNEQ0QkI1NjAwQkJDNEY4
IC8qIERhdGVUaW1lRWRpdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU1RjA2QUY1MjRENEJCNTYwMEJCQzRGOCAvKiBEYXRlVGltZUVkaXRF
bGVtZW50LmggKi87IH07CiAJCUU3MTQ2N0IzMjRBQkFFRjIwMEZCMkY1MCAvKiBBdWRpb05vZGVP
cHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NzE0NjdCMTI0QUJBRUYxMDBGQjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5oICovOyB9OwogCQlF
NzE0NjdCNjI0QUJBRjFEMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTcxNDY3QjUyNEFCQUYxRDAwRkIyRjUw
IC8qIFBhbm5lck9wdGlvbnMuaCAqLzsgfTsKIAkJRTc1NUU4OTIyNEM3NDM0QjAwOUY3QzIzIC8q
IFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNzU1RTg4RjI0Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZl
Q29uc3RyYWludHMuaCAqLzsgfTsKQEAgLTE1OTI2LDYgKzE1OTMxLDE2IEBACiAJCUU1OURENEI3
MjEwOTgyODUwMDNDOEI0NyAvKiBMaXN0QnV0dG9uQXJyb3cucG5nICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gTGlzdEJ1
dHRvbkFycm93LnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTVCQTdENjIxNTE0
MzdDQTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBMZW5ndGhGdW5jdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTVDNTlBOTkyNEQwRTFBQTAwM0I4NkUxIC8qIERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0ZVRpbWVDaG9vc2VyUGFyYW1l
dGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNUYwNkFFNTI0RDQ4NDdCMDBC
QkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0ZVRpbWVG
aWVsZEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVGMDZBRTYyNEQ0
ODQ3QjAwQkJDNEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IERhdGVUaW1lRmllbGRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTVGMDZBRTkyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVGMDZBRUEyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVU
aW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRlVGltZU51
bWVyaWNGaWVsZEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNUYw
NkFFRDI0RDRBNjM3MDBCQkM0RjggLyogRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUU1RjA2QUVFMjRENEE2MzcwMEJCQzRGOCAvKiBEYXRlVGltZVN5
bWJvbGljRmllbGRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNUYwNkFG
MTI0RDRBQUU0MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERhdGVUaW1lRmllbGRFbGVtZW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFNUYwNkFGMjI0RDRBQUU0MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IERhdGVUaW1lRmllbGRFbGVtZW50cy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUU1RjA2QUY1MjRENEJCNTYwMEJCQzRGOCAvKiBEYXRlVGltZUVk
aXRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGVUaW1lRWRpdEVsZW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVGMDZBRjYyNEQ0QkI1NjAwQkJDNEY4IC8qIERhdGVU
aW1lRWRpdEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGF0ZVRpbWVFZGl0RWxlbWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU3MTQ2N0IxMjRBQkFFRjEwMEZC
MkY1MCAvKiBBdWRpb05vZGVPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEF1ZGlvTm9kZU9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTcx
NDY3QjQyNEFCQUYwQjAwRkIyRjUwIC8qIEF1ZGlvTm9kZU9wdGlvbnMuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEF1ZGlv
Tm9kZU9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNzE0NjdCNTI0
QUJBRjFEMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQYW5uZXJPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xODY3NSw2ICsxODY5MCwxNiBAQAogCQkJCTdDMUU5NzI1MUE5Rjk4MzQwMDdCRjBGQiAvKiBB
dXRvRmlsbEJ1dHRvbkVsZW1lbnQuY3BwICovLAogCQkJCTdDMUU5NzI2MUE5Rjk4MzQwMDdCRjBG
QiAvKiBBdXRvRmlsbEJ1dHRvbkVsZW1lbnQuaCAqLywKIAkJCQlFNThCNDVCODIwQUQwN0REMDA5
OTEwMjUgLyogRGF0YUxpc3RCdXR0b25FbGVtZW50LmggKi8sCisJCQkJRTVGMDZBRjYyNEQ0QkI1
NjAwQkJDNEY4IC8qIERhdGVUaW1lRWRpdEVsZW1lbnQuY3BwICovLAorCQkJCUU1RjA2QUY1MjRE
NEJCNTYwMEJCQzRGOCAvKiBEYXRlVGltZUVkaXRFbGVtZW50LmggKi8sCisJCQkJRTVGMDZBRTYy
NEQ0ODQ3QjAwQkJDNEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50LmNwcCAqLywKKwkJCQlFNUYw
NkFFNTI0RDQ4NDdCMDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCAqLywKKwkJCQlF
NUYwNkFGMjI0RDRBQUU0MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcCAqLywK
KwkJCQlFNUYwNkFGMTI0RDRBQUU0MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmgg
Ki8sCisJCQkJRTVGMDZBRUEyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudC5jcHAgKi8sCisJCQkJRTVGMDZBRTkyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudC5oICovLAorCQkJCUU1RjA2QUVFMjRENEE2MzcwMEJCQzRGOCAv
KiBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcCAqLywKKwkJCQlFNUYwNkFFRDI0RDRB
NjM3MDBCQkM0RjggLyogRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oICovLAogCQkJCUE3
QzlBQkY2MTM1N0EzQkYwMEY1NTAzRiAvKiBEZXRhaWxzTWFya2VyQ29udHJvbC5jcHAgKi8sCiAJ
CQkJQTdDOUFCRjcxMzU3QTNCRjAwRjU1MDNGIC8qIERldGFpbHNNYXJrZXJDb250cm9sLmggKi8s
CiAJCQkJNTEwMTkyRDMxOEI2QjlCNzAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVu
dC5jcHAgKi8sCkBAIC0zMDc1Myw4ICszMDc3OCwxMyBAQAogCQkJCTM3QzczOEYzMUVEQkRFOEEw
MDNGMkIwQiAvKiBEYXRlVGltZUNob29zZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QzczOEY0
MUVEQkRFOEQwMDNGMkIwQiAvKiBEYXRlVGltZUNob29zZXJDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUU1QzU5QTlBMjREMEUxQUEwMDNCODZFMSAvKiBEYXRlVGltZUNob29zZXJQYXJhbWV0
ZXJzLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNUYwNkFGNzI0RDRCQjU2MDBCQkM0RjggLyogRGF0
ZVRpbWVFZGl0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTVGMDZBRTcyNEQ0ODQ3QjAw
QkJDNEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlFNUYw
NkFGMzI0RDRBQUU0MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0NTNFQjYzNzE1OUM1NzA0MDAwMDFCQjcgLyogRGF0ZVRpbWVGb3JtYXQuaCBp
biBIZWFkZXJzICovLAogCQkJCUY1NUIzREJBMTI1MUYxMkQwMDNFRjI2OSAvKiBEYXRlVGltZUxv
Y2FsSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNUYwNkFFQjI0RDQ5QkY3MDBCQkM0
RjggLyogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlF
NUYwNkFFRjI0RDRBNjM3MDBCQkM0RjggLyogRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2QTEyQkUxQTAwOTIzNzAwQzZERTcyIC8qIERlYnVnUGFn
ZU92ZXJsYXlzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NUZFQTVEMDE1NkRERThDMDA2NTQxMDEg
LyogRGVjaW1hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzE1QUQ3MjAyMDUwNTEzMjAwRDU5MkRD
IC8qIERlY2xhcmF0aXZlQW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcwpp
bmRleCBkYWY4OTE5ZWIxNmQ3M2RjN2YwNTlkMzFmMDAzNjNjNWJlODcyMTJlLi5kZmM1NzgzZWRl
NjQ0ZjljYTYyZjU3OWFhMzA2NWQ3NjM3MTU0OTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvaHRtbC5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCkBAIC00ODQs
NiArNDg0LDM5IEBAIGlucHV0Ojotd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFsdWUgewogI2VuZGlm
CiB9CiAKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQgeworICAgIGRpc3BsYXk6IGlubGlu
ZS1ibG9jazsKKyAgICBvdmVyZmxvdzogaGlkZGVuOworfQorCitpbnB1dDo6LXdlYmtpdC1kYXRl
dGltZS1lZGl0LWZpZWxkcy13cmFwcGVyIHsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cit9
CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQteWVhci1maWVsZCwKK2lucHV0Ojotd2Vi
a2l0LWRhdGV0aW1lLWVkaXQtbW9udGgtZmllbGQsCitpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1l
ZGl0LWRheS1maWVsZCB7CisgICAgZGlzcGxheTogaW5saW5lOworICAgIHBhZGRpbmc6IDFweDsK
K30KKworaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15ZWFyLWZpZWxkOmZvY3VzLAoraW5w
dXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1tb250aC1maWVsZDpmb2N1cywKK2lucHV0Ojotd2Vi
a2l0LWRhdGV0aW1lLWVkaXQtZGF5LWZpZWxkOmZvY3VzIHsKKyNpZiBkZWZpbmVkKFdURl9QTEFU
Rk9STV9DT0NPQSkgJiYgV1RGX1BMQVRGT1JNX0NPQ09BCisgICAgYmFja2dyb3VuZC1jb2xvcjog
LWFwcGxlLXN5c3RlbS1jb250cm9sLWFjY2VudDsKKyAgICBjb2xvcjogd2hpdGU7CisjZWxzZQor
ICAgIGJhY2tncm91bmQtY29sb3I6IGhpZ2hsaWdodDsKKyAgICBjb2xvcjogaGlnaGxpZ2h0dGV4
dDsKKyNlbmRpZgorICAgIG91dGxpbmU6IG5vbmU7Cit9CisKK2lucHV0Ojotd2Via2l0LWRhdGV0
aW1lLWVkaXQtdGV4dCB7CisgICAgZGlzcGxheTogaW5saW5lOworfQorCiBpbnB1dDo6LXdlYmtp
dC1pbm5lci1zcGluLWJ1dHRvbiB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBpbm5lci1zcGlu
LWJ1dHRvbjsKICAgICBkaXNwbGF5OiBibG9jazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXgg
NDI0YjkyOTQ4YjQzMTg0NDBiYzUxYzU4ZTgwYmVkNGI5Y2NmOGI0NC4uNzM2YzljMjQ2MDAxNjVh
YTljZGJkMDk2MzVlNzFmNjYwYmMyMDQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTMx
LDE2ICszMSw4OCBAQAogCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVD
aG9vc2VyUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIkRhdGVUaW1lRm9ybWF0LmgiCiAjaW5jbHVk
ZSAiSFRNTERpdkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTG9jYWxlLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9v
dC5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5o
IgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK2NsYXNzIERhdGVUaW1lRm9ybWF0VmFsaWRhdG9yIGZpbmFsIDogcHVibGljIERhdGVUaW1l
Rm9ybWF0OjpUb2tlbkhhbmRsZXIgeworcHVibGljOgorICAgIERhdGVUaW1lRm9ybWF0VmFsaWRh
dG9yKCkgeyB9CisKKyAgICB2b2lkIHZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlw
ZSwgaW50KTsKKyAgICB2b2lkIHZpc2l0TGl0ZXJhbChjb25zdCBTdHJpbmcmKSB7IH0KKworICAg
IGJvb2wgdmFsaWRhdGVGb3JtYXQoY29uc3QgU3RyaW5nJiBmb3JtYXQsIGNvbnN0IEJhc2VDaG9v
c2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlJik7CisKK3ByaXZhdGU6CisgICAgT3B0aW9uU2V0
PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+IG1fcmVzdWx0czsKK307CisKK3ZvaWQg
RGF0ZVRpbWVGb3JtYXRWYWxpZGF0b3I6OnZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxk
VHlwZSBmaWVsZFR5cGUsIGludCkKK3sKKyAgICBzd2l0Y2ggKGZpZWxkVHlwZSkgeworICAgIGNh
c2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVllYXI6CisgICAgICAgIG1fcmVzdWx0cy5hZGQo
RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzWWVhcik7CisgICAgICAgIGJyZWFr
OworCisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTW9udGg6CisgICAgY2FzZSBE
YXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTW9udGhTdGFuZEFsb25lOgorICAgICAgICBtX3Jlc3Vs
dHMuYWRkKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc01vbnRoKTsKKyAgICAg
ICAgYnJlYWs7CisKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVXZWVrT2ZZZWFy
OgorICAgICAgICBtX3Jlc3VsdHMuYWRkKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6
Okhhc1dlZWspOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZp
ZWxkVHlwZURheU9mTW9udGg6CisgICAgICAgIG1fcmVzdWx0cy5hZGQoRGF0ZVRpbWVGb3JtYXRW
YWxpZGF0aW9uUmVzdWx0czo6SGFzRGF5KTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIERh
dGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVQZXJpb2Q6CisgICAgICAgIG1fcmVzdWx0cy5hZGQoRGF0
ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzQU1QTSk7CisgICAgICAgIGJyZWFrOwor
CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjExOgorICAgIGNhc2UgRGF0
ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIxMjoKKyAgICAgICAgbV9yZXN1bHRzLmFkZChEYXRl
VGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNIb3VyKTsKKyAgICAgICAgYnJlYWs7CisK
KyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMjM6CisgICAgY2FzZSBEYXRl
VGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjI0OgorICAgICAgICBtX3Jlc3VsdHMuYWRkKERhdGVU
aW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0hvdXIpOworICAgICAgICBtX3Jlc3VsdHMu
YWRkKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0FNUE0pOworICAgICAgICBi
cmVhazsKKworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1pbnV0ZToKKyAgICAg
ICAgbV9yZXN1bHRzLmFkZChEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNXZWVr
KTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVT
ZWNvbmQ6CisgICAgICAgIG1fcmVzdWx0cy5hZGQoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVz
dWx0czo6SGFzU2Vjb25kKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAg
ICBicmVhazsKKyAgICB9Cit9CisKK2Jvb2wgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0b3I6OnZhbGlk
YXRlRm9ybWF0KGNvbnN0IFN0cmluZyYgZm9ybWF0LCBjb25zdCBCYXNlQ2hvb3Nlck9ubHlEYXRl
QW5kVGltZUlucHV0VHlwZSYgaW5wdXRUeXBlKQoreworICAgIGlmICghRGF0ZVRpbWVGb3JtYXQ6
OnBhcnNlKGZvcm1hdCwgKnRoaXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJu
IGlucHV0VHlwZS5pc1ZhbGlkRm9ybWF0KG1fcmVzdWx0cyk7Cit9CisKIEJhc2VDaG9vc2VyT25s
eURhdGVBbmRUaW1lSW5wdXRUeXBlOjp+QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5
cGUoKQogewogICAgIGNsb3NlRGF0ZVRpbWVDaG9vc2VyKCk7CkBAIC03OSwyNyArMTUxLDU1IEBA
IGJvb2wgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmlzUHJlc2VudGluZ0F0
dGFjaGVkVmlldygpIGNvbnN0CiAKIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1
dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdmFsdWVDb250YWluZXJQc2V1ZG8oIi13ZWJr
aXQtZGF0ZS1hbmQtdGltZS12YWx1ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKLQogICAgIEFTU0VSVChlbGVtZW50KCkpOwotICAgIGF1dG8gdmFsdWVDb250YWluZXIgPSBI
VE1MRGl2RWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSk7Ci0gICAgdmFsdWVD
b250YWluZXItPnNldFBzZXVkbyh2YWx1ZUNvbnRhaW5lclBzZXVkbyk7Ci0gICAgZWxlbWVudCgp
LT51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKHZhbHVlQ29udGFpbmVyKTsKKwor
ICAgIGF1dG8mIGVsZW1lbnQgPSAqKHRoaXMtPmVsZW1lbnQoKSk7CisgICAgYXV0byYgZG9jdW1l
bnQgPSBlbGVtZW50LmRvY3VtZW50KCk7CisKKyAgICBpZiAoZG9jdW1lbnQuc2V0dGluZ3MoKS5k
YXRlVGltZUlucHV0c0VkaXRhYmxlQ29tcG9uZW50c0VuYWJsZWQoKSkgeworICAgICAgICBtX2Rh
dGVUaW1lRWRpdEVsZW1lbnQgPSBEYXRlVGltZUVkaXRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQs
ICp0aGlzKTsKKyAgICAgICAgZWxlbWVudC51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENo
aWxkKCptX2RhdGVUaW1lRWRpdEVsZW1lbnQpOworICAgIH0gZWxzZSB7CisgICAgICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdmFsdWVDb250YWlu
ZXJQc2V1ZG8oIi13ZWJraXQtZGF0ZS1hbmQtdGltZS12YWx1ZSIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgYXV0byB2YWx1ZUNvbnRhaW5lciA9IEhUTUxEaXZF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICB2YWx1ZUNvbnRhaW5lci0+c2V0UHNl
dWRvKHZhbHVlQ29udGFpbmVyUHNldWRvKTsKKyAgICAgICAgZWxlbWVudC51c2VyQWdlbnRTaGFk
b3dSb290KCktPmFwcGVuZENoaWxkKHZhbHVlQ29udGFpbmVyKTsKKyAgICB9CiAgICAgdXBkYXRl
SW5uZXJUZXh0VmFsdWUoKTsKIH0KIAordm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlu
cHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUoKQoreworICAgIElucHV0VHlwZTo6ZGVzdHJv
eVNoYWRvd1N1YnRyZWUoKTsKKyAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQgPSBudWxscHRyOwor
fQorCiB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjp1cGRhdGVJbm5l
clRleHRWYWx1ZSgpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7Ci0gICAgUmVmUHRyPE5vZGU+
IG5vZGUgPSBlbGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOwot
ICAgIGlmICghaXM8SFRNTEVsZW1lbnQ+KG5vZGUpKQorICAgIGlmICghbV9kYXRlVGltZUVkaXRF
bGVtZW50KSB7CisgICAgICAgIGF1dG8gbm9kZSA9IGVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93
Um9vdCgpLT5maXJzdENoaWxkKCk7CisgICAgICAgIGlmICghaXM8SFRNTEVsZW1lbnQ+KG5vZGUp
KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBTdHJpbmcgZGlzcGxheVZhbHVlID0gdmlz
aWJsZVZhbHVlKCk7CisgICAgICAgIGlmIChkaXNwbGF5VmFsdWUuaXNFbXB0eSgpKSB7CisgICAg
ICAgICAgICAvLyBOZWVkIHRvIHB1dCBzb21ldGhpbmcgdG8ga2VlcCB0ZXh0IGJhc2VsaW5lLgor
ICAgICAgICAgICAgZGlzcGxheVZhbHVlID0gIiAiX3M7CisgICAgICAgIH0KKyAgICAgICAgZG93
bmNhc3Q8SFRNTEVsZW1lbnQ+KCpub2RlKS5zZXRJbm5lclRleHQoZGlzcGxheVZhbHVlKTsKICAg
ICAgICAgcmV0dXJuOwotICAgIFN0cmluZyBkaXNwbGF5VmFsdWUgPSB2aXNpYmxlVmFsdWUoKTsK
LSAgICBpZiAoZGlzcGxheVZhbHVlLmlzRW1wdHkoKSkgewotICAgICAgICAvLyBOZWVkIHRvIHB1
dCBzb21ldGhpbmcgdG8ga2VlcCB0ZXh0IGJhc2VsaW5lLgotICAgICAgICBkaXNwbGF5VmFsdWUg
PSAiICJfczsKICAgICB9Ci0gICAgZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KCpub2RlKS5zZXRJbm5l
clRleHQoZGlzcGxheVZhbHVlKTsKKworICAgIERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBh
cmFtZXRlcnMgbGF5b3V0UGFyYW1ldGVycyhlbGVtZW50KCktPmxvY2FsZSgpKTsKKyAgICBzZXR1
cExheW91dFBhcmFtZXRlcnMobGF5b3V0UGFyYW1ldGVycyk7CisKKyAgICBpZiAoIURhdGVUaW1l
Rm9ybWF0VmFsaWRhdG9yKCkudmFsaWRhdGVGb3JtYXQobGF5b3V0UGFyYW1ldGVycy5kYXRlVGlt
ZUZvcm1hdCwgKnRoaXMpKQorICAgICAgICBsYXlvdXRQYXJhbWV0ZXJzLmRhdGVUaW1lRm9ybWF0
ID0gbGF5b3V0UGFyYW1ldGVycy5mYWxsYmFja0RhdGVUaW1lRm9ybWF0OworCisgICAgaWYgKGF1
dG8gZGF0ZSA9IHBhcnNlVG9EYXRlQ29tcG9uZW50cyhlbGVtZW50KCktPnZhbHVlKCkpKQorICAg
ICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnNldFZhbHVlQXNEYXRlKGxheW91dFBhcmFtZXRl
cnMsICpkYXRlKTsKKyAgICBlbHNlCisgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+c2V0
RW1wdHlWYWx1ZShsYXlvdXRQYXJhbWV0ZXJzKTsKIH0KIAogdm9pZCBCYXNlQ2hvb3Nlck9ubHlE
YXRlQW5kVGltZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCB2
YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvcikKQEAgLTE3
Miw2ICsyNzIsMTggQEAgdm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJgogICAgIEJhc2VEYXRlQW5kVGlt
ZUlucHV0VHlwZTo6YXR0cmlidXRlQ2hhbmdlZChuYW1lKTsKIH0KIAorU3RyaW5nIEJhc2VDaG9v
c2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjp2YWx1ZUZvckVkaXRDb250cm9sKCkgY29uc3QK
K3sKKyAgICBBU1NFUlQoZWxlbWVudCgpKTsKKyAgICByZXR1cm4gZWxlbWVudCgpLT52YWx1ZSgp
OworfQorCitBdG9tU3RyaW5nIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjps
b2NhbGVJZGVudGlmaWVyKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoZWxlbWVudCgpKTsKKyAgICBy
ZXR1cm4gZWxlbWVudCgpLT5jb21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKTsKK30KKwogfQogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0
ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5
RGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAppbmRleCAxNGExZWUwYjMzMjI1MDE3OWI4NzcwMDRhZWU5
MWNhYmViNTA4MDIwLi5iMzE5MzE5MWI0MzZjYmFhYzBlMmE5MzQ0NTJkZGNmY2RiNWRkMmI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1l
SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRl
QW5kVGltZUlucHV0VHlwZS5oCkBAIC0zMiwyMCArMzIsNDMgQEAKICNpbmNsdWRlICJCYXNlRGF0
ZUFuZFRpbWVJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJEYXRlVGltZUNob29zZXIuaCIKICNpbmNs
dWRlICJEYXRlVGltZUNob29zZXJDbGllbnQuaCIKKyNpbmNsdWRlICJEYXRlVGltZUVkaXRFbGVt
ZW50LmgiCisjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlIDogcHVibGljIEJh
c2VEYXRlQW5kVGltZUlucHV0VHlwZSwgcHJpdmF0ZSBEYXRlVGltZUNob29zZXJDbGllbnQgewor
ZW51bSBjbGFzcyBEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzIDogdWludDhfdCB7Cisg
ICAgSGFzWWVhciA9IDEgPDwgMCwKKyAgICBIYXNNb250aCA9IDEgPDwgMSwKKyAgICBIYXNXZWVr
ID0gMSA8PCAyLAorICAgIEhhc0RheSA9IDEgPDwgMywKKyAgICBIYXNBTVBNID0gMSA8PCA0LAor
ICAgIEhhc0hvdXIgPSAxIDw8IDUsCisgICAgSGFzTWludXRlID0gMSA8PCA2LAorICAgIEhhc1Nl
Y29uZCA9IDEgPDwgNywKK307CisKK2NsYXNzIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5w
dXRUeXBlIDogcHVibGljIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSwgcHJpdmF0ZSBEYXRlVGlt
ZUNob29zZXJDbGllbnQsIHByaXZhdGUgRGF0ZVRpbWVFZGl0RWxlbWVudDo6RWRpdENvbnRyb2xP
d25lciB7CitwdWJsaWM6CisgICAgdmlydHVhbCBib29sIGlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0
PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+KSBjb25zdCA9IDA7CisKIHByb3RlY3Rl
ZDoKICAgICBleHBsaWNpdCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZShlbGVtZW50
KSB7IH0KICAgICB+QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUoKTsKIAorICAg
IHZpcnR1YWwgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6
TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0ID0gMDsKKwogcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0
ZUlubmVyVGV4dFZhbHVlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjbG9zZURhdGVUaW1lQ2hvb3Nl
cigpOwogCisgICAgLy8gRGF0ZVRpbWVFZGl0RWxlbWVudDo6RWRpdENvbnRyb2xPd25lciBmdW5j
dGlvbnM6CisgICAgU3RyaW5nIHZhbHVlRm9yRWRpdENvbnRyb2woKSBjb25zdCBmaW5hbDsKKyAg
ICBBdG9tU3RyaW5nIGxvY2FsZUlkZW50aWZpZXIoKSBjb25zdCBmaW5hbDsKKwogICAgIC8vIElu
cHV0VHlwZSBmdW5jdGlvbnM6CiAgICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkZXN0cm95U2hhZG93U3VidHJlZSgpIG92ZXJyaWRlOwogICAgIHZvaWQg
ZGV0YWNoKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29s
IHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50Jikgb3ZlcnJpZGU7CkBAIC02Myw2ICs4Niw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRFbmRDaG9vc2VyKCkgZmluYWw7CiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8RGF0ZVRpbWVDaG9vc2VyPiBtX2RhdGVUaW1lQ2hvb3NlcjsKKyAgICBSZWZQ
dHI8RGF0ZVRpbWVFZGl0RWxlbWVudD4gbV9kYXRlVGltZUVkaXRFbGVtZW50OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
RGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlLmgKaW5kZXggM2UxNzI0NzA2MTMyNWQwYTI4ZTRkMTRjYTk4NDBhZGQyYzVi
NDllMi4uODI3ZDAxYjlmMzZmMjgxNzdhN2MyMGJiZmIxNWYzMjQ5OTIwY2UwNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oCkBAIC01Myw4ICs1
Myw5IEBAIHByb3RlY3RlZDoKICAgICBib29sIGlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRF
dmVudCopIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCiAKLXByaXZhdGU6CiAgICAgdmlydHVhbCBP
cHRpb25hbDxEYXRlQ29tcG9uZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRzKGNvbnN0IFN0cmlu
Z1ZpZXcmKSBjb25zdCA9IDA7CisKK3ByaXZhdGU6CiAgICAgdmlydHVhbCBPcHRpb25hbDxEYXRl
Q29tcG9uZW50cz4gc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSkgY29uc3Qg
PSAwOwogCiAgICAgZG91YmxlIHZhbHVlQXNEYXRlKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcAppbmRleCBhNWQ2ZDllZjI4NzkyMTY4ZmU5Y2ZiZjY2
N2FjMDE0OWRkMzA4MTA0Li5jOTEyYTQwODdiMGE2OTY1NTFkYTkzOWJhNWIzNTViOGNlMzM2MTEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAK
ICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAj
aW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUxvY2FsZS5oIgog
I2luY2x1ZGUgIlN0ZXBSYW5nZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04Niw1ICs4
NywxNiBAQCBib29sIERhdGVJbnB1dFR5cGU6OmlzRGF0ZUZpZWxkKCkgY29uc3QKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAorYm9vbCBEYXRlSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0KE9wdGlvblNl
dDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPiByZXN1bHRzKSBjb25zdAoreworICAg
IHJldHVybiByZXN1bHRzLmNvbnRhaW5zQWxsKHsgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVz
dWx0czo6SGFzWWVhciwgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzTW9udGgs
IERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0RheSB9KTsKK30KKwordm9pZCBE
YXRlSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6
TGF5b3V0UGFyYW1ldGVycyYgbGF5b3V0UGFyYW1ldGVycykgY29uc3QKK3sKKyAgICBsYXlvdXRQ
YXJhbWV0ZXJzLmRhdGVUaW1lRm9ybWF0ID0gbGF5b3V0UGFyYW1ldGVycy5sb2NhbGUuZGF0ZUZv
cm1hdCgpOworICAgIGxheW91dFBhcmFtZXRlcnMuZmFsbGJhY2tEYXRlVGltZUZvcm1hdCA9ICJ5
eXl5LU1NLWRkIl9zOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9EYXRlSW5wdXRUeXBlLmgKaW5kZXggMzM1NTA3NGJlNmQ1ZjJlMmY2Mzg4MDY2MmQz
OTYwNjVkZTY5YmYyYi4uZDg5OTIzMzJmOGE1YjMxZmM2MDA1NTY1MDE1ZmM3MmRlMTIwN2I5OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmgKQEAgLTQ3LDYgKzQ3LDkgQEAgcHJpdmF0
ZToKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRzKGNv
bnN0IFN0cmluZ1ZpZXcmKSBjb25zdCBvdmVycmlkZTsKICAgICBPcHRpb25hbDxEYXRlQ29tcG9u
ZW50cz4gc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBpc0RhdGVGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgYm9vbCBp
c1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPikg
Y29uc3QgZmluYWw7CisgICAgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0
RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0IGZpbmFsOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxv
Y2FsSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0
VHlwZS5jcHAKaW5kZXggZGI2MzkwOGZhNjQ1MmZkZmVlMGIxZTNhNTZmMzY3YzAxYjdjMmQyOS4u
ZWEwZjc4ZmU4MGFlNjZmYzExYmM5NDZmMGE3MzhiN2FiNTNiNTgwMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCkBAIC05NSw2ICs5NSwxNSBA
QCBib29sIERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OmlzRGF0ZVRpbWVMb2NhbEZpZWxkKCkgY29u
c3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpp
c1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPiBy
ZXN1bHRzKSBjb25zdAoreworICAgIHJldHVybiByZXN1bHRzLmNvbnRhaW5zQWxsKHsgRGF0ZVRp
bWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzWWVhciwgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0
aW9uUmVzdWx0czo6SGFzTW9udGgsIERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhh
c0RheSwgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzSG91ciwgRGF0ZVRpbWVG
b3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzTWludXRlIH0pOworfQorCit2b2lkIERhdGVUaW1l
TG9jYWxJbnB1dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50
OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29uc3QKK3sKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2Nh
bElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBl
LmgKaW5kZXggMmMwNDk0OWYwZjBhNmQ5MGYzMjQ4ZTRlZjkwYjgwMDAxOTc0OTRhNS4uZjdmMGFl
NzIyMzNhNjhkMzljN2IyMDNhYzFjMjJlOWI2NTAzM2FhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgKQEAgLTQ5LDYgKzQ5LDkgQEAgcHJpdmF0ZToK
ICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRzKGNvbnN0
IFN0cmluZ1ZpZXcmKSBjb25zdCBmaW5hbDsKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4g
c2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSkgY29uc3QgZmluYWw7CiAgICAg
Ym9vbCBpc0RhdGVUaW1lTG9jYWxGaWVsZCgpIGNvbnN0IGZpbmFsOworCisgICAgYm9vbCBpc1Zh
bGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPikgY29u
c3QgZmluYWw7CisgICAgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxl
bWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0IGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAppbmRleCA5OWNm
YzRjZmUyMDNjZTRlNjQwOTcwZGM5ZTljZTY5ZGI1ZWY3ODg2Li5iODZhNDhjZTYwMjM3MzNjMDIw
NmZmNmY1ZTAxZTQ1OTFjOWY0OGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01v
bnRoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBl
LmNwcApAQCAtMTMzLDYgKzEzMywxNSBAQCB2b2lkIE1vbnRoSW5wdXRUeXBlOjpoYW5kbGVET01B
Y3RpdmF0ZUV2ZW50KEV2ZW50JikKIHsKIH0KIAorYm9vbCBNb250aElucHV0VHlwZTo6aXNWYWxp
ZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4gcmVzdWx0
cykgY29uc3QKK3sKKyAgICByZXR1cm4gcmVzdWx0cy5jb250YWluc0FsbCh7IERhdGVUaW1lRm9y
bWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc1llYXIsIERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJl
c3VsdHM6Okhhc01vbnRoIH0pOworfQorCit2b2lkIE1vbnRoSW5wdXRUeXBlOjpzZXR1cExheW91
dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0
Cit7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L01vbnRoSW5wdXRUeXBlLmgKaW5kZXggNGJiZDExZGQwZTAyNzQwOTU5N2I5MTNhZDliYTNkODQ4
ZTA2Zjc5Ny4uMWVmYzI3YzEyMjQyNWQzMGU3M2MyYWI2ZTVhMzAxYTJkNDg0YmFmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaApAQCAtNTIsNiArNTIsOSBAQCBwcml2YXRlOgog
ICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVu
dHMoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzTW9udGhGaWVsZCgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJy
aWRlOworCisgICAgYm9vbCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZh
bGlkYXRpb25SZXN1bHRzPikgY29uc3QgZmluYWw7CisgICAgdm9pZCBzZXR1cExheW91dFBhcmFt
ZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0IGZpbmFs
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0
VHlwZS5jcHAKaW5kZXggNDM4MmY4NThhZDQyZDlkZWQwMTNlZmMxZjk3Zjk1MGUxZGMxZjQxNC4u
ZjZlNjAyOWFmNGNhYjRiMmY1NGEwZDlmYTgxNWI3NTY4MzJkZGMzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RpbWVJbnB1dFR5cGUuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiSFRNTElu
cHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklucHV0VHlw
ZU5hbWVzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1Mb2NhbGUuaCIKICNpbmNsdWRlICJTdGVwUmFu
Z2UuaCIKICNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJh
cy5oPgpAQCAtMTA4LDYgKzEwOSwxNSBAQCB2b2lkIFRpbWVJbnB1dFR5cGU6OmhhbmRsZURPTUFj
dGl2YXRlRXZlbnQoRXZlbnQmKQogewogfQogCitib29sIFRpbWVJbnB1dFR5cGU6OmlzVmFsaWRG
b3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+IHJlc3VsdHMp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHJlc3VsdHMuY29udGFpbnNBbGwoeyBEYXRlVGltZUZvcm1h
dFZhbGlkYXRpb25SZXN1bHRzOjpIYXNIb3VyLCBEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1
bHRzOjpIYXNNaW51dGUgfSk7Cit9CisKK3ZvaWQgVGltZUlucHV0VHlwZTo6c2V0dXBMYXlvdXRQ
YXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25zdAor
eworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rp
bWVJbnB1dFR5cGUuaAppbmRleCAxZTg2MGMzMTdmZmRjMDFjOWNlYzZmZmI0ZTNkMzQwMjljMDNm
ZmRjLi41ZjdkMTIwZDFiYzk1ODg0YzUzNTgxMmQ2OGM2ODk5NmRlMzAxOWE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RpbWVJbnB1dFR5cGUuaApAQCAtNDksNiArNDksOSBAQCBwcml2YXRlOgogICAgIE9w
dGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91
YmxlKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzVGltZUZpZWxkKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50Jikgb3ZlcnJpZGU7CisK
KyAgICBib29sIGlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlv
blJlc3VsdHM+KSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHNldHVwTGF5b3V0UGFyYW1ldGVycyhE
YXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29uc3QgZmluYWw7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1dlZWtJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNw
cAppbmRleCBmZmE3NjVjY2I1MWEzZmZlY2IxZjM0ZDU1NDI1MTJhYzVhOGEzZWM5Li5jOWE5NjZm
ZjYxNTA4N2E1ZjcxZmM4ZjUwMTc5MmRhMjdkZmM3MTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vl
a0lucHV0VHlwZS5jcHAKQEAgLTg2LDYgKzg2LDE1IEBAIHZvaWQgV2Vla0lucHV0VHlwZTo6aGFu
ZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpCiB7CiB9CiAKK2Jvb2wgV2Vla0lucHV0VHlwZTo6
aXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4g
cmVzdWx0cykgY29uc3QKK3sKKyAgICByZXR1cm4gcmVzdWx0cy5jb250YWluc0FsbCh7IERhdGVU
aW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc1llYXIsIERhdGVUaW1lRm9ybWF0VmFsaWRh
dGlvblJlc3VsdHM6Okhhc1dlZWsgfSk7Cit9CisKK3ZvaWQgV2Vla0lucHV0VHlwZTo6c2V0dXBM
YXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBj
b25zdAoreworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1dlZWtJbnB1dFR5cGUuaAppbmRleCA1MDk4MTc0NGJmZTRlYmI3MTNhZmViODliNmYwZGFk
YTg2MTVhYjgwLi45MTZlMzM1NDZjMzk2MDk4NzIxMTU2NWIxZGM3MGFhZTYzNDhmNTYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaApAQCAtNDgsNiArNDgsOSBAQCBwcml2YXRlOgog
ICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVu
dHMoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzV2Vla0ZpZWxkKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50Jikgb3ZlcnJp
ZGU7CisKKyAgICBib29sIGlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFs
aWRhdGlvblJlc3VsdHM+KSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHNldHVwTGF5b3V0UGFyYW1l
dGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29uc3QgZmluYWw7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5NzJiYTk1ZTNm
MTIyN2I3MzhlOGMyM2U1ZTA3N2I3ZDU0YzJlOTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcApAQCAtMCwwICsxLDIy
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRhdGVUaW1l
RWRpdEVsZW1lbnQuaCIKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQor
CisjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKKyNpbmNsdWRlICJEYXRlVGltZUZpZWxkRWxl
bWVudHMuaCIKKyNpbmNsdWRlICJEYXRlVGltZUZvcm1hdC5oIgorI2luY2x1ZGUgIkRhdGVUaW1l
U3ltYm9saWNGaWVsZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRl
ICJQbGF0Zm9ybUxvY2FsZS5oIgorI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCitXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRGF0ZVRpbWVFZGl0RWxlbWVudCk7CisKK2NsYXNzIERh
dGVUaW1lRWRpdEJ1aWxkZXIgZmluYWwgOiBwcml2YXRlIERhdGVUaW1lRm9ybWF0OjpUb2tlbkhh
bmRsZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERhdGVUaW1lRWRpdEJ1aWxkZXIpOwor
CitwdWJsaWM6CisgICAgRGF0ZVRpbWVFZGl0QnVpbGRlcihEYXRlVGltZUVkaXRFbGVtZW50Jiwg
Y29uc3QgRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpOworCisgICAgYm9v
bCBidWlsZChjb25zdCBTdHJpbmcmKTsKKworcHJpdmF0ZToKKyAgICAvLyBEYXRlVGltZUZvcm1h
dDo6VG9rZW5IYW5kbGVyIGZ1bmN0aW9uczoKKyAgICB2b2lkIHZpc2l0RmllbGQoRGF0ZVRpbWVG
b3JtYXQ6OkZpZWxkVHlwZSwgaW50KTsKKyAgICB2b2lkIHZpc2l0TGl0ZXJhbChjb25zdCBTdHJp
bmcmKTsKKworICAgIERhdGVUaW1lRWRpdEVsZW1lbnQmIG1fZWRpdEVsZW1lbnQ7CisgICAgY29u
c3QgRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYgbV9wYXJhbWV0ZXJzOwor
fTsKKworRGF0ZVRpbWVFZGl0QnVpbGRlcjo6RGF0ZVRpbWVFZGl0QnVpbGRlcihEYXRlVGltZUVk
aXRFbGVtZW50JiBlbGVtZW50LCBjb25zdCBEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJh
bWV0ZXJzJiBsYXlvdXRQYXJhbWV0ZXJzKQorICAgIDogbV9lZGl0RWxlbWVudChlbGVtZW50KQor
ICAgICwgbV9wYXJhbWV0ZXJzKGxheW91dFBhcmFtZXRlcnMpCit7Cit9CisKK2Jvb2wgRGF0ZVRp
bWVFZGl0QnVpbGRlcjo6YnVpbGQoY29uc3QgU3RyaW5nJiBmb3JtYXRTdHJpbmcpCit7CisgICAg
bV9lZGl0RWxlbWVudC5yZXNldEZpZWxkcygpOworICAgIHJldHVybiBEYXRlVGltZUZvcm1hdDo6
cGFyc2UoZm9ybWF0U3RyaW5nLCAqdGhpcyk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVFZGl0QnVpbGRl
cjo6dmlzaXRGaWVsZChEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlIGZpZWxkVHlwZSwgaW50IGNv
dW50KQoreworICAgIGNvbnN0ZXhwciBpbnQgY291bnRGb3JBYmJyZXZpYXRlZE1vbnRoID0gMzsK
KyAgICBjb25zdGV4cHIgaW50IGNvdW50Rm9yRnVsbE1vbnRoID0gNDsKKyAgICBjb25zdGV4cHIg
aW50IGNvdW50Rm9yTmFycm93TW9udGggPSA1OworICAgIERvY3VtZW50JiBkb2N1bWVudCA9IG1f
ZWRpdEVsZW1lbnQuZG9jdW1lbnQoKTsKKworICAgIHN3aXRjaCAoZmllbGRUeXBlKSB7CisgICAg
Y2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRGF5T2ZNb250aDogeworICAgICAgICBtX2Vk
aXRFbGVtZW50LmFkZEZpZWxkKERhdGVUaW1lRGF5RmllbGRFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQsIG1fZWRpdEVsZW1lbnQpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNhc2Ug
RGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRoOgorICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZU1vbnRoU3RhbmRBbG9uZTogeworICAgICAgICBzd2l0Y2ggKGNvdW50KSB7Cisg
ICAgICAgIGNhc2UgY291bnRGb3JOYXJyb3dNb250aDoKKyAgICAgICAgY2FzZSBjb3VudEZvckFi
YnJldmlhdGVkTW9udGg6IHsKKyAgICAgICAgICAgIGF1dG8gZmllbGQgPSBEYXRlVGltZVN5bWJv
bGljTW9udGhGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCwgZmll
bGRUeXBlID09IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNb250aCA/IG1fcGFyYW1ldGVycy5s
b2NhbGUuc2hvcnRNb250aExhYmVscygpIDogbV9wYXJhbWV0ZXJzLmxvY2FsZS5zaG9ydFN0YW5k
QWxvbmVNb250aExhYmVscygpKTsKKyAgICAgICAgICAgIG1fZWRpdEVsZW1lbnQuYWRkRmllbGQo
ZmllbGQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBjb3Vu
dEZvckZ1bGxNb250aDogeworICAgICAgICAgICAgYXV0byBmaWVsZCA9IERhdGVUaW1lU3ltYm9s
aWNNb250aEZpZWxkRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtX2VkaXRFbGVtZW50LCBmaWVs
ZFR5cGUgPT0gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRoID8gbV9wYXJhbWV0ZXJzLmxv
Y2FsZS5tb250aExhYmVscygpIDogbV9wYXJhbWV0ZXJzLmxvY2FsZS5zdGFuZEFsb25lTW9udGhM
YWJlbHMoKSk7CisgICAgICAgICAgICBtX2VkaXRFbGVtZW50LmFkZEZpZWxkKGZpZWxkKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICBtX2VkaXRFbGVtZW50LmFkZEZpZWxkKERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZp
ZWxkVHlwZVllYXI6IHsKKyAgICAgICAgbV9lZGl0RWxlbWVudC5hZGRGaWVsZChEYXRlVGltZVll
YXJGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCkpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuOworICAgIH0K
K30KKwordm9pZCBEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdExpdGVyYWwoY29uc3QgU3RyaW5n
JiB0ZXh0KQoreworICAgIEFTU0VSVCh0ZXh0Lmxlbmd0aCgpKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRleHRQc2V1ZG9JZCgiLXdlYmtp
dC1kYXRldGltZS1lZGl0LXRleHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgYXV0byBlbGVtZW50ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShtX2VkaXRFbGVtZW50
LmRvY3VtZW50KCkpOworICAgIGVsZW1lbnQtPnNldFBzZXVkbyh0ZXh0UHNldWRvSWQpOworICAg
IGVsZW1lbnQtPmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZShtX2VkaXRFbGVtZW50LmRvY3VtZW50
KCksIHRleHQpKTsKKyAgICBtX2VkaXRFbGVtZW50LmZpZWxkc1dyYXBwZXJFbGVtZW50KCkuYXBw
ZW5kQ2hpbGQoZWxlbWVudCk7Cit9CisKK0RhdGVUaW1lRWRpdEVsZW1lbnQ6OkVkaXRDb250cm9s
T3duZXI6On5FZGl0Q29udHJvbE93bmVyKCkgPSBkZWZhdWx0OworCitEYXRlVGltZUVkaXRFbGVt
ZW50OjpEYXRlVGltZUVkaXRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgRWRpdENvbnRyb2xP
d25lciYgZWRpdENvbnRyb2xPd25lcikKKyAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgZG9j
dW1lbnQpCisgICAgLCBtX2VkaXRDb250cm9sT3duZXIoJmVkaXRDb250cm9sT3duZXIpCit7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBkYXRl
VGltZUVkaXRQc2V1ZG9JZCgiLXdlYmtpdC1kYXRldGltZS1lZGl0IiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHNldFBzZXVkbyhkYXRlVGltZUVkaXRQc2V1ZG9JZCk7
Cit9CisKK0RhdGVUaW1lRWRpdEVsZW1lbnQ6On5EYXRlVGltZUVkaXRFbGVtZW50KCkgPSBkZWZh
dWx0OworCitpbmxpbmUgRWxlbWVudCYgRGF0ZVRpbWVFZGl0RWxlbWVudDo6ZmllbGRzV3JhcHBl
ckVsZW1lbnQoKSBjb25zdAoreworICAgIEFTU0VSVChmaXJzdENoaWxkKCkpOworICAgIHJldHVy
biBkb3duY2FzdDxFbGVtZW50PigqZmlyc3RDaGlsZCgpKTsKK30KKwordm9pZCBEYXRlVGltZUVk
aXRFbGVtZW50OjphZGRGaWVsZChSZWY8RGF0ZVRpbWVGaWVsZEVsZW1lbnQ+IGZpZWxkKQorewor
ICAgIGlmIChtX2ZpZWxkcy5zaXplKCkgPT0gbV9maWVsZHMuY2FwYWNpdHkoKSkKKyAgICAgICAg
cmV0dXJuOworICAgIG1fZmllbGRzLmFwcGVuZChmaWVsZCk7CisgICAgZmllbGRzV3JhcHBlckVs
ZW1lbnQoKS5hcHBlbmRDaGlsZChmaWVsZCk7Cit9CisKK1JlZjxEYXRlVGltZUVkaXRFbGVtZW50
PiBEYXRlVGltZUVkaXRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBFZGl0Q29u
dHJvbE93bmVyJiBlZGl0Q29udHJvbE93bmVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IERhdGVUaW1lRWRpdEVsZW1lbnQoZG9jdW1lbnQsIGVkaXRDb250cm9sT3duZXIpKTsKK30KKwor
dm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpsYXlvdXQoY29uc3QgTGF5b3V0UGFyYW1ldGVycyYg
bGF5b3V0UGFyYW1ldGVycykKK3sKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IGZpZWxkc1dyYXBwZXJQc2V1ZG9JZCgiLXdlYmtpdC1kYXRldGlt
ZS1lZGl0LWZpZWxkcy13cmFwcGVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworCisgICAgaWYgKCFmaXJzdENoaWxkKCkpIHsKKyAgICAgICAgYXV0byBlbGVtZW50ID0gSFRN
TERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICAgICAgZWxlbWVudC0+c2V0UHNl
dWRvKGZpZWxkc1dyYXBwZXJQc2V1ZG9JZCk7CisgICAgICAgIGFwcGVuZENoaWxkKGVsZW1lbnQp
OworICAgIH0KKworICAgIEVsZW1lbnQmIGZpZWxkc1dyYXBwZXIgPSBmaWVsZHNXcmFwcGVyRWxl
bWVudCgpOworCisgICAgRGF0ZVRpbWVFZGl0QnVpbGRlciBidWlsZGVyKCp0aGlzLCBsYXlvdXRQ
YXJhbWV0ZXJzKTsKKyAgICBOb2RlKiBsYXN0Q2hpbGRUb0JlUmVtb3ZlZCA9IGZpZWxkc1dyYXBw
ZXIubGFzdENoaWxkKCk7CisgICAgaWYgKCFidWlsZGVyLmJ1aWxkKGxheW91dFBhcmFtZXRlcnMu
ZGF0ZVRpbWVGb3JtYXQpIHx8IG1fZmllbGRzLmlzRW1wdHkoKSkgeworICAgICAgICBsYXN0Q2hp
bGRUb0JlUmVtb3ZlZCA9IGZpZWxkc1dyYXBwZXIubGFzdENoaWxkKCk7CisgICAgICAgIGJ1aWxk
ZXIuYnVpbGQobGF5b3V0UGFyYW1ldGVycy5mYWxsYmFja0RhdGVUaW1lRm9ybWF0KTsKKyAgICB9
CisKKyAgICBpZiAobGFzdENoaWxkVG9CZVJlbW92ZWQpIHsKKyAgICAgICAgd2hpbGUgKGF1dG8q
IGNoaWxkTm9kZSA9IGZpZWxkc1dyYXBwZXIuZmlyc3RDaGlsZCgpKSB7CisgICAgICAgICAgICBm
aWVsZHNXcmFwcGVyLnJlbW92ZUNoaWxkKCpjaGlsZE5vZGUpOworICAgICAgICAgICAgaWYgKGNo
aWxkTm9kZSA9PSBsYXN0Q2hpbGRUb0JlUmVtb3ZlZCkKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgIH0KK30KKworQXRvbVN0cmluZyBEYXRlVGltZUVkaXRFbGVtZW50Ojps
b2NhbGVJZGVudGlmaWVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9lZGl0Q29udHJvbE93bmVy
ID8gbV9lZGl0Q29udHJvbE93bmVyLT5sb2NhbGVJZGVudGlmaWVyKCkgOiBudWxsQXRvbSgpOwor
fQorCit2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnJlc2V0RmllbGRzKCkKK3sKKyAgICBtX2Zp
ZWxkcy5zaHJpbmsoMCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6c2V0VmFsdWVB
c0RhdGUoY29uc3QgTGF5b3V0UGFyYW1ldGVycyYgbGF5b3V0UGFyYW1ldGVycywgY29uc3QgRGF0
ZUNvbXBvbmVudHMmIGRhdGUpCit7CisgICAgbGF5b3V0KGxheW91dFBhcmFtZXRlcnMpOworICAg
IGZvciAoc2l6ZV90IGZpZWxkSW5kZXggPSAwOyBmaWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgp
OyArK2ZpZWxkSW5kZXgpCisgICAgICAgIG1fZmllbGRzW2ZpZWxkSW5kZXhdLT5zZXRWYWx1ZUFz
RGF0ZShkYXRlKTsKK30KKwordm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpzZXRFbXB0eVZhbHVl
KGNvbnN0IExheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMpCit7CisgICAgbGF5b3V0
KGxheW91dFBhcmFtZXRlcnMpOworICAgIGZvciAoc2l6ZV90IGZpZWxkSW5kZXggPSAwOyBmaWVs
ZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpOyArK2ZpZWxkSW5kZXgpCisgICAgICAgIG1fZmllbGRz
W2ZpZWxkSW5kZXhdLT5zZXRFbXB0eVZhbHVlKCk7Cit9CisKK1N0cmluZyBEYXRlVGltZUVkaXRF
bGVtZW50Ojp2YWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZWRpdENvbnRyb2xPd25lciA/
IG1fZWRpdENvbnRyb2xPd25lci0+dmFsdWVGb3JFZGl0Q29udHJvbCgpIDogZW1wdHlTdHJpbmco
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEVf
QU5EX1RJTUVfSU5QVVRfVFlQRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZUVkaXRFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGY2YmRmNWY0NzQwNjA2M2JmMTM3YTU5
YjQwN2RkODkyYmRkZDBjMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaApAQCAtMCwwICsxLDk0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQor
CisjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKKyNpbmNsdWRlICJEYXRlVGltZUZpZWxkRWxl
bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIExvY2FsZTsKKworY2xhc3Mg
RGF0ZVRpbWVFZGl0RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCwgcHVibGlj
IERhdGVUaW1lRmllbGRFbGVtZW50OjpGaWVsZE93bmVyIHsKKyAgICBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEKERhdGVUaW1lRWRpdEVsZW1lbnQpOworcHVibGljOgorICAgIGNsYXNzIEVkaXRDb250
cm9sT3duZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+RWRpdENvbnRyb2xPd25l
cigpOworICAgICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZUZvckVkaXRDb250cm9sKCkgY29uc3Qg
PSAwOworICAgICAgICB2aXJ0dWFsIEF0b21TdHJpbmcgbG9jYWxlSWRlbnRpZmllcigpIGNvbnN0
ID0gMDsKKyAgICB9OworCisgICAgc3RydWN0IExheW91dFBhcmFtZXRlcnMgeworICAgICAgICBT
dHJpbmcgZGF0ZVRpbWVGb3JtYXQ7CisgICAgICAgIFN0cmluZyBmYWxsYmFja0RhdGVUaW1lRm9y
bWF0OworICAgICAgICBMb2NhbGUmIGxvY2FsZTsKKworICAgICAgICBMYXlvdXRQYXJhbWV0ZXJz
KExvY2FsZSYgbG9jYWxlKQorICAgICAgICAgICAgOiBsb2NhbGUobG9jYWxlKQorICAgICAgICB7
CisgICAgICAgIH0KKyAgICB9OworCisgICAgc3RhdGljIFJlZjxEYXRlVGltZUVkaXRFbGVtZW50
PiBjcmVhdGUoRG9jdW1lbnQmLCBFZGl0Q29udHJvbE93bmVyJik7CisKKyAgICB2aXJ0dWFsIH5E
YXRlVGltZUVkaXRFbGVtZW50KCk7CisgICAgdm9pZCBhZGRGaWVsZChSZWY8RGF0ZVRpbWVGaWVs
ZEVsZW1lbnQ+KTsKKyAgICBFbGVtZW50JiBmaWVsZHNXcmFwcGVyRWxlbWVudCgpIGNvbnN0Owor
ICAgIHZvaWQgcmVzZXRGaWVsZHMoKTsKKyAgICB2b2lkIHNldEVtcHR5VmFsdWUoY29uc3QgTGF5
b3V0UGFyYW1ldGVycyYpOworICAgIHZvaWQgc2V0VmFsdWVBc0RhdGUoY29uc3QgTGF5b3V0UGFy
YW1ldGVycyYsIGNvbnN0IERhdGVDb21wb25lbnRzJik7CisgICAgU3RyaW5nIHZhbHVlKCkgY29u
c3Q7CisKK3ByaXZhdGU6CisgICAgLy8gRGF0ZXRpbWUgY2FuIGJlIHJlcHJlc2VudGVkIGJ5IGF0
IG1vc3QgOCBmaWVsZHM6CisgICAgLy8gMS4geWVhcgorICAgIC8vIDIuIG1vbnRoCisgICAgLy8g
My4gZGF5LW9mLW1vbnRoCisgICAgLy8gNC4gaG91cgorICAgIC8vIDUuIG1pbnV0ZQorICAgIC8v
IDYuIHNlY29uZAorICAgIC8vIDcuIG1pbGxpc2Vjb25kCisgICAgLy8gOC4gQU0vUE0KKyAgICBz
dGF0aWMgY29uc3RleHByIGludCBtYXhpbXVtTnVtYmVyT2ZGaWVsZHMgPSA4OworCisgICAgRGF0
ZVRpbWVFZGl0RWxlbWVudChEb2N1bWVudCYsIEVkaXRDb250cm9sT3duZXImKTsKKworICAgIHZv
aWQgbGF5b3V0KGNvbnN0IExheW91dFBhcmFtZXRlcnMmKTsKKworICAgIC8vIERhdGVUaW1lRmll
bGRFbGVtZW50OjpGaWVsZE93bmVyIGZ1bmN0aW9uczoKKyAgICBBdG9tU3RyaW5nIGxvY2FsZUlk
ZW50aWZpZXIoKSBjb25zdCBmaW5hbDsKKworICAgIFZlY3RvcjxSZWY8RGF0ZVRpbWVGaWVsZEVs
ZW1lbnQ+LCBtYXhpbXVtTnVtYmVyT2ZGaWVsZHM+IG1fZmllbGRzOworICAgIEVkaXRDb250cm9s
T3duZXIqIG1fZWRpdENvbnRyb2xPd25lcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjA0YmIzMzc4ODhhMTAxNDFlZTNhZDk0YTg1OWM3OWEzYmFiNDNjZDcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVu
dC5jcHAKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkRhdGVUaW1lRmllbGRFbGVtZW50LmgiCisKKyNpZiBFTkFCTEUoREFURV9BTkRf
VElNRV9JTlBVVF9UWVBFUykKKworI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCisjaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgorI2luY2x1ZGUg
IlBsYXRmb3JtTG9jYWxlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBI
VE1MTmFtZXM7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChEYXRlVGltZUZpZWxkRWxl
bWVudCk7CisKK0RhdGVUaW1lRmllbGRFbGVtZW50OjpGaWVsZE93bmVyOjp+RmllbGRPd25lcigp
ID0gZGVmYXVsdDsKKworRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lRmllbGRFbGVtZW50
KERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lcikKKyAgICA6IEhUTUxE
aXZFbGVtZW50KGRpdlRhZywgZG9jdW1lbnQpCisgICAgLCBtX2ZpZWxkT3duZXIoJmZpZWxkT3du
ZXIpCit7Cit9CisKK3ZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUoY29uc3Qg
QXRvbVN0cmluZyYgcHNldWRvKQoreworICAgIHNldFBzZXVkbyhwc2V1ZG8pOworfQorCitMb2Nh
bGUmIERhdGVUaW1lRmllbGRFbGVtZW50Ojpsb2NhbGVGb3JPd25lcigpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGRvY3VtZW50KCkuZ2V0Q2FjaGVkTG9jYWxlKGxvY2FsZUlkZW50aWZpZXIoKSk7Cit9
CisKK0F0b21TdHJpbmcgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmxvY2FsZUlkZW50aWZpZXIoKSBj
b25zdAoreworICAgIHJldHVybiBtX2ZpZWxkT3duZXIgPyBtX2ZpZWxkT3duZXItPmxvY2FsZUlk
ZW50aWZpZXIoKSA6IG51bGxBdG9tKCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6
OnVwZGF0ZVZpc2libGVWYWx1ZSgpCit7CisgICAgaWYgKCFmaXJzdENoaWxkKCkpCisgICAgICAg
IGFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZShkb2N1bWVudCgpLCBlbXB0eVN0cmluZygpKSk7CisK
KyAgICBUZXh0JiB0ZXh0Tm9kZSA9IGRvd25jYXN0PFRleHQ+KCpmaXJzdENoaWxkKCkpOworICAg
IFN0cmluZyBuZXdWaXNpYmxlVmFsdWUgPSB2aXNpYmxlVmFsdWUoKTsKKyAgICBpZiAodGV4dE5v
ZGUud2hvbGVUZXh0KCkgPT0gbmV3VmlzaWJsZVZhbHVlKQorICAgICAgICByZXR1cm47CisKKyAg
ICB0ZXh0Tm9kZS5yZXBsYWNlV2hvbGVUZXh0KG5ld1Zpc2libGVWYWx1ZSk7Cit9CisKK2Jvb2wg
RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OnN1cHBvcnRzRm9jdXMoKSBjb25zdAoreworICAgIHJldHVy
biB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
REFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwMzE1OGY3MjllNGU3YTBh
NzUzZTkzMTlhMmUzYzAzOGI3ZmYwMTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oCkBAIC0wLDAgKzEsNjkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRf
VFlQRVMpCisKKyNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIERhdGVDb21wb25lbnRzOworCitjbGFzcyBEYXRlVGltZUZpZWxkRWxlbWVu
dCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChE
YXRlVGltZUZpZWxkRWxlbWVudCk7CitwdWJsaWM6CisgICAgY2xhc3MgRmllbGRPd25lciB7Cisg
ICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5GaWVsZE93bmVyKCk7CisgICAgICAgIHZpcnR1
YWwgQXRvbVN0cmluZyBsb2NhbGVJZGVudGlmaWVyKCkgY29uc3QgPSAwOworICAgIH07CisKKyAg
ICB2aXJ0dWFsIGJvb2wgaGFzVmFsdWUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNl
dEVtcHR5VmFsdWUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0
IERhdGVDb21wb25lbnRzJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzSW50ZWdl
cihpbnQpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgpIGNvbnN0ID0gMDsKKyAgICB2
aXJ0dWFsIFN0cmluZyB2aXNpYmxlVmFsdWUoKSBjb25zdCA9IDA7CisKK3Byb3RlY3RlZDoKKyAg
ICBEYXRlVGltZUZpZWxkRWxlbWVudChEb2N1bWVudCYsIEZpZWxkT3duZXImKTsKKyAgICB2b2lk
IGluaXRpYWxpemUoY29uc3QgQXRvbVN0cmluZyYgcHNldWRvKTsKKyAgICBMb2NhbGUmIGxvY2Fs
ZUZvck93bmVyKCkgY29uc3Q7CisgICAgQXRvbVN0cmluZyBsb2NhbGVJZGVudGlmaWVyKCkgY29u
c3Q7CisgICAgdm9pZCB1cGRhdGVWaXNpYmxlVmFsdWUoKTsKKyAgICB2aXJ0dWFsIGludCB2YWx1
ZUFzSW50ZWdlcigpIGNvbnN0ID0gMDsKKworcHJpdmF0ZToKKyAgICBib29sIHN1cHBvcnRzRm9j
dXMoKSBjb25zdCBvdmVycmlkZTsKKworICAgIEZpZWxkT3duZXIqIG1fZmllbGRPd25lcjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9U
SU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Rh
dGVUaW1lRmllbGRFbGVtZW50cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzdmOTg0NGExMzQ1ZDhiNDMyMGYw
YzQ4OTFhM2ExYjBkMzc3MTg3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5jcHAKQEAgLTAsMCArMSwxMTYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEYXRlVGltZUZpZWxkRWxl
bWVudHMuaCIKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorCisjaW5j
bHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChE
YXRlVGltZURheUZpZWxkRWxlbWVudCk7CisKK0RhdGVUaW1lRGF5RmllbGRFbGVtZW50OjpEYXRl
VGltZURheUZpZWxkRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxk
T3duZXIpCisgICAgOiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxk
T3duZXIsICItLSJfcykKK3sKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IGRheVBzZXVkb0lkKCItd2Via2l0LWRhdGV0aW1lLWVkaXQtZGF5LWZp
ZWxkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIGluaXRpYWxpemUo
ZGF5UHNldWRvSWQpOworfQorCitSZWY8RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ+IERhdGVUaW1l
RGF5RmllbGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBm
aWVsZE93bmVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERhdGVUaW1lRGF5RmllbGRF
bGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyKSk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVEYXlGaWVs
ZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQorewor
ICAgIHNldFZhbHVlQXNJbnRlZ2VyKGRhdGUubW9udGhEYXkoKSk7Cit9CisKK1dURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50KTsKKworRGF0ZVRpbWVN
b250aEZpZWxkRWxlbWVudDo6RGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudChEb2N1bWVudCYgZG9j
dW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIpCisgICAgOiBEYXRlVGltZU51bWVyaWNGaWVs
ZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsICItLSJfcykKK3sKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vbnRoUHNldWRvSWQoIi13
ZWJraXQtZGF0ZXRpbWUtZWRpdC1tb250aC1maWVsZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBpbml0aWFsaXplKG1vbnRoUHNldWRvSWQpOworfQorCitSZWY8RGF0
ZVRpbWVNb250aEZpZWxkRWxlbWVudD4gRGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudDo6Y3JlYXRl
KERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lcikKK3sKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVs
ZE93bmVyKSk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudDo6c2V0VmFsdWVB
c0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUpCit7CisgICAgLy8gRGF0ZUNvbXBvbmVu
dHMgcmVwcmVzZW50cyBtb250aHMgZnJvbSAwIChKYW51YXJ5KSB0byAxMSAoRGVjZW1iZXIpLgor
ICAgIHNldFZhbHVlQXNJbnRlZ2VyKGRhdGUubW9udGgoKSArIDEpOworfQorCitXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50KTsKKwor
RGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50OjpEYXRlVGltZVN5bWJvbGljTW9udGhG
aWVsZEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgbGFiZWxzKQorICAgIDogRGF0ZVRpbWVTeW1ib2xpY0ZpZWxk
RWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwgbGFiZWxzKQoreworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW9udGhQc2V1ZG9JZCgiLXdl
YmtpdC1kYXRldGltZS1lZGl0LW1vbnRoLWZpZWxkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIGluaXRpYWxpemUobW9udGhQc2V1ZG9JZCk7Cit9CisKK1JlZjxEYXRl
VGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ+IERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxk
RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25l
ciwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhYmVscykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3du
ZXIsIGxhYmVscykpOworfQorCit2b2lkIERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVu
dDo6c2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUpCit7CisgICAgc2V0
VmFsdWVBc0ludGVnZXIoZGF0ZS5tb250aCgpKTsKK30KKworV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKERhdGVUaW1lWWVhckZpZWxkRWxlbWVudCk7CisKK0RhdGVUaW1lWWVhckZpZWxkRWxl
bWVudDo6RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRP
d25lciYgZmllbGRPd25lcikKKyAgICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChkb2N1
bWVudCwgZmllbGRPd25lciwgIi0tLS0iX3MpCit7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB5ZWFyUHNldWRvSWQoIi13ZWJraXQtZGF0ZXRp
bWUtZWRpdC15ZWFyLWZpZWxkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIGluaXRpYWxpemUoeWVhclBzZXVkb0lkKTsKK30KKworUmVmPERhdGVUaW1lWWVhckZpZWxk
RWxlbWVudD4gRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IERhdGVUaW1lWWVhckZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lcikpOworfQorCit2
b2lkIERhdGVUaW1lWWVhckZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNv
bXBvbmVudHMmIGRhdGUpCit7CisgICAgc2V0VmFsdWVBc0ludGVnZXIoZGF0ZS5mdWxsWWVhcigp
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEVf
QU5EX1RJTUVfSU5QVVRfVFlQRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RhdGVUaW1lRmllbGRFbGVtZW50cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhMDA2YjcxYzM2M2Y1ZDVhYjgz
ZDM4NTQxYWI1OTE5NWY1MjZjOGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuaApAQCAtMCwwICsxLDkwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZ
UEVTKQorCisjaW5jbHVkZSAiRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmgiCisjaW5jbHVk
ZSAiRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIERhdGVUaW1lRGF5RmllbGRFbGVtZW50IGZpbmFsIDogcHVibGljIERhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChEYXRlVGlt
ZURheUZpZWxkRWxlbWVudCk7CisKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERhdGVUaW1lRGF5
RmllbGRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmLCBGaWVsZE93bmVyJik7CisKK3ByaXZhdGU6
CisgICAgRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQoRG9jdW1lbnQmLCBGaWVsZE93bmVyJik7CisK
KyAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnM6CisgICAgdm9pZCBzZXRWYWx1
ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYpOworfTsKKworY2xhc3MgRGF0ZVRpbWVNb250
aEZpZWxkRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQg
eworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudCk7
CisKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCYsIEZpZWxkT3duZXImKTsKKworcHJpdmF0ZToKKyAgICBEYXRlVGltZU1v
bnRoRmllbGRFbGVtZW50KERvY3VtZW50JiwgRmllbGRPd25lciYpOworCisgICAgLy8gRGF0ZVRp
bWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zOgorICAgIHZvaWQgc2V0VmFsdWVBc0RhdGUoY29uc3Qg
RGF0ZUNvbXBvbmVudHMmKTsKK307CisKK2NsYXNzIERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxk
RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50IHsKKyAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVu
dCk7CisKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxk
RWxlbWVudD4gY3JlYXRlKERvY3VtZW50JiwgRmllbGRPd25lciYsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+Jik7CisKK3ByaXZhdGU6CisgICAgRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50
KERvY3VtZW50JiwgRmllbGRPd25lciYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CisKKyAgICAv
LyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnM6CisgICAgdm9pZCBzZXRWYWx1ZUFzRGF0
ZShjb25zdCBEYXRlQ29tcG9uZW50cyYpOworfTsKKworY2xhc3MgRGF0ZVRpbWVZZWFyRmllbGRF
bGVtZW50IGZpbmFsIDogcHVibGljIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCB7CisgICAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRChEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQpOworCitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQ+IGNyZWF0ZShEb2N1
bWVudCYsIEZpZWxkT3duZXImKTsKKworcHJpdmF0ZToKKyAgICBEYXRlVGltZVllYXJGaWVsZEVs
ZW1lbnQoRG9jdW1lbnQmLCBGaWVsZE93bmVyJik7CisKKyAgICAvLyBEYXRlVGltZUZpZWxkRWxl
bWVudCBmdW5jdGlvbnM6CisgICAgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9u
ZW50cyYpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lYjc3YjU1ZjJkMzk3MDQwYzUzMTFkNTVkNWM4ZjdhZjVkNzczMWEzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVt
ZW50LmNwcApAQCAtMCwwICsxLDk0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmgiCisKKyNpZiBFTkFCTEUo
REFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKworI2luY2x1ZGUgIlBsYXRmb3JtTG9jYWxlLmgi
CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVt
ZW50KTsKKworRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpEYXRlVGltZU51bWVyaWNGaWVs
ZEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBjb25z
dCBTdHJpbmcmIHBsYWNlaG9sZGVyKQorICAgIDogRGF0ZVRpbWVGaWVsZEVsZW1lbnQoZG9jdW1l
bnQsIGZpZWxkT3duZXIpCisgICAgLCBtX3BsYWNlaG9sZGVyKHBsYWNlaG9sZGVyKQorICAgICwg
bV92YWx1ZSgwKQorICAgICwgbV9oYXNWYWx1ZShmYWxzZSkKK3sKK30KKworU3RyaW5nIERhdGVU
aW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6Zm9ybWF0VmFsdWUoaW50IHZhbHVlKSBjb25zdAorewor
ICAgIExvY2FsZSYgbG9jYWxlID0gbG9jYWxlRm9yT3duZXIoKTsKKyAgICByZXR1cm4gbG9jYWxl
LmNvbnZlcnRUb0xvY2FsaXplZE51bWJlcihtYWtlU3RyaW5nKHBhZCgnMCcsIDIsIHZhbHVlKSkp
OworfQorCitib29sIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6aGFzVmFsdWUoKSBjb25z
dAoreworICAgIHJldHVybiBtX2hhc1ZhbHVlOworfQorCit2b2lkIERhdGVUaW1lTnVtZXJpY0Zp
ZWxkRWxlbWVudDo6aW5pdGlhbGl6ZShjb25zdCBBdG9tU3RyaW5nJiBwc2V1ZG8pCit7CisgICAg
RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUocHNldWRvKTsKK30KKwordm9pZCBEYXRl
VGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnNldEVtcHR5VmFsdWUoKQoreworICAgIG1fdmFsdWUg
PSAwOworICAgIG1faGFzVmFsdWUgPSBmYWxzZTsKKyAgICB1cGRhdGVWaXNpYmxlVmFsdWUoKTsK
K30KKwordm9pZCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNJbnRlZ2Vy
KGludCB2YWx1ZSkKK3sKKyAgICBtX3ZhbHVlID0gdmFsdWU7CisgICAgbV9oYXNWYWx1ZSA9IHRy
dWU7CisgICAgdXBkYXRlVmlzaWJsZVZhbHVlKCk7Cit9CisKK1N0cmluZyBEYXRlVGltZU51bWVy
aWNGaWVsZEVsZW1lbnQ6OnZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYXNWYWx1ZSA/
IGZvcm1hdFZhbHVlKG1fdmFsdWUpIDogZW1wdHlTdHJpbmcoKTsKK30KKworaW50IERhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudDo6dmFsdWVBc0ludGVnZXIoKSBjb25zdAoreworICAgIHJldHVy
biBtX2hhc1ZhbHVlID8gbV92YWx1ZSA6IC0xOworfQorCitTdHJpbmcgRGF0ZVRpbWVOdW1lcmlj
RmllbGRFbGVtZW50Ojp2aXNpYmxlVmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBtX2hhc1Zh
bHVlID8gdmFsdWUoKSA6IG1fcGxhY2Vob2xkZXI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hZWU0MGUzNTVkMGJlNjg5NDA3YjJlNzZjZDEzMmFhMzNlZmEx
M2I0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVOdW1lcmljRmllbGRFbGVtZW50LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKworI2lu
Y2x1ZGUgIkRhdGVUaW1lRmllbGRFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50IDogcHVibGljIERhdGVUaW1lRmllbGRF
bGVtZW50IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudCk7CitwdWJsaWM6CisKK3Byb3RlY3RlZDoKKyAgICBEYXRlVGltZU51bWVyaWNGaWVs
ZEVsZW1lbnQoRG9jdW1lbnQmLCBGaWVsZE93bmVyJiwgY29uc3QgU3RyaW5nJik7CisKKyAgICAv
LyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnM6CisgICAgYm9vbCBoYXNWYWx1ZSgpIGNv
bnN0IGZpbmFsOworICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBBdG9tU3RyaW5nJik7CisgICAg
dm9pZCBzZXRFbXB0eVZhbHVlKCkgZmluYWw7CisgICAgdm9pZCBzZXRWYWx1ZUFzSW50ZWdlcihp
bnQpIGZpbmFsOworICAgIGludCB2YWx1ZUFzSW50ZWdlcigpIGNvbnN0IGZpbmFsOworICAgIFN0
cmluZyB2aXNpYmxlVmFsdWUoKSBjb25zdCBmaW5hbDsKKworcHJpdmF0ZToKKyAgICAvLyBEYXRl
VGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnM6CisgICAgU3RyaW5nIHZhbHVlKCkgY29uc3QgZmlu
YWw7CisKKyAgICBTdHJpbmcgZm9ybWF0VmFsdWUoaW50KSBjb25zdDsKKworICAgIGNvbnN0IFN0
cmluZyBtX3BsYWNlaG9sZGVyOworICAgIGludCBtX3ZhbHVlOworICAgIGJvb2wgbV9oYXNWYWx1
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRF
X0FORF9USU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
MDY3YTBiYjg2YjMxZTUzNTIwYjE0Yzc4MzJhOGQ4NWMxMjE0NTBmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVu
dC5jcHAKQEAgLTAsMCArMSwxMDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmgiCisKKyNpZiBFTkFCTEUo
REFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQpOwor
CitzdGF0aWMgQXRvbVN0cmluZyBtYWtlVmlzaWJsZUVtcHR5VmFsdWUoY29uc3QgVmVjdG9yPFN0
cmluZz4mIHN5bWJvbHMpCit7CisgICAgdW5zaWduZWQgbWF4aW11bUxlbmd0aCA9IDA7CisgICAg
Zm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgc3ltYm9scy5zaXplKCk7ICsraW5kZXgp
CisgICAgICAgIG1heGltdW1MZW5ndGggPSBzdGQ6Om1heChtYXhpbXVtTGVuZ3RoLCBudW1HcmFw
aGVtZUNsdXN0ZXJzKHN5bWJvbHNbaW5kZXhdKSk7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OworICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KG1heGltdW1MZW5ndGgpOworICAgIGZvciAo
dW5zaWduZWQgbGVuZ3RoID0gMDsgbGVuZ3RoIDwgbWF4aW11bUxlbmd0aDsgKytsZW5ndGgpCisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKCctJyk7CisgICAgcmV0dXJuIGJ1aWxkZXIudG9BdG9tU3Ry
aW5nKCk7Cit9CisKK0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVy
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3ltYm9scykKKyAgICA6IERhdGVUaW1lRmllbGRFbGVt
ZW50KGRvY3VtZW50LCBmaWVsZE93bmVyKQorICAgICwgbV9zeW1ib2xzKHN5bWJvbHMpCisgICAg
LCBtX3Zpc2libGVFbXB0eVZhbHVlKG1ha2VWaXNpYmxlRW1wdHlWYWx1ZShzeW1ib2xzKSkKKyAg
ICAsIG1fc2VsZWN0ZWRJbmRleChpbnZhbGlkSW5kZXgpCit7CisgICAgQVNTRVJUKCFtX3N5bWJv
bHMuaXNFbXB0eSgpKTsKK30KKworYm9vbCBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojpo
YXNWYWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2VsZWN0ZWRJbmRleCA+PSAwOworfQor
Cit2b2lkIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUoY29uc3QgQXRv
bVN0cmluZyYgcHNldWRvKQoreworICAgIERhdGVUaW1lRmllbGRFbGVtZW50Ojppbml0aWFsaXpl
KHBzZXVkbyk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6c2V0RW1w
dHlWYWx1ZSgpCit7CisgICAgbV9zZWxlY3RlZEluZGV4ID0gaW52YWxpZEluZGV4OworICAgIHVw
ZGF0ZVZpc2libGVWYWx1ZSgpOworfQorCit2b2lkIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1l
bnQ6OnNldFZhbHVlQXNJbnRlZ2VyKGludCBuZXdTZWxlY3RlZEluZGV4KQoreworICAgIG1fc2Vs
ZWN0ZWRJbmRleCA9IHN0ZDo6bWF4KDAsIHN0ZDo6bWluKG5ld1NlbGVjdGVkSW5kZXgsIHN0YXRp
Y19jYXN0PGludD4obV9zeW1ib2xzLnNpemUoKSAtIDEpKSk7CisgICAgdXBkYXRlVmlzaWJsZVZh
bHVlKCk7Cit9CisKK1N0cmluZyBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojp2YWx1ZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGhhc1ZhbHVlKCkgPyBtX3N5bWJvbHNbbV9zZWxlY3RlZElu
ZGV4XSA6IGVtcHR5U3RyaW5nKCk7Cit9CisKK2ludCBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVt
ZW50Ojp2YWx1ZUFzSW50ZWdlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2VsZWN0ZWRJbmRl
eDsKK30KKworU3RyaW5nIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnZpc2libGVFbXB0
eVZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92aXNpYmxlRW1wdHlWYWx1ZTsKK30KKwor
U3RyaW5nIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnZpc2libGVWYWx1ZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIGhhc1ZhbHVlKCkgPyBtX3N5bWJvbHNbbV9zZWxlY3RlZEluZGV4XSA6
IHZpc2libGVFbXB0eVZhbHVlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjc4MmM3YzVjMzUzMWZlNGU2MzFlYTA1MGY3MDhjMTg1M2ZkYzA1NzUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJv
bGljRmllbGRFbGVtZW50LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKworI2luY2x1ZGUg
IkRhdGVUaW1lRmllbGRFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCA6IHB1YmxpYyBEYXRlVGltZUZpZWxkRWxlbWVu
dCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChEYXRlVGltZVN5bWJvbGljRmllbGRFbGVt
ZW50KTsKK3Byb3RlY3RlZDoKKyAgICBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50KERvY3Vt
ZW50JiwgRmllbGRPd25lciYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CisgICAgc2l6ZV90IHN5
bWJvbHNTaXplKCkgY29uc3QgeyByZXR1cm4gbV9zeW1ib2xzLnNpemUoKTsgfQorICAgIGJvb2wg
aGFzVmFsdWUoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgQXRvbVN0
cmluZyYgcHNldWRvKTsKKyAgICB2b2lkIHNldEVtcHR5VmFsdWUoKSBmaW5hbDsKKyAgICB2b2lk
IHNldFZhbHVlQXNJbnRlZ2VyKGludCkgZmluYWw7CisgICAgaW50IHZhbHVlQXNJbnRlZ2VyKCkg
Y29uc3QgZmluYWw7CisKK3ByaXZhdGU6CisgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgaW52YWxp
ZEluZGV4ID0gLTE7CisKKyAgICBTdHJpbmcgdmlzaWJsZUVtcHR5VmFsdWUoKSBjb25zdDsKKwor
ICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9uczoKKyAgICBTdHJpbmcgdmFsdWUo
KSBjb25zdCBmaW5hbDsKKyAgICBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgZmluYWw7CisK
KyAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiBtX3N5bWJvbHM7CisKKyAgICBjb25zdCBBdG9tU3Ry
aW5nIG1fdmlzaWJsZUVtcHR5VmFsdWU7CisgICAgaW50IG1fc2VsZWN0ZWRJbmRleDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1F
X0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDljOTFkNWZkM2E3MDI2MWRkMDMwMjYyYjc2YTZhOGMyOWQ4
NjNkMzAuLjg5MzY1NzBmYzE1YzE5NDFjMjE2MWFlM2Q2ZmUyOTkwMGY1YzVlYjggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMCBAQAorMjAyMC0wOC0yNSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBs
ZS5jb20+CisKKyAgICAgICAgW21hY09TXSBEYXRlIGlucHV0cyBzaG91bGQgY29udGFpbiBlZGl0
YWJsZSBjb21wb25lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTUxNTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRlZCBhIHRlc3QgdG8gdmVyaWZ5IHN0eWxpbmcgb2YgcHNldWRvIGVsZW1lbnRz
IHdpdGhpbiBkYXRlIGlucHV0cy4KKyAgICAgICAgUmViYXNlbGluZWQgZXhpc3RpbmcgdGVzdHMg
dG8gbWF0Y2ggbmV3IGFwcGVhcmFuY2UuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2RhdGUvZGF0
ZS1wc2V1ZG8tZWxlbWVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zv
cm1zL2RhdGUvZGF0ZS1wc2V1ZG8tZWxlbWVudHMuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1pbnB1dC1yZW5kZXJpbmctYmFzaWMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvZmFzdC9mb3Jtcy9kYXRl
L2RhdGUtcHNldWRvLWVsZW1lbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL3RpbWUvdGltZS1hcHBlYXJhbmNlLWJhc2ljLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL3Rp
bWUvdGltZS1pbnB1dC1yZW5kZXJpbmctYmFzaWMtZXhwZWN0ZWQudHh0OgorCiAyMDIwLTA4LTI0
ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1Nd
IFNob3cgcGlja2VyIGZvciBkYXRlIGFuZCBkYXRldGltZS1sb2NhbCBpbnB1dCB0eXBlcwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtcHNldWRvLWVsZW1lbnRz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLXBzZXVkby1l
bGVtZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmZjZWY5YmNiZDllNTcxYzViM2Y1YzY0
YWRmZDVmMzkzMmJjOTMzOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvZGF0ZS9kYXRlLXBzZXVkby1lbGVtZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBA
QAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgp
IHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxMDEsMikgc2l6ZSA0
eDE5CisgICAgICAgIHRleHQgcnVuIGF0ICgxMDEsMikgd2lkdGggNDogIiAiCisgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICgxMCwxMCkgc2l6ZSA5
N3gyMiBjbGlwIGF0ICgxMSwxMSkgc2l6ZSA5NXgyMAorICBSZW5kZXJGbGV4aWJsZUJveCB7SU5Q
VVR9IGF0ICgyLDIpIHNpemUgOTd4MjIgW2JnY29sb3I9I0ZGRkZGRl0gW2JvcmRlcjogKDFweCBz
b2xpZCAjNEM0QzRDKV0KKyAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoNiw0KSBzaXplIDU3eDE0
CisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1N3gxNAorICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1NzogIkFwciAxLCAxOTc2IgorbGF5ZXIgYXQgKDExNSwx
MCkgc2l6ZSA5N3gyMiBjbGlwIGF0ICgxMTYsMTEpIHNpemUgOTV4MjAKKyAgUmVuZGVyRmxleGli
bGVCb3gge0lOUFVUfSBhdCAoMTA3LDIpIHNpemUgOTd4MjIgW2JnY29sb3I9I0ZGRkZGRl0gW2Jv
cmRlcjogKDFweCBzb2xpZCAjNEM0QzRDKV0KKyAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMTYs
NCkgc2l6ZSA1N3gxNAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNTd4
MTQKKyAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTc6ICJBcHIgMSwgMTk3NiIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLXBzZXVkby1lbGVtZW50
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtcHNldWRvLWVsZW1lbnRz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDk4OTFiMGE1MjJjN2E4ZTNiMzRmN2QxMGUzZmY3OWUwODg0ODFl
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLXBz
ZXVkby1lbGVtZW50cy5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5
bGU+CitpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0IHsKKyAgICBib3JkZXI6IDFweCBzb2xp
ZCByZWQ7CisgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKKyAgICBmb250LXNpemU6IDE1cHg7
Cit9CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtdGV4dCB7CisgICAgY29sb3I6IHll
bGxvdzsKKyAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOworICAgIGZvbnQtc2l6ZTogMTVweDsK
K30KKworaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1tb250aC1maWVsZCB7CisgICAgY29s
b3I6IHJlZDsKKyAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOworICAgIGZvbnQtc2l6ZTogMTVw
eDsKK30KKworaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1kYXktZmllbGQgeworICAgIGNv
bG9yOiBncmVlbjsKKyAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOworICAgIGZvbnQtc2l6ZTog
MTVweDsKK30KKworaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15ZWFyLWZpZWxkIHsKKyAg
ICBjb2xvcjogYmx1ZTsKKyAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOworICAgIGZvbnQtc2l6
ZTogMTVweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8aW5wdXQgdHlwZT0i
ZGF0ZSIgZGlyPSJsdHIiIHZhbHVlPSIxOTc2LTA0LTAxIj4KKyAgICA8aW5wdXQgdHlwZT0iZGF0
ZSIgZGlyPSJydGwiIHZhbHVlPSIxOTc2LTA0LTAxIj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9mb3Jtcy9kYXRlL2RhdGUt
aW5wdXQtcmVuZGVyaW5nLWJhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azIvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtaW5wdXQtcmVuZGVyaW5nLWJhc2ljLWV4cGVj
dGVkLnR4dAppbmRleCA1YmI1Nzg3MDM3YTQ5M2YyODUwYmZiMjM4OWJiNzg4YWQ4Yjk4OGIxLi5i
MjA0NjgwZGJmNjIwYTY0MmM1ODZmNGUzYTJhNDZlZTg2ZTlkMzM1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWlucHV0LXJlbmRl
cmluZy1iYXNpYy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
Mi9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1pbnB1dC1yZW5kZXJpbmctYmFzaWMtZXhwZWN0ZWQudHh0
CkBAIC0zLDE2ICszLDQ2IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKLSAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTEwLDMpIHNpemUgNHgxOAotICAgICAgICB0ZXh0IHJ1
biBhdCAoMTEwLDMpIHdpZHRoIDQ6ICIgIgorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgx
MTAsMikgc2l6ZSA0eDE4CisgICAgICAgIHRleHQgcnVuIGF0ICgxMTAsMikgd2lkdGggNDogIiAi
CiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKLWxheWVyIGF0ICg4
LDEwKSBzaXplIDExMHgyMSBjbGlwIGF0ICgxMCwxMikgc2l6ZSAxMDZ4MTcKLSAgUmVuZGVyRmxl
eGlibGVCb3gge0lOUFVUfSBhdCAoMCwyKSBzaXplIDExMHgyMSBbYmdjb2xvcj0jRkZGRkZGXSBb
Ym9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQotICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg3
LDQpIHNpemUgNTl4MTMKLSAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDU5
eDEzCi0gICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDU5OiAiQXByIDEsIDE5NzYiCi1s
YXllciBhdCAoMTIyLDEwKSBzaXplIDExMHgyMSBjbGlwIGF0ICgxMjQsMTIpIHNpemUgMTA2eDE3
Ci0gIFJlbmRlckZsZXhpYmxlQm94IHtJTlBVVH0gYXQgKDExNCwyKSBzaXplIDExMHgyMSBbYmdj
b2xvcj0jRkZGRkZGXSBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQotICAgIFJlbmRlckJs
b2NrIHtESVZ9IGF0ICgyNCw0KSBzaXplIDU5eDEzCi0gICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSA1OXgxMwotICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1OTog
IkFwciAxLCAxOTc2IgorbGF5ZXIgYXQgKDgsMTApIHNpemUgMTEweDE5IGNsaXAgYXQgKDEwLDEy
KSBzaXplIDEwNngxNQorICBSZW5kZXJGbGV4aWJsZUJveCB7SU5QVVR9IGF0ICgwLDIpIHNpemUg
MTEweDE5IFtiZ2NvbG9yPSNGRkZGRkZdIFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCits
YXllciBhdCAoMTEsMTMpIHNpemUgNjV4MTMgc2Nyb2xsSGVpZ2h0IDE0CisgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgzLDMpIHNpemUgNjZ4MTMKKyAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCww
KSBzaXplIDY2eDEzCisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSAxN3gx
NQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEsMCkgc2l6ZSAxNXgxMworICAgICAg
ICAgIHRleHQgcnVuIGF0ICgxLDApIHdpZHRoIDE1OiAiMDQiCisgICAgICBSZW5kZXJJbmxpbmUg
e0RJVn0gYXQgKDAsMCkgc2l6ZSA0eDEzCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MTYsMCkgc2l6ZSA0eDEzCisgICAgICAgICAgdGV4dCBydW4gYXQgKDE2LDApIHdpZHRoIDQ6ICIv
IgorICAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgMTZ4MTUKKyAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyMCwwKSBzaXplIDE0eDEzCisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDIwLDApIHdpZHRoIDE0OiAiMDEiCisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQg
KDAsMCkgc2l6ZSA0eDEzCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMzQsMCkgc2l6
ZSA0eDEzCisgICAgICAgICAgdGV4dCBydW4gYXQgKDM0LDApIHdpZHRoIDQ6ICIvIgorICAgICAg
UmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgMjl4MTUKKyAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgzOCwwKSBzaXplIDI3eDEzCisgICAgICAgICAgdGV4dCBydW4gYXQgKDM4
LDApIHdpZHRoIDI3OiAiMTk3NiIKK2xheWVyIGF0ICgxMjIsMTApIHNpemUgMTEweDE5IGNsaXAg
YXQgKDEyNCwxMikgc2l6ZSAxMDZ4MTUKKyAgUmVuZGVyRmxleGlibGVCb3gge0lOUFVUfSBhdCAo
MTE0LDIpIHNpemUgMTEweDE5IFtiZ2NvbG9yPSNGRkZGRkZdIFtib3JkZXI6ICgycHggaW5zZXQg
IzAwMDAwMCldCitsYXllciBhdCAoMTY0LDEzKSBzaXplIDY1eDEzIHNjcm9sbEhlaWdodCAxNAor
ICBSZW5kZXJCbG9jayB7RElWfSBhdCAoNDEsMykgc2l6ZSA2NngxMworICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgwLDApIHNpemUgNjZ4MTMKKyAgICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAo
MCwwKSBzaXplIDE3eDE1CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMSwwKSBzaXpl
IDE1eDEzCisgICAgICAgICAgdGV4dCBydW4gYXQgKDEsMCkgd2lkdGggMTU6ICIwNCIKKyAgICAg
IFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDR4MTMKKyAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgxNiwwKSBzaXplIDR4MTMKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTYs
MCkgd2lkdGggNDogIi8iCisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSAx
NngxNQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDIwLDApIHNpemUgMTR4MTMKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMjAsMCkgd2lkdGggMTQ6ICIwMSIKKyAgICAgIFJlbmRlcklu
bGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDR4MTMKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgzNCwwKSBzaXplIDR4MTMKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzQsMCkgd2lkdGgg
NDogIi8iCisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSAyOXgxNQorICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDM4LDApIHNpemUgMjd4MTMKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMzgsMCkgd2lkdGggMjc6ICIxOTc2IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1wc2V1ZG8tZWxlbWVudHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL2Rh
dGUvZGF0ZS1wc2V1ZG8tZWxlbWVudHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyNTNjNjA5
MjViYWEyODJkYmVkMzE1OTQzYmYxZmRjYmZkMGI4YjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLXBzZXVkby1lbGVt
ZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0OCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYw
MAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgxMTAsNSkgc2l6ZSA0eDE4CisgICAgICAgIHRleHQgcnVuIGF0
ICgxMTAsNSkgd2lkdGggNDogIiAiCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAweDAKK2xheWVyIGF0ICg4LDEwKSBzaXplIDExMHgyNSBjbGlwIGF0ICgxMCwxMikgc2l6
ZSAxMDZ4MjEKKyAgUmVuZGVyRmxleGlibGVCb3gge0lOUFVUfSBhdCAoMCwyKSBzaXplIDExMHgy
NSBbYmdjb2xvcj0jRkZGRkZGXSBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQorbGF5ZXIg
YXQgKDExLDEzKSBzaXplIDk4eDE5IGNsaXAgYXQgKDEyLDE0KSBzaXplIDk2eDE3IHNjcm9sbEhl
aWdodCAxOAorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMywzKSBzaXplIDk5eDE5IFtib3JkZXI6
ICgxcHggc29saWQgI0ZGMDAwMCldCisgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDEsMSkgc2l6
ZSA5N3gxNworICAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgMjF4MTkgW2Nv
bG9yPSNGRjAwMDBdCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMSwwKSBzaXplIDE5
eDE3CisgICAgICAgICAgdGV4dCBydW4gYXQgKDEsMCkgd2lkdGggMTk6ICIwNCIKKyAgICAgIFJl
bmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDEweDE3IFtjb2xvcj0jRkZGRjAwXQorICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDIwLDApIHNpemUgMTB4MTcKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMjAsMCkgd2lkdGggMTA6ICIvIgorICAgICAgUmVuZGVySW5saW5lIHtESVZ9
IGF0ICgwLDApIHNpemUgMjF4MTkgW2NvbG9yPSMwMDgwMDBdCisgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMzAsMCkgc2l6ZSAxOXgxNworICAgICAgICAgIHRleHQgcnVuIGF0ICgzMCww
KSB3aWR0aCAxOTogIjAxIgorICAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUg
MTB4MTcgW2NvbG9yPSNGRkZGMDBdCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNDks
MCkgc2l6ZSAxMHgxNworICAgICAgICAgIHRleHQgcnVuIGF0ICg0OSwwKSB3aWR0aCAxMDogIi8i
CisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSAzOXgxOSBbY29sb3I9IzAw
MDBGRl0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg1OSwwKSBzaXplIDM3eDE3Cisg
ICAgICAgICAgdGV4dCBydW4gYXQgKDU5LDApIHdpZHRoIDM3OiAiMTk3NiIKK2xheWVyIGF0ICgx
MjIsMTApIHNpemUgMTEweDI1IGNsaXAgYXQgKDEyNCwxMikgc2l6ZSAxMDZ4MjEKKyAgUmVuZGVy
RmxleGlibGVCb3gge0lOUFVUfSBhdCAoMTE0LDIpIHNpemUgMTEweDI1IFtiZ2NvbG9yPSNGRkZG
RkZdIFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCitsYXllciBhdCAoMTMxLDEzKSBzaXpl
IDk4eDE5IGNsaXAgYXQgKDEzMiwxNCkgc2l6ZSA5NngxNyBzY3JvbGxIZWlnaHQgMTgKKyAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDgsMykgc2l6ZSA5OXgxOSBbYm9yZGVyOiAoMXB4IHNvbGlkICNG
RjAwMDApXQorICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxLDEpIHNpemUgOTd4MTcKKyAgICAg
IFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDIxeDE5IFtjb2xvcj0jRkYwMDAwXQor
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEsMCkgc2l6ZSAxOXgxNworICAgICAgICAg
IHRleHQgcnVuIGF0ICgxLDApIHdpZHRoIDE5OiAiMDQiCisgICAgICBSZW5kZXJJbmxpbmUge0RJ
Vn0gYXQgKDAsMCkgc2l6ZSAxMHgxNyBbY29sb3I9I0ZGRkYwMF0KKyAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgyMCwwKSBzaXplIDEweDE3CisgICAgICAgICAgdGV4dCBydW4gYXQgKDIw
LDApIHdpZHRoIDEwOiAiLyIKKyAgICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXpl
IDIxeDE5IFtjb2xvcj0jMDA4MDAwXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMw
LDApIHNpemUgMTl4MTcKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzAsMCkgd2lkdGggMTk6ICIw
MSIKKyAgICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDEweDE3IFtjb2xvcj0j
RkZGRjAwXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDQ5LDApIHNpemUgMTB4MTcK
KyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNDksMCkgd2lkdGggMTA6ICIvIgorICAgICAgUmVuZGVy
SW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgMzl4MTkgW2NvbG9yPSMwMDAwRkZdCisgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNTksMCkgc2l6ZSAzN3gxNworICAgICAgICAgIHRleHQg
cnVuIGF0ICg1OSwwKSB3aWR0aCAzNzogIjE5NzYiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMvdGltZS90aW1lLWFwcGVhcmFuY2UtYmFzaWMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL3RpbWUv
dGltZS1hcHBlYXJhbmNlLWJhc2ljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZGQwYWQ1NTk3
ZjY5ZTcwZDYxYmM1NmVlNjQ4NzhhMGFhOGFmODQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL3RpbWUvdGltZS1hcHBlYXJhbmNlLWJh
c2ljLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitzdGVwPW5vbmUgIAorc3RlcD0xICAK
K3N0ZXA9MC4wMDAxICAKK3N0ZXA9NjAgIAorc3RlcD0zNjAwICAKK3N0ZXA9ODY0MDAgIAorc3Rl
cCBtaXNtYXRjaGVkIAorUlRMIAorRGlzYWJsZWQsIHN0ZXA9MzYwMCAgCitSZWFkb25seSwgc3Rl
cD0zNjAwICAKK3RleHQtYWxpZ246IAordGV4dC10cmFuc2Zvcm06IAorYmFja2dyb3VuZCwgY29s
b3I6IAorZm9udC1zaXplLCBmb250LXdlaWdodDogCitmb250LXNpemUgd2l0aCBmaXhlZCBpbnB1
dCB3aWR0aDogCitGaXhlZCBpbnB1dCBoZWlnaHQ6IAorLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU6
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL3Rp
bWUvdGltZS1pbnB1dC1yZW5kZXJpbmctYmFzaWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL3RpbWUvdGltZS1pbnB1dC1yZW5kZXJpbmctYmFz
aWMtZXhwZWN0ZWQudHh0CmluZGV4IGU1NTkxZjdkNzViY2M5MTY0NTcwZDEyZTA3ZTI4ZjZlNjI4
NDQ4NDQuLmE5MjA3ZTlhZGMwZjhkYjEzNjFkYzc0ZmYyMjFlNWYwZmQ0NDI5MjIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9mb3Jtcy90aW1lL3RpbWUtaW5w
dXQtcmVuZGVyaW5nLWJhc2ljLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL2Zhc3QvZm9ybXMvdGltZS90aW1lLWlucHV0LXJlbmRlcmluZy1iYXNpYy1leHBl
Y3RlZC50eHQKQEAgLTMsMTggKzMsMTAgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBs
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDAp
IHNpemUgODAweDYwMAogICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4
NAotICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxMTAsMykgc2l6ZSA0eDE4Ci0gICAgICAg
IHRleHQgcnVuIGF0ICgxMTAsMykgd2lkdGggNDogIiAiCisgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDExMCwwKSBzaXplIDR4MTgKKyAgICAgICAgdGV4dCBydW4gYXQgKDExMCwwKSB3aWR0
aCA0OiAiICIKICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAotbGF5
ZXIgYXQgKDgsMTApIHNpemUgMTEweDIxIGNsaXAgYXQgKDEwLDEyKSBzaXplIDEwNngxNwotICBS
ZW5kZXJGbGV4aWJsZUJveCB7SU5QVVR9IGF0ICgwLDIpIHNpemUgMTEweDIxIFtiZ2NvbG9yPSNG
RkZGRkZdIFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCi0gICAgUmVuZGVyQmxvY2sge0RJ
Vn0gYXQgKDcsNCkgc2l6ZSA0M3gxMwotICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgNDN4MTMKLSAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDM6ICI5OjQxIEFN
IgotbGF5ZXIgYXQgKDEyMiwxMCkgc2l6ZSAxMTB4MjEgY2xpcCBhdCAoMTI0LDEyKSBzaXplIDEw
NngxNwotICBSZW5kZXJGbGV4aWJsZUJveCB7SU5QVVR9IGF0ICgxMTQsMikgc2l6ZSAxMTB4MjEg
W2JnY29sb3I9I0ZGRkZGRl0gW2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KLSAgICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoNDAsNCkgc2l6ZSA0M3gxMwotICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgNDN4MTMKLSAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
MTg6ICJBTSIKLSAgICAgICAgdGV4dCBydW4gYXQgKDE3LDApIHdpZHRoIDQgUlRMOiAiICIKLSAg
ICAgICAgdGV4dCBydW4gYXQgKDIwLDApIHdpZHRoIDIzOiAiOTo0MSIKK2xheWVyIGF0ICg4LDE5
KSBzaXplIDExMHg2IGNsaXAgYXQgKDEwLDIxKSBzaXplIDEwNngyCisgIFJlbmRlckZsZXhpYmxl
Qm94IHtJTlBVVH0gYXQgKDAsMTEpIHNpemUgMTEweDYgW2JnY29sb3I9I0ZGRkZGRl0gW2JvcmRl
cjogKDJweCBpbnNldCAjMDAwMDAwKV0KK2xheWVyIGF0ICgxMjIsMTkpIHNpemUgMTEweDYgY2xp
cCBhdCAoMTI0LDIxKSBzaXplIDEwNngyCisgIFJlbmRlckZsZXhpYmxlQm94IHtJTlBVVH0gYXQg
KDExNCwxMSkgc2l6ZSAxMTB4NiBbYmdjb2xvcj0jRkZGRkZGXSBbYm9yZGVyOiAoMnB4IGluc2V0
ICMwMDAwMDApXQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407499</attachid>
            <date>2020-08-28 14:14:50 -0700</date>
            <delta_ts>2020-08-28 14:26:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215155-20200828171449.patch</filename>
            <type>text/plain</type>
            <size>86153</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmEyMTk1N2FmZTk0NDQ5
N2ExZmIzZjg2MjRkZmFlMjcxMTg1ZGRjOC4uMTQwN2UwNjEzZDliNzkzNzVjMWUzNDJkZDk0ZWUw
N2EwYTFmNTMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzNSBAQAorMjAyMC0wOC0yNSAgQWRp
dHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBEYXRl
IGlucHV0cyBzaG91bGQgY29udGFpbiBlZGl0YWJsZSBjb21wb25lbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUxNTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHksIHVzZXJzIGFyZSB1
bmFibGUgdG8gZWRpdCB0aGUgdmFsdWVzIGluIGRhdGUgYW5kIHRpbWUgaW5wdXQgdHlwZXMuCisg
ICAgICAgIFRvIG1hdGNoIHN5c3RlbSBkYXRlIGNvbnRyb2xzLCB1c2VycyBzaG91bGQgYmUgYWJs
ZSB0byBzZWxlY3QgYW5kIGVkaXQKKyAgICAgICAgaW5kaXZpZHVhbCBjb21wb25lbnRzIG9mIHRo
ZSBpbnB1dC4gRm9yIGV4YW1wbGUsIDxpbnB1dCB0eXBlPSJkYXRlIj4gc2hvdWxkCisgICAgICAg
IGNvbnRhaW4gYW4gZWRpdGFibGUgeWVhciwgbW9udGgsIGFuZCBkYXkgY29udHJvbC4KKworICAg
ICAgICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbmFsaXR5IHdhcyBwcmVzZW50IGluIFdlYktpdCwg
dXAgdW50aWwgaXQgd2FzIHJlbW92ZWQKKyAgICAgICAgaW4gcjE1MDg3Ni4gUHJldmlvdXNseSBr
bm93biBhcyAiSU5QVVRfTVVMVElQTEVfRklFTERTX1VJIiwgdGhlIGZlYXR1cmUgd2FzCisgICAg
ICAgIHJlbW92ZWQgYXMgaXQgd2FzIG9ubHkgdXNlZCBieSBDaHJvbWl1bSBwb3J0LiBIb3dldmVy
LCBtdWNoIG9mIHRoZSByZW1vdmVkCisgICAgICAgIGxvZ2ljIHJlbWFpbnMgdXNlZnVsIGFuZCBp
cyByZXN1cmZhY2VkIGluIHRoaXMgcGF0Y2guIE1vZGlmaWNhdGlvbnMgd2VyZSBtYWRlCisgICAg
ICAgIHRvIHVwZGF0ZSB0aGUgY29kZSB0byBmb2xsb3cgY3VycmVudCBXZWJLaXQgcHJhY3RpY2Vz
LgorCisgICAgICAgIERhdGVUaW1lRWRpdEVsZW1lbnQgaXMgYSB3cmFwcGVyIGVsZW1lbnQgdGhh
dCBjb250YWlucyBpbmRpdmlkdWFsIGZpZWxkcy4KKyAgICAgICAgVGhlIGZpZWxkcyBhcmUgYWxs
IERhdGVUaW1lRmllbGRFbGVtZW50cy4gTm90ZSB0aGF0IERhdGVUaW1lRmllbGRFbGVtZW50cwor
ICAgICAgICBhcmUgZnVydGhlciBzcGVjaWFsaXplZCBpbnRvIERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudCAoZm9yIGludGVncmFsCisgICAgICAgIHZhbHVlcykgYW5kIERhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQgKGZvciBzeW1ib2xpYyB2YWx1ZXMgc3VjaCBhcyBBLk0KKyAgICAgICAg
YW5kIFAuTSkuIERhdGVUaW1lRWRpdEVsZW1lbnQgYnVpbGRzIHRoZSBjb250cm9sIHVzaW5nIHRo
ZSB2aXNpdG9yIHBhdHRlcm4KKyAgICAgICAgYW5kIGV4aXN0aW5nIHBhcnNpbmcgbG9naWMgY29u
dGFpbmVkIGluIERhdGVUaW1lRm9ybWF0LgorCisgICAgICAgIEluIG9yZGVyIHRvIHJlZHVjZSB0
aGUgcGF0Y2ggc2l6ZSwgdGhpcyBwYXRjaCBvbmx5IHNldHMgdXAgdGhlIHJlbmRlcmluZworICAg
ICAgICBhbmQgbGF5b3V0IG9mIG11bHRpcGxlIGZpZWxkcyBmb3IgPGlucHV0IHR5cGU9ImRhdGUi
Pi4gVXBjb21pbmcgcGF0Y2hlcyB3aWxsCisgICAgICAgIGFkZCByZW5kZXJpbmcgZm9yIG90aGVy
IGRhdGUvdGltZSBpbnB1dCB0eXBlcyBhbmQgaW50cm9kdWNlIGVkaXRhYmlsaXR5LgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZm9ybXMvZGF0ZS9kYXRlLXBzZXVkby1lbGVtZW50cy5odG1sCisKKyAg
ICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogY3NzL2h0bWwuY3NzOgorICAgICAgICAoaW5wdXQ6Oi13ZWJr
aXQtZGF0ZXRpbWUtZWRpdCk6CisgICAgICAgIChpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0
LWZpZWxkcy13cmFwcGVyKToKKyAgICAgICAgKGlucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQt
eWVhci1maWVsZCwpOgorICAgICAgICAoaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15ZWFy
LWZpZWxkOmZvY3VzLCk6CisgICAgICAgIChpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LXRl
eHQpOgorICAgICAgICAqIGh0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGb3JtYXRWYWxpZGF0b3I6OnZpc2l0Rmll
bGQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGb3JtYXRWYWxpZGF0b3I6OnZhbGlkYXRl
Rm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5w
dXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaG9v
c2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSk6CisgICAg
ICAgIChXZWJDb3JlOjpCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6dXBkYXRl
SW5uZXJUZXh0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUNob29zZXJPbmx5RGF0ZUFu
ZFRpbWVJbnB1dFR5cGU6OnZhbHVlRm9yRWRpdENvbnRyb2wgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmxvY2FsZUlkZW50aWZp
ZXIgY29uc3QpOgorICAgICAgICAqIGh0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1
dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOgorICAg
ICAgICAqIGh0bWwvRGF0ZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlSW5w
dXRUeXBlOjppc1ZhbGlkRm9ybWF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVJbnB1
dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyBjb25zdCk6CisgICAgICAgICogaHRtbC9EYXRl
SW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OmlzVmFsaWRGb3JtYXQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6c2V0dXBM
YXlvdXRQYXJhbWV0ZXJzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lTG9jYWxJbnB1
dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMgY29uc3QpOgorICAg
ICAgICAqIGh0bWwvTW9udGhJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6aXNWYWxpZEZvcm1hdCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFt
ZXRlcnMgY29uc3QpOgorICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5oOgorICAgICAgICAq
IGh0bWwvV2Vla0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWVrSW5wdXRUeXBl
Ojppc1ZhbGlkRm9ybWF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlZWtJbnB1dFR5cGU6
OnNldHVwTGF5b3V0UGFyYW1ldGVycyBjb25zdCk6CisgICAgICAgICogaHRtbC9XZWVrSW5wdXRU
eXBlLmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0QnVpbGRlcjo6RGF0ZVRpbWVFZGl0
QnVpbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRCdWlsZGVyOjpidWlsZCk6
CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdEZpZWxkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEJ1aWxkZXI6OnZpc2l0TGl0ZXJhbCk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpEYXRlVGltZUVkaXRFbGVtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZpZWxkc1dyYXBwZXJFbGVt
ZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmFkZEZp
ZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpsYXlvdXQpOgorICAgICAgICAo
V2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6bG9jYWxlSWRlbnRpZmllciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpyZXNldEZpZWxkcyk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpzZXRFbXB0eVZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OnZhbHVlIGNvbnN0KToKKyAgICAgICAg
KiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGh0
bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUpOgorICAgICAgICAo
V2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmxvY2FsZUZvck93bmVyIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50Ojpsb2NhbGVJZGVudGlmaWVyIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50Ojp1cGRhdGVWaXNp
YmxlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OnN1cHBv
cnRzRm9jdXMgY29uc3QpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVt
ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50
cy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6
OkRhdGVUaW1lRGF5RmllbGRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRGF5
RmllbGRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVEYXlGaWVs
ZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTW9u
dGhGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudDo6RGF0ZVRpbWVTeW1i
b2xpY01vbnRoRmllbGRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9s
aWNNb250aEZpZWxkRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
U3ltYm9saWNNb250aEZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50OjpEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0
ZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmg6IEFkZGVk
LgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpE
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50Ojpmb3JtYXRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6Omhhc1ZhbHVlIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6aW5pdGlhbGl6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnNldEVtcHR5VmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpzZXRWYWx1
ZUFzSW50ZWdlcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1l
bnQ6OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudDo6dmFsdWVBc0ludGVnZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVOdW1lcmljRmllbGRFbGVtZW50Ojp2aXNpYmxlVmFsdWUgY29uc3QpOgorICAgICAgICAqIGh0
bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAg
KiBodG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjptYWtlVmlzaWJsZUVtcHR5VmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojpo
YXNWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRF
bGVtZW50Ojppbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNG
aWVsZEVsZW1lbnQ6OnNldEVtcHR5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVT
eW1ib2xpY0ZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0ludGVnZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6dmFsdWUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6dmFsdWVBc0ludGVnZXIgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6dmlz
aWJsZUVtcHR5VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xp
Y0ZpZWxkRWxlbWVudDo6dmlzaWJsZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL3NoYWRv
dy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6c3ltYm9sc1NpemUgY29uc3QpOgorCiAy
MDIwLTA4LTI0ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbbWFjT1NdIFNob3cgcGlja2VyIGZvciBkYXRlIGFuZCBkYXRldGltZS1sb2NhbCBpbnB1dCB0
eXBlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAppbmRleCAwOWQ1MDNmZTRjNmM0ZjgxNzQ4NzkzNzNlYmNjNTUzODBl
NjFhMzljLi40MTA5ODZhODc0ZmM1NzliNjZkZDhiZWJiNGMwOGZlNTBmNDJlMWIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dApAQCAtMTMxMSw2ICsxMzExLDExIEBAIGh0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxl
Z2F0ZS5jcHAKIGh0bWwvc2hhZG93L0F1dG9GaWxsQnV0dG9uRWxlbWVudC5jcHAKIGh0bWwvc2hh
ZG93L0RhdGFMaXN0QnV0dG9uRWxlbWVudC5jcHAKIGh0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJD
b250cm9sLmNwcAoraHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKK2h0bWwvc2hh
ZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmNwcAoraHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVs
ZW1lbnRzLmNwcAoraHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcAor
aHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAKIGh0bWwvc2hhZG93
L01lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwCiBodG1sL3NoYWRvdy9Q
cm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwCiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMjUwMTgzYmZjMTJlOTgzYzlkNDMyMjhhNDE5Mzk2ZTdiOTU3OGExZC4uM2QyMGU5
MTcxMzY4YTNhYTYzZmQ3Y2E4MzhiODNhZTk0ZTMzMDQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA4MSw2ICs1MDgxLDEx
IEBACiAJCUU1OURENEI4MjEwOTgyODcwMDNDOEI0NyAvKiBMaXN0QnV0dG9uQXJyb3cucG5nIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTlERDRCNzIx
MDk4Mjg1MDAzQzhCNDcgLyogTGlzdEJ1dHRvbkFycm93LnBuZyAqLzsgfTsKIAkJRTVCQTdENjMx
NTE0MzdDQTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVCQTdENjIxNTE0MzdDQTAwRkUxRTNGIC8qIExl
bmd0aEZ1bmN0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUU1QzU5QTlBMjREMEUxQUEwMDNCODZFMSAvKiBEYXRlVGltZUNob29zZXJQYXJh
bWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NUM1OUE5OTI0RDBFMUFBMDAzQjg2RTEgLyogRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUU1RjA2QUU3
MjRENDg0N0IwMEJCQzRGOCAvKiBEYXRlVGltZUZpZWxkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVGMDZBRTUyNEQ0ODQ3QjAwQkJDNEY4
IC8qIERhdGVUaW1lRmllbGRFbGVtZW50LmggKi87IH07CisJCUU1RjA2QUVCMjRENDlCRjcwMEJC
QzRGOCAvKiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1RjA2QUU5MjRENDlCRjcwMEJCQzRGOCAvKiBE
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCAqLzsgfTsKKwkJRTVGMDZBRUYyNEQ0QTYzNzAw
QkJDNEY4IC8qIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1RjA2QUVEMjRENEE2MzcwMEJCQzRGOCAv
KiBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmggKi87IH07CisJCUU1RjA2QUYzMjRENEFB
RTQwMEJCQzRGOCAvKiBEYXRlVGltZUZpZWxkRWxlbWVudHMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1RjA2QUYxMjRENEFBRTQwMEJCQzRGOCAvKiBE
YXRlVGltZUZpZWxkRWxlbWVudHMuaCAqLzsgfTsKKwkJRTVGMDZBRjcyNEQ0QkI1NjAwQkJDNEY4
IC8qIERhdGVUaW1lRWRpdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU1RjA2QUY1MjRENEJCNTYwMEJCQzRGOCAvKiBEYXRlVGltZUVkaXRF
bGVtZW50LmggKi87IH07CiAJCUU3MTQ2N0IzMjRBQkFFRjIwMEZCMkY1MCAvKiBBdWRpb05vZGVP
cHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NzE0NjdCMTI0QUJBRUYxMDBGQjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5oICovOyB9OwogCQlF
NzE0NjdCNjI0QUJBRjFEMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTcxNDY3QjUyNEFCQUYxRDAwRkIyRjUw
IC8qIFBhbm5lck9wdGlvbnMuaCAqLzsgfTsKIAkJRTc1NUU4OTIyNEM3NDM0QjAwOUY3QzIzIC8q
IFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNzU1RTg4RjI0Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZl
Q29uc3RyYWludHMuaCAqLzsgfTsKQEAgLTE1OTI2LDYgKzE1OTMxLDE2IEBACiAJCUU1OURENEI3
MjEwOTgyODUwMDNDOEI0NyAvKiBMaXN0QnV0dG9uQXJyb3cucG5nICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gTGlzdEJ1
dHRvbkFycm93LnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTVCQTdENjIxNTE0
MzdDQTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBMZW5ndGhGdW5jdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTVDNTlBOTkyNEQwRTFBQTAwM0I4NkUxIC8qIERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0ZVRpbWVDaG9vc2VyUGFyYW1l
dGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNUYwNkFFNTI0RDQ4NDdCMDBC
QkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0ZVRpbWVG
aWVsZEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVGMDZBRTYyNEQ0
ODQ3QjAwQkJDNEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IERhdGVUaW1lRmllbGRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTVGMDZBRTkyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVGMDZBRUEyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVU
aW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRlVGltZU51
bWVyaWNGaWVsZEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNUYw
NkFFRDI0RDRBNjM3MDBCQkM0RjggLyogRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUU1RjA2QUVFMjRENEE2MzcwMEJCQzRGOCAvKiBEYXRlVGltZVN5
bWJvbGljRmllbGRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNUYwNkFG
MTI0RDRBQUU0MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERhdGVUaW1lRmllbGRFbGVtZW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFNUYwNkFGMjI0RDRBQUU0MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IERhdGVUaW1lRmllbGRFbGVtZW50cy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUU1RjA2QUY1MjRENEJCNTYwMEJCQzRGOCAvKiBEYXRlVGltZUVk
aXRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGVUaW1lRWRpdEVsZW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVGMDZBRjYyNEQ0QkI1NjAwQkJDNEY4IC8qIERhdGVU
aW1lRWRpdEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGF0ZVRpbWVFZGl0RWxlbWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU3MTQ2N0IxMjRBQkFFRjEwMEZC
MkY1MCAvKiBBdWRpb05vZGVPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEF1ZGlvTm9kZU9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTcx
NDY3QjQyNEFCQUYwQjAwRkIyRjUwIC8qIEF1ZGlvTm9kZU9wdGlvbnMuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEF1ZGlv
Tm9kZU9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNzE0NjdCNTI0
QUJBRjFEMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQYW5uZXJPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xODY3NSw2ICsxODY5MCwxNiBAQAogCQkJCTdDMUU5NzI1MUE5Rjk4MzQwMDdCRjBGQiAvKiBB
dXRvRmlsbEJ1dHRvbkVsZW1lbnQuY3BwICovLAogCQkJCTdDMUU5NzI2MUE5Rjk4MzQwMDdCRjBG
QiAvKiBBdXRvRmlsbEJ1dHRvbkVsZW1lbnQuaCAqLywKIAkJCQlFNThCNDVCODIwQUQwN0REMDA5
OTEwMjUgLyogRGF0YUxpc3RCdXR0b25FbGVtZW50LmggKi8sCisJCQkJRTVGMDZBRjYyNEQ0QkI1
NjAwQkJDNEY4IC8qIERhdGVUaW1lRWRpdEVsZW1lbnQuY3BwICovLAorCQkJCUU1RjA2QUY1MjRE
NEJCNTYwMEJCQzRGOCAvKiBEYXRlVGltZUVkaXRFbGVtZW50LmggKi8sCisJCQkJRTVGMDZBRTYy
NEQ0ODQ3QjAwQkJDNEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50LmNwcCAqLywKKwkJCQlFNUYw
NkFFNTI0RDQ4NDdCMDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCAqLywKKwkJCQlF
NUYwNkFGMjI0RDRBQUU0MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcCAqLywK
KwkJCQlFNUYwNkFGMTI0RDRBQUU0MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmgg
Ki8sCisJCQkJRTVGMDZBRUEyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudC5jcHAgKi8sCisJCQkJRTVGMDZBRTkyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudC5oICovLAorCQkJCUU1RjA2QUVFMjRENEE2MzcwMEJCQzRGOCAv
KiBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcCAqLywKKwkJCQlFNUYwNkFFRDI0RDRB
NjM3MDBCQkM0RjggLyogRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oICovLAogCQkJCUE3
QzlBQkY2MTM1N0EzQkYwMEY1NTAzRiAvKiBEZXRhaWxzTWFya2VyQ29udHJvbC5jcHAgKi8sCiAJ
CQkJQTdDOUFCRjcxMzU3QTNCRjAwRjU1MDNGIC8qIERldGFpbHNNYXJrZXJDb250cm9sLmggKi8s
CiAJCQkJNTEwMTkyRDMxOEI2QjlCNzAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVu
dC5jcHAgKi8sCkBAIC0zMDc1Myw4ICszMDc3OCwxMyBAQAogCQkJCTM3QzczOEYzMUVEQkRFOEEw
MDNGMkIwQiAvKiBEYXRlVGltZUNob29zZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QzczOEY0
MUVEQkRFOEQwMDNGMkIwQiAvKiBEYXRlVGltZUNob29zZXJDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUU1QzU5QTlBMjREMEUxQUEwMDNCODZFMSAvKiBEYXRlVGltZUNob29zZXJQYXJhbWV0
ZXJzLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNUYwNkFGNzI0RDRCQjU2MDBCQkM0RjggLyogRGF0
ZVRpbWVFZGl0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTVGMDZBRTcyNEQ0ODQ3QjAw
QkJDNEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlFNUYw
NkFGMzI0RDRBQUU0MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0NTNFQjYzNzE1OUM1NzA0MDAwMDFCQjcgLyogRGF0ZVRpbWVGb3JtYXQuaCBp
biBIZWFkZXJzICovLAogCQkJCUY1NUIzREJBMTI1MUYxMkQwMDNFRjI2OSAvKiBEYXRlVGltZUxv
Y2FsSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNUYwNkFFQjI0RDQ5QkY3MDBCQkM0
RjggLyogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlF
NUYwNkFFRjI0RDRBNjM3MDBCQkM0RjggLyogRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2QTEyQkUxQTAwOTIzNzAwQzZERTcyIC8qIERlYnVnUGFn
ZU92ZXJsYXlzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NUZFQTVEMDE1NkRERThDMDA2NTQxMDEg
LyogRGVjaW1hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzE1QUQ3MjAyMDUwNTEzMjAwRDU5MkRD
IC8qIERlY2xhcmF0aXZlQW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcwpp
bmRleCBkYWY4OTE5ZWIxNmQ3M2RjN2YwNTlkMzFmMDAzNjNjNWJlODcyMTJlLi5kZmM1NzgzZWRl
NjQ0ZjljYTYyZjU3OWFhMzA2NWQ3NjM3MTU0OTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvaHRtbC5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCkBAIC00ODQs
NiArNDg0LDM5IEBAIGlucHV0Ojotd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFsdWUgewogI2VuZGlm
CiB9CiAKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQgeworICAgIGRpc3BsYXk6IGlubGlu
ZS1ibG9jazsKKyAgICBvdmVyZmxvdzogaGlkZGVuOworfQorCitpbnB1dDo6LXdlYmtpdC1kYXRl
dGltZS1lZGl0LWZpZWxkcy13cmFwcGVyIHsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cit9
CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQteWVhci1maWVsZCwKK2lucHV0Ojotd2Vi
a2l0LWRhdGV0aW1lLWVkaXQtbW9udGgtZmllbGQsCitpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1l
ZGl0LWRheS1maWVsZCB7CisgICAgZGlzcGxheTogaW5saW5lOworICAgIHBhZGRpbmc6IDFweDsK
K30KKworaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15ZWFyLWZpZWxkOmZvY3VzLAoraW5w
dXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1tb250aC1maWVsZDpmb2N1cywKK2lucHV0Ojotd2Vi
a2l0LWRhdGV0aW1lLWVkaXQtZGF5LWZpZWxkOmZvY3VzIHsKKyNpZiBkZWZpbmVkKFdURl9QTEFU
Rk9STV9DT0NPQSkgJiYgV1RGX1BMQVRGT1JNX0NPQ09BCisgICAgYmFja2dyb3VuZC1jb2xvcjog
LWFwcGxlLXN5c3RlbS1jb250cm9sLWFjY2VudDsKKyAgICBjb2xvcjogd2hpdGU7CisjZWxzZQor
ICAgIGJhY2tncm91bmQtY29sb3I6IGhpZ2hsaWdodDsKKyAgICBjb2xvcjogaGlnaGxpZ2h0dGV4
dDsKKyNlbmRpZgorICAgIG91dGxpbmU6IG5vbmU7Cit9CisKK2lucHV0Ojotd2Via2l0LWRhdGV0
aW1lLWVkaXQtdGV4dCB7CisgICAgZGlzcGxheTogaW5saW5lOworfQorCiBpbnB1dDo6LXdlYmtp
dC1pbm5lci1zcGluLWJ1dHRvbiB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBpbm5lci1zcGlu
LWJ1dHRvbjsKICAgICBkaXNwbGF5OiBibG9jazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXgg
NDI0YjkyOTQ4YjQzMTg0NDBiYzUxYzU4ZTgwYmVkNGI5Y2NmOGI0NC4uMmE4NDQyMDUxNzYxMWI5
ZTVjZDhjNWMyNmY3NjFmNjJlNTUzNDU5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTMx
LDE2ICszMSw4OCBAQAogCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVD
aG9vc2VyUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIkRhdGVUaW1lRm9ybWF0LmgiCiAjaW5jbHVk
ZSAiSFRNTERpdkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTG9jYWxlLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9v
dC5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5o
IgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK2NsYXNzIERhdGVUaW1lRm9ybWF0VmFsaWRhdG9yIGZpbmFsIDogcHVibGljIERhdGVUaW1l
Rm9ybWF0OjpUb2tlbkhhbmRsZXIgeworcHVibGljOgorICAgIERhdGVUaW1lRm9ybWF0VmFsaWRh
dG9yKCkgeyB9CisKKyAgICB2b2lkIHZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlw
ZSwgaW50KTsKKyAgICB2b2lkIHZpc2l0TGl0ZXJhbChjb25zdCBTdHJpbmcmKSB7IH0KKworICAg
IGJvb2wgdmFsaWRhdGVGb3JtYXQoY29uc3QgU3RyaW5nJiBmb3JtYXQsIGNvbnN0IEJhc2VDaG9v
c2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlJik7CisKK3ByaXZhdGU6CisgICAgT3B0aW9uU2V0
PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+IG1fcmVzdWx0czsKK307CisKK3ZvaWQg
RGF0ZVRpbWVGb3JtYXRWYWxpZGF0b3I6OnZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxk
VHlwZSBmaWVsZFR5cGUsIGludCkKK3sKKyAgICBzd2l0Y2ggKGZpZWxkVHlwZSkgeworICAgIGNh
c2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVllYXI6CisgICAgICAgIG1fcmVzdWx0cy5hZGQo
RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzWWVhcik7CisgICAgICAgIGJyZWFr
OworCisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTW9udGg6CisgICAgY2FzZSBE
YXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTW9udGhTdGFuZEFsb25lOgorICAgICAgICBtX3Jlc3Vs
dHMuYWRkKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc01vbnRoKTsKKyAgICAg
ICAgYnJlYWs7CisKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVXZWVrT2ZZZWFy
OgorICAgICAgICBtX3Jlc3VsdHMuYWRkKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6
Okhhc1dlZWspOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZp
ZWxkVHlwZURheU9mTW9udGg6CisgICAgICAgIG1fcmVzdWx0cy5hZGQoRGF0ZVRpbWVGb3JtYXRW
YWxpZGF0aW9uUmVzdWx0czo6SGFzRGF5KTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIERh
dGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVQZXJpb2Q6CisgICAgICAgIG1fcmVzdWx0cy5hZGQoRGF0
ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzQU1QTSk7CisgICAgICAgIGJyZWFrOwor
CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjExOgorICAgIGNhc2UgRGF0
ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIxMjoKKyAgICAgICAgbV9yZXN1bHRzLmFkZChEYXRl
VGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNIb3VyKTsKKyAgICAgICAgYnJlYWs7CisK
KyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMjM6CisgICAgY2FzZSBEYXRl
VGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjI0OgorICAgICAgICBtX3Jlc3VsdHMuYWRkKERhdGVU
aW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0hvdXIpOworICAgICAgICBtX3Jlc3VsdHMu
YWRkKERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0FNUE0pOworICAgICAgICBi
cmVhazsKKworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1pbnV0ZToKKyAgICAg
ICAgbV9yZXN1bHRzLmFkZChEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNNaW51
dGUpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlw
ZVNlY29uZDoKKyAgICAgICAgbV9yZXN1bHRzLmFkZChEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25S
ZXN1bHRzOjpIYXNTZWNvbmQpOworICAgICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAg
ICAgIGJyZWFrOworICAgIH0KK30KKworYm9vbCBEYXRlVGltZUZvcm1hdFZhbGlkYXRvcjo6dmFs
aWRhdGVGb3JtYXQoY29uc3QgU3RyaW5nJiBmb3JtYXQsIGNvbnN0IEJhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlJiBpbnB1dFR5cGUpCit7CisgICAgaWYgKCFEYXRlVGltZUZvcm1h
dDo6cGFyc2UoZm9ybWF0LCAqdGhpcykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1
cm4gaW5wdXRUeXBlLmlzVmFsaWRGb3JtYXQobV9yZXN1bHRzKTsKK30KKwogQmFzZUNob29zZXJP
bmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6On5CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0
VHlwZSgpCiB7CiAgICAgY2xvc2VEYXRlVGltZUNob29zZXIoKTsKQEAgLTc5LDI3ICsxNTEsNTUg
QEAgYm9vbCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6aXNQcmVzZW50aW5n
QXR0YWNoZWRWaWV3KCkgY29uc3QKIAogdm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlu
cHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2YWx1ZUNvbnRhaW5lclBzZXVkbygiLXdl
YmtpdC1kYXRlLWFuZC10aW1lLXZhbHVlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwotCiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7Ci0gICAgYXV0byB2YWx1ZUNvbnRhaW5lciA9
IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5kb2N1bWVudCgpKTsKLSAgICB2YWx1
ZUNvbnRhaW5lci0+c2V0UHNldWRvKHZhbHVlQ29udGFpbmVyUHNldWRvKTsKLSAgICBlbGVtZW50
KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQodmFsdWVDb250YWluZXIpOwor
CisgICAgYXV0byYgZWxlbWVudCA9ICp0aGlzLT5lbGVtZW50KCk7CisgICAgYXV0byYgZG9jdW1l
bnQgPSBlbGVtZW50LmRvY3VtZW50KCk7CisKKyAgICBpZiAoZG9jdW1lbnQuc2V0dGluZ3MoKS5k
YXRlVGltZUlucHV0c0VkaXRhYmxlQ29tcG9uZW50c0VuYWJsZWQoKSkgeworICAgICAgICBtX2Rh
dGVUaW1lRWRpdEVsZW1lbnQgPSBEYXRlVGltZUVkaXRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQs
ICp0aGlzKTsKKyAgICAgICAgZWxlbWVudC51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENo
aWxkKCptX2RhdGVUaW1lRWRpdEVsZW1lbnQpOworICAgIH0gZWxzZSB7CisgICAgICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdmFsdWVDb250YWlu
ZXJQc2V1ZG8oIi13ZWJraXQtZGF0ZS1hbmQtdGltZS12YWx1ZSIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgYXV0byB2YWx1ZUNvbnRhaW5lciA9IEhUTUxEaXZF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICB2YWx1ZUNvbnRhaW5lci0+c2V0UHNl
dWRvKHZhbHVlQ29udGFpbmVyUHNldWRvKTsKKyAgICAgICAgZWxlbWVudC51c2VyQWdlbnRTaGFk
b3dSb290KCktPmFwcGVuZENoaWxkKHZhbHVlQ29udGFpbmVyKTsKKyAgICB9CiAgICAgdXBkYXRl
SW5uZXJUZXh0VmFsdWUoKTsKIH0KIAordm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlu
cHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUoKQoreworICAgIElucHV0VHlwZTo6ZGVzdHJv
eVNoYWRvd1N1YnRyZWUoKTsKKyAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQgPSBudWxscHRyOwor
fQorCiB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjp1cGRhdGVJbm5l
clRleHRWYWx1ZSgpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7Ci0gICAgUmVmUHRyPE5vZGU+
IG5vZGUgPSBlbGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOwot
ICAgIGlmICghaXM8SFRNTEVsZW1lbnQ+KG5vZGUpKQorICAgIGlmICghbV9kYXRlVGltZUVkaXRF
bGVtZW50KSB7CisgICAgICAgIGF1dG8gbm9kZSA9IGVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93
Um9vdCgpLT5maXJzdENoaWxkKCk7CisgICAgICAgIGlmICghaXM8SFRNTEVsZW1lbnQ+KG5vZGUp
KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBTdHJpbmcgZGlzcGxheVZhbHVlID0gdmlz
aWJsZVZhbHVlKCk7CisgICAgICAgIGlmIChkaXNwbGF5VmFsdWUuaXNFbXB0eSgpKSB7CisgICAg
ICAgICAgICAvLyBOZWVkIHRvIHB1dCBzb21ldGhpbmcgdG8ga2VlcCB0ZXh0IGJhc2VsaW5lLgor
ICAgICAgICAgICAgZGlzcGxheVZhbHVlID0gIiAiX3M7CisgICAgICAgIH0KKyAgICAgICAgZG93
bmNhc3Q8SFRNTEVsZW1lbnQ+KCpub2RlKS5zZXRJbm5lclRleHQoZGlzcGxheVZhbHVlKTsKICAg
ICAgICAgcmV0dXJuOwotICAgIFN0cmluZyBkaXNwbGF5VmFsdWUgPSB2aXNpYmxlVmFsdWUoKTsK
LSAgICBpZiAoZGlzcGxheVZhbHVlLmlzRW1wdHkoKSkgewotICAgICAgICAvLyBOZWVkIHRvIHB1
dCBzb21ldGhpbmcgdG8ga2VlcCB0ZXh0IGJhc2VsaW5lLgotICAgICAgICBkaXNwbGF5VmFsdWUg
PSAiICJfczsKICAgICB9Ci0gICAgZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KCpub2RlKS5zZXRJbm5l
clRleHQoZGlzcGxheVZhbHVlKTsKKworICAgIERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBh
cmFtZXRlcnMgbGF5b3V0UGFyYW1ldGVycyhlbGVtZW50KCktPmxvY2FsZSgpKTsKKyAgICBzZXR1
cExheW91dFBhcmFtZXRlcnMobGF5b3V0UGFyYW1ldGVycyk7CisKKyAgICBpZiAoIURhdGVUaW1l
Rm9ybWF0VmFsaWRhdG9yKCkudmFsaWRhdGVGb3JtYXQobGF5b3V0UGFyYW1ldGVycy5kYXRlVGlt
ZUZvcm1hdCwgKnRoaXMpKQorICAgICAgICBsYXlvdXRQYXJhbWV0ZXJzLmRhdGVUaW1lRm9ybWF0
ID0gbGF5b3V0UGFyYW1ldGVycy5mYWxsYmFja0RhdGVUaW1lRm9ybWF0OworCisgICAgaWYgKGF1
dG8gZGF0ZSA9IHBhcnNlVG9EYXRlQ29tcG9uZW50cyhlbGVtZW50KCktPnZhbHVlKCkpKQorICAg
ICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnNldFZhbHVlQXNEYXRlKGxheW91dFBhcmFtZXRl
cnMsICpkYXRlKTsKKyAgICBlbHNlCisgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+c2V0
RW1wdHlWYWx1ZShsYXlvdXRQYXJhbWV0ZXJzKTsKIH0KIAogdm9pZCBCYXNlQ2hvb3Nlck9ubHlE
YXRlQW5kVGltZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCB2
YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvcikKQEAgLTE3
Miw2ICsyNzIsMTggQEAgdm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJgogICAgIEJhc2VEYXRlQW5kVGlt
ZUlucHV0VHlwZTo6YXR0cmlidXRlQ2hhbmdlZChuYW1lKTsKIH0KIAorU3RyaW5nIEJhc2VDaG9v
c2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjp2YWx1ZUZvckVkaXRDb250cm9sKCkgY29uc3QK
K3sKKyAgICBBU1NFUlQoZWxlbWVudCgpKTsKKyAgICByZXR1cm4gZWxlbWVudCgpLT52YWx1ZSgp
OworfQorCitBdG9tU3RyaW5nIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjps
b2NhbGVJZGVudGlmaWVyKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoZWxlbWVudCgpKTsKKyAgICBy
ZXR1cm4gZWxlbWVudCgpLT5jb21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKTsKK30KKwogfQogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0
ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5
RGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAppbmRleCAxNGExZWUwYjMzMjI1MDE3OWI4NzcwMDRhZWU5
MWNhYmViNTA4MDIwLi5iMzE5MzE5MWI0MzZjYmFhYzBlMmE5MzQ0NTJkZGNmY2RiNWRkMmI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1l
SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRl
QW5kVGltZUlucHV0VHlwZS5oCkBAIC0zMiwyMCArMzIsNDMgQEAKICNpbmNsdWRlICJCYXNlRGF0
ZUFuZFRpbWVJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJEYXRlVGltZUNob29zZXIuaCIKICNpbmNs
dWRlICJEYXRlVGltZUNob29zZXJDbGllbnQuaCIKKyNpbmNsdWRlICJEYXRlVGltZUVkaXRFbGVt
ZW50LmgiCisjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlIDogcHVibGljIEJh
c2VEYXRlQW5kVGltZUlucHV0VHlwZSwgcHJpdmF0ZSBEYXRlVGltZUNob29zZXJDbGllbnQgewor
ZW51bSBjbGFzcyBEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzIDogdWludDhfdCB7Cisg
ICAgSGFzWWVhciA9IDEgPDwgMCwKKyAgICBIYXNNb250aCA9IDEgPDwgMSwKKyAgICBIYXNXZWVr
ID0gMSA8PCAyLAorICAgIEhhc0RheSA9IDEgPDwgMywKKyAgICBIYXNBTVBNID0gMSA8PCA0LAor
ICAgIEhhc0hvdXIgPSAxIDw8IDUsCisgICAgSGFzTWludXRlID0gMSA8PCA2LAorICAgIEhhc1Nl
Y29uZCA9IDEgPDwgNywKK307CisKK2NsYXNzIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5w
dXRUeXBlIDogcHVibGljIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSwgcHJpdmF0ZSBEYXRlVGlt
ZUNob29zZXJDbGllbnQsIHByaXZhdGUgRGF0ZVRpbWVFZGl0RWxlbWVudDo6RWRpdENvbnRyb2xP
d25lciB7CitwdWJsaWM6CisgICAgdmlydHVhbCBib29sIGlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0
PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+KSBjb25zdCA9IDA7CisKIHByb3RlY3Rl
ZDoKICAgICBleHBsaWNpdCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZShlbGVtZW50
KSB7IH0KICAgICB+QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUoKTsKIAorICAg
IHZpcnR1YWwgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6
TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0ID0gMDsKKwogcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0
ZUlubmVyVGV4dFZhbHVlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjbG9zZURhdGVUaW1lQ2hvb3Nl
cigpOwogCisgICAgLy8gRGF0ZVRpbWVFZGl0RWxlbWVudDo6RWRpdENvbnRyb2xPd25lciBmdW5j
dGlvbnM6CisgICAgU3RyaW5nIHZhbHVlRm9yRWRpdENvbnRyb2woKSBjb25zdCBmaW5hbDsKKyAg
ICBBdG9tU3RyaW5nIGxvY2FsZUlkZW50aWZpZXIoKSBjb25zdCBmaW5hbDsKKwogICAgIC8vIElu
cHV0VHlwZSBmdW5jdGlvbnM6CiAgICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkZXN0cm95U2hhZG93U3VidHJlZSgpIG92ZXJyaWRlOwogICAgIHZvaWQg
ZGV0YWNoKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29s
IHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50Jikgb3ZlcnJpZGU7CkBAIC02Myw2ICs4Niw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRFbmRDaG9vc2VyKCkgZmluYWw7CiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8RGF0ZVRpbWVDaG9vc2VyPiBtX2RhdGVUaW1lQ2hvb3NlcjsKKyAgICBSZWZQ
dHI8RGF0ZVRpbWVFZGl0RWxlbWVudD4gbV9kYXRlVGltZUVkaXRFbGVtZW50OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
RGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlLmgKaW5kZXggM2UxNzI0NzA2MTMyNWQwYTI4ZTRkMTRjYTk4NDBhZGQyYzVi
NDllMi4uODI3ZDAxYjlmMzZmMjgxNzdhN2MyMGJiZmIxNWYzMjQ5OTIwY2UwNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oCkBAIC01Myw4ICs1
Myw5IEBAIHByb3RlY3RlZDoKICAgICBib29sIGlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRF
dmVudCopIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCiAKLXByaXZhdGU6CiAgICAgdmlydHVhbCBP
cHRpb25hbDxEYXRlQ29tcG9uZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRzKGNvbnN0IFN0cmlu
Z1ZpZXcmKSBjb25zdCA9IDA7CisKK3ByaXZhdGU6CiAgICAgdmlydHVhbCBPcHRpb25hbDxEYXRl
Q29tcG9uZW50cz4gc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSkgY29uc3Qg
PSAwOwogCiAgICAgZG91YmxlIHZhbHVlQXNEYXRlKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcAppbmRleCBhNWQ2ZDllZjI4NzkyMTY4ZmU5Y2ZiZjY2
N2FjMDE0OWRkMzA4MTA0Li5jOTEyYTQwODdiMGE2OTY1NTFkYTkzOWJhNWIzNTViOGNlMzM2MTEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAK
ICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAj
aW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUxvY2FsZS5oIgog
I2luY2x1ZGUgIlN0ZXBSYW5nZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04Niw1ICs4
NywxNiBAQCBib29sIERhdGVJbnB1dFR5cGU6OmlzRGF0ZUZpZWxkKCkgY29uc3QKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAorYm9vbCBEYXRlSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0KE9wdGlvblNl
dDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPiByZXN1bHRzKSBjb25zdAoreworICAg
IHJldHVybiByZXN1bHRzLmNvbnRhaW5zQWxsKHsgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVz
dWx0czo6SGFzWWVhciwgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzTW9udGgs
IERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0RheSB9KTsKK30KKwordm9pZCBE
YXRlSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6
TGF5b3V0UGFyYW1ldGVycyYgbGF5b3V0UGFyYW1ldGVycykgY29uc3QKK3sKKyAgICBsYXlvdXRQ
YXJhbWV0ZXJzLmRhdGVUaW1lRm9ybWF0ID0gbGF5b3V0UGFyYW1ldGVycy5sb2NhbGUuZGF0ZUZv
cm1hdCgpOworICAgIGxheW91dFBhcmFtZXRlcnMuZmFsbGJhY2tEYXRlVGltZUZvcm1hdCA9ICJ5
eXl5LU1NLWRkIl9zOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9EYXRlSW5wdXRUeXBlLmgKaW5kZXggMzM1NTA3NGJlNmQ1ZjJlMmY2Mzg4MDY2MmQz
OTYwNjVkZTY5YmYyYi4uZDg5OTIzMzJmOGE1YjMxZmM2MDA1NTY1MDE1ZmM3MmRlMTIwN2I5OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmgKQEAgLTQ3LDYgKzQ3LDkgQEAgcHJpdmF0
ZToKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRzKGNv
bnN0IFN0cmluZ1ZpZXcmKSBjb25zdCBvdmVycmlkZTsKICAgICBPcHRpb25hbDxEYXRlQ29tcG9u
ZW50cz4gc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBpc0RhdGVGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgYm9vbCBp
c1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPikg
Y29uc3QgZmluYWw7CisgICAgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0
RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0IGZpbmFsOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxv
Y2FsSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0
VHlwZS5jcHAKaW5kZXggZGI2MzkwOGZhNjQ1MmZkZmVlMGIxZTNhNTZmMzY3YzAxYjdjMmQyOS4u
ZWEwZjc4ZmU4MGFlNjZmYzExYmM5NDZmMGE3MzhiN2FiNTNiNTgwMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCkBAIC05NSw2ICs5NSwxNSBA
QCBib29sIERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OmlzRGF0ZVRpbWVMb2NhbEZpZWxkKCkgY29u
c3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpp
c1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPiBy
ZXN1bHRzKSBjb25zdAoreworICAgIHJldHVybiByZXN1bHRzLmNvbnRhaW5zQWxsKHsgRGF0ZVRp
bWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzWWVhciwgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0
aW9uUmVzdWx0czo6SGFzTW9udGgsIERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhh
c0RheSwgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzSG91ciwgRGF0ZVRpbWVG
b3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzTWludXRlIH0pOworfQorCit2b2lkIERhdGVUaW1l
TG9jYWxJbnB1dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50
OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29uc3QKK3sKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2Nh
bElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBl
LmgKaW5kZXggMmMwNDk0OWYwZjBhNmQ5MGYzMjQ4ZTRlZjkwYjgwMDAxOTc0OTRhNS4uZjdmMGFl
NzIyMzNhNjhkMzljN2IyMDNhYzFjMjJlOWI2NTAzM2FhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgKQEAgLTQ5LDYgKzQ5LDkgQEAgcHJpdmF0ZToK
ICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRzKGNvbnN0
IFN0cmluZ1ZpZXcmKSBjb25zdCBmaW5hbDsKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4g
c2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSkgY29uc3QgZmluYWw7CiAgICAg
Ym9vbCBpc0RhdGVUaW1lTG9jYWxGaWVsZCgpIGNvbnN0IGZpbmFsOworCisgICAgYm9vbCBpc1Zh
bGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPikgY29u
c3QgZmluYWw7CisgICAgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxl
bWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0IGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAppbmRleCA5OWNm
YzRjZmUyMDNjZTRlNjQwOTcwZGM5ZTljZTY5ZGI1ZWY3ODg2Li5iODZhNDhjZTYwMjM3MzNjMDIw
NmZmNmY1ZTAxZTQ1OTFjOWY0OGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01v
bnRoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBl
LmNwcApAQCAtMTMzLDYgKzEzMywxNSBAQCB2b2lkIE1vbnRoSW5wdXRUeXBlOjpoYW5kbGVET01B
Y3RpdmF0ZUV2ZW50KEV2ZW50JikKIHsKIH0KIAorYm9vbCBNb250aElucHV0VHlwZTo6aXNWYWxp
ZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4gcmVzdWx0
cykgY29uc3QKK3sKKyAgICByZXR1cm4gcmVzdWx0cy5jb250YWluc0FsbCh7IERhdGVUaW1lRm9y
bWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc1llYXIsIERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJl
c3VsdHM6Okhhc01vbnRoIH0pOworfQorCit2b2lkIE1vbnRoSW5wdXRUeXBlOjpzZXR1cExheW91
dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0
Cit7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L01vbnRoSW5wdXRUeXBlLmgKaW5kZXggNGJiZDExZGQwZTAyNzQwOTU5N2I5MTNhZDliYTNkODQ4
ZTA2Zjc5Ny4uMWVmYzI3YzEyMjQyNWQzMGU3M2MyYWI2ZTVhMzAxYTJkNDg0YmFmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaApAQCAtNTIsNiArNTIsOSBAQCBwcml2YXRlOgog
ICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVu
dHMoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzTW9udGhGaWVsZCgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJy
aWRlOworCisgICAgYm9vbCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZh
bGlkYXRpb25SZXN1bHRzPikgY29uc3QgZmluYWw7CisgICAgdm9pZCBzZXR1cExheW91dFBhcmFt
ZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0IGZpbmFs
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0
VHlwZS5jcHAKaW5kZXggNDM4MmY4NThhZDQyZDlkZWQwMTNlZmMxZjk3Zjk1MGUxZGMxZjQxNC4u
ZjZlNjAyOWFmNGNhYjRiMmY1NGEwZDlmYTgxNWI3NTY4MzJkZGMzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RpbWVJbnB1dFR5cGUuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiSFRNTElu
cHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklucHV0VHlw
ZU5hbWVzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1Mb2NhbGUuaCIKICNpbmNsdWRlICJTdGVwUmFu
Z2UuaCIKICNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJh
cy5oPgpAQCAtMTA4LDYgKzEwOSwxNSBAQCB2b2lkIFRpbWVJbnB1dFR5cGU6OmhhbmRsZURPTUFj
dGl2YXRlRXZlbnQoRXZlbnQmKQogewogfQogCitib29sIFRpbWVJbnB1dFR5cGU6OmlzVmFsaWRG
b3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+IHJlc3VsdHMp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHJlc3VsdHMuY29udGFpbnNBbGwoeyBEYXRlVGltZUZvcm1h
dFZhbGlkYXRpb25SZXN1bHRzOjpIYXNIb3VyLCBEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1
bHRzOjpIYXNNaW51dGUgfSk7Cit9CisKK3ZvaWQgVGltZUlucHV0VHlwZTo6c2V0dXBMYXlvdXRQ
YXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25zdAor
eworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rp
bWVJbnB1dFR5cGUuaAppbmRleCAxZTg2MGMzMTdmZmRjMDFjOWNlYzZmZmI0ZTNkMzQwMjljMDNm
ZmRjLi41ZjdkMTIwZDFiYzk1ODg0YzUzNTgxMmQ2OGM2ODk5NmRlMzAxOWE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RpbWVJbnB1dFR5cGUuaApAQCAtNDksNiArNDksOSBAQCBwcml2YXRlOgogICAgIE9w
dGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91
YmxlKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzVGltZUZpZWxkKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50Jikgb3ZlcnJpZGU7CisK
KyAgICBib29sIGlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlv
blJlc3VsdHM+KSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHNldHVwTGF5b3V0UGFyYW1ldGVycyhE
YXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29uc3QgZmluYWw7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1dlZWtJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNw
cAppbmRleCBmZmE3NjVjY2I1MWEzZmZlY2IxZjM0ZDU1NDI1MTJhYzVhOGEzZWM5Li5jOWE5NjZm
ZjYxNTA4N2E1ZjcxZmM4ZjUwMTc5MmRhMjdkZmM3MTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vl
a0lucHV0VHlwZS5jcHAKQEAgLTg2LDYgKzg2LDE1IEBAIHZvaWQgV2Vla0lucHV0VHlwZTo6aGFu
ZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpCiB7CiB9CiAKK2Jvb2wgV2Vla0lucHV0VHlwZTo6
aXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4g
cmVzdWx0cykgY29uc3QKK3sKKyAgICByZXR1cm4gcmVzdWx0cy5jb250YWluc0FsbCh7IERhdGVU
aW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc1llYXIsIERhdGVUaW1lRm9ybWF0VmFsaWRh
dGlvblJlc3VsdHM6Okhhc1dlZWsgfSk7Cit9CisKK3ZvaWQgV2Vla0lucHV0VHlwZTo6c2V0dXBM
YXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBj
b25zdAoreworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1dlZWtJbnB1dFR5cGUuaAppbmRleCA1MDk4MTc0NGJmZTRlYmI3MTNhZmViODliNmYwZGFk
YTg2MTVhYjgwLi45MTZlMzM1NDZjMzk2MDk4NzIxMTU2NWIxZGM3MGFhZTYzNDhmNTYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaApAQCAtNDgsNiArNDgsOSBAQCBwcml2YXRlOgog
ICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVu
dHMoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzV2Vla0ZpZWxkKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50Jikgb3ZlcnJp
ZGU7CisKKyAgICBib29sIGlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFs
aWRhdGlvblJlc3VsdHM+KSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHNldHVwTGF5b3V0UGFyYW1l
dGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29uc3QgZmluYWw7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkNjdlOTU2YzUz
ZTRjYWUzMTJjMTI0MzdiOGFjZTc1NzQxYjYyYTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcApAQCAtMCwwICsxLDIy
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRhdGVUaW1l
RWRpdEVsZW1lbnQuaCIKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQor
CisjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKKyNpbmNsdWRlICJEYXRlVGltZUZpZWxkRWxl
bWVudHMuaCIKKyNpbmNsdWRlICJEYXRlVGltZUZvcm1hdC5oIgorI2luY2x1ZGUgIkRhdGVUaW1l
U3ltYm9saWNGaWVsZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRl
ICJQbGF0Zm9ybUxvY2FsZS5oIgorI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCitXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRGF0ZVRpbWVFZGl0RWxlbWVudCk7CisKK2NsYXNzIERh
dGVUaW1lRWRpdEJ1aWxkZXIgZmluYWwgOiBwcml2YXRlIERhdGVUaW1lRm9ybWF0OjpUb2tlbkhh
bmRsZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERhdGVUaW1lRWRpdEJ1aWxkZXIpOwor
CitwdWJsaWM6CisgICAgRGF0ZVRpbWVFZGl0QnVpbGRlcihEYXRlVGltZUVkaXRFbGVtZW50Jiwg
Y29uc3QgRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpOworCisgICAgYm9v
bCBidWlsZChjb25zdCBTdHJpbmcmKTsKKworcHJpdmF0ZToKKyAgICAvLyBEYXRlVGltZUZvcm1h
dDo6VG9rZW5IYW5kbGVyIGZ1bmN0aW9uczoKKyAgICB2b2lkIHZpc2l0RmllbGQoRGF0ZVRpbWVG
b3JtYXQ6OkZpZWxkVHlwZSwgaW50KTsKKyAgICB2b2lkIHZpc2l0TGl0ZXJhbChjb25zdCBTdHJp
bmcmKTsKKworICAgIERhdGVUaW1lRWRpdEVsZW1lbnQmIG1fZWRpdEVsZW1lbnQ7CisgICAgY29u
c3QgRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYgbV9wYXJhbWV0ZXJzOwor
fTsKKworRGF0ZVRpbWVFZGl0QnVpbGRlcjo6RGF0ZVRpbWVFZGl0QnVpbGRlcihEYXRlVGltZUVk
aXRFbGVtZW50JiBlbGVtZW50LCBjb25zdCBEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJh
bWV0ZXJzJiBsYXlvdXRQYXJhbWV0ZXJzKQorICAgIDogbV9lZGl0RWxlbWVudChlbGVtZW50KQor
ICAgICwgbV9wYXJhbWV0ZXJzKGxheW91dFBhcmFtZXRlcnMpCit7Cit9CisKK2Jvb2wgRGF0ZVRp
bWVFZGl0QnVpbGRlcjo6YnVpbGQoY29uc3QgU3RyaW5nJiBmb3JtYXRTdHJpbmcpCit7CisgICAg
bV9lZGl0RWxlbWVudC5yZXNldEZpZWxkcygpOworICAgIHJldHVybiBEYXRlVGltZUZvcm1hdDo6
cGFyc2UoZm9ybWF0U3RyaW5nLCAqdGhpcyk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVFZGl0QnVpbGRl
cjo6dmlzaXRGaWVsZChEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlIGZpZWxkVHlwZSwgaW50IGNv
dW50KQoreworICAgIGNvbnN0ZXhwciBpbnQgY291bnRGb3JBYmJyZXZpYXRlZE1vbnRoID0gMzsK
KyAgICBjb25zdGV4cHIgaW50IGNvdW50Rm9yRnVsbE1vbnRoID0gNDsKKyAgICBjb25zdGV4cHIg
aW50IGNvdW50Rm9yTmFycm93TW9udGggPSA1OworICAgIERvY3VtZW50JiBkb2N1bWVudCA9IG1f
ZWRpdEVsZW1lbnQuZG9jdW1lbnQoKTsKKworICAgIHN3aXRjaCAoZmllbGRUeXBlKSB7CisgICAg
Y2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRGF5T2ZNb250aDogeworICAgICAgICBtX2Vk
aXRFbGVtZW50LmFkZEZpZWxkKERhdGVUaW1lRGF5RmllbGRFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQsIG1fZWRpdEVsZW1lbnQpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNhc2Ug
RGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRoOgorICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZU1vbnRoU3RhbmRBbG9uZTogeworICAgICAgICBzd2l0Y2ggKGNvdW50KSB7Cisg
ICAgICAgIGNhc2UgY291bnRGb3JOYXJyb3dNb250aDoKKyAgICAgICAgY2FzZSBjb3VudEZvckFi
YnJldmlhdGVkTW9udGg6IHsKKyAgICAgICAgICAgIGF1dG8gZmllbGQgPSBEYXRlVGltZVN5bWJv
bGljTW9udGhGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCwgZmll
bGRUeXBlID09IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNb250aCA/IG1fcGFyYW1ldGVycy5s
b2NhbGUuc2hvcnRNb250aExhYmVscygpIDogbV9wYXJhbWV0ZXJzLmxvY2FsZS5zaG9ydFN0YW5k
QWxvbmVNb250aExhYmVscygpKTsKKyAgICAgICAgICAgIG1fZWRpdEVsZW1lbnQuYWRkRmllbGQo
ZmllbGQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBjb3Vu
dEZvckZ1bGxNb250aDogeworICAgICAgICAgICAgYXV0byBmaWVsZCA9IERhdGVUaW1lU3ltYm9s
aWNNb250aEZpZWxkRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtX2VkaXRFbGVtZW50LCBmaWVs
ZFR5cGUgPT0gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRoID8gbV9wYXJhbWV0ZXJzLmxv
Y2FsZS5tb250aExhYmVscygpIDogbV9wYXJhbWV0ZXJzLmxvY2FsZS5zdGFuZEFsb25lTW9udGhM
YWJlbHMoKSk7CisgICAgICAgICAgICBtX2VkaXRFbGVtZW50LmFkZEZpZWxkKGZpZWxkKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICBtX2VkaXRFbGVtZW50LmFkZEZpZWxkKERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZp
ZWxkVHlwZVllYXI6IHsKKyAgICAgICAgbV9lZGl0RWxlbWVudC5hZGRGaWVsZChEYXRlVGltZVll
YXJGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCkpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuOworICAgIH0K
K30KKwordm9pZCBEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdExpdGVyYWwoY29uc3QgU3RyaW5n
JiB0ZXh0KQoreworICAgIEFTU0VSVCh0ZXh0Lmxlbmd0aCgpKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRleHRQc2V1ZG9JZCgiLXdlYmtp
dC1kYXRldGltZS1lZGl0LXRleHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgYXV0byBlbGVtZW50ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShtX2VkaXRFbGVtZW50
LmRvY3VtZW50KCkpOworICAgIGVsZW1lbnQtPnNldFBzZXVkbyh0ZXh0UHNldWRvSWQpOworICAg
IGVsZW1lbnQtPmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZShtX2VkaXRFbGVtZW50LmRvY3VtZW50
KCksIHRleHQpKTsKKyAgICBtX2VkaXRFbGVtZW50LmZpZWxkc1dyYXBwZXJFbGVtZW50KCkuYXBw
ZW5kQ2hpbGQoZWxlbWVudCk7Cit9CisKK0RhdGVUaW1lRWRpdEVsZW1lbnQ6OkVkaXRDb250cm9s
T3duZXI6On5FZGl0Q29udHJvbE93bmVyKCkgPSBkZWZhdWx0OworCitEYXRlVGltZUVkaXRFbGVt
ZW50OjpEYXRlVGltZUVkaXRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgRWRpdENvbnRyb2xP
d25lciYgZWRpdENvbnRyb2xPd25lcikKKyAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgZG9j
dW1lbnQpCisgICAgLCBtX2VkaXRDb250cm9sT3duZXIobWFrZVdlYWtQdHIoJmVkaXRDb250cm9s
T3duZXIpKQoreworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gZGF0ZVRpbWVFZGl0UHNldWRvSWQoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdCIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzZXRQc2V1ZG8oZGF0ZVRpbWVF
ZGl0UHNldWRvSWQpOworfQorCitEYXRlVGltZUVkaXRFbGVtZW50Ojp+RGF0ZVRpbWVFZGl0RWxl
bWVudCgpID0gZGVmYXVsdDsKKworaW5saW5lIEVsZW1lbnQmIERhdGVUaW1lRWRpdEVsZW1lbnQ6
OmZpZWxkc1dyYXBwZXJFbGVtZW50KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoZmlyc3RDaGlsZCgp
KTsKKyAgICByZXR1cm4gZG93bmNhc3Q8RWxlbWVudD4oKmZpcnN0Q2hpbGQoKSk7Cit9CisKK3Zv
aWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6YWRkRmllbGQoUmVmPERhdGVUaW1lRmllbGRFbGVtZW50
PiBmaWVsZCkKK3sKKyAgICBpZiAobV9maWVsZHMuc2l6ZSgpID09IG1fZmllbGRzLmNhcGFjaXR5
KCkpCisgICAgICAgIHJldHVybjsKKyAgICBtX2ZpZWxkcy5hcHBlbmQoZmllbGQpOworICAgIGZp
ZWxkc1dyYXBwZXJFbGVtZW50KCkuYXBwZW5kQ2hpbGQoZmllbGQpOworfQorCitSZWY8RGF0ZVRp
bWVFZGl0RWxlbWVudD4gRGF0ZVRpbWVFZGl0RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1
bWVudCwgRWRpdENvbnRyb2xPd25lciYgZWRpdENvbnRyb2xPd25lcikKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBEYXRlVGltZUVkaXRFbGVtZW50KGRvY3VtZW50LCBlZGl0Q29udHJvbE93
bmVyKSk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6bGF5b3V0KGNvbnN0IExheW91
dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMpCit7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmaWVsZHNXcmFwcGVyUHNldWRvSWQoIi13
ZWJraXQtZGF0ZXRpbWUtZWRpdC1maWVsZHMtd3JhcHBlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKworICAgIGlmICghZmlyc3RDaGlsZCgpKSB7CisgICAgICAgIGF1dG8g
ZWxlbWVudCA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgICAgIGVs
ZW1lbnQtPnNldFBzZXVkbyhmaWVsZHNXcmFwcGVyUHNldWRvSWQpOworICAgICAgICBhcHBlbmRD
aGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAgICBFbGVtZW50JiBmaWVsZHNXcmFwcGVyID0gZmll
bGRzV3JhcHBlckVsZW1lbnQoKTsKKworICAgIERhdGVUaW1lRWRpdEJ1aWxkZXIgYnVpbGRlcigq
dGhpcywgbGF5b3V0UGFyYW1ldGVycyk7CisgICAgTm9kZSogbGFzdENoaWxkVG9CZVJlbW92ZWQg
PSBmaWVsZHNXcmFwcGVyLmxhc3RDaGlsZCgpOworICAgIGlmICghYnVpbGRlci5idWlsZChsYXlv
dXRQYXJhbWV0ZXJzLmRhdGVUaW1lRm9ybWF0KSB8fCBtX2ZpZWxkcy5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgbGFzdENoaWxkVG9CZVJlbW92ZWQgPSBmaWVsZHNXcmFwcGVyLmxhc3RDaGlsZCgpOwor
ICAgICAgICBidWlsZGVyLmJ1aWxkKGxheW91dFBhcmFtZXRlcnMuZmFsbGJhY2tEYXRlVGltZUZv
cm1hdCk7CisgICAgfQorCisgICAgaWYgKGxhc3RDaGlsZFRvQmVSZW1vdmVkKSB7CisgICAgICAg
IHdoaWxlIChhdXRvKiBjaGlsZE5vZGUgPSBmaWVsZHNXcmFwcGVyLmZpcnN0Q2hpbGQoKSkgewor
ICAgICAgICAgICAgZmllbGRzV3JhcHBlci5yZW1vdmVDaGlsZCgqY2hpbGROb2RlKTsKKyAgICAg
ICAgICAgIGlmIChjaGlsZE5vZGUgPT0gbGFzdENoaWxkVG9CZVJlbW92ZWQpCisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK0F0b21TdHJpbmcgRGF0ZVRpbWVF
ZGl0RWxlbWVudDo6bG9jYWxlSWRlbnRpZmllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZWRp
dENvbnRyb2xPd25lciA/IG1fZWRpdENvbnRyb2xPd25lci0+bG9jYWxlSWRlbnRpZmllcigpIDog
bnVsbEF0b20oKTsKK30KKwordm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpyZXNldEZpZWxkcygp
Cit7CisgICAgbV9maWVsZHMuc2hyaW5rKDApOworfQorCit2b2lkIERhdGVUaW1lRWRpdEVsZW1l
bnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0IExheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRl
cnMsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQoreworICAgIGxheW91dChsYXlvdXRQYXJh
bWV0ZXJzKTsKKyAgICBmb3IgKHNpemVfdCBmaWVsZEluZGV4ID0gMDsgZmllbGRJbmRleCA8IG1f
ZmllbGRzLnNpemUoKTsgKytmaWVsZEluZGV4KQorICAgICAgICBtX2ZpZWxkc1tmaWVsZEluZGV4
XS0+c2V0VmFsdWVBc0RhdGUoZGF0ZSk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6
c2V0RW1wdHlWYWx1ZShjb25zdCBMYXlvdXRQYXJhbWV0ZXJzJiBsYXlvdXRQYXJhbWV0ZXJzKQor
eworICAgIGxheW91dChsYXlvdXRQYXJhbWV0ZXJzKTsKKyAgICBmb3IgKHNpemVfdCBmaWVsZElu
ZGV4ID0gMDsgZmllbGRJbmRleCA8IG1fZmllbGRzLnNpemUoKTsgKytmaWVsZEluZGV4KQorICAg
ICAgICBtX2ZpZWxkc1tmaWVsZEluZGV4XS0+c2V0RW1wdHlWYWx1ZSgpOworfQorCitTdHJpbmcg
RGF0ZVRpbWVFZGl0RWxlbWVudDo6dmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBtX2VkaXRD
b250cm9sT3duZXIgPyBtX2VkaXRDb250cm9sT3duZXItPnZhbHVlRm9yRWRpdENvbnRyb2woKSA6
IGVtcHR5U3RyaW5nKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0YjViYjAxZjU0
MzM5NmM3YjY2ZmRjMTc1MmVhNTdhYmI2ZmZiMjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmgKQEAgLTAsMCArMSw5NiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9J
TlBVVF9UWVBFUykKKworI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCisjaW5jbHVkZSAiRGF0
ZVRpbWVGaWVsZEVsZW1lbnQuaCIKKworI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTG9jYWxlOworCitjbGFzcyBEYXRlVGltZUVkaXRFbGVt
ZW50IGZpbmFsIDogcHVibGljIEhUTUxEaXZFbGVtZW50LCBwdWJsaWMgRGF0ZVRpbWVGaWVsZEVs
ZW1lbnQ6OkZpZWxkT3duZXIgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRGF0ZVRpbWVF
ZGl0RWxlbWVudCk7CitwdWJsaWM6CisgICAgY2xhc3MgRWRpdENvbnRyb2xPd25lciA6IHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxFZGl0Q29udHJvbE93bmVyPiB7CisgICAgcHVibGljOgorICAgICAg
ICB2aXJ0dWFsIH5FZGl0Q29udHJvbE93bmVyKCk7CisgICAgICAgIHZpcnR1YWwgU3RyaW5nIHZh
bHVlRm9yRWRpdENvbnRyb2woKSBjb25zdCA9IDA7CisgICAgICAgIHZpcnR1YWwgQXRvbVN0cmlu
ZyBsb2NhbGVJZGVudGlmaWVyKCkgY29uc3QgPSAwOworICAgIH07CisKKyAgICBzdHJ1Y3QgTGF5
b3V0UGFyYW1ldGVycyB7CisgICAgICAgIFN0cmluZyBkYXRlVGltZUZvcm1hdDsKKyAgICAgICAg
U3RyaW5nIGZhbGxiYWNrRGF0ZVRpbWVGb3JtYXQ7CisgICAgICAgIExvY2FsZSYgbG9jYWxlOwor
CisgICAgICAgIExheW91dFBhcmFtZXRlcnMoTG9jYWxlJiBsb2NhbGUpCisgICAgICAgICAgICA6
IGxvY2FsZShsb2NhbGUpCisgICAgICAgIHsKKyAgICAgICAgfQorICAgIH07CisKKyAgICBzdGF0
aWMgUmVmPERhdGVUaW1lRWRpdEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYsIEVkaXRDb250cm9s
T3duZXImKTsKKworICAgIHZpcnR1YWwgfkRhdGVUaW1lRWRpdEVsZW1lbnQoKTsKKyAgICB2b2lk
IGFkZEZpZWxkKFJlZjxEYXRlVGltZUZpZWxkRWxlbWVudD4pOworICAgIEVsZW1lbnQmIGZpZWxk
c1dyYXBwZXJFbGVtZW50KCkgY29uc3Q7CisgICAgdm9pZCByZXNldEZpZWxkcygpOworICAgIHZv
aWQgc2V0RW1wdHlWYWx1ZShjb25zdCBMYXlvdXRQYXJhbWV0ZXJzJik7CisgICAgdm9pZCBzZXRW
YWx1ZUFzRGF0ZShjb25zdCBMYXlvdXRQYXJhbWV0ZXJzJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMm
KTsKKyAgICBTdHJpbmcgdmFsdWUoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICAvLyBEYXRldGlt
ZSBjYW4gYmUgcmVwcmVzZW50ZWQgYnkgYXQgbW9zdCA4IGZpZWxkczoKKyAgICAvLyAxLiB5ZWFy
CisgICAgLy8gMi4gbW9udGgKKyAgICAvLyAzLiBkYXktb2YtbW9udGgKKyAgICAvLyA0LiBob3Vy
CisgICAgLy8gNS4gbWludXRlCisgICAgLy8gNi4gc2Vjb25kCisgICAgLy8gNy4gbWlsbGlzZWNv
bmQKKyAgICAvLyA4LiBBTS9QTQorICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IG1heGltdW1OdW1i
ZXJPZkZpZWxkcyA9IDg7CisKKyAgICBEYXRlVGltZUVkaXRFbGVtZW50KERvY3VtZW50JiwgRWRp
dENvbnRyb2xPd25lciYpOworCisgICAgdm9pZCBsYXlvdXQoY29uc3QgTGF5b3V0UGFyYW1ldGVy
cyYpOworCisgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OkZpZWxkT3duZXIgZnVuY3Rpb25z
OgorICAgIEF0b21TdHJpbmcgbG9jYWxlSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsOworCisgICAg
VmVjdG9yPFJlZjxEYXRlVGltZUZpZWxkRWxlbWVudD4sIG1heGltdW1OdW1iZXJPZkZpZWxkcz4g
bV9maWVsZHM7CisgICAgV2Vha1B0cjxFZGl0Q29udHJvbE93bmVyPiBtX2VkaXRDb250cm9sT3du
ZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREFU
RV9BTkRfVElNRV9JTlBVVF9UWVBFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZGZjMjhmOWQ2MGM3Mzkw
NWYwOWI2MjAwNWNkZGYwZDNhNTc0MGQ1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwCkBAIC0wLDAgKzEsODggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEYXRlVGltZUZpZWxk
RWxlbWVudC5oIgorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKKyNp
bmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1
ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUxvY2FsZS5oIgorI2lu
Y2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCitXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoRGF0ZVRpbWVGaWVsZEVsZW1lbnQpOworCitEYXRlVGltZUZpZWxk
RWxlbWVudDo6RmllbGRPd25lcjo6fkZpZWxkT3duZXIoKSA9IGRlZmF1bHQ7CisKK0RhdGVUaW1l
RmllbGRFbGVtZW50OjpEYXRlVGltZUZpZWxkRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEZp
ZWxkT3duZXImIGZpZWxkT3duZXIpCisgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3Vt
ZW50KQorICAgICwgbV9maWVsZE93bmVyKG1ha2VXZWFrUHRyKCZmaWVsZE93bmVyKSkKK3sKK30K
Kwordm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6aW5pdGlhbGl6ZShjb25zdCBBdG9tU3RyaW5n
JiBwc2V1ZG8pCit7CisgICAgc2V0UHNldWRvKHBzZXVkbyk7Cit9CisKK0xvY2FsZSYgRGF0ZVRp
bWVGaWVsZEVsZW1lbnQ6OmxvY2FsZUZvck93bmVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9j
dW1lbnQoKS5nZXRDYWNoZWRMb2NhbGUobG9jYWxlSWRlbnRpZmllcigpKTsKK30KKworQXRvbVN0
cmluZyBEYXRlVGltZUZpZWxkRWxlbWVudDo6bG9jYWxlSWRlbnRpZmllcigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fZmllbGRPd25lciA/IG1fZmllbGRPd25lci0+bG9jYWxlSWRlbnRpZmllcigp
IDogbnVsbEF0b20oKTsKK30KKwordm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6dXBkYXRlVmlz
aWJsZVZhbHVlKCkKK3sKKyAgICBpZiAoIWZpcnN0Q2hpbGQoKSkKKyAgICAgICAgYXBwZW5kQ2hp
bGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50KCksIGVtcHR5U3RyaW5nKCkpKTsKKworICAgIGF1dG8m
IHRleHROb2RlID0gZG93bmNhc3Q8VGV4dD4oKmZpcnN0Q2hpbGQoKSk7CisgICAgU3RyaW5nIG5l
d1Zpc2libGVWYWx1ZSA9IHZpc2libGVWYWx1ZSgpOworICAgIGlmICh0ZXh0Tm9kZS53aG9sZVRl
eHQoKSA9PSBuZXdWaXNpYmxlVmFsdWUpCisgICAgICAgIHJldHVybjsKKworICAgIHRleHROb2Rl
LnJlcGxhY2VXaG9sZVRleHQobmV3VmlzaWJsZVZhbHVlKTsKK30KKworYm9vbCBEYXRlVGltZUZp
ZWxkRWxlbWVudDo6c3VwcG9ydHNGb2N1cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9U
SU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lRmllbGRFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGZhNGQxNTY1MTM2ZmIyOTllNGFhYTE1NGQ5
ZDM0OGIzNzVlNTI5YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKwor
I2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCisKKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERhdGVDb21wb25lbnRzOworCitjbGFzcyBE
YXRlVGltZUZpZWxkRWxlbWVudCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CisgICAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRChEYXRlVGltZUZpZWxkRWxlbWVudCk7CitwdWJsaWM6CisgICAgY2xh
c3MgRmllbGRPd25lciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxGaWVsZE93bmVyPiB7CisgICAg
cHVibGljOgorICAgICAgICB2aXJ0dWFsIH5GaWVsZE93bmVyKCk7CisgICAgICAgIHZpcnR1YWwg
QXRvbVN0cmluZyBsb2NhbGVJZGVudGlmaWVyKCkgY29uc3QgPSAwOworICAgIH07CisKKyAgICB2
aXJ0dWFsIGJvb2wgaGFzVmFsdWUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEVt
cHR5VmFsdWUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IERh
dGVDb21wb25lbnRzJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzSW50ZWdlcihp
bnQpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0
dWFsIFN0cmluZyB2aXNpYmxlVmFsdWUoKSBjb25zdCA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICBE
YXRlVGltZUZpZWxkRWxlbWVudChEb2N1bWVudCYsIEZpZWxkT3duZXImKTsKKyAgICB2b2lkIGlu
aXRpYWxpemUoY29uc3QgQXRvbVN0cmluZyYgcHNldWRvKTsKKyAgICBMb2NhbGUmIGxvY2FsZUZv
ck93bmVyKCkgY29uc3Q7CisgICAgQXRvbVN0cmluZyBsb2NhbGVJZGVudGlmaWVyKCkgY29uc3Q7
CisgICAgdm9pZCB1cGRhdGVWaXNpYmxlVmFsdWUoKTsKKyAgICB2aXJ0dWFsIGludCB2YWx1ZUFz
SW50ZWdlcigpIGNvbnN0ID0gMDsKKworcHJpdmF0ZToKKyAgICBib29sIHN1cHBvcnRzRm9jdXMo
KSBjb25zdCBvdmVycmlkZTsKKworICAgIFdlYWtQdHI8RmllbGRPd25lcj4gbV9maWVsZE93bmVy
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEVf
QU5EX1RJTUVfSU5QVVRfVFlQRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jN2Y5ODQ0YTEzNDVkOGI0
MzIwZjBjNDg5MWEzYTFiMGQzNzcxODdmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcApAQCAtMCwwICsxLDExNiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRhdGVUaW1lRmll
bGRFbGVtZW50cy5oIgorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisK
KyNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9J
TVBMKERhdGVUaW1lRGF5RmllbGRFbGVtZW50KTsKKworRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6
OkRhdGVUaW1lRGF5RmllbGRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRPd25lciYg
ZmllbGRPd25lcikKKyAgICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChkb2N1bWVudCwg
ZmllbGRPd25lciwgIi0tIl9zKQoreworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGF5UHNldWRvSWQoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1k
YXktZmllbGQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgaW5pdGlh
bGl6ZShkYXlQc2V1ZG9JZCk7Cit9CisKK1JlZjxEYXRlVGltZURheUZpZWxkRWxlbWVudD4gRGF0
ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIEZpZWxkT3du
ZXImIGZpZWxkT3duZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0ZVRpbWVEYXlG
aWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIpKTsKK30KKwordm9pZCBEYXRlVGltZURh
eUZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUp
Cit7CisgICAgc2V0VmFsdWVBc0ludGVnZXIoZGF0ZS5tb250aERheSgpKTsKK30KKworV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQpOworCitEYXRl
VGltZU1vbnRoRmllbGRFbGVtZW50OjpEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50KERvY3VtZW50
JiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lcikKKyAgICA6IERhdGVUaW1lTnVtZXJp
Y0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwgIi0tIl9zKQoreworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW9udGhQc2V1ZG9J
ZCgiLXdlYmtpdC1kYXRldGltZS1lZGl0LW1vbnRoLWZpZWxkIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIGluaXRpYWxpemUobW9udGhQc2V1ZG9JZCk7Cit9CisKK1Jl
ZjxEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50PiBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50Ojpj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyKQoreworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQoZG9jdW1lbnQs
IGZpZWxkT3duZXIpKTsKK30KKwordm9pZCBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50OjpzZXRW
YWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkKK3sKKyAgICAvLyBEYXRlQ29t
cG9uZW50cyByZXByZXNlbnRzIG1vbnRocyBmcm9tIDAgKEphbnVhcnkpIHRvIDExIChEZWNlbWJl
cikuCisgICAgc2V0VmFsdWVBc0ludGVnZXIoZGF0ZS5tb250aCgpICsgMSk7Cit9CisKK1dURl9N
QUtFX0lTT19BTExPQ0FURURfSU1QTChEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQp
OworCitEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lU3ltYm9saWNN
b250aEZpZWxkRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3du
ZXIsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYWJlbHMpCisgICAgOiBEYXRlVGltZVN5bWJvbGlj
RmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCBsYWJlbHMpCit7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtb250aFBzZXVkb0lk
KCItd2Via2l0LWRhdGV0aW1lLWVkaXQtbW9udGgtZmllbGQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgaW5pdGlhbGl6ZShtb250aFBzZXVkb0lkKTsKK30KKworUmVm
PERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudD4gRGF0ZVRpbWVTeW1ib2xpY01vbnRo
RmllbGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVs
ZE93bmVyLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFiZWxzKQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudChkb2N1bWVudCwgZmll
bGRPd25lciwgbGFiZWxzKSk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRF
bGVtZW50OjpzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkKK3sKKyAg
ICBzZXRWYWx1ZUFzSW50ZWdlcihkYXRlLm1vbnRoKCkpOworfQorCitXVEZfTUFLRV9JU09fQUxM
T0NBVEVEX0lNUEwoRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50KTsKKworRGF0ZVRpbWVZZWFyRmll
bGRFbGVtZW50OjpEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBG
aWVsZE93bmVyJiBmaWVsZE93bmVyKQorICAgIDogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50
KGRvY3VtZW50LCBmaWVsZE93bmVyLCAiLS0tLSJfcykKK3sKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHllYXJQc2V1ZG9JZCgiLXdlYmtpdC1k
YXRldGltZS1lZGl0LXllYXItZmllbGQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgaW5pdGlhbGl6ZSh5ZWFyUHNldWRvSWQpOworfQorCitSZWY8RGF0ZVRpbWVZZWFy
RmllbGRFbGVtZW50PiBEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyKSk7Cit9
CisKK3ZvaWQgRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZShjb25zdCBE
YXRlQ29tcG9uZW50cyYgZGF0ZSkKK3sKKyAgICBzZXRWYWx1ZUFzSW50ZWdlcihkYXRlLmZ1bGxZ
ZWFyKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
REFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGEwMDZiNzFjMzYzZjVk
NWFiODNkMzg1NDFhYjU5MTk1ZjUyNmM4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5oCkBAIC0wLDAgKzEsOTAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5Q
VVRfVFlQRVMpCisKKyNpbmNsdWRlICJEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgRGF0
ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKERh
dGVUaW1lRGF5RmllbGRFbGVtZW50KTsKKworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RGF0ZVRp
bWVEYXlGaWVsZEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYsIEZpZWxkT3duZXImKTsKKworcHJp
dmF0ZToKKyAgICBEYXRlVGltZURheUZpZWxkRWxlbWVudChEb2N1bWVudCYsIEZpZWxkT3duZXIm
KTsKKworICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9uczoKKyAgICB2b2lkIHNl
dFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJik7Cit9OworCitjbGFzcyBEYXRlVGlt
ZU1vbnRoRmllbGRFbGVtZW50IGZpbmFsIDogcHVibGljIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxl
bWVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChEYXRlVGltZU1vbnRoRmllbGRFbGVt
ZW50KTsKKworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RGF0ZVRpbWVNb250aEZpZWxkRWxlbWVu
dD4gY3JlYXRlKERvY3VtZW50JiwgRmllbGRPd25lciYpOworCitwcml2YXRlOgorICAgIERhdGVU
aW1lTW9udGhGaWVsZEVsZW1lbnQoRG9jdW1lbnQmLCBGaWVsZE93bmVyJik7CisKKyAgICAvLyBE
YXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnM6CisgICAgdm9pZCBzZXRWYWx1ZUFzRGF0ZShj
b25zdCBEYXRlQ29tcG9uZW50cyYpOworfTsKKworY2xhc3MgRGF0ZVRpbWVTeW1ib2xpY01vbnRo
RmllbGRFbGVtZW50IGZpbmFsIDogcHVibGljIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQg
eworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRF
bGVtZW50KTsKKworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RGF0ZVRpbWVTeW1ib2xpY01vbnRo
RmllbGRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmLCBGaWVsZE93bmVyJiwgY29uc3QgVmVjdG9y
PFN0cmluZz4mKTsKKworcHJpdmF0ZToKKyAgICBEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVs
ZW1lbnQoRG9jdW1lbnQmLCBGaWVsZE93bmVyJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKwor
ICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9uczoKKyAgICB2b2lkIHNldFZhbHVl
QXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJik7Cit9OworCitjbGFzcyBEYXRlVGltZVllYXJG
aWVsZEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50IHsK
KyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKERhdGVUaW1lWWVhckZpZWxkRWxlbWVudCk7CisK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERhdGVUaW1lWWVhckZpZWxkRWxlbWVudD4gY3JlYXRl
KERvY3VtZW50JiwgRmllbGRPd25lciYpOworCitwcml2YXRlOgorICAgIERhdGVUaW1lWWVhckZp
ZWxkRWxlbWVudChEb2N1bWVudCYsIEZpZWxkT3duZXImKTsKKworICAgIC8vIERhdGVUaW1lRmll
bGRFbGVtZW50IGZ1bmN0aW9uczoKKyAgICB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVD
b21wb25lbnRzJik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk4ZjVhYjlhMDg5NGFjNjg4MWYzMTg0NjU0ZDVmNTUzMmQ3OWYzMGUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVs
ZEVsZW1lbnQuY3BwCkBAIC0wLDAgKzEsOTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCIKKworI2lmIEVO
QUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorCisjaW5jbHVkZSAiUGxhdGZvcm1Mb2Nh
bGUuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChEYXRlVGltZU51bWVyaWNGaWVs
ZEVsZW1lbnQpOworCitEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lTnVtZXJp
Y0ZpZWxkRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIs
IGNvbnN0IFN0cmluZyYgcGxhY2Vob2xkZXIpCisgICAgOiBEYXRlVGltZUZpZWxkRWxlbWVudChk
b2N1bWVudCwgZmllbGRPd25lcikKKyAgICAsIG1fcGxhY2Vob2xkZXIocGxhY2Vob2xkZXIpCit7
Cit9CisKK1N0cmluZyBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmZvcm1hdFZhbHVlKGlu
dCB2YWx1ZSkgY29uc3QKK3sKKyAgICBMb2NhbGUmIGxvY2FsZSA9IGxvY2FsZUZvck93bmVyKCk7
CisgICAgcmV0dXJuIGxvY2FsZS5jb252ZXJ0VG9Mb2NhbGl6ZWROdW1iZXIobWFrZVN0cmluZyhw
YWQoJzAnLCAyLCB2YWx1ZSkpKTsKK30KKworYm9vbCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1l
bnQ6Omhhc1ZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYXNWYWx1ZTsKK30KKwordm9p
ZCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUoY29uc3QgQXRvbVN0cmlu
ZyYgcHNldWRvKQoreworICAgIERhdGVUaW1lRmllbGRFbGVtZW50Ojppbml0aWFsaXplKHBzZXVk
byk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpzZXRFbXB0eVZhbHVl
KCkKK3sKKyAgICBtX3ZhbHVlID0gMDsKKyAgICBtX2hhc1ZhbHVlID0gZmFsc2U7CisgICAgdXBk
YXRlVmlzaWJsZVZhbHVlKCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50
OjpzZXRWYWx1ZUFzSW50ZWdlcihpbnQgdmFsdWUpCit7CisgICAgbV92YWx1ZSA9IHZhbHVlOwor
ICAgIG1faGFzVmFsdWUgPSB0cnVlOworICAgIHVwZGF0ZVZpc2libGVWYWx1ZSgpOworfQorCitT
dHJpbmcgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojp2YWx1ZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1faGFzVmFsdWUgPyBmb3JtYXRWYWx1ZShtX3ZhbHVlKSA6IGVtcHR5U3RyaW5nKCk7
Cit9CisKK2ludCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnZhbHVlQXNJbnRlZ2VyKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9oYXNWYWx1ZSA/IG1fdmFsdWUgOiAtMTsKK30KKworU3Ry
aW5nIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6dmlzaWJsZVZhbHVlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9oYXNWYWx1ZSA/IHZhbHVlKCkgOiBtX3BsYWNlaG9sZGVyOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREFURV9BTkRfVElNRV9J
TlBVVF9UWVBFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0
ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWQ0Y2MzMzkxMGU2NmFkYTlk
YmI3MTYyOTE0NTdiN2RlY2U4ZmI5OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCkBAIC0wLDAgKzEsNjMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVf
SU5QVVRfVFlQRVMpCisKKyNpbmNsdWRlICJEYXRlVGltZUZpZWxkRWxlbWVudC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCA6IHB1
YmxpYyBEYXRlVGltZUZpZWxkRWxlbWVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChE
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQpOworcHVibGljOgorCitwcm90ZWN0ZWQ6CisgICAg
RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KERvY3VtZW50JiwgRmllbGRPd25lciYsIGNvbnN0
IFN0cmluZyYpOworCisgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zOgorICAg
IGJvb2wgaGFzVmFsdWUoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGluaXRpYWxpemUoY29uc3Qg
QXRvbVN0cmluZyYpOworICAgIHZvaWQgc2V0RW1wdHlWYWx1ZSgpIGZpbmFsOworICAgIHZvaWQg
c2V0VmFsdWVBc0ludGVnZXIoaW50KSBmaW5hbDsKKyAgICBpbnQgdmFsdWVBc0ludGVnZXIoKSBj
b25zdCBmaW5hbDsKKyAgICBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgZmluYWw7CisKK3By
aXZhdGU6CisgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zOgorICAgIFN0cmlu
ZyB2YWx1ZSgpIGNvbnN0IGZpbmFsOworCisgICAgU3RyaW5nIGZvcm1hdFZhbHVlKGludCkgY29u
c3Q7CisKKyAgICBjb25zdCBTdHJpbmcgbV9wbGFjZWhvbGRlcjsKKyAgICBpbnQgbV92YWx1ZSB7
IDAgfTsKKyAgICBib29sIG1faGFzVmFsdWUgeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGlj
RmllbGRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3lt
Ym9saWNGaWVsZEVsZW1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2ODE1YjM1MDgwZTY2ZDU1MTI2NTI2
YmNhNDYyMWFhMDZkNWY4ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcApAQCAtMCwwICsxLDEwNCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRhdGVUaW1lU3lt
Ym9saWNGaWVsZEVsZW1lbnQuaCIKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZ
UEVTKQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0
b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lN
UEwoRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCk7CisKK3N0YXRpYyBBdG9tU3RyaW5nIG1h
a2VWaXNpYmxlRW1wdHlWYWx1ZShjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3ltYm9scykKK3sKKyAg
ICB1bnNpZ25lZCBtYXhpbXVtTGVuZ3RoID0gMDsKKyAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0g
MDsgaW5kZXggPCBzeW1ib2xzLnNpemUoKTsgKytpbmRleCkKKyAgICAgICAgbWF4aW11bUxlbmd0
aCA9IHN0ZDo6bWF4KG1heGltdW1MZW5ndGgsIG51bUdyYXBoZW1lQ2x1c3RlcnMoc3ltYm9sc1tp
bmRleF0pKTsKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5yZXNlcnZl
Q2FwYWNpdHkobWF4aW11bUxlbmd0aCk7CisgICAgZm9yICh1bnNpZ25lZCBsZW5ndGggPSAwOyBs
ZW5ndGggPCBtYXhpbXVtTGVuZ3RoOyArK2xlbmd0aCkKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
Jy0nKTsKKyAgICByZXR1cm4gYnVpbGRlci50b0F0b21TdHJpbmcoKTsKK30KKworRGF0ZVRpbWVT
eW1ib2xpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudChEb2N1bWVu
dCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBzeW1ib2xzKQorICAgIDogRGF0ZVRpbWVGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3du
ZXIpCisgICAgLCBtX3N5bWJvbHMoc3ltYm9scykKKyAgICAsIG1fdmlzaWJsZUVtcHR5VmFsdWUo
bWFrZVZpc2libGVFbXB0eVZhbHVlKHN5bWJvbHMpKQoreworICAgIEFTU0VSVCghbV9zeW1ib2xz
LmlzRW1wdHkoKSk7Cit9CisKK2Jvb2wgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6aGFz
VmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBtX3NlbGVjdGVkSW5kZXggPj0gMDsKK30KKwor
dm9pZCBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojppbml0aWFsaXplKGNvbnN0IEF0b21T
dHJpbmcmIHBzZXVkbykKK3sKKyAgICBEYXRlVGltZUZpZWxkRWxlbWVudDo6aW5pdGlhbGl6ZShw
c2V1ZG8pOworfQorCit2b2lkIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnNldEVtcHR5
VmFsdWUoKQoreworICAgIG1fc2VsZWN0ZWRJbmRleCA9IGludmFsaWRJbmRleDsKKyAgICB1cGRh
dGVWaXNpYmxlVmFsdWUoKTsKK30KKwordm9pZCBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50
OjpzZXRWYWx1ZUFzSW50ZWdlcihpbnQgbmV3U2VsZWN0ZWRJbmRleCkKK3sKKyAgICBtX3NlbGVj
dGVkSW5kZXggPSBzdGQ6Om1heCgwLCBzdGQ6Om1pbihuZXdTZWxlY3RlZEluZGV4LCBzdGF0aWNf
Y2FzdDxpbnQ+KG1fc3ltYm9scy5zaXplKCkgLSAxKSkpOworICAgIHVwZGF0ZVZpc2libGVWYWx1
ZSgpOworfQorCitTdHJpbmcgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6dmFsdWUoKSBj
b25zdAoreworICAgIHJldHVybiBoYXNWYWx1ZSgpID8gbV9zeW1ib2xzW21fc2VsZWN0ZWRJbmRl
eF0gOiBlbXB0eVN0cmluZygpOworfQorCitpbnQgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVu
dDo6dmFsdWVBc0ludGVnZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX3NlbGVjdGVkSW5kZXg7
Cit9CisKK1N0cmluZyBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojp2aXNpYmxlRW1wdHlW
YWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdmlzaWJsZUVtcHR5VmFsdWU7Cit9CisKK1N0
cmluZyBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojp2aXNpYmxlVmFsdWUoKSBjb25zdAor
eworICAgIHJldHVybiBoYXNWYWx1ZSgpID8gbV9zeW1ib2xzW21fc2VsZWN0ZWRJbmRleF0gOiB2
aXNpYmxlRW1wdHlWYWx1ZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42N2E4MDc4NDA1YjZkYTY1ZmNkMGMwNjc1MzBkZGVmZTFmMjdkMGUyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xp
Y0ZpZWxkRWxlbWVudC5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKKyNpbmNsdWRlICJE
YXRlVGltZUZpZWxkRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERh
dGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgOiBwdWJsaWMgRGF0ZVRpbWVGaWVsZEVsZW1lbnQg
eworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVu
dCk7Citwcm90ZWN0ZWQ6CisgICAgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudChEb2N1bWVu
dCYsIEZpZWxkT3duZXImLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpOworICAgIHNpemVfdCBzeW1i
b2xzU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3ltYm9scy5zaXplKCk7IH0KKyAgICBib29sIGhh
c1ZhbHVlKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IEF0b21TdHJp
bmcmIHBzZXVkbyk7CisgICAgdm9pZCBzZXRFbXB0eVZhbHVlKCkgZmluYWw7CisgICAgdm9pZCBz
ZXRWYWx1ZUFzSW50ZWdlcihpbnQpIGZpbmFsOworICAgIGludCB2YWx1ZUFzSW50ZWdlcigpIGNv
bnN0IGZpbmFsOworCitwcml2YXRlOgorICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IGludmFsaWRJ
bmRleCA9IC0xOworCisgICAgU3RyaW5nIHZpc2libGVFbXB0eVZhbHVlKCkgY29uc3Q7CisKKyAg
ICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnM6CisgICAgU3RyaW5nIHZhbHVlKCkg
Y29uc3QgZmluYWw7CisgICAgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0IGZpbmFsOworCisg
ICAgY29uc3QgVmVjdG9yPFN0cmluZz4gbV9zeW1ib2xzOworCisgICAgY29uc3QgQXRvbVN0cmlu
ZyBtX3Zpc2libGVFbXB0eVZhbHVlOworICAgIGludCBtX3NlbGVjdGVkSW5kZXggeyBpbnZhbGlk
SW5kZXggfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDljOTFkNWZkM2E3MDI2MWRkMDMw
MjYyYjc2YTZhOGMyOWQ4NjNkMzAuLjg5MzY1NzBmYzE1YzE5NDFjMjE2MWFlM2Q2ZmUyOTkwMGY1
YzVlYjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMC0wOC0yNSAgQWRpdHlhIEtlZXJ0aGkg
IDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBEYXRlIGlucHV0cyBzaG91
bGQgY29udGFpbiBlZGl0YWJsZSBjb21wb25lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUxNTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIHRlc3QgdG8gdmVyaWZ5IHN0eWxpbmcgb2Yg
cHNldWRvIGVsZW1lbnRzIHdpdGhpbiBkYXRlIGlucHV0cy4KKyAgICAgICAgUmViYXNlbGluZWQg
ZXhpc3RpbmcgdGVzdHMgdG8gbWF0Y2ggbmV3IGFwcGVhcmFuY2UuCisKKyAgICAgICAgKiBmYXN0
L2Zvcm1zL2RhdGUvZGF0ZS1wc2V1ZG8tZWxlbWVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2Zvcm1zL2RhdGUvZGF0ZS1wc2V1ZG8tZWxlbWVudHMuaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1pbnB1dC1y
ZW5kZXJpbmctYmFzaWMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIv
ZmFzdC9mb3Jtcy9kYXRlL2RhdGUtcHNldWRvLWVsZW1lbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL3RpbWUvdGltZS1hcHBlYXJh
bmNlLWJhc2ljLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdr
Mi9mYXN0L2Zvcm1zL3RpbWUvdGltZS1pbnB1dC1yZW5kZXJpbmctYmFzaWMtZXhwZWN0ZWQudHh0
OgorCiAyMDIwLTA4LTI0ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbbWFjT1NdIFNob3cgcGlja2VyIGZvciBkYXRlIGFuZCBkYXRldGltZS1sb2NhbCBp
bnB1dCB0eXBlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUt
cHNldWRvLWVsZW1lbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0
ZS9kYXRlLXBzZXVkby1lbGVtZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmZjZWY5YmNi
ZDllNTcxYzViM2Y1YzY0YWRmZDVmMzkzMmJjOTMzOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLXBzZXVkby1lbGVtZW50cy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxOCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZp
ZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAg
UmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgxMDEsMikgc2l6ZSA0eDE5CisgICAgICAgIHRleHQgcnVuIGF0ICgxMDEsMikgd2lkdGggNDog
IiAiCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0
ICgxMCwxMCkgc2l6ZSA5N3gyMiBjbGlwIGF0ICgxMSwxMSkgc2l6ZSA5NXgyMAorICBSZW5kZXJG
bGV4aWJsZUJveCB7SU5QVVR9IGF0ICgyLDIpIHNpemUgOTd4MjIgW2JnY29sb3I9I0ZGRkZGRl0g
W2JvcmRlcjogKDFweCBzb2xpZCAjNEM0QzRDKV0KKyAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
Niw0KSBzaXplIDU3eDE0CisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1
N3gxNAorICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1NzogIkFwciAxLCAxOTc2Igor
bGF5ZXIgYXQgKDExNSwxMCkgc2l6ZSA5N3gyMiBjbGlwIGF0ICgxMTYsMTEpIHNpemUgOTV4MjAK
KyAgUmVuZGVyRmxleGlibGVCb3gge0lOUFVUfSBhdCAoMTA3LDIpIHNpemUgOTd4MjIgW2JnY29s
b3I9I0ZGRkZGRl0gW2JvcmRlcjogKDFweCBzb2xpZCAjNEM0QzRDKV0KKyAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMTYsNCkgc2l6ZSA1N3gxNAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgNTd4MTQKKyAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTc6ICJB
cHIgMSwgMTk3NiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRl
LXBzZXVkby1lbGVtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUt
cHNldWRvLWVsZW1lbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDk4OTFiMGE1MjJjN2E4ZTNiMzRmN2Qx
MGUzZmY3OWUwODg0ODFlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvZGF0ZS9kYXRlLXBzZXVkby1lbGVtZW50cy5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzxodG1s
PgorPGhlYWQ+Cis8c3R5bGU+CitpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0IHsKKyAgICBi
b3JkZXI6IDFweCBzb2xpZCByZWQ7CisgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKKyAgICBm
b250LXNpemU6IDE1cHg7Cit9CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtdGV4dCB7
CisgICAgY29sb3I6IHllbGxvdzsKKyAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOworICAgIGZv
bnQtc2l6ZTogMTVweDsKK30KKworaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1tb250aC1m
aWVsZCB7CisgICAgY29sb3I6IHJlZDsKKyAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOworICAg
IGZvbnQtc2l6ZTogMTVweDsKK30KKworaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1kYXkt
ZmllbGQgeworICAgIGNvbG9yOiBncmVlbjsKKyAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwor
ICAgIGZvbnQtc2l6ZTogMTVweDsKK30KKworaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15
ZWFyLWZpZWxkIHsKKyAgICBjb2xvcjogYmx1ZTsKKyAgICBmb250LWZhbWlseTogbW9ub3NwYWNl
OworICAgIGZvbnQtc2l6ZTogMTVweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAg
ICA8aW5wdXQgdHlwZT0iZGF0ZSIgZGlyPSJsdHIiIHZhbHVlPSIxOTc2LTA0LTAxIj4KKyAgICA8
aW5wdXQgdHlwZT0iZGF0ZSIgZGlyPSJydGwiIHZhbHVlPSIxOTc2LTA0LTAxIj4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9m
b3Jtcy9kYXRlL2RhdGUtaW5wdXQtcmVuZGVyaW5nLWJhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtaW5wdXQtcmVuZGVy
aW5nLWJhc2ljLWV4cGVjdGVkLnR4dAppbmRleCA1YmI1Nzg3MDM3YTQ5M2YyODUwYmZiMjM4OWJi
Nzg4YWQ4Yjk4OGIxLi5iMjA0NjgwZGJmNjIwYTY0MmM1ODZmNGUzYTJhNDZlZTg2ZTlkMzM1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMvZGF0ZS9k
YXRlLWlucHV0LXJlbmRlcmluZy1iYXNpYy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1pbnB1dC1yZW5kZXJpbmctYmFz
aWMtZXhwZWN0ZWQudHh0CkBAIC0zLDE2ICszLDQ2IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXpl
IDc4NHg1ODQKLSAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTEwLDMpIHNpemUgNHgxOAot
ICAgICAgICB0ZXh0IHJ1biBhdCAoMTEwLDMpIHdpZHRoIDQ6ICIgIgorICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgxMTAsMikgc2l6ZSA0eDE4CisgICAgICAgIHRleHQgcnVuIGF0ICgxMTAs
Mikgd2lkdGggNDogIiAiCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAw
eDAKLWxheWVyIGF0ICg4LDEwKSBzaXplIDExMHgyMSBjbGlwIGF0ICgxMCwxMikgc2l6ZSAxMDZ4
MTcKLSAgUmVuZGVyRmxleGlibGVCb3gge0lOUFVUfSBhdCAoMCwyKSBzaXplIDExMHgyMSBbYmdj
b2xvcj0jRkZGRkZGXSBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQotICAgIFJlbmRlckJs
b2NrIHtESVZ9IGF0ICg3LDQpIHNpemUgNTl4MTMKLSAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDU5eDEzCi0gICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDU5OiAi
QXByIDEsIDE5NzYiCi1sYXllciBhdCAoMTIyLDEwKSBzaXplIDExMHgyMSBjbGlwIGF0ICgxMjQs
MTIpIHNpemUgMTA2eDE3Ci0gIFJlbmRlckZsZXhpYmxlQm94IHtJTlBVVH0gYXQgKDExNCwyKSBz
aXplIDExMHgyMSBbYmdjb2xvcj0jRkZGRkZGXSBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDAp
XQotICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgyNCw0KSBzaXplIDU5eDEzCi0gICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1OXgxMwotICAgICAgICB0ZXh0IHJ1biBhdCAo
MCwwKSB3aWR0aCA1OTogIkFwciAxLCAxOTc2IgorbGF5ZXIgYXQgKDgsMTApIHNpemUgMTEweDE5
IGNsaXAgYXQgKDEwLDEyKSBzaXplIDEwNngxNQorICBSZW5kZXJGbGV4aWJsZUJveCB7SU5QVVR9
IGF0ICgwLDIpIHNpemUgMTEweDE5IFtiZ2NvbG9yPSNGRkZGRkZdIFtib3JkZXI6ICgycHggaW5z
ZXQgIzAwMDAwMCldCitsYXllciBhdCAoMTEsMTMpIHNpemUgNjV4MTMgc2Nyb2xsSGVpZ2h0IDE0
CisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgzLDMpIHNpemUgNjZ4MTMKKyAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMCwwKSBzaXplIDY2eDEzCisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQg
KDAsMCkgc2l6ZSAxN3gxNQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEsMCkgc2l6
ZSAxNXgxMworICAgICAgICAgIHRleHQgcnVuIGF0ICgxLDApIHdpZHRoIDE1OiAiMDQiCisgICAg
ICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSA0eDEzCisgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMTYsMCkgc2l6ZSA0eDEzCisgICAgICAgICAgdGV4dCBydW4gYXQgKDE2
LDApIHdpZHRoIDQ6ICIvIgorICAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUg
MTZ4MTUKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyMCwwKSBzaXplIDE0eDEzCisg
ICAgICAgICAgdGV4dCBydW4gYXQgKDIwLDApIHdpZHRoIDE0OiAiMDEiCisgICAgICBSZW5kZXJJ
bmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSA0eDEzCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMzQsMCkgc2l6ZSA0eDEzCisgICAgICAgICAgdGV4dCBydW4gYXQgKDM0LDApIHdpZHRo
IDQ6ICIvIgorICAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgMjl4MTUKKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzOCwwKSBzaXplIDI3eDEzCisgICAgICAgICAg
dGV4dCBydW4gYXQgKDM4LDApIHdpZHRoIDI3OiAiMTk3NiIKK2xheWVyIGF0ICgxMjIsMTApIHNp
emUgMTEweDE5IGNsaXAgYXQgKDEyNCwxMikgc2l6ZSAxMDZ4MTUKKyAgUmVuZGVyRmxleGlibGVC
b3gge0lOUFVUfSBhdCAoMTE0LDIpIHNpemUgMTEweDE5IFtiZ2NvbG9yPSNGRkZGRkZdIFtib3Jk
ZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCitsYXllciBhdCAoMTY0LDEzKSBzaXplIDY1eDEzIHNj
cm9sbEhlaWdodCAxNAorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoNDEsMykgc2l6ZSA2NngxMwor
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNjZ4MTMKKyAgICAgIFJlbmRlcklu
bGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDE3eDE1CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMSwwKSBzaXplIDE1eDEzCisgICAgICAgICAgdGV4dCBydW4gYXQgKDEsMCkgd2lkdGgg
MTU6ICIwNCIKKyAgICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDR4MTMKKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNiwwKSBzaXplIDR4MTMKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMTYsMCkgd2lkdGggNDogIi8iCisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0g
YXQgKDAsMCkgc2l6ZSAxNngxNQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDIwLDAp
IHNpemUgMTR4MTMKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjAsMCkgd2lkdGggMTQ6ICIwMSIK
KyAgICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDR4MTMKKyAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgzNCwwKSBzaXplIDR4MTMKKyAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMzQsMCkgd2lkdGggNDogIi8iCisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkg
c2l6ZSAyOXgxNQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDM4LDApIHNpemUgMjd4
MTMKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzgsMCkgd2lkdGggMjc6ICIxOTc2IgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1w
c2V1ZG8tZWxlbWVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
Mi9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1wc2V1ZG8tZWxlbWVudHMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjEyNTNjNjA5MjViYWEyODJkYmVkMzE1OTQzYmYxZmRjYmZkMGI4YjAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMvZGF0ZS9k
YXRlLXBzZXVkby1lbGVtZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0OCBAQAorbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgw
LDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0
eDU4NAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxMTAsNSkgc2l6ZSA0eDE4CisgICAg
ICAgIHRleHQgcnVuIGF0ICgxMTAsNSkgd2lkdGggNDogIiAiCisgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICg4LDEwKSBzaXplIDExMHgyNSBjbGlw
IGF0ICgxMCwxMikgc2l6ZSAxMDZ4MjEKKyAgUmVuZGVyRmxleGlibGVCb3gge0lOUFVUfSBhdCAo
MCwyKSBzaXplIDExMHgyNSBbYmdjb2xvcj0jRkZGRkZGXSBbYm9yZGVyOiAoMnB4IGluc2V0ICMw
MDAwMDApXQorbGF5ZXIgYXQgKDExLDEzKSBzaXplIDk4eDE5IGNsaXAgYXQgKDEyLDE0KSBzaXpl
IDk2eDE3IHNjcm9sbEhlaWdodCAxOAorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMywzKSBzaXpl
IDk5eDE5IFtib3JkZXI6ICgxcHggc29saWQgI0ZGMDAwMCldCisgICAgUmVuZGVyQmxvY2sge0RJ
Vn0gYXQgKDEsMSkgc2l6ZSA5N3gxNworICAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDAp
IHNpemUgMjF4MTkgW2NvbG9yPSNGRjAwMDBdCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMSwwKSBzaXplIDE5eDE3CisgICAgICAgICAgdGV4dCBydW4gYXQgKDEsMCkgd2lkdGggMTk6
ICIwNCIKKyAgICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDEweDE3IFtjb2xv
cj0jRkZGRjAwXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDIwLDApIHNpemUgMTB4
MTcKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjAsMCkgd2lkdGggMTA6ICIvIgorICAgICAgUmVu
ZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgMjF4MTkgW2NvbG9yPSMwMDgwMDBdCisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMzAsMCkgc2l6ZSAxOXgxNworICAgICAgICAgIHRl
eHQgcnVuIGF0ICgzMCwwKSB3aWR0aCAxOTogIjAxIgorICAgICAgUmVuZGVySW5saW5lIHtESVZ9
IGF0ICgwLDApIHNpemUgMTB4MTcgW2NvbG9yPSNGRkZGMDBdCisgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoNDksMCkgc2l6ZSAxMHgxNworICAgICAgICAgIHRleHQgcnVuIGF0ICg0OSww
KSB3aWR0aCAxMDogIi8iCisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSAz
OXgxOSBbY29sb3I9IzAwMDBGRl0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg1OSww
KSBzaXplIDM3eDE3CisgICAgICAgICAgdGV4dCBydW4gYXQgKDU5LDApIHdpZHRoIDM3OiAiMTk3
NiIKK2xheWVyIGF0ICgxMjIsMTApIHNpemUgMTEweDI1IGNsaXAgYXQgKDEyNCwxMikgc2l6ZSAx
MDZ4MjEKKyAgUmVuZGVyRmxleGlibGVCb3gge0lOUFVUfSBhdCAoMTE0LDIpIHNpemUgMTEweDI1
IFtiZ2NvbG9yPSNGRkZGRkZdIFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCitsYXllciBh
dCAoMTMxLDEzKSBzaXplIDk4eDE5IGNsaXAgYXQgKDEzMiwxNCkgc2l6ZSA5NngxNyBzY3JvbGxI
ZWlnaHQgMTgKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDgsMykgc2l6ZSA5OXgxOSBbYm9yZGVy
OiAoMXB4IHNvbGlkICNGRjAwMDApXQorICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxLDEpIHNp
emUgOTd4MTcKKyAgICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDIxeDE5IFtj
b2xvcj0jRkYwMDAwXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEsMCkgc2l6ZSAx
OXgxNworICAgICAgICAgIHRleHQgcnVuIGF0ICgxLDApIHdpZHRoIDE5OiAiMDQiCisgICAgICBS
ZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMHgxNyBbY29sb3I9I0ZGRkYwMF0KKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyMCwwKSBzaXplIDEweDE3CisgICAgICAgICAg
dGV4dCBydW4gYXQgKDIwLDApIHdpZHRoIDEwOiAiLyIKKyAgICAgIFJlbmRlcklubGluZSB7RElW
fSBhdCAoMCwwKSBzaXplIDIxeDE5IFtjb2xvcj0jMDA4MDAwXQorICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDMwLDApIHNpemUgMTl4MTcKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzAs
MCkgd2lkdGggMTk6ICIwMSIKKyAgICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXpl
IDEweDE3IFtjb2xvcj0jRkZGRjAwXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDQ5
LDApIHNpemUgMTB4MTcKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNDksMCkgd2lkdGggMTA6ICIv
IgorICAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgMzl4MTkgW2NvbG9yPSMw
MDAwRkZdCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNTksMCkgc2l6ZSAzN3gxNwor
ICAgICAgICAgIHRleHQgcnVuIGF0ICg1OSwwKSB3aWR0aCAzNzogIjE5NzYiCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMvdGltZS90aW1lLWFwcGVh
cmFuY2UtYmFzaWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9m
YXN0L2Zvcm1zL3RpbWUvdGltZS1hcHBlYXJhbmNlLWJhc2ljLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yZGQwYWQ1NTk3ZjY5ZTcwZDYxYmM1NmVlNjQ4NzhhMGFhOGFmODQ2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL3RpbWUvdGlt
ZS1hcHBlYXJhbmNlLWJhc2ljLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitzdGVwPW5v
bmUgIAorc3RlcD0xICAKK3N0ZXA9MC4wMDAxICAKK3N0ZXA9NjAgIAorc3RlcD0zNjAwICAKK3N0
ZXA9ODY0MDAgIAorc3RlcCBtaXNtYXRjaGVkIAorUlRMIAorRGlzYWJsZWQsIHN0ZXA9MzYwMCAg
CitSZWFkb25seSwgc3RlcD0zNjAwICAKK3RleHQtYWxpZ246IAordGV4dC10cmFuc2Zvcm06IAor
YmFja2dyb3VuZCwgY29sb3I6IAorZm9udC1zaXplLCBmb250LXdlaWdodDogCitmb250LXNpemUg
d2l0aCBmaXhlZCBpbnB1dCB3aWR0aDogCitGaXhlZCBpbnB1dCBoZWlnaHQ6IAorLXdlYmtpdC1h
cHBlYXJhbmNlOm5vbmU6IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
Mi9mYXN0L2Zvcm1zL3RpbWUvdGltZS1pbnB1dC1yZW5kZXJpbmctYmFzaWMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL3RpbWUvdGltZS1pbnB1
dC1yZW5kZXJpbmctYmFzaWMtZXhwZWN0ZWQudHh0CmluZGV4IGU1NTkxZjdkNzViY2M5MTY0NTcw
ZDEyZTA3ZTI4ZjZlNjI4NDQ4NDQuLmE5MjA3ZTlhZGMwZjhkYjEzNjFkYzc0ZmYyMjFlNWYwZmQ0
NDI5MjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9mb3Jt
cy90aW1lL3RpbWUtaW5wdXQtcmVuZGVyaW5nLWJhc2ljLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMvdGltZS90aW1lLWlucHV0LXJlbmRl
cmluZy1iYXNpYy1leHBlY3RlZC50eHQKQEAgLTMsMTggKzMsMTAgQEAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyQmxvY2sg
e0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAogICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4
LDgpIHNpemUgNzg0eDU4NAotICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxMTAsMykgc2l6
ZSA0eDE4Ci0gICAgICAgIHRleHQgcnVuIGF0ICgxMTAsMykgd2lkdGggNDogIiAiCisgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDExMCwwKSBzaXplIDR4MTgKKyAgICAgICAgdGV4dCBydW4g
YXQgKDExMCwwKSB3aWR0aCA0OiAiICIKICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDB4MAotbGF5ZXIgYXQgKDgsMTApIHNpemUgMTEweDIxIGNsaXAgYXQgKDEwLDEyKSBz
aXplIDEwNngxNwotICBSZW5kZXJGbGV4aWJsZUJveCB7SU5QVVR9IGF0ICgwLDIpIHNpemUgMTEw
eDIxIFtiZ2NvbG9yPSNGRkZGRkZdIFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCi0gICAg
UmVuZGVyQmxvY2sge0RJVn0gYXQgKDcsNCkgc2l6ZSA0M3gxMwotICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgNDN4MTMKLSAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggNDM6ICI5OjQxIEFNIgotbGF5ZXIgYXQgKDEyMiwxMCkgc2l6ZSAxMTB4MjEgY2xpcCBhdCAo
MTI0LDEyKSBzaXplIDEwNngxNwotICBSZW5kZXJGbGV4aWJsZUJveCB7SU5QVVR9IGF0ICgxMTQs
Mikgc2l6ZSAxMTB4MjEgW2JnY29sb3I9I0ZGRkZGRl0gW2JvcmRlcjogKDJweCBpbnNldCAjMDAw
MDAwKV0KLSAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoNDAsNCkgc2l6ZSA0M3gxMwotICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDN4MTMKLSAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggMTg6ICJBTSIKLSAgICAgICAgdGV4dCBydW4gYXQgKDE3LDApIHdpZHRo
IDQgUlRMOiAiICIKLSAgICAgICAgdGV4dCBydW4gYXQgKDIwLDApIHdpZHRoIDIzOiAiOTo0MSIK
K2xheWVyIGF0ICg4LDE5KSBzaXplIDExMHg2IGNsaXAgYXQgKDEwLDIxKSBzaXplIDEwNngyCisg
IFJlbmRlckZsZXhpYmxlQm94IHtJTlBVVH0gYXQgKDAsMTEpIHNpemUgMTEweDYgW2JnY29sb3I9
I0ZGRkZGRl0gW2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KK2xheWVyIGF0ICgxMjIsMTkp
IHNpemUgMTEweDYgY2xpcCBhdCAoMTI0LDIxKSBzaXplIDEwNngyCisgIFJlbmRlckZsZXhpYmxl
Qm94IHtJTlBVVH0gYXQgKDExNCwxMSkgc2l6ZSAxMTB4NiBbYmdjb2xvcj0jRkZGRkZGXSBbYm9y
ZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQo=
</data>
<flag name="review"
          id="422871"
          type_id="1"
          status="+"
          setter="hi"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407503</attachid>
            <date>2020-08-28 14:54:08 -0700</date>
            <delta_ts>2020-08-31 07:25:42 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-215155-20200828175407.patch</filename>
            <type>text/plain</type>
            <size>85866</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmEyMTk1N2FmZTk0NDQ5
N2ExZmIzZjg2MjRkZmFlMjcxMTg1ZGRjOC4uOWE5YmI4NjY2MGUyNWQyOGFlNTgwMTk4NzJmNjE0
OGFkMGQ3MjMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzNSBAQAorMjAyMC0wOC0yNSAgQWRp
dHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBEYXRl
IGlucHV0cyBzaG91bGQgY29udGFpbiBlZGl0YWJsZSBjb21wb25lbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUxNTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBEZXZpbiBSb3Vzc28uCisKKyAgICAgICAgQ3VycmVudGx5LCB1c2VycyBhcmUgdW5h
YmxlIHRvIGVkaXQgdGhlIHZhbHVlcyBpbiBkYXRlIGFuZCB0aW1lIGlucHV0IHR5cGVzLgorICAg
ICAgICBUbyBtYXRjaCBzeXN0ZW0gZGF0ZSBjb250cm9scywgdXNlcnMgc2hvdWxkIGJlIGFibGUg
dG8gc2VsZWN0IGFuZCBlZGl0CisgICAgICAgIGluZGl2aWR1YWwgY29tcG9uZW50cyBvZiB0aGUg
aW5wdXQuIEZvciBleGFtcGxlLCA8aW5wdXQgdHlwZT0iZGF0ZSI+IHNob3VsZAorICAgICAgICBj
b250YWluIGFuIGVkaXRhYmxlIHllYXIsIG1vbnRoLCBhbmQgZGF5IGNvbnRyb2wuCisKKyAgICAg
ICAgTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb25hbGl0eSB3YXMgcHJlc2VudCBpbiBXZWJLaXQsIHVw
IHVudGlsIGl0IHdhcyByZW1vdmVkCisgICAgICAgIGluIHIxNTA4NzYuIFByZXZpb3VzbHkga25v
d24gYXMgIklOUFVUX01VTFRJUExFX0ZJRUxEU19VSSIsIHRoZSBmZWF0dXJlIHdhcworICAgICAg
ICByZW1vdmVkIGFzIGl0IHdhcyBvbmx5IHVzZWQgYnkgQ2hyb21pdW0gcG9ydC4gSG93ZXZlciwg
bXVjaCBvZiB0aGUgcmVtb3ZlZAorICAgICAgICBsb2dpYyByZW1haW5zIHVzZWZ1bCBhbmQgaXMg
cmVzdXJmYWNlZCBpbiB0aGlzIHBhdGNoLiBNb2RpZmljYXRpb25zIHdlcmUgbWFkZQorICAgICAg
ICB0byB1cGRhdGUgdGhlIGNvZGUgdG8gZm9sbG93IGN1cnJlbnQgV2ViS2l0IHByYWN0aWNlcy4K
KworICAgICAgICBEYXRlVGltZUVkaXRFbGVtZW50IGlzIGEgd3JhcHBlciBlbGVtZW50IHRoYXQg
Y29udGFpbnMgaW5kaXZpZHVhbCBmaWVsZHMuCisgICAgICAgIFRoZSBmaWVsZHMgYXJlIGFsbCBE
YXRlVGltZUZpZWxkRWxlbWVudHMuIE5vdGUgdGhhdCBEYXRlVGltZUZpZWxkRWxlbWVudHMKKyAg
ICAgICAgYXJlIGZ1cnRoZXIgc3BlY2lhbGl6ZWQgaW50byBEYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQgKGZvciBpbnRlZ3JhbAorICAgICAgICB2YWx1ZXMpIGFuZCBEYXRlVGltZVN5bWJvbGlj
RmllbGRFbGVtZW50IChmb3Igc3ltYm9saWMgdmFsdWVzIHN1Y2ggYXMgQS5NCisgICAgICAgIGFu
ZCBQLk0pLiBEYXRlVGltZUVkaXRFbGVtZW50IGJ1aWxkcyB0aGUgY29udHJvbCB1c2luZyB0aGUg
dmlzaXRvciBwYXR0ZXJuCisgICAgICAgIGFuZCBleGlzdGluZyBwYXJzaW5nIGxvZ2ljIGNvbnRh
aW5lZCBpbiBEYXRlVGltZUZvcm1hdC4KKworICAgICAgICBJbiBvcmRlciB0byByZWR1Y2UgdGhl
IHBhdGNoIHNpemUsIHRoaXMgcGF0Y2ggb25seSBzZXRzIHVwIHRoZSByZW5kZXJpbmcKKyAgICAg
ICAgYW5kIGxheW91dCBvZiBtdWx0aXBsZSBmaWVsZHMgZm9yIDxpbnB1dCB0eXBlPSJkYXRlIj4u
IFVwY29taW5nIHBhdGNoZXMgd2lsbAorICAgICAgICBhZGQgcmVuZGVyaW5nIGZvciBvdGhlciBk
YXRlL3RpbWUgaW5wdXQgdHlwZXMgYW5kIGludHJvZHVjZSBlZGl0YWJpbGl0eS4KKworICAgICAg
ICBUZXN0OiBmYXN0L2Zvcm1zL2RhdGUvZGF0ZS1wc2V1ZG8tZWxlbWVudHMuaHRtbAorCisgICAg
ICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGNzcy9odG1sLmNzczoKKyAgICAgICAgKGlucHV0Ojotd2Via2l0
LWRhdGV0aW1lLWVkaXQpOgorICAgICAgICAoaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1m
aWVsZHMtd3JhcHBlcik6CisgICAgICAgIChpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LXll
YXItZmllbGQsKToKKyAgICAgICAgKGlucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQteWVhci1m
aWVsZDpmb2N1cywpOgorICAgICAgICAoaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC10ZXh0
KToKKyAgICAgICAgKiBodG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRm9ybWF0VmFsaWRhdG9yOjp2aXNpdEZpZWxk
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRm9ybWF0VmFsaWRhdG9yOjp2YWxpZGF0ZUZv
cm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0
VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hvb3Nl
ck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUpOgorICAgICAg
ICAoV2ViQ29yZTo6QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnVwZGF0ZUlu
bmVyVGV4dFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRU
aW1lSW5wdXRUeXBlOjp2YWx1ZUZvckVkaXRDb250cm9sIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpsb2NhbGVJZGVudGlmaWVy
IGNvbnN0KToKKyAgICAgICAgKiBodG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRU
eXBlLmg6CisgICAgICAgICogaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaDoKKyAgICAg
ICAgKiBodG1sL0RhdGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZUlucHV0
VHlwZTo6aXNWYWxpZEZvcm1hdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlSW5wdXRU
eXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMgY29uc3QpOgorICAgICAgICAqIGh0bWwvRGF0ZUlu
cHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OnNldHVwTGF5
b3V0UGFyYW1ldGVycyBjb25zdCk6CisgICAgICAgICogaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRU
eXBlLmg6CisgICAgICAgICogaHRtbC9Nb250aElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNb250aElucHV0VHlwZTo6aXNWYWxpZEZvcm1hdCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpNb250aElucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzIGNvbnN0KToKKyAgICAg
ICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9UaW1lSW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmlzVmFsaWRGb3JtYXQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0
ZXJzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBo
dG1sL1dlZWtJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vla0lucHV0VHlwZTo6
aXNWYWxpZEZvcm1hdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWVrSW5wdXRUeXBlOjpz
ZXR1cExheW91dFBhcmFtZXRlcnMgY29uc3QpOgorICAgICAgICAqIGh0bWwvV2Vla0lucHV0VHlw
ZS5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEJ1aWxkZXI6OkRhdGVUaW1lRWRpdEJ1
aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0QnVpbGRlcjo6YnVpbGQpOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0QnVpbGRlcjo6dmlzaXRGaWVsZCk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdExpdGVyYWwpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6RGF0ZVRpbWVFZGl0RWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpmaWVsZHNXcmFwcGVyRWxlbWVu
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjphZGRGaWVs
ZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6bGF5b3V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmxvY2FsZUlkZW50aWZpZXIgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6cmVzZXRGaWVsZHMpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6c2V0VmFsdWVBc0RhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6c2V0RW1wdHlWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojp2YWx1ZSBjb25zdCk6CisgICAgICAgICog
aHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1s
L3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lRmllbGRFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50Ojppbml0aWFsaXplKToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50Ojpsb2NhbGVGb3JPd25lciBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6bG9jYWxlSWRlbnRpZmllciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6dXBkYXRlVmlzaWJs
ZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50OjpzdXBwb3J0
c0ZvY3VzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVu
dC5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRGF5RmllbGRFbGVtZW50OjpE
YXRlVGltZURheUZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZURheUZp
ZWxkRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRGF5RmllbGRF
bGVtZW50OjpzZXRWYWx1ZUFzRGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU1vbnRo
RmllbGRFbGVtZW50OjpEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lU3ltYm9s
aWNNb250aEZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGlj
TW9udGhGaWVsZEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5
bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lWWVhckZpZWxkRWxlbWVudDo6RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lWWVhckZpZWxkRWxlbWVudDo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lWWVhckZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUp
OgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5oOiBBZGRlZC4K
KyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6RGF0
ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVt
ZXJpY0ZpZWxkRWxlbWVudDo6Zm9ybWF0VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpoYXNWYWx1ZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpzZXRFbXB0eVZhbHVlKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6c2V0VmFsdWVB
c0ludGVnZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50
Ojp2YWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQ6OnZhbHVlQXNJbnRlZ2VyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudDo6dmlzaWJsZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBodG1s
L3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgICog
aHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6bWFrZVZpc2libGVFbXB0eVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6aGFz
VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxl
bWVudDo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmll
bGRFbGVtZW50OjpzZXRFbXB0eVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3lt
Ym9saWNGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNJbnRlZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnZhbHVlQXNJbnRlZ2VyIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnZpc2li
bGVFbXB0eVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNG
aWVsZEVsZW1lbnQ6OnZpc2libGVWYWx1ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9zaGFkb3cv
RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnN5bWJvbHNTaXplIGNvbnN0KToKKwogMjAy
MC0wOC0yNCAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAg
W21hY09TXSBTaG93IHBpY2tlciBmb3IgZGF0ZSBhbmQgZGF0ZXRpbWUtbG9jYWwgaW5wdXQgdHlw
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKaW5kZXggMDlkNTAzZmU0YzZjNGY4MTc0ODc5MzczZWJjYzU1MzgwZTYx
YTM5Yy4uNDEwOTg2YTg3NGZjNTc5YjY2ZGQ4YmViYjRjMDhmZTUwZjQyZTFiMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKQEAgLTEzMTEsNiArMTMxMSwxMSBAQCBodG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdh
dGUuY3BwCiBodG1sL3NoYWRvdy9BdXRvRmlsbEJ1dHRvbkVsZW1lbnQuY3BwCiBodG1sL3NoYWRv
dy9EYXRhTGlzdEJ1dHRvbkVsZW1lbnQuY3BwCiBodG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29u
dHJvbC5jcHAKK2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCitodG1sL3NoYWRv
dy9EYXRlVGltZUZpZWxkRWxlbWVudC5jcHAKK2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVt
ZW50cy5jcHAKK2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAKK2h0
bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwCiBodG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNwcAogaHRtbC9zaGFkb3cvUHJv
Z3Jlc3NTaGFkb3dFbGVtZW50LmNwcAogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDI1MDE4M2JmYzEyZTk4M2M5ZDQzMjI4YTQxOTM5NmU3Yjk1NzhhMWQuLjNkMjBlOTE3
MTM2OGEzYWE2M2ZkN2NhODM4YjgzYWU5NGUzMzA0NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUwODEsNiArNTA4MSwxMSBA
QAogCQlFNTlERDRCODIxMDk4Mjg3MDAzQzhCNDcgLyogTGlzdEJ1dHRvbkFycm93LnBuZyBpbiBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU5REQ0QjcyMTA5
ODI4NTAwM0M4QjQ3IC8qIExpc3RCdXR0b25BcnJvdy5wbmcgKi87IH07CiAJCUU1QkE3RDYzMTUx
NDM3Q0EwMEZFMUUzRiAvKiBMZW5ndGhGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1QkE3RDYyMTUxNDM3Q0EwMEZFMUUzRiAvKiBMZW5n
dGhGdW5jdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlFNUM1OUE5QTI0RDBFMUFBMDAzQjg2RTEgLyogRGF0ZVRpbWVDaG9vc2VyUGFyYW1l
dGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVD
NTlBOTkyNEQwRTFBQTAwM0I4NkUxIC8qIERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFNUYwNkFFNzI0
RDQ4NDdCMDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1RjA2QUU1MjRENDg0N0IwMEJCQzRGOCAv
KiBEYXRlVGltZUZpZWxkRWxlbWVudC5oICovOyB9OworCQlFNUYwNkFFQjI0RDQ5QkY3MDBCQkM0
RjggLyogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUYwNkFFOTI0RDQ5QkY3MDBCQkM0RjggLyogRGF0
ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmggKi87IH07CisJCUU1RjA2QUVGMjRENEE2MzcwMEJC
QzRGOCAvKiBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUYwNkFFRDI0RDRBNjM3MDBCQkM0RjggLyog
RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oICovOyB9OworCQlFNUYwNkFGMzI0RDRBQUU0
MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUYwNkFGMTI0RDRBQUU0MDBCQkM0RjggLyogRGF0
ZVRpbWVGaWVsZEVsZW1lbnRzLmggKi87IH07CisJCUU1RjA2QUY3MjRENEJCNTYwMEJCQzRGOCAv
KiBEYXRlVGltZUVkaXRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNUYwNkFGNTI0RDRCQjU2MDBCQkM0RjggLyogRGF0ZVRpbWVFZGl0RWxl
bWVudC5oICovOyB9OwogCQlFNzE0NjdCMzI0QUJBRUYyMDBGQjJGNTAgLyogQXVkaW9Ob2RlT3B0
aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTcx
NDY3QjEyNEFCQUVGMTAwRkIyRjUwIC8qIEF1ZGlvTm9kZU9wdGlvbnMuaCAqLzsgfTsKIAkJRTcx
NDY3QjYyNEFCQUYxRDAwRkIyRjUwIC8qIFBhbm5lck9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU3MTQ2N0I1MjRBQkFGMUQwMEZCMkY1MCAv
KiBQYW5uZXJPcHRpb25zLmggKi87IH07CiAJCUU3NTVFODkyMjRDNzQzNEIwMDlGN0MyMyAvKiBQ
ZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTc1NUU4OEYyNEM3NDM0QjAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZUNv
bnN0cmFpbnRzLmggKi87IH07CkBAIC0xNTkyNiw2ICsxNTkzMSwxNiBAQAogCQlFNTlERDRCNzIx
MDk4Mjg1MDAzQzhCNDcgLyogTGlzdEJ1dHRvbkFycm93LnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9IExpc3RCdXR0
b25BcnJvdy5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1QkE3RDYyMTUxNDM3
Q0EwMEZFMUUzRiAvKiBMZW5ndGhGdW5jdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTGVuZ3RoRnVuY3Rpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUU1QzU5QTk5MjREMEUxQUEwMDNCODZFMSAvKiBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRl
cnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVGMDZBRTUyNEQ0ODQ3QjAwQkJD
NEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGVUaW1lRmll
bGRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1RjA2QUU2MjRENDg0
N0IwMEJCQzRGOCAvKiBEYXRlVGltZUZpZWxkRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBEYXRlVGltZUZpZWxkRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUU1RjA2QUU5MjRENDlCRjcwMEJCQzRGOCAvKiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1RjA2QUVBMjRENDlCRjcwMEJCQzRGOCAvKiBEYXRlVGlt
ZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGF0ZVRpbWVOdW1l
cmljRmllbGRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVGMDZB
RUQyNEQ0QTYzNzAwQkJDNEY4IC8qIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFNUYwNkFFRTI0RDRBNjM3MDBCQkM0RjggLyogRGF0ZVRpbWVTeW1i
b2xpY0ZpZWxkRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRlVGltZVN5bWJvbGlj
RmllbGRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVGMDZBRjEy
NEQ0QUFFNDAwQkJDNEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50cy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEYXRlVGltZUZpZWxkRWxlbWVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTVGMDZBRjIyNEQ0QUFFNDAwQkJDNEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50cy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBEYXRlVGltZUZpZWxkRWxlbWVudHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFNUYwNkFGNTI0RDRCQjU2MDBCQkM0RjggLyogRGF0ZVRpbWVFZGl0
RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRlVGltZUVkaXRFbGVtZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1RjA2QUY2MjRENEJCNTYwMEJCQzRGOCAvKiBEYXRlVGlt
ZUVkaXRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhdGVUaW1lRWRpdEVsZW1lbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNzE0NjdCMTI0QUJBRUYxMDBGQjJG
NTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBdWRpb05vZGVPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU3MTQ2
N0I0MjRBQkFGMEIwMEZCMkY1MCAvKiBBdWRpb05vZGVPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdWRpb05v
ZGVPcHRpb25zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTcxNDY3QjUyNEFC
QUYxRDAwRkIyRjUwIC8qIFBhbm5lck9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGFubmVyT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTg2NzUsNiArMTg2OTAsMTYgQEAKIAkJCQk3QzFFOTcyNTFBOUY5ODM0MDA3QkYwRkIgLyogQXV0
b0ZpbGxCdXR0b25FbGVtZW50LmNwcCAqLywKIAkJCQk3QzFFOTcyNjFBOUY5ODM0MDA3QkYwRkIg
LyogQXV0b0ZpbGxCdXR0b25FbGVtZW50LmggKi8sCiAJCQkJRTU4QjQ1QjgyMEFEMDdERDAwOTkx
MDI1IC8qIERhdGFMaXN0QnV0dG9uRWxlbWVudC5oICovLAorCQkJCUU1RjA2QUY2MjRENEJCNTYw
MEJCQzRGOCAvKiBEYXRlVGltZUVkaXRFbGVtZW50LmNwcCAqLywKKwkJCQlFNUYwNkFGNTI0RDRC
QjU2MDBCQkM0RjggLyogRGF0ZVRpbWVFZGl0RWxlbWVudC5oICovLAorCQkJCUU1RjA2QUU2MjRE
NDg0N0IwMEJCQzRGOCAvKiBEYXRlVGltZUZpZWxkRWxlbWVudC5jcHAgKi8sCisJCQkJRTVGMDZB
RTUyNEQ0ODQ3QjAwQkJDNEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50LmggKi8sCisJCQkJRTVG
MDZBRjIyNEQ0QUFFNDAwQkJDNEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50cy5jcHAgKi8sCisJ
CQkJRTVGMDZBRjEyNEQ0QUFFNDAwQkJDNEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50cy5oICov
LAorCQkJCUU1RjA2QUVBMjRENDlCRjcwMEJCQzRGOCAvKiBEYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQuY3BwICovLAorCQkJCUU1RjA2QUU5MjRENDlCRjcwMEJCQzRGOCAvKiBEYXRlVGltZU51
bWVyaWNGaWVsZEVsZW1lbnQuaCAqLywKKwkJCQlFNUYwNkFFRTI0RDRBNjM3MDBCQkM0RjggLyog
RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAgKi8sCisJCQkJRTVGMDZBRUQyNEQ0QTYz
NzAwQkJDNEY4IC8qIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaCAqLywKIAkJCQlBN0M5
QUJGNjEzNTdBM0JGMDBGNTUwM0YgLyogRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwICovLAogCQkJ
CUE3QzlBQkY3MTM1N0EzQkYwMEY1NTAzRiAvKiBEZXRhaWxzTWFya2VyQ29udHJvbC5oICovLAog
CQkJCTUxMDE5MkQzMThCNkI5QjcwMDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQu
Y3BwICovLApAQCAtMzA3NTMsOCArMzA3NzgsMTMgQEAKIAkJCQkzN0M3MzhGMzFFREJERThBMDAz
RjJCMEIgLyogRGF0ZVRpbWVDaG9vc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0M3MzhGNDFF
REJERThEMDAzRjJCMEIgLyogRGF0ZVRpbWVDaG9vc2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlFNUM1OUE5QTI0RDBFMUFBMDAzQjg2RTEgLyogRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVy
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTVGMDZBRjcyNEQ0QkI1NjAwQkJDNEY4IC8qIERhdGVU
aW1lRWRpdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUU1RjA2QUU3MjRENDg0N0IwMEJC
QzRGOCAvKiBEYXRlVGltZUZpZWxkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTVGMDZB
RjMyNEQ0QUFFNDAwQkJDNEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50cy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDUzRUI2MzcxNTlDNTcwNDAwMDAxQkI3IC8qIERhdGVUaW1lRm9ybWF0LmggaW4g
SGVhZGVycyAqLywKIAkJCQlGNTVCM0RCQTEyNTFGMTJEMDAzRUYyNjkgLyogRGF0ZVRpbWVMb2Nh
bElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTVGMDZBRUIyNEQ0OUJGNzAwQkJDNEY4
IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTVG
MDZBRUYyNEQ0QTYzNzAwQkJDNEY4IC8qIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGNkExMkJFMUEwMDkyMzcwMEM2REU3MiAvKiBEZWJ1Z1BhZ2VP
dmVybGF5cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDVGRUE1RDAxNTZEREU4QzAwNjU0MTAxIC8q
IERlY2ltYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTcxNUFENzIwMjA1MDUxMzIwMEQ1OTJEQyAv
KiBEZWNsYXJhdGl2ZUFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKaW5k
ZXggZGFmODkxOWViMTZkNzNkYzdmMDU5ZDMxZjAwMzYzYzViZTg3MjEyZS4uZGZjNTc4M2VkZTY0
NGY5Y2E2MmY1NzlhYTMwNjVkNzYzNzE1NDk5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL2h0bWwuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcwpAQCAtNDg0LDYg
KzQ4NCwzOSBAQCBpbnB1dDo6LXdlYmtpdC1kYXRlLWFuZC10aW1lLXZhbHVlIHsKICNlbmRpZgog
fQogCitpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0IHsKKyAgICBkaXNwbGF5OiBpbmxpbmUt
YmxvY2s7CisgICAgb3ZlcmZsb3c6IGhpZGRlbjsKK30KKworaW5wdXQ6Oi13ZWJraXQtZGF0ZXRp
bWUtZWRpdC1maWVsZHMtd3JhcHBlciB7CisgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworfQor
CitpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LXllYXItZmllbGQsCitpbnB1dDo6LXdlYmtp
dC1kYXRldGltZS1lZGl0LW1vbnRoLWZpZWxkLAoraW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRp
dC1kYXktZmllbGQgeworICAgIGRpc3BsYXk6IGlubGluZTsKKyAgICBwYWRkaW5nOiAxcHg7Cit9
CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQteWVhci1maWVsZDpmb2N1cywKK2lucHV0
Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtbW9udGgtZmllbGQ6Zm9jdXMsCitpbnB1dDo6LXdlYmtp
dC1kYXRldGltZS1lZGl0LWRheS1maWVsZDpmb2N1cyB7CisjaWYgZGVmaW5lZChXVEZfUExBVEZP
Uk1fQ09DT0EpICYmIFdURl9QTEFURk9STV9DT0NPQQorICAgIGJhY2tncm91bmQtY29sb3I6IC1h
cHBsZS1zeXN0ZW0tY29udHJvbC1hY2NlbnQ7CisgICAgY29sb3I6IHdoaXRlOworI2Vsc2UKKyAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBoaWdobGlnaHQ7CisgICAgY29sb3I6IGhpZ2hsaWdodHRleHQ7
CisjZW5kaWYKKyAgICBvdXRsaW5lOiBub25lOworfQorCitpbnB1dDo6LXdlYmtpdC1kYXRldGlt
ZS1lZGl0LXRleHQgeworICAgIGRpc3BsYXk6IGlubGluZTsKK30KKwogaW5wdXQ6Oi13ZWJraXQt
aW5uZXItc3Bpbi1idXR0b24gewogICAgIC13ZWJraXQtYXBwZWFyYW5jZTogaW5uZXItc3Bpbi1i
dXR0b247CiAgICAgZGlzcGxheTogYmxvY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCmluZGV4IDQy
NGI5Mjk0OGI0MzE4NDQwYmM1MWM1OGU4MGJlZDRiOWNjZjhiNDQuLjJhODQ0MjA1MTc2MTFiOWU1
Y2Q4YzVjMjZmNzYxZjYyZTU1MzQ1OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCkBAIC0zMSwx
NiArMzEsODggQEAKIAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkRhdGVUaW1lQ2hv
b3NlclBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJEYXRlVGltZUZvcm1hdC5oIgogI2luY2x1ZGUg
IkhUTUxEaXZFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1
ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUxvY2FsZS5oIgogI2luY2x1ZGUgIlJlbmRl
ckVsZW1lbnQuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3Qu
aCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIK
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitjbGFzcyBEYXRlVGltZUZvcm1hdFZhbGlkYXRvciBmaW5hbCA6IHB1YmxpYyBEYXRlVGltZUZv
cm1hdDo6VG9rZW5IYW5kbGVyIHsKK3B1YmxpYzoKKyAgICBEYXRlVGltZUZvcm1hdFZhbGlkYXRv
cigpIHsgfQorCisgICAgdm9pZCB2aXNpdEZpZWxkKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGUs
IGludCk7CisgICAgdm9pZCB2aXNpdExpdGVyYWwoY29uc3QgU3RyaW5nJikgeyB9CisKKyAgICBi
b29sIHZhbGlkYXRlRm9ybWF0KGNvbnN0IFN0cmluZyYgZm9ybWF0LCBjb25zdCBCYXNlQ2hvb3Nl
ck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZSYpOworCitwcml2YXRlOgorICAgIE9wdGlvblNldDxE
YXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPiBtX3Jlc3VsdHM7Cit9OworCit2b2lkIERh
dGVUaW1lRm9ybWF0VmFsaWRhdG9yOjp2aXNpdEZpZWxkKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5
cGUgZmllbGRUeXBlLCBpbnQpCit7CisgICAgc3dpdGNoIChmaWVsZFR5cGUpIHsKKyAgICBjYXNl
IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVZZWFyOgorICAgICAgICBtX3Jlc3VsdHMuYWRkKERh
dGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc1llYXIpOworICAgICAgICBicmVhazsK
KworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRoOgorICAgIGNhc2UgRGF0
ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRoU3RhbmRBbG9uZToKKyAgICAgICAgbV9yZXN1bHRz
LmFkZChEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNNb250aCk7CisgICAgICAg
IGJyZWFrOworCisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlV2Vla09mWWVhcjoK
KyAgICAgICAgbV9yZXN1bHRzLmFkZChEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpI
YXNXZWVrKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVs
ZFR5cGVEYXlPZk1vbnRoOgorICAgICAgICBtX3Jlc3VsdHMuYWRkKERhdGVUaW1lRm9ybWF0VmFs
aWRhdGlvblJlc3VsdHM6Okhhc0RheSk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBEYXRl
VGltZUZvcm1hdDo6RmllbGRUeXBlUGVyaW9kOgorICAgICAgICBtX3Jlc3VsdHMuYWRkKERhdGVU
aW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0FNUE0pOworICAgICAgICBicmVhazsKKwor
ICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIxMToKKyAgICBjYXNlIERhdGVU
aW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMTI6CisgICAgICAgIG1fcmVzdWx0cy5hZGQoRGF0ZVRp
bWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzSG91cik7CisgICAgICAgIGJyZWFrOworCisg
ICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjIzOgorICAgIGNhc2UgRGF0ZVRp
bWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIyNDoKKyAgICAgICAgbV9yZXN1bHRzLmFkZChEYXRlVGlt
ZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNIb3VyKTsKKyAgICAgICAgbV9yZXN1bHRzLmFk
ZChEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNBTVBNKTsKKyAgICAgICAgYnJl
YWs7CisKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNaW51dGU6CisgICAgICAg
IG1fcmVzdWx0cy5hZGQoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzTWludXRl
KTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVT
ZWNvbmQ6CisgICAgICAgIG1fcmVzdWx0cy5hZGQoRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVz
dWx0czo6SGFzU2Vjb25kKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAg
ICBicmVhazsKKyAgICB9Cit9CisKK2Jvb2wgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0b3I6OnZhbGlk
YXRlRm9ybWF0KGNvbnN0IFN0cmluZyYgZm9ybWF0LCBjb25zdCBCYXNlQ2hvb3Nlck9ubHlEYXRl
QW5kVGltZUlucHV0VHlwZSYgaW5wdXRUeXBlKQoreworICAgIGlmICghRGF0ZVRpbWVGb3JtYXQ6
OnBhcnNlKGZvcm1hdCwgKnRoaXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJu
IGlucHV0VHlwZS5pc1ZhbGlkRm9ybWF0KG1fcmVzdWx0cyk7Cit9CisKIEJhc2VDaG9vc2VyT25s
eURhdGVBbmRUaW1lSW5wdXRUeXBlOjp+QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5
cGUoKQogewogICAgIGNsb3NlRGF0ZVRpbWVDaG9vc2VyKCk7CkBAIC03OSwyNyArMTUxLDU1IEBA
IGJvb2wgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmlzUHJlc2VudGluZ0F0
dGFjaGVkVmlldygpIGNvbnN0CiAKIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1
dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdmFsdWVDb250YWluZXJQc2V1ZG8oIi13ZWJr
aXQtZGF0ZS1hbmQtdGltZS12YWx1ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKLQogICAgIEFTU0VSVChlbGVtZW50KCkpOwotICAgIGF1dG8gdmFsdWVDb250YWluZXIgPSBI
VE1MRGl2RWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSk7Ci0gICAgdmFsdWVD
b250YWluZXItPnNldFBzZXVkbyh2YWx1ZUNvbnRhaW5lclBzZXVkbyk7Ci0gICAgZWxlbWVudCgp
LT51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKHZhbHVlQ29udGFpbmVyKTsKKwor
ICAgIGF1dG8mIGVsZW1lbnQgPSAqdGhpcy0+ZWxlbWVudCgpOworICAgIGF1dG8mIGRvY3VtZW50
ID0gZWxlbWVudC5kb2N1bWVudCgpOworCisgICAgaWYgKGRvY3VtZW50LnNldHRpbmdzKCkuZGF0
ZVRpbWVJbnB1dHNFZGl0YWJsZUNvbXBvbmVudHNFbmFibGVkKCkpIHsKKyAgICAgICAgbV9kYXRl
VGltZUVkaXRFbGVtZW50ID0gRGF0ZVRpbWVFZGl0RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCAq
dGhpcyk7CisgICAgICAgIGVsZW1lbnQudXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGls
ZCgqbV9kYXRlVGltZUVkaXRFbGVtZW50KTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHZhbHVlQ29udGFpbmVy
UHNldWRvKCItd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFsdWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIGF1dG8gdmFsdWVDb250YWluZXIgPSBIVE1MRGl2RWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAgICAgdmFsdWVDb250YWluZXItPnNldFBzZXVk
byh2YWx1ZUNvbnRhaW5lclBzZXVkbyk7CisgICAgICAgIGVsZW1lbnQudXNlckFnZW50U2hhZG93
Um9vdCgpLT5hcHBlbmRDaGlsZCh2YWx1ZUNvbnRhaW5lcik7CisgICAgfQogICAgIHVwZGF0ZUlu
bmVyVGV4dFZhbHVlKCk7CiB9CiAKK3ZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1
dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkKK3sKKyAgICBJbnB1dFR5cGU6OmRlc3Ryb3lT
aGFkb3dTdWJ0cmVlKCk7CisgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50ID0gbnVsbHB0cjsKK30K
Kwogdm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6dXBkYXRlSW5uZXJU
ZXh0VmFsdWUoKQogewogICAgIEFTU0VSVChlbGVtZW50KCkpOwotICAgIFJlZlB0cjxOb2RlPiBu
b2RlID0gZWxlbWVudCgpLT51c2VyQWdlbnRTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKLSAg
ICBpZiAoIWlzPEhUTUxFbGVtZW50Pihub2RlKSkKKyAgICBpZiAoIW1fZGF0ZVRpbWVFZGl0RWxl
bWVudCkgeworICAgICAgICBhdXRvIG5vZGUgPSBlbGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jv
b3QoKS0+Zmlyc3RDaGlsZCgpOworICAgICAgICBpZiAoIWlzPEhUTUxFbGVtZW50Pihub2RlKSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgU3RyaW5nIGRpc3BsYXlWYWx1ZSA9IHZpc2li
bGVWYWx1ZSgpOworICAgICAgICBpZiAoZGlzcGxheVZhbHVlLmlzRW1wdHkoKSkgeworICAgICAg
ICAgICAgLy8gTmVlZCB0byBwdXQgc29tZXRoaW5nIHRvIGtlZXAgdGV4dCBiYXNlbGluZS4KKyAg
ICAgICAgICAgIGRpc3BsYXlWYWx1ZSA9ICIgIl9zOworICAgICAgICB9CisgICAgICAgIGRvd25j
YXN0PEhUTUxFbGVtZW50Pigqbm9kZSkuc2V0SW5uZXJUZXh0KGRpc3BsYXlWYWx1ZSk7CiAgICAg
ICAgIHJldHVybjsKLSAgICBTdHJpbmcgZGlzcGxheVZhbHVlID0gdmlzaWJsZVZhbHVlKCk7Ci0g
ICAgaWYgKGRpc3BsYXlWYWx1ZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgLy8gTmVlZCB0byBwdXQg
c29tZXRoaW5nIHRvIGtlZXAgdGV4dCBiYXNlbGluZS4KLSAgICAgICAgZGlzcGxheVZhbHVlID0g
IiAiX3M7CiAgICAgfQotICAgIGRvd25jYXN0PEhUTUxFbGVtZW50Pigqbm9kZSkuc2V0SW5uZXJU
ZXh0KGRpc3BsYXlWYWx1ZSk7CisKKyAgICBEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJh
bWV0ZXJzIGxheW91dFBhcmFtZXRlcnMoZWxlbWVudCgpLT5sb2NhbGUoKSk7CisgICAgc2V0dXBM
YXlvdXRQYXJhbWV0ZXJzKGxheW91dFBhcmFtZXRlcnMpOworCisgICAgaWYgKCFEYXRlVGltZUZv
cm1hdFZhbGlkYXRvcigpLnZhbGlkYXRlRm9ybWF0KGxheW91dFBhcmFtZXRlcnMuZGF0ZVRpbWVG
b3JtYXQsICp0aGlzKSkKKyAgICAgICAgbGF5b3V0UGFyYW1ldGVycy5kYXRlVGltZUZvcm1hdCA9
IGxheW91dFBhcmFtZXRlcnMuZmFsbGJhY2tEYXRlVGltZUZvcm1hdDsKKworICAgIGlmIChhdXRv
IGRhdGUgPSBwYXJzZVRvRGF0ZUNvbXBvbmVudHMoZWxlbWVudCgpLT52YWx1ZSgpKSkKKyAgICAg
ICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5zZXRWYWx1ZUFzRGF0ZShsYXlvdXRQYXJhbWV0ZXJz
LCAqZGF0ZSk7CisgICAgZWxzZQorICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnNldEVt
cHR5VmFsdWUobGF5b3V0UGFyYW1ldGVycyk7CiB9CiAKIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0
ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wgdmFs
dWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCkBAIC0xNzIs
NiArMjcyLDE4IEBAIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmF0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYKICAgICBCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGU6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSk7CiB9CiAKK1N0cmluZyBCYXNlQ2hvb3Nl
ck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6dmFsdWVGb3JFZGl0Q29udHJvbCgpIGNvbnN0Cit7
CisgICAgQVNTRVJUKGVsZW1lbnQoKSk7CisgICAgcmV0dXJuIGVsZW1lbnQoKS0+dmFsdWUoKTsK
K30KKworQXRvbVN0cmluZyBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6bG9j
YWxlSWRlbnRpZmllcigpIGNvbnN0Cit7CisgICAgQVNTRVJUKGVsZW1lbnQoKSk7CisgICAgcmV0
dXJuIGVsZW1lbnQoKS0+Y29tcHV0ZUluaGVyaXRlZExhbmd1YWdlKCk7Cit9CisKIH0KIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVB
bmRUaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlLmgKaW5kZXggMTRhMWVlMGIzMzIyNTAxNzliODc3MDA0YWVlOTFj
YWJlYjUwODAyMC4uYjMxOTMxOTFiNDM2Y2JhYWMwZTJhOTM0NDUyZGRjZmNkYjVkZDJiNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlu
cHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFu
ZFRpbWVJbnB1dFR5cGUuaApAQCAtMzIsMjAgKzMyLDQzIEBACiAjaW5jbHVkZSAiQmFzZURhdGVB
bmRUaW1lSW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVDaG9vc2VyLmgiCiAjaW5jbHVk
ZSAiRGF0ZVRpbWVDaG9vc2VyQ2xpZW50LmgiCisjaW5jbHVkZSAiRGF0ZVRpbWVFZGl0RWxlbWVu
dC5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1jbGFzcyBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZSA6IHB1YmxpYyBCYXNl
RGF0ZUFuZFRpbWVJbnB1dFR5cGUsIHByaXZhdGUgRGF0ZVRpbWVDaG9vc2VyQ2xpZW50IHsKK2Vu
dW0gY2xhc3MgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cyA6IHVpbnQ4X3QgeworICAg
IEhhc1llYXIgPSAxIDw8IDAsCisgICAgSGFzTW9udGggPSAxIDw8IDEsCisgICAgSGFzV2VlayA9
IDEgPDwgMiwKKyAgICBIYXNEYXkgPSAxIDw8IDMsCisgICAgSGFzQU1QTSA9IDEgPDwgNCwKKyAg
ICBIYXNIb3VyID0gMSA8PCA1LAorICAgIEhhc01pbnV0ZSA9IDEgPDwgNiwKKyAgICBIYXNTZWNv
bmQgPSAxIDw8IDcsCit9OworCitjbGFzcyBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0
VHlwZSA6IHB1YmxpYyBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUsIHByaXZhdGUgRGF0ZVRpbWVD
aG9vc2VyQ2xpZW50LCBwcml2YXRlIERhdGVUaW1lRWRpdEVsZW1lbnQ6OkVkaXRDb250cm9sT3du
ZXIgeworcHVibGljOgorICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxE
YXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPikgY29uc3QgPSAwOworCiBwcm90ZWN0ZWQ6
CiAgICAgZXhwbGljaXQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUoSFRNTElu
cHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVudCkg
eyB9CiAgICAgfkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlKCk7CiAKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6Okxh
eW91dFBhcmFtZXRlcnMmKSBjb25zdCA9IDA7CisKIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVJ
bm5lclRleHRWYWx1ZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgY2xvc2VEYXRlVGltZUNob29zZXIo
KTsKIAorICAgIC8vIERhdGVUaW1lRWRpdEVsZW1lbnQ6OkVkaXRDb250cm9sT3duZXIgZnVuY3Rp
b25zOgorICAgIFN0cmluZyB2YWx1ZUZvckVkaXRDb250cm9sKCkgY29uc3QgZmluYWw7CisgICAg
QXRvbVN0cmluZyBsb2NhbGVJZGVudGlmaWVyKCkgY29uc3QgZmluYWw7CisKICAgICAvLyBJbnB1
dFR5cGUgZnVuY3Rpb25zOgogICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZSgpIG92ZXJyaWRl
OworICAgIHZvaWQgZGVzdHJveVNoYWRvd1N1YnRyZWUoKSBvdmVycmlkZTsKICAgICB2b2lkIGRl
dGFjaCgpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2
YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIG92ZXJyaWRlOwogICAgIHZvaWQg
aGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOwpAQCAtNjMsNiArODYsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgZGlkRW5kQ2hvb3NlcigpIGZpbmFsOwogCiAgICAgc3RkOjp1
bmlxdWVfcHRyPERhdGVUaW1lQ2hvb3Nlcj4gbV9kYXRlVGltZUNob29zZXI7CisgICAgUmVmUHRy
PERhdGVUaW1lRWRpdEVsZW1lbnQ+IG1fZGF0ZVRpbWVFZGl0RWxlbWVudDsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGlt
ZUlucHV0VHlwZS5oCmluZGV4IDNlMTcyNDcwNjEzMjVkMGEyOGU0ZDE0Y2E5ODQwYWRkMmM1YjQ5
ZTIuLjgyN2QwMWI5ZjM2ZjI4MTc3YTdjMjBiYmZiMTVmMzI0OTkyMGNlMDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaApAQCAtNTMsOCArNTMs
OSBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZl
bnQqKSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgogCi1wcml2YXRlOgogICAgIHZpcnR1YWwgT3B0
aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHBhcnNlVG9EYXRlQ29tcG9uZW50cyhjb25zdCBTdHJpbmdW
aWV3JikgY29uc3QgPSAwOworCitwcml2YXRlOgogICAgIHZpcnR1YWwgT3B0aW9uYWw8RGF0ZUNv
bXBvbmVudHM+IHNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3VibGUpIGNvbnN0ID0g
MDsKIAogICAgIGRvdWJsZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKaW5kZXggYTVkNmQ5ZWYyODc5MjE2OGZlOWNmYmY2Njdh
YzAxNDlkZDMwODEwNC4uYzkxMmE0MDg3YjBhNjk2NTUxZGE5MzliYTViMzU1YjhjZTMzNjExMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAj
aW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2lu
Y2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1Mb2NhbGUuaCIKICNp
bmNsdWRlICJTdGVwUmFuZ2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODYsNSArODcs
MTYgQEAgYm9vbCBEYXRlSW5wdXRUeXBlOjppc0RhdGVGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKK2Jvb2wgRGF0ZUlucHV0VHlwZTo6aXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8
RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4gcmVzdWx0cykgY29uc3QKK3sKKyAgICBy
ZXR1cm4gcmVzdWx0cy5jb250YWluc0FsbCh7IERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3Vs
dHM6Okhhc1llYXIsIERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc01vbnRoLCBE
YXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNEYXkgfSk7Cit9CisKK3ZvaWQgRGF0
ZUlucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6Okxh
eW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMpIGNvbnN0Cit7CisgICAgbGF5b3V0UGFy
YW1ldGVycy5kYXRlVGltZUZvcm1hdCA9IGxheW91dFBhcmFtZXRlcnMubG9jYWxlLmRhdGVGb3Jt
YXQoKTsKKyAgICBsYXlvdXRQYXJhbWV0ZXJzLmZhbGxiYWNrRGF0ZVRpbWVGb3JtYXQgPSAieXl5
eS1NTS1kZCJfczsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRGF0ZUlucHV0VHlwZS5oCmluZGV4IDMzNTUwNzRiZTZkNWYyZTJmNjM4ODA2NjJkMzk2
MDY1ZGU2OWJmMmIuLmQ4OTkyMzMyZjhhNWIzMWZjNjAwNTU2NTAxNWZjNzJkZTEyMDdiOTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCkBAIC00Nyw2ICs0Nyw5IEBAIHByaXZhdGU6
CiAgICAgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHBhcnNlVG9EYXRlQ29tcG9uZW50cyhjb25z
dCBTdHJpbmdWaWV3JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgT3B0aW9uYWw8RGF0ZUNvbXBvbmVu
dHM+IHNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3VibGUpIGNvbnN0IG92ZXJyaWRl
OwogICAgIGJvb2wgaXNEYXRlRmllbGQoKSBjb25zdCBvdmVycmlkZTsKKworICAgIGJvb2wgaXNW
YWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4pIGNv
bnN0IGZpbmFsOworICAgIHZvaWQgc2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVs
ZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25zdCBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2Nh
bElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5
cGUuY3BwCmluZGV4IGRiNjM5MDhmYTY0NTJmZGZlZTBiMWUzYTU2ZjM2N2MwMWI3YzJkMjkuLmVh
MGY3OGZlODBhZTY2ZmMxMWJjOTQ2ZjBhNzM4YjdhYjUzYjU4MDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcApAQCAtOTUsNiArOTUsMTUgQEAg
Ym9vbCBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjppc0RhdGVUaW1lTG9jYWxGaWVsZCgpIGNvbnN0
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6aXNW
YWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4gcmVz
dWx0cykgY29uc3QKK3sKKyAgICByZXR1cm4gcmVzdWx0cy5jb250YWluc0FsbCh7IERhdGVUaW1l
Rm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc1llYXIsIERhdGVUaW1lRm9ybWF0VmFsaWRhdGlv
blJlc3VsdHM6Okhhc01vbnRoLCBEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNE
YXksIERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0hvdXIsIERhdGVUaW1lRm9y
bWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc01pbnV0ZSB9KTsKK30KKwordm9pZCBEYXRlVGltZUxv
Y2FsSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6
TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0Cit7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJ
bnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5o
CmluZGV4IDJjMDQ5NDlmMGYwYTZkOTBmMzI0OGU0ZWY5MGI4MDAwMTk3NDk0YTUuLmY3ZjBhZTcy
MjMzYTY4ZDM5YzdiMjAzYWMxYzIyZTliNjUwMzNhYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCkBAIC00OSw2ICs0OSw5IEBAIHByaXZhdGU6CiAg
ICAgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHBhcnNlVG9EYXRlQ29tcG9uZW50cyhjb25zdCBT
dHJpbmdWaWV3JikgY29uc3QgZmluYWw7CiAgICAgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHNl
dE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3VibGUpIGNvbnN0IGZpbmFsOwogICAgIGJv
b2wgaXNEYXRlVGltZUxvY2FsRmllbGQoKSBjb25zdCBmaW5hbDsKKworICAgIGJvb2wgaXNWYWxp
ZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4pIGNvbnN0
IGZpbmFsOworICAgIHZvaWQgc2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1l
bnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25zdCBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKaW5kZXggOTljZmM0
Y2ZlMjAzY2U0ZTY0MDk3MGRjOWU5Y2U2OWRiNWVmNzg4Ni4uYjg2YTQ4Y2U2MDIzNzMzYzAyMDZm
ZjZmNWUwMWU0NTkxYzlmNDhmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250
aElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5j
cHAKQEAgLTEzMyw2ICsxMzMsMTUgQEAgdm9pZCBNb250aElucHV0VHlwZTo6aGFuZGxlRE9NQWN0
aXZhdGVFdmVudChFdmVudCYpCiB7CiB9CiAKK2Jvb2wgTW9udGhJbnB1dFR5cGU6OmlzVmFsaWRG
b3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+IHJlc3VsdHMp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHJlc3VsdHMuY29udGFpbnNBbGwoeyBEYXRlVGltZUZvcm1h
dFZhbGlkYXRpb25SZXN1bHRzOjpIYXNZZWFyLCBEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1
bHRzOjpIYXNNb250aCB9KTsKK30KKwordm9pZCBNb250aElucHV0VHlwZTo6c2V0dXBMYXlvdXRQ
YXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25zdAor
eworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9N
b250aElucHV0VHlwZS5oCmluZGV4IDRiYmQxMWRkMGUwMjc0MDk1OTdiOTEzYWQ5YmEzZDg0OGUw
NmY3OTcuLjFlZmMyN2MxMjI0MjVkMzBlNzNjMmFiNmU1YTMwMWEyZDQ4NGJhZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKQEAgLTUyLDYgKzUyLDkgQEAgcHJpdmF0ZToKICAg
ICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRz
KGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc01vbnRoRmllbGQoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2b2lkIGhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmKSBvdmVycmlk
ZTsKKworICAgIGJvb2wgaXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxp
ZGF0aW9uUmVzdWx0cz4pIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0dXBMYXlvdXRQYXJhbWV0
ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25zdCBmaW5hbDsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5
cGUuY3BwCmluZGV4IDQzODJmODU4YWQ0MmQ5ZGVkMDEzZWZjMWY5N2Y5NTBlMWRjMWY0MTQuLmY2
ZTYwMjlhZjRjYWI0YjJmNTRhMGQ5ZmE4MTViNzU2ODMyZGRjMzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9UaW1lSW5wdXRUeXBlLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkhUTUxJbnB1
dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVO
YW1lcy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTG9jYWxlLmgiCiAjaW5jbHVkZSAiU3RlcFJhbmdl
LmgiCiAjaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMu
aD4KQEAgLTEwOCw2ICsxMDksMTUgQEAgdm9pZCBUaW1lSW5wdXRUeXBlOjpoYW5kbGVET01BY3Rp
dmF0ZUV2ZW50KEV2ZW50JikKIHsKIH0KIAorYm9vbCBUaW1lSW5wdXRUeXBlOjppc1ZhbGlkRm9y
bWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPiByZXN1bHRzKSBj
b25zdAoreworICAgIHJldHVybiByZXN1bHRzLmNvbnRhaW5zQWxsKHsgRGF0ZVRpbWVGb3JtYXRW
YWxpZGF0aW9uUmVzdWx0czo6SGFzSG91ciwgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0
czo6SGFzTWludXRlIH0pOworfQorCit2b2lkIFRpbWVJbnB1dFR5cGU6OnNldHVwTGF5b3V0UGFy
YW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29uc3QKK3sK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1l
SW5wdXRUeXBlLmgKaW5kZXggMWU4NjBjMzE3ZmZkYzAxYzljZWM2ZmZiNGUzZDM0MDI5YzAzZmZk
Yy4uNWY3ZDEyMGQxYmM5NTg4NGM1MzU4MTJkNjhjNjg5OTZkZTMwMTlhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9UaW1lSW5wdXRUeXBlLmgKQEAgLTQ5LDYgKzQ5LDkgQEAgcHJpdmF0ZToKICAgICBPcHRp
b25hbDxEYXRlQ29tcG9uZW50cz4gc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJs
ZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1RpbWVGaWVsZCgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOworCisg
ICAgYm9vbCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25S
ZXN1bHRzPikgY29uc3QgZmluYWw7CisgICAgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0
ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0IGZpbmFsOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9X
ZWVrSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAK
aW5kZXggZmZhNzY1Y2NiNTFhM2ZmZWNiMWYzNGQ1NTQyNTEyYWM1YThhM2VjOS4uYzlhOTY2ZmY2
MTUwODdhNWY3MWZjOGY1MDE3OTJkYTI3ZGZjNzE1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJ
bnB1dFR5cGUuY3BwCkBAIC04Niw2ICs4NiwxNSBAQCB2b2lkIFdlZWtJbnB1dFR5cGU6OmhhbmRs
ZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmKQogewogfQogCitib29sIFdlZWtJbnB1dFR5cGU6Omlz
VmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+IHJl
c3VsdHMpIGNvbnN0Cit7CisgICAgcmV0dXJuIHJlc3VsdHMuY29udGFpbnNBbGwoeyBEYXRlVGlt
ZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNZZWFyLCBEYXRlVGltZUZvcm1hdFZhbGlkYXRp
b25SZXN1bHRzOjpIYXNXZWVrIH0pOworfQorCit2b2lkIFdlZWtJbnB1dFR5cGU6OnNldHVwTGF5
b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29u
c3QKK3sKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9XZWVrSW5wdXRUeXBlLmgKaW5kZXggNTA5ODE3NDRiZmU0ZWJiNzEzYWZlYjg5YjZmMGRhZGE4
NjE1YWI4MC4uOTE2ZTMzNTQ2YzM5NjA5ODcyMTE1NjViMWRjNzBhYWU2MzQ4ZjU2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKQEAgLTQ4LDYgKzQ4LDkgQEAgcHJpdmF0ZToKICAg
ICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRz
KGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1dlZWtGaWVsZCgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRl
OworCisgICAgYm9vbCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlk
YXRpb25SZXN1bHRzPikgY29uc3QgZmluYWw7CisgICAgdm9pZCBzZXR1cExheW91dFBhcmFtZXRl
cnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0IGZpbmFsOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTFlZDU3YWNiNjJl
YzY3YjY2MTI3N2QxM2Y2NDkxOTExOWE0NDFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKQEAgLTAsMCArMSwyMjEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEYXRlVGltZUVk
aXRFbGVtZW50LmgiCisKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKwor
I2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCisjaW5jbHVkZSAiRGF0ZVRpbWVGaWVsZEVsZW1l
bnRzLmgiCisjaW5jbHVkZSAiRGF0ZVRpbWVGb3JtYXQuaCIKKyNpbmNsdWRlICJEYXRlVGltZVN5
bWJvbGljRmllbGRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1Mb2NhbGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVkZSA8d3RmL0lzb01h
bGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKERhdGVUaW1lRWRpdEVsZW1lbnQpOworCitjbGFzcyBEYXRl
VGltZUVkaXRCdWlsZGVyIGZpbmFsIDogcHJpdmF0ZSBEYXRlVGltZUZvcm1hdDo6VG9rZW5IYW5k
bGVyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEYXRlVGltZUVkaXRCdWlsZGVyKTsKKwor
cHVibGljOgorICAgIERhdGVUaW1lRWRpdEJ1aWxkZXIoRGF0ZVRpbWVFZGl0RWxlbWVudCYsIGNv
bnN0IERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKTsKKworICAgIGJvb2wg
YnVpbGQoY29uc3QgU3RyaW5nJik7CisKK3ByaXZhdGU6CisgICAgLy8gRGF0ZVRpbWVGb3JtYXQ6
OlRva2VuSGFuZGxlciBmdW5jdGlvbnM6CisgICAgdm9pZCB2aXNpdEZpZWxkKERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGUsIGludCk7CisgICAgdm9pZCB2aXNpdExpdGVyYWwoY29uc3QgU3RyaW5n
Jik7CisKKyAgICBEYXRlVGltZUVkaXRFbGVtZW50JiBtX2VkaXRFbGVtZW50OworICAgIGNvbnN0
IERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmIG1fcGFyYW1ldGVyczsKK307
CisKK0RhdGVUaW1lRWRpdEJ1aWxkZXI6OkRhdGVUaW1lRWRpdEJ1aWxkZXIoRGF0ZVRpbWVFZGl0
RWxlbWVudCYgZWxlbWVudCwgY29uc3QgRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1l
dGVycyYgbGF5b3V0UGFyYW1ldGVycykKKyAgICA6IG1fZWRpdEVsZW1lbnQoZWxlbWVudCkKKyAg
ICAsIG1fcGFyYW1ldGVycyhsYXlvdXRQYXJhbWV0ZXJzKQoreworfQorCitib29sIERhdGVUaW1l
RWRpdEJ1aWxkZXI6OmJ1aWxkKGNvbnN0IFN0cmluZyYgZm9ybWF0U3RyaW5nKQoreworICAgIG1f
ZWRpdEVsZW1lbnQucmVzZXRGaWVsZHMoKTsKKyAgICByZXR1cm4gRGF0ZVRpbWVGb3JtYXQ6OnBh
cnNlKGZvcm1hdFN0cmluZywgKnRoaXMpOworfQorCit2b2lkIERhdGVUaW1lRWRpdEJ1aWxkZXI6
OnZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSBmaWVsZFR5cGUsIGludCBjb3Vu
dCkKK3sKKyAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBtX2VkaXRFbGVtZW50LmRvY3VtZW50KCk7
CisKKyAgICBzd2l0Y2ggKGZpZWxkVHlwZSkgeworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZp
ZWxkVHlwZURheU9mTW9udGg6IHsKKyAgICAgICAgbV9lZGl0RWxlbWVudC5hZGRGaWVsZChEYXRl
VGltZURheUZpZWxkRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtX2VkaXRFbGVtZW50KSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5
cGVNb250aDoKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNb250aFN0YW5kQWxv
bmU6IHsKKyAgICAgICAgY29uc3RleHByIGludCBjb3VudEZvckFiYnJldmlhdGVkTW9udGggPSAz
OworICAgICAgICBjb25zdGV4cHIgaW50IGNvdW50Rm9yRnVsbE1vbnRoID0gNDsKKyAgICAgICAg
Y29uc3RleHByIGludCBjb3VudEZvck5hcnJvd01vbnRoID0gNTsKKworICAgICAgICBzd2l0Y2gg
KGNvdW50KSB7CisgICAgICAgIGNhc2UgY291bnRGb3JOYXJyb3dNb250aDoKKyAgICAgICAgY2Fz
ZSBjb3VudEZvckFiYnJldmlhdGVkTW9udGg6IHsKKyAgICAgICAgICAgIGF1dG8gZmllbGQgPSBE
YXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0
RWxlbWVudCwgZmllbGRUeXBlID09IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNb250aCA/IG1f
cGFyYW1ldGVycy5sb2NhbGUuc2hvcnRNb250aExhYmVscygpIDogbV9wYXJhbWV0ZXJzLmxvY2Fs
ZS5zaG9ydFN0YW5kQWxvbmVNb250aExhYmVscygpKTsKKyAgICAgICAgICAgIG1fZWRpdEVsZW1l
bnQuYWRkRmllbGQoZmllbGQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAg
ICAgIGNhc2UgY291bnRGb3JGdWxsTW9udGg6IHsKKyAgICAgICAgICAgIGF1dG8gZmllbGQgPSBE
YXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0
RWxlbWVudCwgZmllbGRUeXBlID09IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNb250aCA/IG1f
cGFyYW1ldGVycy5sb2NhbGUubW9udGhMYWJlbHMoKSA6IG1fcGFyYW1ldGVycy5sb2NhbGUuc3Rh
bmRBbG9uZU1vbnRoTGFiZWxzKCkpOworICAgICAgICAgICAgbV9lZGl0RWxlbWVudC5hZGRGaWVs
ZChmaWVsZCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIG1fZWRpdEVsZW1lbnQuYWRkRmllbGQoRGF0ZVRpbWVNb250aEZpZWxk
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtX2VkaXRFbGVtZW50KSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVs
ZFR5cGVZZWFyOiB7CisgICAgICAgIG1fZWRpdEVsZW1lbnQuYWRkRmllbGQoRGF0ZVRpbWVZZWFy
RmllbGRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIG1fZWRpdEVsZW1lbnQpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9
CisKK3ZvaWQgRGF0ZVRpbWVFZGl0QnVpbGRlcjo6dmlzaXRMaXRlcmFsKGNvbnN0IFN0cmluZyYg
dGV4dCkKK3sKKyAgICBBU1NFUlQodGV4dC5sZW5ndGgoKSk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0ZXh0UHNldWRvSWQoIi13ZWJraXQt
ZGF0ZXRpbWUtZWRpdC10ZXh0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIGF1dG8gZWxlbWVudCA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUobV9lZGl0RWxlbWVudC5k
b2N1bWVudCgpKTsKKyAgICBlbGVtZW50LT5zZXRQc2V1ZG8odGV4dFBzZXVkb0lkKTsKKyAgICBl
bGVtZW50LT5hcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUobV9lZGl0RWxlbWVudC5kb2N1bWVudCgp
LCB0ZXh0KSk7CisgICAgbV9lZGl0RWxlbWVudC5maWVsZHNXcmFwcGVyRWxlbWVudCgpLmFwcGVu
ZENoaWxkKGVsZW1lbnQpOworfQorCitEYXRlVGltZUVkaXRFbGVtZW50OjpFZGl0Q29udHJvbE93
bmVyOjp+RWRpdENvbnRyb2xPd25lcigpID0gZGVmYXVsdDsKKworRGF0ZVRpbWVFZGl0RWxlbWVu
dDo6RGF0ZVRpbWVFZGl0RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEVkaXRDb250cm9sT3du
ZXImIGVkaXRDb250cm9sT3duZXIpCisgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3Vt
ZW50KQorICAgICwgbV9lZGl0Q29udHJvbE93bmVyKG1ha2VXZWFrUHRyKGVkaXRDb250cm9sT3du
ZXIpKQoreworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gZGF0ZVRpbWVFZGl0UHNldWRvSWQoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdCIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzZXRQc2V1ZG8oZGF0ZVRpbWVFZGl0
UHNldWRvSWQpOworfQorCitEYXRlVGltZUVkaXRFbGVtZW50Ojp+RGF0ZVRpbWVFZGl0RWxlbWVu
dCgpID0gZGVmYXVsdDsKKworaW5saW5lIEVsZW1lbnQmIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZp
ZWxkc1dyYXBwZXJFbGVtZW50KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoZmlyc3RDaGlsZCgpKTsK
KyAgICByZXR1cm4gZG93bmNhc3Q8RWxlbWVudD4oKmZpcnN0Q2hpbGQoKSk7Cit9CisKK3ZvaWQg
RGF0ZVRpbWVFZGl0RWxlbWVudDo6YWRkRmllbGQoUmVmPERhdGVUaW1lRmllbGRFbGVtZW50PiBm
aWVsZCkKK3sKKyAgICBpZiAobV9maWVsZHMuc2l6ZSgpID09IG1fZmllbGRzLmNhcGFjaXR5KCkp
CisgICAgICAgIHJldHVybjsKKyAgICBtX2ZpZWxkcy5hcHBlbmQoZmllbGQpOworICAgIGZpZWxk
c1dyYXBwZXJFbGVtZW50KCkuYXBwZW5kQ2hpbGQoZmllbGQpOworfQorCitSZWY8RGF0ZVRpbWVF
ZGl0RWxlbWVudD4gRGF0ZVRpbWVFZGl0RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVu
dCwgRWRpdENvbnRyb2xPd25lciYgZWRpdENvbnRyb2xPd25lcikKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBEYXRlVGltZUVkaXRFbGVtZW50KGRvY3VtZW50LCBlZGl0Q29udHJvbE93bmVy
KSk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6bGF5b3V0KGNvbnN0IExheW91dFBh
cmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMpCit7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmaWVsZHNXcmFwcGVyUHNldWRvSWQoIi13ZWJr
aXQtZGF0ZXRpbWUtZWRpdC1maWVsZHMtd3JhcHBlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKworICAgIGlmICghZmlyc3RDaGlsZCgpKSB7CisgICAgICAgIGF1dG8gZWxl
bWVudCA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgICAgIGVsZW1l
bnQtPnNldFBzZXVkbyhmaWVsZHNXcmFwcGVyUHNldWRvSWQpOworICAgICAgICBhcHBlbmRDaGls
ZChlbGVtZW50KTsKKyAgICB9CisKKyAgICBFbGVtZW50JiBmaWVsZHNXcmFwcGVyID0gZmllbGRz
V3JhcHBlckVsZW1lbnQoKTsKKworICAgIERhdGVUaW1lRWRpdEJ1aWxkZXIgYnVpbGRlcigqdGhp
cywgbGF5b3V0UGFyYW1ldGVycyk7CisgICAgTm9kZSogbGFzdENoaWxkVG9CZVJlbW92ZWQgPSBm
aWVsZHNXcmFwcGVyLmxhc3RDaGlsZCgpOworICAgIGlmICghYnVpbGRlci5idWlsZChsYXlvdXRQ
YXJhbWV0ZXJzLmRhdGVUaW1lRm9ybWF0KSB8fCBtX2ZpZWxkcy5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgbGFzdENoaWxkVG9CZVJlbW92ZWQgPSBmaWVsZHNXcmFwcGVyLmxhc3RDaGlsZCgpOworICAg
ICAgICBidWlsZGVyLmJ1aWxkKGxheW91dFBhcmFtZXRlcnMuZmFsbGJhY2tEYXRlVGltZUZvcm1h
dCk7CisgICAgfQorCisgICAgaWYgKGxhc3RDaGlsZFRvQmVSZW1vdmVkKSB7CisgICAgICAgIHdo
aWxlIChhdXRvKiBjaGlsZE5vZGUgPSBmaWVsZHNXcmFwcGVyLmZpcnN0Q2hpbGQoKSkgeworICAg
ICAgICAgICAgZmllbGRzV3JhcHBlci5yZW1vdmVDaGlsZCgqY2hpbGROb2RlKTsKKyAgICAgICAg
ICAgIGlmIChjaGlsZE5vZGUgPT0gbGFzdENoaWxkVG9CZVJlbW92ZWQpCisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK0F0b21TdHJpbmcgRGF0ZVRpbWVFZGl0
RWxlbWVudDo6bG9jYWxlSWRlbnRpZmllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZWRpdENv
bnRyb2xPd25lciA/IG1fZWRpdENvbnRyb2xPd25lci0+bG9jYWxlSWRlbnRpZmllcigpIDogbnVs
bEF0b20oKTsKK30KKwordm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpyZXNldEZpZWxkcygpCit7
CisgICAgbV9maWVsZHMuc2hyaW5rKDApOworfQorCit2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6
OnNldFZhbHVlQXNEYXRlKGNvbnN0IExheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMs
IGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQoreworICAgIGxheW91dChsYXlvdXRQYXJhbWV0
ZXJzKTsKKyAgICBmb3IgKGF1dG8mIGZpZWxkIDogbV9maWVsZHMpCisgICAgICAgIGZpZWxkLT5z
ZXRWYWx1ZUFzRGF0ZShkYXRlKTsKK30KKwordm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpzZXRF
bXB0eVZhbHVlKGNvbnN0IExheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMpCit7Cisg
ICAgbGF5b3V0KGxheW91dFBhcmFtZXRlcnMpOworICAgIGZvciAoYXV0byYgZmllbGQgOiBtX2Zp
ZWxkcykKKyAgICAgICAgZmllbGQtPnNldEVtcHR5VmFsdWUoKTsKK30KKworU3RyaW5nIERhdGVU
aW1lRWRpdEVsZW1lbnQ6OnZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9lZGl0Q29udHJv
bE93bmVyID8gbV9lZGl0Q29udHJvbE93bmVyLT52YWx1ZUZvckVkaXRDb250cm9sKCkgOiBlbXB0
eVN0cmluZygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNGI1YmIwMWY1NDMzOTZj
N2I2NmZkYzE3NTJlYTU3YWJiNmZmYjI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oCkBAIC0wLDAgKzEsOTYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRf
VFlQRVMpCisKKyNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgorI2luY2x1ZGUgIkRhdGVUaW1l
RmllbGRFbGVtZW50LmgiCisKKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIExvY2FsZTsKKworY2xhc3MgRGF0ZVRpbWVFZGl0RWxlbWVudCBm
aW5hbCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCwgcHVibGljIERhdGVUaW1lRmllbGRFbGVtZW50
OjpGaWVsZE93bmVyIHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKERhdGVUaW1lRWRpdEVs
ZW1lbnQpOworcHVibGljOgorICAgIGNsYXNzIEVkaXRDb250cm9sT3duZXIgOiBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8RWRpdENvbnRyb2xPd25lcj4geworICAgIHB1YmxpYzoKKyAgICAgICAgdmly
dHVhbCB+RWRpdENvbnRyb2xPd25lcigpOworICAgICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZUZv
ckVkaXRDb250cm9sKCkgY29uc3QgPSAwOworICAgICAgICB2aXJ0dWFsIEF0b21TdHJpbmcgbG9j
YWxlSWRlbnRpZmllcigpIGNvbnN0ID0gMDsKKyAgICB9OworCisgICAgc3RydWN0IExheW91dFBh
cmFtZXRlcnMgeworICAgICAgICBTdHJpbmcgZGF0ZVRpbWVGb3JtYXQ7CisgICAgICAgIFN0cmlu
ZyBmYWxsYmFja0RhdGVUaW1lRm9ybWF0OworICAgICAgICBMb2NhbGUmIGxvY2FsZTsKKworICAg
ICAgICBMYXlvdXRQYXJhbWV0ZXJzKExvY2FsZSYgbG9jYWxlKQorICAgICAgICAgICAgOiBsb2Nh
bGUobG9jYWxlKQorICAgICAgICB7CisgICAgICAgIH0KKyAgICB9OworCisgICAgc3RhdGljIFJl
ZjxEYXRlVGltZUVkaXRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmLCBFZGl0Q29udHJvbE93bmVy
Jik7CisKKyAgICB2aXJ0dWFsIH5EYXRlVGltZUVkaXRFbGVtZW50KCk7CisgICAgdm9pZCBhZGRG
aWVsZChSZWY8RGF0ZVRpbWVGaWVsZEVsZW1lbnQ+KTsKKyAgICBFbGVtZW50JiBmaWVsZHNXcmFw
cGVyRWxlbWVudCgpIGNvbnN0OworICAgIHZvaWQgcmVzZXRGaWVsZHMoKTsKKyAgICB2b2lkIHNl
dEVtcHR5VmFsdWUoY29uc3QgTGF5b3V0UGFyYW1ldGVycyYpOworICAgIHZvaWQgc2V0VmFsdWVB
c0RhdGUoY29uc3QgTGF5b3V0UGFyYW1ldGVycyYsIGNvbnN0IERhdGVDb21wb25lbnRzJik7Cisg
ICAgU3RyaW5nIHZhbHVlKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgLy8gRGF0ZXRpbWUgY2Fu
IGJlIHJlcHJlc2VudGVkIGJ5IGF0IG1vc3QgOCBmaWVsZHM6CisgICAgLy8gMS4geWVhcgorICAg
IC8vIDIuIG1vbnRoCisgICAgLy8gMy4gZGF5LW9mLW1vbnRoCisgICAgLy8gNC4gaG91cgorICAg
IC8vIDUuIG1pbnV0ZQorICAgIC8vIDYuIHNlY29uZAorICAgIC8vIDcuIG1pbGxpc2Vjb25kCisg
ICAgLy8gOC4gQU0vUE0KKyAgICBzdGF0aWMgY29uc3RleHByIGludCBtYXhpbXVtTnVtYmVyT2ZG
aWVsZHMgPSA4OworCisgICAgRGF0ZVRpbWVFZGl0RWxlbWVudChEb2N1bWVudCYsIEVkaXRDb250
cm9sT3duZXImKTsKKworICAgIHZvaWQgbGF5b3V0KGNvbnN0IExheW91dFBhcmFtZXRlcnMmKTsK
KworICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50OjpGaWVsZE93bmVyIGZ1bmN0aW9uczoKKyAg
ICBBdG9tU3RyaW5nIGxvY2FsZUlkZW50aWZpZXIoKSBjb25zdCBmaW5hbDsKKworICAgIFZlY3Rv
cjxSZWY8RGF0ZVRpbWVGaWVsZEVsZW1lbnQ+LCBtYXhpbXVtTnVtYmVyT2ZGaWVsZHM+IG1fZmll
bGRzOworICAgIFdlYWtQdHI8RWRpdENvbnRyb2xPd25lcj4gbV9lZGl0Q29udHJvbE93bmVyOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEVfQU5E
X1RJTUVfSU5QVVRfVFlQRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9EYXRlVGltZUZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZUZpZWxkRWxlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGRmNTJhMGZhZGQ2MjViNmI4MzYw
OWM5MTZmOGM2NzI5MWQ4NDY3MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmNwcApAQCAtMCwwICsxLDg4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGF0ZVRpbWVGaWVsZEVsZW1l
bnQuaCIKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorCisjaW5jbHVk
ZSAiRGF0ZUNvbXBvbmVudHMuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJM
b2NhbGl6ZWRTdHJpbmdzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1Mb2NhbGUuaCIKKyNpbmNsdWRl
ICJUZXh0LmgiCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworV1RGX01BS0VfSVNPX0FM
TE9DQVRFRF9JTVBMKERhdGVUaW1lRmllbGRFbGVtZW50KTsKKworRGF0ZVRpbWVGaWVsZEVsZW1l
bnQ6OkZpZWxkT3duZXI6On5GaWVsZE93bmVyKCkgPSBkZWZhdWx0OworCitEYXRlVGltZUZpZWxk
RWxlbWVudDo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93
bmVyJiBmaWVsZE93bmVyKQorICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCBkb2N1bWVudCkK
KyAgICAsIG1fZmllbGRPd25lcihtYWtlV2Vha1B0cihmaWVsZE93bmVyKSkKK3sKK30KKwordm9p
ZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6aW5pdGlhbGl6ZShjb25zdCBBdG9tU3RyaW5nJiBwc2V1
ZG8pCit7CisgICAgc2V0UHNldWRvKHBzZXVkbyk7Cit9CisKK0xvY2FsZSYgRGF0ZVRpbWVGaWVs
ZEVsZW1lbnQ6OmxvY2FsZUZvck93bmVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQo
KS5nZXRDYWNoZWRMb2NhbGUobG9jYWxlSWRlbnRpZmllcigpKTsKK30KKworQXRvbVN0cmluZyBE
YXRlVGltZUZpZWxkRWxlbWVudDo6bG9jYWxlSWRlbnRpZmllcigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fZmllbGRPd25lciA/IG1fZmllbGRPd25lci0+bG9jYWxlSWRlbnRpZmllcigpIDogbnVs
bEF0b20oKTsKK30KKwordm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6dXBkYXRlVmlzaWJsZVZh
bHVlKCkKK3sKKyAgICBpZiAoIWZpcnN0Q2hpbGQoKSkKKyAgICAgICAgYXBwZW5kQ2hpbGQoVGV4
dDo6Y3JlYXRlKGRvY3VtZW50KCksIGVtcHR5U3RyaW5nKCkpKTsKKworICAgIGF1dG8mIHRleHRO
b2RlID0gZG93bmNhc3Q8VGV4dD4oKmZpcnN0Q2hpbGQoKSk7CisgICAgU3RyaW5nIG5ld1Zpc2li
bGVWYWx1ZSA9IHZpc2libGVWYWx1ZSgpOworICAgIGlmICh0ZXh0Tm9kZS53aG9sZVRleHQoKSA9
PSBuZXdWaXNpYmxlVmFsdWUpCisgICAgICAgIHJldHVybjsKKworICAgIHRleHROb2RlLnJlcGxh
Y2VXaG9sZVRleHQobmV3VmlzaWJsZVZhbHVlKTsKK30KKworYm9vbCBEYXRlVGltZUZpZWxkRWxl
bWVudDo6c3VwcG9ydHNGb2N1cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lO
UFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVGaWVsZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmll
bGRFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGZhNGQxNTY1MTM2ZmIyOTllNGFhYTE1NGQ5ZDM0OGIz
NzVlNTI5YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Rh
dGVUaW1lRmllbGRFbGVtZW50LmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKworI2luY2x1
ZGUgIkhUTUxEaXZFbGVtZW50LmgiCisKKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERhdGVDb21wb25lbnRzOworCitjbGFzcyBEYXRlVGlt
ZUZpZWxkRWxlbWVudCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CisgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChEYXRlVGltZUZpZWxkRWxlbWVudCk7CitwdWJsaWM6CisgICAgY2xhc3MgRmll
bGRPd25lciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxGaWVsZE93bmVyPiB7CisgICAgcHVibGlj
OgorICAgICAgICB2aXJ0dWFsIH5GaWVsZE93bmVyKCk7CisgICAgICAgIHZpcnR1YWwgQXRvbVN0
cmluZyBsb2NhbGVJZGVudGlmaWVyKCkgY29uc3QgPSAwOworICAgIH07CisKKyAgICB2aXJ0dWFs
IGJvb2wgaGFzVmFsdWUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEVtcHR5VmFs
dWUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21w
b25lbnRzJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzSW50ZWdlcihpbnQpID0g
MDsKKyAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFN0
cmluZyB2aXNpYmxlVmFsdWUoKSBjb25zdCA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICBEYXRlVGlt
ZUZpZWxkRWxlbWVudChEb2N1bWVudCYsIEZpZWxkT3duZXImKTsKKyAgICB2b2lkIGluaXRpYWxp
emUoY29uc3QgQXRvbVN0cmluZyYgcHNldWRvKTsKKyAgICBMb2NhbGUmIGxvY2FsZUZvck93bmVy
KCkgY29uc3Q7CisgICAgQXRvbVN0cmluZyBsb2NhbGVJZGVudGlmaWVyKCkgY29uc3Q7CisgICAg
dm9pZCB1cGRhdGVWaXNpYmxlVmFsdWUoKTsKKyAgICB2aXJ0dWFsIGludCB2YWx1ZUFzSW50ZWdl
cigpIGNvbnN0ID0gMDsKKworcHJpdmF0ZToKKyAgICBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25z
dCBvdmVycmlkZTsKKworICAgIFdlYWtQdHI8RmllbGRPd25lcj4gbV9maWVsZE93bmVyOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEVfQU5EX1RJ
TUVfSU5QVVRfVFlQRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZUZpZWxkRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0
ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jN2Y5ODQ0YTEzNDVkOGI0MzIwZjBj
NDg5MWEzYTFiMGQzNzcxODdmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcApAQCAtMCwwICsxLDExNiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRhdGVUaW1lRmllbGRFbGVt
ZW50cy5oIgorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKKyNpbmNs
dWRlICJEYXRlQ29tcG9uZW50cy5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERh
dGVUaW1lRGF5RmllbGRFbGVtZW50KTsKKworRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OkRhdGVU
aW1lRGF5RmllbGRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRP
d25lcikKKyAgICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRP
d25lciwgIi0tIl9zKQoreworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gZGF5UHNldWRvSWQoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1kYXktZmll
bGQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgaW5pdGlhbGl6ZShk
YXlQc2V1ZG9JZCk7Cit9CisKK1JlZjxEYXRlVGltZURheUZpZWxkRWxlbWVudD4gRGF0ZVRpbWVE
YXlGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZp
ZWxkT3duZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0ZVRpbWVEYXlGaWVsZEVs
ZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIpKTsKK30KKwordm9pZCBEYXRlVGltZURheUZpZWxk
RWxlbWVudDo6c2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUpCit7Cisg
ICAgc2V0VmFsdWVBc0ludGVnZXIoZGF0ZS5tb250aERheSgpKTsKK30KKworV1RGX01BS0VfSVNP
X0FMTE9DQVRFRF9JTVBMKERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQpOworCitEYXRlVGltZU1v
bnRoRmllbGRFbGVtZW50OjpEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50KERvY3VtZW50JiBkb2N1
bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lcikKKyAgICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwgIi0tIl9zKQoreworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW9udGhQc2V1ZG9JZCgiLXdl
YmtpdC1kYXRldGltZS1lZGl0LW1vbnRoLWZpZWxkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIGluaXRpYWxpemUobW9udGhQc2V1ZG9JZCk7Cit9CisKK1JlZjxEYXRl
VGltZU1vbnRoRmllbGRFbGVtZW50PiBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50OjpjcmVhdGUo
RG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyKQoreworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxk
T3duZXIpKTsKK30KKwordm9pZCBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFz
RGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkKK3sKKyAgICAvLyBEYXRlQ29tcG9uZW50
cyByZXByZXNlbnRzIG1vbnRocyBmcm9tIDAgKEphbnVhcnkpIHRvIDExIChEZWNlbWJlcikuCisg
ICAgc2V0VmFsdWVBc0ludGVnZXIoZGF0ZS5tb250aCgpICsgMSk7Cit9CisKK1dURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQpOworCitE
YXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lU3ltYm9saWNNb250aEZp
ZWxkRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBsYWJlbHMpCisgICAgOiBEYXRlVGltZVN5bWJvbGljRmllbGRF
bGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCBsYWJlbHMpCit7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtb250aFBzZXVkb0lkKCItd2Vi
a2l0LWRhdGV0aW1lLWVkaXQtbW9udGgtZmllbGQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgaW5pdGlhbGl6ZShtb250aFBzZXVkb0lkKTsKK30KKworUmVmPERhdGVU
aW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudD4gRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRF
bGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVy
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFiZWxzKQoreworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25l
ciwgbGFiZWxzKSk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50
OjpzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkKK3sKKyAgICBzZXRW
YWx1ZUFzSW50ZWdlcihkYXRlLm1vbnRoKCkpOworfQorCitXVEZfTUFLRV9JU09fQUxMT0NBVEVE
X0lNUEwoRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50KTsKKworRGF0ZVRpbWVZZWFyRmllbGRFbGVt
ZW50OjpEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93
bmVyJiBmaWVsZE93bmVyKQorICAgIDogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KGRvY3Vt
ZW50LCBmaWVsZE93bmVyLCAiLS0tLSJfcykKK3sKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHllYXJQc2V1ZG9JZCgiLXdlYmtpdC1kYXRldGlt
ZS1lZGl0LXllYXItZmllbGQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgaW5pdGlhbGl6ZSh5ZWFyUHNldWRvSWQpOworfQorCitSZWY8RGF0ZVRpbWVZZWFyRmllbGRF
bGVtZW50PiBEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyKSk7Cit9CisKK3Zv
aWQgRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29t
cG9uZW50cyYgZGF0ZSkKK3sKKyAgICBzZXRWYWx1ZUFzSW50ZWdlcihkYXRlLmZ1bGxZZWFyKCkp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREFURV9B
TkRfVElNRV9JTlBVVF9UWVBFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGEwMDZiNzFjMzYzZjVkNWFiODNk
Mzg1NDFhYjU5MTk1ZjUyNmM4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5oCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQ
RVMpCisKKyNpbmNsdWRlICJEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgRGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKERhdGVUaW1l
RGF5RmllbGRFbGVtZW50KTsKKworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RGF0ZVRpbWVEYXlG
aWVsZEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYsIEZpZWxkT3duZXImKTsKKworcHJpdmF0ZToK
KyAgICBEYXRlVGltZURheUZpZWxkRWxlbWVudChEb2N1bWVudCYsIEZpZWxkT3duZXImKTsKKwor
ICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9uczoKKyAgICB2b2lkIHNldFZhbHVl
QXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJik7Cit9OworCitjbGFzcyBEYXRlVGltZU1vbnRo
RmllbGRFbGVtZW50IGZpbmFsIDogcHVibGljIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCB7
CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50KTsK
KworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudD4gY3Jl
YXRlKERvY3VtZW50JiwgRmllbGRPd25lciYpOworCitwcml2YXRlOgorICAgIERhdGVUaW1lTW9u
dGhGaWVsZEVsZW1lbnQoRG9jdW1lbnQmLCBGaWVsZE93bmVyJik7CisKKyAgICAvLyBEYXRlVGlt
ZUZpZWxkRWxlbWVudCBmdW5jdGlvbnM6CisgICAgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBE
YXRlQ29tcG9uZW50cyYpOworfTsKKworY2xhc3MgRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRF
bGVtZW50IGZpbmFsIDogcHVibGljIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgeworICAg
IFdURl9NQUtFX0lTT19BTExPQ0FURUQoRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50
KTsKKworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRF
bGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmLCBGaWVsZE93bmVyJiwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mKTsKKworcHJpdmF0ZToKKyAgICBEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQo
RG9jdW1lbnQmLCBGaWVsZE93bmVyJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKworICAgIC8v
IERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9uczoKKyAgICB2b2lkIHNldFZhbHVlQXNEYXRl
KGNvbnN0IERhdGVDb21wb25lbnRzJik7Cit9OworCitjbGFzcyBEYXRlVGltZVllYXJGaWVsZEVs
ZW1lbnQgZmluYWwgOiBwdWJsaWMgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50IHsKKyAgICBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEKERhdGVUaW1lWWVhckZpZWxkRWxlbWVudCk7CisKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPERhdGVUaW1lWWVhckZpZWxkRWxlbWVudD4gY3JlYXRlKERvY3Vt
ZW50JiwgRmllbGRPd25lciYpOworCitwcml2YXRlOgorICAgIERhdGVUaW1lWWVhckZpZWxkRWxl
bWVudChEb2N1bWVudCYsIEZpZWxkT3duZXImKTsKKworICAgIC8vIERhdGVUaW1lRmllbGRFbGVt
ZW50IGZ1bmN0aW9uczoKKyAgICB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25l
bnRzJik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
REFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljk4ZjVhYjlhMDg5NGFjNjg4MWYzMTg0NjU0ZDVmNTUzMmQ3OWYzMGUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1l
bnQuY3BwCkBAIC0wLDAgKzEsOTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCIKKworI2lmIEVOQUJMRShE
QVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorCisjaW5jbHVkZSAiUGxhdGZvcm1Mb2NhbGUuaCIK
KyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1l
bnQpOworCitEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGNvbnN0
IFN0cmluZyYgcGxhY2Vob2xkZXIpCisgICAgOiBEYXRlVGltZUZpZWxkRWxlbWVudChkb2N1bWVu
dCwgZmllbGRPd25lcikKKyAgICAsIG1fcGxhY2Vob2xkZXIocGxhY2Vob2xkZXIpCit7Cit9CisK
K1N0cmluZyBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmZvcm1hdFZhbHVlKGludCB2YWx1
ZSkgY29uc3QKK3sKKyAgICBMb2NhbGUmIGxvY2FsZSA9IGxvY2FsZUZvck93bmVyKCk7CisgICAg
cmV0dXJuIGxvY2FsZS5jb252ZXJ0VG9Mb2NhbGl6ZWROdW1iZXIobWFrZVN0cmluZyhwYWQoJzAn
LCAyLCB2YWx1ZSkpKTsKK30KKworYm9vbCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6Omhh
c1ZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYXNWYWx1ZTsKK30KKwordm9pZCBEYXRl
VGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUoY29uc3QgQXRvbVN0cmluZyYgcHNl
dWRvKQoreworICAgIERhdGVUaW1lRmllbGRFbGVtZW50Ojppbml0aWFsaXplKHBzZXVkbyk7Cit9
CisKK3ZvaWQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpzZXRFbXB0eVZhbHVlKCkKK3sK
KyAgICBtX3ZhbHVlID0gMDsKKyAgICBtX2hhc1ZhbHVlID0gZmFsc2U7CisgICAgdXBkYXRlVmlz
aWJsZVZhbHVlKCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpzZXRW
YWx1ZUFzSW50ZWdlcihpbnQgdmFsdWUpCit7CisgICAgbV92YWx1ZSA9IHZhbHVlOworICAgIG1f
aGFzVmFsdWUgPSB0cnVlOworICAgIHVwZGF0ZVZpc2libGVWYWx1ZSgpOworfQorCitTdHJpbmcg
RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojp2YWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1faGFzVmFsdWUgPyBmb3JtYXRWYWx1ZShtX3ZhbHVlKSA6IGVtcHR5U3RyaW5nKCk7Cit9CisK
K2ludCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnZhbHVlQXNJbnRlZ2VyKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9oYXNWYWx1ZSA/IG1fdmFsdWUgOiAtMTsKK30KKworU3RyaW5nIERh
dGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6dmlzaWJsZVZhbHVlKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9oYXNWYWx1ZSA/IHZhbHVlKCkgOiBtX3BsYWNlaG9sZGVyOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9U
WVBFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVt
ZXJpY0ZpZWxkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjAyYmZiMGVkZDAyOGE2ZjljODQzMjU4
YmQ2OTViZTQ4MTgzNzM2NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCkBAIC0wLDAgKzEsNjMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRf
VFlQRVMpCisKKyNpbmNsdWRlICJEYXRlVGltZUZpZWxkRWxlbWVudC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCA6IHB1YmxpYyBE
YXRlVGltZUZpZWxkRWxlbWVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChEYXRlVGlt
ZU51bWVyaWNGaWVsZEVsZW1lbnQpOworcHVibGljOgorCitwcm90ZWN0ZWQ6CisgICAgRGF0ZVRp
bWVOdW1lcmljRmllbGRFbGVtZW50KERvY3VtZW50JiwgRmllbGRPd25lciYsIGNvbnN0IFN0cmlu
ZyYgcGxhY2Vob2xkZXIpOworCisgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25z
OgorICAgIGJvb2wgaGFzVmFsdWUoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGluaXRpYWxpemUo
Y29uc3QgQXRvbVN0cmluZyYpOworICAgIHZvaWQgc2V0RW1wdHlWYWx1ZSgpIGZpbmFsOworICAg
IHZvaWQgc2V0VmFsdWVBc0ludGVnZXIoaW50KSBmaW5hbDsKKyAgICBpbnQgdmFsdWVBc0ludGVn
ZXIoKSBjb25zdCBmaW5hbDsKKyAgICBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgZmluYWw7
CisKK3ByaXZhdGU6CisgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zOgorICAg
IFN0cmluZyB2YWx1ZSgpIGNvbnN0IGZpbmFsOworCisgICAgU3RyaW5nIGZvcm1hdFZhbHVlKGlu
dCkgY29uc3Q7CisKKyAgICBjb25zdCBTdHJpbmcgbV9wbGFjZWhvbGRlcjsKKyAgICBpbnQgbV92
YWx1ZSB7IDAgfTsKKyAgICBib29sIG1faGFzVmFsdWUgeyBmYWxzZSB9OworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRf
VFlQRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5
bWJvbGljRmllbGRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmNTRiZTgxODRmMjkwYWQ4
ZTFlMjQyZTdiMDE5N2YwMzM2NGM2NjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcApAQCAtMCwwICsx
LDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaCIKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lO
UFVUX1RZUEVTKQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvVGV4dEJyZWFr
SXRlcmF0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NB
VEVEX0lNUEwoRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCk7CisKK3N0YXRpYyBBdG9tU3Ry
aW5nIG1ha2VWaXNpYmxlRW1wdHlWYWx1ZShjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3ltYm9scykK
K3sKKyAgICB1bnNpZ25lZCBtYXhpbXVtTGVuZ3RoID0gMDsKKyAgICBmb3IgKGF1dG8mIHN5bWJv
bCA6IHN5bWJvbHMpCisgICAgICAgIG1heGltdW1MZW5ndGggPSBzdGQ6Om1heChtYXhpbXVtTGVu
Z3RoLCBudW1HcmFwaGVtZUNsdXN0ZXJzKHN5bWJvbCkpOworICAgIHJldHVybiBtYWtlU3RyaW5n
KHBhZCgnLScsIG1heGltdW1MZW5ndGgsIGVtcHR5U3RyaW5nKCkpKTsKK30KKworRGF0ZVRpbWVT
eW1ib2xpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudChEb2N1bWVu
dCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBzeW1ib2xzKQorICAgIDogRGF0ZVRpbWVGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3du
ZXIpCisgICAgLCBtX3N5bWJvbHMoc3ltYm9scykKKyAgICAsIG1fdmlzaWJsZUVtcHR5VmFsdWUo
bWFrZVZpc2libGVFbXB0eVZhbHVlKHN5bWJvbHMpKQoreworICAgIEFTU0VSVCghbV9zeW1ib2xz
LmlzRW1wdHkoKSk7Cit9CisKK2Jvb2wgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6aGFz
VmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBtX3NlbGVjdGVkSW5kZXggPj0gMDsKK30KKwor
dm9pZCBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojppbml0aWFsaXplKGNvbnN0IEF0b21T
dHJpbmcmIHBzZXVkbykKK3sKKyAgICBEYXRlVGltZUZpZWxkRWxlbWVudDo6aW5pdGlhbGl6ZShw
c2V1ZG8pOworfQorCit2b2lkIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnNldEVtcHR5
VmFsdWUoKQoreworICAgIG1fc2VsZWN0ZWRJbmRleCA9IGludmFsaWRJbmRleDsKKyAgICB1cGRh
dGVWaXNpYmxlVmFsdWUoKTsKK30KKwordm9pZCBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50
OjpzZXRWYWx1ZUFzSW50ZWdlcihpbnQgbmV3U2VsZWN0ZWRJbmRleCkKK3sKKyAgICBtX3NlbGVj
dGVkSW5kZXggPSBzdGQ6Om1heCgwLCBzdGQ6Om1pbihuZXdTZWxlY3RlZEluZGV4LCBzdGF0aWNf
Y2FzdDxpbnQ+KG1fc3ltYm9scy5zaXplKCkgLSAxKSkpOworICAgIHVwZGF0ZVZpc2libGVWYWx1
ZSgpOworfQorCitTdHJpbmcgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6dmFsdWUoKSBj
b25zdAoreworICAgIHJldHVybiBoYXNWYWx1ZSgpID8gbV9zeW1ib2xzW21fc2VsZWN0ZWRJbmRl
eF0gOiBlbXB0eVN0cmluZygpOworfQorCitpbnQgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVu
dDo6dmFsdWVBc0ludGVnZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX3NlbGVjdGVkSW5kZXg7
Cit9CisKK1N0cmluZyBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojp2aXNpYmxlRW1wdHlW
YWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdmlzaWJsZUVtcHR5VmFsdWU7Cit9CisKK1N0
cmluZyBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojp2aXNpYmxlVmFsdWUoKSBjb25zdAor
eworICAgIHJldHVybiBoYXNWYWx1ZSgpID8gbV9zeW1ib2xzW21fc2VsZWN0ZWRJbmRleF0gOiB2
aXNpYmxlRW1wdHlWYWx1ZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42N2E4MDc4NDA1YjZkYTY1ZmNkMGMwNjc1MzBkZGVmZTFmMjdkMGUyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xp
Y0ZpZWxkRWxlbWVudC5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKKyNpbmNsdWRlICJE
YXRlVGltZUZpZWxkRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERh
dGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgOiBwdWJsaWMgRGF0ZVRpbWVGaWVsZEVsZW1lbnQg
eworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVu
dCk7Citwcm90ZWN0ZWQ6CisgICAgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudChEb2N1bWVu
dCYsIEZpZWxkT3duZXImLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpOworICAgIHNpemVfdCBzeW1i
b2xzU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3ltYm9scy5zaXplKCk7IH0KKyAgICBib29sIGhh
c1ZhbHVlKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IEF0b21TdHJp
bmcmIHBzZXVkbyk7CisgICAgdm9pZCBzZXRFbXB0eVZhbHVlKCkgZmluYWw7CisgICAgdm9pZCBz
ZXRWYWx1ZUFzSW50ZWdlcihpbnQpIGZpbmFsOworICAgIGludCB2YWx1ZUFzSW50ZWdlcigpIGNv
bnN0IGZpbmFsOworCitwcml2YXRlOgorICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IGludmFsaWRJ
bmRleCA9IC0xOworCisgICAgU3RyaW5nIHZpc2libGVFbXB0eVZhbHVlKCkgY29uc3Q7CisKKyAg
ICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnM6CisgICAgU3RyaW5nIHZhbHVlKCkg
Y29uc3QgZmluYWw7CisgICAgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0IGZpbmFsOworCisg
ICAgY29uc3QgVmVjdG9yPFN0cmluZz4gbV9zeW1ib2xzOworCisgICAgY29uc3QgQXRvbVN0cmlu
ZyBtX3Zpc2libGVFbXB0eVZhbHVlOworICAgIGludCBtX3NlbGVjdGVkSW5kZXggeyBpbnZhbGlk
SW5kZXggfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDljOTFkNWZkM2E3MDI2MWRkMDMw
MjYyYjc2YTZhOGMyOWQ4NjNkMzAuLjdiN2EyY2IzNGExYWQ3ZmE3NWMwOTI5NjNmM2QwZWMwYTcx
NWQwMzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMC0wOC0yNSAgQWRpdHlhIEtlZXJ0aGkg
IDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBEYXRlIGlucHV0cyBzaG91
bGQgY29udGFpbiBlZGl0YWJsZSBjb21wb25lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUxNTUKKworICAgICAgICBSZXZpZXdlZCBieSBEZXZp
biBSb3Vzc28uCisKKyAgICAgICAgQWRkZWQgYSB0ZXN0IHRvIHZlcmlmeSBzdHlsaW5nIG9mIHBz
ZXVkbyBlbGVtZW50cyB3aXRoaW4gZGF0ZSBpbnB1dHMuCisgICAgICAgIFJlYmFzZWxpbmVkIGV4
aXN0aW5nIHRlc3RzIHRvIG1hdGNoIG5ldyBhcHBlYXJhbmNlLgorCisgICAgICAgICogZmFzdC9m
b3Jtcy9kYXRlL2RhdGUtcHNldWRvLWVsZW1lbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9mb3Jtcy9kYXRlL2RhdGUtcHNldWRvLWVsZW1lbnRzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtaW5wdXQtcmVu
ZGVyaW5nLWJhc2ljLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL2Zh
c3QvZm9ybXMvZGF0ZS9kYXRlLXBzZXVkby1lbGVtZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvZmFzdC9mb3Jtcy90aW1lL3RpbWUtYXBwZWFyYW5j
ZS1iYXNpYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIv
ZmFzdC9mb3Jtcy90aW1lL3RpbWUtaW5wdXQtcmVuZGVyaW5nLWJhc2ljLWV4cGVjdGVkLnR4dDoK
KwogMjAyMC0wOC0yNCAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW21hY09TXSBTaG93IHBpY2tlciBmb3IgZGF0ZSBhbmQgZGF0ZXRpbWUtbG9jYWwgaW5w
dXQgdHlwZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLXBz
ZXVkby1lbGVtZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGUv
ZGF0ZS1wc2V1ZG8tZWxlbWVudHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmY2VmOWJjYmQ5
ZTU3MWM1YjNmNWM2NGFkZmQ1ZjM5MzJiYzkzMzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1wc2V1ZG8tZWxlbWVudHMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTggQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3
IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJl
bmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtC
T0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MTAxLDIpIHNpemUgNHgxOQorICAgICAgICB0ZXh0IHJ1biBhdCAoMTAxLDIpIHdpZHRoIDQ6ICIg
IgorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCitsYXllciBhdCAo
MTAsMTApIHNpemUgOTd4MjIgY2xpcCBhdCAoMTEsMTEpIHNpemUgOTV4MjAKKyAgUmVuZGVyRmxl
eGlibGVCb3gge0lOUFVUfSBhdCAoMiwyKSBzaXplIDk3eDIyIFtiZ2NvbG9yPSNGRkZGRkZdIFti
b3JkZXI6ICgxcHggc29saWQgIzRDNEM0QyldCisgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDYs
NCkgc2l6ZSA1N3gxNAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNTd4
MTQKKyAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTc6ICJBcHIgMSwgMTk3NiIKK2xh
eWVyIGF0ICgxMTUsMTApIHNpemUgOTd4MjIgY2xpcCBhdCAoMTE2LDExKSBzaXplIDk1eDIwCisg
IFJlbmRlckZsZXhpYmxlQm94IHtJTlBVVH0gYXQgKDEwNywyKSBzaXplIDk3eDIyIFtiZ2NvbG9y
PSNGRkZGRkZdIFtib3JkZXI6ICgxcHggc29saWQgIzRDNEM0QyldCisgICAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDE2LDQpIHNpemUgNTd4MTQKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDU3eDE0CisgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDU3OiAiQXBy
IDEsIDE5NzYiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1w
c2V1ZG8tZWxlbWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLXBz
ZXVkby1lbGVtZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5ODkxYjBhNTIyYzdhOGUzYjM0ZjdkMTBl
M2ZmNzllMDg4NDgxZWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2RhdGUvZGF0ZS1wc2V1ZG8tZWxlbWVudHMuaHRtbApAQCAtMCwwICsxLDM5IEBACis8aHRtbD4K
KzxoZWFkPgorPHN0eWxlPgoraW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdCB7CisgICAgYm9y
ZGVyOiAxcHggc29saWQgcmVkOworICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CisgICAgZm9u
dC1zaXplOiAxNXB4OworfQorCitpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LXRleHQgewor
ICAgIGNvbG9yOiB5ZWxsb3c7CisgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKKyAgICBmb250
LXNpemU6IDE1cHg7Cit9CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtbW9udGgtZmll
bGQgeworICAgIGNvbG9yOiByZWQ7CisgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKKyAgICBm
b250LXNpemU6IDE1cHg7Cit9CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtZGF5LWZp
ZWxkIHsKKyAgICBjb2xvcjogZ3JlZW47CisgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKKyAg
ICBmb250LXNpemU6IDE1cHg7Cit9CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQteWVh
ci1maWVsZCB7CisgICAgY29sb3I6IGJsdWU7CisgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsK
KyAgICBmb250LXNpemU6IDE1cHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAg
PGlucHV0IHR5cGU9ImRhdGUiIGRpcj0ibHRyIiB2YWx1ZT0iMTk3Ni0wNC0wMSI+CisgICAgPGlu
cHV0IHR5cGU9ImRhdGUiIGRpcj0icnRsIiB2YWx1ZT0iMTk3Ni0wNC0wMSI+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9y
bXMvZGF0ZS9kYXRlLWlucHV0LXJlbmRlcmluZy1iYXNpYy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWlucHV0LXJlbmRlcmlu
Zy1iYXNpYy1leHBlY3RlZC50eHQKaW5kZXggNWJiNTc4NzAzN2E0OTNmMjg1MGJmYjIzODliYjc4
OGFkOGI5ODhiMS4uYjIwNDY4MGRiZjYyMGE2NDJjNTg2ZjRlM2EyYTQ2ZWU4NmU5ZDMzNSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL2RhdGUvZGF0
ZS1pbnB1dC1yZW5kZXJpbmctYmFzaWMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azIvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtaW5wdXQtcmVuZGVyaW5nLWJhc2lj
LWV4cGVjdGVkLnR4dApAQCAtMywxNiArMyw0NiBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3
ODR4NTg0Ci0gICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDExMCwzKSBzaXplIDR4MTgKLSAg
ICAgICAgdGV4dCBydW4gYXQgKDExMCwzKSB3aWR0aCA0OiAiICIKKyAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMTEwLDIpIHNpemUgNHgxOAorICAgICAgICB0ZXh0IHJ1biBhdCAoMTEwLDIp
IHdpZHRoIDQ6ICIgIgogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgw
Ci1sYXllciBhdCAoOCwxMCkgc2l6ZSAxMTB4MjEgY2xpcCBhdCAoMTAsMTIpIHNpemUgMTA2eDE3
Ci0gIFJlbmRlckZsZXhpYmxlQm94IHtJTlBVVH0gYXQgKDAsMikgc2l6ZSAxMTB4MjEgW2JnY29s
b3I9I0ZGRkZGRl0gW2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KLSAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoNyw0KSBzaXplIDU5eDEzCi0gICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsMCkgc2l6ZSA1OXgxMwotICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1OTogIkFw
ciAxLCAxOTc2IgotbGF5ZXIgYXQgKDEyMiwxMCkgc2l6ZSAxMTB4MjEgY2xpcCBhdCAoMTI0LDEy
KSBzaXplIDEwNngxNwotICBSZW5kZXJGbGV4aWJsZUJveCB7SU5QVVR9IGF0ICgxMTQsMikgc2l6
ZSAxMTB4MjEgW2JnY29sb3I9I0ZGRkZGRl0gW2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0K
LSAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMjQsNCkgc2l6ZSA1OXgxMwotICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNTl4MTMKLSAgICAgICAgdGV4dCBydW4gYXQgKDAs
MCkgd2lkdGggNTk6ICJBcHIgMSwgMTk3NiIKK2xheWVyIGF0ICg4LDEwKSBzaXplIDExMHgxOSBj
bGlwIGF0ICgxMCwxMikgc2l6ZSAxMDZ4MTUKKyAgUmVuZGVyRmxleGlibGVCb3gge0lOUFVUfSBh
dCAoMCwyKSBzaXplIDExMHgxOSBbYmdjb2xvcj0jRkZGRkZGXSBbYm9yZGVyOiAoMnB4IGluc2V0
ICMwMDAwMDApXQorbGF5ZXIgYXQgKDExLDEzKSBzaXplIDY1eDEzIHNjcm9sbEhlaWdodCAxNAor
ICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMywzKSBzaXplIDY2eDEzCisgICAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDAsMCkgc2l6ZSA2NngxMworICAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgw
LDApIHNpemUgMTd4MTUKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxLDApIHNpemUg
MTV4MTMKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMSwwKSB3aWR0aCAxNTogIjA0IgorICAgICAg
UmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgNHgxMworICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDE2LDApIHNpemUgNHgxMworICAgICAgICAgIHRleHQgcnVuIGF0ICgxNiww
KSB3aWR0aCA0OiAiLyIKKyAgICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDE2
eDE1CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjAsMCkgc2l6ZSAxNHgxMworICAg
ICAgICAgIHRleHQgcnVuIGF0ICgyMCwwKSB3aWR0aCAxNDogIjAxIgorICAgICAgUmVuZGVySW5s
aW5lIHtESVZ9IGF0ICgwLDApIHNpemUgNHgxMworICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDM0LDApIHNpemUgNHgxMworICAgICAgICAgIHRleHQgcnVuIGF0ICgzNCwwKSB3aWR0aCA0
OiAiLyIKKyAgICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDI5eDE1CisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMzgsMCkgc2l6ZSAyN3gxMworICAgICAgICAgIHRl
eHQgcnVuIGF0ICgzOCwwKSB3aWR0aCAyNzogIjE5NzYiCitsYXllciBhdCAoMTIyLDEwKSBzaXpl
IDExMHgxOSBjbGlwIGF0ICgxMjQsMTIpIHNpemUgMTA2eDE1CisgIFJlbmRlckZsZXhpYmxlQm94
IHtJTlBVVH0gYXQgKDExNCwyKSBzaXplIDExMHgxOSBbYmdjb2xvcj0jRkZGRkZGXSBbYm9yZGVy
OiAoMnB4IGluc2V0ICMwMDAwMDApXQorbGF5ZXIgYXQgKDE2NCwxMykgc2l6ZSA2NXgxMyBzY3Jv
bGxIZWlnaHQgMTQKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDQxLDMpIHNpemUgNjZ4MTMKKyAg
ICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDY2eDEzCisgICAgICBSZW5kZXJJbmxp
bmUge0RJVn0gYXQgKDAsMCkgc2l6ZSAxN3gxNQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDEsMCkgc2l6ZSAxNXgxMworICAgICAgICAgIHRleHQgcnVuIGF0ICgxLDApIHdpZHRoIDE1
OiAiMDQiCisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSA0eDEzCisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTYsMCkgc2l6ZSA0eDEzCisgICAgICAgICAgdGV4
dCBydW4gYXQgKDE2LDApIHdpZHRoIDQ6ICIvIgorICAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0
ICgwLDApIHNpemUgMTZ4MTUKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyMCwwKSBz
aXplIDE0eDEzCisgICAgICAgICAgdGV4dCBydW4gYXQgKDIwLDApIHdpZHRoIDE0OiAiMDEiCisg
ICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSA0eDEzCisgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMzQsMCkgc2l6ZSA0eDEzCisgICAgICAgICAgdGV4dCBydW4gYXQg
KDM0LDApIHdpZHRoIDQ6ICIvIgorICAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNp
emUgMjl4MTUKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzOCwwKSBzaXplIDI3eDEz
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDM4LDApIHdpZHRoIDI3OiAiMTk3NiIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtcHNl
dWRvLWVsZW1lbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIv
ZmFzdC9mb3Jtcy9kYXRlL2RhdGUtcHNldWRvLWVsZW1lbnRzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xMjUzYzYwOTI1YmFhMjgyZGJlZDMxNTk0M2JmMWZkY2JmZDBiOGIwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL2RhdGUvZGF0
ZS1wc2V1ZG8tZWxlbWVudHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDggQEAKK2xheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAor
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCww
KSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1
ODQKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTEwLDUpIHNpemUgNHgxOAorICAgICAg
ICB0ZXh0IHJ1biBhdCAoMTEwLDUpIHdpZHRoIDQ6ICIgIgorICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgMHgwCitsYXllciBhdCAoOCwxMCkgc2l6ZSAxMTB4MjUgY2xpcCBh
dCAoMTAsMTIpIHNpemUgMTA2eDIxCisgIFJlbmRlckZsZXhpYmxlQm94IHtJTlBVVH0gYXQgKDAs
Mikgc2l6ZSAxMTB4MjUgW2JnY29sb3I9I0ZGRkZGRl0gW2JvcmRlcjogKDJweCBpbnNldCAjMDAw
MDAwKV0KK2xheWVyIGF0ICgxMSwxMykgc2l6ZSA5OHgxOSBjbGlwIGF0ICgxMiwxNCkgc2l6ZSA5
NngxNyBzY3JvbGxIZWlnaHQgMTgKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDMsMykgc2l6ZSA5
OXgxOSBbYm9yZGVyOiAoMXB4IHNvbGlkICNGRjAwMDApXQorICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgxLDEpIHNpemUgOTd4MTcKKyAgICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBz
aXplIDIxeDE5IFtjb2xvcj0jRkYwMDAwXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDEsMCkgc2l6ZSAxOXgxNworICAgICAgICAgIHRleHQgcnVuIGF0ICgxLDApIHdpZHRoIDE5OiAi
MDQiCisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMHgxNyBbY29sb3I9
I0ZGRkYwMF0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyMCwwKSBzaXplIDEweDE3
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDIwLDApIHdpZHRoIDEwOiAiLyIKKyAgICAgIFJlbmRl
cklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDIxeDE5IFtjb2xvcj0jMDA4MDAwXQorICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMwLDApIHNpemUgMTl4MTcKKyAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMzAsMCkgd2lkdGggMTk6ICIwMSIKKyAgICAgIFJlbmRlcklubGluZSB7RElWfSBh
dCAoMCwwKSBzaXplIDEweDE3IFtjb2xvcj0jRkZGRjAwXQorICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDQ5LDApIHNpemUgMTB4MTcKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNDksMCkg
d2lkdGggMTA6ICIvIgorICAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgMzl4
MTkgW2NvbG9yPSMwMDAwRkZdCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNTksMCkg
c2l6ZSAzN3gxNworICAgICAgICAgIHRleHQgcnVuIGF0ICg1OSwwKSB3aWR0aCAzNzogIjE5NzYi
CitsYXllciBhdCAoMTIyLDEwKSBzaXplIDExMHgyNSBjbGlwIGF0ICgxMjQsMTIpIHNpemUgMTA2
eDIxCisgIFJlbmRlckZsZXhpYmxlQm94IHtJTlBVVH0gYXQgKDExNCwyKSBzaXplIDExMHgyNSBb
Ymdjb2xvcj0jRkZGRkZGXSBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQorbGF5ZXIgYXQg
KDEzMSwxMykgc2l6ZSA5OHgxOSBjbGlwIGF0ICgxMzIsMTQpIHNpemUgOTZ4MTcgc2Nyb2xsSGVp
Z2h0IDE4CisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg4LDMpIHNpemUgOTl4MTkgW2JvcmRlcjog
KDFweCBzb2xpZCAjRkYwMDAwKV0KKyAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMSwxKSBzaXpl
IDk3eDE3CisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMXgxOSBbY29s
b3I9I0ZGMDAwMF0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxLDApIHNpemUgMTl4
MTcKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMSwwKSB3aWR0aCAxOTogIjA0IgorICAgICAgUmVu
ZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgMTB4MTcgW2NvbG9yPSNGRkZGMDBdCisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjAsMCkgc2l6ZSAxMHgxNworICAgICAgICAgIHRl
eHQgcnVuIGF0ICgyMCwwKSB3aWR0aCAxMDogIi8iCisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0g
YXQgKDAsMCkgc2l6ZSAyMXgxOSBbY29sb3I9IzAwODAwMF0KKyAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgzMCwwKSBzaXplIDE5eDE3CisgICAgICAgICAgdGV4dCBydW4gYXQgKDMwLDAp
IHdpZHRoIDE5OiAiMDEiCisgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSAx
MHgxNyBbY29sb3I9I0ZGRkYwMF0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg0OSww
KSBzaXplIDEweDE3CisgICAgICAgICAgdGV4dCBydW4gYXQgKDQ5LDApIHdpZHRoIDEwOiAiLyIK
KyAgICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDM5eDE5IFtjb2xvcj0jMDAw
MEZGXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDU5LDApIHNpemUgMzd4MTcKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoNTksMCkgd2lkdGggMzc6ICIxOTc2IgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL3RpbWUvdGltZS1hcHBlYXJh
bmNlLWJhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFz
dC9mb3Jtcy90aW1lL3RpbWUtYXBwZWFyYW5jZS1iYXNpYy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmRkMGFkNTU5N2Y2OWU3MGQ2MWJjNTZlZTY0ODc4YTBhYThhZjg0NgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9mb3Jtcy90aW1lL3RpbWUt
YXBwZWFyYW5jZS1iYXNpYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorc3RlcD1ub25l
ICAKK3N0ZXA9MSAgCitzdGVwPTAuMDAwMSAgCitzdGVwPTYwICAKK3N0ZXA9MzYwMCAgCitzdGVw
PTg2NDAwICAKK3N0ZXAgbWlzbWF0Y2hlZCAKK1JUTCAKK0Rpc2FibGVkLCBzdGVwPTM2MDAgIAor
UmVhZG9ubHksIHN0ZXA9MzYwMCAgCit0ZXh0LWFsaWduOiAKK3RleHQtdHJhbnNmb3JtOiAKK2Jh
Y2tncm91bmQsIGNvbG9yOiAKK2ZvbnQtc2l6ZSwgZm9udC13ZWlnaHQ6IAorZm9udC1zaXplIHdp
dGggZml4ZWQgaW5wdXQgd2lkdGg6IAorRml4ZWQgaW5wdXQgaGVpZ2h0OiAKKy13ZWJraXQtYXBw
ZWFyYW5jZTpub25lOiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIv
ZmFzdC9mb3Jtcy90aW1lL3RpbWUtaW5wdXQtcmVuZGVyaW5nLWJhc2ljLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9mb3Jtcy90aW1lL3RpbWUtaW5wdXQt
cmVuZGVyaW5nLWJhc2ljLWV4cGVjdGVkLnR4dAppbmRleCBlNTU5MWY3ZDc1YmNjOTE2NDU3MGQx
MmUwN2UyOGY2ZTYyODQ0ODQ0Li5hOTIwN2U5YWRjMGY4ZGIxMzYxZGM3NGZmMjIxZTVmMGZkNDQy
OTIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMv
dGltZS90aW1lLWlucHV0LXJlbmRlcmluZy1iYXNpYy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL3RpbWUvdGltZS1pbnB1dC1yZW5kZXJp
bmctYmFzaWMtZXhwZWN0ZWQudHh0CkBAIC0zLDE4ICszLDEwIEBAIGxheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlckJsb2NrIHtI
VE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4
KSBzaXplIDc4NHg1ODQKLSAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTEwLDMpIHNpemUg
NHgxOAotICAgICAgICB0ZXh0IHJ1biBhdCAoMTEwLDMpIHdpZHRoIDQ6ICIgIgorICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgxMTAsMCkgc2l6ZSA0eDE4CisgICAgICAgIHRleHQgcnVuIGF0
ICgxMTAsMCkgd2lkdGggNDogIiAiCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAweDAKLWxheWVyIGF0ICg4LDEwKSBzaXplIDExMHgyMSBjbGlwIGF0ICgxMCwxMikgc2l6
ZSAxMDZ4MTcKLSAgUmVuZGVyRmxleGlibGVCb3gge0lOUFVUfSBhdCAoMCwyKSBzaXplIDExMHgy
MSBbYmdjb2xvcj0jRkZGRkZGXSBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQotICAgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICg3LDQpIHNpemUgNDN4MTMKLSAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDQzeDEzCi0gICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDQzOiAiOTo0MSBBTSIKLWxheWVyIGF0ICgxMjIsMTApIHNpemUgMTEweDIxIGNsaXAgYXQgKDEy
NCwxMikgc2l6ZSAxMDZ4MTcKLSAgUmVuZGVyRmxleGlibGVCb3gge0lOUFVUfSBhdCAoMTE0LDIp
IHNpemUgMTEweDIxIFtiZ2NvbG9yPSNGRkZGRkZdIFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAw
MCldCi0gICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDQwLDQpIHNpemUgNDN4MTMKLSAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQzeDEzCi0gICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDE4OiAiQU0iCi0gICAgICAgIHRleHQgcnVuIGF0ICgxNywwKSB3aWR0aCA0
IFJUTDogIiAiCi0gICAgICAgIHRleHQgcnVuIGF0ICgyMCwwKSB3aWR0aCAyMzogIjk6NDEiCits
YXllciBhdCAoOCwxOSkgc2l6ZSAxMTB4NiBjbGlwIGF0ICgxMCwyMSkgc2l6ZSAxMDZ4MgorICBS
ZW5kZXJGbGV4aWJsZUJveCB7SU5QVVR9IGF0ICgwLDExKSBzaXplIDExMHg2IFtiZ2NvbG9yPSNG
RkZGRkZdIFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCitsYXllciBhdCAoMTIyLDE5KSBz
aXplIDExMHg2IGNsaXAgYXQgKDEyNCwyMSkgc2l6ZSAxMDZ4MgorICBSZW5kZXJGbGV4aWJsZUJv
eCB7SU5QVVR9IGF0ICgxMTQsMTEpIHNpemUgMTEweDYgW2JnY29sb3I9I0ZGRkZGRl0gW2JvcmRl
cjogKDJweCBpbnNldCAjMDAwMDAwKV0K
</data>

          </attachment>
      

    </bug>

</bugzilla>